ngx-histaff-alpha 0.2.5 → 0.2.8
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/esm2022/lib/app/libraries/animated-text/animated-text/animated-text.component.mjs +24 -22
- package/esm2022/lib/app/libraries/core-attachment/core-attachment/core-attachment.component.mjs +3 -1
- package/esm2022/lib/app/libraries/core-file-uploader/core-file-uploader/core-file-uploader.component.mjs +3 -1
- package/esm2022/lib/app/libraries/core-page-list/core-page-list.component.mjs +3 -1
- package/esm2022/lib/app/services/app.service.mjs +7 -2
- package/esm2022/lib/assets/js/coreFileUtils.mjs +27 -0
- package/fesm2022/ngx-histaff-alpha.mjs +60 -22
- package/fesm2022/ngx-histaff-alpha.mjs.map +1 -1
- package/lib/app/libraries/animated-text/animated-text/animated-text.component.d.ts +0 -1
- package/lib/assets/js/coreFileUtils.d.ts +2 -0
- package/package.json +1 -1
|
@@ -2,8 +2,6 @@ import { Component, ViewChild } from '@angular/core';
|
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "../animated-text.service";
|
|
5
|
-
const d3_select = d3.select;
|
|
6
|
-
const d3_shuffle = d3.shuffle;
|
|
7
5
|
export class AnimatedTextComponent {
|
|
8
6
|
constructor(animatedTextService) {
|
|
9
7
|
this.animatedTextService = animatedTextService;
|
|
@@ -21,12 +19,15 @@ export class AnimatedTextComponent {
|
|
|
21
19
|
}));
|
|
22
20
|
}
|
|
23
21
|
ngAfterViewInit() {
|
|
22
|
+
/*
|
|
24
23
|
this.svg = d3_select(this.letters.nativeElement).append('svg')
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
.attr('width', this.WIDTH)
|
|
25
|
+
.attr('height', this.HEIGHT)
|
|
26
|
+
.append('g')
|
|
27
|
+
.attr('transform', 'translate(0,' + (this.HEIGHT / 2) + ')');
|
|
28
|
+
|
|
29
29
|
this.loop();
|
|
30
|
+
*/
|
|
30
31
|
}
|
|
31
32
|
update(data) {
|
|
32
33
|
const text = this.svg.selectAll('text').data(data, (d) => d.index);
|
|
@@ -40,25 +41,26 @@ export class AnimatedTextComponent {
|
|
|
40
41
|
.transition().duration(1000)
|
|
41
42
|
.attr('x', (d, _) => this.LETTER_WIDTH * d.pos);
|
|
42
43
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
/*
|
|
45
|
+
loop(): void {
|
|
46
|
+
if (!!!this.allowLoop) return;
|
|
47
|
+
this.update(this.data);
|
|
48
|
+
setTimeout(() => {
|
|
49
|
+
this.data = d3_shuffle(this.data).map((d: ILetterItem, i: number) => {
|
|
50
|
+
d.pos = i;
|
|
51
|
+
return d;
|
|
52
|
+
});
|
|
46
53
|
this.update(this.data);
|
|
47
54
|
setTimeout(() => {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
setTimeout(() => {
|
|
54
|
-
this.data = this.data.map((d, _) => {
|
|
55
|
-
d.pos = d.index;
|
|
56
|
-
return d;
|
|
57
|
-
});
|
|
58
|
-
this.loop();
|
|
59
|
-
}, 2000);
|
|
55
|
+
this.data = this.data.map((d: ILetterItem, _: number) => {
|
|
56
|
+
d.pos = d.index;
|
|
57
|
+
return d;
|
|
58
|
+
});
|
|
59
|
+
this.loop();
|
|
60
60
|
}, 2000);
|
|
61
|
+
}, 2000);
|
|
61
62
|
}
|
|
63
|
+
*/
|
|
62
64
|
ngOnDestroy() {
|
|
63
65
|
this.allowLoop = false;
|
|
64
66
|
this.subscriptions.map(x => x?.unsubscribe());
|
|
@@ -73,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
73
75
|
type: ViewChild,
|
|
74
76
|
args: ['letters']
|
|
75
77
|
}] } });
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0ZWQtdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvYW5pbWF0ZWQtdGV4dC9hbmltYXRlZC10ZXh0L2FuaW1hdGVkLXRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvbGlicmFyaWVzL2FuaW1hdGVkLXRleHQvYW5pbWF0ZWQtdGV4dC9hbmltYXRlZC10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXlCLFNBQVMsRUFBeUIsTUFBTSxlQUFlLENBQUM7QUFHbkcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFzQi9DLE1BQU0sT0FBTyxxQkFBcUI7SUFlaEMsWUFBb0IsbUJBQXdDO1FBQXhDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFYNUQsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBR25DLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFFMUIsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFFMUIsV0FBTSxHQUFXLEVBQUUsQ0FBQztJQUk0QyxDQUFDO0lBRWpFLFFBQVE7UUFFTixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDckIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDakQsTUFBTSxPQUFPLEdBQWtCLEVBQUUsQ0FBQztZQUNsQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUM5RSxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztZQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUVKLENBQUM7SUFFRCxlQUFlO1FBQ2I7Ozs7Ozs7O1VBUUU7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLElBQW1CO1FBQ3hCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQzthQUN4QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7YUFDNUYsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQWMsRUFBRSxDQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQzthQUNuRSxLQUFLLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQzthQUMxQixLQUFLLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQzthQUNqQyxJQUFJLENBQUMsQ0FBQyxDQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7YUFDbEMsS0FBSyxDQUFDLElBQUksQ0FBQzthQUNYLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7YUFDM0IsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQWMsRUFBRSxDQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQW1CRTtJQUVGLFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7OEdBL0VVLHFCQUFxQjtrR0FBckIscUJBQXFCLGlMQ3pCbEMsMEJBQ0EseUREb0JZLFlBQVk7OzJGQUlYLHFCQUFxQjtrQkFQakMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDO3dGQU1ELE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBbmltYXRlZFRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vYW5pbWF0ZWQtdGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG4vKlxyXG5pbXBvcnQgKiBhcyBkMyBmcm9tICcuLi8uLi8uLi8uLi9hc3NldHMvanMvZDMtdjctOC00L2Rpc3QvZDMnXHJcblxyXG5jb25zdCBkM19zZWxlY3QgPSBkMy5zZWxlY3Q7XHJcbmNvbnN0IGQzX3NodWZmbGUgPSBkMy5zaHVmZmxlO1xyXG4qL1xyXG5cclxuaW50ZXJmYWNlIElMZXR0ZXJJdGVtIHtcclxuICBsZXR0ZXI6IHN0cmluZztcclxuICBwb3M6IG51bWJlcjtcclxuICBpbmRleDogbnVtYmVyO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1hbmltYXRlZC10ZXh0JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hbmltYXRlZC10ZXh0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hbmltYXRlZC10ZXh0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEFuaW1hdGVkVGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgQFZpZXdDaGlsZCgnbGV0dGVycycpIGxldHRlcnMhOiBFbGVtZW50UmVmO1xyXG5cclxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBkYXRhITogSUxldHRlckl0ZW1bXTtcclxuICBhbGxvd0xvb3A6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBMRVRURVJfV0lEVEg6IG51bWJlciA9IDIyO1xyXG4gIFdJRFRIITogbnVtYmVyO1xyXG4gIEhFSUdIVDogbnVtYmVyID0gODA7XHJcblxyXG4gIHN2ZyE6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhbmltYXRlZFRleHRTZXJ2aWNlOiBBbmltYXRlZFRleHRTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMuYW5pbWF0ZWRUZXh0U2VydmljZS50ZXh0JC5zdWJzY3JpYmUobmV3VGV4dCA9PiB7XHJcbiAgICAgICAgY29uc3QgbmV3RGF0YTogSUxldHRlckl0ZW1bXSA9IFtdO1xyXG4gICAgICAgIG5ld1RleHQuc3BsaXQoJycpLm1hcCgoeCwgaSkgPT4gbmV3RGF0YS5wdXNoKHsgbGV0dGVyOiB4LCBwb3M6IGksIGluZGV4OiBpIH0pKVxyXG4gICAgICAgIHRoaXMuZGF0YSA9IG5ld0RhdGE7XHJcbiAgICAgICAgdGhpcy5XSURUSCA9IHRoaXMuTEVUVEVSX1dJRFRIICogdGhpcy5kYXRhLmxlbmd0aDtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgLypcclxuICAgIHRoaXMuc3ZnID0gZDNfc2VsZWN0KHRoaXMubGV0dGVycy5uYXRpdmVFbGVtZW50KS5hcHBlbmQoJ3N2ZycpXHJcbiAgICAgIC5hdHRyKCd3aWR0aCcsIHRoaXMuV0lEVEgpXHJcbiAgICAgIC5hdHRyKCdoZWlnaHQnLCB0aGlzLkhFSUdIVClcclxuICAgICAgLmFwcGVuZCgnZycpXHJcbiAgICAgIC5hdHRyKCd0cmFuc2Zvcm0nLCAndHJhbnNsYXRlKDAsJyArICh0aGlzLkhFSUdIVCAvIDIpICsgJyknKTtcclxuXHJcbiAgICB0aGlzLmxvb3AoKTtcclxuICAgICovXHJcbiAgfVxyXG5cclxuICB1cGRhdGUoZGF0YTogSUxldHRlckl0ZW1bXSk6IHZvaWQge1xyXG4gICAgY29uc3QgdGV4dCA9IHRoaXMuc3ZnLnNlbGVjdEFsbCgndGV4dCcpLmRhdGEoZGF0YSwgKGQ6IElMZXR0ZXJJdGVtKSA9PiBkLmluZGV4KTtcclxuICAgIHRleHQuZW50ZXIoKS5hcHBlbmQoJ3RleHQnKVxyXG4gICAgICAuYXR0cignZmlsbCcsIChkOiBJTGV0dGVySXRlbSkgPT4gWychJywgJz8nLCAnLiddLmluY2x1ZGVzKGQubGV0dGVyKSAgPyAndG9tYXRvJyA6ICcjRkZGRkZGJylcclxuICAgICAgLmF0dHIoJ3gnLCAoZDogSUxldHRlckl0ZW0sIF86IG51bWJlcikgPT4gdGhpcy5MRVRURVJfV0lEVEggKiBkLnBvcylcclxuICAgICAgLnN0eWxlKCdmb250LXNpemUnLCAnNDBweCcpXHJcbiAgICAgIC5zdHlsZSgnZm9udC1mYW1pbHknLCAnbW9ub3NwYWNlJylcclxuICAgICAgLnRleHQoKGQ6IElMZXR0ZXJJdGVtKSA9PiBkLmxldHRlcilcclxuICAgICAgLm1lcmdlKHRleHQpXHJcbiAgICAgIC50cmFuc2l0aW9uKCkuZHVyYXRpb24oMTAwMClcclxuICAgICAgLmF0dHIoJ3gnLCAoZDogSUxldHRlckl0ZW0sIF86IG51bWJlcikgPT4gdGhpcy5MRVRURVJfV0lEVEggKiBkLnBvcyk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIGxvb3AoKTogdm9pZCB7XHJcbiAgICBpZiAoISEhdGhpcy5hbGxvd0xvb3ApIHJldHVybjtcclxuICAgIHRoaXMudXBkYXRlKHRoaXMuZGF0YSk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5kYXRhID0gZDNfc2h1ZmZsZSh0aGlzLmRhdGEpLm1hcCgoZDogSUxldHRlckl0ZW0sIGk6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGQucG9zID0gaTtcclxuICAgICAgICByZXR1cm4gZDtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMudXBkYXRlKHRoaXMuZGF0YSk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IHRoaXMuZGF0YS5tYXAoKGQ6IElMZXR0ZXJJdGVtLCBfOiBudW1iZXIpID0+IHtcclxuICAgICAgICAgIGQucG9zID0gZC5pbmRleDtcclxuICAgICAgICAgIHJldHVybiBkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMubG9vcCgpO1xyXG4gICAgICB9LCAyMDAwKTtcclxuICAgIH0sIDIwMDApO1xyXG4gIH1cclxuICAqL1xyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuYWxsb3dMb29wID0gZmFsc2U7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMubWFwKHggPT4geD8udW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2ICNsZXR0ZXJzPjwvZGl2PlxyXG4iXX0=
|
package/esm2022/lib/app/libraries/core-attachment/core-attachment/core-attachment.component.mjs
CHANGED
|
@@ -7,6 +7,8 @@ import { EnumTranslateKey } from "alpha-global-constants";
|
|
|
7
7
|
import { blob_to_base64_script } from '../../../../assets/js/blob2base64_wk';
|
|
8
8
|
import { TooltipDirective } from '../../tooltip/tooltip.directive';
|
|
9
9
|
import { CommonModule } from '@angular/common';
|
|
10
|
+
//declare let coreFileUtils: any;
|
|
11
|
+
import * as coreFileUtils from '../../../../assets/js/coreFileUtils';
|
|
10
12
|
import * as i0 from "@angular/core";
|
|
11
13
|
import * as i1 from "../../alert/alert.service";
|
|
12
14
|
import * as i2 from "../../../services/multi-language.service";
|
|
@@ -139,4 +141,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
139
141
|
type: ViewChild,
|
|
140
142
|
args: ['rawInput']
|
|
141
143
|
}] } });
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1hdHRhY2htZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWF0dGFjaG1lbnQvY29yZS1hdHRhY2htZW50L2NvcmUtYXR0YWNobWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1hdHRhY2htZW50L2NvcmUtYXR0YWNobWVudC9jb3JlLWF0dGFjaG1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBd0IsS0FBSyxFQUFvQyxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQzdHLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0UsT0FBTyxFQUFFLFlBQVksRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7OztBQUcvQyxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsYUFBYSxDQUFDO0FBOEJ2QyxNQUFNLE9BQU8s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RyxXQUFXO3NCQUFuQixLQUFLO2dCQWFpQixRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdG9yLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvcmVGb3JtQ29udHJvbEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWZvcm0tY29udHJvbC1iYXNlL2NvcmUtZm9ybS1jb250cm9sLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNdWx0aUxhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL211bHRpLWxhbmd1YWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXBwLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgYWxlcnRPcHRpb25zLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9hbGVydE9wdGlvbnMnO1xyXG5pbXBvcnQgeyBhdHRhY2htZW50T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9hdHRhY2htZW50T3B0aW9ucyc7XHJcbmltcG9ydCB7IEVudW1UcmFuc2xhdGVLZXkgfSBmcm9tIFwiYWxwaGEtZ2xvYmFsLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBibG9iX3RvX2Jhc2U2NF9zY3JpcHQgfSBmcm9tICcuLi8uLi8uLi8uLi9hc3NldHMvanMvYmxvYjJiYXNlNjRfd2snO1xyXG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5kZWNsYXJlIGxldCBjb3JlRmlsZVV0aWxzOiBhbnk7XHJcbmNvbnN0IHsgYmxvYlRvQmFzZTY0IH0gPSBjb3JlRmlsZVV0aWxzOyBcclxuXHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ29yZUF0dGFjaG1lbnQge1xyXG4gIGFzc2lnblRvOiBzdHJpbmc7XHJcbiAgc2VydmVyRmlsZU5hbWU/OiBzdHJpbmc7XHJcbiAgY2xpZW50RmlsZU5hbWU6IHN0cmluZztcclxuICBjbGllbnRGaWxlVHlwZTogc3RyaW5nO1xyXG4gIGNsaWVudEZpbGVEYXRhOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1hdHRhY2htZW50JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgVG9vbHRpcERpcmVjdGl2ZSxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLWF0dGFjaG1lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvcmUtYXR0YWNobWVudC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBDb3JlQXR0YWNobWVudENvbXBvbmVudFxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVBdHRhY2htZW50Q29tcG9uZW50IGV4dGVuZHMgQ29yZUZvcm1Db250cm9sQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KCkgb3ZlcnJpZGUgcmVhZG9ubHkhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGFzc2lnblRvITogc3RyaW5nOyAvLyBSZXF1aXJlZFxyXG4gIEBJbnB1dCgpIHZhbHVlVG9TaG93ITogc3RyaW5nO1xyXG5cclxuICBvdmVycmlkZSB2YWx1ZSE6IElDb3JlQXR0YWNobWVudCB8IG51bGw7XHJcbiAgb3ZlcnJpZGUgb25DaGFuZ2UhOiAoXzogSUNvcmVBdHRhY2htZW50IHwgbnVsbCkgPT4gdm9pZDtcclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZShvYmo6IElDb3JlQXR0YWNobWVudCB8IG51bGwpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWVUb1Nob3cgPSBvYmo/LnNlcnZlckZpbGVOYW1lIVxyXG4gIH1cclxuXHJcbiAgbmdDb250cm9sITogTmdDb250cm9sO1xyXG5cclxuICB3b3JrZXIhOiBXb3JrZXI7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3Jhd0lucHV0JykgcmF3SW5wdXQhOiBFbGVtZW50UmVmO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKClcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWyd2YWx1ZVRvU2hvdyddKXtcclxuICAgICAgdGhpcy52YWx1ZVRvU2hvdyA9IGNoYW5nZXNbJ3ZhbHVlVG9TaG93J10/LmN1cnJlbnRWYWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCksIDIwMCk7XHJcbiAgICBcclxuICAgIGlmICghISF0aGlzLmFzc2lnblRvICYmICEhIXRoaXMucmVhZG9ubHkgJiYgaXNEZXZNb2RlKCkpIHtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoYFxyXG4gICAgICBDb3JlQXR0YWNobWVudENvbXBvbmVudCByZXF1aXJlZCBpbnB1dCAnYXNzaWduVG8nXHJcbiAgICAgIGAsIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DbGlja1VwbG9hZCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZG9ubHkpIHJldHVybjtcclxuICAgIHRoaXMucmF3SW5wdXQubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCdjbGljaycpKTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tEb3dubG9hZCgpOiB2b2lkIHtcclxuICAgIHZhciB1cmkgPSB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQkFTRV9VUkwgKyAnLycgKyB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU1RBVElDX0ZPTERFUiArICcvYXR0YWNobWVudHMvJyArIHRoaXMudmFsdWVUb1Nob3dcclxuICAgIGZldGNoKHVyaSlcclxuICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UuYmxvYigpKVxyXG4gICAgICAudGhlbihibG9iID0+IHtcclxuICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgICAgICAgbGluay5ocmVmID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgICAgICBsaW5rLmRvd25sb2FkID0gdGhpcy52YWx1ZVRvU2hvdy5zdWJzdHJpbmcoNTIpO1xyXG4gICAgICAgIGxpbmsuY2xpY2soKTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKGNvbnNvbGUuZXJyb3IpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlSW5wdXRDaGFuZ2UoZTogYW55KSB7XHJcblxyXG4gICAgaWYgKCEhZS50YXJnZXQuZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IGZpbGUgPSBlLnRhcmdldC5maWxlc1swXTtcclxuXHJcbiAgICAgIGlmIChmaWxlLnNpemUgPiBhdHRhY2htZW50T3B0aW9ucy5tYXhGaWxlU2l6ZSkge1xyXG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKGAke3RoaXMubWxzLnRyYW5zKEVudW1UcmFuc2xhdGVLZXkuVUlfQ09SRV9BVFRBQ0hNRU5UX01BWElNVU1fQVRUQUNITUVOVF9GSUxFX1NJWkVfRVJST1IpfSAoJHthdHRhY2htZW50T3B0aW9ucy5tYXhGaWxlU2l6ZX0gYnl0ZXMpYCwgYWxlcnRPcHRpb25zKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKFwiZmlsZVwiLCBmaWxlKVxyXG4gICAgICBjb25zdCBjbGllbnRGaWxlTmFtZSA9IGZpbGUubmFtZVxyXG4gICAgICBjb25zdCBjbGllbnRGaWxlVHlwZSA9IGZpbGUudHlwZVxyXG4gICAgICBsZXQgY2xpZW50RmlsZURhdGEgPSBcIlwiXHJcblxyXG4gICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2ZpbGVdKTtcclxuICAgICAgaWYgKHR5cGVvZiBXb3JrZXIgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgdGhpcy53b3JrZXIgPSBuZXcgV29ya2VyKGJsb2JfdG9fYmFzZTY0X3NjcmlwdClcclxuICAgICAgICB0aGlzLndvcmtlci5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBlID0+IHtcclxuXHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIndvcmtlciBtZXNzYWdlXCIsIGUpXHJcbiAgICAgICAgICBjbGllbnRGaWxlRGF0YSA9IGUuZGF0YVxyXG4gICAgICAgICAgY29uc3QgaW5kZXggPSAoY2xpZW50RmlsZURhdGEgYXMgc3RyaW5nKS5pbmRleE9mKCdiYXNlNjQsJyk7XHJcbiAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgICBjbGllbnRGaWxlRGF0YSA9IChjbGllbnRGaWxlRGF0YSBhcyBzdHJpbmcpLnN1YnN0cmluZyhpbmRleCArIDcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5vbkNoYW5nZSh7XHJcbiAgICAgICAgICAgIGFzc2lnblRvOiB0aGlzLmFzc2lnblRvLFxyXG4gICAgICAgICAgICBzZXJ2ZXJGaWxlTmFtZTogdGhpcy52YWx1ZT8uc2VydmVyRmlsZU5hbWUsXHJcbiAgICAgICAgICAgIGNsaWVudEZpbGVOYW1lLFxyXG4gICAgICAgICAgICBjbGllbnRGaWxlVHlwZSxcclxuICAgICAgICAgICAgY2xpZW50RmlsZURhdGEsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMudmFsdWVUb1Nob3cgPSBjbGllbnRGaWxlTmFtZTtcclxuICAgICAgICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdGhpcy53b3JrZXIucG9zdE1lc3NhZ2UoYmxvYik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYmxvYlRvQmFzZTY0KGJsb2IpLnRoZW4oKGNsaWVudEZpbGVEYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGluZGV4ID0gKGNsaWVudEZpbGVEYXRhIGFzIHN0cmluZykuaW5kZXhPZignYmFzZTY0LCcpO1xyXG4gICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgICAgICAgY2xpZW50RmlsZURhdGEgPSAoY2xpZW50RmlsZURhdGEgYXMgc3RyaW5nKS5zdWJzdHJpbmcoaW5kZXggKyA3KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMub25DaGFuZ2Uoe1xyXG4gICAgICAgICAgICBhc3NpZ25UbzogdGhpcy5hc3NpZ25UbyxcclxuICAgICAgICAgICAgc2VydmVyRmlsZU5hbWU6IHRoaXMudmFsdWU/LnNlcnZlckZpbGVOYW1lLFxyXG4gICAgICAgICAgICBjbGllbnRGaWxlTmFtZSxcclxuICAgICAgICAgICAgY2xpZW50RmlsZVR5cGUsXHJcbiAgICAgICAgICAgIGNsaWVudEZpbGVEYXRhLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlVG9TaG93ID0gY2xpZW50RmlsZU5hbWU7XHJcbiAgICAgICAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbiIsIjxkaXYgI2NvbnRhaW5lciBjbGFzcz1cImNvcmUtYXR0YWNobWVudC1jb250YWluZXJcIj5cclxuICAgIDxpbnB1dCBpZD1cInJhd0lucHV0XCIgI3Jhd0lucHV0IHR5cGU9XCJmaWxlXCIgKGNoYW5nZSk9XCJoYW5kbGVJbnB1dENoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwidmFsdWVUb1Nob3dcIiByZWFkb25seSBbY2xhc3MuZm9ybS1jb250cm9sLWRpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICBbYXBwVG9vbHRpcF09XCIoISF2YWx1ZVRvU2hvdyAmJiB0b3VjaGVkKSA/ICdUaGlzIGZpbGUgd2lsbCBiZSB1cGxvYWRlZCBhbmQgaXRzIHBhdGggd2lsbCBiZSBhc3NpZ25lZCB0byBjdXJyZW50IHJlY29yZCcgOiAnJ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cInVwbG9hZC1pY29uLXdyYXBwZXJcIiAoY2xpY2spPVwib25DbGlja1VwbG9hZCgpXCIgW2NsYXNzLm9wYWNpdHkwXT1cInJlYWRvbmx5XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZlYXRoZXItdXBsb2FkXCI+PC9pPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZG93bmxvYWQtaWNvbi13cmFwcGVyXCIgKGNsaWNrKT1cIm9uQ2xpY2tEb3dubG9hZCgpXCIgKm5nSWY9XCIhIXZhbHVlVG9TaG93ICYmICEhIXRvdWNoZWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmVhdGhlci1kb3dubG9hZFwiPjwvaT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1hdHRhY2htZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWF0dGFjaG1lbnQvY29yZS1hdHRhY2htZW50L2NvcmUtYXR0YWNobWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1hdHRhY2htZW50L2NvcmUtYXR0YWNobWVudC9jb3JlLWF0dGFjaG1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBd0IsS0FBSyxFQUFvQyxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQzdHLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0UsT0FBTyxFQUFFLFlBQVksRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxpQ0FBaUM7QUFDakMsT0FBTyxLQUFLLGFBQWEsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7OztBQUNyRSxN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MEtBSWlCLFFBQVE7c0JBQXpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQWFpQixRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdG9yLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvcmVGb3JtQ29udHJvbEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWZvcm0tY29udHJvbC1iYXNlL2NvcmUtZm9ybS1jb250cm9sLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNdWx0aUxhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL211bHRpLWxhbmd1YWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXBwLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgYWxlcnRPcHRpb25zLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9hbGVydE9wdGlvbnMnO1xyXG5pbXBvcnQgeyBhdHRhY2htZW50T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9hdHRhY2htZW50T3B0aW9ucyc7XHJcbmltcG9ydCB7IEVudW1UcmFuc2xhdGVLZXkgfSBmcm9tIFwiYWxwaGEtZ2xvYmFsLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBibG9iX3RvX2Jhc2U2NF9zY3JpcHQgfSBmcm9tICcuLi8uLi8uLi8uLi9hc3NldHMvanMvYmxvYjJiYXNlNjRfd2snO1xyXG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG4vL2RlY2xhcmUgbGV0IGNvcmVGaWxlVXRpbHM6IGFueTtcclxuaW1wb3J0ICogYXMgY29yZUZpbGVVdGlscyBmcm9tICcuLi8uLi8uLi8uLi9hc3NldHMvanMvY29yZUZpbGVVdGlscyc7XHJcbmNvbnN0IHsgYmxvYlRvQmFzZTY0IH0gPSBjb3JlRmlsZVV0aWxzOyBcclxuXHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQ29yZUF0dGFjaG1lbnQge1xyXG4gIGFzc2lnblRvOiBzdHJpbmc7XHJcbiAgc2VydmVyRmlsZU5hbWU/OiBzdHJpbmc7XHJcbiAgY2xpZW50RmlsZU5hbWU6IHN0cmluZztcclxuICBjbGllbnRGaWxlVHlwZTogc3RyaW5nO1xyXG4gIGNsaWVudEZpbGVEYXRhOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1hdHRhY2htZW50JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgVG9vbHRpcERpcmVjdGl2ZSxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLWF0dGFjaG1lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvcmUtYXR0YWNobWVudC5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBDb3JlQXR0YWNobWVudENvbXBvbmVudFxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVBdHRhY2htZW50Q29tcG9uZW50IGV4dGVuZHMgQ29yZUZvcm1Db250cm9sQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KCkgb3ZlcnJpZGUgcmVhZG9ubHkhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGFzc2lnblRvITogc3RyaW5nOyAvLyBSZXF1aXJlZFxyXG4gIEBJbnB1dCgpIHZhbHVlVG9TaG93ITogc3RyaW5nO1xyXG5cclxuICBvdmVycmlkZSB2YWx1ZSE6IElDb3JlQXR0YWNobWVudCB8IG51bGw7XHJcbiAgb3ZlcnJpZGUgb25DaGFuZ2UhOiAoXzogSUNvcmVBdHRhY2htZW50IHwgbnVsbCkgPT4gdm9pZDtcclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZShvYmo6IElDb3JlQXR0YWNobWVudCB8IG51bGwpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWVUb1Nob3cgPSBvYmo/LnNlcnZlckZpbGVOYW1lIVxyXG4gIH1cclxuXHJcbiAgbmdDb250cm9sITogTmdDb250cm9sO1xyXG5cclxuICB3b3JrZXIhOiBXb3JrZXI7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3Jhd0lucHV0JykgcmF3SW5wdXQhOiBFbGVtZW50UmVmO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKClcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWyd2YWx1ZVRvU2hvdyddKXtcclxuICAgICAgdGhpcy52YWx1ZVRvU2hvdyA9IGNoYW5nZXNbJ3ZhbHVlVG9TaG93J10/LmN1cnJlbnRWYWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCksIDIwMCk7XHJcbiAgICBcclxuICAgIGlmICghISF0aGlzLmFzc2lnblRvICYmICEhIXRoaXMucmVhZG9ubHkgJiYgaXNEZXZNb2RlKCkpIHtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoYFxyXG4gICAgICBDb3JlQXR0YWNobWVudENvbXBvbmVudCByZXF1aXJlZCBpbnB1dCAnYXNzaWduVG8nXHJcbiAgICAgIGAsIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DbGlja1VwbG9hZCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMucmVhZG9ubHkpIHJldHVybjtcclxuICAgIHRoaXMucmF3SW5wdXQubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCdjbGljaycpKTtcclxuICB9XHJcblxyXG4gIG9uQ2xpY2tEb3dubG9hZCgpOiB2b2lkIHtcclxuICAgIHZhciB1cmkgPSB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQkFTRV9VUkwgKyAnLycgKyB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU1RBVElDX0ZPTERFUiArICcvYXR0YWNobWVudHMvJyArIHRoaXMudmFsdWVUb1Nob3dcclxuICAgIGZldGNoKHVyaSlcclxuICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UuYmxvYigpKVxyXG4gICAgICAudGhlbihibG9iID0+IHtcclxuICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgICAgICAgbGluay5ocmVmID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgICAgICBsaW5rLmRvd25sb2FkID0gdGhpcy52YWx1ZVRvU2hvdy5zdWJzdHJpbmcoNTIpO1xyXG4gICAgICAgIGxpbmsuY2xpY2soKTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKGNvbnNvbGUuZXJyb3IpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlSW5wdXRDaGFuZ2UoZTogYW55KSB7XHJcblxyXG4gICAgaWYgKCEhZS50YXJnZXQuZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IGZpbGUgPSBlLnRhcmdldC5maWxlc1swXTtcclxuXHJcbiAgICAgIGlmIChmaWxlLnNpemUgPiBhdHRhY2htZW50T3B0aW9ucy5tYXhGaWxlU2l6ZSkge1xyXG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKGAke3RoaXMubWxzLnRyYW5zKEVudW1UcmFuc2xhdGVLZXkuVUlfQ09SRV9BVFRBQ0hNRU5UX01BWElNVU1fQVRUQUNITUVOVF9GSUxFX1NJWkVfRVJST1IpfSAoJHthdHRhY2htZW50T3B0aW9ucy5tYXhGaWxlU2l6ZX0gYnl0ZXMpYCwgYWxlcnRPcHRpb25zKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKFwiZmlsZVwiLCBmaWxlKVxyXG4gICAgICBjb25zdCBjbGllbnRGaWxlTmFtZSA9IGZpbGUubmFtZVxyXG4gICAgICBjb25zdCBjbGllbnRGaWxlVHlwZSA9IGZpbGUudHlwZVxyXG4gICAgICBsZXQgY2xpZW50RmlsZURhdGEgPSBcIlwiXHJcblxyXG4gICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW2ZpbGVdKTtcclxuICAgICAgaWYgKHR5cGVvZiBXb3JrZXIgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgdGhpcy53b3JrZXIgPSBuZXcgV29ya2VyKGJsb2JfdG9fYmFzZTY0X3NjcmlwdClcclxuICAgICAgICB0aGlzLndvcmtlci5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBlID0+IHtcclxuXHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIndvcmtlciBtZXNzYWdlXCIsIGUpXHJcbiAgICAgICAgICBjbGllbnRGaWxlRGF0YSA9IGUuZGF0YVxyXG4gICAgICAgICAgY29uc3QgaW5kZXggPSAoY2xpZW50RmlsZURhdGEgYXMgc3RyaW5nKS5pbmRleE9mKCdiYXNlNjQsJyk7XHJcbiAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgICBjbGllbnRGaWxlRGF0YSA9IChjbGllbnRGaWxlRGF0YSBhcyBzdHJpbmcpLnN1YnN0cmluZyhpbmRleCArIDcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5vbkNoYW5nZSh7XHJcbiAgICAgICAgICAgIGFzc2lnblRvOiB0aGlzLmFzc2lnblRvLFxyXG4gICAgICAgICAgICBzZXJ2ZXJGaWxlTmFtZTogdGhpcy52YWx1ZT8uc2VydmVyRmlsZU5hbWUsXHJcbiAgICAgICAgICAgIGNsaWVudEZpbGVOYW1lLFxyXG4gICAgICAgICAgICBjbGllbnRGaWxlVHlwZSxcclxuICAgICAgICAgICAgY2xpZW50RmlsZURhdGEsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMudmFsdWVUb1Nob3cgPSBjbGllbnRGaWxlTmFtZTtcclxuICAgICAgICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdGhpcy53b3JrZXIucG9zdE1lc3NhZ2UoYmxvYik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYmxvYlRvQmFzZTY0KGJsb2IpLnRoZW4oKGNsaWVudEZpbGVEYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGluZGV4ID0gKGNsaWVudEZpbGVEYXRhIGFzIHN0cmluZykuaW5kZXhPZignYmFzZTY0LCcpO1xyXG4gICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgICAgICAgY2xpZW50RmlsZURhdGEgPSAoY2xpZW50RmlsZURhdGEgYXMgc3RyaW5nKS5zdWJzdHJpbmcoaW5kZXggKyA3KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMub25DaGFuZ2Uoe1xyXG4gICAgICAgICAgICBhc3NpZ25UbzogdGhpcy5hc3NpZ25UbyxcclxuICAgICAgICAgICAgc2VydmVyRmlsZU5hbWU6IHRoaXMudmFsdWU/LnNlcnZlckZpbGVOYW1lLFxyXG4gICAgICAgICAgICBjbGllbnRGaWxlTmFtZSxcclxuICAgICAgICAgICAgY2xpZW50RmlsZVR5cGUsXHJcbiAgICAgICAgICAgIGNsaWVudEZpbGVEYXRhLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlVG9TaG93ID0gY2xpZW50RmlsZU5hbWU7XHJcbiAgICAgICAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcbiIsIjxkaXYgI2NvbnRhaW5lciBjbGFzcz1cImNvcmUtYXR0YWNobWVudC1jb250YWluZXJcIj5cclxuICAgIDxpbnB1dCBpZD1cInJhd0lucHV0XCIgI3Jhd0lucHV0IHR5cGU9XCJmaWxlXCIgKGNoYW5nZSk9XCJoYW5kbGVJbnB1dENoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwidmFsdWVUb1Nob3dcIiByZWFkb25seSBbY2xhc3MuZm9ybS1jb250cm9sLWRpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICBbYXBwVG9vbHRpcF09XCIoISF2YWx1ZVRvU2hvdyAmJiB0b3VjaGVkKSA/ICdUaGlzIGZpbGUgd2lsbCBiZSB1cGxvYWRlZCBhbmQgaXRzIHBhdGggd2lsbCBiZSBhc3NpZ25lZCB0byBjdXJyZW50IHJlY29yZCcgOiAnJ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cInVwbG9hZC1pY29uLXdyYXBwZXJcIiAoY2xpY2spPVwib25DbGlja1VwbG9hZCgpXCIgW2NsYXNzLm9wYWNpdHkwXT1cInJlYWRvbmx5XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZlYXRoZXItdXBsb2FkXCI+PC9pPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZG93bmxvYWQtaWNvbi13cmFwcGVyXCIgKGNsaWNrKT1cIm9uQ2xpY2tEb3dubG9hZCgpXCIgKm5nSWY9XCIhIXZhbHVlVG9TaG93ICYmICEhIXRvdWNoZWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmVhdGhlci1kb3dubG9hZFwiPjwvaT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
@@ -7,6 +7,8 @@ import { CommonModule } from '@angular/common';
|
|
|
7
7
|
import { ThreedotsComponent } from '../../threedots/threedots.component';
|
|
8
8
|
import { TranslatePipe } from '../../../app-pipes/translate.pipe';
|
|
9
9
|
import { MapAvatarToServerPipe } from '../../../app-pipes/map-avatar-to-server.pipe';
|
|
10
|
+
//declare let coreFileUtils: any;
|
|
11
|
+
import * as coreFileUtils from '../../../../assets/js/coreFileUtils';
|
|
10
12
|
import * as i0 from "@angular/core";
|
|
11
13
|
import * as i1 from "../../alert/alert.service";
|
|
12
14
|
import * as i2 from "../../../services/multi-language.service";
|
|
@@ -180,4 +182,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
180
182
|
type: ViewChild,
|
|
181
183
|
args: ['customFileInput']
|
|
182
184
|
}] } });
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1maWxlLXVwbG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWZpbGUtdXBsb2FkZXIvY29yZS1maWxlLXVwbG9hZGVyL2NvcmUtZmlsZS11cGxvYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1maWxlLXVwbG9hZGVyL2NvcmUtZmlsZS11cGxvYWRlci9jb3JlLWZpbGUtdXBsb2FkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBR0wsU0FBUyxFQUNULFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUM3RyxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSzNFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7OztBQUdyRixNQUFNLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxHQUFHLGFBQWEsQ0FBQztBQUV0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QyxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgaXNEZXZNb2RlLFxyXG4gIEluamVjdG9yLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb3JlRm9ybUNvbnRyb2xCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1mb3JtLWNvbnRyb2wtYmFzZS9jb3JlLWZvcm0tY29udHJvbC1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRW51bVRyYW5zbGF0ZUtleSB9IGZyb20gXCJhbHBoYS1nbG9iYWwtY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IGFsZXJ0T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9hbGVydE9wdGlvbnMnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBUaHJlZWRvdHNDb21wb25lbnQgfSBmcm9tICcuLi8uLi90aHJlZWRvdHMvdGhyZWVkb3RzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9hcHAtcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xyXG5pbXBvcnQgeyBNYXBBdmF0YXJUb1NlcnZlclBpcGUgfSBmcm9tICcuLi8uLi8uLi9hcHAtcGlwZXMvbWFwLWF2YXRhci10by1zZXJ2ZXIucGlwZSc7XHJcblxyXG5kZWNsYXJlIGxldCBjb3JlRmlsZVV0aWxzOiBhbnk7XHJcbmNvbnN0IHsgY29tcHJlc3NJbWFnZSwgYmxvYlRvQmFzZTY0IH0gPSBjb3JlRmlsZVV0aWxzO1xyXG5cclxuZXhwb3J0IGVudW0gRW51bUNvcmVGaWxlVXBsb2FkZXJUeXBlIHtcclxuICBJTUFHRV9BVkFUQVIgPSAnSU1BR0VfQVZBVEFSJyxcclxuICBJTUFHRV9PVEhFUiA9ICdJTUFHRV9PVEhFUicsXHJcbiAgUERGID0gJ1BERicsXHJcbiAgRE9DID0gJ0RPQycsXHJcbiAgRVhDRUwgPSAnRVhDRUwnLFxyXG4gIEFVRElPID0gJ0FVRElPJyxcclxuICBPVEhFUiA9ICdPVEhFUicsXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1maWxlLXVwbG9hZGVyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgVGhyZWVkb3RzQ29tcG9uZW50LFxyXG4gICAgVHJhbnNsYXRlUGlwZSxcclxuICAgIE1hcEF2YXRhclRvU2VydmVyUGlwZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtZmlsZS11cGxvYWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS1maWxlLXVwbG9hZGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IENvcmVGaWxlVXBsb2FkZXJDb21wb25lbnQsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlRmlsZVVwbG9hZGVyQ29tcG9uZW50IGV4dGVuZHMgQ29yZUZvcm1Db250cm9sQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSB1cGxvYWRGaWxlVHlwZSE6IEVudW1Db3JlRmlsZVVwbG9hZGVyVHlwZTtcclxuICBASW5wdXQoKSBmaWxlRGF0YUNvbnRyb2xOYW1lITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGZpbGVOYW1lQ29udHJvbE5hbWUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZmlsZVR5cGVDb250cm9sTmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBhdmF0YXJTaXplITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGRlZmF1bHRBdmF0YXIhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaGlkZVByZXZpZXchOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHZlcnRpY2FsTW9kZSE6IGJvb2xlYW47XHJcbiAgQFZpZXdDaGlsZCgnY3VzdG9tRmlsZUlucHV0JykgY3VzdG9tRmlsZUlucHV0ITogRWxlbWVudFJlZjtcclxuXHJcbiAgb3ZlcnJpZGUgdmFsdWUhOiBzdHJpbmc7XHJcblxyXG4gIG5nQ29udHJvbCE6IE5nQ29udHJvbDtcclxuXHJcbiAgaG92ZXJUZXh0ID1cclxuICAgIEVudW1UcmFuc2xhdGVLZXkuVUlfQ09SRV9DT05UUk9MX0ZJTEVfVVBMT0FERVJfQ0xJQ0tfVE9fQlJPV1NFX0ZJTEU7XHJcbiAgbGFuZyE6IHN0cmluZztcclxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIGNob3NlbkZpbGU6IGFueTtcclxuICBjb21wcmVzc2VkU2l6ZTogYW55O1xyXG4gIHByZXZpZXc6IGFueTtcclxuICBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbG9hZGluZ0NhcHRpb24hOiBzdHJpbmc7XHJcblxyXG4gIGFjY2VwdCE6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtbHM6IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5uZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wpKTtcclxuXHJcbiAgICBpZiAoaXNEZXZNb2RlKCkgJiYgISEhdGhpcy51cGxvYWRGaWxlVHlwZSkge1xyXG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihcclxuICAgICAgICBgVXNpbmcgQ29yZUZpbGVVcGxvYWRlckNvbXBvbmVudCByZXF1aXJlZCBwcm9wZXJ0eSB1cGxvYWRGaWxlVHlwZSE6IEVudW1Db3JlRmlsZVVwbG9hZGVyVHlwZWAsXHJcbiAgICAgICAgeyAuLi5hbGVydE9wdGlvbnMsIGF1dG9DbG9zZTogZmFsc2UgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzRGV2TW9kZSgpICYmICEhIXRoaXMuZmlsZURhdGFDb250cm9sTmFtZSkge1xyXG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihcclxuICAgICAgICBgVXNpbmcgQ29yZUZpbGVVcGxvYWRlckNvbXBvbmVudCByZXF1aXJlZCBwcm9wZXJ0eSBmaWxlRGF0YUNvbnRyb2xOYW1lITogc3RyaW5nIChiYXNlNjQpYCxcclxuICAgICAgICB7IC4uLmFsZXJ0T3B0aW9ucywgYXV0b0Nsb3NlOiBmYWxzZSB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkgJiYgISEhdGhpcy5maWxlTmFtZUNvbnRyb2xOYW1lKSB7XHJcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgIGBVc2luZyBDb3JlRmlsZVVwbG9hZGVyQ29tcG9uZW50IHJlcXVpcmVkIHByb3BlcnR5IGZpbGVOYW1lQ29udHJvbE5hbWUhOiBzdHJpbmdgLFxyXG4gICAgICAgIHsgLi4uYWxlcnRPcHRpb25zLCBhdXRvQ2xvc2U6IGZhbHNlIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmIChpc0Rldk1vZGUoKSAmJiAhISF0aGlzLmZpbGVUeXBlQ29udHJvbE5hbWUpIHtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgYFVzaW5nIENvcmVGaWxlVXBsb2FkZXJDb21wb25lbnQgcmVxdWlyZWQgcHJvcGVydHkgZmlsZVR5cGVDb250cm9sTmFtZSE6IHN0cmluZ2AsXHJcbiAgICAgICAgeyAuLi5hbGVydE9wdGlvbnMsIGF1dG9DbG9zZTogZmFsc2UgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubWxzLmxhbmckLnN1YnNjcmliZSgoeCkgPT4gKHRoaXMubGFuZyA9IHgpKSk7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnVwbG9hZEZpbGVUeXBlID09PSBFbnVtQ29yZUZpbGVVcGxvYWRlclR5cGUuSU1BR0VfQVZBVEFSIHx8XHJcbiAgICAgIHRoaXMudXBsb2FkRmlsZVR5cGUgPT09IEVudW1Db3JlRmlsZVVwbG9hZGVyVHlwZS5JTUFHRV9PVEhFUlxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuYWNjZXB0ID0gJ2ltYWdlL3BuZywgaW1hZ2UvZ2lmLCBpbWFnZS9qcGVnJztcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIHRoaXMudXBsb2FkRmlsZVR5cGUgPT09IEVudW1Db3JlRmlsZVVwbG9hZGVyVHlwZS5QREZcclxuICAgICkge1xyXG4gICAgICB0aGlzLmFjY2VwdCA9IFwiYXBwbGljYXRpb24vcGRmXCI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS53YXJuKFxyXG4gICAgICAgIGBXaGVuIHVwbG9hZEZpbGVUeXBlPT09JHt0aGlzLnVwbG9hZEZpbGVUeXBlfSA9PiBUTyBETy4uLmAsXHJcbiAgICAgICAgeyAuLi5hbGVydE9wdGlvbnMsIGF1dG9DbG9zZTogZmFsc2UgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Ib3ZlcigpIHtcclxuICAgIGNvbnNvbGUubG9nKCdvbkhvdmVyJyk7XHJcbiAgICB0aGlzLmN1c3RvbUZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxyXG4gICAgICAnLS1ob3Zlci10ZXh0JyxcclxuICAgICAgdGhpcy5ob3ZlclRleHRcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVJbnB1dENoYW5nZShlOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCdoYW5kbGVJbnB1dENoYW5nZSBlJywgZSk7XHJcbiAgICBpZiAoIXRoaXMuaGFzRmlsZVNpemUoZS50YXJnZXQuZmlsZXNbMF0uc2l6ZSkpIHtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgYEZpbGUgc2l6ZSBleGNlZWRzIDNNQi5gLFxyXG4gICAgICAgIHsgLi4uYWxlcnRPcHRpb25zLCBhdXRvQ2xvc2U6IGZhbHNlIH1cclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCEhZS50YXJnZXQuZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IGZpbGUgPSBlLnRhcmdldC5maWxlc1swXTtcclxuICAgICAgY29uc29sZS5sb2coJ2hhbmRsZUlucHV0Q2hhbmdlIGZpbGUnLCBmaWxlKTtcclxuICAgICAgdGhpcy5jaG9zZW5GaWxlID0gZmlsZTtcclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICBmaWxlLnR5cGUuc3BsaXQoJy8nKVswXSA9PT0gJ2ltYWdlJyB8fFxyXG4gICAgICAgIGZpbGUudHlwZS5zcGxpdCgnLycpWzBdID09PSAnYXBwbGljYXRpb24nXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbZmlsZV0pO1xyXG4gICAgICAgIGlmIChmaWxlLnR5cGUgIT09ICdpbWFnZS9naWYnKSB7XHJcbiAgICAgICAgICBjb21wcmVzc0ltYWdlKGJsb2IpLnRoZW4oKGJsb2I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNvbXByZXNzZWRTaXplID0gYmxvYi5zaXplO1xyXG4gICAgICAgICAgICBibG9iVG9CYXNlNjQoYmxvYikudGhlbigoYmFzZTY0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnByZXZpZXcgPSBiYXNlNjQ7XHJcblxyXG4gICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gKGJhc2U2NCBhcyBzdHJpbmcpLmluZGV4T2YoJ2Jhc2U2NCwnKTtcclxuICAgICAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgICAgICAgYmFzZTY0ID0gKGJhc2U2NCBhcyBzdHJpbmcpLnN1YnN0cmluZyhpbmRleCArIDcpO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShiYXNlNjQpO1xyXG5cclxuICAgICAgICAgICAgICBjb25zdCBmb3JtID0gdGhpcy5uZ0NvbnRyb2wuY29udHJvbD8ucGFyZW50O1xyXG4gICAgICAgICAgICAgIGNvbnN0IG9iamVjdFRvUGF0Y2g6IGFueSA9IHt9O1xyXG4gICAgICAgICAgICAgIG9iamVjdFRvUGF0Y2hbdGhpcy5maWxlRGF0YUNvbnRyb2xOYW1lXSA9IGJhc2U2NDtcclxuICAgICAgICAgICAgICBvYmplY3RUb1BhdGNoW3RoaXMuZmlsZU5hbWVDb250cm9sTmFtZV0gPSBmaWxlLm5hbWU7XHJcbiAgICAgICAgICAgICAgb2JqZWN0VG9QYXRjaFt0aGlzLmZpbGVUeXBlQ29udHJvbE5hbWVdID0gZmlsZS50eXBlO1xyXG4gICAgICAgICAgICAgIGZvcm0/LnBhdGNoVmFsdWUob2JqZWN0VG9QYXRjaCk7XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBibG9iVG9CYXNlNjQoYmxvYikudGhlbigoYmFzZTY0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jb21wcmVzc2VkU2l6ZSA9IGJsb2Iuc2l6ZTtcclxuICAgICAgICAgICAgdGhpcy5wcmV2aWV3ID0gYmFzZTY0O1xyXG5cclxuICAgICAgICAgICAgY29uc3QgaW5kZXggPSAoYmFzZTY0IGFzIHN0cmluZykuaW5kZXhPZignYmFzZTY0LCcpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgICAgIGJhc2U2NCA9IChiYXNlNjQgYXMgc3RyaW5nKS5zdWJzdHJpbmcoaW5kZXggKyA3KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShiYXNlNjQpO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgZm9ybSA9IHRoaXMubmdDb250cm9sLmNvbnRyb2w/LnBhcmVudDtcclxuICAgICAgICAgICAgY29uc3Qgb2JqZWN0VG9QYXRjaDogYW55ID0ge307XHJcbiAgICAgICAgICAgIG9iamVjdFRvUGF0Y2hbdGhpcy5maWxlRGF0YUNvbnRyb2xOYW1lXSA9IGJhc2U2NDtcclxuICAgICAgICAgICAgb2JqZWN0VG9QYXRjaFt0aGlzLmZpbGVOYW1lQ29udHJvbE5hbWVdID0gZmlsZS5uYW1lO1xyXG4gICAgICAgICAgICBvYmplY3RUb1BhdGNoW3RoaXMuZmlsZVR5cGVDb250cm9sTmFtZV0gPSBmaWxlLnR5cGU7XHJcbiAgICAgICAgICAgIGZvcm0/LnBhdGNoVmFsdWUob2JqZWN0VG9QYXRjaCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChmaWxlLnR5cGUuc3BsaXQoJy8nKVswXSA9PT0gJ2F1ZGlvJykge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdUbyBkbycpO1xyXG4gICAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wcmV2aWV3ID0gJyc7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UoJycpO1xyXG4gICAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgdGhpcy5jaG9zZW5GaWxlID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYXNGaWxlU2l6ZShmaWxlU2l6ZSA6IGFueSkge1xyXG4gICAgaWYgKGZpbGVTaXplIDwgMyAqIDEwMjQgKiAxMDI0KSB7IHJldHVybiB0cnVlOyB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5tYXAoKHgpID0+IHg/LnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29yZS1maWxlLXVwbG9hZGVyLWNvbnRhaW5lclwiPlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCIhISF2ZXJ0aWNhbE1vZGVcIj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IFtjbGFzc109XCIhIWhpZGVQcmV2aWV3ID8gJ2NvbC1tZC0xMicgOiAnY29sLW1kLTYnXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJjdXN0b20tZmlsZS1pbnB1dFwiICNjdXN0b21GaWxlSW5wdXQgY2xhc3M9XCJjdXN0b20tZmlsZS1pbnB1dFwiIHR5cGU9XCJmaWxlXCIgW2FjY2VwdF09XCJhY2NlcHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlSW5wdXRDaGFuZ2UoJGV2ZW50KVwiIChob3Zlcik9XCJvbkhvdmVyKClcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBpZD1cImZpbGUtaW5wdXQtbGFiZWxcIiBmb3I9XCJjdXN0b20tZmlsZS1pbnB1dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJ1cGxvYWRGaWxlVHlwZT09PSdJTUFHRV9BVkFUQVInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCIhISFoaWRlUHJldmlldyA/ICh2YWx1ZSA/ICh2YWx1ZSB8IG1hcEF2YXRhclRvU2VydmVyKSA6IGRlZmF1bHRBdmF0YXIpIDogKHByZXZpZXcgPyBwcmV2aWV3IDogZGVmYXVsdEF2YXRhcilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF2YXRhci1wcmV2aWV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInVwbG9hZEZpbGVUeXBlIT09J0lNQUdFX0FWQVRBUidcIj57eydFWElTVElORyBGSUxFLi4uJ319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGlkPVwiZmlsZS1pbnB1dC1sYWJlbFwiIGZvcj1cImN1c3RvbS1maWxlLWlucHV0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgKm5nSWY9XCJ1cGxvYWRGaWxlVHlwZSE9PSdJTUFHRV9BVkFUQVInXCIgW3NyY109XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlSW5wdXRDaGFuZ2UoJGV2ZW50KVwiIGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yXCIgKm5nSWY9XCIhISFoaWRlUHJldmlld1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiEhIWxvYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWQtcHJldmlld1wiICpuZ0lmPVwicHJldmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwicHJldmlld1wiIGFsdD1cInNlbGVjdGVkLWZpbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGFwcC10aHJlZWRvdHMgKm5nSWY9XCIhIWxvYWRpbmdcIj48L2FwcC10aHJlZWRvdHM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgZC1ub25lXCIgKm5nSWY9XCIhISFoaWRlUHJldmlld1wiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEhY2hvc2VuRmlsZVwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ1VJX0NPUkVfRklMRV9VUExPQURFUl9GSUxFX05BTUUnIHwgdHJhbnNsYXRlOiBsYW5nIH19OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNob3NlbkZpbGU/Lm5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnVUlfQ09SRV9GSUxFX1VQTE9BREVSX0ZJTEVfVFlQRScgfCB0cmFuc2xhdGU6IGxhbmcgfX06XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY2hvc2VuRmlsZT8udHlwZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdVSV9DT1JFX0ZJTEVfVVBMT0FERVJfRklMRV9TSVpFJyB8IHRyYW5zbGF0ZTogbGFuZyB9fTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjaG9zZW5GaWxlPy5zaXplIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCIhIWNvbXByZXNzZWRTaXplXCI+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdVSV9DT1JFX0ZJTEVfVVBMT0FERVJfRklMRV9TSVpFX0NPTVBSRVNTRUQnIHwgdHJhbnNsYXRlOiBsYW5nIH19OlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGNvbXByZXNzZWRTaXplIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+IC0tPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cIiEhdmVydGljYWxNb2RlXCIgY2xhc3M9XCJtdDIwXCI+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgY29udGFpbmVyLWZsdWlkXCI+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdjb2wtbWQtMTInPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImN1c3RvbS1maWxlLWlucHV0XCIgI2N1c3RvbUZpbGVJbnB1dCBjbGFzcz1cImN1c3RvbS1maWxlLWlucHV0XCIgdHlwZT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYWNjZXB0XT1cImFjY2VwdFwiIChjaGFuZ2UpPVwiaGFuZGxlSW5wdXRDaGFuZ2UoJGV2ZW50KVwiIChob3Zlcik9XCJvbkhvdmVyKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJmaWxlLWlucHV0LWxhYmVsXCIgZm9yPVwiY3VzdG9tLWZpbGUtaW5wdXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cInVwbG9hZEZpbGVUeXBlPT09J0lNQUdFX0FWQVRBUidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCIhISFoaWRlUHJldmlldyA/ICh2YWx1ZSA/ICh2YWx1ZSB8IG1hcEF2YXRhclRvU2VydmVyKSA6IGRlZmF1bHRBdmF0YXIpIDogKCh2YWx1ZSAmJiAhISFwcmV2aWV3KSA/ICh2YWx1ZSB8IG1hcEF2YXRhclRvU2VydmVyKSA6IChwcmV2aWV3ID8gcHJldmlldyA6IGRlZmF1bHRBdmF0YXIpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF2YXRhci1wcmV2aWV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ1cGxvYWRGaWxlVHlwZSE9PSdJTUFHRV9BVkFUQVInXCI+e3snRVhJU1RJTkcgRklMRS4uLid9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGlkPVwiZmlsZS1pbnB1dC1sYWJlbFwiIGZvcj1cImN1c3RvbS1maWxlLWlucHV0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiICpuZ0lmPVwidXBsb2FkRmlsZVR5cGUhPT0nSU1BR0VfQVZBVEFSJ1wiIFtzcmNdPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJoYW5kbGVJbnB1dENoYW5nZSgkZXZlbnQpXCIgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiICpuZ0lmPVwiISEhaGlkZVByZXZpZXdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiISEhbG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWQtcHJldmlld1wiICpuZ0lmPVwicHJldmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cInByZXZpZXdcIiBhbHQ9XCJzZWxlY3RlZC1maWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtdGhyZWVkb3RzICpuZ0lmPVwiISFsb2FkaW5nXCI+PC9hcHAtdGhyZWVkb3RzPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBkLW5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIiAqbmdJZj1cIiEhIWhpZGVQcmV2aWV3XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhIWNob3NlbkZpbGVcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2NvbC1tZC02Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnVUlfQ09SRV9GSUxFX1VQTE9BREVSX0ZJTEVfTkFNRScgfCB0cmFuc2xhdGU6IGxhbmcgfX06XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2NvbC1tZC02Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjaG9zZW5GaWxlPy5uYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdjb2wtbWQtNic+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ1VJX0NPUkVfRklMRV9VUExPQURFUl9GSUxFX1RZUEUnIHwgdHJhbnNsYXRlOiBsYW5nIH19OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdjb2wtbWQtNic+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY2hvc2VuRmlsZT8udHlwZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nY29sLW1kLTYnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdVSV9DT1JFX0ZJTEVfVVBMT0FERVJfRklMRV9TSVpFJyB8IHRyYW5zbGF0ZTogbGFuZyB9fTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nY29sLW1kLTYnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNob3NlbkZpbGU/LnNpemUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhIWNvbXByZXNzZWRTaXplXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2NvbC1tZC02Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnVUlfQ09SRV9GSUxFX1VQTE9BREVSX0ZJTEVfU0laRV9DT01QUkVTU0VEJyB8IHRyYW5zbGF0ZTogbGFuZyB9fTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nY29sLW1kLTYnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNvbXByZXNzZWRTaXplIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcbjwvZGl2PiJdfQ==
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1maWxlLXVwbG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWZpbGUtdXBsb2FkZXIvY29yZS1maWxlLXVwbG9hZGVyL2NvcmUtZmlsZS11cGxvYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1maWxlLXVwbG9hZGVyL2NvcmUtZmlsZS11cGxvYWRlci9jb3JlLWZpbGUtdXBsb2FkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBR0wsU0FBUyxFQUNULFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUM3RyxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSzNFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRXJGLGlDQUFpQztBQUNqQyxPQUFPLEtBQUssYUFBYSxNQUFNLHFDQUFxQyxDQUFDOzs7OztBQUNy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QkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUN3QixlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgaXNEZXZNb2RlLFxyXG4gIEluamVjdG9yLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb3JlRm9ybUNvbnRyb2xCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1mb3JtLWNvbnRyb2wtYmFzZS9jb3JlLWZvcm0tY29udHJvbC1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRW51bVRyYW5zbGF0ZUtleSB9IGZyb20gXCJhbHBoYS1nbG9iYWwtY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IGFsZXJ0T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9hbGVydE9wdGlvbnMnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBUaHJlZWRvdHNDb21wb25lbnQgfSBmcm9tICcuLi8uLi90aHJlZWRvdHMvdGhyZWVkb3RzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9hcHAtcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xyXG5pbXBvcnQgeyBNYXBBdmF0YXJUb1NlcnZlclBpcGUgfSBmcm9tICcuLi8uLi8uLi9hcHAtcGlwZXMvbWFwLWF2YXRhci10by1zZXJ2ZXIucGlwZSc7XHJcblxyXG4vL2RlY2xhcmUgbGV0IGNvcmVGaWxlVXRpbHM6IGFueTtcclxuaW1wb3J0ICogYXMgY29yZUZpbGVVdGlscyBmcm9tICcuLi8uLi8uLi8uLi9hc3NldHMvanMvY29yZUZpbGVVdGlscyc7XHJcbmNvbnN0IHsgY29tcHJlc3NJbWFnZSwgYmxvYlRvQmFzZTY0IH0gPSBjb3JlRmlsZVV0aWxzO1xyXG5cclxuZXhwb3J0IGVudW0gRW51bUNvcmVGaWxlVXBsb2FkZXJUeXBlIHtcclxuICBJTUFHRV9BVkFUQVIgPSAnSU1BR0VfQVZBVEFSJyxcclxuICBJTUFHRV9PVEhFUiA9ICdJTUFHRV9PVEhFUicsXHJcbiAgUERGID0gJ1BERicsXHJcbiAgRE9DID0gJ0RPQycsXHJcbiAgRVhDRUwgPSAnRVhDRUwnLFxyXG4gIEFVRElPID0gJ0FVRElPJyxcclxuICBPVEhFUiA9ICdPVEhFUicsXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1maWxlLXVwbG9hZGVyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgVGhyZWVkb3RzQ29tcG9uZW50LFxyXG4gICAgVHJhbnNsYXRlUGlwZSxcclxuICAgIE1hcEF2YXRhclRvU2VydmVyUGlwZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtZmlsZS11cGxvYWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS1maWxlLXVwbG9hZGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IENvcmVGaWxlVXBsb2FkZXJDb21wb25lbnQsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlRmlsZVVwbG9hZGVyQ29tcG9uZW50IGV4dGVuZHMgQ29yZUZvcm1Db250cm9sQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSB1cGxvYWRGaWxlVHlwZSE6IEVudW1Db3JlRmlsZVVwbG9hZGVyVHlwZTtcclxuICBASW5wdXQoKSBmaWxlRGF0YUNvbnRyb2xOYW1lITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGZpbGVOYW1lQ29udHJvbE5hbWUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZmlsZVR5cGVDb250cm9sTmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBhdmF0YXJTaXplITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGRlZmF1bHRBdmF0YXIhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaGlkZVByZXZpZXchOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHZlcnRpY2FsTW9kZSE6IGJvb2xlYW47XHJcbiAgQFZpZXdDaGlsZCgnY3VzdG9tRmlsZUlucHV0JykgY3VzdG9tRmlsZUlucHV0ITogRWxlbWVudFJlZjtcclxuXHJcbiAgb3ZlcnJpZGUgdmFsdWUhOiBzdHJpbmc7XHJcblxyXG4gIG5nQ29udHJvbCE6IE5nQ29udHJvbDtcclxuXHJcbiAgaG92ZXJUZXh0ID1cclxuICAgIEVudW1UcmFuc2xhdGVLZXkuVUlfQ09SRV9DT05UUk9MX0ZJTEVfVVBMT0FERVJfQ0xJQ0tfVE9fQlJPV1NFX0ZJTEU7XHJcbiAgbGFuZyE6IHN0cmluZztcclxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIGNob3NlbkZpbGU6IGFueTtcclxuICBjb21wcmVzc2VkU2l6ZTogYW55O1xyXG4gIHByZXZpZXc6IGFueTtcclxuICBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbG9hZGluZ0NhcHRpb24hOiBzdHJpbmc7XHJcblxyXG4gIGFjY2VwdCE6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtbHM6IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5uZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wpKTtcclxuXHJcbiAgICBpZiAoaXNEZXZNb2RlKCkgJiYgISEhdGhpcy51cGxvYWRGaWxlVHlwZSkge1xyXG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihcclxuICAgICAgICBgVXNpbmcgQ29yZUZpbGVVcGxvYWRlckNvbXBvbmVudCByZXF1aXJlZCBwcm9wZXJ0eSB1cGxvYWRGaWxlVHlwZSE6IEVudW1Db3JlRmlsZVVwbG9hZGVyVHlwZWAsXHJcbiAgICAgICAgeyAuLi5hbGVydE9wdGlvbnMsIGF1dG9DbG9zZTogZmFsc2UgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzRGV2TW9kZSgpICYmICEhIXRoaXMuZmlsZURhdGFDb250cm9sTmFtZSkge1xyXG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihcclxuICAgICAgICBgVXNpbmcgQ29yZUZpbGVVcGxvYWRlckNvbXBvbmVudCByZXF1aXJlZCBwcm9wZXJ0eSBmaWxlRGF0YUNvbnRyb2xOYW1lITogc3RyaW5nIChiYXNlNjQpYCxcclxuICAgICAgICB7IC4uLmFsZXJ0T3B0aW9ucywgYXV0b0Nsb3NlOiBmYWxzZSB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNEZXZNb2RlKCkgJiYgISEhdGhpcy5maWxlTmFtZUNvbnRyb2xOYW1lKSB7XHJcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgIGBVc2luZyBDb3JlRmlsZVVwbG9hZGVyQ29tcG9uZW50IHJlcXVpcmVkIHByb3BlcnR5IGZpbGVOYW1lQ29udHJvbE5hbWUhOiBzdHJpbmdgLFxyXG4gICAgICAgIHsgLi4uYWxlcnRPcHRpb25zLCBhdXRvQ2xvc2U6IGZhbHNlIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmIChpc0Rldk1vZGUoKSAmJiAhISF0aGlzLmZpbGVUeXBlQ29udHJvbE5hbWUpIHtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgYFVzaW5nIENvcmVGaWxlVXBsb2FkZXJDb21wb25lbnQgcmVxdWlyZWQgcHJvcGVydHkgZmlsZVR5cGVDb250cm9sTmFtZSE6IHN0cmluZ2AsXHJcbiAgICAgICAgeyAuLi5hbGVydE9wdGlvbnMsIGF1dG9DbG9zZTogZmFsc2UgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubWxzLmxhbmckLnN1YnNjcmliZSgoeCkgPT4gKHRoaXMubGFuZyA9IHgpKSk7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnVwbG9hZEZpbGVUeXBlID09PSBFbnVtQ29yZUZpbGVVcGxvYWRlclR5cGUuSU1BR0VfQVZBVEFSIHx8XHJcbiAgICAgIHRoaXMudXBsb2FkRmlsZVR5cGUgPT09IEVudW1Db3JlRmlsZVVwbG9hZGVyVHlwZS5JTUFHRV9PVEhFUlxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuYWNjZXB0ID0gJ2ltYWdlL3BuZywgaW1hZ2UvZ2lmLCBpbWFnZS9qcGVnJztcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIHRoaXMudXBsb2FkRmlsZVR5cGUgPT09IEVudW1Db3JlRmlsZVVwbG9hZGVyVHlwZS5QREZcclxuICAgICkge1xyXG4gICAgICB0aGlzLmFjY2VwdCA9IFwiYXBwbGljYXRpb24vcGRmXCI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS53YXJuKFxyXG4gICAgICAgIGBXaGVuIHVwbG9hZEZpbGVUeXBlPT09JHt0aGlzLnVwbG9hZEZpbGVUeXBlfSA9PiBUTyBETy4uLmAsXHJcbiAgICAgICAgeyAuLi5hbGVydE9wdGlvbnMsIGF1dG9DbG9zZTogZmFsc2UgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Ib3ZlcigpIHtcclxuICAgIGNvbnNvbGUubG9nKCdvbkhvdmVyJyk7XHJcbiAgICB0aGlzLmN1c3RvbUZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxyXG4gICAgICAnLS1ob3Zlci10ZXh0JyxcclxuICAgICAgdGhpcy5ob3ZlclRleHRcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVJbnB1dENoYW5nZShlOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCdoYW5kbGVJbnB1dENoYW5nZSBlJywgZSk7XHJcbiAgICBpZiAoIXRoaXMuaGFzRmlsZVNpemUoZS50YXJnZXQuZmlsZXNbMF0uc2l6ZSkpIHtcclxuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgYEZpbGUgc2l6ZSBleGNlZWRzIDNNQi5gLFxyXG4gICAgICAgIHsgLi4uYWxlcnRPcHRpb25zLCBhdXRvQ2xvc2U6IGZhbHNlIH1cclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCEhZS50YXJnZXQuZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IGZpbGUgPSBlLnRhcmdldC5maWxlc1swXTtcclxuICAgICAgY29uc29sZS5sb2coJ2hhbmRsZUlucHV0Q2hhbmdlIGZpbGUnLCBmaWxlKTtcclxuICAgICAgdGhpcy5jaG9zZW5GaWxlID0gZmlsZTtcclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICBmaWxlLnR5cGUuc3BsaXQoJy8nKVswXSA9PT0gJ2ltYWdlJyB8fFxyXG4gICAgICAgIGZpbGUudHlwZS5zcGxpdCgnLycpWzBdID09PSAnYXBwbGljYXRpb24nXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbZmlsZV0pO1xyXG4gICAgICAgIGlmIChmaWxlLnR5cGUgIT09ICdpbWFnZS9naWYnKSB7XHJcbiAgICAgICAgICBjb21wcmVzc0ltYWdlKGJsb2IpLnRoZW4oKGJsb2I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNvbXByZXNzZWRTaXplID0gYmxvYi5zaXplO1xyXG4gICAgICAgICAgICBibG9iVG9CYXNlNjQoYmxvYikudGhlbigoYmFzZTY0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnByZXZpZXcgPSBiYXNlNjQ7XHJcblxyXG4gICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gKGJhc2U2NCBhcyBzdHJpbmcpLmluZGV4T2YoJ2Jhc2U2NCwnKTtcclxuICAgICAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgICAgICAgYmFzZTY0ID0gKGJhc2U2NCBhcyBzdHJpbmcpLnN1YnN0cmluZyhpbmRleCArIDcpO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShiYXNlNjQpO1xyXG5cclxuICAgICAgICAgICAgICBjb25zdCBmb3JtID0gdGhpcy5uZ0NvbnRyb2wuY29udHJvbD8ucGFyZW50O1xyXG4gICAgICAgICAgICAgIGNvbnN0IG9iamVjdFRvUGF0Y2g6IGFueSA9IHt9O1xyXG4gICAgICAgICAgICAgIG9iamVjdFRvUGF0Y2hbdGhpcy5maWxlRGF0YUNvbnRyb2xOYW1lXSA9IGJhc2U2NDtcclxuICAgICAgICAgICAgICBvYmplY3RUb1BhdGNoW3RoaXMuZmlsZU5hbWVDb250cm9sTmFtZV0gPSBmaWxlLm5hbWU7XHJcbiAgICAgICAgICAgICAgb2JqZWN0VG9QYXRjaFt0aGlzLmZpbGVUeXBlQ29udHJvbE5hbWVdID0gZmlsZS50eXBlO1xyXG4gICAgICAgICAgICAgIGZvcm0/LnBhdGNoVmFsdWUob2JqZWN0VG9QYXRjaCk7XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBibG9iVG9CYXNlNjQoYmxvYikudGhlbigoYmFzZTY0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jb21wcmVzc2VkU2l6ZSA9IGJsb2Iuc2l6ZTtcclxuICAgICAgICAgICAgdGhpcy5wcmV2aWV3ID0gYmFzZTY0O1xyXG5cclxuICAgICAgICAgICAgY29uc3QgaW5kZXggPSAoYmFzZTY0IGFzIHN0cmluZykuaW5kZXhPZignYmFzZTY0LCcpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgICAgIGJhc2U2NCA9IChiYXNlNjQgYXMgc3RyaW5nKS5zdWJzdHJpbmcoaW5kZXggKyA3KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShiYXNlNjQpO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgZm9ybSA9IHRoaXMubmdDb250cm9sLmNvbnRyb2w/LnBhcmVudDtcclxuICAgICAgICAgICAgY29uc3Qgb2JqZWN0VG9QYXRjaDogYW55ID0ge307XHJcbiAgICAgICAgICAgIG9iamVjdFRvUGF0Y2hbdGhpcy5maWxlRGF0YUNvbnRyb2xOYW1lXSA9IGJhc2U2NDtcclxuICAgICAgICAgICAgb2JqZWN0VG9QYXRjaFt0aGlzLmZpbGVOYW1lQ29udHJvbE5hbWVdID0gZmlsZS5uYW1lO1xyXG4gICAgICAgICAgICBvYmplY3RUb1BhdGNoW3RoaXMuZmlsZVR5cGVDb250cm9sTmFtZV0gPSBmaWxlLnR5cGU7XHJcbiAgICAgICAgICAgIGZvcm0/LnBhdGNoVmFsdWUob2JqZWN0VG9QYXRjaCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChmaWxlLnR5cGUuc3BsaXQoJy8nKVswXSA9PT0gJ2F1ZGlvJykge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdUbyBkbycpO1xyXG4gICAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wcmV2aWV3ID0gJyc7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UoJycpO1xyXG4gICAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgdGhpcy5jaG9zZW5GaWxlID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYXNGaWxlU2l6ZShmaWxlU2l6ZSA6IGFueSkge1xyXG4gICAgaWYgKGZpbGVTaXplIDwgMyAqIDEwMjQgKiAxMDI0KSB7IHJldHVybiB0cnVlOyB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5tYXAoKHgpID0+IHg/LnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29yZS1maWxlLXVwbG9hZGVyLWNvbnRhaW5lclwiPlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCIhISF2ZXJ0aWNhbE1vZGVcIj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IFtjbGFzc109XCIhIWhpZGVQcmV2aWV3ID8gJ2NvbC1tZC0xMicgOiAnY29sLW1kLTYnXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJjdXN0b20tZmlsZS1pbnB1dFwiICNjdXN0b21GaWxlSW5wdXQgY2xhc3M9XCJjdXN0b20tZmlsZS1pbnB1dFwiIHR5cGU9XCJmaWxlXCIgW2FjY2VwdF09XCJhY2NlcHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlSW5wdXRDaGFuZ2UoJGV2ZW50KVwiIChob3Zlcik9XCJvbkhvdmVyKClcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBpZD1cImZpbGUtaW5wdXQtbGFiZWxcIiBmb3I9XCJjdXN0b20tZmlsZS1pbnB1dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJ1cGxvYWRGaWxlVHlwZT09PSdJTUFHRV9BVkFUQVInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCIhISFoaWRlUHJldmlldyA/ICh2YWx1ZSA/ICh2YWx1ZSB8IG1hcEF2YXRhclRvU2VydmVyKSA6IGRlZmF1bHRBdmF0YXIpIDogKHByZXZpZXcgPyBwcmV2aWV3IDogZGVmYXVsdEF2YXRhcilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF2YXRhci1wcmV2aWV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInVwbG9hZEZpbGVUeXBlIT09J0lNQUdFX0FWQVRBUidcIj57eydFWElTVElORyBGSUxFLi4uJ319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGlkPVwiZmlsZS1pbnB1dC1sYWJlbFwiIGZvcj1cImN1c3RvbS1maWxlLWlucHV0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgKm5nSWY9XCJ1cGxvYWRGaWxlVHlwZSE9PSdJTUFHRV9BVkFUQVInXCIgW3NyY109XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlSW5wdXRDaGFuZ2UoJGV2ZW50KVwiIGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yXCIgKm5nSWY9XCIhISFoaWRlUHJldmlld1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiEhIWxvYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWQtcHJldmlld1wiICpuZ0lmPVwicHJldmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwicHJldmlld1wiIGFsdD1cInNlbGVjdGVkLWZpbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGFwcC10aHJlZWRvdHMgKm5nSWY9XCIhIWxvYWRpbmdcIj48L2FwcC10aHJlZWRvdHM+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgZC1ub25lXCIgKm5nSWY9XCIhISFoaWRlUHJldmlld1wiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEhY2hvc2VuRmlsZVwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ1VJX0NPUkVfRklMRV9VUExPQURFUl9GSUxFX05BTUUnIHwgdHJhbnNsYXRlOiBsYW5nIH19OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNob3NlbkZpbGU/Lm5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnVUlfQ09SRV9GSUxFX1VQTE9BREVSX0ZJTEVfVFlQRScgfCB0cmFuc2xhdGU6IGxhbmcgfX06XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY2hvc2VuRmlsZT8udHlwZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdVSV9DT1JFX0ZJTEVfVVBMT0FERVJfRklMRV9TSVpFJyB8IHRyYW5zbGF0ZTogbGFuZyB9fTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjaG9zZW5GaWxlPy5zaXplIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCIhIWNvbXByZXNzZWRTaXplXCI+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdVSV9DT1JFX0ZJTEVfVVBMT0FERVJfRklMRV9TSVpFX0NPTVBSRVNTRUQnIHwgdHJhbnNsYXRlOiBsYW5nIH19OlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGNvbXByZXNzZWRTaXplIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+IC0tPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cIiEhdmVydGljYWxNb2RlXCIgY2xhc3M9XCJtdDIwXCI+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgY29udGFpbmVyLWZsdWlkXCI+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdjb2wtbWQtMTInPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImN1c3RvbS1maWxlLWlucHV0XCIgI2N1c3RvbUZpbGVJbnB1dCBjbGFzcz1cImN1c3RvbS1maWxlLWlucHV0XCIgdHlwZT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYWNjZXB0XT1cImFjY2VwdFwiIChjaGFuZ2UpPVwiaGFuZGxlSW5wdXRDaGFuZ2UoJGV2ZW50KVwiIChob3Zlcik9XCJvbkhvdmVyKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJmaWxlLWlucHV0LWxhYmVsXCIgZm9yPVwiY3VzdG9tLWZpbGUtaW5wdXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cInVwbG9hZEZpbGVUeXBlPT09J0lNQUdFX0FWQVRBUidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCIhISFoaWRlUHJldmlldyA/ICh2YWx1ZSA/ICh2YWx1ZSB8IG1hcEF2YXRhclRvU2VydmVyKSA6IGRlZmF1bHRBdmF0YXIpIDogKCh2YWx1ZSAmJiAhISFwcmV2aWV3KSA/ICh2YWx1ZSB8IG1hcEF2YXRhclRvU2VydmVyKSA6IChwcmV2aWV3ID8gcHJldmlldyA6IGRlZmF1bHRBdmF0YXIpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF2YXRhci1wcmV2aWV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ1cGxvYWRGaWxlVHlwZSE9PSdJTUFHRV9BVkFUQVInXCI+e3snRVhJU1RJTkcgRklMRS4uLid9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGlkPVwiZmlsZS1pbnB1dC1sYWJlbFwiIGZvcj1cImN1c3RvbS1maWxlLWlucHV0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZmlsZVwiICpuZ0lmPVwidXBsb2FkRmlsZVR5cGUhPT0nSU1BR0VfQVZBVEFSJ1wiIFtzcmNdPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJoYW5kbGVJbnB1dENoYW5nZSgkZXZlbnQpXCIgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiICpuZ0lmPVwiISEhaGlkZVByZXZpZXdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiISEhbG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWQtcHJldmlld1wiICpuZ0lmPVwicHJldmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cInByZXZpZXdcIiBhbHQ9XCJzZWxlY3RlZC1maWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtdGhyZWVkb3RzICpuZ0lmPVwiISFsb2FkaW5nXCI+PC9hcHAtdGhyZWVkb3RzPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBkLW5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIiAqbmdJZj1cIiEhIWhpZGVQcmV2aWV3XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhIWNob3NlbkZpbGVcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2NvbC1tZC02Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnVUlfQ09SRV9GSUxFX1VQTE9BREVSX0ZJTEVfTkFNRScgfCB0cmFuc2xhdGU6IGxhbmcgfX06XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2NvbC1tZC02Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjaG9zZW5GaWxlPy5uYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdjb2wtbWQtNic+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ1VJX0NPUkVfRklMRV9VUExPQURFUl9GSUxFX1RZUEUnIHwgdHJhbnNsYXRlOiBsYW5nIH19OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdjb2wtbWQtNic+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY2hvc2VuRmlsZT8udHlwZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nY29sLW1kLTYnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdVSV9DT1JFX0ZJTEVfVVBMT0FERVJfRklMRV9TSVpFJyB8IHRyYW5zbGF0ZTogbGFuZyB9fTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nY29sLW1kLTYnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNob3NlbkZpbGU/LnNpemUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhIWNvbXByZXNzZWRTaXplXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2NvbC1tZC02Jz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnVUlfQ09SRV9GSUxFX1VQTE9BREVSX0ZJTEVfU0laRV9DT01QUkVTU0VEJyB8IHRyYW5zbGF0ZTogbGFuZyB9fTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nY29sLW1kLTYnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNvbXByZXNzZWRTaXplIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcbjwvZGl2PiJdfQ==
|