@sd-angular/core 1.3.129 → 1.3.131
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/sd-angular-core-chart.umd.js +79 -8
- package/bundles/sd-angular-core-chart.umd.js.map +1 -1
- package/bundles/sd-angular-core-chart.umd.min.js +1 -1
- package/bundles/sd-angular-core-chart.umd.min.js.map +1 -1
- package/chart/sd-angular-core-chart.metadata.json +1 -1
- package/chart/src/lib/chart.component.d.ts +1 -0
- package/chart/src/lib/chart.model.d.ts +6 -1
- package/esm2015/chart/src/lib/chart.component.js +81 -10
- package/esm2015/chart/src/lib/chart.model.js +1 -1
- package/fesm2015/sd-angular-core-chart.js +80 -9
- package/fesm2015/sd-angular-core-chart.js.map +1 -1
- package/package.json +1 -1
- package/{sd-angular-core-1.3.129.tgz → sd-angular-core-1.3.131.tgz} +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
var _drawTotalOfStackedBar;
|
|
2
|
+
import { __awaiter, __classPrivateFieldGet } from "tslib";
|
|
2
3
|
import { Component, ViewChild, Input, ChangeDetectorRef, Optional, Inject } from '@angular/core';
|
|
3
4
|
import * as Chart from 'chart.js';
|
|
4
5
|
import { CHART_CONFIG } from './chart.model';
|
|
@@ -15,6 +16,42 @@ export class SdChart {
|
|
|
15
16
|
this.loadingStart = () => {
|
|
16
17
|
this.isLoading = true;
|
|
17
18
|
};
|
|
19
|
+
_drawTotalOfStackedBar.set(this, (chartType) => {
|
|
20
|
+
return {
|
|
21
|
+
afterDraw(chartInstance, easing, options) {
|
|
22
|
+
var _a, _b;
|
|
23
|
+
if ((_b = (_a = chartInstance === null || chartInstance === void 0 ? void 0 : chartInstance.data) === null || _a === void 0 ? void 0 : _a.datasets) === null || _b === void 0 ? void 0 : _b.length) {
|
|
24
|
+
const ctx = chartInstance.ctx;
|
|
25
|
+
chartInstance.data.datasets[0].data.forEach((dataPoint, index) => {
|
|
26
|
+
let curLastIndex = 0;
|
|
27
|
+
let curTotal = 0;
|
|
28
|
+
chartInstance.data.datasets.forEach((dataset, setIndex) => {
|
|
29
|
+
if (dataset.data[index] != 0 && (!dataset.hidden) && dataset.type !== 'line') {
|
|
30
|
+
curLastIndex = setIndex;
|
|
31
|
+
if (Number.isNumber(dataset.data[index])) {
|
|
32
|
+
curTotal += Number(dataset.data[index]);
|
|
33
|
+
}
|
|
34
|
+
else
|
|
35
|
+
curTotal += 0;
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
const { x, y } = chartInstance.getDatasetMeta(curLastIndex).data[index]._model;
|
|
39
|
+
const textWidth = ctx.measureText(curTotal.toString()).width;
|
|
40
|
+
ctx.fillStyle = 'black';
|
|
41
|
+
let xTextPosition = (x - textWidth / 2) - textWidth > 0 ? (x - textWidth / 2) : 0;
|
|
42
|
+
if (index == 0) {
|
|
43
|
+
xTextPosition = x + 10;
|
|
44
|
+
}
|
|
45
|
+
else if (index === chartInstance.data.datasets[0].data.length - 1) {
|
|
46
|
+
xTextPosition = x - textWidth - 10;
|
|
47
|
+
}
|
|
48
|
+
ctx.font = '300 10px';
|
|
49
|
+
ctx.fillText(curTotal.toString(), chartType === 'horizontalBar' ? x + 10 : xTextPosition, chartType === 'horizontalBar' ? y : y - 10);
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
});
|
|
18
55
|
}
|
|
19
56
|
set chartOption(chartOption) {
|
|
20
57
|
this.pChartOption = chartOption;
|
|
@@ -260,30 +297,46 @@ export class SdChart {
|
|
|
260
297
|
// const newwidth = Math.max(option.labels.length * option.datasets.length * labelWidth, $(this.chartWrapperRef.nativeElement).width());
|
|
261
298
|
// $(this.chartAreaWrapperExtendRef.nativeElement).width(newwidth);
|
|
262
299
|
// }
|
|
300
|
+
const plugins = [];
|
|
301
|
+
if (option.showTotalStack) {
|
|
302
|
+
plugins.push(__classPrivateFieldGet(this, _drawTotalOfStackedBar).call(this, option.type));
|
|
303
|
+
}
|
|
263
304
|
const configuration = {
|
|
264
305
|
options: {
|
|
265
306
|
responsive: true,
|
|
266
307
|
maintainAspectRatio: false,
|
|
267
308
|
legend: {
|
|
268
|
-
display: !option.hideLegend
|
|
309
|
+
display: !option.hideLegend,
|
|
310
|
+
onClick: (event) => {
|
|
311
|
+
if (option.showTotalStack) {
|
|
312
|
+
event.stopPropagation();
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
},
|
|
316
|
+
layout: {
|
|
317
|
+
padding: {
|
|
318
|
+
right: 20
|
|
319
|
+
}
|
|
269
320
|
},
|
|
270
321
|
scales: {
|
|
271
322
|
xAxes: [{
|
|
272
323
|
display: true,
|
|
273
324
|
scaleLabel: {
|
|
274
325
|
display: !!option.xTitle,
|
|
275
|
-
labelString: option.xTitle || ''
|
|
326
|
+
labelString: option.xTitle || '',
|
|
276
327
|
},
|
|
328
|
+
stacked: true,
|
|
277
329
|
ticks: {
|
|
278
330
|
beginAtZero: (_a = option.beginAtZero) !== null && _a !== void 0 ? _a : true,
|
|
279
331
|
callback: (value, index) => {
|
|
280
332
|
var _a;
|
|
281
333
|
return ((_a = option.ticks) === null || _a === void 0 ? void 0 : _a.xLabel(value, index)) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);
|
|
282
334
|
}
|
|
283
|
-
}
|
|
335
|
+
},
|
|
284
336
|
}],
|
|
285
337
|
yAxes: [{
|
|
286
338
|
display: true,
|
|
339
|
+
stacked: true,
|
|
287
340
|
ticks: {
|
|
288
341
|
callback: (value, index) => {
|
|
289
342
|
var _a;
|
|
@@ -327,7 +380,8 @@ export class SdChart {
|
|
|
327
380
|
};
|
|
328
381
|
return result;
|
|
329
382
|
})
|
|
330
|
-
}
|
|
383
|
+
},
|
|
384
|
+
plugins: plugins
|
|
331
385
|
};
|
|
332
386
|
if (option.hover === 'ShowAll') {
|
|
333
387
|
configuration.options.tooltips = Object.assign(Object.assign({}, configuration.options.tooltips), { mode: 'index', intersect: false });
|
|
@@ -510,7 +564,11 @@ export class SdChart {
|
|
|
510
564
|
this.isLoading = false;
|
|
511
565
|
}
|
|
512
566
|
renderBarLineChart(option) {
|
|
513
|
-
var _a, _b, _c;
|
|
567
|
+
var _a, _b, _c, _d;
|
|
568
|
+
const plugins = [];
|
|
569
|
+
if (option.showTotalStack) {
|
|
570
|
+
plugins.push(__classPrivateFieldGet(this, _drawTotalOfStackedBar).call(this, option.type));
|
|
571
|
+
}
|
|
514
572
|
const labelWidth = (_a = option.labelWidth) !== null && _a !== void 0 ? _a : 50;
|
|
515
573
|
if (option.datasets.length) {
|
|
516
574
|
const numberOfBars = option.datasets.filter(e => e.type === 'bar').length;
|
|
@@ -574,7 +632,16 @@ export class SdChart {
|
|
|
574
632
|
responsive: true,
|
|
575
633
|
maintainAspectRatio: false,
|
|
576
634
|
legend: {
|
|
577
|
-
display: !option.hideLegend
|
|
635
|
+
display: !option.hideLegend,
|
|
636
|
+
onClick(event, legendItem) {
|
|
637
|
+
if (option.showTotalStack) {
|
|
638
|
+
event.stopPropagation();
|
|
639
|
+
}
|
|
640
|
+
},
|
|
641
|
+
position: (_d = option === null || option === void 0 ? void 0 : option.legendPosition) !== null && _d !== void 0 ? _d : 'top'
|
|
642
|
+
},
|
|
643
|
+
layout: {
|
|
644
|
+
padding: 10
|
|
578
645
|
},
|
|
579
646
|
title: {
|
|
580
647
|
display: true,
|
|
@@ -607,7 +674,9 @@ export class SdChart {
|
|
|
607
674
|
return ((_c = option.tooltips) === null || _c === void 0 ? void 0 : _c.label({
|
|
608
675
|
datasetLabel,
|
|
609
676
|
label,
|
|
610
|
-
value
|
|
677
|
+
value,
|
|
678
|
+
datasetIndex: tooltipItem.datasetIndex,
|
|
679
|
+
dataIndex: tooltipItem.index
|
|
611
680
|
})) || `${datasetLabel ? `[${datasetLabel}] ` : ''} ${label} : ${Number.toVNCurrency(value)}`;
|
|
612
681
|
}
|
|
613
682
|
}
|
|
@@ -631,7 +700,8 @@ export class SdChart {
|
|
|
631
700
|
};
|
|
632
701
|
return result;
|
|
633
702
|
}),
|
|
634
|
-
}
|
|
703
|
+
},
|
|
704
|
+
plugins: plugins
|
|
635
705
|
};
|
|
636
706
|
if (option.hover === 'ShowAll') {
|
|
637
707
|
configuration.options.tooltips = Object.assign(Object.assign({}, configuration.options.tooltips), { mode: 'index', intersect: false });
|
|
@@ -647,6 +717,7 @@ export class SdChart {
|
|
|
647
717
|
return 'rgb(' + r + ',' + g + ',' + b + ')';
|
|
648
718
|
}
|
|
649
719
|
}
|
|
720
|
+
_drawTotalOfStackedBar = new WeakMap();
|
|
650
721
|
SdChart.decorators = [
|
|
651
722
|
{ type: Component, args: [{
|
|
652
723
|
selector: 'sd-chart',
|
|
@@ -665,4 +736,4 @@ SdChart.propDecorators = {
|
|
|
665
736
|
chartAxisRef: [{ type: ViewChild, args: ['chartAxis',] }],
|
|
666
737
|
chartAreaWrapperExtendRef: [{ type: ViewChild, args: ['chartAreaWrapperExtend',] }]
|
|
667
738
|
};
|
|
668
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9jaGFydC8iLCJzb3VyY2VzIjpbInNyYy9saWIvY2hhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUF5QixTQUFTLEVBQWMsS0FBSyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEksT0FBTyxLQUFLLEtBQUssTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQVNMLFlBQVksRUFFYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFPN0IsTUFBTSxPQUFPLE9BQU87SUFxQmxCLFlBQ1UsR0FBc0IsRUFDWSxrQkFBdUM7UUFEekUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDWSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXFCO1FBdEIzRSxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUU1QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBY2xCLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixXQUFNLEdBQUcsT0FBTyxDQUFDO1FBMnBCakIsaUJBQVksR0FBRyxHQUFHLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDeEIsQ0FBQyxDQUFBO0lBdHBCRCxDQUFDO0lBcEJELElBQWEsV0FBVyxDQUFDLFdBQTBCO1FBQ2pELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO1FBQ2hDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBaUJELFFBQVE7SUFDUixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRWEsV0FBVyxDQUFDLFdBQXFCOzs7WUFDN0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFBLElBQUksQ0FBQyxZQUFZLDBDQUFFLE1BQU0sS0FBSSxPQUFPLENBQUM7WUFDbkQsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLE1BQU0sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2FBQ3JCO1lBQ0QsTUFBTSxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN2RCxVQUFJLElBQUksQ0FBQyxRQUFRLDBDQUFFLGFBQWEsRUFBRTtnQkFDaEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFrQyxDQUFDO2dCQUNoRSxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ25DLFFBQVEsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUU7b0JBQzlCLEtBQUssS0FBSzt3QkFDUixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzt3QkFDdkMsTUFBTTtvQkFDUixLQUFLLEtBQUs7d0JBQ1IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7d0JBQ3ZDLE1BQU07b0JBQ1IsS0FBSyxlQUFlO3dCQUNsQixJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUNqRCxNQUFNO29CQUNSLEtBQUssTUFBTTt3QkFDVCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzt3QkFDeEMsTUFBTTtvQkFDUixLQUFLLFdBQVc7d0JBQ2QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzt3QkFDN0MsTUFBTTtvQkFDUixLQUFLLFNBQVM7d0JBQ1osSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzt3QkFDM0MsTUFBTTtvQkFDUixLQUFLLFVBQVU7d0JBQ2IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDOUM7d0JBQ0UsTUFBTTtpQkFDVDthQUNGOztLQUNGO0lBRU8sY0FBYyxDQUFDLE1BQXNCOztRQUMzQyxNQUFNLGFBQWEsR0FBNkI7WUFDOUMsSUFBSSxFQUFFLEtBQUs7WUFDWCxPQUFPLEVBQUU7Z0JBQ1AsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLEtBQUssRUFBRTtvQkFDTCxPQUFPLEVBQUUsSUFBSTtvQkFDYixJQUFJLEVBQUUsTUFBTSxDQUFDLEtBQUs7aUJBQ25CO2dCQUNELE1BQU0sRUFBRTtvQkFDTixPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVTtpQkFDNUI7Z0JBQ0QsUUFBUSxFQUFFO29CQUNSLFNBQVMsRUFBRTt3QkFDVCxLQUFLLEVBQUUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUU7OzRCQUMzQixNQUFNLFlBQVksU0FBRyxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLDJDQUFHLEtBQUssQ0FBQzs0QkFDckUsTUFBTSxLQUFLLEdBQUcsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFXLENBQUM7NEJBQ3hELE1BQU0sS0FBSyxHQUFHLE1BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSwyQ0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBVyxDQUFDOzRCQUMxRixPQUFPLE9BQUEsTUFBTSxDQUFDLFFBQVEsMENBQUUsS0FBSyxDQUFDO2dDQUM1QixZQUFZO2dDQUNaLEtBQUs7Z0NBQ0wsS0FBSzs2QkFDTixNQUFLLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxNQUFNLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQzt3QkFDOUYsQ0FBQztxQkFDRjtpQkFDRjthQUNGO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLE1BQU0sRUFBRSxPQUFBLE1BQU0sQ0FBQyxRQUFRLDBDQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLE1BQUssRUFBRTtnQkFDaEQsUUFBUSxFQUFFLENBQUM7d0JBQ1QsSUFBSSxFQUFFLE9BQUEsTUFBTSxDQUFDLFFBQVEsMENBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBSyxFQUFFO3dCQUM5QyxlQUFlLEVBQUUsT0FBQSxNQUFNLENBQUMsUUFBUSwwQ0FBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUU7OzRCQUFDLE9BQUEsQ0FBQyxDQUFDLGVBQWU7c0RBQzlELElBQUksQ0FBQyxrQkFBa0IsMENBQUUsYUFBYSwwQ0FBRyxHQUFHLDJDQUFHLGVBQWUsQ0FBQTttQ0FDOUQsSUFBSSxDQUFDLFlBQVksQ0FBQTt5QkFBQSxNQUFLLEVBQUU7cUJBQzlCLENBQUM7YUFDSDtTQUNGLENBQUM7UUFFRixJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQzlCLGFBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxtQ0FDekIsYUFBYSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEtBQ2pDLElBQUksRUFBRSxPQUFPLEVBQ2IsU0FBUyxFQUFFLEtBQUssR0FDakIsQ0FBQztZQUNGLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxtQ0FDdEIsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQzlCLElBQUksRUFBRSxPQUFPLEVBQ2IsU0FBUyxFQUFFLEtBQUssR0FDakIsQ0FBQztTQUNIO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxNQUEwQjs7UUFDcEQsTUFBTSxhQUFhLEdBQTZCO1lBQzlDLElBQUksRUFBRSxVQUFVO1lBQ2hCLE9BQU8sRUFBRTtnQkFDUCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsbUJBQW1CLEVBQUMsS0FBSztnQkFDekIsS0FBSyxFQUFFO29CQUNMLE9BQU8sRUFBRSxJQUFJO29CQUNiLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSztpQkFDbkI7Z0JBQ0QsTUFBTSxFQUFFO29CQUNOLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVO2lCQUM1QjtnQkFDRCxRQUFRLEVBQUU7b0JBQ1IsU0FBUyxFQUFFO3dCQUNULEtBQUssRUFBRSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsRUFBRTs7NEJBQzNCLE1BQU0sWUFBWSxTQUFHLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksMkNBQUcsS0FBSyxDQUFDOzRCQUNyRSxNQUFNLEtBQUssR0FBRyxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQVcsQ0FBQzs0QkFDeEQsTUFBTSxLQUFLLEdBQUcsTUFBQSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLDJDQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFXLENBQUM7NEJBQzFGLE9BQU8sT0FBQSxNQUFNLENBQUMsUUFBUSwwQ0FBRSxLQUFLLENBQUM7Z0NBQzVCLFlBQVk7Z0NBQ1osS0FBSztnQ0FDTCxLQUFLOzZCQUNOLE1BQUssR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLE1BQU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO3dCQUM5RixDQUFDO3FCQUNGO2lCQUNGO2FBQ0Y7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osTUFBTSxFQUFFLE9BQUEsTUFBTSxDQUFDLFFBQVEsMENBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBSyxFQUFFO2dCQUNoRCxRQUFRLEVBQUUsQ0FBQzt3QkFDVCxJQUFJLEVBQUUsT0FBQSxNQUFNLENBQUMsUUFBUSwwQ0FBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxNQUFLLEVBQUU7d0JBQzlDLGVBQWUsRUFBRSxPQUFBLE1BQU0sQ0FBQyxRQUFRLDBDQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRTs7NEJBQUMsT0FBQSxDQUFDLENBQUMsZUFBZTtzREFDOUQsSUFBSSxDQUFDLGtCQUFrQiwwQ0FBRSxhQUFhLDBDQUFHLEdBQUcsMkNBQUcsZUFBZSxDQUFBO21DQUM5RCxJQUFJLENBQUMsWUFBWSxDQUFBO3lCQUFBLE1BQUssRUFBRTtxQkFDOUIsQ0FBQzthQUNIO1NBQ0YsQ0FBQztRQUVGLElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDOUIsYUFBYSxDQUFDLE9BQU8sQ0FBQyxRQUFRLG1DQUN6QixhQUFhLENBQUMsT0FBTyxDQUFDLFFBQVEsS0FDakMsSUFBSSxFQUFFLE9BQU8sRUFDYixTQUFTLEVBQUUsS0FBSyxHQUNqQixDQUFDO1lBQ0YsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLG1DQUN0QixhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssS0FDOUIsSUFBSSxFQUFFLE9BQU8sRUFDYixTQUFTLEVBQUUsS0FBSyxHQUNqQixDQUFDO1NBQ0g7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxNQUFzQjs7UUFDM0MsTUFBTSxVQUFVLFNBQUcsTUFBTSxDQUFDLFVBQVUsbUNBQUksRUFBRSxDQUFDO1FBQzNDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDMUIsd0lBQXdJO1lBQ3hJLG1FQUFtRTtZQUNuRSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUM7WUFDNUUsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFlBQVksUUFBUSxLQUFLLENBQUMsQ0FBQztTQUN6RjtRQUNELE1BQU0sYUFBYSxHQUE2QjtZQUM5QyxPQUFPLEVBQUU7Z0JBQ1AsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLG1CQUFtQixFQUFFLEtBQUs7Z0JBQzFCLE1BQU0sRUFBRTtvQkFDTixPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVTtpQkFDNUI7Z0JBQ0QsTUFBTSxFQUFFO29CQUNOLEtBQUssRUFBRSxDQUFDOzRCQUNOLE9BQU8sRUFBRSxJQUFJOzRCQUNiLFVBQVUsRUFBRTtnQ0FDVixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNO2dDQUN4QixXQUFXLEVBQUUsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFOzZCQUNqQzs0QkFDRCxLQUFLLEVBQUU7Z0NBQ0wsUUFBUSxFQUFFLENBQUMsS0FBc0IsRUFBRSxLQUFhLEVBQUUsRUFBRTs7b0NBQ2xELE9BQU8sT0FBQSxNQUFNLENBQUMsS0FBSywwQ0FBRSxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssTUFBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dDQUM3RyxDQUFDOzZCQUNGO3lCQUNGLENBQUM7b0JBQ0YsS0FBSyxFQUFFLENBQUM7NEJBQ04sT0FBTyxFQUFFLElBQUk7NEJBQ2IsS0FBSyxFQUFFO2dDQUNMLFdBQVcsUUFBRSxNQUFNLENBQUMsV0FBVyxtQ0FBSSxJQUFJO2dDQUN2QyxRQUFRLEVBQUUsQ0FBQyxLQUFzQixFQUFFLEtBQWEsRUFBRSxFQUFFOztvQ0FDbEQsT0FBTyxPQUFBLE1BQU0sQ0FBQyxLQUFLLDBDQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxNQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7Z0NBQzdHLENBQUM7NkJBQ0Y7NEJBQ0QsVUFBVSxFQUFFO2dDQUNWLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU07Z0NBQ3hCLFdBQVcsRUFBRSxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUU7NkJBQ2pDO3lCQUNGLENBQUM7aUJBQ0g7Z0JBQ0QsUUFBUSxFQUFFO29CQUNSLFNBQVMsRUFBRTt3QkFDVCxLQUFLLEVBQUUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUU7OzRCQUMzQixNQUFNLFlBQVksU0FBRyxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLDJDQUFHLEtBQUssQ0FBQzs0QkFDckUsTUFBTSxLQUFLLEdBQUcsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFXLENBQUM7NEJBQ3hELE1BQU0sS0FBSyxHQUFHLE1BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSwyQ0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBVyxDQUFDOzRCQUMxRixPQUFPLE9BQUEsTUFBTSxDQUFDLFFBQVEsMENBQUUsS0FBSyxDQUFDO2dDQUM1QixZQUFZO2dDQUNaLEtBQUs7Z0NBQ0wsS0FBSzs2QkFDTixNQUFLLEdBQUcsWUFBWSxNQUFNLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQzt3QkFDMUQsQ0FBQztxQkFDRjtpQkFDRjthQUNGO1lBQ0QsSUFBSSxFQUFFLEtBQUs7WUFDWCxJQUFJLEVBQUU7Z0JBQ0osTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO2dCQUNyQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUU7O29CQUN2QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO29CQUN2QyxNQUFNLE1BQU0sR0FBd0I7d0JBQ2xDLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSzt3QkFDZCxJQUFJLEVBQUUsQ0FBQyxDQUFDLGVBQWUsdUJBQUksSUFBSSxDQUFDLGtCQUFrQiwwQ0FBRSxhQUFhLDBDQUFHLEdBQUcsMkNBQUcsZUFBZSxDQUFBLElBQUksWUFBWTt3QkFDekcsZUFBZSxFQUFFLENBQUMsQ0FBQyxlQUFlLHVCQUFJLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsYUFBYSwwQ0FBRyxHQUFHLDJDQUFHLGVBQWUsQ0FBQSxJQUFJLFlBQVk7d0JBQ3BILElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTt3QkFDWixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7cUJBQ2YsQ0FBQztvQkFDRixPQUFPLE1BQU0sQ0FBQztnQkFDaEIsQ0FBQyxDQUFDO2FBQ0g7U0FDRixDQUFDO1FBRUYsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUM5QixhQUFhLENBQUMsT0FBTyxDQUFDLFFBQVEsbUNBQ3pCLGFBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxLQUNqQyxJQUFJLEVBQUUsT0FBTyxFQUNiLFNBQVMsRUFBRSxLQUFLLEdBQ2pCLENBQUM7WUFDRixhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssbUNBQ3RCLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxLQUM5QixJQUFJLEVBQUUsT0FBTyxFQUNiLFNBQVMsRUFBRSxLQUFLLEdBQ2pCLENBQUM7U0FDSDtRQUVELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRU8sd0JBQXdCLENBQUMsTUFBZ0M7O1FBQy9ELDhDQUE4QztRQUM5QyxnQ0FBZ0M7UUFDaEMsMElBQTBJO1FBQzFJLHFFQUFxRTtRQUNyRSxJQUFJO1FBQ0osTUFBTSxhQUFhLEdBQTZCO1lBQzlDLE9BQU8sRUFBRTtnQkFDUCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsbUJBQW1CLEVBQUUsS0FBSztnQkFDMUIsTUFBTSxFQUFFO29CQUNOLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVO2lCQUM1QjtnQkFDRCxNQUFNLEVBQUU7b0JBQ04sS0FBSyxFQUFFLENBQUM7NEJBQ04sT0FBTyxFQUFFLElBQUk7NEJBQ2IsVUFBVSxFQUFFO2dDQUNWLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU07Z0NBQ3hCLFdBQVcsRUFBRSxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUU7NkJBQ2pDOzRCQUNELEtBQUssRUFBRTtnQ0FDTCxXQUFXLFFBQUUsTUFBTSxDQUFDLFdBQVcsbUNBQUksSUFBSTtnQ0FDdkMsUUFBUSxFQUFFLENBQUMsS0FBc0IsRUFBRSxLQUFhLEVBQUUsRUFBRTs7b0NBQ2xELE9BQU8sT0FBQSxNQUFNLENBQUMsS0FBSywwQ0FBRSxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssTUFBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dDQUM3RyxDQUFDOzZCQUNGO3lCQUNGLENBQUM7b0JBQ0YsS0FBSyxFQUFFLENBQUM7NEJBQ04sT0FBTyxFQUFFLElBQUk7NEJBQ2IsS0FBSyxFQUFFO2dDQUNMLFFBQVEsRUFBRSxDQUFDLEtBQXNCLEVBQUUsS0FBYSxFQUFFLEVBQUU7O29DQUNsRCxPQUFPLE9BQUEsTUFBTSxDQUFDLEtBQUssMENBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxLQUFLLE1BQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQ0FDN0csQ0FBQzs2QkFDRjs0QkFDRCxVQUFVLEVBQUU7Z0NBQ1YsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTTtnQ0FDeEIsV0FBVyxFQUFFLE1BQU0sQ0FBQyxNQUFNLElBQUksRUFBRTs2QkFDakM7eUJBQ0YsQ0FBQztpQkFDSDtnQkFDRCxRQUFRLEVBQUU7b0JBQ1IsU0FBUyxFQUFFO3dCQUNULEtBQUssRUFBRSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsRUFBRTs7NEJBQzNCLE1BQU0sWUFBWSxTQUFHLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksMkNBQUcsS0FBSyxDQUFDOzRCQUNyRSxNQUFNLEtBQUssR0FBRyxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQVcsQ0FBQzs0QkFDeEQsTUFBTSxLQUFLLEdBQUcsTUFBQSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLDJDQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFXLENBQUM7NEJBQzFGLE9BQU8sT0FBQSxNQUFNLENBQUMsUUFBUSwwQ0FBRSxLQUFLLENBQUM7Z0NBQzVCLFlBQVk7Z0NBQ1osS0FBSztnQ0FDTCxLQUFLOzZCQUNOLE1BQUssR0FBRyxZQUFZLE1BQU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO3dCQUMxRCxDQUFDO3FCQUNGO2lCQUNGO2FBQ0Y7WUFDRCxJQUFJLEVBQUUsZUFBZTtZQUNyQixJQUFJLEVBQUU7Z0JBQ0osTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO2dCQUNyQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUU7O29CQUN2QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO29CQUN2QyxNQUFNLE1BQU0sR0FBd0I7d0JBQ2xDLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSzt3QkFDZCxJQUFJLEVBQUUsQ0FBQyxDQUFDLGVBQWUsdUJBQUksSUFBSSxDQUFDLGtCQUFrQiwwQ0FBRSxhQUFhLDBDQUFHLEdBQUcsMkNBQUcsZUFBZSxDQUFBLElBQUksWUFBWTt3QkFDekcsZUFBZSxFQUFFLENBQUMsQ0FBQyxlQUFlLHVCQUFJLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsYUFBYSwwQ0FBRyxHQUFHLDJDQUFHLGVBQWUsQ0FBQSxJQUFJLFlBQVk7d0JBQ3BILElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTt3QkFDWixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7cUJBQ2YsQ0FBQztvQkFDRixPQUFPLE1BQU0sQ0FBQztnQkFDaEIsQ0FBQyxDQUFDO2FBQ0g7U0FDRixDQUFDO1FBRUYsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUM5QixhQUFhLENBQUMsT0FBTyxDQUFDLFFBQVEsbUNBQ3pCLGFBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxLQUNqQyxJQUFJLEVBQUUsT0FBTyxFQUNiLFNBQVMsRUFBRSxLQUFLLEdBQ2pCLENBQUM7WUFDRixhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssbUNBQ3RCLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxLQUM5QixJQUFJLEVBQUUsT0FBTyxFQUNiLFNBQVMsRUFBRSxLQUFLLEdBQ2pCLENBQUM7U0FDSDtRQUVELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRU8sZUFBZSxDQUFDLE1BQXVCOztRQUM3QyxNQUFNLFVBQVUsU0FBRyxNQUFNLENBQUMsVUFBVSxtQ0FBSSxFQUFFLENBQUM7UUFDM0MsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUMxQiwrR0FBK0c7WUFDL0csbUVBQW1FO1lBQ25FLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztZQUNuRCxDQUFDLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsWUFBWSxRQUFRLEtBQUssQ0FBQyxDQUFDO1NBQ3pGO1FBQ0QsTUFBTSxhQUFhLEdBQTZCO1lBQzlDLE9BQU8sRUFBRTtnQkFDUCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsbUJBQW1CLEVBQUUsS0FBSztnQkFDMUIsTUFBTSxFQUFFO29CQUNOLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVO2lCQUM1QjtnQkFDRCxNQUFNLEVBQUU7b0JBQ04sS0FBSyxFQUFFLENBQUM7NEJBQ04sT0FBTyxFQUFFLElBQUk7NEJBQ2IsVUFBVSxFQUFFO2dDQUNWLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU07Z0NBQ3hCLFdBQVcsRUFBRSxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUU7NkJBQ2pDOzRCQUNELEtBQUssRUFBRTtnQ0FDTCxRQUFRLEVBQUUsQ0FBQyxLQUFzQixFQUFFLEtBQWEsRUFBRSxFQUFFOztvQ0FDbEQsT0FBTyxPQUFBLE1BQU0sQ0FBQyxLQUFLLDBDQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxNQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7Z0NBQzdHLENBQUM7NkJBQ0Y7eUJBQ0YsQ0FBQztvQkFDRixLQUFLLEVBQUUsQ0FBQzs0QkFDTixPQUFPLEVBQUUsSUFBSTs0QkFDYixLQUFLLEVBQUU7Z0NBQ0wsV0FBVyxRQUFFLE1BQU0sQ0FBQyxXQUFXLG1DQUFJLElBQUk7Z0NBQ3ZDLFFBQVEsRUFBRSxDQUFDLEtBQXNCLEVBQUUsS0FBYSxFQUFFLEVBQUU7O29DQUNsRCxPQUFPLE9BQUEsTUFBTSxDQUFDLEtBQUssMENBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxLQUFLLE1BQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQ0FDN0csQ0FBQzs2QkFDRjs0QkFDRCxVQUFVLEVBQUU7Z0NBQ1YsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTTtnQ0FDeEIsV0FBVyxFQUFFLE1BQU0sQ0FBQyxNQUFNLElBQUksRUFBRTs2QkFDakM7eUJBQ0YsQ0FBQztpQkFDSDtnQkFDRCxRQUFRLEVBQUU7b0JBQ1IsU0FBUyxFQUFFO3dCQUNULEtBQUssRUFBRSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsRUFBRTs7NEJBQzNCLE1BQU0sWUFBWSxTQUFHLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksMkNBQUcsS0FBSyxDQUFDOzRCQUNyRSxNQUFNLEtBQUssR0FBRyxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQVcsQ0FBQzs0QkFDeEQsTUFBTSxLQUFLLEdBQUcsTUFBQSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLDJDQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFXLENBQUM7NEJBQzFGLE9BQU8sT0FBQSxNQUFNLENBQUMsUUFBUSwwQ0FBRSxLQUFLLENBQUM7Z0NBQzVCLFlBQVk7Z0NBQ1osS0FBSztnQ0FDTCxLQUFLOzZCQUNOLE1BQUssR0FBRyxZQUFZLE1BQU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO3dCQUMxRCxDQUFDO3FCQUNGO2lCQUNGO2FBQ0Y7WUFDRCxJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRTtnQkFDSixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07Z0JBQ3JCLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRTs7b0JBQ3ZDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7b0JBQ3ZDLE1BQU0sTUFBTSxHQUF3Qjt3QkFDbEMsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO3dCQUNkLElBQUksRUFBRSxDQUFDLENBQUMsZUFBZSx1QkFBSSxJQUFJLENBQUMsa0JBQWtCLDBDQUFFLGFBQWEsMENBQUcsR0FBRywyQ0FBRyxlQUFlLENBQUEsSUFBSSxZQUFZO3dCQUN6RyxlQUFlLEVBQUUsQ0FBQyxDQUFDLGVBQWUsdUJBQUksSUFBSSxDQUFDLGtCQUFrQiwwQ0FBRSxhQUFhLDBDQUFHLEdBQUcsMkNBQUcsZUFBZSxDQUFBLElBQUksWUFBWTt3QkFDcEgsV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXLHVCQUFJLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsYUFBYSwwQ0FBRyxHQUFHLDJDQUFHLFdBQVcsQ0FBQSxJQUFJLFlBQVk7d0JBQ3hHLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTt3QkFDWixXQUFXLEVBQUUsQ0FBQztxQkFDZixDQUFDO29CQUNGLE9BQU8sTUFBTSxDQUFDO2dCQUNoQixDQUFDLENBQUM7YUFDSDtTQUNGLENBQUM7UUFFRixJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQzlCLGFBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxtQ0FDekIsYUFBYSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEtBQ2pDLElBQUksRUFBRSxPQUFPLEVBQ2IsU0FBUyxFQUFFLEtBQUssR0FDakIsQ0FBQztZQUNGLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxtQ0FDdEIsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQzlCLElBQUksRUFBRSxPQUFPLEVBQ2IsU0FBUyxFQUFFLEtBQUssR0FDakIsQ0FBQztTQUNIO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxNQUE0Qjs7UUFDdkQsTUFBTSxVQUFVLFNBQUcsTUFBTSxDQUFDLFVBQVUsbUNBQUksRUFBRSxDQUFDO1FBQzNDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDMUIsK0dBQStHO1lBQy9HLG1FQUFtRTtZQUNuRSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUM7WUFDbkQsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFlBQVksUUFBUSxLQUFLLENBQUMsQ0FBQztTQUN6RjtRQUNELE1BQU0sYUFBYSxHQUE2QjtZQUM5QyxPQUFPLEVBQUU7Z0JBQ1AsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLG1CQUFtQixFQUFFLEtBQUs7Z0JBQzFCLE1BQU0sRUFBRTtvQkFDTixPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVTtpQkFDNUI7Z0JBQ0QsTUFBTSxFQUFFO29CQUNOLEtBQUssRUFBRSxDQUFDOzRCQUNOLE9BQU8sRUFBRSxJQUFJOzRCQUNiLFVBQVUsRUFBRTtnQ0FDVixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNO2dDQUN4QixXQUFXLEVBQUUsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFOzZCQUNqQzs0QkFDRCxLQUFLLEVBQUU7Z0NBQ0wsUUFBUSxFQUFFLENBQUMsS0FBc0IsRUFBRSxLQUFhLEVBQUUsRUFBRTs7b0NBQ2xELE9BQU8sT0FBQSxNQUFNLENBQUMsS0FBSywwQ0FBRSxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssTUFBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dDQUM3RyxDQUFDOzZCQUNGO3lCQUNGLENBQUM7b0JBQ0YsS0FBSyxFQUFFLENBQUM7NEJBQ04sT0FBTyxFQUFFLElBQUk7NEJBQ2IsS0FBSyxFQUFFO2dDQUNMLFdBQVcsUUFBRSxNQUFNLENBQUMsV0FBVyxtQ0FBSSxJQUFJO2dDQUN2QyxRQUFRLEVBQUUsQ0FBQyxLQUFzQixFQUFFLEtBQWEsRUFBRSxFQUFFOztvQ0FDbEQsT0FBTyxPQUFBLE1BQU0sQ0FBQyxLQUFLLDBDQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxNQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7Z0NBQzdHLENBQUM7NkJBQ0Y7NEJBQ0QsT0FBTyxFQUFFLElBQUk7NEJBQ2IsVUFBVSxFQUFFO2dDQUNWLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU07Z0NBQ3hCLFdBQVcsRUFBRSxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUU7NkJBQ2pDO3lCQUNGLENBQUM7aUJBQ0g7Z0JBQ0QsUUFBUSxFQUFFO29CQUNSLFNBQVMsRUFBRTt3QkFDVCxLQUFLLEVBQUUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUU7OzRCQUMzQixNQUFNLFlBQVksU0FBRyxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLDJDQUFHLEtBQUssQ0FBQzs0QkFDckUsTUFBTSxLQUFLLEdBQUcsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFXLENBQUM7NEJBQ3hELE1BQU0sS0FBSyxHQUFHLE1BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSwyQ0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBVyxDQUFDOzRCQUMxRixPQUFPLE9BQUEsTUFBTSxDQUFDLFFBQVEsMENBQUUsS0FBSyxDQUFDO2dDQUM1QixZQUFZO2dDQUNaLEtBQUs7Z0NBQ0wsS0FBSzs2QkFDTixNQUFLLEdBQUcsWUFBWSxNQUFNLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQzt3QkFDMUQsQ0FBQztxQkFDRjtpQkFDRjthQUNGO1lBQ0QsSUFBSSxFQUFFLE1BQU07WUFDWixJQUFJLEVBQUU7Z0JBQ0osTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO2dCQUNyQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUU7O29CQUN2QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO29CQUN2QyxNQUFNLE1BQU0sR0FBd0I7d0JBQ2xDLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSzt3QkFDZCwyQkFBMkI7d0JBQzNCLGVBQWUsRUFBRSxDQUFDLENBQUMsZUFBZSx1QkFBSSxJQUFJLENBQUMsa0JBQWtCLDBDQUFFLGFBQWEsMENBQUcsR0FBRywyQ0FBRyxlQUFlLENBQUEsSUFBSSxZQUFZO3dCQUNwSCxXQUFXLEVBQUUsQ0FBQyxDQUFDLFdBQVcsdUJBQUksSUFBSSxDQUFDLGtCQUFrQiwwQ0FBRSxhQUFhLDBDQUFHLEdBQUcsMkNBQUcsV0FBVyxDQUFBLElBQUksWUFBWTt3QkFDeEcsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO3dCQUNaLFdBQVcsRUFBRSxDQUFDO3FCQUNmLENBQUM7b0JBQ0YsT0FBTyxNQUFNLENBQUM7Z0JBQ2hCLENBQUMsQ0FBQzthQUNIO1NBQ0YsQ0FBQztRQUVGLElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDOUIsYUFBYSxDQUFDLE9BQU8sQ0FBQyxRQUFRLG1DQUN6QixhQUFhLENBQUMsT0FBTyxDQUFDLFFBQVEsS0FDakMsSUFBSSxFQUFFLE9BQU8sRUFDYixTQUFTLEVBQUUsS0FBSyxHQUNqQixDQUFDO1lBQ0YsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLG1DQUN0QixhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssS0FDOUIsSUFBSSxFQUFFLE9BQU8sRUFDYixTQUFTLEVBQUUsS0FBSyxHQUNqQixDQUFDO1NBQ0g7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVPLGtCQUFrQixDQUFDLE1BQTBCOztRQUNuRCxNQUFNLFVBQVUsU0FBRyxNQUFNLENBQUMsVUFBVSxtQ0FBSSxFQUFFLENBQUM7UUFDM0MsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUMxQixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQzFFLElBQUksWUFBWSxJQUFJLENBQUMsRUFBRTtnQkFDckIsK0dBQStHO2dCQUMvRyxtRUFBbUU7Z0JBQ25FLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztnQkFDbkQsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFlBQVksUUFBUSxLQUFLLENBQUMsQ0FBQzthQUN6RjtpQkFBTTtnQkFDTCw4SEFBOEg7Z0JBQzlILG1FQUFtRTtnQkFDbkUsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsWUFBWSxHQUFHLFVBQVUsQ0FBQztnQkFDbEUsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFlBQVksUUFBUSxLQUFLLENBQUMsQ0FBQzthQUN6RjtTQUNGO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUMvQixNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLENBQUM7Z0JBQ2IsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsUUFBUSxFQUFFLE1BQU07Z0JBQ2hCLEVBQUUsRUFBRSxNQUFNO2dCQUNWLEtBQUssRUFBRTtvQkFDTCxXQUFXLFFBQUUsTUFBTSxDQUFDLFdBQVcsbUNBQUksSUFBSTtvQkFDdkMsWUFBWSxFQUFFLENBQUM7b0JBQ2YsUUFBUSxFQUFFLENBQUMsS0FBc0IsRUFBRSxLQUFhLEVBQUUsRUFBRTs7d0JBQ2xELE9BQU8sT0FBQSxNQUFNLENBQUMsS0FBSywwQ0FBRSxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUssTUFBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUM3RyxDQUFDO2lCQUNGO2dCQUNELFVBQVUsRUFBRTtvQkFDVixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNO29CQUN4QixXQUFXLEVBQUUsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFO2lCQUNqQztnQkFDRCxPQUFPLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRO2FBQzFCLENBQUMsQ0FBQztRQUNILElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxFQUFFO1lBQ25ELEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ1QsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLEVBQUUsRUFBRSxPQUFPO2dCQUNYLEtBQUssRUFBRTtvQkFDTCxXQUFXLFFBQUUsTUFBTSxDQUFDLFdBQVcsbUNBQUksSUFBSTtvQkFDdkMsWUFBWSxFQUFFLENBQUM7b0JBQ2YsUUFBUSxFQUFFLENBQUMsS0FBc0IsRUFBRSxLQUFhLEVBQUUsRUFBRTs7d0JBQ2xELE9BQU8sT0FBQSxNQUFNLENBQUMsS0FBSywwQ0FBRSxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssTUFBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNsSCxDQUFDO2lCQUNGO2dCQUNELFVBQVUsRUFBRTtvQkFDVixPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXO29CQUM3QixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVcsSUFBSSxFQUFFO2lCQUN0QztnQkFDRCxPQUFPLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRO2FBQzFCLENBQUMsQ0FBQztTQUNKO1FBQ0QsTUFBTSxhQUFhLEdBQTZCO1lBQzlDLE9BQU8sRUFBRTtnQkFDUCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsbUJBQW1CLEVBQUUsS0FBSztnQkFDMUIsTUFBTSxFQUFFO29CQUNOLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVO2lCQUM1QjtnQkFDRCxLQUFLLEVBQUU7b0JBQ0wsT0FBTyxFQUFFLElBQUk7b0JBQ2IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLO2lCQUNuQjtnQkFDRCxNQUFNLEVBQUU7b0JBQ04sS0FBSyxFQUFFLENBQUM7NEJBQ04sT0FBTyxFQUFFLElBQUk7NEJBQ2IsVUFBVSxFQUFFO2dDQUNWLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU07Z0NBQ3hCLFdBQVcsRUFBRSxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUU7NkJBQ2pDOzRCQUNELEtBQUssRUFBRTtnQ0FDTCxRQUFRLEVBQUUsQ0FBQyxLQUFzQixFQUFFLEtBQWEsRUFBRSxFQUFFOztvQ0FDbEQsT0FBTyxPQUFBLE1BQU0sQ0FBQyxLQUFLLDBDQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxNQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7Z0NBQzdHLENBQUM7NkJBQ0Y7NEJBQ0QsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUTt5QkFDM0IsQ0FBQztvQkFDRixLQUFLO2lCQUNOO2dCQUNELFFBQVEsRUFBRTtvQkFDUixTQUFTLEVBQUU7d0JBQ1QsS0FBSyxFQUFFLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxFQUFFOzs0QkFDM0IsTUFBTSxZQUFZLFNBQUcsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSwyQ0FBRyxLQUFLLENBQUM7NEJBQ3JFLE1BQU0sS0FBSyxHQUFHLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBVyxDQUFDOzRCQUN4RCxNQUFNLEtBQUssR0FBRyxNQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksMkNBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQVcsQ0FBQzs0QkFDMUYsT0FBTyxPQUFBLE1BQU0sQ0FBQyxRQUFRLDBDQUFFLEtBQUssQ0FBQztnQ0FDNUIsWUFBWTtnQ0FDWixLQUFLO2dDQUNMLEtBQUs7NkJBQ04sTUFBSyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEtBQUssTUFBTSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7d0JBQy9GLENBQUM7cUJBQ0Y7aUJBQ0Y7YUFDRjtZQUNELElBQUksRUFBRTtnQkFDSixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07Z0JBQ3JCLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRTs7b0JBQ3ZDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7b0JBQ3ZDLE1BQU0sTUFBTSxHQUF3Qjt3QkFDbEMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO3dCQUNaLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSzt3QkFDZCxJQUFJLEVBQUUsQ0FBQyxDQUFDLGVBQWUsdUJBQUksSUFBSSxDQUFDLGtCQUFrQiwwQ0FBRSxhQUFhLDBDQUFHLEdBQUcsMkNBQUcsZUFBZSxDQUFBLElBQUksWUFBWTt3QkFDekcsZUFBZSxFQUFFLENBQUMsQ0FBQyxlQUFlLHVCQUFJLElBQUksQ0FBQyxrQkFBa0IsMENBQUUsYUFBYSwwQ0FBRyxHQUFHLDJDQUFHLGVBQWUsQ0FBQSxJQUFJLFlBQVk7d0JBQ3BILFdBQVcsRUFBRSxDQUFDLENBQUMsV0FBVyx1QkFBSSxJQUFJLENBQUMsa0JBQWtCLDBDQUFFLGFBQWEsMENBQUcsR0FBRywyQ0FBRyxXQUFXLENBQUEsSUFBSSxZQUFZO3dCQUN4RyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7d0JBQ1osT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU07d0JBQ2hELFdBQVcsRUFBRSxDQUFDO3dCQUNkLEtBQUssUUFBQyxDQUFDLENBQUMsS0FBSyxtQ0FBSSxDQUFDO3FCQUNuQixDQUFDO29CQUNGLE9BQU8sTUFBTSxDQUFDO2dCQUNoQixDQUFDLENBQUM7YUFDSDtTQUNGLENBQUM7UUFFRixJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQzlCLGFBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxtQ0FDekIsYUFBYSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEtBQ2pDLElBQUksRUFBRSxPQUFPLEVBQ2IsU0FBUyxFQUFFLEtBQUssR0FDakIsQ0FBQztZQUNGLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxtQ0FDdEIsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQzlCLElBQUksRUFBRSxPQUFPLEVBQ2IsU0FBUyxFQUFFLEtBQUssR0FDakIsQ0FBQztTQUNIO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFNRCxJQUFZLFlBQVk7UUFDdEIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDMUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDMUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDMUMsT0FBTyxNQUFNLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDOUMsQ0FBQzs7O1lBM3JCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLG1nQkFBcUM7O2FBRXRDOzs7WUFyQndFLGlCQUFpQjs0Q0E2Q3JGLFFBQVEsWUFBSSxNQUFNLFNBQUMsWUFBWTs7OzBCQWxCakMsS0FBSzt1QkFPTCxTQUFTLFNBQUMsT0FBTzs4QkFDakIsU0FBUyxTQUFDLGNBQWM7MkJBQ3hCLFNBQVMsU0FBQyxXQUFXO3dDQUNyQixTQUFTLFNBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEFmdGVyVmlld0luaXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgSW5wdXQsIENoYW5nZURldGVjdG9yUmVmLCBPcHRpb25hbCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIENoYXJ0IGZyb20gJ2NoYXJ0LmpzJztcclxuaW1wb3J0IHtcclxuICBTZENoYXJ0T3B0aW9uLFxyXG4gIEJhckNoYXJ0T3B0aW9uLFxyXG4gIExpbmVDaGFydE9wdGlvbixcclxuICBQaWVDaGFydE9wdGlvbixcclxuICBCYXJMaW5lQ2hhcnRPcHRpb24sXHJcbiAgU3RhY2tBcmVhQ2hhcnRPcHRpb24sXHJcbiAgSG9yaXpvbnRhbEJhckNoYXJ0T3B0aW9uLFxyXG4gIElDaGFydENvbmZpZ3VyYXRpb24sXHJcbiAgQ0hBUlRfQ09ORklHLFxyXG4gIERvdWdobnV0Q2hhcnRPcHRpb25cclxufSBmcm9tICcuL2NoYXJ0Lm1vZGVsJztcclxuaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcclxuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2QtY2hhcnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGFydC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2hhcnQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RDaGFydCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgcENoYXJ0T3B0aW9uOiBTZENoYXJ0T3B0aW9uO1xyXG4gIGlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBzZXQgY2hhcnRPcHRpb24oY2hhcnRPcHRpb246IFNkQ2hhcnRPcHRpb24pIHtcclxuICAgIHRoaXMucENoYXJ0T3B0aW9uID0gY2hhcnRPcHRpb247XHJcbiAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xyXG4gICAgICB0aGlzLnJlbmRlckNoYXJ0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKCdjaGFydCcpIGNoYXJ0UmVmOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2NoYXJ0V3JhcHBlcicpIGNoYXJ0V3JhcHBlclJlZjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdjaGFydEF4aXMnKSBjaGFydEF4aXNSZWY6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnY2hhcnRBcmVhV3JhcHBlckV4dGVuZCcpIGNoYXJ0QXJlYVdyYXBwZXJFeHRlbmRSZWY6IEVsZW1lbnRSZWY7XHJcbiAgY2hhcnQ6IENoYXJ0O1xyXG4gIHZpc2libGUgPSB0cnVlO1xyXG4gIGhlaWdodCA9ICczMDBweCc7XHJcbiAgcHJpdmF0ZSBjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KENIQVJUX0NPTkZJRykgcHJpdmF0ZSBjaGFydENvbmZpZ3VyYXRpb246IElDaGFydENvbmZpZ3VyYXRpb25cclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5yZW5kZXJDaGFydCh0cnVlKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyByZW5kZXJDaGFydChmaXJzdFJlbmRlcj86IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuaGVpZ2h0ID0gdGhpcy5wQ2hhcnRPcHRpb24/LmhlaWdodCB8fCAnMzAwcHgnO1xyXG4gICAgaWYgKCFmaXJzdFJlbmRlcikge1xyXG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDIwMCkpO1xyXG4gICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDIwMCkpO1xyXG4gICAgaWYgKHRoaXMuY2hhcnRSZWY/Lm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgY29uc3QgY2FudmFzID0gdGhpcy5jaGFydFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxDYW52YXNFbGVtZW50O1xyXG4gICAgICB0aGlzLmN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgICBzd2l0Y2ggKHRoaXMucENoYXJ0T3B0aW9uLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdwaWUnOlxyXG4gICAgICAgICAgdGhpcy5yZW5kZXJQaWVDaGFydCh0aGlzLnBDaGFydE9wdGlvbik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdiYXInOlxyXG4gICAgICAgICAgdGhpcy5yZW5kZXJCYXJDaGFydCh0aGlzLnBDaGFydE9wdGlvbik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdob3Jpem9udGFsQmFyJzpcclxuICAgICAgICAgIHRoaXMucmVuZGVySG9yaXpvbnRhbEJhckNoYXJ0KHRoaXMucENoYXJ0T3B0aW9uKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2xpbmUnOlxyXG4gICAgICAgICAgdGhpcy5yZW5kZXJMaW5lQ2hhcnQodGhpcy5wQ2hhcnRPcHRpb24pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnc3RhY2tBcmVhJzpcclxuICAgICAgICAgIHRoaXMucmVuZGVyU3RhY2tBcmVhQ2hhcnQodGhpcy5wQ2hhcnRPcHRpb24pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnYmFybGluZSc6XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckJhckxpbmVDaGFydCh0aGlzLnBDaGFydE9wdGlvbik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdkb3VnaG51dCc6XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckRvdWdobnV0Q2hhcnQodGhpcy5wQ2hhcnRPcHRpb24pO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW5kZXJQaWVDaGFydChvcHRpb246IFBpZUNoYXJ0T3B0aW9uKSB7XHJcbiAgICBjb25zdCBjb25maWd1cmF0aW9uOiBDaGFydC5DaGFydENvbmZpZ3VyYXRpb24gPSB7XHJcbiAgICAgIHR5cGU6ICdwaWUnLFxyXG4gICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcclxuICAgICAgICB0aXRsZToge1xyXG4gICAgICAgICAgZGlzcGxheTogdHJ1ZSxcclxuICAgICAgICAgIHRleHQ6IG9wdGlvbi50aXRsZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGVnZW5kOiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiAhb3B0aW9uLmhpZGVMZWdlbmRcclxuICAgICAgICB9LFxyXG4gICAgICAgIHRvb2x0aXBzOiB7XHJcbiAgICAgICAgICBjYWxsYmFja3M6IHtcclxuICAgICAgICAgICAgbGFiZWw6ICh0b29sdGlwSXRlbSwgZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRhdGFzZXRMYWJlbCA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmxhYmVsO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gZGF0YT8ubGFiZWxzW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5kYXRhW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBudW1iZXI7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50b29sdGlwcz8ubGFiZWwoe1xyXG4gICAgICAgICAgICAgICAgZGF0YXNldExhYmVsLFxyXG4gICAgICAgICAgICAgICAgbGFiZWwsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgICAgIH0pIHx8IGAke2RhdGFzZXRMYWJlbCA/IGBbJHtkYXRhc2V0TGFiZWx9XSBgIDogJyd9JHtsYWJlbH0gOiAke051bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBsYWJlbHM6IG9wdGlvbi5kYXRhc2V0cz8ubWFwKGUgPT4gZS5sYWJlbCkgfHwgW10sXHJcbiAgICAgICAgZGF0YXNldHM6IFt7XHJcbiAgICAgICAgICBkYXRhOiBvcHRpb24uZGF0YXNldHM/Lm1hcChlID0+IGUudmFsdWUpIHx8IFtdLFxyXG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBvcHRpb24uZGF0YXNldHM/Lm1hcCgoZSwgaWR4KSA9PiBlLmJhY2tncm91bmRDb2xvclxyXG4gICAgICAgICAgICB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJhY2tncm91bmRDb2xvclxyXG4gICAgICAgICAgICB8fCB0aGlzLmR5bmFtaWNDb2xvcikgfHwgW11cclxuICAgICAgICB9XVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChvcHRpb24uaG92ZXIgPT09ICdTaG93QWxsJykge1xyXG4gICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMgPSB7XHJcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzLFxyXG4gICAgICAgIG1vZGU6ICdpbmRleCcsXHJcbiAgICAgICAgaW50ZXJzZWN0OiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIgPSB7XHJcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyLFxyXG4gICAgICAgIG1vZGU6ICdpbmRleCcsXHJcbiAgICAgICAgaW50ZXJzZWN0OiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQodGhpcy5jdHgsIGNvbmZpZ3VyYXRpb24pO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVuZGVyRG91Z2hudXRDaGFydChvcHRpb246RG91Z2hudXRDaGFydE9wdGlvbil7XHJcbiAgICBjb25zdCBjb25maWd1cmF0aW9uOiBDaGFydC5DaGFydENvbmZpZ3VyYXRpb24gPSB7XHJcbiAgICAgIHR5cGU6ICdkb3VnaG51dCcsXHJcbiAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICByZXNwb25zaXZlOiB0cnVlLFxyXG4gICAgICAgIG1haW50YWluQXNwZWN0UmF0aW86ZmFsc2UsXHJcbiAgICAgICAgdGl0bGU6IHtcclxuICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICB0ZXh0OiBvcHRpb24udGl0bGVcclxuICAgICAgICB9LFxyXG4gICAgICAgIGxlZ2VuZDoge1xyXG4gICAgICAgICAgZGlzcGxheTogIW9wdGlvbi5oaWRlTGVnZW5kXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0b29sdGlwczoge1xyXG4gICAgICAgICAgY2FsbGJhY2tzOiB7XHJcbiAgICAgICAgICAgIGxhYmVsOiAodG9vbHRpcEl0ZW0sIGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBkYXRhc2V0TGFiZWwgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5sYWJlbDtcclxuICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IGRhdGE/LmxhYmVsc1t0b29sdGlwSXRlbS5pbmRleF0gYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8uZGF0YVt0b29sdGlwSXRlbS5pbmRleF0gYXMgbnVtYmVyO1xyXG4gICAgICAgICAgICAgIHJldHVybiBvcHRpb24udG9vbHRpcHM/LmxhYmVsKHtcclxuICAgICAgICAgICAgICAgIGRhdGFzZXRMYWJlbCxcclxuICAgICAgICAgICAgICAgIGxhYmVsLFxyXG4gICAgICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgICB9KSB8fCBgJHtkYXRhc2V0TGFiZWwgPyBgWyR7ZGF0YXNldExhYmVsfV0gYCA6ICcnfSR7bGFiZWx9IDogJHtOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKX1gO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgbGFiZWxzOiBvcHRpb24uZGF0YXNldHM/Lm1hcChlID0+IGUubGFiZWwpIHx8IFtdLFxyXG4gICAgICAgIGRhdGFzZXRzOiBbe1xyXG4gICAgICAgICAgZGF0YTogb3B0aW9uLmRhdGFzZXRzPy5tYXAoZSA9PiBlLnZhbHVlKSB8fCBbXSxcclxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogb3B0aW9uLmRhdGFzZXRzPy5tYXAoKGUsIGlkeCkgPT4gZS5iYWNrZ3JvdW5kQ29sb3JcclxuICAgICAgICAgICAgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5iYWNrZ3JvdW5kQ29sb3JcclxuICAgICAgICAgICAgfHwgdGhpcy5keW5hbWljQ29sb3IpIHx8IFtdXHJcbiAgICAgICAgfV1cclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAob3B0aW9uLmhvdmVyID09PSAnU2hvd0FsbCcpIHtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyxcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlcixcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHRoaXMuY3R4LCBjb25maWd1cmF0aW9uKTtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbmRlckJhckNoYXJ0KG9wdGlvbjogQmFyQ2hhcnRPcHRpb24pIHtcclxuICAgIGNvbnN0IGxhYmVsV2lkdGggPSBvcHRpb24ubGFiZWxXaWR0aCA/PyA1MDtcclxuICAgIGlmIChvcHRpb24uZGF0YXNldHMubGVuZ3RoKSB7XHJcbiAgICAgIC8vIGNvbnN0IG5ld3dpZHRoID0gTWF0aC5tYXgob3B0aW9uLmxhYmVscy5sZW5ndGggKiBvcHRpb24uZGF0YXNldHMubGVuZ3RoICogbGFiZWxXaWR0aCwgJCh0aGlzLmNoYXJ0V3JhcHBlclJlZi5uYXRpdmVFbGVtZW50KS53aWR0aCgpKTtcclxuICAgICAgLy8gJCh0aGlzLmNoYXJ0QXJlYVdyYXBwZXJFeHRlbmRSZWYubmF0aXZlRWxlbWVudCkud2lkdGgobmV3d2lkdGgpO1xyXG4gICAgICBjb25zdCBuZXd3aWR0aCA9IG9wdGlvbi5sYWJlbHMubGVuZ3RoICogb3B0aW9uLmRhdGFzZXRzLmxlbmd0aCAqIGxhYmVsV2lkdGg7XHJcbiAgICAgICQodGhpcy5jaGFydEFyZWFXcmFwcGVyRXh0ZW5kUmVmLm5hdGl2ZUVsZW1lbnQpLmNzcygnd2lkdGgnLCBgbWF4KDEwMCUsJHtuZXd3aWR0aH1weClgKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb246IENoYXJ0LkNoYXJ0Q29uZmlndXJhdGlvbiA9IHtcclxuICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgIHJlc3BvbnNpdmU6IHRydWUsXHJcbiAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXHJcbiAgICAgICAgbGVnZW5kOiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiAhb3B0aW9uLmhpZGVMZWdlbmRcclxuICAgICAgICB9LFxyXG4gICAgICAgIHNjYWxlczoge1xyXG4gICAgICAgICAgeEF4ZXM6IFt7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICAgIHNjYWxlTGFiZWw6IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi54VGl0bGUsXHJcbiAgICAgICAgICAgICAgbGFiZWxTdHJpbmc6IG9wdGlvbi54VGl0bGUgfHwgJydcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgdGlja3M6IHtcclxuICAgICAgICAgICAgICBjYWxsYmFjazogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24udGlja3M/LnhMYWJlbCh2YWx1ZSwgaW5kZXgpIHx8IChOdW1iZXIuaXNOdW1iZXIodmFsdWUpID8gTnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSkgOiB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XSxcclxuICAgICAgICAgIHlBeGVzOiBbe1xyXG4gICAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICAgICAgICB0aWNrczoge1xyXG4gICAgICAgICAgICAgIGJlZ2luQXRaZXJvOiBvcHRpb24uYmVnaW5BdFplcm8gPz8gdHJ1ZSxcclxuICAgICAgICAgICAgICBjYWxsYmFjazogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24udGlja3M/LnlMYWJlbCh2YWx1ZSwgaW5kZXgpIHx8IChOdW1iZXIuaXNOdW1iZXIodmFsdWUpID8gTnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSkgOiB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzY2FsZUxhYmVsOiB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogISFvcHRpb24ueVRpdGxlLFxyXG4gICAgICAgICAgICAgIGxhYmVsU3RyaW5nOiBvcHRpb24ueVRpdGxlIHx8ICcnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1dXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0b29sdGlwczoge1xyXG4gICAgICAgICAgY2FsbGJhY2tzOiB7XHJcbiAgICAgICAgICAgIGxhYmVsOiAodG9vbHRpcEl0ZW0sIGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBkYXRhc2V0TGFiZWwgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5sYWJlbDtcclxuICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IGRhdGE/LmxhYmVsc1t0b29sdGlwSXRlbS5pbmRleF0gYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8uZGF0YVt0b29sdGlwSXRlbS5pbmRleF0gYXMgbnVtYmVyO1xyXG4gICAgICAgICAgICAgIHJldHVybiBvcHRpb24udG9vbHRpcHM/LmxhYmVsKHtcclxuICAgICAgICAgICAgICAgIGRhdGFzZXRMYWJlbCxcclxuICAgICAgICAgICAgICAgIGxhYmVsLFxyXG4gICAgICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgICB9KSB8fCBgJHtkYXRhc2V0TGFiZWx9IDogJHtOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKX1gO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB0eXBlOiAnYmFyJyxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGxhYmVsczogb3B0aW9uLmxhYmVscyxcclxuICAgICAgICBkYXRhc2V0czogb3B0aW9uLmRhdGFzZXRzLm1hcCgoZSwgaWR4KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBkeW5hbWljQ29sb3IgPSB0aGlzLmR5bmFtaWNDb2xvcjtcclxuICAgICAgICAgIGNvbnN0IHJlc3VsdDogQ2hhcnQuQ2hhcnREYXRhU2V0cyA9IHtcclxuICAgICAgICAgICAgbGFiZWw6IGUubGFiZWwsXHJcbiAgICAgICAgICAgIGZpbGw6IGUuYmFja2dyb3VuZENvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYmFja2dyb3VuZENvbG9yIHx8IGR5bmFtaWNDb2xvcixcclxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBlLmJhY2tncm91bmRDb2xvciB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJhY2tncm91bmRDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGRhdGE6IGUuZGF0YSxcclxuICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2tcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaWYgKG9wdGlvbi5ob3ZlciA9PT0gJ1Nob3dBbGwnKSB7XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlciA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydCh0aGlzLmN0eCwgY29uZmlndXJhdGlvbik7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW5kZXJIb3Jpem9udGFsQmFyQ2hhcnQob3B0aW9uOiBIb3Jpem9udGFsQmFyQ2hhcnRPcHRpb24pIHtcclxuICAgIC8vIGNvbnN0IGxhYmVsV2lkdGggPSBvcHRpb24ubGFiZWxXaWR0aCA/PyA1MDtcclxuICAgIC8vIGlmIChvcHRpb24uZGF0YXNldHMubGVuZ3RoKSB7XHJcbiAgICAvLyAgIGNvbnN0IG5ld3dpZHRoID0gTWF0aC5tYXgob3B0aW9uLmxhYmVscy5sZW5ndGggKiBvcHRpb24uZGF0YXNldHMubGVuZ3RoICogbGFiZWxXaWR0aCwgJCh0aGlzLmNoYXJ0V3JhcHBlclJlZi5uYXRpdmVFbGVtZW50KS53aWR0aCgpKTtcclxuICAgIC8vICAgJCh0aGlzLmNoYXJ0QXJlYVdyYXBwZXJFeHRlbmRSZWYubmF0aXZlRWxlbWVudCkud2lkdGgobmV3d2lkdGgpO1xyXG4gICAgLy8gfVxyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbjogQ2hhcnQuQ2hhcnRDb25maWd1cmF0aW9uID0ge1xyXG4gICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcclxuICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiBmYWxzZSxcclxuICAgICAgICBsZWdlbmQ6IHtcclxuICAgICAgICAgIGRpc3BsYXk6ICFvcHRpb24uaGlkZUxlZ2VuZFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc2NhbGVzOiB7XHJcbiAgICAgICAgICB4QXhlczogW3tcclxuICAgICAgICAgICAgZGlzcGxheTogdHJ1ZSxcclxuICAgICAgICAgICAgc2NhbGVMYWJlbDoge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICEhb3B0aW9uLnhUaXRsZSxcclxuICAgICAgICAgICAgICBsYWJlbFN0cmluZzogb3B0aW9uLnhUaXRsZSB8fCAnJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB0aWNrczoge1xyXG4gICAgICAgICAgICAgIGJlZ2luQXRaZXJvOiBvcHRpb24uYmVnaW5BdFplcm8gPz8gdHJ1ZSxcclxuICAgICAgICAgICAgICBjYWxsYmFjazogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24udGlja3M/LnhMYWJlbCh2YWx1ZSwgaW5kZXgpIHx8IChOdW1iZXIuaXNOdW1iZXIodmFsdWUpID8gTnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSkgOiB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XSxcclxuICAgICAgICAgIHlBeGVzOiBbe1xyXG4gICAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICAgICAgICB0aWNrczoge1xyXG4gICAgICAgICAgICAgIGNhbGxiYWNrOiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50aWNrcz8ueUxhYmVsKHZhbHVlLCBpbmRleCkgfHwgKE51bWJlci5pc051bWJlcih2YWx1ZSkgPyBOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKSA6IHZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHNjYWxlTGFiZWw6IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi55VGl0bGUsXHJcbiAgICAgICAgICAgICAgbGFiZWxTdHJpbmc6IG9wdGlvbi55VGl0bGUgfHwgJydcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfV1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRvb2x0aXBzOiB7XHJcbiAgICAgICAgICBjYWxsYmFja3M6IHtcclxuICAgICAgICAgICAgbGFiZWw6ICh0b29sdGlwSXRlbSwgZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRhdGFzZXRMYWJlbCA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmxhYmVsO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gZGF0YT8ubGFiZWxzW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5kYXRhW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBudW1iZXI7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50b29sdGlwcz8ubGFiZWwoe1xyXG4gICAgICAgICAgICAgICAgZGF0YXNldExhYmVsLFxyXG4gICAgICAgICAgICAgICAgbGFiZWwsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgICAgIH0pIHx8IGAke2RhdGFzZXRMYWJlbH0gOiAke051bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHR5cGU6ICdob3Jpem9udGFsQmFyJyxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGxhYmVsczogb3B0aW9uLmxhYmVscyxcclxuICAgICAgICBkYXRhc2V0czogb3B0aW9uLmRhdGFzZXRzLm1hcCgoZSwgaWR4KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBkeW5hbWljQ29sb3IgPSB0aGlzLmR5bmFtaWNDb2xvcjtcclxuICAgICAgICAgIGNvbnN0IHJlc3VsdDogQ2hhcnQuQ2hhcnREYXRhU2V0cyA9IHtcclxuICAgICAgICAgICAgbGFiZWw6IGUubGFiZWwsXHJcbiAgICAgICAgICAgIGZpbGw6IGUuYmFja2dyb3VuZENvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYmFja2dyb3VuZENvbG9yIHx8IGR5bmFtaWNDb2xvcixcclxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBlLmJhY2tncm91bmRDb2xvciB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJhY2tncm91bmRDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGRhdGE6IGUuZGF0YSxcclxuICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2tcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaWYgKG9wdGlvbi5ob3ZlciA9PT0gJ1Nob3dBbGwnKSB7XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlciA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydCh0aGlzLmN0eCwgY29uZmlndXJhdGlvbik7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW5kZXJMaW5lQ2hhcnQob3B0aW9uOiBMaW5lQ2hhcnRPcHRpb24pIHtcclxuICAgIGNvbnN0IGxhYmVsV2lkdGggPSBvcHRpb24ubGFiZWxXaWR0aCA/PyA1MDtcclxuICAgIGlmIChvcHRpb24uZGF0YXNldHMubGVuZ3RoKSB7XHJcbiAgICAgIC8vIGNvbnN0IG5ld3dpZHRoID0gTWF0aC5tYXgob3B0aW9uLmxhYmVscy5sZW5ndGggKiBsYWJlbFdpZHRoLCAkKHRoaXMuY2hhcnRXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKCkpO1xyXG4gICAgICAvLyAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS53aWR0aChuZXd3aWR0aCk7XHJcbiAgICAgIGNvbnN0IG5ld3dpZHRoID0gb3B0aW9uLmxhYmVscy5sZW5ndGggKiBsYWJlbFdpZHRoO1xyXG4gICAgICAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS5jc3MoJ3dpZHRoJywgYG1heCgxMDAlLCR7bmV3d2lkdGh9cHgpYCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb25maWd1cmF0aW9uOiBDaGFydC5DaGFydENvbmZpZ3VyYXRpb24gPSB7XHJcbiAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICByZXNwb25zaXZlOiB0cnVlLFxyXG4gICAgICAgIG1haW50YWluQXNwZWN0UmF0aW86IGZhbHNlLFxyXG4gICAgICAgIGxlZ2VuZDoge1xyXG4gICAgICAgICAgZGlzcGxheTogIW9wdGlvbi5oaWRlTGVnZW5kXHJcbiAgICAgICAgfSxcclxuICAgICAgICBzY2FsZXM6IHtcclxuICAgICAgICAgIHhBeGVzOiBbe1xyXG4gICAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICAgICAgICBzY2FsZUxhYmVsOiB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogISFvcHRpb24ueFRpdGxlLFxyXG4gICAgICAgICAgICAgIGxhYmVsU3RyaW5nOiBvcHRpb24ueFRpdGxlIHx8ICcnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgICAgICAgY2FsbGJhY2s6ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRpY2tzPy54TGFiZWwodmFsdWUsIGluZGV4KSB8fCAoTnVtYmVyLmlzTnVtYmVyKHZhbHVlKSA/IE51bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpIDogdmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH1dLFxyXG4gICAgICAgICAgeUF4ZXM6IFt7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgICAgICAgYmVnaW5BdFplcm86IG9wdGlvbi5iZWdpbkF0WmVybyA/PyB0cnVlLFxyXG4gICAgICAgICAgICAgIGNhbGxiYWNrOiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50aWNrcz8ueUxhYmVsKHZhbHVlLCBpbmRleCkgfHwgKE51bWJlci5pc051bWJlcih2YWx1ZSkgPyBOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKSA6IHZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHNjYWxlTGFiZWw6IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi55VGl0bGUsXHJcbiAgICAgICAgICAgICAgbGFiZWxTdHJpbmc6IG9wdGlvbi55VGl0bGUgfHwgJydcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfV1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRvb2x0aXBzOiB7XHJcbiAgICAgICAgICBjYWxsYmFja3M6IHtcclxuICAgICAgICAgICAgbGFiZWw6ICh0b29sdGlwSXRlbSwgZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRhdGFzZXRMYWJlbCA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmxhYmVsO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gZGF0YT8ubGFiZWxzW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5kYXRhW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBudW1iZXI7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50b29sdGlwcz8ubGFiZWwoe1xyXG4gICAgICAgICAgICAgICAgZGF0YXNldExhYmVsLFxyXG4gICAgICAgICAgICAgICAgbGFiZWwsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgICAgIH0pIHx8IGAke2RhdGFzZXRMYWJlbH0gOiAke051bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHR5cGU6ICdsaW5lJyxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGxhYmVsczogb3B0aW9uLmxhYmVscyxcclxuICAgICAgICBkYXRhc2V0czogb3B0aW9uLmRhdGFzZXRzLm1hcCgoZSwgaWR4KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBkeW5hbWljQ29sb3IgPSB0aGlzLmR5bmFtaWNDb2xvcjtcclxuICAgICAgICAgIGNvbnN0IHJlc3VsdDogQ2hhcnQuQ2hhcnREYXRhU2V0cyA9IHtcclxuICAgICAgICAgICAgbGFiZWw6IGUubGFiZWwsXHJcbiAgICAgICAgICAgIGZpbGw6IGUuYmFja2dyb3VuZENvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYmFja2dyb3VuZENvbG9yIHx8IGR5bmFtaWNDb2xvcixcclxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBlLmJhY2tncm91bmRDb2xvciB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJhY2tncm91bmRDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGJvcmRlckNvbG9yOiBlLmJvcmRlckNvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYm9yZGVyQ29sb3IgfHwgZHluYW1pY0NvbG9yLFxyXG4gICAgICAgICAgICBkYXRhOiBlLmRhdGEsXHJcbiAgICAgICAgICAgIGxpbmVUZW5zaW9uOiAwLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAob3B0aW9uLmhvdmVyID09PSAnU2hvd0FsbCcpIHtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyxcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlcixcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHRoaXMuY3R4LCBjb25maWd1cmF0aW9uKTtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbmRlclN0YWNrQXJlYUNoYXJ0KG9wdGlvbjogU3RhY2tBcmVhQ2hhcnRPcHRpb24pIHtcclxuICAgIGNvbnN0IGxhYmVsV2lkdGggPSBvcHRpb24ubGFiZWxXaWR0aCA/PyA1MDtcclxuICAgIGlmIChvcHRpb24uZGF0YXNldHMubGVuZ3RoKSB7XHJcbiAgICAgIC8vIGNvbnN0IG5ld3dpZHRoID0gTWF0aC5tYXgob3B0aW9uLmxhYmVscy5sZW5ndGggKiBsYWJlbFdpZHRoLCAkKHRoaXMuY2hhcnRXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKCkpO1xyXG4gICAgICAvLyAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS53aWR0aChuZXd3aWR0aCk7XHJcbiAgICAgIGNvbnN0IG5ld3dpZHRoID0gb3B0aW9uLmxhYmVscy5sZW5ndGggKiBsYWJlbFdpZHRoO1xyXG4gICAgICAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS5jc3MoJ3dpZHRoJywgYG1heCgxMDAlLCR7bmV3d2lkdGh9cHgpYCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb25maWd1cmF0aW9uOiBDaGFydC5DaGFydENvbmZpZ3VyYXRpb24gPSB7XHJcbiAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICByZXNwb25zaXZlOiB0cnVlLFxyXG4gICAgICAgIG1haW50YWluQXNwZWN0UmF0aW86IGZhbHNlLFxyXG4gICAgICAgIGxlZ2VuZDoge1xyXG4gICAgICAgICAgZGlzcGxheTogIW9wdGlvbi5oaWRlTGVnZW5kXHJcbiAgICAgICAgfSxcclxuICAgICAgICBzY2FsZXM6IHtcclxuICAgICAgICAgIHhBeGVzOiBbe1xyXG4gICAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICAgICAgICBzY2FsZUxhYmVsOiB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogISFvcHRpb24ueFRpdGxlLFxyXG4gICAgICAgICAgICAgIGxhYmVsU3RyaW5nOiBvcHRpb24ueFRpdGxlIHx8ICcnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgICAgICAgY2FsbGJhY2s6ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRpY2tzPy54TGFiZWwodmFsdWUsIGluZGV4KSB8fCAoTnVtYmVyLmlzTnVtYmVyKHZhbHVlKSA/IE51bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpIDogdmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH1dLFxyXG4gICAgICAgICAgeUF4ZXM6IFt7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgICAgICAgYmVnaW5BdFplcm86IG9wdGlvbi5iZWdpbkF0WmVybyA/PyB0cnVlLFxyXG4gICAgICAgICAgICAgIGNhbGxiYWNrOiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50aWNrcz8ueUxhYmVsKHZhbHVlLCBpbmRleCkgfHwgKE51bWJlci5pc051bWJlcih2YWx1ZSkgPyBOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKSA6IHZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN0YWNrZWQ6IHRydWUsXHJcbiAgICAgICAgICAgIHNjYWxlTGFiZWw6IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi55VGl0bGUsXHJcbiAgICAgICAgICAgICAgbGFiZWxTdHJpbmc6IG9wdGlvbi55VGl0bGUgfHwgJydcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfV1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRvb2x0aXBzOiB7XHJcbiAgICAgICAgICBjYWxsYmFja3M6IHtcclxuICAgICAgICAgICAgbGFiZWw6ICh0b29sdGlwSXRlbSwgZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRhdGFzZXRMYWJlbCA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmxhYmVsO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gZGF0YT8ubGFiZWxzW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5kYXRhW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBudW1iZXI7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50b29sdGlwcz8ubGFiZWwoe1xyXG4gICAgICAgICAgICAgICAgZGF0YXNldExhYmVsLFxyXG4gICAgICAgICAgICAgICAgbGFiZWwsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgICAgIH0pIHx8IGAke2RhdGFzZXRMYWJlbH0gOiAke051bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHR5cGU6ICdsaW5lJyxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGxhYmVsczogb3B0aW9uLmxhYmVscyxcclxuICAgICAgICBkYXRhc2V0czogb3B0aW9uLmRhdGFzZXRzLm1hcCgoZSwgaWR4KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBkeW5hbWljQ29sb3IgPSB0aGlzLmR5bmFtaWNDb2xvcjtcclxuICAgICAgICAgIGNvbnN0IHJlc3VsdDogQ2hhcnQuQ2hhcnREYXRhU2V0cyA9IHtcclxuICAgICAgICAgICAgbGFiZWw6IGUubGFiZWwsXHJcbiAgICAgICAgICAgIC8vIGZpbGw6IGUuYmFja2dyb3VuZENvbG9yLFxyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGUuYmFja2dyb3VuZENvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYmFja2dyb3VuZENvbG9yIHx8IGR5bmFtaWNDb2xvcixcclxuICAgICAgICAgICAgYm9yZGVyQ29sb3I6IGUuYm9yZGVyQ29sb3IgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5ib3JkZXJDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGRhdGE6IGUuZGF0YSxcclxuICAgICAgICAgICAgbGluZVRlbnNpb246IDAsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChvcHRpb24uaG92ZXIgPT09ICdTaG93QWxsJykge1xyXG4gICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMgPSB7XHJcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzLFxyXG4gICAgICAgIG1vZGU6ICdpbmRleCcsXHJcbiAgICAgICAgaW50ZXJzZWN0OiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIgPSB7XHJcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyLFxyXG4gICAgICAgIG1vZGU6ICdpbmRleCcsXHJcbiAgICAgICAgaW50ZXJzZWN0OiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQodGhpcy5jdHgsIGNvbmZpZ3VyYXRpb24pO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVuZGVyQmFyTGluZUNoYXJ0KG9wdGlvbjogQmFyTGluZUNoYXJ0T3B0aW9uKSB7XHJcbiAgICBjb25zdCBsYWJlbFdpZHRoID0gb3B0aW9uLmxhYmVsV2lkdGggPz8gNTA7XHJcbiAgICBpZiAob3B0aW9uLmRhdGFzZXRzLmxlbmd0aCkge1xyXG4gICAgICBjb25zdCBudW1iZXJPZkJhcnMgPSBvcHRpb24uZGF0YXNldHMuZmlsdGVyKGUgPT4gZS50eXBlID09PSAnYmFyJykubGVuZ3RoO1xyXG4gICAgICBpZiAobnVtYmVyT2ZCYXJzIDw9IDEpIHtcclxuICAgICAgICAvLyBjb25zdCBuZXd3aWR0aCA9IE1hdGgubWF4KG9wdGlvbi5sYWJlbHMubGVuZ3RoICogbGFiZWxXaWR0aCwgJCh0aGlzLmNoYXJ0V3JhcHBlclJlZi5uYXRpdmVFbGVtZW50KS53aWR0aCgpKTtcclxuICAgICAgICAvLyAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS53aWR0aChuZXd3aWR0aCk7XHJcbiAgICAgICAgY29uc3QgbmV3d2lkdGggPSBvcHRpb24ubGFiZWxzLmxlbmd0aCAqIGxhYmVsV2lkdGg7XHJcbiAgICAgICAgJCh0aGlzLmNoYXJ0QXJlYVdyYXBwZXJFeHRlbmRSZWYubmF0aXZlRWxlbWVudCkuY3NzKCd3aWR0aCcsIGBtYXgoMTAwJSwke25ld3dpZHRofXB4KWApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIGNvbnN0IG5ld3dpZHRoID0gTWF0aC5tYXgob3B0aW9uLmxhYmVscy5sZW5ndGggKiBudW1iZXJPZkJhcnMgKiBsYWJlbFdpZHRoLCAkKHRoaXMuY2hhcnRXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKCkpO1xyXG4gICAgICAgIC8vICQodGhpcy5jaGFydEFyZWFXcmFwcGVyRXh0ZW5kUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKG5ld3dpZHRoKTtcclxuICAgICAgICBjb25zdCBuZXd3aWR0aCA9IG9wdGlvbi5sYWJlbHMubGVuZ3RoICogbnVtYmVyT2ZCYXJzICogbGFiZWxXaWR0aDtcclxuICAgICAgICAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS5jc3MoJ3dpZHRoJywgYG1heCgxMDAlLCR7bmV3d2lkdGh9cHgpYCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IGxlZnRJZCA9IGBJJHt1dWlkLnY0KCl9YDtcclxuICAgIGNvbnN0IHJpZ2h0SWQgPSBgSSR7dXVpZC52NCgpfWA7XHJcbiAgICBjb25zdCB5QXhlcyA9IFt7XHJcbiAgICAgIHR5cGU6ICdsaW5lYXInLFxyXG4gICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICBwb3NpdGlvbjogJ2xlZnQnLFxyXG4gICAgICBpZDogbGVmdElkLFxyXG4gICAgICB0aWNrczoge1xyXG4gICAgICAgIGJlZ2luQXRaZXJvOiBvcHRpb24uYmVnaW5BdFplcm8gPz8gdHJ1ZSxcclxuICAgICAgICBzdWdnZXN0ZWRNaW46IDAsXHJcbiAgICAgICAgY2FsbGJhY2s6ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gb3B0aW9uLnRpY2tzPy55TGFiZWwodmFsdWUsIGluZGV4KSB8fCAoTnVtYmVyLmlzTnVtYmVyKHZhbHVlKSA/IE51bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpIDogdmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgc2NhbGVMYWJlbDoge1xyXG4gICAgICAgIGRpc3BsYXk6ICEhb3B0aW9uLnlUaXRsZSxcclxuICAgICAgICBsYWJlbFN0cmluZzogb3B0aW9uLnlUaXRsZSB8fCAnJyxcclxuICAgICAgfSxcclxuICAgICAgc3RhY2tlZDohIW9wdGlvbi55U3RhY2tlZCxcclxuICAgIH1dO1xyXG4gICAgaWYgKG9wdGlvbi5kYXRhc2V0cy5zb21lKGUgPT4gZS55QWxpZ24gPT09ICdyaWdodCcpKSB7XHJcbiAgICAgIHlBeGVzLnB1c2goe1xyXG4gICAgICAgIHR5cGU6ICdsaW5lYXInLFxyXG4gICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgcG9zaXRpb246ICdyaWdodCcsXHJcbiAgICAgICAgaWQ6IHJpZ2h0SWQsXHJcbiAgICAgICAgdGlja3M6IHtcclxuICAgICAgICAgIGJlZ2luQXRaZXJvOiBvcHRpb24uYmVnaW5BdFplcm8gPz8gdHJ1ZSxcclxuICAgICAgICAgIHN1Z2dlc3RlZE1pbjogMCxcclxuICAgICAgICAgIGNhbGxiYWNrOiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRpY2tzPy55UmlnaHRMYWJlbCh2YWx1ZSwgaW5kZXgpIHx8IChOdW1iZXIuaXNOdW1iZXIodmFsdWUpID8gTnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSkgOiB2YWx1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBzY2FsZUxhYmVsOiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi55UmlnaHRUaXRsZSxcclxuICAgICAgICAgIGxhYmVsU3RyaW5nOiBvcHRpb24ueVJpZ2h0VGl0bGUgfHwgJydcclxuICAgICAgICB9LFxyXG4gICAgICAgIHN0YWNrZWQ6ISFvcHRpb24ueVN0YWNrZWQsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbjogQ2hhcnQuQ2hhcnRDb25maWd1cmF0aW9uID0ge1xyXG4gICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcclxuICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiBmYWxzZSxcclxuICAgICAgICBsZWdlbmQ6IHtcclxuICAgICAgICAgIGRpc3BsYXk6ICFvcHRpb24uaGlkZUxlZ2VuZFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdGl0bGU6IHtcclxuICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICB0ZXh0OiBvcHRpb24udGl0bGVcclxuICAgICAgICB9LFxyXG4gICAgICAgIHNjYWxlczoge1xyXG4gICAgICAgICAgeEF4ZXM6IFt7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICAgIHNjYWxlTGFiZWw6IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi54VGl0bGUsXHJcbiAgICAgICAgICAgICAgbGFiZWxTdHJpbmc6IG9wdGlvbi54VGl0bGUgfHwgJydcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgdGlja3M6IHtcclxuICAgICAgICAgICAgICBjYWxsYmFjazogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24udGlja3M/LnhMYWJlbCh2YWx1ZSwgaW5kZXgpIHx8IChOdW1iZXIuaXNOdW1iZXIodmFsdWUpID8gTnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSkgOiB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdGFja2VkOiAhIW9wdGlvbi54U3RhY2tlZFxyXG4gICAgICAgICAgfV0sXHJcbiAgICAgICAgICB5QXhlc1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdG9vbHRpcHM6IHtcclxuICAgICAgICAgIGNhbGxiYWNrczoge1xyXG4gICAgICAgICAgICBsYWJlbDogKHRvb2x0aXBJdGVtLCBkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZGF0YXNldExhYmVsID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8ubGFiZWw7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBkYXRhPy5sYWJlbHNbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIHN0cmluZztcclxuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmRhdGFbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIG51bWJlcjtcclxuICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRvb2x0aXBzPy5sYWJlbCh7XHJcbiAgICAgICAgICAgICAgICBkYXRhc2V0TGFiZWwsXHJcbiAgICAgICAgICAgICAgICBsYWJlbCxcclxuICAgICAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgICAgICAgfSkgfHwgYCR7ZGF0YXNldExhYmVsID8gYFske2RhdGFzZXRMYWJlbH1dIGAgOiAnJ30gJHtsYWJlbH0gOiAke051bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBsYWJlbHM6IG9wdGlvbi5sYWJlbHMsXHJcbiAgICAgICAgZGF0YXNldHM6IG9wdGlvbi5kYXRhc2V0cy5tYXAoKGUsIGlkeCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZHluYW1pY0NvbG9yID0gdGhpcy5keW5hbWljQ29sb3I7XHJcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IENoYXJ0LkNoYXJ0RGF0YVNldHMgPSB7XHJcbiAgICAgICAgICAgIHR5cGU6IGUudHlwZSxcclxuICAgICAgICAgICAgbGFiZWw6IGUubGFiZWwsXHJcbiAgICAgICAgICAgIGZpbGw6IGUuYmFja2dyb3VuZENvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYmFja2dyb3VuZENvbG9yIHx8IGR5bmFtaWNDb2xvcixcclxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBlLmJhY2tncm91bmRDb2xvciB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJhY2tncm91bmRDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGJvcmRlckNvbG9yOiBlLmJvcmRlckNvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYm9yZGVyQ29sb3IgfHwgZHluYW1pY0NvbG9yLFxyXG4gICAgICAgICAgICBkYXRhOiBlLmRhdGEsXHJcbiAgICAgICAgICAgIHlBeGlzSUQ6IGUueUFsaWduID09PSAncmlnaHQnID8gcmlnaHRJZCA6IGxlZnRJZCxcclxuICAgICAgICAgICAgbGluZVRlbnNpb246IDAsXHJcbiAgICAgICAgICAgIG9yZGVyOmUub3JkZXIgPz8gMVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgfSksXHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaWYgKG9wdGlvbi5ob3ZlciA9PT0gJ1Nob3dBbGwnKSB7XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlciA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydCh0aGlzLmN0eCwgY29uZmlndXJhdGlvbik7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgbG9hZGluZ1N0YXJ0ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgZHluYW1pY0NvbG9yKCkge1xyXG4gICAgY29uc3QgciA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDI1NSk7XHJcbiAgICBjb25zdCBnID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjU1KTtcclxuICAgIGNvbnN0IGIgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyNTUpO1xyXG4gICAgcmV0dXJuICdyZ2IoJyArIHIgKyAnLCcgKyBnICsgJywnICsgYiArICcpJztcclxuICB9XHJcbn1cclxuIl19
|
|
739
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9jaGFydC8iLCJzb3VyY2VzIjpbInNyYy9saWIvY2hhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBeUIsU0FBUyxFQUFjLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BJLE9BQU8sS0FBSyxLQUFLLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFTTCxZQUFZLEVBRWIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBTzdCLE1BQU0sT0FBTyxPQUFPO0lBcUJsQixZQUNVLEdBQXNCLEVBQ1ksa0JBQXVDO1FBRHpFLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ1ksdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFxQjtRQXRCM0UsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFNUIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQWNsQixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsV0FBTSxHQUFHLE9BQU8sQ0FBQztRQTRyQmpCLGlCQUFZLEdBQUcsR0FBRyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUMsQ0FBQTtRQVNELGlDQUF5QixDQUFDLFNBQTZDLEVBQXlDLEVBQUU7WUFDaEgsT0FBUTtnQkFDTixTQUFTLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxPQUFPOztvQkFDdEMsZ0JBQUksYUFBYSxhQUFiLGFBQWEsdUJBQWIsYUFBYSxDQUFFLElBQUksMENBQUUsUUFBUSwwQ0FBRSxNQUFNLEVBQUM7d0JBQ3hDLE1B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O1FBQ3RCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLE9BQU8sTUFBTSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQzlDLENBQUM7Ozs7WUE1dEJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsbWdCQUFxQzs7YUFFdEM7OztZQXJCd0UsaUJBQWlCOzRDQTZDckYsUUFBUSxZQUFJLE1BQU0sU0FBQyxZQUFZOzs7MEJBbEJqQyxLQUFLO3VCQU9MLFNBQVMsU0FBQyxPQUFPOzhCQUNqQixTQUFTLFNBQUMsY0FBYzsyQkFDeEIsU0FBUyxTQUFDLFdBQVc7d0NBQ3JCLFNBQVMsU0FBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBJbnB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9wdGlvbmFsLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgQ2hhcnQgZnJvbSAnY2hhcnQuanMnO1xyXG5pbXBvcnQge1xyXG4gIFNkQ2hhcnRPcHRpb24sXHJcbiAgQmFyQ2hhcnRPcHRpb24sXHJcbiAgTGluZUNoYXJ0T3B0aW9uLFxyXG4gIFBpZUNoYXJ0T3B0aW9uLFxyXG4gIEJhckxpbmVDaGFydE9wdGlvbixcclxuICBTdGFja0FyZWFDaGFydE9wdGlvbixcclxuICBIb3Jpem9udGFsQmFyQ2hhcnRPcHRpb24sXHJcbiAgSUNoYXJ0Q29uZmlndXJhdGlvbixcclxuICBDSEFSVF9DT05GSUcsXHJcbiAgRG91Z2hudXRDaGFydE9wdGlvblxyXG59IGZyb20gJy4vY2hhcnQubW9kZWwnO1xyXG5pbXBvcnQgJCBmcm9tICdqcXVlcnknO1xyXG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzZC1jaGFydCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXJ0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jaGFydC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZENoYXJ0IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBwcml2YXRlIGluaXRpYWxpemVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBwQ2hhcnRPcHRpb246IFNkQ2hhcnRPcHRpb247XHJcbiAgaXNMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBjaGFydE9wdGlvbihjaGFydE9wdGlvbjogU2RDaGFydE9wdGlvbikge1xyXG4gICAgdGhpcy5wQ2hhcnRPcHRpb24gPSBjaGFydE9wdGlvbjtcclxuICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyQ2hhcnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NoYXJ0JykgY2hhcnRSZWY6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnY2hhcnRXcmFwcGVyJykgY2hhcnRXcmFwcGVyUmVmOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2NoYXJ0QXhpcycpIGNoYXJ0QXhpc1JlZjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdjaGFydEFyZWFXcmFwcGVyRXh0ZW5kJykgY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZjogRWxlbWVudFJlZjtcclxuICBjaGFydDogQ2hhcnQ7XHJcbiAgdmlzaWJsZSA9IHRydWU7XHJcbiAgaGVpZ2h0ID0gJzMwMHB4JztcclxuICBwcml2YXRlIGN0eDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQ0hBUlRfQ09ORklHKSBwcml2YXRlIGNoYXJ0Q29uZmlndXJhdGlvbjogSUNoYXJ0Q29uZmlndXJhdGlvblxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnJlbmRlckNoYXJ0KHRydWUpO1xyXG4gICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XHJcbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHJlbmRlckNoYXJ0KGZpcnN0UmVuZGVyPzogYm9vbGVhbikge1xyXG4gICAgdGhpcy5oZWlnaHQgPSB0aGlzLnBDaGFydE9wdGlvbj8uaGVpZ2h0IHx8ICczMDBweCc7XHJcbiAgICBpZiAoIWZpcnN0UmVuZGVyKSB7XHJcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMjAwKSk7XHJcbiAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMjAwKSk7XHJcbiAgICBpZiAodGhpcy5jaGFydFJlZj8ubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICBjb25zdCBjYW52YXMgPSB0aGlzLmNoYXJ0UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTENhbnZhc0VsZW1lbnQ7XHJcbiAgICAgIHRoaXMuY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcbiAgICAgIHN3aXRjaCAodGhpcy5wQ2hhcnRPcHRpb24udHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ3BpZSc6XHJcbiAgICAgICAgICB0aGlzLnJlbmRlclBpZUNoYXJ0KHRoaXMucENoYXJ0T3B0aW9uKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2Jhcic6XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckJhckNoYXJ0KHRoaXMucENoYXJ0T3B0aW9uKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2hvcml6b250YWxCYXInOlxyXG4gICAgICAgICAgdGhpcy5yZW5kZXJIb3Jpem9udGFsQmFyQ2hhcnQodGhpcy5wQ2hhcnRPcHRpb24pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnbGluZSc6XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckxpbmVDaGFydCh0aGlzLnBDaGFydE9wdGlvbik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdzdGFja0FyZWEnOlxyXG4gICAgICAgICAgdGhpcy5yZW5kZXJTdGFja0FyZWFDaGFydCh0aGlzLnBDaGFydE9wdGlvbik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdiYXJsaW5lJzpcclxuICAgICAgICAgIHRoaXMucmVuZGVyQmFyTGluZUNoYXJ0KHRoaXMucENoYXJ0T3B0aW9uKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2RvdWdobnV0JzpcclxuICAgICAgICAgIHRoaXMucmVuZGVyRG91Z2hudXRDaGFydCh0aGlzLnBDaGFydE9wdGlvbik7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbmRlclBpZUNoYXJ0KG9wdGlvbjogUGllQ2hhcnRPcHRpb24pIHtcclxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb246IENoYXJ0LkNoYXJ0Q29uZmlndXJhdGlvbiA9IHtcclxuICAgICAgdHlwZTogJ3BpZScsXHJcbiAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICByZXNwb25zaXZlOiB0cnVlLFxyXG4gICAgICAgIHRpdGxlOiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICAgICAgdGV4dDogb3B0aW9uLnRpdGxlXHJcbiAgICAgICAgfSxcclxuICAgICAgICBsZWdlbmQ6IHtcclxuICAgICAgICAgIGRpc3BsYXk6ICFvcHRpb24uaGlkZUxlZ2VuZFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdG9vbHRpcHM6IHtcclxuICAgICAgICAgIGNhbGxiYWNrczoge1xyXG4gICAgICAgICAgICBsYWJlbDogKHRvb2x0aXBJdGVtLCBkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZGF0YXNldExhYmVsID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8ubGFiZWw7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBkYXRhPy5sYWJlbHNbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIHN0cmluZztcclxuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmRhdGFbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIG51bWJlcjtcclxuICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRvb2x0aXBzPy5sYWJlbCh7XHJcbiAgICAgICAgICAgICAgICBkYXRhc2V0TGFiZWwsXHJcbiAgICAgICAgICAgICAgICBsYWJlbCxcclxuICAgICAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgICAgICAgfSkgfHwgYCR7ZGF0YXNldExhYmVsID8gYFske2RhdGFzZXRMYWJlbH1dIGAgOiAnJ30ke2xhYmVsfSA6ICR7TnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSl9YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGxhYmVsczogb3B0aW9uLmRhdGFzZXRzPy5tYXAoZSA9PiBlLmxhYmVsKSB8fCBbXSxcclxuICAgICAgICBkYXRhc2V0czogW3tcclxuICAgICAgICAgIGRhdGE6IG9wdGlvbi5kYXRhc2V0cz8ubWFwKGUgPT4gZS52YWx1ZSkgfHwgW10sXHJcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IG9wdGlvbi5kYXRhc2V0cz8ubWFwKChlLCBpZHgpID0+IGUuYmFja2dyb3VuZENvbG9yXHJcbiAgICAgICAgICAgIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYmFja2dyb3VuZENvbG9yXHJcbiAgICAgICAgICAgIHx8IHRoaXMuZHluYW1pY0NvbG9yKSB8fCBbXVxyXG4gICAgICAgIH1dXHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaWYgKG9wdGlvbi5ob3ZlciA9PT0gJ1Nob3dBbGwnKSB7XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlciA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydCh0aGlzLmN0eCwgY29uZmlndXJhdGlvbik7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW5kZXJEb3VnaG51dENoYXJ0KG9wdGlvbjpEb3VnaG51dENoYXJ0T3B0aW9uKXtcclxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb246IENoYXJ0LkNoYXJ0Q29uZmlndXJhdGlvbiA9IHtcclxuICAgICAgdHlwZTogJ2RvdWdobnV0JyxcclxuICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgIHJlc3BvbnNpdmU6IHRydWUsXHJcbiAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzpmYWxzZSxcclxuICAgICAgICB0aXRsZToge1xyXG4gICAgICAgICAgZGlzcGxheTogdHJ1ZSxcclxuICAgICAgICAgIHRleHQ6IG9wdGlvbi50aXRsZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGVnZW5kOiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiAhb3B0aW9uLmhpZGVMZWdlbmRcclxuICAgICAgICB9LFxyXG4gICAgICAgIHRvb2x0aXBzOiB7XHJcbiAgICAgICAgICBjYWxsYmFja3M6IHtcclxuICAgICAgICAgICAgbGFiZWw6ICh0b29sdGlwSXRlbSwgZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRhdGFzZXRMYWJlbCA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmxhYmVsO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gZGF0YT8ubGFiZWxzW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5kYXRhW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBudW1iZXI7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50b29sdGlwcz8ubGFiZWwoe1xyXG4gICAgICAgICAgICAgICAgZGF0YXNldExhYmVsLFxyXG4gICAgICAgICAgICAgICAgbGFiZWwsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgICAgIH0pIHx8IGAke2RhdGFzZXRMYWJlbCA/IGBbJHtkYXRhc2V0TGFiZWx9XSBgIDogJyd9JHtsYWJlbH0gOiAke051bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBsYWJlbHM6IG9wdGlvbi5kYXRhc2V0cz8ubWFwKGUgPT4gZS5sYWJlbCkgfHwgW10sXHJcbiAgICAgICAgZGF0YXNldHM6IFt7XHJcbiAgICAgICAgICBkYXRhOiBvcHRpb24uZGF0YXNldHM/Lm1hcChlID0+IGUudmFsdWUpIHx8IFtdLFxyXG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBvcHRpb24uZGF0YXNldHM/Lm1hcCgoZSwgaWR4KSA9PiBlLmJhY2tncm91bmRDb2xvclxyXG4gICAgICAgICAgICB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJhY2tncm91bmRDb2xvclxyXG4gICAgICAgICAgICB8fCB0aGlzLmR5bmFtaWNDb2xvcikgfHwgW11cclxuICAgICAgICB9XVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChvcHRpb24uaG92ZXIgPT09ICdTaG93QWxsJykge1xyXG4gICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMgPSB7XHJcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzLFxyXG4gICAgICAgIG1vZGU6ICdpbmRleCcsXHJcbiAgICAgICAgaW50ZXJzZWN0OiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIgPSB7XHJcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyLFxyXG4gICAgICAgIG1vZGU6ICdpbmRleCcsXHJcbiAgICAgICAgaW50ZXJzZWN0OiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQodGhpcy5jdHgsIGNvbmZpZ3VyYXRpb24pO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVuZGVyQmFyQ2hhcnQob3B0aW9uOiBCYXJDaGFydE9wdGlvbikge1xyXG4gICAgY29uc3QgbGFiZWxXaWR0aCA9IG9wdGlvbi5sYWJlbFdpZHRoID8/IDUwO1xyXG4gICAgaWYgKG9wdGlvbi5kYXRhc2V0cy5sZW5ndGgpIHtcclxuICAgICAgLy8gY29uc3QgbmV3d2lkdGggPSBNYXRoLm1heChvcHRpb24ubGFiZWxzLmxlbmd0aCAqIG9wdGlvbi5kYXRhc2V0cy5sZW5ndGggKiBsYWJlbFdpZHRoLCAkKHRoaXMuY2hhcnRXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKCkpO1xyXG4gICAgICAvLyAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS53aWR0aChuZXd3aWR0aCk7XHJcbiAgICAgIGNvbnN0IG5ld3dpZHRoID0gb3B0aW9uLmxhYmVscy5sZW5ndGggKiBvcHRpb24uZGF0YXNldHMubGVuZ3RoICogbGFiZWxXaWR0aDtcclxuICAgICAgJCh0aGlzLmNoYXJ0QXJlYVdyYXBwZXJFeHRlbmRSZWYubmF0aXZlRWxlbWVudCkuY3NzKCd3aWR0aCcsIGBtYXgoMTAwJSwke25ld3dpZHRofXB4KWApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbjogQ2hhcnQuQ2hhcnRDb25maWd1cmF0aW9uID0ge1xyXG4gICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcclxuICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiBmYWxzZSxcclxuICAgICAgICBsZWdlbmQ6IHtcclxuICAgICAgICAgIGRpc3BsYXk6ICFvcHRpb24uaGlkZUxlZ2VuZFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc2NhbGVzOiB7XHJcbiAgICAgICAgICB4QXhlczogW3tcclxuICAgICAgICAgICAgZGlzcGxheTogdHJ1ZSxcclxuICAgICAgICAgICAgc2NhbGVMYWJlbDoge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICEhb3B0aW9uLnhUaXRsZSxcclxuICAgICAgICAgICAgICBsYWJlbFN0cmluZzogb3B0aW9uLnhUaXRsZSB8fCAnJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB0aWNrczoge1xyXG4gICAgICAgICAgICAgIGNhbGxiYWNrOiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50aWNrcz8ueExhYmVsKHZhbHVlLCBpbmRleCkgfHwgKE51bWJlci5pc051bWJlcih2YWx1ZSkgPyBOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKSA6IHZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1dLFxyXG4gICAgICAgICAgeUF4ZXM6IFt7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgICAgICAgYmVnaW5BdFplcm86IG9wdGlvbi5iZWdpbkF0WmVybyA/PyB0cnVlLFxyXG4gICAgICAgICAgICAgIGNhbGxiYWNrOiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50aWNrcz8ueUxhYmVsKHZhbHVlLCBpbmRleCkgfHwgKE51bWJlci5pc051bWJlcih2YWx1ZSkgPyBOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKSA6IHZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHNjYWxlTGFiZWw6IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi55VGl0bGUsXHJcbiAgICAgICAgICAgICAgbGFiZWxTdHJpbmc6IG9wdGlvbi55VGl0bGUgfHwgJydcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfV1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRvb2x0aXBzOiB7XHJcbiAgICAgICAgICBjYWxsYmFja3M6IHtcclxuICAgICAgICAgICAgbGFiZWw6ICh0b29sdGlwSXRlbSwgZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRhdGFzZXRMYWJlbCA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmxhYmVsO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gZGF0YT8ubGFiZWxzW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5kYXRhW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBudW1iZXI7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50b29sdGlwcz8ubGFiZWwoe1xyXG4gICAgICAgICAgICAgICAgZGF0YXNldExhYmVsLFxyXG4gICAgICAgICAgICAgICAgbGFiZWwsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgICAgIH0pIHx8IGAke2RhdGFzZXRMYWJlbH0gOiAke051bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHR5cGU6ICdiYXInLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgbGFiZWxzOiBvcHRpb24ubGFiZWxzLFxyXG4gICAgICAgIGRhdGFzZXRzOiBvcHRpb24uZGF0YXNldHMubWFwKChlLCBpZHgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGR5bmFtaWNDb2xvciA9IHRoaXMuZHluYW1pY0NvbG9yO1xyXG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBDaGFydC5DaGFydERhdGFTZXRzID0ge1xyXG4gICAgICAgICAgICBsYWJlbDogZS5sYWJlbCxcclxuICAgICAgICAgICAgZmlsbDogZS5iYWNrZ3JvdW5kQ29sb3IgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5iYWNrZ3JvdW5kQ29sb3IgfHwgZHluYW1pY0NvbG9yLFxyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGUuYmFja2dyb3VuZENvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYmFja2dyb3VuZENvbG9yIHx8IGR5bmFtaWNDb2xvcixcclxuICAgICAgICAgICAgZGF0YTogZS5kYXRhLFxyXG4gICAgICAgICAgICBzdGFjazogZS5zdGFja1xyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAob3B0aW9uLmhvdmVyID09PSAnU2hvd0FsbCcpIHtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyxcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlcixcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHRoaXMuY3R4LCBjb25maWd1cmF0aW9uKTtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbmRlckhvcml6b250YWxCYXJDaGFydChvcHRpb246IEhvcml6b250YWxCYXJDaGFydE9wdGlvbikge1xyXG4gICAgLy8gY29uc3QgbGFiZWxXaWR0aCA9IG9wdGlvbi5sYWJlbFdpZHRoID8/IDUwO1xyXG4gICAgLy8gaWYgKG9wdGlvbi5kYXRhc2V0cy5sZW5ndGgpIHtcclxuICAgIC8vICAgY29uc3QgbmV3d2lkdGggPSBNYXRoLm1heChvcHRpb24ubGFiZWxzLmxlbmd0aCAqIG9wdGlvbi5kYXRhc2V0cy5sZW5ndGggKiBsYWJlbFdpZHRoLCAkKHRoaXMuY2hhcnRXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKCkpO1xyXG4gICAgLy8gICAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS53aWR0aChuZXd3aWR0aCk7XHJcbiAgICAvLyB9XHJcbiAgICBjb25zdCBwbHVnaW5zOkNoYXJ0LlBsdWdpblNlcnZpY2VSZWdpc3RyYXRpb25PcHRpb25zW10gPSBbXTtcclxuICAgIGlmIChvcHRpb24uc2hvd1RvdGFsU3RhY2spe1xyXG4gICAgICBwbHVnaW5zLnB1c2godGhpcy4jZHJhd1RvdGFsT2ZTdGFja2VkQmFyKG9wdGlvbi50eXBlKSlcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb246IENoYXJ0LkNoYXJ0Q29uZmlndXJhdGlvbiA9IHtcclxuICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgIHJlc3BvbnNpdmU6IHRydWUsXHJcbiAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXHJcbiAgICAgICAgbGVnZW5kOiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiAhb3B0aW9uLmhpZGVMZWdlbmQsXHJcbiAgICAgICAgICBvbkNsaWNrIDogKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChvcHRpb24uc2hvd1RvdGFsU3RhY2spe1xyXG4gICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGxheW91dDp7XHJcbiAgICAgICAgICBwYWRkaW5nOntcclxuICAgICAgICAgICAgcmlnaHQ6MjBcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHNjYWxlczoge1xyXG4gICAgICAgICAgeEF4ZXM6IFt7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICAgIHNjYWxlTGFiZWw6IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi54VGl0bGUsXHJcbiAgICAgICAgICAgICAgbGFiZWxTdHJpbmc6IG9wdGlvbi54VGl0bGUgfHwgJycsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN0YWNrZWQ6dHJ1ZSxcclxuICAgICAgICAgICAgdGlja3M6IHtcclxuICAgICAgICAgICAgICBiZWdpbkF0WmVybzogb3B0aW9uLmJlZ2luQXRaZXJvID8/IHRydWUsXHJcbiAgICAgICAgICAgICAgY2FsbGJhY2s6ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRpY2tzPy54TGFiZWwodmFsdWUsIGluZGV4KSB8fCAoTnVtYmVyLmlzTnVtYmVyKHZhbHVlKSA/IE51bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpIDogdmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH1dLFxyXG4gICAgICAgICAgeUF4ZXM6IFt7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICAgIHN0YWNrZWQ6dHJ1ZSxcclxuICAgICAgICAgICAgdGlja3M6IHtcclxuICAgICAgICAgICAgICBjYWxsYmFjazogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24udGlja3M/LnlMYWJlbCh2YWx1ZSwgaW5kZXgpIHx8IChOdW1iZXIuaXNOdW1iZXIodmFsdWUpID8gTnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSkgOiB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzY2FsZUxhYmVsOiB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogISFvcHRpb24ueVRpdGxlLFxyXG4gICAgICAgICAgICAgIGxhYmVsU3RyaW5nOiBvcHRpb24ueVRpdGxlIHx8ICcnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1dXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0b29sdGlwczoge1xyXG4gICAgICAgICAgY2FsbGJhY2tzOiB7XHJcbiAgICAgICAgICAgIGxhYmVsOiAodG9vbHRpcEl0ZW0sIGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBkYXRhc2V0TGFiZWwgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5sYWJlbDtcclxuICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IGRhdGE/LmxhYmVsc1t0b29sdGlwSXRlbS5pbmRleF0gYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8uZGF0YVt0b29sdGlwSXRlbS5pbmRleF0gYXMgbnVtYmVyO1xyXG4gICAgICAgICAgICAgIHJldHVybiBvcHRpb24udG9vbHRpcHM/LmxhYmVsKHtcclxuICAgICAgICAgICAgICAgIGRhdGFzZXRMYWJlbCxcclxuICAgICAgICAgICAgICAgIGxhYmVsLFxyXG4gICAgICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgICB9KSB8fCBgJHtkYXRhc2V0TGFiZWx9IDogJHtOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKX1gO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB0eXBlOiAnaG9yaXpvbnRhbEJhcicsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBsYWJlbHM6IG9wdGlvbi5sYWJlbHMsXHJcbiAgICAgICAgZGF0YXNldHM6IG9wdGlvbi5kYXRhc2V0cy5tYXAoKGUsIGlkeCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZHluYW1pY0NvbG9yID0gdGhpcy5keW5hbWljQ29sb3I7XHJcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IENoYXJ0LkNoYXJ0RGF0YVNldHMgPSB7XHJcbiAgICAgICAgICAgIGxhYmVsOiBlLmxhYmVsLFxyXG4gICAgICAgICAgICBmaWxsOiBlLmJhY2tncm91bmRDb2xvciB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJhY2tncm91bmRDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogZS5iYWNrZ3JvdW5kQ29sb3IgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5iYWNrZ3JvdW5kQ29sb3IgfHwgZHluYW1pY0NvbG9yLFxyXG4gICAgICAgICAgICBkYXRhOiBlLmRhdGEsXHJcbiAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9KVxyXG4gICAgICB9LFxyXG4gICAgICBwbHVnaW5zOnBsdWdpbnNcclxuICAgIH07XHJcblxyXG4gICAgaWYgKG9wdGlvbi5ob3ZlciA9PT0gJ1Nob3dBbGwnKSB7XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlciA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydCh0aGlzLmN0eCwgY29uZmlndXJhdGlvbik7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW5kZXJMaW5lQ2hhcnQob3B0aW9uOiBMaW5lQ2hhcnRPcHRpb24pIHtcclxuICAgIGNvbnN0IGxhYmVsV2lkdGggPSBvcHRpb24ubGFiZWxXaWR0aCA/PyA1MDtcclxuICAgIGlmIChvcHRpb24uZGF0YXNldHMubGVuZ3RoKSB7XHJcbiAgICAgIC8vIGNvbnN0IG5ld3dpZHRoID0gTWF0aC5tYXgob3B0aW9uLmxhYmVscy5sZW5ndGggKiBsYWJlbFdpZHRoLCAkKHRoaXMuY2hhcnRXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKCkpO1xyXG4gICAgICAvLyAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS53aWR0aChuZXd3aWR0aCk7XHJcbiAgICAgIGNvbnN0IG5ld3dpZHRoID0gb3B0aW9uLmxhYmVscy5sZW5ndGggKiBsYWJlbFdpZHRoO1xyXG4gICAgICAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS5jc3MoJ3dpZHRoJywgYG1heCgxMDAlLCR7bmV3d2lkdGh9cHgpYCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb25maWd1cmF0aW9uOiBDaGFydC5DaGFydENvbmZpZ3VyYXRpb24gPSB7XHJcbiAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICByZXNwb25zaXZlOiB0cnVlLFxyXG4gICAgICAgIG1haW50YWluQXNwZWN0UmF0aW86IGZhbHNlLFxyXG4gICAgICAgIGxlZ2VuZDoge1xyXG4gICAgICAgICAgZGlzcGxheTogIW9wdGlvbi5oaWRlTGVnZW5kXHJcbiAgICAgICAgfSxcclxuICAgICAgICBzY2FsZXM6IHtcclxuICAgICAgICAgIHhBeGVzOiBbe1xyXG4gICAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICAgICAgICBzY2FsZUxhYmVsOiB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogISFvcHRpb24ueFRpdGxlLFxyXG4gICAgICAgICAgICAgIGxhYmVsU3RyaW5nOiBvcHRpb24ueFRpdGxlIHx8ICcnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgICAgICAgY2FsbGJhY2s6ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRpY2tzPy54TGFiZWwodmFsdWUsIGluZGV4KSB8fCAoTnVtYmVyLmlzTnVtYmVyKHZhbHVlKSA/IE51bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpIDogdmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH1dLFxyXG4gICAgICAgICAgeUF4ZXM6IFt7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgICAgICAgYmVnaW5BdFplcm86IG9wdGlvbi5iZWdpbkF0WmVybyA/PyB0cnVlLFxyXG4gICAgICAgICAgICAgIGNhbGxiYWNrOiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50aWNrcz8ueUxhYmVsKHZhbHVlLCBpbmRleCkgfHwgKE51bWJlci5pc051bWJlcih2YWx1ZSkgPyBOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKSA6IHZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHNjYWxlTGFiZWw6IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi55VGl0bGUsXHJcbiAgICAgICAgICAgICAgbGFiZWxTdHJpbmc6IG9wdGlvbi55VGl0bGUgfHwgJydcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfV1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRvb2x0aXBzOiB7XHJcbiAgICAgICAgICBjYWxsYmFja3M6IHtcclxuICAgICAgICAgICAgbGFiZWw6ICh0b29sdGlwSXRlbSwgZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRhdGFzZXRMYWJlbCA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmxhYmVsO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gZGF0YT8ubGFiZWxzW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5kYXRhW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBudW1iZXI7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50b29sdGlwcz8ubGFiZWwoe1xyXG4gICAgICAgICAgICAgICAgZGF0YXNldExhYmVsLFxyXG4gICAgICAgICAgICAgICAgbGFiZWwsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgICAgIH0pIHx8IGAke2RhdGFzZXRMYWJlbH0gOiAke051bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHR5cGU6ICdsaW5lJyxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGxhYmVsczogb3B0aW9uLmxhYmVscyxcclxuICAgICAgICBkYXRhc2V0czogb3B0aW9uLmRhdGFzZXRzLm1hcCgoZSwgaWR4KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBkeW5hbWljQ29sb3IgPSB0aGlzLmR5bmFtaWNDb2xvcjtcclxuICAgICAgICAgIGNvbnN0IHJlc3VsdDogQ2hhcnQuQ2hhcnREYXRhU2V0cyA9IHtcclxuICAgICAgICAgICAgbGFiZWw6IGUubGFiZWwsXHJcbiAgICAgICAgICAgIGZpbGw6IGUuYmFja2dyb3VuZENvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYmFja2dyb3VuZENvbG9yIHx8IGR5bmFtaWNDb2xvcixcclxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBlLmJhY2tncm91bmRDb2xvciB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJhY2tncm91bmRDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGJvcmRlckNvbG9yOiBlLmJvcmRlckNvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYm9yZGVyQ29sb3IgfHwgZHluYW1pY0NvbG9yLFxyXG4gICAgICAgICAgICBkYXRhOiBlLmRhdGEsXHJcbiAgICAgICAgICAgIGxpbmVUZW5zaW9uOiAwLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAob3B0aW9uLmhvdmVyID09PSAnU2hvd0FsbCcpIHtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyxcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlcixcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHRoaXMuY3R4LCBjb25maWd1cmF0aW9uKTtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbmRlclN0YWNrQXJlYUNoYXJ0KG9wdGlvbjogU3RhY2tBcmVhQ2hhcnRPcHRpb24pIHtcclxuICAgIGNvbnN0IGxhYmVsV2lkdGggPSBvcHRpb24ubGFiZWxXaWR0aCA/PyA1MDtcclxuICAgIGlmIChvcHRpb24uZGF0YXNldHMubGVuZ3RoKSB7XHJcbiAgICAgIC8vIGNvbnN0IG5ld3dpZHRoID0gTWF0aC5tYXgob3B0aW9uLmxhYmVscy5sZW5ndGggKiBsYWJlbFdpZHRoLCAkKHRoaXMuY2hhcnRXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKCkpO1xyXG4gICAgICAvLyAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS53aWR0aChuZXd3aWR0aCk7XHJcbiAgICAgIGNvbnN0IG5ld3dpZHRoID0gb3B0aW9uLmxhYmVscy5sZW5ndGggKiBsYWJlbFdpZHRoO1xyXG4gICAgICAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS5jc3MoJ3dpZHRoJywgYG1heCgxMDAlLCR7bmV3d2lkdGh9cHgpYCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb25maWd1cmF0aW9uOiBDaGFydC5DaGFydENvbmZpZ3VyYXRpb24gPSB7XHJcbiAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICByZXNwb25zaXZlOiB0cnVlLFxyXG4gICAgICAgIG1haW50YWluQXNwZWN0UmF0aW86IGZhbHNlLFxyXG4gICAgICAgIGxlZ2VuZDoge1xyXG4gICAgICAgICAgZGlzcGxheTogIW9wdGlvbi5oaWRlTGVnZW5kXHJcbiAgICAgICAgfSxcclxuICAgICAgICBzY2FsZXM6IHtcclxuICAgICAgICAgIHhBeGVzOiBbe1xyXG4gICAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICAgICAgICBzY2FsZUxhYmVsOiB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogISFvcHRpb24ueFRpdGxlLFxyXG4gICAgICAgICAgICAgIGxhYmVsU3RyaW5nOiBvcHRpb24ueFRpdGxlIHx8ICcnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgICAgICAgY2FsbGJhY2s6ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRpY2tzPy54TGFiZWwodmFsdWUsIGluZGV4KSB8fCAoTnVtYmVyLmlzTnVtYmVyKHZhbHVlKSA/IE51bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpIDogdmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH1dLFxyXG4gICAgICAgICAgeUF4ZXM6IFt7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgICAgICAgYmVnaW5BdFplcm86IG9wdGlvbi5iZWdpbkF0WmVybyA/PyB0cnVlLFxyXG4gICAgICAgICAgICAgIGNhbGxiYWNrOiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50aWNrcz8ueUxhYmVsKHZhbHVlLCBpbmRleCkgfHwgKE51bWJlci5pc051bWJlcih2YWx1ZSkgPyBOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKSA6IHZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN0YWNrZWQ6IHRydWUsXHJcbiAgICAgICAgICAgIHNjYWxlTGFiZWw6IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi55VGl0bGUsXHJcbiAgICAgICAgICAgICAgbGFiZWxTdHJpbmc6IG9wdGlvbi55VGl0bGUgfHwgJydcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfV1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRvb2x0aXBzOiB7XHJcbiAgICAgICAgICBjYWxsYmFja3M6IHtcclxuICAgICAgICAgICAgbGFiZWw6ICh0b29sdGlwSXRlbSwgZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRhdGFzZXRMYWJlbCA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmxhYmVsO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gZGF0YT8ubGFiZWxzW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5kYXRhW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBudW1iZXI7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50b29sdGlwcz8ubGFiZWwoe1xyXG4gICAgICAgICAgICAgICAgZGF0YXNldExhYmVsLFxyXG4gICAgICAgICAgICAgICAgbGFiZWwsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgICAgIH0pIHx8IGAke2RhdGFzZXRMYWJlbH0gOiAke051bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHR5cGU6ICdsaW5lJyxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGxhYmVsczogb3B0aW9uLmxhYmVscyxcclxuICAgICAgICBkYXRhc2V0czogb3B0aW9uLmRhdGFzZXRzLm1hcCgoZSwgaWR4KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBkeW5hbWljQ29sb3IgPSB0aGlzLmR5bmFtaWNDb2xvcjtcclxuICAgICAgICAgIGNvbnN0IHJlc3VsdDogQ2hhcnQuQ2hhcnREYXRhU2V0cyA9IHtcclxuICAgICAgICAgICAgbGFiZWw6IGUubGFiZWwsXHJcbiAgICAgICAgICAgIC8vIGZpbGw6IGUuYmFja2dyb3VuZENvbG9yLFxyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGUuYmFja2dyb3VuZENvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYmFja2dyb3VuZENvbG9yIHx8IGR5bmFtaWNDb2xvcixcclxuICAgICAgICAgICAgYm9yZGVyQ29sb3I6IGUuYm9yZGVyQ29sb3IgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5ib3JkZXJDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGRhdGE6IGUuZGF0YSxcclxuICAgICAgICAgICAgbGluZVRlbnNpb246IDAsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChvcHRpb24uaG92ZXIgPT09ICdTaG93QWxsJykge1xyXG4gICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMgPSB7XHJcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzLFxyXG4gICAgICAgIG1vZGU6ICdpbmRleCcsXHJcbiAgICAgICAgaW50ZXJzZWN0OiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIgPSB7XHJcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyLFxyXG4gICAgICAgIG1vZGU6ICdpbmRleCcsXHJcbiAgICAgICAgaW50ZXJzZWN0OiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQodGhpcy5jdHgsIGNvbmZpZ3VyYXRpb24pO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVuZGVyQmFyTGluZUNoYXJ0KG9wdGlvbjogQmFyTGluZUNoYXJ0T3B0aW9uKSB7XHJcbiAgICBjb25zdCBwbHVnaW5zOkNoYXJ0LlBsdWdpblNlcnZpY2VSZWdpc3RyYXRpb25PcHRpb25zW10gPSBbXTtcclxuICAgIGlmIChvcHRpb24uc2hvd1RvdGFsU3RhY2spe1xyXG4gICAgICBwbHVnaW5zLnB1c2godGhpcy4jZHJhd1RvdGFsT2ZTdGFja2VkQmFyKG9wdGlvbi50eXBlKSlcclxuICAgIH1cclxuICAgIGNvbnN0IGxhYmVsV2lkdGggPSBvcHRpb24ubGFiZWxXaWR0aCA/PyA1MDtcclxuICAgIGlmIChvcHRpb24uZGF0YXNldHMubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IG51bWJlck9mQmFycyA9IG9wdGlvbi5kYXRhc2V0cy5maWx0ZXIoZSA9PiBlLnR5cGUgPT09ICdiYXInKS5sZW5ndGg7XHJcbiAgICAgIGlmIChudW1iZXJPZkJhcnMgPD0gMSkge1xyXG4gICAgICAgIC8vIGNvbnN0IG5ld3dpZHRoID0gTWF0aC5tYXgob3B0aW9uLmxhYmVscy5sZW5ndGggKiBsYWJlbFdpZHRoLCAkKHRoaXMuY2hhcnRXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKCkpO1xyXG4gICAgICAgIC8vICQodGhpcy5jaGFydEFyZWFXcmFwcGVyRXh0ZW5kUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKG5ld3dpZHRoKTtcclxuICAgICAgICBjb25zdCBuZXd3aWR0aCA9IG9wdGlvbi5sYWJlbHMubGVuZ3RoICogbGFiZWxXaWR0aDtcclxuICAgICAgICAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS5jc3MoJ3dpZHRoJywgYG1heCgxMDAlLCR7bmV3d2lkdGh9cHgpYCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gY29uc3QgbmV3d2lkdGggPSBNYXRoLm1heChvcHRpb24ubGFiZWxzLmxlbmd0aCAqIG51bWJlck9mQmFycyAqIGxhYmVsV2lkdGgsICQodGhpcy5jaGFydFdyYXBwZXJSZWYubmF0aXZlRWxlbWVudCkud2lkdGgoKSk7XHJcbiAgICAgICAgLy8gJCh0aGlzLmNoYXJ0QXJlYVdyYXBwZXJFeHRlbmRSZWYubmF0aXZlRWxlbWVudCkud2lkdGgobmV3d2lkdGgpO1xyXG4gICAgICAgIGNvbnN0IG5ld3dpZHRoID0gb3B0aW9uLmxhYmVscy5sZW5ndGggKiBudW1iZXJPZkJhcnMgKiBsYWJlbFdpZHRoO1xyXG4gICAgICAgICQodGhpcy5jaGFydEFyZWFXcmFwcGVyRXh0ZW5kUmVmLm5hdGl2ZUVsZW1lbnQpLmNzcygnd2lkdGgnLCBgbWF4KDEwMCUsJHtuZXd3aWR0aH1weClgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgbGVmdElkID0gYEkke3V1aWQudjQoKX1gO1xyXG4gICAgY29uc3QgcmlnaHRJZCA9IGBJJHt1dWlkLnY0KCl9YDtcclxuICAgIGNvbnN0IHlBeGVzID0gW3tcclxuICAgICAgdHlwZTogJ2xpbmVhcicsXHJcbiAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgIHBvc2l0aW9uOiAnbGVmdCcsXHJcbiAgICAgIGlkOiBsZWZ0SWQsXHJcbiAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgYmVnaW5BdFplcm86IG9wdGlvbi5iZWdpbkF0WmVybyA/PyB0cnVlLFxyXG4gICAgICAgIHN1Z2dlc3RlZE1pbjogMCxcclxuICAgICAgICBjYWxsYmFjazogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgIHJldHVybiBvcHRpb24udGlja3M/LnlMYWJlbCh2YWx1ZSwgaW5kZXgpIHx8IChOdW1iZXIuaXNOdW1iZXIodmFsdWUpID8gTnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSkgOiB2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBzY2FsZUxhYmVsOiB7XHJcbiAgICAgICAgZGlzcGxheTogISFvcHRpb24ueVRpdGxlLFxyXG4gICAgICAgIGxhYmVsU3RyaW5nOiBvcHRpb24ueVRpdGxlIHx8ICcnLFxyXG4gICAgICB9LFxyXG4gICAgICBzdGFja2VkOiEhb3B0aW9uLnlTdGFja2VkLFxyXG4gICAgfV07XHJcbiAgICBpZiAob3B0aW9uLmRhdGFzZXRzLnNvbWUoZSA9PiBlLnlBbGlnbiA9PT0gJ3JpZ2h0JykpIHtcclxuICAgICAgeUF4ZXMucHVzaCh7XHJcbiAgICAgICAgdHlwZTogJ2xpbmVhcicsXHJcbiAgICAgICAgZGlzcGxheTogdHJ1ZSxcclxuICAgICAgICBwb3NpdGlvbjogJ3JpZ2h0JyxcclxuICAgICAgICBpZDogcmlnaHRJZCxcclxuICAgICAgICB0aWNrczoge1xyXG4gICAgICAgICAgYmVnaW5BdFplcm86IG9wdGlvbi5iZWdpbkF0WmVybyA/PyB0cnVlLFxyXG4gICAgICAgICAgc3VnZ2VzdGVkTWluOiAwLFxyXG4gICAgICAgICAgY2FsbGJhY2s6ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBvcHRpb24udGlja3M/LnlSaWdodExhYmVsKHZhbHVlLCBpbmRleCkgfHwgKE51bWJlci5pc051bWJlcih2YWx1ZSkgPyBOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKSA6IHZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHNjYWxlTGFiZWw6IHtcclxuICAgICAgICAgIGRpc3BsYXk6ICEhb3B0aW9uLnlSaWdodFRpdGxlLFxyXG4gICAgICAgICAgbGFiZWxTdHJpbmc6IG9wdGlvbi55UmlnaHRUaXRsZSB8fCAnJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc3RhY2tlZDohIW9wdGlvbi55U3RhY2tlZCxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb25maWd1cmF0aW9uOiBDaGFydC5DaGFydENvbmZpZ3VyYXRpb24gPSB7XHJcbiAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICByZXNwb25zaXZlOiB0cnVlLFxyXG4gICAgICAgIG1haW50YWluQXNwZWN0UmF0aW86IGZhbHNlLFxyXG4gICAgICAgIGxlZ2VuZDoge1xyXG4gICAgICAgICAgZGlzcGxheTogIW9wdGlvbi5oaWRlTGVnZW5kLFxyXG4gICAgICAgICAgb25DbGljayhldmVudCwgbGVnZW5kSXRlbSkge1xyXG4gICAgICAgICAgICBpZiAob3B0aW9uLnNob3dUb3RhbFN0YWNrICl7XHJcbiAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBwb3NpdGlvbjogb3B0aW9uPy5sZWdlbmRQb3NpdGlvbiA/PyAndG9wJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGF5b3V0OntcclxuICAgICAgICAgIHBhZGRpbmc6MTBcclxuICAgICAgICB9LFxyXG4gICAgICAgIHRpdGxlOiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICAgICAgdGV4dDogb3B0aW9uLnRpdGxlXHJcbiAgICAgICAgfSxcclxuICAgICAgICBzY2FsZXM6IHtcclxuICAgICAgICAgIHhBeGVzOiBbe1xyXG4gICAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICAgICAgICBzY2FsZUxhYmVsOiB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogISFvcHRpb24ueFRpdGxlLFxyXG4gICAgICAgICAgICAgIGxhYmVsU3RyaW5nOiBvcHRpb24ueFRpdGxlIHx8ICcnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgICAgICAgY2FsbGJhY2s6ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRpY2tzPy54TGFiZWwodmFsdWUsIGluZGV4KSB8fCAoTnVtYmVyLmlzTnVtYmVyKHZhbHVlKSA/IE51bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpIDogdmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc3RhY2tlZDogISFvcHRpb24ueFN0YWNrZWRcclxuICAgICAgICAgIH1dLFxyXG4gICAgICAgICAgeUF4ZXNcclxuICAgICAgICB9LFxyXG4gICAgICAgIHRvb2x0aXBzOiB7ICAgICAgICAgIFxyXG4gICAgICAgICAgY2FsbGJhY2tzOiB7XHJcbiAgICAgICAgICAgIGxhYmVsOiAodG9vbHRpcEl0ZW0sIGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBkYXRhc2V0TGFiZWwgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5sYWJlbDtcclxuICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IGRhdGE/LmxhYmVsc1t0b29sdGlwSXRlbS5pbmRleF0gYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8uZGF0YVt0b29sdGlwSXRlbS5pbmRleF0gYXMgbnVtYmVyO1xyXG4gICAgICAgICAgICAgIHJldHVybiBvcHRpb24udG9vbHRpcHM/LmxhYmVsKHtcclxuICAgICAgICAgICAgICAgIGRhdGFzZXRMYWJlbCxcclxuICAgICAgICAgICAgICAgIGxhYmVsLFxyXG4gICAgICAgICAgICAgICAgdmFsdWUsXHJcbiAgICAgICAgICAgICAgICBkYXRhc2V0SW5kZXg6IHRvb2x0aXBJdGVtLmRhdGFzZXRJbmRleCxcclxuICAgICAgICAgICAgICAgIGRhdGFJbmRleDp0b29sdGlwSXRlbS5pbmRleFxyXG4gICAgICAgICAgICAgIH0pIHx8IGAke2RhdGFzZXRMYWJlbCA/IGBbJHtkYXRhc2V0TGFiZWx9XSBgIDogJyd9ICR7bGFiZWx9IDogJHtOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKX1gO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgbGFiZWxzOiBvcHRpb24ubGFiZWxzLFxyXG4gICAgICAgIGRhdGFzZXRzOiBvcHRpb24uZGF0YXNldHMubWFwKChlLCBpZHgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGR5bmFtaWNDb2xvciA9IHRoaXMuZHluYW1pY0NvbG9yO1xyXG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBDaGFydC5DaGFydERhdGFTZXRzID0ge1xyXG4gICAgICAgICAgICB0eXBlOiBlLnR5cGUsXHJcbiAgICAgICAgICAgIGxhYmVsOiBlLmxhYmVsLFxyXG4gICAgICAgICAgICBmaWxsOiBlLmJhY2tncm91bmRDb2xvciB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJhY2tncm91bmRDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogZS5iYWNrZ3JvdW5kQ29sb3IgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5iYWNrZ3JvdW5kQ29sb3IgfHwgZHluYW1pY0NvbG9yLFxyXG4gICAgICAgICAgICBib3JkZXJDb2xvcjogZS5ib3JkZXJDb2xvciB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJvcmRlckNvbG9yIHx8IGR5bmFtaWNDb2xvcixcclxuICAgICAgICAgICAgZGF0YTogZS5kYXRhLFxyXG4gICAgICAgICAgICB5QXhpc0lEOiBlLnlBbGlnbiA9PT0gJ3JpZ2h0JyA/IHJpZ2h0SWQgOiBsZWZ0SWQsXHJcbiAgICAgICAgICAgIGxpbmVUZW5zaW9uOiAwLFxyXG4gICAgICAgICAgICBvcmRlcjplLm9yZGVyID8/IDFcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIH0pLFxyXG4gICAgICB9LFxyXG4gICAgICBwbHVnaW5zOiBwbHVnaW5zXHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChvcHRpb24uaG92ZXIgPT09ICdTaG93QWxsJykge1xyXG4gICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMgPSB7XHJcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzLFxyXG4gICAgICAgIG1vZGU6ICdpbmRleCcsXHJcbiAgICAgICAgaW50ZXJzZWN0OiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIgPSB7XHJcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyLFxyXG4gICAgICAgIG1vZGU6ICdpbmRleCcsXHJcbiAgICAgICAgaW50ZXJzZWN0OiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQodGhpcy5jdHgsIGNvbmZpZ3VyYXRpb24pO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGxvYWRpbmdTdGFydCA9ICgpID0+IHtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0IGR5bmFtaWNDb2xvcigpIHtcclxuICAgIGNvbnN0IHIgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyNTUpO1xyXG4gICAgY29uc3QgZyA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDI1NSk7XHJcbiAgICBjb25zdCBiID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjU1KTtcclxuICAgIHJldHVybiAncmdiKCcgKyByICsgJywnICsgZyArICcsJyArIGIgKyAnKSc7XHJcbiAgfVxyXG5cclxuICAjZHJhd1RvdGFsT2ZTdGFja2VkQmFyID0gKGNoYXJ0VHlwZTonYmFybGluZScgfCAnYmFyJyB8ICdob3Jpem9udGFsQmFyJyk6Q2hhcnQuUGx1Z2luU2VydmljZVJlZ2lzdHJhdGlvbk9wdGlvbnMgPT4ge1xyXG4gICAgcmV0dXJuICB7XHJcbiAgICAgIGFmdGVyRHJhdyhjaGFydEluc3RhbmNlLCBlYXNpbmcsIG9wdGlvbnMpIHtcclxuICAgICAgICBpZiAoY2hhcnRJbnN0YW5jZT8uZGF0YT8uZGF0YXNldHM/Lmxlbmd0aCl7XHJcbiAgICAgICAgICBjb25zdCBjdHggPSBjaGFydEluc3RhbmNlLmN0eDtcclxuICAgICAgICAgIGNoYXJ0SW5zdGFuY2UuZGF0YS5kYXRhc2V0c1swXS5kYXRhLmZvckVhY2goICAoZGF0YVBvaW50LGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgbGV0IGN1ckxhc3RJbmRleCA9IDA7XHJcbiAgICAgICAgICAgICAgbGV0IGN1clRvdGFsID0gMDtcclxuICAgICAgICAgICAgICBjaGFydEluc3RhbmNlLmRhdGEuZGF0YXNldHMuZm9yRWFjaCggKGRhdGFzZXQsc2V0SW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChkYXRhc2V0LmRhdGFbaW5kZXhdICE9IDAgJiYgKCFkYXRhc2V0LmhpZGRlbikgJiYgZGF0YXNldC50eXBlICE9PSAnbGluZScpe1xyXG4gICAgICAgICAgICAgICAgICBjdXJMYXN0SW5kZXggPSBzZXRJbmRleDtcclxuICAgICAgICAgICAgICAgICAgaWYgKE51bWJlci5pc051bWJlcihkYXRhc2V0LmRhdGFbaW5kZXhdKSl7XHJcbiAgICAgICAgICAgICAgICAgICAgY3VyVG90YWwgKz0gTnVtYmVyKGRhdGFzZXQuZGF0YVtpbmRleF0pO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIGVsc2UgY3VyVG90YWwgKz0gMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIGNvbnN0IHt4LHl9ID0gY2hhcnRJbnN0YW5jZS5nZXREYXRhc2V0TWV0YShjdXJMYXN0SW5kZXgpLmRhdGFbaW5kZXhdLl9tb2RlbDtcclxuICAgICAgICAgICAgICBjb25zdCB0ZXh0V2lkdGggPSBjdHgubWVhc3VyZVRleHQoY3VyVG90YWwudG9TdHJpbmcoKSkud2lkdGg7XHJcbiAgICAgICAgICAgICAgY3R4LmZpbGxTdHlsZT0gJ2JsYWNrJztcclxuICAgICAgICAgICAgICBsZXQgeFRleHRQb3NpdGlvbiA9ICh4LXRleHRXaWR0aC8yICkgLSB0ZXh0V2lkdGggPiAwID8gKHgtdGV4dFdpZHRoLzIgKSA6IDA7XHJcbiAgICAgICAgICAgICAgaWYgKGluZGV4ID09IDApe1xyXG4gICAgICAgICAgICAgICAgeFRleHRQb3NpdGlvbiA9IHggKyAxMDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZWxzZSBpZiAoaW5kZXggPT09IGNoYXJ0SW5zdGFuY2UuZGF0YS5kYXRhc2V0c1swXS5kYXRhLmxlbmd0aCAtIDEgKXtcclxuICAgICAgICAgICAgICAgIHhUZXh0UG9zaXRpb24gPSB4IC0gdGV4dFdpZHRoIC0gMTA7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGN0eC5mb250ID0gJzMwMCAxMHB4J1xyXG4gICAgICAgICAgICAgIGN0eC5maWxsVGV4dChjdXJUb3RhbC50b1N0cmluZygpLCBjaGFydFR5cGUgPT09ICdob3Jpem9udGFsQmFyJyA/IHggKyAxMCA6IHhUZXh0UG9zaXRpb24sIGNoYXJ0VHlwZSA9PT0gJ2hvcml6b250YWxCYXInID8geSA6IHktMTApO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSAgICAgICAgIFxyXG4gICAgICB9LFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -88,4 +88,4 @@ export const ChartColors = {
|
|
|
88
88
|
White: '#FFFFFF',
|
|
89
89
|
};
|
|
90
90
|
export const CHART_CONFIG = new InjectionToken('chart.configuration');
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2NoYXJ0LyIsInNvdXJjZXMiOlsic3JjL2xpYi9jaGFydC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QixHQUFHLEVBQUUsbUJBQW1CO0lBQ3hCLE1BQU0sRUFBRSxtQkFBbUI7SUFDM0IsTUFBTSxFQUFFLG1CQUFtQjtJQUMzQixLQUFLLEVBQUUsbUJBQW1CO0lBQzFCLElBQUksRUFBRSxtQkFBbUI7SUFDekIsTUFBTSxFQUFFLG9CQUFvQjtJQUM1QixJQUFJLEVBQUUsb0JBQW9CO0lBQzFCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLFlBQVksRUFBRSxTQUFTO0lBQ3ZCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLEtBQUssRUFBRSxTQUFTO0NBQ2pCLENBQUM7QUE2SkYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFzQixxQkFBcUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBjb25zdCBDaGFydENvbG9ycyA9IHtcclxuICBSZWQ6ICdyZ2IoMjU1LCA5OSwgMTMyKScsXHJcbiAgT3JhbmdlOiAncmdiKDI1NSwgMTU5LCA2NCknLFxyXG4gIFllbGxvdzogJ3JnYigyNTUsIDIwNSwgODYpJyxcclxuICBHcmVlbjogJ3JnYig3NSwgMTkyLCAxOTIpJyxcclxuICBCbHVlOiAncmdiKDU0LCAxNjIsIDIzNSknLFxyXG4gIFB1cnBsZTogJ3JnYigxNTMsIDEwMiwgMjU1KScsXHJcbiAgR3JleTogJ3JnYigyMDEsIDIwMywgMjA3KScsXHJcbiAgUHVycGxlNzAwOiAnIzJFMjI0QycsXHJcbiAgUHVycGxlNjAwOiAnIzQ1MzM3MicsXHJcbiAgUHVycGxlNTAwOiAnIzU3NDE5MScsXHJcbiAgUHVycGxlNDAwOiAnIzczNTZCRicsXHJcbiAgUHVycGxlMzAwOiAnIzk1N0ZDRScsXHJcbiAgUHVycGxlMjAwOiAnI0MxQjRFMicsXHJcbiAgUHVycGxlMTAwOiAnI0UzRERGMicsXHJcbiAgUHVycGxlNTA6ICcjRjNGMUY5JyxcclxuICBCbHVlNzAwOiAnIzBGMkM2MCcsXHJcbiAgQmx1ZTYwMDogJyMxNzQyOTEnLFxyXG4gIEJsdWU1MDA6ICcjMUQ1M0I3JyxcclxuICBCbHVlNDAwOiAnIzI3NkVGMScsXHJcbiAgQmx1ZTMwMDogJyM1QTkwRjQnLFxyXG4gIEJsdWUyMDA6ICcjOUZCRkY4JyxcclxuICBCbHVlMTAwOiAnI0Q0RTJGQycsXHJcbiAgQmx1ZTUwOiAnI0VERjNGRCcsXHJcbiAgR3JlZW43MDA6ICcjMEQ0MDIwJyxcclxuICBHcmVlbjYwMDogJyMxNTZBMzYnLFxyXG4gIEdyZWVuNTAwOiAnIzA5ODYzRCcsXHJcbiAgR3JlZW40MDA6ICcjMjFBNDUzJyxcclxuICBHcmVlbjMwMDogJyM0M0JGNzUnLFxyXG4gIEdyZWVuMjAwOiAnIzlFRTJCOCcsXHJcbiAgR3JlZW4xMDA6ICcjQ0ZGM0REJyxcclxuICBHcmVlbjUwOiAnI0YwRkFGMycsXHJcbiAgWWVsbG93NzAwOiAnIzY2NEMxQScsXHJcbiAgWWVsbG93NjAwOiAnIzk5NzMyOCcsXHJcbiAgWWVsbG93NTAwOiAnI0MxOTEzMicsXHJcbiAgWWVsbG93NDAwOiAnI0ZGQzA0MycsXHJcbiAgWWVsbG93MzAwOiAnI0ZGQ0Y3MCcsXHJcbiAgWWVsbG93MjAwOiAnI0ZGRTNBQycsXHJcbiAgWWVsbG93MTAwOiAnI0ZGRjJEOScsXHJcbiAgWWVsbG93NTA6ICcjRkZGOUVGJyxcclxuICBPcmFuZ2U3MDA6ICcjNUYyQzE0JyxcclxuICBPcmFuZ2U2MDA6ICcjOEU0MjFFJyxcclxuICBPcmFuZ2U1MDA6ICcjQjQ1MzI2JyxcclxuICBPcmFuZ2U0MDA6ICcjRUQ2RTMzJyxcclxuICBPcmFuZ2UzMDA6ICcjRjE5MDYzJyxcclxuICBPcmFuZ2UyMDA6ICcjRjdCRkE1JyxcclxuICBPcmFuZ2UxMDA6ICcjRkJFMkQ2JyxcclxuICBPcmFuZ2U1MDogJyNGREYzRUUnLFxyXG4gIFJlZDcwMDogJyM1NDFBMTQnLFxyXG4gIFJlZDYwMDogJyM3RjI4MUUnLFxyXG4gIFJlZDUwMDogJyNBMTMyMjYnLFxyXG4gIFJlZDQwMDogJyNENDQzMzMnLFxyXG4gIFJlZDMwMDogJyNERTcwNjMnLFxyXG4gIFJlZDIwMDogJyNFQ0FDQTUnLFxyXG4gIFJlZDEwMDogJyNGNkQ5RDYnLFxyXG4gIFJlZDUwOiAnI0ZCRUZFRScsXHJcbiAgQnJvd243MDA6ICcjM0QyODFFJyxcclxuICBCcm93bjYwMDogJyM1QjNDMkQnLFxyXG4gIEJyb3duNTAwOiAnIzc0NEMzOScsXHJcbiAgQnJvd240MDA6ICcjOTk2NDRDJyxcclxuICBCcm93bjMwMDogJyNCMTg5NzYnLFxyXG4gIEJyb3duMjAwOiAnI0QyQkFCMCcsXHJcbiAgQnJvd24xMDA6ICcjRUJFMERCJyxcclxuICBCcm93bjUwOiAnI0Y2RjJGMCcsXHJcbiAgR3JheTkwMDogJyMxNDE0MTQnLFxyXG4gIEdyYXk4MDA6ICcjMUYxRjFGJyxcclxuICBHcmF5NzAwOiAnIzMzMzMzMycsXHJcbiAgR3JheTYwMDogJyM1NDU0NTQnLFxyXG4gIEdyYXk1MDA6ICcjNzU3NTc1JyxcclxuICBHcmF5NDAwOiAnI0FGQUZBRicsXHJcbiAgR3JheTMwMDogJyNDQkNCQ0InLFxyXG4gIEdyYXkyMDA6ICcjRTJFMkUyJyxcclxuICBHcmF5MTAwOiAnI0VFRUVFRScsXHJcbiAgR3JheTUwOiAnI0Y2RjZGNicsXHJcbiAgUGxhdGludW03MDA6ICcjMzk0MTQ1JyxcclxuICBQbGF0aW51bTYwMDogJyM1NTYyNjgnLFxyXG4gIFBsYXRpbnVtNTAwOiAnIzZDN0M4MycsXHJcbiAgUGxhdGludW00MDA6ICcjOEVBM0FEJyxcclxuICBQbGF0aW51bTMwMDogJyNBMUJEQ0EnLFxyXG4gIFBsYXRpbnVtMjAwOiAnI0NDREZFNScsXHJcbiAgUGxhdGludW0xMDA6ICcjRUJGNUY3JyxcclxuICBQbGF0aW51bTUwOiAnI0Y0RkFGQicsXHJcbiAgRWF0c0dyZWVuNDAwOiAnIzIxQTQ1MycsXHJcbiAgRnJlaWdodEJsdWU0MDA6ICcjMjFBNDUzJyxcclxuICBKdW1wUmVkNDAwOiAnI0ZGMEEyRCcsXHJcbiAgQmxhY2s6ICcjMDAwMDAwJyxcclxuICBXaGl0ZTogJyNGRkZGRkYnLFxyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgU2RDaGFydE9wdGlvbiA9IERvdWdobnV0Q2hhcnRPcHRpb24gfCBQaWVDaGFydE9wdGlvbiB8XHJcbiAgQmFyQ2hhcnRPcHRpb24gfFxyXG4gIEhvcml6b250YWxCYXJDaGFydE9wdGlvbiB8XHJcbiAgTGluZUNoYXJ0T3B0aW9uIHxcclxuICBTdGFja0FyZWFDaGFydE9wdGlvbiB8XHJcbiAgQmFyTGluZUNoYXJ0T3B0aW9uO1xyXG5cclxuaW50ZXJmYWNlIEJhc2VDaGFydE9wdGlvbiB7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgaGVpZ2h0Pzogc3RyaW5nO1xyXG4gIGhpZGVMZWdlbmQ/OiBib29sZWFuO1xyXG4gIHRvb2x0aXBzPzoge1xyXG4gICAgbGFiZWw6IChwYXJhbXM6IHsgZGF0YXNldExhYmVsPzogc3RyaW5nLCBsYWJlbD86IHN0cmluZywgdmFsdWU/OiBudW1iZXIgfSkgPT4gc3RyaW5nO1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGllQ2hhcnRPcHRpb24gZXh0ZW5kcyBCYXNlQ2hhcnRPcHRpb24ge1xyXG4gIHR5cGU6ICdwaWUnO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGRhdGFzZXRzOiB7XHJcbiAgICBsYWJlbDogc3RyaW5nLFxyXG4gICAgdmFsdWU6IG51bWJlcixcclxuICAgIGJhY2tncm91bmRDb2xvcjogc3RyaW5nXHJcbiAgfVtdO1xyXG4gIGhvdmVyPzogJ1Nob3dBbGwnO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERvdWdobnV0Q2hhcnRPcHRpb24gZXh0ZW5kcyBCYXNlQ2hhcnRPcHRpb24ge1xyXG4gIHR5cGU6ICdkb3VnaG51dCc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgZGF0YXNldHM6IHtcclxuICAgIGxhYmVsOiBzdHJpbmcsXHJcbiAgICB2YWx1ZTogbnVtYmVyLFxyXG4gICAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmdcclxuICB9W107XHJcbiAgaG92ZXI/OiAnU2hvd0FsbCc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQmFyQ2hhcnRPcHRpb24gZXh0ZW5kcyBCYXNlQ2hhcnRPcHRpb24ge1xyXG4gIHR5cGU6ICdiYXInO1xyXG4gIHhUaXRsZT86IHN0cmluZztcclxuICB5VGl0bGU/OiBzdHJpbmc7XHJcbiAgbGFiZWxzOiBzdHJpbmdbXTtcclxuICBkYXRhc2V0czoge1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIGRhdGE6IG51bWJlcltdO1xyXG4gICAgYm9yZGVyQ29sb3I/OiBzdHJpbmcsXHJcbiAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XHJcbiAgICBzdGFjaz86IHN0cmluZztcclxuICB9W107XHJcbiAgYmVnaW5BdFplcm8/OiBib29sZWFuO1xyXG4gIGxhYmVsV2lkdGg/OiBudW1iZXI7XHJcbiAgdGlja3M/OiB7XHJcbiAgICB4TGFiZWw/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nLFxyXG4gICAgeUxhYmVsPzogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHN0cmluZ1xyXG4gIH07XHJcbiAgaG92ZXI/OiAnU2hvd0FsbCc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSG9yaXpvbnRhbEJhckNoYXJ0T3B0aW9uIGV4dGVuZHMgQmFzZUNoYXJ0T3B0aW9uIHtcclxuICB0eXBlOiAnaG9yaXpvbnRhbEJhcic7XHJcbiAgeFRpdGxlPzogc3RyaW5nO1xyXG4gIHlUaXRsZT86IHN0cmluZztcclxuICBsYWJlbHM6IHN0cmluZ1tdO1xyXG4gIGRhdGFzZXRzOiB7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgZGF0YTogbnVtYmVyW107XHJcbiAgICBib3JkZXJDb2xvcj86IHN0cmluZyxcclxuICAgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxuICAgIHN0YWNrPzogc3RyaW5nO1xyXG4gIH1bXTtcclxuICBiZWdpbkF0WmVybz86IGJvb2xlYW47XHJcbiAgbGFiZWxXaWR0aD86IG51bWJlcjtcclxuICB0aWNrcz86IHtcclxuICAgIHhMYWJlbD86ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiBzdHJpbmcsXHJcbiAgICB5TGFiZWw/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nXHJcbiAgfTtcclxuICBob3Zlcj86ICdTaG93QWxsJztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMaW5lQ2hhcnRPcHRpb24gZXh0ZW5kcyBCYXNlQ2hhcnRPcHRpb24ge1xyXG4gIHR5cGU6ICdsaW5lJztcclxuICB4VGl0bGU/OiBzdHJpbmc7XHJcbiAgeVRpdGxlPzogc3RyaW5nO1xyXG4gIGxhYmVsczogc3RyaW5nW107XHJcbiAgZGF0YXNldHM6IHtcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBkYXRhOiBudW1iZXJbXTtcclxuICAgIGJvcmRlckNvbG9yPzogc3RyaW5nLFxyXG4gICAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xyXG4gIH1bXTtcclxuICBiZWdpbkF0WmVybz86IGJvb2xlYW47XHJcbiAgbGFiZWxXaWR0aD86IG51bWJlcjtcclxuICB0aWNrcz86IHtcclxuICAgIHhMYWJlbD86ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiBzdHJpbmcsXHJcbiAgICB5TGFiZWw/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nXHJcbiAgfTtcclxuICBob3Zlcj86ICdTaG93QWxsJztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTdGFja0FyZWFDaGFydE9wdGlvbiBleHRlbmRzIEJhc2VDaGFydE9wdGlvbiB7XHJcbiAgdHlwZTogJ3N0YWNrQXJlYSc7XHJcbiAgeFRpdGxlPzogc3RyaW5nO1xyXG4gIHlUaXRsZT86IHN0cmluZztcclxuICBsYWJlbHM6IHN0cmluZ1tdO1xyXG4gIGRhdGFzZXRzOiB7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgZGF0YTogbnVtYmVyW107XHJcbiAgICBib3JkZXJDb2xvcj86IHN0cmluZyxcclxuICAgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxuICB9W107XHJcbiAgYmVnaW5BdFplcm8/OiBib29sZWFuO1xyXG4gIGxhYmVsV2lkdGg/OiBudW1iZXI7XHJcbiAgdGlja3M/OiB7XHJcbiAgICB4TGFiZWw/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nLFxyXG4gICAgeUxhYmVsPzogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHN0cmluZ1xyXG4gIH07XHJcbiAgaG92ZXI/OiAnU2hvd0FsbCc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQmFyTGluZUNoYXJ0T3B0aW9uIGV4dGVuZHMgQmFzZUNoYXJ0T3B0aW9uIHtcclxuICB0eXBlOiAnYmFybGluZSc7XHJcbiAgeFRpdGxlPzogc3RyaW5nO1xyXG4gIHhTdGFja2VkPzpib29sZWFuO1xyXG4gIHlUaXRsZT86IHN0cmluZztcclxuICB5U3RhY2tlZD86Ym9vbGVhbjtcclxuICB5UmlnaHRUaXRsZT86IHN0cmluZztcclxuICBsYWJlbHM6IHN0cmluZ1tdO1xyXG4gIGRhdGFzZXRzOiB7XHJcbiAgICB0eXBlOiAnYmFyJyB8ICdsaW5lJyxcclxuICAgIHlBbGlnbj86ICdsZWZ0JyB8ICdyaWdodCcsXHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgZGF0YTogbnVtYmVyW107XHJcbiAgICBvcmRlcj86bnVtYmVyO1xyXG4gICAgYm9yZGVyQ29sb3I/OiBzdHJpbmc7XHJcbiAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XHJcbiAgfVtdO1xyXG4gIGJlZ2luQXRaZXJvPzogYm9vbGVhbjtcclxuICBsYWJlbFdpZHRoPzogbnVtYmVyO1xyXG4gIHRpY2tzPzoge1xyXG4gICAgeExhYmVsPzogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHN0cmluZyxcclxuICAgIHlMYWJlbD86ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiBzdHJpbmcsXHJcbiAgICB5UmlnaHRMYWJlbD86ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiBzdHJpbmdcclxuICB9O1xyXG4gIGhvdmVyPzogJ1Nob3dBbGwnO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ2hhcnRDb25maWd1cmF0aW9uIHtcclxuICBkZWZhdWx0Q29sb3JzPzoge1xyXG4gICAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nLFxyXG4gICAgYm9yZGVyQ29sb3I/OiBzdHJpbmdcclxuICB9W107XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBDSEFSVF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48SUNoYXJ0Q29uZmlndXJhdGlvbj4oJ2NoYXJ0LmNvbmZpZ3VyYXRpb24nKTtcclxuIl19
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2NoYXJ0LyIsInNvdXJjZXMiOlsic3JjL2xpYi9jaGFydC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QixHQUFHLEVBQUUsbUJBQW1CO0lBQ3hCLE1BQU0sRUFBRSxtQkFBbUI7SUFDM0IsTUFBTSxFQUFFLG1CQUFtQjtJQUMzQixLQUFLLEVBQUUsbUJBQW1CO0lBQzFCLElBQUksRUFBRSxtQkFBbUI7SUFDekIsTUFBTSxFQUFFLG9CQUFvQjtJQUM1QixJQUFJLEVBQUUsb0JBQW9CO0lBQzFCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLFlBQVksRUFBRSxTQUFTO0lBQ3ZCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLEtBQUssRUFBRSxTQUFTO0NBQ2pCLENBQUM7QUFpS0YsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFzQixxQkFBcUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBjb25zdCBDaGFydENvbG9ycyA9IHtcclxuICBSZWQ6ICdyZ2IoMjU1LCA5OSwgMTMyKScsXHJcbiAgT3JhbmdlOiAncmdiKDI1NSwgMTU5LCA2NCknLFxyXG4gIFllbGxvdzogJ3JnYigyNTUsIDIwNSwgODYpJyxcclxuICBHcmVlbjogJ3JnYig3NSwgMTkyLCAxOTIpJyxcclxuICBCbHVlOiAncmdiKDU0LCAxNjIsIDIzNSknLFxyXG4gIFB1cnBsZTogJ3JnYigxNTMsIDEwMiwgMjU1KScsXHJcbiAgR3JleTogJ3JnYigyMDEsIDIwMywgMjA3KScsXHJcbiAgUHVycGxlNzAwOiAnIzJFMjI0QycsXHJcbiAgUHVycGxlNjAwOiAnIzQ1MzM3MicsXHJcbiAgUHVycGxlNTAwOiAnIzU3NDE5MScsXHJcbiAgUHVycGxlNDAwOiAnIzczNTZCRicsXHJcbiAgUHVycGxlMzAwOiAnIzk1N0ZDRScsXHJcbiAgUHVycGxlMjAwOiAnI0MxQjRFMicsXHJcbiAgUHVycGxlMTAwOiAnI0UzRERGMicsXHJcbiAgUHVycGxlNTA6ICcjRjNGMUY5JyxcclxuICBCbHVlNzAwOiAnIzBGMkM2MCcsXHJcbiAgQmx1ZTYwMDogJyMxNzQyOTEnLFxyXG4gIEJsdWU1MDA6ICcjMUQ1M0I3JyxcclxuICBCbHVlNDAwOiAnIzI3NkVGMScsXHJcbiAgQmx1ZTMwMDogJyM1QTkwRjQnLFxyXG4gIEJsdWUyMDA6ICcjOUZCRkY4JyxcclxuICBCbHVlMTAwOiAnI0Q0RTJGQycsXHJcbiAgQmx1ZTUwOiAnI0VERjNGRCcsXHJcbiAgR3JlZW43MDA6ICcjMEQ0MDIwJyxcclxuICBHcmVlbjYwMDogJyMxNTZBMzYnLFxyXG4gIEdyZWVuNTAwOiAnIzA5ODYzRCcsXHJcbiAgR3JlZW40MDA6ICcjMjFBNDUzJyxcclxuICBHcmVlbjMwMDogJyM0M0JGNzUnLFxyXG4gIEdyZWVuMjAwOiAnIzlFRTJCOCcsXHJcbiAgR3JlZW4xMDA6ICcjQ0ZGM0REJyxcclxuICBHcmVlbjUwOiAnI0YwRkFGMycsXHJcbiAgWWVsbG93NzAwOiAnIzY2NEMxQScsXHJcbiAgWWVsbG93NjAwOiAnIzk5NzMyOCcsXHJcbiAgWWVsbG93NTAwOiAnI0MxOTEzMicsXHJcbiAgWWVsbG93NDAwOiAnI0ZGQzA0MycsXHJcbiAgWWVsbG93MzAwOiAnI0ZGQ0Y3MCcsXHJcbiAgWWVsbG93MjAwOiAnI0ZGRTNBQycsXHJcbiAgWWVsbG93MTAwOiAnI0ZGRjJEOScsXHJcbiAgWWVsbG93NTA6ICcjRkZGOUVGJyxcclxuICBPcmFuZ2U3MDA6ICcjNUYyQzE0JyxcclxuICBPcmFuZ2U2MDA6ICcjOEU0MjFFJyxcclxuICBPcmFuZ2U1MDA6ICcjQjQ1MzI2JyxcclxuICBPcmFuZ2U0MDA6ICcjRUQ2RTMzJyxcclxuICBPcmFuZ2UzMDA6ICcjRjE5MDYzJyxcclxuICBPcmFuZ2UyMDA6ICcjRjdCRkE1JyxcclxuICBPcmFuZ2UxMDA6ICcjRkJFMkQ2JyxcclxuICBPcmFuZ2U1MDogJyNGREYzRUUnLFxyXG4gIFJlZDcwMDogJyM1NDFBMTQnLFxyXG4gIFJlZDYwMDogJyM3RjI4MUUnLFxyXG4gIFJlZDUwMDogJyNBMTMyMjYnLFxyXG4gIFJlZDQwMDogJyNENDQzMzMnLFxyXG4gIFJlZDMwMDogJyNERTcwNjMnLFxyXG4gIFJlZDIwMDogJyNFQ0FDQTUnLFxyXG4gIFJlZDEwMDogJyNGNkQ5RDYnLFxyXG4gIFJlZDUwOiAnI0ZCRUZFRScsXHJcbiAgQnJvd243MDA6ICcjM0QyODFFJyxcclxuICBCcm93bjYwMDogJyM1QjNDMkQnLFxyXG4gIEJyb3duNTAwOiAnIzc0NEMzOScsXHJcbiAgQnJvd240MDA6ICcjOTk2NDRDJyxcclxuICBCcm93bjMwMDogJyNCMTg5NzYnLFxyXG4gIEJyb3duMjAwOiAnI0QyQkFCMCcsXHJcbiAgQnJvd24xMDA6ICcjRUJFMERCJyxcclxuICBCcm93bjUwOiAnI0Y2RjJGMCcsXHJcbiAgR3JheTkwMDogJyMxNDE0MTQnLFxyXG4gIEdyYXk4MDA6ICcjMUYxRjFGJyxcclxuICBHcmF5NzAwOiAnIzMzMzMzMycsXHJcbiAgR3JheTYwMDogJyM1NDU0NTQnLFxyXG4gIEdyYXk1MDA6ICcjNzU3NTc1JyxcclxuICBHcmF5NDAwOiAnI0FGQUZBRicsXHJcbiAgR3JheTMwMDogJyNDQkNCQ0InLFxyXG4gIEdyYXkyMDA6ICcjRTJFMkUyJyxcclxuICBHcmF5MTAwOiAnI0VFRUVFRScsXHJcbiAgR3JheTUwOiAnI0Y2RjZGNicsXHJcbiAgUGxhdGludW03MDA6ICcjMzk0MTQ1JyxcclxuICBQbGF0aW51bTYwMDogJyM1NTYyNjgnLFxyXG4gIFBsYXRpbnVtNTAwOiAnIzZDN0M4MycsXHJcbiAgUGxhdGludW00MDA6ICcjOEVBM0FEJyxcclxuICBQbGF0aW51bTMwMDogJyNBMUJEQ0EnLFxyXG4gIFBsYXRpbnVtMjAwOiAnI0NDREZFNScsXHJcbiAgUGxhdGludW0xMDA6ICcjRUJGNUY3JyxcclxuICBQbGF0aW51bTUwOiAnI0Y0RkFGQicsXHJcbiAgRWF0c0dyZWVuNDAwOiAnIzIxQTQ1MycsXHJcbiAgRnJlaWdodEJsdWU0MDA6ICcjMjFBNDUzJyxcclxuICBKdW1wUmVkNDAwOiAnI0ZGMEEyRCcsXHJcbiAgQmxhY2s6ICcjMDAwMDAwJyxcclxuICBXaGl0ZTogJyNGRkZGRkYnLFxyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgU2RDaGFydE9wdGlvbiA9IERvdWdobnV0Q2hhcnRPcHRpb24gfCBQaWVDaGFydE9wdGlvbiB8XHJcbiAgQmFyQ2hhcnRPcHRpb24gfFxyXG4gIEhvcml6b250YWxCYXJDaGFydE9wdGlvbiB8XHJcbiAgTGluZUNoYXJ0T3B0aW9uIHxcclxuICBTdGFja0FyZWFDaGFydE9wdGlvbiB8XHJcbiAgQmFyTGluZUNoYXJ0T3B0aW9uO1xyXG5cclxuaW50ZXJmYWNlIEJhc2VDaGFydE9wdGlvbiB7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgaGVpZ2h0Pzogc3RyaW5nO1xyXG4gIGhpZGVMZWdlbmQ/OiBib29sZWFuO1xyXG4gIGxlZ2VuZFBvc2l0aW9uPzonbGVmdCcgfCAncmlnaHQnIHwgJ3RvcCcgfCAnYm90dG9tJyB8ICdjaGFydEFyZWEnXHJcbiAgdG9vbHRpcHM/OiB7XHJcbiAgICBsYWJlbDogKHBhcmFtczogeyBkYXRhc2V0TGFiZWw/OiBzdHJpbmcsIGxhYmVsPzogc3RyaW5nLCB2YWx1ZT86IG51bWJlcixkYXRhc2V0SW5kZXg/Om51bWJlcixkYXRhSW5kZXg/Om51bWJlcjsgfSkgPT4gc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQaWVDaGFydE9wdGlvbiBleHRlbmRzIEJhc2VDaGFydE9wdGlvbiB7XHJcbiAgdHlwZTogJ3BpZSc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgZGF0YXNldHM6IHtcclxuICAgIGxhYmVsOiBzdHJpbmcsXHJcbiAgICB2YWx1ZTogbnVtYmVyLFxyXG4gICAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmdcclxuICB9W107XHJcbiAgaG92ZXI/OiAnU2hvd0FsbCc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRG91Z2hudXRDaGFydE9wdGlvbiBleHRlbmRzIEJhc2VDaGFydE9wdGlvbiB7XHJcbiAgdHlwZTogJ2RvdWdobnV0JztcclxuICB0aXRsZT86IHN0cmluZztcclxuICBkYXRhc2V0czoge1xyXG4gICAgbGFiZWw6IHN0cmluZyxcclxuICAgIHZhbHVlOiBudW1iZXIsXHJcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZ1xyXG4gIH1bXTtcclxuICBob3Zlcj86ICdTaG93QWxsJztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCYXJDaGFydE9wdGlvbiBleHRlbmRzIEJhc2VDaGFydE9wdGlvbiB7XHJcbiAgdHlwZTogJ2Jhcic7XHJcbiAgeFRpdGxlPzogc3RyaW5nO1xyXG4gIHlUaXRsZT86IHN0cmluZztcclxuICBsYWJlbHM6IHN0cmluZ1tdO1xyXG4gIGRhdGFzZXRzOiB7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgZGF0YTogbnVtYmVyW107XHJcbiAgICBib3JkZXJDb2xvcj86IHN0cmluZyxcclxuICAgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxuICAgIHN0YWNrPzogc3RyaW5nO1xyXG4gIH1bXTtcclxuICBiZWdpbkF0WmVybz86IGJvb2xlYW47XHJcbiAgbGFiZWxXaWR0aD86IG51bWJlcjtcclxuICB0aWNrcz86IHtcclxuICAgIHhMYWJlbD86ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiBzdHJpbmcsXHJcbiAgICB5TGFiZWw/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nXHJcbiAgfTtcclxuICBob3Zlcj86ICdTaG93QWxsJztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBIb3Jpem9udGFsQmFyQ2hhcnRPcHRpb24gZXh0ZW5kcyBCYXNlQ2hhcnRPcHRpb24ge1xyXG4gIHR5cGU6ICdob3Jpem9udGFsQmFyJztcclxuICB4VGl0bGU/OiBzdHJpbmc7XHJcbiAgeVRpdGxlPzogc3RyaW5nO1xyXG4gIGxhYmVsczogc3RyaW5nW107XHJcbiAgZGF0YXNldHM6IHtcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBkYXRhOiBudW1iZXJbXTtcclxuICAgIGJvcmRlckNvbG9yPzogc3RyaW5nLFxyXG4gICAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xyXG4gICAgc3RhY2s/OiBzdHJpbmc7XHJcbiAgfVtdO1xyXG4gIGJlZ2luQXRaZXJvPzogYm9vbGVhbjtcclxuICBsYWJlbFdpZHRoPzogbnVtYmVyO1xyXG4gIHRpY2tzPzoge1xyXG4gICAgeExhYmVsPzogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHN0cmluZyxcclxuICAgIHlMYWJlbD86ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiBzdHJpbmdcclxuICB9O1xyXG4gIGhvdmVyPzogJ1Nob3dBbGwnO1xyXG4gIHNob3dUb3RhbFN0YWNrPzpib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExpbmVDaGFydE9wdGlvbiBleHRlbmRzIEJhc2VDaGFydE9wdGlvbiB7XHJcbiAgdHlwZTogJ2xpbmUnO1xyXG4gIHhUaXRsZT86IHN0cmluZztcclxuICB5VGl0bGU/OiBzdHJpbmc7XHJcbiAgbGFiZWxzOiBzdHJpbmdbXTtcclxuICBkYXRhc2V0czoge1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIGRhdGE6IG51bWJlcltdO1xyXG4gICAgYm9yZGVyQ29sb3I/OiBzdHJpbmcsXHJcbiAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XHJcbiAgfVtdO1xyXG4gIGJlZ2luQXRaZXJvPzogYm9vbGVhbjtcclxuICBsYWJlbFdpZHRoPzogbnVtYmVyO1xyXG4gIHRpY2tzPzoge1xyXG4gICAgeExhYmVsPzogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHN0cmluZyxcclxuICAgIHlMYWJlbD86ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiBzdHJpbmdcclxuICB9O1xyXG4gIGhvdmVyPzogJ1Nob3dBbGwnO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrQXJlYUNoYXJ0T3B0aW9uIGV4dGVuZHMgQmFzZUNoYXJ0T3B0aW9uIHtcclxuICB0eXBlOiAnc3RhY2tBcmVhJztcclxuICB4VGl0bGU/OiBzdHJpbmc7XHJcbiAgeVRpdGxlPzogc3RyaW5nO1xyXG4gIGxhYmVsczogc3RyaW5nW107XHJcbiAgZGF0YXNldHM6IHtcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBkYXRhOiBudW1iZXJbXTtcclxuICAgIGJvcmRlckNvbG9yPzogc3RyaW5nLFxyXG4gICAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xyXG4gIH1bXTtcclxuICBiZWdpbkF0WmVybz86IGJvb2xlYW47XHJcbiAgbGFiZWxXaWR0aD86IG51bWJlcjtcclxuICB0aWNrcz86IHtcclxuICAgIHhMYWJlbD86ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiBzdHJpbmcsXHJcbiAgICB5TGFiZWw/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nXHJcbiAgfTtcclxuICBob3Zlcj86ICdTaG93QWxsJztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCYXJMaW5lQ2hhcnRPcHRpb24gZXh0ZW5kcyBCYXNlQ2hhcnRPcHRpb24ge1xyXG4gIHR5cGU6ICdiYXJsaW5lJztcclxuICB4VGl0bGU/OiBzdHJpbmc7XHJcbiAgeFN0YWNrZWQ/OmJvb2xlYW47XHJcbiAgeVRpdGxlPzogc3RyaW5nO1xyXG4gIHlTdGFja2VkPzpib29sZWFuO1xyXG4gIHlSaWdodFRpdGxlPzogc3RyaW5nO1xyXG4gIGxhYmVsczogc3RyaW5nW107XHJcbiAgZGF0YXNldHM6IHtcclxuICAgIHR5cGU6ICdiYXInIHwgJ2xpbmUnLFxyXG4gICAgeUFsaWduPzogJ2xlZnQnIHwgJ3JpZ2h0JyxcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBkYXRhOiBudW1iZXJbXTtcclxuICAgIG9yZGVyPzpudW1iZXI7XHJcbiAgICBib3JkZXJDb2xvcj86IHN0cmluZztcclxuICAgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxuICB9W107XHJcbiAgYmVnaW5BdFplcm8/OiBib29sZWFuO1xyXG4gIGxhYmVsV2lkdGg/OiBudW1iZXI7XHJcbiAgdGlja3M/OiB7XHJcbiAgICB4TGFiZWw/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nLFxyXG4gICAgeUxhYmVsPzogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHN0cmluZyxcclxuICAgIHlSaWdodExhYmVsPzogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHN0cmluZ1xyXG4gIH07XHJcbiAgaG92ZXI/OiAnU2hvd0FsbCc7XHJcbiAgc2hvd1RvdGFsU3RhY2s/OmJvb2xlYW5cclxufVxyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNoYXJ0Q29uZmlndXJhdGlvbiB7XHJcbiAgZGVmYXVsdENvbG9ycz86IHtcclxuICAgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZyxcclxuICAgIGJvcmRlckNvbG9yPzogc3RyaW5nXHJcbiAgfVtdO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IENIQVJUX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJQ2hhcnRDb25maWd1cmF0aW9uPignY2hhcnQuY29uZmlndXJhdGlvbicpO1xyXG4iXX0=
|