@hmcts/media-viewer 4.1.1 → 4.1.3
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/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.mjs +5 -4
- package/esm2022/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.mjs +4 -2
- package/esm2022/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.mjs +4 -3
- package/esm2022/lib/annotations/comment-set/comment/comment.component.mjs +3 -2
- package/esm2022/lib/annotations/comment-set/comment-set-render.service.mjs +3 -2
- package/esm2022/lib/media-viewer.component.mjs +3 -2
- package/esm2022/lib/shared/util/helpers/html-templates.helper.mjs +12 -1
- package/esm2022/lib/toolbar/main-toolbar/main-toolbar.component.mjs +4 -3
- package/esm2022/lib/toolbar/redaction-search-bar/redaction-search-bar.component.mjs +3 -2
- package/esm2022/lib/viewers/pdf-viewer/side-bar/side-bar.component.mjs +4 -2
- package/fesm2022/hmcts-media-viewer.mjs +46 -31
- package/fesm2022/hmcts-media-viewer.mjs.map +1 -1
- package/lib/annotations/annotation-set/annotation-create/box-highlight-create/box-highlight-create.component.d.ts.map +1 -1
- package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.directive.d.ts.map +1 -1
- package/lib/annotations/annotation-set/ctx-toolbar/ctx-toolbar.component.d.ts.map +1 -1
- package/lib/annotations/comment-set/comment/comment.component.d.ts.map +1 -1
- package/lib/annotations/comment-set/comment-set-render.service.d.ts.map +1 -1
- package/lib/media-viewer.component.d.ts.map +1 -1
- package/lib/shared/util/helpers/html-templates.helper.d.ts +1 -0
- package/lib/shared/util/helpers/html-templates.helper.d.ts.map +1 -1
- package/lib/toolbar/main-toolbar/main-toolbar.component.d.ts.map +1 -1
- package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.d.ts.map +1 -1
- package/lib/viewers/pdf-viewer/side-bar/side-bar.component.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -14,5 +14,16 @@ export class HtmlTemplatesHelper {
|
|
|
14
14
|
return config.hint ? `${config.id}-hint` : null;
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
+
static getAdjustedBoundingRect(element, log = true) {
|
|
18
|
+
const viewportX = window.visualViewport.offsetLeft;
|
|
19
|
+
const viewportY = window.visualViewport.offsetTop;
|
|
20
|
+
const viewportScale = window.visualViewport.scale;
|
|
21
|
+
const viewportPageX = window.visualViewport.pageLeft;
|
|
22
|
+
const viewportPageY = window.visualViewport.pageTop;
|
|
23
|
+
if (log && viewportX || viewportY || (viewportScale != 1) || viewportPageX || viewportPageY) {
|
|
24
|
+
console.log(`Element: ${element.id} Viewport X: ${viewportX}, Y: ${viewportY}, Scale: ${viewportScale}, PageX: ${viewportPageX}, PageY: ${viewportPageY}`);
|
|
25
|
+
}
|
|
26
|
+
return element.getBoundingClientRect();
|
|
27
|
+
}
|
|
17
28
|
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC10ZW1wbGF0ZXMuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvc2hhcmVkL3V0aWwvaGVscGVycy9odG1sLXRlbXBsYXRlcy5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztLQUdLO0FBRUwsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QixNQUFNLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxNQUFNO1FBQ3hDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDbEQsQ0FBQzthQUFNLElBQUksWUFBWSxJQUFJLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNsRCxPQUFRLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsU0FBUyxNQUFNLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsUUFBUSxDQUFDO1FBQ3RGLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2xELENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLHVCQUF1QixDQUFDLE9BQW9CLEVBQUUsTUFBZSxJQUFJO1FBQ3RFLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFBO1FBQ2xELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO1FBQ2xELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO1FBQ2xELE1BQU0sYUFBYSxHQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO1FBQ3RELE1BQU0sYUFBYSxHQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDO1FBQ3JELElBQUksR0FBRyxJQUFJLFNBQVMsSUFBSSxTQUFTLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxDQUFDLElBQUssYUFBYSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQzdGLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxPQUFPLENBQUMsRUFBRSxnQkFBZ0IsU0FBUyxRQUFRLFNBQVMsWUFBWSxhQUFhLFlBQVksYUFBYSxZQUFZLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDN0osQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDekMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBIZWxwZXIgQ2xhc3NcbiAqIFVzZWQgZm9yIGR5bmFtaWMgdGVtcGxhdGVzIG1hbmlwdWxhdGlvblxuICogKi9cblxuZXhwb3J0IGNsYXNzIEh0bWxUZW1wbGF0ZXNIZWxwZXIge1xuXG4gIHN0YXRpYyBzZXREZXNjcmliZWRCeShlcnJvck1lc3NhZ2UsIGNvbmZpZykge1xuICAgIGlmICghZXJyb3JNZXNzYWdlKSB7XG4gICAgICByZXR1cm4gY29uZmlnLmhpbnQgPyBgJHtjb25maWcuaWR9LWhpbnRgIDogbnVsbDtcbiAgICB9IGVsc2UgaWYgKGVycm9yTWVzc2FnZSAmJiBlcnJvck1lc3NhZ2UuaXNJbnZhbGlkKSB7XG4gICAgICByZXR1cm4gIGNvbmZpZy5oaW50ID8gYCR7Y29uZmlnLmlkfS1oaW50ICR7Y29uZmlnLmlkfS1lcnJvcmAgOiBgJHtjb25maWcuaWR9LWVycm9yYDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGNvbmZpZy5oaW50ID8gYCR7Y29uZmlnLmlkfS1oaW50YCA6IG51bGw7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGdldEFkanVzdGVkQm91bmRpbmdSZWN0KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBsb2c6IGJvb2xlYW4gPSB0cnVlKTogRE9NUmVjdCB7XG4gICAgY29uc3Qgdmlld3BvcnRYID0gd2luZG93LnZpc3VhbFZpZXdwb3J0Lm9mZnNldExlZnRcbiAgICBjb25zdCB2aWV3cG9ydFkgPSB3aW5kb3cudmlzdWFsVmlld3BvcnQub2Zmc2V0VG9wO1xuICAgIGNvbnN0IHZpZXdwb3J0U2NhbGUgPSB3aW5kb3cudmlzdWFsVmlld3BvcnQuc2NhbGU7XG4gICAgY29uc3Qgdmlld3BvcnRQYWdlWCAgPSB3aW5kb3cudmlzdWFsVmlld3BvcnQucGFnZUxlZnQ7XG4gICAgY29uc3Qgdmlld3BvcnRQYWdlWSAgPSB3aW5kb3cudmlzdWFsVmlld3BvcnQucGFnZVRvcDtcbiAgICBpZiAobG9nICYmIHZpZXdwb3J0WCB8fCB2aWV3cG9ydFkgfHwgKHZpZXdwb3J0U2NhbGUgIT0gMSkgIHx8IHZpZXdwb3J0UGFnZVggfHwgdmlld3BvcnRQYWdlWSkge1xuICAgICAgY29uc29sZS5sb2coYEVsZW1lbnQ6ICR7ZWxlbWVudC5pZH0gVmlld3BvcnQgWDogJHt2aWV3cG9ydFh9LCBZOiAke3ZpZXdwb3J0WX0sIFNjYWxlOiAke3ZpZXdwb3J0U2NhbGV9LCBQYWdlWDogJHt2aWV3cG9ydFBhZ2VYfSwgUGFnZVk6ICR7dmlld3BvcnRQYWdlWX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ConnectionPositionPair } from '@angular/cdk/overlay';
|
|
2
2
|
import { Component, HostListener, Input, ViewChild } from '@angular/core';
|
|
3
|
+
import { HtmlTemplatesHelper } from '../../shared/util/helpers/html-templates.helper';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
import * as i1 from "../toolbar-event.service";
|
|
5
6
|
import * as i2 from "../toolbar-button-visibility.service";
|
|
@@ -63,8 +64,8 @@ export class MainToolbarComponent {
|
|
|
63
64
|
}
|
|
64
65
|
}
|
|
65
66
|
ngAfterViewInit() {
|
|
66
|
-
Array.from(this.mvToolbarMain.nativeElement.children).forEach(button => {
|
|
67
|
-
this.allButtonsWidth +=
|
|
67
|
+
Array.from(this.mvToolbarMain.nativeElement.children).forEach((button) => {
|
|
68
|
+
this.allButtonsWidth += HtmlTemplatesHelper.getAdjustedBoundingRect(button).width;
|
|
68
69
|
this.widthRequiredForBtn[button.id] = this.allButtonsWidth;
|
|
69
70
|
});
|
|
70
71
|
this.cdr.detectChanges();
|
|
@@ -202,4 +203,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
202
203
|
type: HostListener,
|
|
203
204
|
args: ['document:keydown.meta.p', ['$event']]
|
|
204
205
|
}] } });
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL3Rvb2xiYXIvbWFpbi10b29sYmFyL21haW4tdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi90b29sYmFyL21haW4tdG9vbGJhci9tYWluLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUdMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7QUFXdkIsTUFBTSxPQUFPLG9CQUFvQjtJQTRDL0IsWUFDa0IsYUFBa0MsRUFDbEMsY0FBOEMsRUFDN0MsR0FBc0IsRUFDdEIsWUFBaUMsRUFDakMsZUFBZ0M7UUFKakMsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2xDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQztRQUM3QyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBL0MxQyxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFNWCxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFFN0MsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFJekIsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCx1QkFB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QVk7dUJBQUMseUJBQXlCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25uZWN0aW9uUG9zaXRpb25QYWlyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uL3Rvb2xiYXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBUb29sYmFyQnV0dG9uVmlzaWJpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi90b29sYmFyLWJ1dHRvbi12aXNpYmlsaXR5LnNlcnZpY2UnO1xuaW1wb3J0IHsgTnVtYmVySGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2xpYi9zaGFyZWQvdXRpbC9zZXJ2aWNlcy9udW1iZXIuaGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWNwRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vaWNwLWV2ZW50LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1tYWluLXRvb2xiYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFpbi10b29sYmFyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBNYWluVG9vbGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcblxuICBASW5wdXQoKSBlbmFibGVBbm5vdGF0aW9ucyA9IGZhbHNlO1xuICBASW5wdXQoKSBlbmFibGVSZWRhY3Rpb25zID0gZmFsc2U7XG4gIEBJbnB1dCgpIGVuYWJsZUlDUCA9IGZhbHNlO1xuICBASW5wdXQoKSBjb250ZW50VHlwZSA9IG51bGw7XG5cbiAgQFZpZXdDaGlsZCgnem9vbVNlbGVjdCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwdWJsaWMgem9vbVNlbGVjdDogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnbXZUb29sYmFyTWFpbicsIHsgc3RhdGljOiBmYWxzZSB9KSBwdWJsaWMgbXZUb29sYmFyTWFpbjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duTWVudScsIHsgc3RhdGljOiBmYWxzZSB9KSBwdWJsaWMgbXZNZW51SXRlbXM6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBwdWJsaWMgaWNwRW5hYmxlZCA9IGZhbHNlO1xuICBwdWJsaWMgcmVkYWN0aW9uRW5hYmxlZCA9IGZhbHNlO1xuICBwdWJsaWMgc2hvd0NvbW1lbnRzUGFuZWw6IGJvb2xlYW47XG4gIHB1YmxpYyByZWRhY3RBbGxJblByb2dyZXNzOiBib29sZWFuO1xuXG4gIHB1YmxpYyBwYWdlTnVtYmVyID0gMTtcbiAgcHVibGljIHBhZ2VDb3VudCA9IDA7XG4gIHB1YmxpYyBpc0Ryb3Bkb3duTWVudU9wZW4gPSBmYWxzZTtcbiAgcHVibGljIGlzQm9va21hcmtzT3BlbiA9IGZhbHNlO1xuICBwdWJsaWMgaXNJbmRleE9wZW4gPSBmYWxzZTtcbiAgcHVibGljIGlzUmVkYWN0T3BlbiA9IGZhbHNlO1xuICBwdWJsaWMgaXNDb21tZW50c09wZW4gPSBmYWxzZTtcbiAgcHVibGljIGRyb3Bkb3duTWVudVBvc2l0aW9ucyA9IFtcbiAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcihcbiAgICAgIHtcbiAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgIG9yaWdpblk6ICdib3R0b20nXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBvdmVybGF5WDogJ2VuZCcsXG4gICAgICAgIG92ZXJsYXlZOiAndG9wJ1xuICAgICAgfSxcbiAgICAgIDAsXG4gICAgICAzKVxuICBdO1xuXG4gIHB1YmxpYyB6b29tU2NhbGVzID0gWzAuMSwgMC4yNSwgMC41LCAwLjc1LCAxLCAxLjI1LCAxLjUsIDIuNSwgMywgNV07XG5cbiAgYWxsQnV0dG9uc1dpZHRoID0gMDtcbiAgd2lkdGhSZXF1aXJlZEZvckJ0bjogeyBbaWQ6IHN0cmluZ106IG51bWJlciB9ID0ge307XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSB0b29sYmFyRXZlbnRzOiBUb29sYmFyRXZlbnRTZXJ2aWNlLFxuICAgIHB1YmxpYyByZWFkb25seSB0b29sYmFyQnV0dG9uczogVG9vbGJhckJ1dHRvblZpc2liaWxpdHlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IG51bWJlckhlbHBlcjogTnVtYmVySGVscGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGljcEV2ZW50U2VydmljZTogSWNwRXZlbnRTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnNldEN1cnJlbnRQYWdlU3ViamVjdC5zdWJzY3JpYmUocGFnZU51bWJlciA9PiB0aGlzLnNldEN1cnJlbnRQYWdlKHBhZ2VOdW1iZXIpKSxcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5zZXRDdXJyZW50UGFnZUlucHV0VmFsdWVTdWJqZWN0LnN1YnNjcmliZShwYWdlTnVtYmVyID0+IHRoaXMucGFnZU51bWJlciA9IHBhZ2VOdW1iZXIpLFxuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLmdldFBhZ2VDb3VudCgpLnN1YnNjcmliZShjb3VudCA9PiB0aGlzLnBhZ2VDb3VudCA9IGNvdW50KSxcbiAgICAgIHRoaXMuaWNwRXZlbnRTZXJ2aWNlLmVuYWJsZWQuc3Vic2NyaWJlKGVuYWJsZWQgPT4ge1xuICAgICAgICB0aGlzLmljcEVuYWJsZWQgPSBlbmFibGVkO1xuICAgICAgICBpZiAodGhpcy5pY3BFbmFibGVkKSB7XG4gICAgICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnRvZ2dsZUNvbW1lbnRzUGFuZWwoIWVuYWJsZWQpO1xuICAgICAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5zaWRlYmFyT3Blbi5uZXh0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMucmVkYWN0aW9uTW9kZS5zdWJzY3JpYmUoZW5hYmxlZCA9PiB7XG4gICAgICAgIHRoaXMucmVkYWN0aW9uRW5hYmxlZCA9IGVuYWJsZWQ7XG4gICAgICB9KSxcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5yZWRhY3RBbGxJblByb2dyZXNzU3ViamVjdC5zdWJzY3JpYmUoZGlzYWJsZSA9PiB7XG4gICAgICAgIHRoaXMucmVkYWN0QWxsSW5Qcm9ncmVzcyA9IGRpc2FibGU7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHRoaXMuc3Vic2NyaXB0aW9ucykge1xuICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBBcnJheS5mcm9tKHRoaXMubXZUb29sYmFyTWFpbi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuKS5mb3JFYWNoKGJ1dHRvbiA9PiB7XG4gICAgICB0aGlzLmFsbEJ1dHRvbnNXaWR0aCArPSBidXR0b24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICB0aGlzLndpZHRoUmVxdWlyZWRGb3JCdG5bYnV0dG9uLmlkXSA9IHRoaXMuYWxsQnV0dG9uc1dpZHRoO1xuICAgIH0pO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbXSlcbiAgcHVibGljIG9uUmVzaXplKCkge1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uY29udHJvbC5wJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5tZXRhLnAnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25Db250cm9sUHJpbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMucHJpbnRGaWxlKCk7XG4gIH1cblxuICBwdWJsaWMgb25DbGlja0hpZ2hsaWdodFRvZ2dsZSgpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMudG9nZ2xlSGlnaGxpZ2h0VG9vbGJhcigpO1xuICB9XG4gIHB1YmxpYyBvbkNsaWNrRHJhd1RvZ2dsZSgpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMudG9nZ2xlRHJhd01vZGUoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVJbmRleFNpZGVCYXIoKSB7XG4gICAgY29uc3Qgc2lkZWJhck9wZW4gPSB0aGlzLnRvb2xiYXJFdmVudHMuc2lkZWJhck9wZW4uZ2V0VmFsdWUoKTtcbiAgICBjb25zdCBzaWRlYmFyVmlldyA9IHRoaXMudG9vbGJhckV2ZW50cy5zaWRlYmFyT3V0bGluZVZpZXcuZ2V0VmFsdWUoKTtcbiAgICBpZiAoIShzaWRlYmFyT3BlbiAmJiAhc2lkZWJhclZpZXcpKSB7XG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMudG9nZ2xlU2lkZUJhcighc2lkZWJhck9wZW4pO1xuICAgIH1cbiAgICB0aGlzLnRvb2xiYXJFdmVudHMudG9nZ2xlU2lkZUJhclZpZXcodHJ1ZSk7XG4gICAgdGhpcy5pc0luZGV4T3BlbiA9ICF0aGlzLmlzSW5kZXhPcGVuO1xuICB9XG5cbiAgcHVibGljIG9uVG9vbEJhck9mZlNldENoYW5nZShidXR0b25JZDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMubXZUb29sYmFyTWFpbiAmJiB0aGlzLm12VG9vbGJhck1haW4ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCA8IHRoaXMud2lkdGhSZXF1aXJlZEZvckJ0bltidXR0b25JZF0pIHtcbiAgICAgIHJldHVybiBcImJ1dHRvbi1oaWRkZW4tb24tdG9vbGJhclwiO1xuXG4gICAgfVxuICAgIHJldHVybiBcImJ1dHRvbi1oaWRkZW4tb24tZHJvcGRvd25cIjtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVCb29rbWFya3NTaWRlQmFyKCkge1xuICAgIGNvbnN0IHNpZGViYXJPcGVuID0gdGhpcy50b29sYmFyRXZlbnRzLnNpZGViYXJPcGVuLmdldFZhbHVlKCk7XG4gICAgY29uc3Qgc2lkZWJhclZpZXcgPSB0aGlzLnRvb2xiYXJFdmVudHMuc2lkZWJhck91dGxpbmVWaWV3LmdldFZhbHVlKCk7XG4gICAgaWYgKCEoc2lkZWJhck9wZW4gJiYgc2lkZWJhclZpZXcpKSB7XG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMudG9nZ2xlU2lkZUJhcighc2lkZWJhck9wZW4pO1xuICAgIH1cbiAgICB0aGlzLnRvb2xiYXJFdmVudHMudG9nZ2xlU2lkZUJhclZpZXcoZmFsc2UpO1xuICAgIHRoaXMuaXNCb29rbWFya3NPcGVuID0gIXRoaXMuaXNCb29rbWFya3NPcGVuO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVByZXNlbnRCYXIoKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnNlYXJjaEJhckhpZGRlbi5uZXh0KHRydWUpO1xuICAgIHRoaXMuaWNwRXZlbnRTZXJ2aWNlLmVuYWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGluY3JlYXNlUGFnZU51bWJlcigpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMuaW5jcmVtZW50UGFnZSgxKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWNyZWFzZVBhZ2VOdW1iZXIoKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLmluY3JlbWVudFBhZ2UoLTEpO1xuICB9XG5cbiAgcHVibGljIG9uUGFnZU51bWJlcklucHV0Q2hhbmdlKHBhZ2VOdW1iZXI6IHN0cmluZykge1xuICAgIGlmIChOdW1iZXIocGFnZU51bWJlcikgPCAxKSB7XG4gICAgICBwYWdlTnVtYmVyID0gJzEnO1xuICAgIH1cbiAgICBpZiAoTnVtYmVyKHBhZ2VOdW1iZXIpID4gdGhpcy5wYWdlQ291bnQpIHtcbiAgICAgIHBhZ2VOdW1iZXIgPSB0aGlzLnBhZ2VDb3VudC50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHRoaXMudG9vbGJhckV2ZW50cy5zZXRQYWdlKE51bWJlci5wYXJzZUludChwYWdlTnVtYmVyLCAxMCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDdXJyZW50UGFnZShwYWdlTnVtYmVyOiBudW1iZXIpIHtcbiAgICB0aGlzLnBhZ2VOdW1iZXIgPSBwYWdlTnVtYmVyO1xuICB9XG5cbiAgcHVibGljIHJvdGF0ZShyb3RhdGlvbjogbnVtYmVyKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnJvdGF0ZShyb3RhdGlvbik7XG4gIH1cblxuICBwdWJsaWMgcHJpbnRGaWxlKCkge1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy5wcmludCgpO1xuICB9XG5cbiAgcHVibGljIGRvd25sb2FkRmlsZSgpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMuZG93bmxvYWQoKTtcbiAgfVxuXG4gIHB1YmxpYyB6b29tKHpvb21GYWN0b3I6IHN0cmluZykge1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy56b29tKCt6b29tRmFjdG9yKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGVwWm9vbSh6b29tRmFjdG9yOiBudW1iZXIpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMuc3RlcFpvb20oem9vbUZhY3Rvcik7XG4gICAgdGhpcy56b29tU2VsZWN0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0ZWQgPSAnc2VsZWN0ZWQnO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZUNvbW1lbnRzUGFuZWwoKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnRvZ2dsZUNvbW1lbnRzUGFuZWwoIXRoaXMudG9vbGJhckV2ZW50cy5jb21tZW50c1BhbmVsVmlzaWJsZS5nZXRWYWx1ZSgpKTtcbiAgICB0aGlzLmlzQ29tbWVudHNPcGVuID0gIXRoaXMuaXNDb21tZW50c09wZW47XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUmVkYWN0QmFyKCkge1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy50b2dnbGVSZWRhY3Rpb25Nb2RlKCk7XG4gICAgdGhpcy5pc1JlZGFjdE9wZW4gPSAhdGhpcy5pc1JlZGFjdE9wZW47XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlR3JhYk5EcmFnKCkge1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy50b2dnbGVHcmFiTkRyYWcoKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1BkZigpIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50VHlwZSA9PT0gJ3BkZic7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlU2VhcmNoQmFyKCkge1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy5zZWFyY2hCYXJIaWRkZW4ubmV4dCghdGhpcy50b29sYmFyRXZlbnRzLnNlYXJjaEJhckhpZGRlbi5nZXRWYWx1ZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVNb3JlT3B0aW9ucygpIHtcbiAgICB0aGlzLmlzRHJvcGRvd25NZW51T3BlbiA9ICF0aGlzLmlzRHJvcGRvd25NZW51T3BlbjtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLm12TWVudUl0ZW1zKSB7XG4gICAgICAgIHRoaXMubXZNZW51SXRlbXMubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgfVxuICAgIH0sIDEwMCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0b29sYmFyXCI+XG4gIDxkaXYgaWQ9XCJ0b29sYmFyQ29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cIm12LXRvb2xiYXJfX2NvbnRhaW5lclwiPlxuICAgICAgPGRpdiAjbXZUb29sYmFyIGNsYXNzPVwibXYtdG9vbGJhclwiIFtjbGFzcy5ub3RTdXBwb3J0ZWRdPVwiIWNvbnRlbnRUeXBlXCI+XG4gICAgICAgIDwhLS0gVGhlIG12VG9vbGJhck1haW4gZGl2IGNvbnRhaW5zIGFsbCB0b29sYmFyIGJ1dHRvbnMgZXhjZXB0IHRoZSBcIk1vcmUgb3B0aW9uc1wiIGJ1dHRvbi4gVGhpcyBhbGxvd3MgZm9yIGNhbGN1bGF0aW9uIG9mIHRoZSBhdmFpbGFibGUgc3BhY2UgdG8gZGlzcGxheSBidXR0b25zIC0tPlxuICAgICAgICA8ZGl2IGlkPVwibXZUb29sYmFyTWFpblwiIGNsYXNzPVwibXYtdG9vbGJhci1tYWluXCIgI212VG9vbGJhck1haW4+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1lbnVJdGVtc1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLSBUaGUgbXZUb29sYmFyTW9yZU9wdGlvbnMgZGl2IGNvbnRhaW5zIHRoZSBcIk1vcmUgb3B0aW9uc1wiIHRvb2xiYXIgYnV0dG9uIChhbmQgdGhlIG92ZXJsYXkgdGVtcGxhdGUgZm9yIHRoZSBkcm9wZG93biBtZW51KS5cbiAgICAgICAgICAgIFRoZSBzcGFjZSBvY2N1cGllZCBieSB0aGUgYnV0dG9uIChpZiB2aXNpYmxlKSBpcyBleGNsdWRlZCBmcm9tIHRoZSB0b29sYmFyIHNwYWNlIGF2YWlsYWJsZSBjYWxjdWxhdGlvbiAtLT5cbiAgICAgICAgPGRpdiBpZD1cIm12VG9vbGJhck1vcmVPcHRpb25zXCIgY2xhc3M9XCJtdi10b29sYmFyLW1vcmUtb3B0aW9uc1wiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwibXZNb3JlT3B0aW9uc0J0blwiXG4gICAgICAgICAgICBjbGFzcz1cIm12LWJ1dHRvbiBtdi10b29sYmFyX19tZW51LWJ1dHRvbi0tbW9yZS1vcHRpb25zXCJcbiAgICAgICAgICAgIFtjbGFzcy5tdi10b29sYmFyX19tZW51LWJ1dHRvbi0tbW9yZS1vcHRpb25zX19oaWRkZW5dPVwiXG4gICAgICAgICAgICAgIG12VG9vbGJhci5vZmZzZXRXaWR0aCA+PSBhbGxCdXR0b25zV2lkdGhcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzRHJvcGRvd25NZW51T3BlblwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlTW9yZU9wdGlvbnMoKVwiXG4gICAgICAgICAgICBjZGtPdmVybGF5T3JpZ2luXG4gICAgICAgICAgICAjdHJpZ2dlcj1cImNka092ZXJsYXlPcmlnaW5cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJlZGFjdEFsbEluUHJvZ3Jlc3NcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuPnt7IFwiTW9yZSBvcHRpb25zXCIgfCBycHhUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPCEtLSBUaGlzIHRlbXBsYXRlIGRpc3BsYXlzIHRoZSBvdmVybGF5IGNvbnRlbnQgZm9yIHRoZSBkcm9wZG93biBtZW51IGFuZCBpcyBjb25uZWN0ZWQgdG8gdGhlIFwiTW9yZSBvcHRpb25zXCIgYnV0dG9uIC0tPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgY2RrQ29ubmVjdGVkT3ZlcmxheVxuICAgICAgICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwidHJpZ2dlclwiXG4gICAgICAgICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwiaXNEcm9wZG93bk1lbnVPcGVuXCJcbiAgICAgICAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25zXT1cImRyb3Bkb3duTWVudVBvc2l0aW9uc1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIiAjZHJvcGRvd25NZW51IHRhYmluZGV4PVwiMFwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibWVudUl0ZW1zXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGlkPVwibXZNZW51SXRlbXNcIiAjbXZNZW51SXRlbXM+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbWVudUl0ZW1zPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckJ1dHRvbnMuc2hvd1NpZGViYXJcIlxuICAgICAgICAgICAgaWQ9XCJtdkluZGV4QnRuXCJcbiAgICAgICAgICAgIHRpdGxlPVwiSW5kZXhcIlxuICAgICAgICAgICAgZGF0YS1sMTBuLWlkPVwiaW5kZXhcIlxuICAgICAgICAgICAgI212SW5kZXhCdG5cbiAgICAgICAgICAgIGNsYXNzPVwibXYtYnV0dG9uIG12LXRvb2xiYXJfX21lbnUtYnV0dG9uLS1pbmRleFwiXG4gICAgICAgICAgICBbY2xhc3MuYnV0dG9uLWhpZGRlbi1vbi10b29sYmFyXT1cIlxuICAgICAgICAgICAgICBtdlRvb2xiYXJNYWluLm9mZnNldFdpZHRoIDwgd2lkdGhSZXF1aXJlZEZvckJ0blsnbXZJbmRleEJ0biddXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW2NsYXNzLmJ1dHRvbi1oaWRkZW4tb24tZHJvcGRvd25dPVwiXG4gICAgICAgICAgICAgIG12VG9vbGJhck1haW4ub2Zmc2V0V2lkdGggPj0gd2lkdGhSZXF1aXJlZEZvckJ0blsnbXZJbmRleEJ0biddXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc0luZGV4T3BlblwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwicmVkYWN0QWxsSW5Qcm9ncmVzc1wiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlSW5kZXhTaWRlQmFyKCk7IGlzRHJvcGRvd25NZW51T3BlbiA9IGZhbHNlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3Bhbj57eyBcIkluZGV4XCIgfCBycHhUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJCdXR0b25zLnNob3dTaWRlYmFyXCJcbiAgICAgICAgICAgIGlkPVwibXZCb29rbWFya3NCdG5cIlxuICAgICAgICAgICAgdGl0bGU9XCJCb29rbWFya3NcIlxuICAgICAgICAgICAgZGF0YS1sMTBuLWlkPVwiYm9va21hcmtzXCJcbiAgICAgICAgICAgICNtdkJvb2ttYXJrc0J0blxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAnbXYtYnV0dG9uIG12LXRvb2xiYXJfX21lbnUtYnV0dG9uLS1ib29rbWFya3MnOiB0cnVlLFxuICAgICAgICAgICAgICAnYnV0dG9uLWhpZGRlbi1vbi10b29sYmFyJzpcbiAgICAgICAgICAgICAgICBtdlRvb2xiYXJNYWluLm9mZnNldFdpZHRoIDxcbiAgICAgICAgICAgICAgICB3aWR0aFJlcXVpcmVkRm9yQnRuWydtdkJvb2ttYXJrc0J0biddLFxuICAgICAgICAgICAgICAnYnV0dG9uLWhpZGRlbi1vbi1kcm9wZG93bic6XG4gICAgICAgICAgICAgICAgbXZUb29sYmFyTWFpbi5vZmZzZXRXaWR0aCA+PVxuICAgICAgICAgICAgICAgIHdpZHRoUmVxdWlyZWRGb3JCdG5bJ212Qm9va21hcmtzQnRuJ11cbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc0Jvb2ttYXJrc09wZW5cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJlZGFjdEFsbEluUHJvZ3Jlc3NcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUJvb2ttYXJrc1NpZGVCYXIoKTsgaXNEcm9wZG93bk1lbnVPcGVuID0gZmFsc2VcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuPnt7IFwiQm9va21hcmtzXCIgfCBycHhUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJCdXR0b25zLnNob3dEcmF3QnV0dG9uXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpY3BFbmFibGVkIHx8IHJlZGFjdGlvbkVuYWJsZWRcIlxuICAgICAgICAgICAgaWQ9XCJtdkRyYXdCdG5cIlxuICAgICAgICAgICAgI212RHJhd0J0blxuICAgICAgICAgICAgY2xhc3M9XCJtdi1idXR0b24gbXYtdG9vbGJhcl9fbWVudS1idXR0b24tLWRyYXdcIlxuICAgICAgICAgICAgdGl0bGU9XCJEcmF3IGEgYm94XCJcbiAgICAgICAgICAgIFtjbGFzcy5idXR0b24taGlkZGVuLW9uLXRvb2xiYXJdPVwiXG4gICAgICAgICAgICAgIG12VG9vbGJhck1haW4ub2Zmc2V0V2lkdGggPCB3aWR0aFJlcXVpcmVkRm9yQnRuWydtdkRyYXdCdG4nXVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtjbGFzcy5idXR0b24taGlkZGVuLW9uLWRyb3Bkb3duXT1cIlxuICAgICAgICAgICAgICBtdlRvb2xiYXJNYWluLm9mZnNldFdpZHRoID49IHdpZHRoUmVxdWlyZWRGb3JCdG5bJ212RHJhd0J0biddXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW2NsYXNzLnRvZ2dsZWRdPVwidG9vbGJhckV2ZW50cy5kcmF3TW9kZVN1YmplY3QgfCBhc3luY1wiXG4gICAgICAgICAgICBhcmlhLXByZXNzZWQ9XCJmYWxzZVwiXG4gICAgICAgICAgICBkYXRhLWwxMG4taWQ9XCJ0b2dnbGVEcmF3QnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrRHJhd1RvZ2dsZSgpOyBpc0Ryb3Bkb3duTWVudU9wZW4gPSBmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gZGF0YS1sMTBuLWlkPVwiZHJhd19sYWJlbFwiPnt7XG4gICAgICAgICAgICAgIFwiRHJhdyBhIGJveFwiIHwgcnB4VHJhbnNsYXRlXG4gICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckJ1dHRvbnMuc2hvd0hpZ2hsaWdodEJ1dHRvblwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaWNwRW5hYmxlZCB8fCByZWRhY3Rpb25FbmFibGVkXCJcbiAgICAgICAgICAgIGlkPVwibXZIaWdobGlnaHRCdG5cIlxuICAgICAgICAgICAgI212SGlnaGxpZ2h0QnRuXG4gICAgICAgICAgICBjbGFzcz1cIm12LWJ1dHRvbiBtdi10b29sYmFyX19tZW51LWJ1dHRvbi0taGlnaGxpZ2h0XCJcbiAgICAgICAgICAgIHRpdGxlPVwiSGlnaGxpZ2h0XCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJIaWdobGlnaHRcIlxuICAgICAgICAgICAgW2NsYXNzLmJ1dHRvbi1oaWRkZW4tb24tdG9vbGJhcl09XCJcbiAgICAgICAgICAgICAgbXZUb29sYmFyTWFpbi5vZmZzZXRXaWR0aCA8IHdpZHRoUmVxdWlyZWRGb3JCdG5bJ212SGlnaGxpZ2h0QnRuJ11cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbY2xhc3MuYnV0dG9uLWhpZGRlbi1vbi1kcm9wZG93bl09XCJcbiAgICAgICAgICAgICAgbXZUb29sYmFyTWFpbi5vZmZzZXRXaWR0aCA+PSB3aWR0aFJlcXVpcmVkRm9yQnRuWydtdkhpZ2hsaWdodEJ0biddXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW2NsYXNzLnRvZ2dsZWRdPVwidG9vbGJhckV2ZW50cy5oaWdobGlnaHRUb29sYmFyU3ViamVjdCB8IGFzeW5jXCJcbiAgICAgICAgICAgIGFyaWEtcHJlc3NlZD1cImZhbHNlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrSGlnaGxpZ2h0VG9nZ2xlKCk7IGlzRHJvcGRvd25NZW51T3BlbiA9IGZhbHNlXCJcbiAgICAgICAgICAgIGRhdGEtbDEwbi1pZD1cInRvZ2dsZUhpZ2hsaWdodEJ1dHRvblwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gZGF0YS1sMTBuLWlkPVwiaGlnaGxpZ2h0X2xhYmVsXCI+e3tcbiAgICAgICAgICAgICAgXCJIaWdobGlnaHRcIiB8IHJweFRyYW5zbGF0ZVxuICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidG9vbGJhckJ1dHRvbnMuc2hvd05hdmlnYXRpb25cIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgaWQ9XCJtdlBhZ2VCdG5cIlxuICAgICAgICAgICAgICAjbXZQYWdlQnRuXG4gICAgICAgICAgICAgIGNsYXNzPVwibXYtdG9vbGJhcl9fbWVudS1idXR0b24tLXBhZ2VcIlxuICAgICAgICAgICAgICBbY2xhc3MuYnV0dG9uLWhpZGRlbi1vbi10b29sYmFyXT1cIlxuICAgICAgICAgICAgICAgIG12VG9vbGJhck1haW4ub2Zmc2V0V2lkdGggPCB3aWR0aFJlcXVpcmVkRm9yQnRuWydtdlBhZ2VCdG4nXVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbY2xhc3MuYnV0dG9uLWhpZGRlbi1vbi1kcm9wZG93bl09XCJcbiAgICAgICAgICAgICAgICBtdlRvb2xiYXJNYWluLm9mZnNldFdpZHRoID49IHdpZHRoUmVxdWlyZWRGb3JCdG5bJ212UGFnZUJ0biddXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IFwiUGFnZVwiIHwgcnB4VHJhbnNsYXRlIH19PC9zcGFuPlxuXG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBpZD1cIm12VXBCdG5cIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwYWdlTnVtYmVyID09PSAxIHx8IHJlZGFjdEFsbEluUHJvZ3Jlc3NcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwiUHJldmlvdXMgUGFnZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtdi10b29sYmFyX19tZW51LWJ1dHRvbi0tdXAgYnV0dG9uLWltYWdlXCJcbiAgICAgICAgICAgICAgICBkYXRhLWwxMG4taWQ9XCJwcmV2aW91c1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlY3JlYXNlUGFnZU51bWJlcigpXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicmVkYWN0QWxsSW5Qcm9ncmVzc1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgaWQ9XCJtdkRvd25CdG5cIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwYWdlTnVtYmVyID09PSBwYWdlQ291bnQgfHwgcmVkYWN0QWxsSW5Qcm9ncmVzc1wiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJOZXh0IFBhZ2VcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibXYtdG9vbGJhcl9fbWVudS1idXR0b24tLWRvd24gYnV0dG9uLWltYWdlXCJcbiAgICAgICAgICAgICAgICBkYXRhLWwxMG4taWQ9XCJuZXh0XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW5jcmVhc2VQYWdlTnVtYmVyKClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgICAgICBpZD1cInBhZ2VOdW1iZXJcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaG1jdHMtdG9vbGJhci1pbnB1dCBnb3Z1ay1pbnB1dC0td2lkdGgtMlwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJQYWdlIE51bWJlclwiXG4gICAgICAgICAgICAgICAgdmFsdWU9XCIxXCJcbiAgICAgICAgICAgICAgICBzaXplPVwiNFwiXG4gICAgICAgICAgICAgICAgbWluPVwiMVwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cInBhZ2VOdW1iZXJcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJwYWdlIG51bWJlclwiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICBkYXRhLWwxMG4taWQ9XCJwYWdlXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uUGFnZU51bWJlcklucHV0Q2hhbmdlKHBhZ2VOdW1iZXJJbnB1dC52YWx1ZSlcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWRhY3RBbGxJblByb2dyZXNzXCJcbiAgICAgICAgICAgICAgICAjcGFnZU51bWJlcklucHV0XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxzcGFuIGlkPVwibnVtUGFnZXNcIiBjbGFzcz1cInRvb2xiYXJMYWJlbFwiPi8ge3sgcGFnZUNvdW50IH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidG9vbGJhckJ1dHRvbnMuc2hvd1pvb21cIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgaWQ9XCJtdlpvb21CdG5cIlxuICAgICAgICAgICAgICAjbXZab29tQnRuXG4gICAgICAgICAgICAgIGNsYXNzPVwibXYtdG9vbGJhcl9fbWVudS1idXR0b24tLXpvb21cIlxuICAgICAgICAgICAgICBhcmlhLXByZXNzZWQ9XCJmYWxzZVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5idXR0b24taGlkZGVuLW9uLXRvb2xiYXJdPVwiXG4gICAgICAgICAgICAgICAgbXZUb29sYmFyTWFpbi5vZmZzZXRXaWR0aCA8IHdpZHRoUmVxdWlyZWRGb3JCdG5bJ212Wm9vbUJ0biddXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIFtjbGFzcy5idXR0b24taGlkZGVuLW9uLWRyb3Bkb3duXT1cIlxuICAgICAgICAgICAgICAgIG12VG9vbGJhck1haW4ub2Zmc2V0V2lkdGggPj0gd2lkdGhSZXF1aXJlZEZvckJ0blsnbXZab29tQnRuJ11cbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgICAgICAgICAgIHRvb2xiYXJFdmVudHMuem9vbVZhbHVlU3ViamVjdC52YWx1ZSA9PT0gMC4xIHx8XG4gICAgICAgICAgICAgICAgICByZWRhY3RBbGxJblByb2dyZXNzXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBpZD1cIm12TWludXNCdG5cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibXYtdG9vbGJhcl9fbWVudS1idXR0b24tLXpvb20tb3V0IGJ1dHRvbi1pbWFnZVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJab29tIE91dFwiXG4gICAgICAgICAgICAgICAgZGF0YS1sMTBuLWlkPVwiem9vbV9vdXRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzdGVwWm9vbSgtMC4xKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm12LXRvb2xiYXJfX21lbnUtYnV0dG9uLS16b29tLW91dC10ZXh0XCI+e3tcbiAgICAgICAgICAgICAgICAgIFwiWm9vbSBPdXRcIiB8IHJweFRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgIGlkPVwic2NhbGVTZWxlY3RcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaG1jdHMtdG9vbGJhci1zZWxlY3RcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwiWm9vbVwiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICBkYXRhLWwxMG4taWQ9XCJ6b29tXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInpvb20oJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJ6b29tXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicmVkYWN0QWxsSW5Qcm9ncmVzc1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8b3B0aW9uXG4gICAgICAgICAgICAgICAgICAjem9vbVNlbGVjdFxuICAgICAgICAgICAgICAgICAgaWQ9XCJjdXN0b21TY2FsZU9wdGlvblwiXG4gICAgICAgICAgICAgICAgICB0aXRsZT1cIlwiXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidG9vbGJhckV2ZW50cy56b29tVmFsdWVTdWJqZWN0LnZhbHVlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICB0b29sYmFyRXZlbnRzLnpvb21WYWx1ZVN1YmplY3QudmFsdWUgKiAxMDBcbiAgICAgICAgICAgICAgICAgICAgICB8IG51bWJlciA6IFwiMS4wLTBcIlxuICAgICAgICAgICAgICAgICAgfX0lXG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHpvb21TY2FsZSBvZiB6b29tU2NhbGVzXCJcbiAgICAgICAgICAgICAgICAgIHRpdGxlPVwiXCJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ6b29tU2NhbGVcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1sMTBuLWlkXT1cIidwYWdlX3NjYWxlX3BlcmNlbnRfJyArIHpvb21TY2FsZSAqIDEwMFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgem9vbVNjYWxlICogMTAwIH19JVxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICA8L3NlbGVjdD5cblxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICAgICAgICAgICAgdG9vbGJhckV2ZW50cy56b29tVmFsdWVTdWJqZWN0LnZhbHVlID09PSA1IHx8XG4gICAgICAgICAgICAgICAgICByZWRhY3RBbGxJblByb2dyZXNzXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBpZD1cIm12UGx1c0J0blwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtdi10b29sYmFyX19tZW51LWJ1dHRvbi0tem9vbS1pbiBidXR0b24taW1hZ2VcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzdGVwWm9vbSgwLjEpXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIlpvb20gSW5cIlxuICAgICAgICAgICAgICAgIGRhdGEtbDEwbi1pZD1cInpvb21faW5cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtdi10b29sYmFyX19tZW51LWJ1dHRvbi0tem9vbS1vdXQtdGV4dFwiPnt7XG4gICAgICAgICAgICAgICAgICBcIlpvb20gSW5cIiB8IHJweFRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQnV0dG9ucy5zaG93Um90YXRlXCJcbiAgICAgICAgICAgIGlkPVwibXZSb3RhdGVCdG5cIlxuICAgICAgICAgICAgI212Um90YXRlQnRuXG4gICAgICAgICAgICBjbGFzcz1cIm12LXRvb2xiYXJfX21lbnUtYnV0dG9uLS1yb3RhdGVcIlxuICAgICAgICAgICAgW2NsYXNzLmJ1dHRvbi1oaWRkZW4tb24tdG9vbGJhcl09XCJcbiAgICAgICAgICAgICAgbXZUb29sYmFyTWFpbi5vZmZzZXRXaWR0aCA8IHdpZHRoUmVxdWlyZWRGb3JCdG5bJ212Um90YXRlQnRuJ11cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbY2xhc3MuYnV0dG9uLWhpZGRlbi1vbi1kcm9wZG93bl09XCJcbiAgICAgICAgICAgICAgbXZUb29sYmFyTWFpbi5vZmZzZXRXaWR0aCA+PSB3aWR0aFJlcXVpcmVkRm9yQnRuWydtdlJvdGF0ZUJ0biddXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgaWQ9XCJtdlJvdGF0ZUxlZnRCdG5cIlxuICAgICAgICAgICAgICBjbGFzcz1cIm12LXRvb2xiYXJfX21lbnUtYnV0dG9uLS1yb3RhdGVfbGVmdCBidXR0b24taW1hZ2VcIlxuICAgICAgICAgICAgICB0aXRsZT1cIlJvdGF0ZSBDb3VudGVyY2xvY2t3aXNlXCJcbiAgICAgICAgICAgICAgZGF0YS1sMTBuLWlkPVwicGFnZV9yb3RhdGVfY2N3XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJvdGF0ZSgyNzApXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJlZGFjdEFsbEluUHJvZ3Jlc3NcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgaWQ9XCJtdlJvdGF0ZVJpZ2h0QnRuXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtdi10b29sYmFyX19tZW51LWJ1dHRvbi0tcm90YXRlX3JpZ2h0IGJ1dHRvbi1pbWFnZVwiXG4gICAgICAgICAgICAgIHRpdGxlPVwiUm90YXRlIENsb2Nrd2lzZVwiXG4gICAgICAgICAgICAgIGRhdGEtbDEwbi1pZD1cInBhZ2Vfcm90YXRlX2N3XCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJvdGF0ZSg5MClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicmVkYWN0QWxsSW5Qcm9ncmVzc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPHNwYW4+e3sgXCJSb3RhdGVcIiB8IHJweFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckJ1dHRvbnMuc2hvd1NlYXJjaEJhclwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaWNwRW5hYmxlZCB8fCByZWRhY3RBbGxJblByb2dyZXNzXCJcbiAgICAgICAgICAgIGlkPVwibXZTZWFyY2hCdG5cIlxuICAgICAgICAgICAgI212U2VhcmNoQnRuXG4gICAgICAgICAgICB0aXRsZT1cIlNlYXJjaFwiXG4gICAgICAgICAgICBkYXRhLWwxMG4taWQ9XCJzZWFyY2hiYXJcIlxuICAgICAgICAgICAgY2xhc3M9XCJtdi1idXR0b24gbXYtdG9vbGJhcl9fbWVudS1idXR0b24tLXNlYXJjaFwiXG4gICAgICAgICAgICBbY2xhc3MuYnV0dG9uLWhpZGRlbi1vbi10b29sYmFyXT1cIlxuICAgICAgICAgICAgICBtdlRvb2xiYXJNYWluLm9mZnNldFdpZHRoIDwgd2lkdGhSZXF1aXJlZEZvckJ0blsnbXZTZWFyY2hCdG4nXVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtjbGFzcy5idXR0b24taGlkZGVuLW9uLWRyb3Bkb3duXT1cIlxuICAgICAgICAgICAgICBtdlRvb2xiYXJNYWluLm9mZnNldFdpZHRoID49IHdpZHRoUmVxdWlyZWRGb3JCdG5bJ212U2VhcmNoQnRuJ11cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBhcmlhLXByZXNzZWQ9XCJmYWxzZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlU2VhcmNoQmFyKCk7IGlzRHJvcGRvd25NZW51T3BlbiA9IGZhbHNlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3Bhbj57eyBcIlNlYXJjaFwiIHwgcnB4VHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxtdi1zZWFyY2gtYmFyXG4gICAgICAgICAgICAqbmdJZj1cIiF0b29sYmFyRXZlbnRzLnNlYXJjaEJhckhpZGRlbi5nZXRWYWx1ZSgpXCJcbiAgICAgICAgICA+PC9tdi1zZWFyY2gtYmFyPlxuXG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJlbmFibGVJQ1AgJiYgdG9vbGJhckJ1dHRvbnMuc2hvd1ByZXNlbnRhdGlvbk1vZGUgJiYgaXNQZGYoKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaWNwRW5hYmxlZCB8fCAhY29udGVudFR5cGUgfHwgcmVkYWN0aW9uRW5hYmxlZFwiXG4gICAgICAgICAgICBpZD1cIm12UHJlc2VudEJ0blwiXG4gICAgICAgICAgICAjbXZQcmVzZW50QnRuXG4gICAgICAgICAgICBjbGFzcz1cIm12LWJ1dHRvbiBtdi10b29sYmFyX19tZW51LWJ1dHRvbi0tcHJlc2VudFwiXG4gICAgICAgICAgICB0aXRsZT1cIkluLUNvdXJ0IFByZXNlbnRhdGlvbiBNb2RlXCJcbiAgICAgICAgICAgIGRhdGEtbDEwbi1pZD1cImljcE1vZGVfbGFiZWxcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwib25Ub29sQmFyT2ZmU2V0Q2hhbmdlKCdtdlByZXNlbnRCdG4nKVwiXG4gICAgICAgICAgICBhcmlhLXByZXNzZWQ9XCJmYWxzZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUHJlc2VudEJhcigpOyBpc0Ryb3Bkb3duTWVudU9wZW4gPSBmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gZGF0YS1sMTBuLWlkPVwiaWNwTW9kZV9sYWJlbFwiPnt7XG4gICAgICAgICAgICAgIFwiUHJlc2VudFwiIHwgcnB4VHJhbnNsYXRlXG4gICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiZW5hYmxlUmVkYWN0aW9ucyAmJiB0b29sYmFyQnV0dG9ucy5zaG93UmVkYWN0XCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpY3BFbmFibGVkIHx8IHJlZGFjdEFsbEluUHJvZ3Jlc3NcIlxuICAgICAgICAgICAgaWQ9XCJtdlJlZGFjdEJ0blwiXG4gICAgICAgICAgICAjbXZSZWRhY3RCdG5cbiAgICAgICAgICAgIHRpdGxlPVwiUmVkYWN0XCJcbiAgICAgICAgICAgIGRhdGEtbDEwbi1pZD1cInJlZGFjdFwiXG4gICAgICAgICAgICBjbGFzcz1cIm12LWJ1dHRvbiBtdi10b29sYmFyX19tZW51LWJ1dHRvbi0tcmVkYWN0XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm9uVG9vbEJhck9mZlNldENoYW5nZSgnbXZSZWRhY3RCdG4nKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzUmVkYWN0T3BlblwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUmVkYWN0QmFyKCk7IGlzRHJvcGRvd25NZW51T3BlbiA9IGZhbHNlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3Bhbj57eyBcIlJlZGFjdFwiIHwgcnB4VHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQnV0dG9ucy5zaG93R3JhYk5EcmFnQnV0dG9uXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpY3BFbmFibGVkIHx8IHJlZGFjdEFsbEluUHJvZ3Jlc3NcIlxuICAgICAgICAgICAgaWQ9XCJtdkdyYWJCdG5cIlxuICAgICAgICAgICAgI212R3JhYkJ0blxuICAgICAgICAgICAgY2xhc3M9XCJtdi1idXR0b24gbXYtdG9vbGJhcl9fbWVudS1idXR0b24tLWdyYWJcIlxuICAgICAgICAgICAgdGl0bGU9XCJHcmFiIGFuZCBkcmFnXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm9uVG9vbEJhck9mZlNldENoYW5nZSgnbXZHcmFiQnRuJylcIlxuICAgICAgICAgICAgYXJpYS1wcmVzc2VkPVwiZmFsc2VcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUdyYWJORHJhZygpOyBpc0Ryb3Bkb3duTWVudU9wZW4gPSBmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4+e3sgXCJHcmFiIGFuZCBkcmFnXCIgfCBycHhUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJCdXR0b25zLnNob3dEb3dubG9hZFwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaWNwRW5hYmxlZCB8fCByZWRhY3Rpb25FbmFibGVkXCJcbiAgICAgICAgICAgIGlkPVwibXZEb3dubG9hZEJ0blwiXG4gICAgICAgICAgICAjbXZEb3dubG9hZEJ0blxuICAgICAgICAgICAgY2xhc3M9XCJtdi1idXR0b24gbXYtdG9vbGJhcl9fbWVudS1idXR0b24tLWRvd25sb2FkXCJcbiAgICAgICAgICAgIHRpdGxlPVwiRG93bmxvYWRcIlxuICAgICAgICAgICAgZGF0YS1sMTBuLWlkPVwiZG93bmxvYWRcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwib25Ub29sQmFyT2ZmU2V0Q2hhbmdlKCdtdkRvd25sb2FkQnRuJylcIlxuICAgICAgICAgICAgYXJpYS1wcmVzc2VkPVwiZmFsc2VcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImRvd25sb2FkRmlsZSgpOyBpc0Ryb3Bkb3duTWVudU9wZW4gPSBmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4+e3sgXCJEb3dubG9hZFwiIHwgcnB4VHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQnV0dG9ucy5zaG93UHJpbnRcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImljcEVuYWJsZWQgfHwgcmVkYWN0aW9uRW5hYmxlZFwiXG4gICAgICAgICAgICBpZD1cIm12UHJpbnRCdG5cIlxuICAgICAgICAgICAgI212UHJpbnRCdG5cbiAgICAgICAgICAgIHRpdGxlPVwiUHJpbnRcIlxuICAgICAgICAgICAgZGF0YS1sMTBuLWlkPVwicHJpbnRcIlxuICAgICAgICAgICAgY2xhc3M9XCJtdi1idXR0b24gbXYtdG9vbGJhcl9fbWVudS1idXR0b24tLXByaW50XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm9uVG9vbEJhck9mZlNldENoYW5nZSgnbXZQcmludEJ0bicpXCJcbiAgICAgICAgICAgIGFyaWEtcHJlc3NlZD1cImZhbHNlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJwcmludEZpbGUoKTsgaXNEcm9wZG93bk1lbnVPcGVuID0gZmFsc2VcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuPnt7IFwiUHJpbnRcIiB8IHJweFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiZW5hYmxlQW5ub3RhdGlvbnMgJiYgdG9vbGJhckJ1dHRvbnMuc2hvd0NvbW1lbnRTdW1tYXJ5XCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWRhY3Rpb25FbmFibGVkXCJcbiAgICAgICAgICAgIGlkPVwibXZDb21tZW50c0J0blwiXG4gICAgICAgICAgICAjbXZDb21tZW50c0J0blxuICAgICAgICAgICAgY2xhc3M9XCJtdi1idXR0b24gbXYtdG9vbGJhcl9fbWVudS1idXR0b24tLWNvbW1lbnRzXCJcbiAgICAgICAgICAgIHRpdGxlPVwiQ29tbWVudHNcIlxuICAgICAgICAgICAgZGF0YS1sMTBuLWlkPVwiY29tbWVudHNcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwib25Ub29sQmFyT2ZmU2V0Q2hhbmdlKCdtdkNvbW1lbnRzQnRuJylcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc0NvbW1lbnRzT3BlblwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ29tbWVudHNQYW5lbCgpOyBpc0Ryb3Bkb3duTWVudU9wZW4gPSBmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4+e3sgXCJDb21tZW50c1wiIHwgcnB4VHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGlkPVwibG9hZGluZ0JhclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnbGltbWVyXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL3Rvb2xiYXIvbWFpbi10b29sYmFyL21haW4tdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi90b29sYmFyL21haW4tdG9vbGJhci9tYWluLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUdMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQU12QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7Ozs7Ozs7Ozs7QUFNdEYsTUFBTSxPQUFPLG9CQUFvQjtJQTRDL0IsWUFDa0IsYUFBa0MsRUFDbEMsY0FBOEMsRUFDN0MsR0FBc0IsRUFDdEIsWUFBaUMsRUFDakMsZUFBZ0M7UUFKakMsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2xDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQztRQUM3QyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBL0MxQyxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFNWCxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFFN0MsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFJekIsZUFBVSxHQUFH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MUIsY0FBYztzQkFGcEIsWUFBWTt1QkFBQyw0QkFBNEIsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ3JELFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25uZWN0aW9uUG9zaXRpb25QYWlyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uL3Rvb2xiYXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBUb29sYmFyQnV0dG9uVmlzaWJpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi90b29sYmFyLWJ1dHRvbi12aXNpYmlsaXR5LnNlcnZpY2UnO1xuaW1wb3J0IHsgTnVtYmVySGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2xpYi9zaGFyZWQvdXRpbC9zZXJ2aWNlcy9udW1iZXIuaGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWNwRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vaWNwLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgSHRtbFRlbXBsYXRlc0hlbHBlciB9IGZyb20gJy4uLy4uL3NoYXJlZC91dGlsL2hlbHBlcnMvaHRtbC10ZW1wbGF0ZXMuaGVscGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXYtbWFpbi10b29sYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21haW4tdG9vbGJhci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgTWFpblRvb2xiYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQElucHV0KCkgZW5hYmxlQW5ub3RhdGlvbnMgPSBmYWxzZTtcbiAgQElucHV0KCkgZW5hYmxlUmVkYWN0aW9ucyA9IGZhbHNlO1xuICBASW5wdXQoKSBlbmFibGVJQ1AgPSBmYWxzZTtcbiAgQElucHV0KCkgY29udGVudFR5cGUgPSBudWxsO1xuXG4gIEBWaWV3Q2hpbGQoJ3pvb21TZWxlY3QnLCB7IHN0YXRpYzogZmFsc2UgfSkgcHVibGljIHpvb21TZWxlY3Q6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ212VG9vbGJhck1haW4nLCB7IHN0YXRpYzogZmFsc2UgfSkgcHVibGljIG12VG9vbGJhck1haW46IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdkcm9wZG93bk1lbnUnLCB7IHN0YXRpYzogZmFsc2UgfSkgcHVibGljIG12TWVudUl0ZW1zOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwcml2YXRlIHJlYWRvbmx5IHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgcHVibGljIGljcEVuYWJsZWQgPSBmYWxzZTtcbiAgcHVibGljIHJlZGFjdGlvbkVuYWJsZWQgPSBmYWxzZTtcbiAgcHVibGljIHNob3dDb21tZW50c1BhbmVsOiBib29sZWFuO1xuICBwdWJsaWMgcmVkYWN0QWxsSW5Qcm9ncmVzczogYm9vbGVhbjtcblxuICBwdWJsaWMgcGFnZU51bWJlciA9IDE7XG4gIHB1YmxpYyBwYWdlQ291bnQgPSAwO1xuICBwdWJsaWMgaXNEcm9wZG93bk1lbnVPcGVuID0gZmFsc2U7XG4gIHB1YmxpYyBpc0Jvb2ttYXJrc09wZW4gPSBmYWxzZTtcbiAgcHVibGljIGlzSW5kZXhPcGVuID0gZmFsc2U7XG4gIHB1YmxpYyBpc1JlZGFjdE9wZW4gPSBmYWxzZTtcbiAgcHVibGljIGlzQ29tbWVudHNPcGVuID0gZmFsc2U7XG4gIHB1YmxpYyBkcm9wZG93bk1lbnVQb3NpdGlvbnMgPSBbXG4gICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoXG4gICAgICB7XG4gICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgICBvdmVybGF5WTogJ3RvcCdcbiAgICAgIH0sXG4gICAgICAwLFxuICAgICAgMylcbiAgXTtcblxuICBwdWJsaWMgem9vbVNjYWxlcyA9IFswLjEsIDAuMjUsIDAuNSwgMC43NSwgMSwgMS4yNSwgMS41LCAyLjUsIDMsIDVdO1xuXG4gIGFsbEJ1dHRvbnNXaWR0aCA9IDA7XG4gIHdpZHRoUmVxdWlyZWRGb3JCdG46IHsgW2lkOiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG9vbGJhckV2ZW50czogVG9vbGJhckV2ZW50U2VydmljZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG9vbGJhckJ1dHRvbnM6IFRvb2xiYXJCdXR0b25WaXNpYmlsaXR5U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBudW1iZXJIZWxwZXI6IE51bWJlckhlbHBlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpY3BFdmVudFNlcnZpY2U6IEljcEV2ZW50U2VydmljZVxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5zZXRDdXJyZW50UGFnZVN1YmplY3Quc3Vic2NyaWJlKHBhZ2VOdW1iZXIgPT4gdGhpcy5zZXRDdXJyZW50UGFnZShwYWdlTnVtYmVyKSksXG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMuc2V0Q3VycmVudFBhZ2VJbnB1dFZhbHVlU3ViamVjdC5zdWJzY3JpYmUocGFnZU51bWJlciA9PiB0aGlzLnBhZ2VOdW1iZXIgPSBwYWdlTnVtYmVyKSxcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5nZXRQYWdlQ291bnQoKS5zdWJzY3JpYmUoY291bnQgPT4gdGhpcy5wYWdlQ291bnQgPSBjb3VudCksXG4gICAgICB0aGlzLmljcEV2ZW50U2VydmljZS5lbmFibGVkLnN1YnNjcmliZShlbmFibGVkID0+IHtcbiAgICAgICAgdGhpcy5pY3BFbmFibGVkID0gZW5hYmxlZDtcbiAgICAgICAgaWYgKHRoaXMuaWNwRW5hYmxlZCkge1xuICAgICAgICAgIHRoaXMudG9vbGJhckV2ZW50cy50b2dnbGVDb21tZW50c1BhbmVsKCFlbmFibGVkKTtcbiAgICAgICAgICB0aGlzLnRvb2xiYXJFdmVudHMuc2lkZWJhck9wZW4ubmV4dChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnJlZGFjdGlvbk1vZGUuc3Vic2NyaWJlKGVuYWJsZWQgPT4ge1xuICAgICAgICB0aGlzLnJlZGFjdGlvbkVuYWJsZWQgPSBlbmFibGVkO1xuICAgICAgfSksXG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMucmVkYWN0QWxsSW5Qcm9ncmVzc1N1YmplY3Quc3Vic2NyaWJlKGRpc2FibGUgPT4ge1xuICAgICAgICB0aGlzLnJlZGFjdEFsbEluUHJvZ3Jlc3MgPSBkaXNhYmxlO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiB0aGlzLnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgQXJyYXkuZnJvbSh0aGlzLm12VG9vbGJhck1haW4ubmF0aXZlRWxlbWVudC5jaGlsZHJlbikuZm9yRWFjaCgoYnV0dG9uOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgdGhpcy5hbGxCdXR0b25zV2lkdGggKz0gSHRtbFRlbXBsYXRlc0hlbHBlci5nZXRBZGp1c3RlZEJvdW5kaW5nUmVjdChidXR0b24pLndpZHRoO1xuICAgICAgdGhpcy53aWR0aFJlcXVpcmVkRm9yQnRuW2J1dHRvbi5pZF0gPSB0aGlzLmFsbEJ1dHRvbnNXaWR0aDtcbiAgICB9KTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgW10pXG4gIHB1YmxpYyBvblJlc2l6ZSgpIHtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmNvbnRyb2wucCcsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24ubWV0YS5wJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uQ29udHJvbFByaW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnByaW50RmlsZSgpO1xuICB9XG5cbiAgcHVibGljIG9uQ2xpY2tIaWdobGlnaHRUb2dnbGUoKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnRvZ2dsZUhpZ2hsaWdodFRvb2xiYXIoKTtcbiAgfVxuICBwdWJsaWMgb25DbGlja0RyYXdUb2dnbGUoKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnRvZ2dsZURyYXdNb2RlKCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlSW5kZXhTaWRlQmFyKCkge1xuICAgIGNvbnN0IHNpZGViYXJPcGVuID0gdGhpcy50b29sYmFyRXZlbnRzLnNpZGViYXJPcGVuLmdldFZhbHVlKCk7XG4gICAgY29uc3Qgc2lkZWJhclZpZXcgPSB0aGlzLnRvb2xiYXJFdmVudHMuc2lkZWJhck91dGxpbmVWaWV3LmdldFZhbHVlKCk7XG4gICAgaWYgKCEoc2lkZWJhck9wZW4gJiYgIXNpZGViYXJWaWV3KSkge1xuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnRvZ2dsZVNpZGVCYXIoIXNpZGViYXJPcGVuKTtcbiAgICB9XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnRvZ2dsZVNpZGVCYXJWaWV3KHRydWUpO1xuICAgIHRoaXMuaXNJbmRleE9wZW4gPSAhdGhpcy5pc0luZGV4T3BlbjtcbiAgfVxuXG4gIHB1YmxpYyBvblRvb2xCYXJPZmZTZXRDaGFuZ2UoYnV0dG9uSWQ6IHN0cmluZykge1xuICAgIGlmICh0aGlzLm12VG9vbGJhck1haW4gJiYgdGhpcy5tdlRvb2xiYXJNYWluLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggPCB0aGlzLndpZHRoUmVxdWlyZWRGb3JCdG5bYnV0dG9uSWRdKSB7XG4gICAgICByZXR1cm4gXCJidXR0b24taGlkZGVuLW9uLXRvb2xiYXJcIjtcblxuICAgIH1cbiAgICByZXR1cm4gXCJidXR0b24taGlkZGVuLW9uLWRyb3Bkb3duXCI7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlQm9va21hcmtzU2lkZUJhcigpIHtcbiAgICBjb25zdCBzaWRlYmFyT3BlbiA9IHRoaXMudG9vbGJhckV2ZW50cy5zaWRlYmFyT3Blbi5nZXRWYWx1ZSgpO1xuICAgIGNvbnN0IHNpZGViYXJWaWV3ID0gdGhpcy50b29sYmFyRXZlbnRzLnNpZGViYXJPdXRsaW5lVmlldy5nZXRWYWx1ZSgpO1xuICAgIGlmICghKHNpZGViYXJPcGVuICYmIHNpZGViYXJWaWV3KSkge1xuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnRvZ2dsZVNpZGVCYXIoIXNpZGViYXJPcGVuKTtcbiAgICB9XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnRvZ2dsZVNpZGVCYXJWaWV3KGZhbHNlKTtcbiAgICB0aGlzLmlzQm9va21hcmtzT3BlbiA9ICF0aGlzLmlzQm9va21hcmtzT3BlbjtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVQcmVzZW50QmFyKCkge1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy5zZWFyY2hCYXJIaWRkZW4ubmV4dCh0cnVlKTtcbiAgICB0aGlzLmljcEV2ZW50U2VydmljZS5lbmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBpbmNyZWFzZVBhZ2VOdW1iZXIoKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLmluY3JlbWVudFBhZ2UoMSk7XG4gIH1cblxuICBwdWJsaWMgZGVjcmVhc2VQYWdlTnVtYmVyKCkge1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy5pbmNyZW1lbnRQYWdlKC0xKTtcbiAgfVxuXG4gIHB1YmxpYyBvblBhZ2VOdW1iZXJJbnB1dENoYW5nZShwYWdlTnVtYmVyOiBzdHJpbmcpIHtcbiAgICBpZiAoTnVtYmVyKHBhZ2VOdW1iZXIpIDwgMSkge1xuICAgICAgcGFnZU51bWJlciA9ICcxJztcbiAgICB9XG4gICAgaWYgKE51bWJlcihwYWdlTnVtYmVyKSA+IHRoaXMucGFnZUNvdW50KSB7XG4gICAgICBwYWdlTnVtYmVyID0gdGhpcy5wYWdlQ291bnQudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICB0aGlzLnRvb2xiYXJFdmVudHMuc2V0UGFnZShOdW1iZXIucGFyc2VJbnQocGFnZU51bWJlciwgMTApKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q3VycmVudFBhZ2UocGFnZU51bWJlcjogbnVtYmVyKSB7XG4gICAgdGhpcy5wYWdlTnVtYmVyID0gcGFnZU51bWJlcjtcbiAgfVxuXG4gIHB1YmxpYyByb3RhdGUocm90YXRpb246IG51bWJlcikge1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy5yb3RhdGUocm90YXRpb24pO1xuICB9XG5cbiAgcHVibGljIHByaW50RmlsZSgpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMucHJpbnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBkb3dubG9hZEZpbGUoKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLmRvd25sb2FkKCk7XG4gIH1cblxuICBwdWJsaWMgem9vbSh6b29tRmFjdG9yOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMuem9vbSgrem9vbUZhY3Rvcik7XG4gIH1cblxuICBwdWJsaWMgc3RlcFpvb20oem9vbUZhY3RvcjogbnVtYmVyKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnN0ZXBab29tKHpvb21GYWN0b3IpO1xuICAgIHRoaXMuem9vbVNlbGVjdC5uYXRpdmVFbGVtZW50LnNlbGVjdGVkID0gJ3NlbGVjdGVkJztcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVDb21tZW50c1BhbmVsKCkge1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy50b2dnbGVDb21tZW50c1BhbmVsKCF0aGlzLnRvb2xiYXJFdmVudHMuY29tbWVudHNQYW5lbFZpc2libGUuZ2V0VmFsdWUoKSk7XG4gICAgdGhpcy5pc0NvbW1lbnRzT3BlbiA9ICF0aGlzLmlzQ29tbWVudHNPcGVuO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVJlZGFjdEJhcigpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMudG9nZ2xlUmVkYWN0aW9uTW9kZSgpO1xuICAgIHRoaXMuaXNSZWRhY3RPcGVuID0gIXRoaXMuaXNSZWRhY3RPcGVuO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZUdyYWJORHJhZygpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMudG9nZ2xlR3JhYk5EcmFnKCk7XG4gIH1cblxuICBwdWJsaWMgaXNQZGYoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudFR5cGUgPT09ICdwZGYnO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVNlYXJjaEJhcigpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMuc2VhcmNoQmFySGlkZGVuLm5leHQoIXRoaXMudG9vbGJhckV2ZW50cy5zZWFyY2hCYXJIaWRkZW4uZ2V0VmFsdWUoKSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlTW9yZU9wdGlvbnMoKSB7XG4gICAgdGhpcy5pc0Ryb3Bkb3duTWVudU9wZW4gPSAhdGhpcy5pc0Ryb3Bkb3duTWVudU9wZW47XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5tdk1lbnVJdGVtcykge1xuICAgICAgICB0aGlzLm12TWVudUl0ZW1zLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LCAxMDApO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidG9vbGJhclwiPlxuICA8ZGl2IGlkPVwidG9vbGJhckNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJtdi10b29sYmFyX19jb250YWluZXJcIj5cbiAgICAgIDxkaXYgI212VG9vbGJhciBjbGFzcz1cIm12LXRvb2xiYXJcIiBbY2xhc3Mubm90U3VwcG9ydGVkXT1cIiFjb250ZW50VHlwZVwiPlxuICAgICAgICA8IS0tIFRoZSBtdlRvb2xiYXJNYWluIGRpdiBjb250YWlucyBhbGwgdG9vbGJhciBidXR0b25zIGV4Y2VwdCB0aGUgXCJNb3JlIG9wdGlvbnNcIiBidXR0b24uIFRoaXMgYWxsb3dzIGZvciBjYWxjdWxhdGlvbiBvZiB0aGUgYXZhaWxhYmxlIHNwYWNlIHRvIGRpc3BsYXkgYnV0dG9ucyAtLT5cbiAgICAgICAgPGRpdiBpZD1cIm12VG9vbGJhck1haW5cIiBjbGFzcz1cIm12LXRvb2xiYXItbWFpblwiICNtdlRvb2xiYXJNYWluPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtZW51SXRlbXNcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0gVGhlIG12VG9vbGJhck1vcmVPcHRpb25zIGRpdiBjb250YWlucyB0aGUgXCJNb3JlIG9wdGlvbnNcIiB0b29sYmFyIGJ1dHRvbiAoYW5kIHRoZSBvdmVybGF5IHRlbXBsYXRlIGZvciB0aGUgZHJvcGRvd24gbWVudSkuXG4gICAgICAgICAgICBUaGUgc3BhY2Ugb2NjdXBpZWQgYnkgdGhlIGJ1dHRvbiAoaWYgdmlzaWJsZSkgaXMgZXhjbHVkZWQgZnJvbSB0aGUgdG9vbGJhciBzcGFjZSBhdmFpbGFibGUgY2FsY3VsYXRpb24gLS0+XG4gICAgICAgIDxkaXYgaWQ9XCJtdlRvb2xiYXJNb3JlT3B0aW9uc1wiIGNsYXNzPVwibXYtdG9vbGJhci1tb3JlLW9wdGlvbnNcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBpZD1cIm12TW9yZU9wdGlvbnNCdG5cIlxuICAgICAgICAgICAgY2xhc3M9XCJtdi1idXR0b24gbXYtdG9vbGJhcl9fbWVudS1idXR0b24tLW1vcmUtb3B0aW9uc1wiXG4gICAgICAgICAgICBbY2xhc3MubXYtdG9vbGJhcl9fbWVudS1idXR0b24tLW1vcmUtb3B0aW9uc19faGlkZGVuXT1cIlxuICAgICAgICAgICAgICBtdlRvb2xiYXIub2Zmc2V0V2lkdGggPj0gYWxsQnV0dG9uc1dpZHRoXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc0Ryb3Bkb3duTWVudU9wZW5cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU1vcmVPcHRpb25zKClcIlxuICAgICAgICAgICAgY2RrT3ZlcmxheU9yaWdpblxuICAgICAgICAgICAgI3RyaWdnZXI9XCJjZGtPdmVybGF5T3JpZ2luXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWRhY3RBbGxJblByb2dyZXNzXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3Bhbj57eyBcIk1vcmUgb3B0aW9uc1wiIHwgcnB4VHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwhLS0gVGhpcyB0ZW1wbGF0ZSBkaXNwbGF5cyB0aGUgb3ZlcmxheSBjb250ZW50IGZvciB0aGUgZHJvcGRvd24gbWVudSBhbmQgaXMgY29ubmVjdGVkIHRvIHRoZSBcIk1vcmUgb3B0aW9uc1wiIGJ1dHRvbiAtLT5cbiAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIGNka0Nvbm5lY3RlZE92ZXJsYXlcbiAgICAgICAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luXT1cInRyaWdnZXJcIlxuICAgICAgICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cImlzRHJvcGRvd25NZW51T3BlblwiXG4gICAgICAgICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uc109XCJkcm9wZG93bk1lbnVQb3NpdGlvbnNcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgI2Ryb3Bkb3duTWVudSB0YWJpbmRleD1cIjBcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1lbnVJdGVtc1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBpZD1cIm12TWVudUl0ZW1zXCIgI212TWVudUl0ZW1zPlxuICAgICAgICA8bmctdGVtcGxhdGUgI21lbnVJdGVtcz5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJCdXR0b25zLnNob3dTaWRlYmFyXCJcbiAgICAgICAgICAgIGlkPVwibXZJbmRleEJ0blwiXG4gICAgICAgICAgICB0aXRsZT1cIkluZGV4XCJcbiAgICAgICAgICAgIGRhdGEtbDEwbi1pZD1cImluZGV4XCJcbiAgICAgICAgICAgICNtdkluZGV4QnRuXG4gICAgICAgICAgICBjbGFzcz1cIm12LWJ1dHRvbiBtdi10b29sYmFyX19tZW51LWJ1dHRvbi0taW5kZXhcIlxuICAgICAgICAgICAgW2NsYXNzLmJ1dHRvbi1oaWRkZW4tb24tdG9vbGJhcl09XCJcbiAgICAgICAgICAgICAgbXZUb29sYmFyTWFpbi5vZmZzZXRXaWR0aCA8IHdpZHRoUmVxdWlyZWRGb3JCdG5bJ212SW5kZXhCdG4nXVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtjbGFzcy5idXR0b24taGlkZGVuLW9uLWRyb3Bkb3duXT1cIlxuICAgICAgICAgICAgICBtdlRvb2xiYXJNYWluLm9mZnNldFdpZHRoID49IHdpZHRoUmVxdWlyZWRGb3JCdG5bJ212SW5kZXhCdG4nXVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNJbmRleE9wZW5cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJlZGFjdEFsbEluUHJvZ3Jlc3NcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUluZGV4U2lkZUJhcigpOyBpc0Ryb3Bkb3duTWVudU9wZW4gPSBmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4+e3sgXCJJbmRleFwiIHwgcnB4VHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQnV0dG9ucy5zaG93U2lkZWJhclwiXG4gICAgICAgICAgICBpZD1cIm12Qm9va21hcmtzQnRuXCJcbiAgICAgICAgICAgIHRpdGxlPVwiQm9va21hcmtzXCJcbiAgICAgICAgICAgIGRhdGEtbDEwbi1pZD1cImJvb2ttYXJrc1wiXG4gICAgICAgICAgICAjbXZCb29rbWFya3NCdG5cbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ212LWJ1dHRvbiBtdi10b29sYmFyX19tZW51LWJ1dHRvbi0tYm9va21hcmtzJzogdHJ1ZSxcbiAgICAgICAgICAgICAgJ2J1dHRvbi1oaWRkZW4tb24tdG9vbGJhcic6XG4gICAgICAgICAgICAgICAgbXZUb29sYmFyTWFpbi5vZmZzZXRXaWR0aCA8XG4gICAgICAgICAgICAgICAgd2lkdGhSZXF1aXJlZEZvckJ0blsnbXZCb29rbWFya3NCdG4nXSxcbiAgICAgICAgICAgICAgJ2J1dHRvbi1oaWRkZW4tb24tZHJvcGRvd24nOlxuICAgICAgICAgICAgICAgIG12VG9vbGJhck1haW4ub2Zmc2V0V2lkdGggPj1cbiAgICAgICAgICAgICAgICB3aWR0aFJlcXVpcmVkRm9yQnRuWydtdkJvb2ttYXJrc0J0biddXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNCb29rbWFya3NPcGVuXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWRhY3RBbGxJblByb2dyZXNzXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVCb29rbWFya3NTaWRlQmFyKCk7IGlzRHJvcGRvd25NZW51T3BlbiA9IGZhbHNlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3Bhbj57eyBcIkJvb2ttYXJrc1wiIHwgcnB4VHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQnV0dG9ucy5zaG93RHJhd0J1dHRvblwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaWNwRW5hYmxlZCB8fCByZWRhY3Rpb25FbmFibGVkXCJcbiAgICAgICAgICAgIGlkPVwibXZEcmF3QnRuXCJcbiAgICAgICAgICAgICNtdkRyYXdCdG5cbiAgICAgICAgICAgIGNsYXNzPVwibXYtYnV0dG9uIG12LXRvb2xiYXJfX21lbnUtYnV0dG9uLS1kcmF3XCJcbiAgICAgICAgICAgIHRpdGxlPVwiRHJhdyBhIGJveFwiXG4gICAgICAgICAgICBbY2xhc3MuYnV0dG9uLWhpZGRlbi1vbi10b29sYmFyXT1cIlxuICAgICAgICAgICAgICBtdlRvb2xiYXJNYWluLm9mZnNldFdpZHRoIDwgd2lkdGhSZXF1aXJlZEZvckJ0blsnbXZEcmF3QnRuJ11cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbY2xhc3MuYnV0dG9uLWhpZGRlbi1vbi1kcm9wZG93bl09XCJcbiAgICAgICAgICAgICAgbXZUb29sYmFyTWFpbi5vZmZzZXRXaWR0aCA+PSB3aWR0aFJlcXVpcmVkRm9yQnRuWydtdkRyYXdCdG4nXVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtjbGFzcy50b2dnbGVkXT1cInRvb2xiYXJFdmVudHMuZHJhd01vZGVTdWJqZWN0IHwgYXN5bmNcIlxuICAgICAgICAgICAgYXJpYS1wcmVzc2VkPVwiZmFsc2VcIlxuICAgICAgICAgICAgZGF0YS1sMTBuLWlkPVwidG9nZ2xlRHJhd0J1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25DbGlja0RyYXdUb2dnbGUoKTsgaXNEcm9wZG93bk1lbnVPcGVuID0gZmFsc2VcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGRhdGEtbDEwbi1pZD1cImRyYXdfbGFiZWxcIj57e1xuICAgICAgICAgICAgICBcIkRyYXcgYSBib3hcIiB8IHJweFRyYW5zbGF0ZVxuICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJCdXR0b25zLnNob3dIaWdobGlnaHRCdXR0b25cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImljcEVuYWJsZWQgfHwgcmVkYWN0aW9uRW5hYmxlZFwiXG4gICAgICAgICAgICBpZD1cIm12SGlnaGxpZ2h0QnRuXCJcbiAgICAgICAgICAgICNtdkhpZ2hsaWdodEJ0blxuICAgICAgICAgICAgY2xhc3M9XCJtdi1idXR0b24gbXYtdG9vbGJhcl9fbWVudS1idXR0b24tLWhpZ2hsaWdodFwiXG4gICAgICAgICAgICB0aXRsZT1cIkhpZ2hsaWdodFwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiSGlnaGxpZ2h0XCJcbiAgICAgICAgICAgIFtjbGFzcy5idXR0b24taGlkZGVuLW9uLXRvb2xiYXJdPVwiXG4gICAgICAgICAgICAgIG12VG9vbGJhck1haW4ub2Zmc2V0V2lkdGggPCB3aWR0aFJlcXVpcmVkRm9yQnRuWydtdkhpZ2hsaWdodEJ0biddXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW2NsYXNzLmJ1dHRvbi1oaWRkZW4tb24tZHJvcGRvd25dPVwiXG4gICAgICAgICAgICAgIG12VG9vbGJhck1haW4ub2Zmc2V0V2lkdGggPj0gd2lkdGhSZXF1aXJlZEZvckJ0blsnbXZIaWdobGlnaHRCdG4nXVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtjbGFzcy50b2dnbGVkXT1cInRvb2xiYXJFdmVudHMuaGlnaGxpZ2h0VG9vbGJhclN1YmplY3QgfCBhc3luY1wiXG4gICAgICAgICAgICBhcmlhLXByZXNzZWQ9XCJmYWxzZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25DbGlja0hpZ2hsaWdodFRvZ2dsZSgpOyBpc0Ryb3Bkb3duTWVudU9wZW4gPSBmYWxzZVwiXG4gICAgICAgICAgICBkYXRhLWwxMG4taWQ9XCJ0b2dnbGVIaWdobGlnaHRCdXR0b25cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGRhdGEtbDEwbi1pZD1cImhpZ2hsaWdodF9sYWJlbFwiPnt7XG4gICAgICAgICAgICAgIFwiSGlnaGxpZ2h0XCIgfCBycHhUcmFuc2xhdGVcbiAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRvb2xiYXJCdXR0b25zLnNob3dOYXZpZ2F0aW9uXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGlkPVwibXZQYWdlQnRuXCJcbiAgICAgICAgICAgICAgI212UGFnZUJ0blxuICAgICAgICAgICAgICBjbGFzcz1cIm12LXRvb2xiYXJfX21lbnUtYnV0dG9uLS1wYWdlXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmJ1dHRvbi1oaWRkZW4tb24tdG9vbGJhcl09XCJcbiAgICAgICAgICAgICAgICBtdlRvb2xiYXJNYWluLm9mZnNldFdpZHRoIDwgd2lkdGhSZXF1aXJlZEZvckJ0blsnbXZQYWdlQnRuJ11cbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmJ1dHRvbi1oaWRkZW4tb24tZHJvcGRvd25dPVwiXG4gICAgICAgICAgICAgICAgbXZUb29sYmFyTWFpbi5vZmZzZXRXaWR0aCA+PSB3aWR0aFJlcXVpcmVkRm9yQnRuWydtdlBhZ2VCdG4nXVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBcIlBhZ2VcIiB8IHJweFRyYW5zbGF0ZSB9fTwvc3Bhbj5cblxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgaWQ9XCJtdlVwQnRuXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicGFnZU51bWJlciA9PT0gMSB8fCByZWRhY3RBbGxJblByb2dyZXNzXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIlByZXZpb3VzIFBhZ2VcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibXYtdG9vbGJhcl9fbWVudS1idXR0b24tLXVwIGJ1dHRvbi1pbWFnZVwiXG4gICAgICAgICAgICAgICAgZGF0YS1sMTBuLWlkPVwicHJldmlvdXNcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWNyZWFzZVBhZ2VOdW1iZXIoKVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJlZGFjdEFsbEluUHJvZ3Jlc3NcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGlkPVwibXZEb3duQnRuXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicGFnZU51bWJlciA9PT0gcGFnZUNvdW50IHx8IHJlZGFjdEFsbEluUHJvZ3Jlc3NcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwiTmV4dCBQYWdlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm12LXRvb2xiYXJfX21lbnUtYnV0dG9uLS1kb3duIGJ1dHRvbi1pbWFnZVwiXG4gICAgICAgICAgICAgICAgZGF0YS1sMTBuLWlkPVwibmV4dFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImluY3JlYXNlUGFnZU51bWJlcigpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgaWQ9XCJwYWdlTnVtYmVyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImhtY3RzLXRvb2xiYXItaW5wdXQgZ292dWstaW5wdXQtLXdpZHRoLTJcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwiUGFnZSBOdW1iZXJcIlxuICAgICAgICAgICAgICAgIHZhbHVlPVwiMVwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cIjRcIlxuICAgICAgICAgICAgICAgIG1pbj1cIjFcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJwYWdlTnVtYmVyXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwicGFnZSBudW1iZXJcIlxuICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgZGF0YS1sMTBuLWlkPVwicGFnZVwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvblBhZ2VOdW1iZXJJbnB1dENoYW5nZShwYWdlTnVtYmVySW5wdXQudmFsdWUpXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicmVkYWN0QWxsSW5Qcm9ncmVzc1wiXG4gICAgICAgICAgICAgICAgI3BhZ2VOdW1iZXJJbnB1dFxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8c3BhbiBpZD1cIm51bVBhZ2VzXCIgY2xhc3M9XCJ0b29sYmFyTGFiZWxcIj4vIHt7IHBhZ2VDb3VudCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRvb2xiYXJCdXR0b25zLnNob3dab29tXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGlkPVwibXZab29tQnRuXCJcbiAgICAgICAgICAgICAgI212Wm9vbUJ0blxuICAgICAgICAgICAgICBjbGFzcz1cIm12LXRvb2xiYXJfX21lbnUtYnV0dG9uLS16b29tXCJcbiAgICAgICAgICAgICAgYXJpYS1wcmVzc2VkPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBbY2xhc3MuYnV0dG9uLWhpZGRlbi1vbi10b29sYmFyXT1cIlxuICAgICAgICAgICAgICAgIG12VG9vbGJhck1haW4ub2Zmc2V0V2lkdGggPCB3aWR0aFJlcXVpcmVkRm9yQnRuWydtdlpvb21CdG4nXVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbY2xhc3MuYnV0dG9uLWhpZGRlbi1vbi1kcm9wZG93bl09XCJcbiAgICAgICAgICAgICAgICBtdlRvb2xiYXJNYWluLm9mZnNldFdpZHRoID49IHdpZHRoUmVxdWlyZWRGb3JCdG5bJ212Wm9vbUJ0biddXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiXG4gICAgICAgICAgICAgICAgICB0b29sYmFyRXZlbnRzLnpvb21WYWx1ZVN1YmplY3QudmFsdWUgPT09IDAuMSB8fFxuICAgICAgICAgICAgICAgICAgcmVkYWN0QWxsSW5Qcm9ncmVzc1xuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgaWQ9XCJtdk1pbnVzQnRuXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm12LXRvb2xiYXJfX21lbnUtYnV0dG9uLS16b29tLW91dCBidXR0b24taW1hZ2VcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwiWm9vbSBPdXRcIlxuICAgICAgICAgICAgICAgIGRhdGEtbDEwbi1pZD1cInpvb21fb3V0XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic3RlcFpvb20oLTAuMSlcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtdi10b29sYmFyX19tZW51LWJ1dHRvbi0tem9vbS1vdXQtdGV4dFwiPnt7XG4gICAgICAgICAgICAgICAgICBcIlpvb20gT3V0XCIgfCBycHhUcmFuc2xhdGVcbiAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxzZWxlY3RcbiAgICAgICAgICAgICAgICBpZD1cInNjYWxlU2VsZWN0XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImhtY3RzLXRvb2xiYXItc2VsZWN0XCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIlpvb21cIlxuICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgZGF0YS1sMTBuLWlkPVwiem9vbVwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ6b29tKCRldmVudC50YXJnZXQudmFsdWUpXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiem9vbVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJlZGFjdEFsbEluUHJvZ3Jlc3NcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG9wdGlvblxuICAgICAgICAgICAgICAgICAgI3pvb21TZWxlY3RcbiAgICAgICAgICAgICAgICAgIGlkPVwiY3VzdG9tU2NhbGVPcHRpb25cIlxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJcIlxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInRvb2xiYXJFdmVudHMuem9vbVZhbHVlU3ViamVjdC52YWx1ZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgdG9vbGJhckV2ZW50cy56b29tVmFsdWVTdWJqZWN0LnZhbHVlICogMTAwXG4gICAgICAgICAgICAgICAgICAgICAgfCBudW1iZXIgOiBcIjEuMC0wXCJcbiAgICAgICAgICAgICAgICAgIH19JVxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDxvcHRpb25cbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB6b29tU2NhbGUgb2Ygem9vbVNjYWxlc1wiXG4gICAgICAgICAgICAgICAgICB0aXRsZT1cIlwiXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiem9vbVNjYWxlXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtbDEwbi1pZF09XCIncGFnZV9zY2FsZV9wZXJjZW50XycgKyB6b29tU2NhbGUgKiAxMDBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IHpvb21TY2FsZSAqIDEwMCB9fSVcbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XG5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgICAgICAgICAgIHRvb2xiYXJFdmVudHMuem9vbVZhbHVlU3ViamVjdC52YWx1ZSA9PT0gNSB8fFxuICAgICAgICAgICAgICAgICAgcmVkYWN0QWxsSW5Qcm9ncmVzc1xuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgaWQ9XCJtdlBsdXNCdG5cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibXYtdG9vbGJhcl9fbWVudS1idXR0b24tLXpvb20taW4gYnV0dG9uLWltYWdlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic3RlcFpvb20oMC4xKVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJab29tIEluXCJcbiAgICAgICAgICAgICAgICBkYXRhLWwxMG4taWQ9XCJ6b29tX2luXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXYtdG9vbGJhcl9fbWVudS1idXR0b24tLXpvb20tb3V0LXRleHRcIj57e1xuICAgICAgICAgICAgICAgICAgXCJab29tIEluXCIgfCBycHhUcmFuc2xhdGVcbiAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckJ1dHRvbnMuc2hvd1JvdGF0ZVwiXG4gICAgICAgICAgICBpZD1cIm12Um90YXRlQnRuXCJcbiAgICAgICAgICAgICNtdlJvdGF0ZUJ0blxuICAgICAgICAgICAgY2xhc3M9XCJtdi10b29sYmFyX19tZW51LWJ1dHRvbi0tcm90YXRlXCJcbiAgICAgICAgICAgIFtjbGFzcy5idXR0b24taGlkZGVuLW9uLXRvb2xiYXJdPVwiXG4gICAgICAgICAgICAgIG12VG9vbGJhck1haW4ub2Zmc2V0V2lkdGggPCB3aWR0aFJlcXVpcmVkRm9yQnRuWydtdlJvdGF0ZUJ0biddXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW2NsYXNzLmJ1dHRvbi1oaWRkZW4tb24tZHJvcGRvd25dPVwiXG4gICAgICAgICAgICAgIG12VG9vbGJhck1haW4ub2Zmc2V0V2lkdGggPj0gd2lkdGhSZXF1aXJlZEZvckJ0blsnbXZSb3RhdGVCdG4nXVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGlkPVwibXZSb3RhdGVMZWZ0QnRuXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtdi10b29sYmFyX19tZW51LWJ1dHRvbi0tcm90YXRlX2xlZnQgYnV0dG9uLWltYWdlXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJSb3RhdGUgQ291bnRlcmNsb2Nrd2lzZVwiXG4gICAgICAgICAgICAgIGRhdGEtbDEwbi1pZD1cInBhZ2Vfcm90YXRlX2Njd1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJyb3RhdGUoMjcwKVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWRhY3RBbGxJblByb2dyZXNzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4+PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGlkPVwibXZSb3RhdGVSaWdodEJ0blwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibXYtdG9vbGJhcl9fbWVudS1idXR0b24tLXJvdGF0ZV9yaWdodCBidXR0b24taW1hZ2VcIlxuICAgICAgICAgICAgICB0aXRsZT1cIlJvdGF0ZSBDbG9ja3dpc2VcIlxuICAgICAgICAgICAgICBkYXRhLWwxMG4taWQ9XCJwYWdlX3JvdGF0ZV9jd1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJyb3RhdGUoOTApXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJlZGFjdEFsbEluUHJvZ3Jlc3NcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxzcGFuPnt7IFwiUm90YXRlXCIgfCBycHhUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJCdXR0b25zLnNob3dTZWFyY2hCYXJcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImljcEVuYWJsZWQgfHwgcmVkYWN0QWxsSW5Qcm9ncmVzc1wiXG4gICAgICAgICAgICBpZD1cIm12U2VhcmNoQnRuXCJcbiAgICAgICAgICAgICNtdlNlYXJjaEJ0blxuICAgICAgICAgICAgdGl0bGU9XCJTZWFyY2hcIlxuICAgICAgICAgICAgZGF0YS1sMTBuLWlkPVwic2VhcmNoYmFyXCJcbiAgICAgICAgICAgIGNsYXNzPVwibXYtYnV0dG9uIG12LXRvb2xiYXJfX21lbnUtYnV0dG9uLS1zZWFyY2hcIlxuICAgICAgICAgICAgW2NsYXNzLmJ1dHRvbi1oaWRkZW4tb24tdG9vbGJhcl09XCJcbiAgICAgICAgICAgICAgbXZUb29sYmFyTWFpbi5vZmZzZXRXaWR0aCA8IHdpZHRoUmVxdWlyZWRGb3JCdG5bJ212U2VhcmNoQnRuJ11cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbY2xhc3MuYnV0dG9uLWhpZGRlbi1vbi1kcm9wZG93bl09XCJcbiAgICAgICAgICAgICAgbXZUb29sYmFyTWFpbi5vZmZzZXRXaWR0aCA+PSB3aWR0aFJlcXVpcmVkRm9yQnRuWydtdlNlYXJjaEJ0biddXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgYXJpYS1wcmVzc2VkPVwiZmFsc2VcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVNlYXJjaEJhcigpOyBpc0Ryb3Bkb3duTWVudU9wZW4gPSBmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4+e3sgXCJTZWFyY2hcIiB8IHJweFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8bXYtc2VhcmNoLWJhclxuICAgICAgICAgICAgKm5nSWY9XCIhdG9vbGJhckV2ZW50cy5zZWFyY2hCYXJIaWRkZW4uZ2V0VmFsdWUoKVwiXG4gICAgICAgICAgPjwvbXYtc2VhcmNoLWJhcj5cblxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiZW5hYmxlSUNQICYmIHRvb2xiYXJCdXR0b25zLnNob3dQcmVzZW50YXRpb25Nb2RlICYmIGlzUGRmKClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImljcEVuYWJsZWQgfHwgIWNvbnRlbnRUeXBlIHx8IHJlZGFjdGlvbkVuYWJsZWRcIlxuICAgICAgICAgICAgaWQ9XCJtdlByZXNlbnRCdG5cIlxuICAgICAgICAgICAgI212UHJlc2VudEJ0blxuICAgICAgICAgICAgY2xhc3M9XCJtdi1idXR0b24gbXYtdG9vbGJhcl9fbWVudS1idXR0b24tLXByZXNlbnRcIlxuICAgICAgICAgICAgdGl0bGU9XCJJbi1Db3VydCBQcmVzZW50YXRpb24gTW9kZVwiXG4gICAgICAgICAgICBkYXRhLWwxMG4taWQ9XCJpY3BNb2RlX2xhYmVsXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm9uVG9vbEJhck9mZlNldENoYW5nZSgnbXZQcmVzZW50QnRuJylcIlxuICAgICAgICAgICAgYXJpYS1wcmVzc2VkPVwiZmFsc2VcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVByZXNlbnRCYXIoKTsgaXNEcm9wZG93bk1lbnVPcGVuID0gZmFsc2VcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGRhdGEtbDEwbi1pZD1cImljcE1vZGVfbGFiZWxcIj57e1xuICAgICAgICAgICAgICBcIlByZXNlbnRcIiB8IHJweFRyYW5zbGF0ZVxuICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cImVuYWJsZVJlZGFjdGlvbnMgJiYgdG9vbGJhckJ1dHRvbnMuc2hvd1JlZGFjdFwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaWNwRW5hYmxlZCB8fCByZWRhY3RBbGxJblByb2dyZXNzXCJcbiAgICAgICAgICAgIGlkPVwibXZSZWRhY3RCdG5cIlxuICAgICAgICAgICAgI212UmVkYWN0QnRuXG4gICAgICAgICAgICB0aXRsZT1cIlJlZGFjdFwiXG4gICAgICAgICAgICBkYXRhLWwxMG4taWQ9XCJyZWRhY3RcIlxuICAgICAgICAgICAgY2xhc3M9XCJtdi1idXR0b24gbXYtdG9vbGJhcl9fbWVudS1idXR0b24tLXJlZGFjdFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJvblRvb2xCYXJPZmZTZXRDaGFuZ2UoJ212UmVkYWN0QnRuJylcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc1JlZGFjdE9wZW5cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVJlZGFjdEJhcigpOyBpc0Ryb3Bkb3duTWVudU9wZW4gPSBmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4+e3sgXCJSZWRhY3RcIiB8IHJweFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckJ1dHRvbnMuc2hvd0dyYWJORHJhZ0J1dHRvblwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaWNwRW5hYmxlZCB8fCByZWRhY3RBbGxJblByb2dyZXNzXCJcbiAgICAgICAgICAgIGlkPVwibXZHcmFiQnRuXCJcbiAgICAgICAgICAgICNtdkdyYWJCdG5cbiAgICAgICAgICAgIGNsYXNzPVwibXYtYnV0dG9uIG12LXRvb2xiYXJfX21lbnUtYnV0dG9uLS1ncmFiXCJcbiAgICAgICAgICAgIHRpdGxlPVwiR3JhYiBhbmQgZHJhZ1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJvblRvb2xCYXJPZmZTZXRDaGFuZ2UoJ212R3JhYkJ0bicpXCJcbiAgICAgICAgICAgIGFyaWEtcHJlc3NlZD1cImZhbHNlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVHcmFiTkRyYWcoKTsgaXNEcm9wZG93bk1lbnVPcGVuID0gZmFsc2VcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuPnt7IFwiR3JhYiBhbmQgZHJhZ1wiIHwgcnB4VHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQnV0dG9ucy5zaG93RG93bmxvYWRcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImljcEVuYWJsZWQgfHwgcmVkYWN0aW9uRW5hYmxlZFwiXG4gICAgICAgICAgICBpZD1cIm12RG93bmxvYWRCdG5cIlxuICAgICAgICAgICAgI212RG93bmxvYWRCdG5cbiAgICAgICAgICAgIGNsYXNzPVwibXYtYnV0dG9uIG12LXRvb2xiYXJfX21lbnUtYnV0dG9uLS1kb3dubG9hZFwiXG4gICAgICAgICAgICB0aXRsZT1cIkRvd25sb2FkXCJcbiAgICAgICAgICAgIGRhdGEtbDEwbi1pZD1cImRvd25sb2FkXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm9uVG9vbEJhck9mZlNldENoYW5nZSgnbXZEb3dubG9hZEJ0bicpXCJcbiAgICAgICAgICAgIGFyaWEtcHJlc3NlZD1cImZhbHNlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJkb3dubG9hZEZpbGUoKTsgaXNEcm9wZG93bk1lbnVPcGVuID0gZmFsc2VcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuPnt7IFwiRG93bmxvYWRcIiB8IHJweFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckJ1dHRvbnMuc2hvd1ByaW50XCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpY3BFbmFibGVkIHx8IHJlZGFjdGlvbkVuYWJsZWRcIlxuICAgICAgICAgICAgaWQ9XCJtdlByaW50QnRuXCJcbiAgICAgICAgICAgICNtdlByaW50QnRuXG4gICAgICAgICAgICB0aXRsZT1cIlByaW50XCJcbiAgICAgICAgICAgIGRhdGEtbDEwbi1pZD1cInByaW50XCJcbiAgICAgICAgICAgIGNsYXNzPVwibXYtYnV0dG9uIG12LXRvb2xiYXJfX21lbnUtYnV0dG9uLS1wcmludFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJvblRvb2xCYXJPZmZTZXRDaGFuZ2UoJ212UHJpbnRCdG4nKVwiXG4gICAgICAgICAgICBhcmlhLXByZXNzZWQ9XCJmYWxzZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwicHJpbnRGaWxlKCk7IGlzRHJvcGRvd25NZW51T3BlbiA9IGZhbHNlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3Bhbj57eyBcIlByaW50XCIgfCBycHhUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cImVuYWJsZUFubm90YXRpb25zICYmIHRvb2xiYXJCdXR0b25zLnNob3dDb21tZW50U3VtbWFyeVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwicmVkYWN0aW9uRW5hYmxlZFwiXG4gICAgICAgICAgICBpZD1cIm12Q29tbWVudHNCdG5cIlxuICAgICAgICAgICAgI212Q29tbWVudHNCdG5cbiAgICAgICAgICAgIGNsYXNzPVwibXYtYnV0dG9uIG12LXRvb2xiYXJfX21lbnUtYnV0dG9uLS1jb21tZW50c1wiXG4gICAgICAgICAgICB0aXRsZT1cIkNvbW1lbnRzXCJcbiAgICAgICAgICAgIGRhdGEtbDEwbi1pZD1cImNvbW1lbnRzXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm9uVG9vbEJhck9mZlNldENoYW5nZSgnbXZDb21tZW50c0J0bicpXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiaXNDb21tZW50c09wZW5cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNvbW1lbnRzUGFuZWwoKTsgaXNEcm9wZG93bk1lbnVPcGVuID0gZmFsc2VcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuPnt7IFwiQ29tbWVudHNcIiB8IHJweFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBpZD1cImxvYWRpbmdCYXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ2xpbW1lclwiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -5,6 +5,7 @@ import * as fromDocument from '../../store/selectors/document.selectors';
|
|
|
5
5
|
import * as fromRedactionActions from '../../store/actions/redaction.actions';
|
|
6
6
|
import { v4 as uuid } from 'uuid';
|
|
7
7
|
import { some } from 'lodash';
|
|
8
|
+
import { HtmlTemplatesHelper } from '../../shared/util/helpers/html-templates.helper';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
import * as i1 from "@ngrx/store";
|
|
10
11
|
import * as i2 from "../toolbar-button-visibility.service";
|
|
@@ -197,7 +198,7 @@ export class RedactionSearchBarComponent {
|
|
|
197
198
|
const range = selection.getRangeAt(0).cloneRange();
|
|
198
199
|
const clientRects = range.getClientRects();
|
|
199
200
|
if (clientRects) {
|
|
200
|
-
const parentRect = selectedHighLightedElements[0]
|
|
201
|
+
const parentRect = HtmlTemplatesHelper.getAdjustedBoundingRect(selectedHighLightedElements[0]?.parentElement?.parentElement);
|
|
201
202
|
const selectionRectangles = [];
|
|
202
203
|
for (let i = 0; i < clientRects.length; i++) {
|
|
203
204
|
const selectionRectangle = this.createTextRectangle(clientRects[i], parentRect);
|
|
@@ -233,4 +234,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
233
234
|
type: HostListener,
|
|
234
235
|
args: ['window:keydown', ['$event']]
|
|
235
236
|
}] } });
|
|
236
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkYWN0aW9uLXNlYXJjaC1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvdG9vbGJhci9yZWRhY3Rpb24tc2VhcmNoLWJhci9yZWRhY3Rpb24tc2VhcmNoLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi90b29sYmFyL3JlZGFjdGlvbi1zZWFyY2gtYmFyL3JlZGFjdGlvbi1zZWFyY2gtYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBa0MsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFeEYsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUlsRyxPQUFPLEVBQVMsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzVDLE9BQU8sS0FBSyxZQUFZLE1BQU0sMENBQTBDLENBQUM7QUFDekUsT0FBTyxLQUFLLG9CQUFvQixNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWxDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7Ozs7Ozs7OztBQU85QixNQUFNLE9BQU8sMkJBQTJCO0lBOEJ0QyxZQUNVLEtBQTZCLEVBQ3JCLGNBQThDLEVBQzlDLGFBQWtDLEVBQ2xDLGdCQUF3QztRQUhoRCxVQUFLLEdBQUwsS0FBSyxDQUF3QjtRQUNyQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0M7UUFDOUMsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2xDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBd0I7UUE5QjFELGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxLQUFL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Q29udGVudCI6WyJpbXBvcnQgeyBCdWxrUmVkYWN0aW9uLCBSZWRhY3Rpb24gfSBmcm9tICcuLy4uLy4uL3JlZGFjdGlvbi9zZXJ2aWNlcy9yZWRhY3Rpb24ubW9kZWwnO1xuaW1wb3J0IHsgU2VhcmNoTW9kZSwgU2VhcmNoUmVzdWx0c0NvdW50LCBTZWFyY2hUeXBlIH0gZnJvbSAnLi8uLi90b29sYmFyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVkYWN0aW9uU2VhcmNoLCBSZWRhY3RSZWN0YW5nbGUgfSBmcm9tICcuL3JlZGFjdGlvbi1zZWFyY2gubW9kZWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9vbGJhckJ1dHRvblZpc2liaWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vdG9vbGJhci1idXR0b24tdmlzaWJpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IFRvb2xiYXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi90b29sYmFyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RvcmUsIHNlbGVjdCB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCAqIGFzIGZyb21TdG9yZSBmcm9tICcuLi8uLi9zdG9yZS9yZWR1Y2Vycy9yZWR1Y2Vycyc7XG5pbXBvcnQgeyBSZWN0YW5nbGUgfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9ucy9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLXZpZXcvcmVjdGFuZ2xlL3JlY3RhbmdsZS5tb2RlbCc7XG5pbXBvcnQgKiBhcyBmcm9tRG9jdW1lbnQgZnJvbSAnLi4vLi4vc3RvcmUvc2VsZWN0b3JzL2RvY3VtZW50LnNlbGVjdG9ycyc7XG5pbXBvcnQgKiBhcyBmcm9tUmVkYWN0aW9uQWN0aW9ucyBmcm9tICcuLi8uLi9zdG9yZS9hY3Rpb25zL3JlZGFjdGlvbi5hY3Rpb25zJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IEhpZ2hsaWdodENyZWF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9ucy9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLWNyZWF0ZS9oaWdobGlnaHQtY3JlYXRlL2hpZ2hsaWdodC1jcmVhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBzb21lIH0gZnJvbSAnbG9kYXNoJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXYtcmVkYWN0aW9uLXNlYXJjaC1iYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVkYWN0aW9uLXNlYXJjaC1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWRhY3Rpb24tc2VhcmNoLWJhci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJlZGFjdGlvblNlYXJjaEJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBAVmlld0NoaWxkKCdmaW5kSW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBmaW5kSW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgaGlnaGxpZ2h0QWxsID0gdHJ1ZTtcbiAgbWF0Y2hDYXNlID0gZmFsc2U7XG4gIHdob2xlV29yZCA9IGZhbHNlO1xuICByZXN1bHRzVGV4dCA9ICcnO1xuICBzZWFyY2hUZXh0ID0gJyc7XG4gIHJlc3VsdENvdW50ID0gMDtcbiAgcmVkYWN0RWxlbWVudHM6IFJlZGFjdFJlY3RhbmdsZVtdID0gW107XG4gIHBhZ2VIZWlnaHQ6IG51bWJlcjtcbiAgcGFnZVdpZHRoOiBudW1iZXI7XG4gIHpvb206IG51bWJlcjtcbiAgcm90YXRlOiBudW1iZXI7XG4gIGFsbFBhZ2VzOiBvYmplY3Q7XG4gIHJlZGFjdEFsbDogYm9vbGVhbjtcbiAgb3BlblNlYXJjaE1vZGFsOiBib29sZWFuO1xuICByZWRhY3RBbGxJblByb2dyZXNzOiBib29sZWFuO1xuICByZWRhY3RBbGxUZXh0Pzogc3RyaW5nO1xuICBzZWFyY2hUeXBlOiBTZWFyY2hUeXBlO1xuICBpblByb2dyZXNzVGV4dDogc3RyaW5nO1xuICB0aXRsZVRleHQ6IHN0cmluZztcblxuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgZG9jdW1lbnRJZDogc3RyaW5nO1xuICBwdWJsaWMgYWR2YW5jZWRTZWFyY2hWaXNpYmxlID0gZmFsc2U7XG5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxmcm9tU3RvcmUuU3RhdGU+LFxuICAgIHB1YmxpYyByZWFkb25seSB0b29sYmFyQnV0dG9uczogVG9vbGJhckJ1dHRvblZpc2liaWxpdHlTZXJ2aWNlLFxuICAgIHB1YmxpYyByZWFkb25seSB0b29sYmFyRXZlbnRzOiBUb29sYmFyRXZlbnRTZXJ2aWNlLFxuICAgIHB1YmxpYyByZWFkb25seSBoaWdobGlnaHRTZXJ2aWNlOiBIaWdobGlnaHRDcmVhdGVTZXJ2aWNlLFxuICApIHsgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMudG9vbGJhckV2ZW50cy5yZWRhY3Rpb25TZXJhY2hTdWJqZWN0LnN1YnNjcmliZSgocmVzdWx0czogUmVkYWN0aW9uU2VhcmNoKSA9PiB0aGlzLnJlZGFjdEFsbFNlYXJjaGVkKHJlc3VsdHMpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQodGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tRG9jdW1lbnQuZ2V0RG9jdW1lbnRJZCkpLnN1YnNjcmliZShkb2NJZCA9PiB0aGlzLmRvY3VtZW50SWQgPSBkb2NJZCkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZCh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21Eb2N1bWVudC5nZXRQYWdlcykpLnN1YnNjcmliZSgocGFnZXMpID0+IHtcbiAgICAgIGlmIChwYWdlc1sxXSkge1xuICAgICAgICB0aGlzLmFsbFBhZ2VzID0gcGFnZXM7XG4gICAgICB9XG4gICAgfSkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5zZWFyY2hSZXN1bHRzQ291bnRTdWJqZWN0LnN1YnNjcmliZShyZXN1bHRzID0+IHRoaXMuc2V0U2VhcmNoUmVzdWx0c0NvdW50KHJlc3VsdHMpKVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKHRoaXMudG9vbGJhckV2ZW50cy5vcGVuUmVkYWN0aW9uU2VhcmNoLnN1YnNjcmliZSgoc2VhcmNoTW9kZTogU2VhcmNoTW9kZSkgPT4ge1xuICAgICAgaWYgKHNlYXJjaE1vZGUpIHtcbiAgICAgICAgdGhpcy5vcGVuU2VhcmNoTW9kYWwgPSBzZWFyY2hNb2RlLmlzT3BlbjtcbiAgICAgICAgdGhpcy5zZWFyY2hUeXBlID0gc2VhcmNoTW9kZS5tb2RlVHlwZTtcbiAgICAgICAgdGhpcy5tb2RlVGV4dCgpO1xuICAgICAgfVxuICAgIH0pKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQodGhpcy50b29sYmFyRXZlbnRzLnJlZGFjdEFsbEluUHJvZ3Jlc3NTdWJqZWN0XG4gICAgICAuc3Vic2NyaWJlKGluUHJvZ3Jlc3MgPT4gdGhpcy5yZWRhY3RBbGxJblByb2dyZXNzID0gaW5Qcm9ncmVzcykpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uV2luZG93S2V5RG93bihlOiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGUuY29kZSA9PT0gJ0YzJyB8fCAoZS5jdHJsS2V5ICYmIGUuY29kZSA9PT0gJ0tleUYnKSkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnNlYXJjaEJhckhpZGRlbi5uZXh0KGZhbHNlKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5maW5kSW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpLCAyMDApO1xuICAgIH1cbiAgfVxuXG4gIHNlYXJjaChyZXNldDogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICB0aGlzLnJlZGFjdEFsbCA9ICFyZXNldDtcbiAgICBpZiAodGhpcy5yZWRhY3RBbGwpIHtcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5yZWRhY3RBbGxJblByb2dyZXNzU3ViamVjdC5uZXh0KHRydWUpO1xuICAgIH1cbiAgICBpZiAocmVzZXQpIHtcbiAgICAgIHRoaXMucmVkYWN0RWxlbWVudHMgPSBbXTtcbiAgICB9XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnNlYXJjaCh7XG4gICAgICBzZWFyY2hUZXJtOiB0aGlzLnNlYXJjaFRleHQsXG4gICAgICBoaWdobGlnaHRBbGw6IHRoaXMuaGlnaGxpZ2h0QWxsLFxuICAgICAgbWF0Y2hDYXNlOiB0aGlzLm1hdGNoQ2FzZSxcbiAgICAgIHdob2xlV29yZDogdGhpcy53aG9sZVdvcmQsXG4gICAgICBwcmV2aW91czogZmFsc2UsXG4gICAgICByZXNldFxuICAgIH0pO1xuICB9XG5cbiAgbW9kZVRleHQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VhcmNoVHlwZSA9PT0gU2VhcmNoVHlwZS5IaWdobGlnaHQpIHtcbiAgICAgIHRoaXMuaW5Qcm9ncmVzc1RleHQgPSAnSGlnaGxpZ2h0aW5nJztcbiAgICAgIHRoaXMudGl0bGVUZXh0ID0gJ0hpZ2hsaWdodCc7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNlYXJjaFR5cGUgPT09IFNlYXJjaFR5cGUuUmVkYWN0KSB7XG4gICAgICB0aGlzLmluUHJvZ3Jlc3NUZXh0ID0gJ1JlZGFjdGluZyc7XG4gICAgICB0aGlzLnRpdGxlVGV4dCA9ICdSZWRhY3QnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2F2ZVJlZGFjdGlvbihyZWRhY3RSZWN0YW5nbGU6IFJlZGFjdFJlY3RhbmdsZVtdKSB7XG4gICAgY29uc3QgcmVkYWN0aW9uID0gcmVkYWN0UmVjdGFuZ2xlLm1hcChlbGUgPT4ge1xuICAgICAgcmV0dXJuIHsgcGFnZTogZWxlLnBhZ2UsIHJlY3RhbmdsZXM6IGVsZS5yZWN0YW5nbGVzLCByZWRhY3Rpb25JZDogdXVpZCgpLCBkb2N1bWVudElkOiB0aGlzLmRvY3VtZW50SWQgfSBhcyBSZWRhY3Rpb247XG4gICAgfSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgZnJvbVJlZGFjdGlvbkFjdGlvbnMuU2F2ZUJ1bGtSZWRhY3Rpb24oeyBzZWFyY2hSZWRhY3Rpb25zOiByZWRhY3Rpb24gfSBhcyBCdWxrUmVkYWN0aW9uKSk7XG4gIH1cblxuICBwcml2YXRlIGV4aXN0SW5SZWRhY3RFbGVtZW50cyhwYWdlTnVtYmVyOiBudW1iZXIsIG1hdGVjaGVkSW5kZXg6IG51bWJlciwgcmVjdGFuZ2xlczogUmVjdGFuZ2xlW10pOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5yZWRhY3RFbGVtZW50cyAmJiB0aGlzLnJlZGFjdEVsZW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHBhZ2VzRm91bmQgPSB0aGlzLnJlZGFjdEVsZW1lbnRzLmZpbmQocmUgPT4gcmUucGFnZSA9PT0gcGFnZU51bWJlciAmJiByZS5tYXRjaGVkSW5kZXggPT09IG1hdGVjaGVkSW5kZXgpO1xuICAgICAgY29uc3QgcGFnZVJlY3RhbmdsZXMgPSBwYWdlc0ZvdW5kPy5yZWN0YW5nbGVzO1xuICAgICAgaWYgKCFwYWdlUmVjdGFuZ2xlcyB8fCBwYWdlUmVjdGFuZ2xlcy5sZW5ndGggPD0gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBsZXQgbWF0Y2hlc1JlY3RhbmdsZXMgPSAwO1xuICAgICAgZm9yIChsZXQgcmVjdEluZHggPSAwOyByZWN0SW5keCA8IHBhZ2VSZWN0YW5nbGVzLmxlbmd0aDsgcmVjdEluZHgrKykge1xuICAgICAgICBjb25zdCByZWN0YW5nbGUgPSBwYWdlUmVjdGFuZ2xlc1tyZWN0SW5keF07XG4gICAgICAgIGNvbnN0IGZvdW5kUmVjdGFuZ2xlID0gcmVjdGFuZ2xlcy5maW5kKHJlID0+IHJlLndpZHRoID09PSByZWN0YW5nbGUud2lkdGggJiZcbiAgICAgICAgICByZS5oZWlnaHQgPT09IHJlY3RhbmdsZS5oZWlnaHQgJiYgcmUueCA9PT0gcmVjdGFuZ2xlLnggJiYgcmUueSA9PT0gcmVjdGFuZ2xlLnkpO1xuICAgICAgICBpZiAoZm91bmRSZWN0YW5nbGUpIHtcbiAgICAgICAgICBtYXRjaGVzUmVjdGFuZ2xlcysrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcGFnZVJlY3RhbmdsZXMubGVuZ3RoID09PSBtYXRjaGVzUmVjdGFuZ2xlcztcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgb25DbG9zZVNlYXJjaE1vZGFsKCkge1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy5vcGVuUmVkYWN0aW9uU2VhcmNoLm5leHQoeyBpc09wZW46IGZhbHNlLCBtb2RlVHlwZTogdGhpcy5zZWFyY2hUeXBlIH0pO1xuICB9XG5cblxuICBwcml2YXRlIHNldFNlYXJjaFJlc3VsdHNDb3VudChyZXN1bHRzOiBTZWFyY2hSZXN1bHRzQ291bnQpOiB2b2lkIHtcbiAgICB0aGlzLnJlc3VsdENvdW50ID0gcmVzdWx0cy50b3RhbDtcbiAgICB0aGlzLnJlc3VsdHNUZXh0ID0gdGhpcy5yZXN1bHRDb3VudCA+IDBcbiAgICAgID8gYCR7cmVzdWx0cy50b3RhbH0gcmVzdWx0cyBmb3VuZHNgXG4gICAgICA6ICdObyByZXN1bHRzIGZvdW5kJztcbiAgfVxuXG4gIHByaXZhdGUgcmVkYWN0QWxsU2VhcmNoZWQocmVzdWx0czogUmVkYWN0aW9uU2VhcmNoKTogdm9pZCB7XG4gICAgY29uc3QgJHRoaXMgPSB0aGlzO1xuICAgIGNvbnN0IGludGVydmFsSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBjb25zdCBoaWdobGlnaHRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnaGlnaGxpZ2h0IHNlbGVjdGVkJyk7XG4gICAgICBpZiAoaGlnaGxpZ2h0RWxlbWVudCAmJiBoaWdobGlnaHRFbGVtZW50Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbElkKTtcbiAgICAgICAgJHRoaXMucmVkYWN0QWxsU2VhcmNoZWRUaWNrKHJlc3VsdHMpO1xuICAgICAgfVxuICAgIH0sIDEwMCk7XG4gIH1cblxuXG4gIHByaXZhdGUgcmVkYWN0QWxsU2VhcmNoZWRUaWNrKHJlc3VsdHM6IFJlZGFjdGlvblNlYXJjaCk6IHZvaWQge1xuICAgIGNvbnN0IGhpZ2hsaWdodEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdoaWdobGlnaHQgc2VsZWN0ZWQnKTtcbiAgICBpZiAoaGlnaGxpZ2h0RWxlbWVudCAmJiBoaWdobGlnaHRFbGVtZW50Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMucmVzdWx0Q291bnQgPSByZXN1bHRzLm1hdGNoZXNDb3VudDtcbiAgICAgIGNvbnN0IHBhZ2VOdW1iZXIgPSByZXN1bHRzLnBhZ2UgKyAxO1xuICAgICAgY29uc3QgcmVjdGFuZ2xlcyA9IHRoaXMuZ2V0UmVjdGFuZ2xlcyhwYWdlTnVtYmVyKTtcbiAgICAgIGlmIChyZWN0YW5nbGVzICYmIHRoaXMucmVkYWN0RWxlbWVudHMubGVuZ3RoIDw9IHRoaXMucmVzdWx0Q291bnRcbiAgICAgICAgJiYgIXRoaXMuZXhpc3RJblJlZGFjdEVsZW1lbnRzKHBhZ2VOdW1iZXIsIHJlc3VsdHMubWF0Y2hlZEluZGV4LCByZWN0YW5nbGVzKSkge1xuICAgICAgICB0aGlzLnJlZGFjdEVsZW1lbnRzLnB1c2goeyBwYWdlOiBwYWdlTnVtYmVyLCBtYXRjaGVkSW5kZXg6IHJlc3VsdHM/Lm1hdGNoZWRJbmRleCwgcmVjdGFuZ2xlcyB9IGFzIFJlZGFjdFJlY3RhbmdsZSk7XG4gICAgICAgIHRoaXMuQ3JlYXRlUmVkYWN0QWxsVGV4dCgpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMucmVkYWN0QWxsICYmIHRoaXMucmVzdWx0Q291bnQgJiYgdGhpcy5yZXN1bHRDb3VudCA+IDBcbiAgICAgICAgJiYgcmVjdGFuZ2xlcyAmJiB0aGlzLnJlZGFjdEVsZW1lbnRzLmxlbmd0aCA8IHRoaXMucmVzdWx0Q291bnQpIHtcbiAgICAgICAgdGhpcy5zZWFyY2goZmFsc2UpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5yZWRhY3RBbGwgJiYgdGhpcy5yZXN1bHRDb3VudCAmJiB0aGlzLnJlZGFjdEVsZW1lbnRzLmxlbmd0aCA9PT0gdGhpcy5yZXN1bHRDb3VudCkge1xuICAgICAgICB0aGlzLnJlZGFjdEFsbCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJlZGFjdEFsbFRleHQgPSBudWxsO1xuICAgICAgICBpZiAodGhpcy5zZWFyY2hUeXBlID09PSBTZWFyY2hUeXBlLlJlZGFjdCkge1xuICAgICAgICAgIHRoaXMuc2F2ZVJlZGFjdGlvbih0aGlzLnJlZGFjdEVsZW1lbnRzKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlYXJjaFR5cGUgPT09IFNlYXJjaFR5cGUuSGlnaGxpZ2h0KSB7XG4gICAgICAgICAgdGhpcy5oaWdobGlnaHRTZXJ2aWNlLnNhdmVBbm5vdGF0aW9uU2V0KHRoaXMucmVkYWN0RWxlbWVudHMpO1xuICAgICAgICAgIHRoaXMuY2xlYW5VcFBvc3RTYXZlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNsZWFuVXBQb3N0U2F2ZSgpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMucmVkYWN0QWxsSW5Qcm9ncmVzc1N1YmplY3QubmV4dChmYWxzZSk7XG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gJyc7XG4gICAgdGhpcy5zZWFyY2goKTtcbiAgfVxuXG4gIHByaXZhdGUgQ3JlYXRlUmVkYWN0QWxsVGV4dCgpIHtcbiAgICB0aGlzLnJlZGFjdEFsbFRleHQgPSBgJHt0aGlzLnJlZGFjdEVsZW1lbnRzLmxlbmd0aH0gb2YgJHt0aGlzLnJlc3VsdENvdW50fWA7XG4gIH1cblxuICBwdWJsaWMgb25Fc2NhcGVLZXlQcmVzcyhlOiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnNlYXJjaEJhckhpZGRlbi5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIG9uRW50ZXJLZXlQcmVzcyhlOiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2goKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVTZWFyY2hCYXIoKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnNlYXJjaEJhckhpZGRlbi5uZXh0KCF0aGlzLnRvb2xiYXJFdmVudHMuc2VhcmNoQmFySGlkZGVuLmdldFZhbHVlKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZWN0YW5nbGVzKHBhZ2U6IG51bWJlcik6IFJlY3RhbmdsZVtdIHtcbiAgICB0aGlzLnBhZ2VIZWlnaHQgPSB0aGlzLmFsbFBhZ2VzW3BhZ2VdLnN0eWxlcy5oZWlnaHQ7XG4gICAgdGhpcy5wYWdlV2lkdGggPSB0aGlzLmFsbFBhZ2VzW3BhZ2VdLnN0eWxlcy53aWR0aDtcbiAgICB0aGlzLnpvb20gPSBwYXJzZUZsb2F0KHRoaXMuYWxsUGFnZXNbcGFnZV0uc2NhbGVSb3RhdGlvbi5zY2FsZSk7XG4gICAgdGhpcy5yb3RhdGUgPSBwYXJzZUludCh0aGlzLmFsbFBhZ2VzW3BhZ2VdLnNjYWxlUm90YXRpb24ucm90YXRpb24sIDEwKTtcbiAgICBjb25zdCBzZWxlY3RlZEhpZ2hMaWdodGVkRWxlbWVudHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdoaWdobGlnaHQgc2VsZWN0ZWQnKTtcbiAgICBpZiAoc2VsZWN0ZWRIaWdoTGlnaHRlZEVsZW1lbnRzICYmIHNlbGVjdGVkSGlnaExpZ2h0ZWRFbGVtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBkb2NSYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgICBpZiAoc29tZShzZWxlY3RlZEhpZ2hMaWdodGVkRWxlbWVudHMsIGVsZW1lbnQgPT4gZWxlbWVudC5jbGFzc05hbWUgPT09ICdoaWdobGlnaHQgYmVnaW4gc2VsZWN0ZWQnIHx8IGVsZW1lbnQuY2xhc3NOYW1lID09PSAnaGlnaGxpZ2h0IGVuZCBzZWxlY3RlZCcpKSB7XG4gICAgICAgIGRvY1JhbmdlLnNldFN0YXJ0KHNlbGVjdGVkSGlnaExpZ2h0ZWRFbGVtZW50c1swXSwgMCk7XG4gICAgICAgIGNvbnN0IGVuZE5vZGUgPSBzZWxlY3RlZEhpZ2hMaWdodGVkRWxlbWVudHNbc2VsZWN0ZWRIaWdoTGlnaHRlZEVsZW1lbnRzLmxlbmd0aCAtIDFdO1xuICAgICAgICBkb2NSYW5nZS5zZXRFbmQoZW5kTm9kZSwgZW5kTm9kZS5jaGlsZE5vZGVzLmxlbmd0aCk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgZG9jUmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKHNlbGVjdGVkSGlnaExpZ2h0ZWRFbGVtZW50c1swXSBhcyBIVE1MRWxlbWVudCk7XG4gICAgICB9XG4gICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICBzZWxlY3Rpb24/LnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgc2VsZWN0aW9uPy5hZGRSYW5nZShkb2NSYW5nZSk7XG4gICAgICBpZiAoc2VsZWN0aW9uLnJhbmdlQ291bnQgJiYgIXNlbGVjdGlvbi5pc0NvbGxhcHNlZCkge1xuICAgICAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApLmNsb25lUmFuZ2UoKTtcbiAgICAgICAgY29uc3QgY2xpZW50UmVjdHMgPSByYW5nZS5nZXRDbGllbnRSZWN0cygpO1xuXG4gICAgICAgIGlmIChjbGllbnRSZWN0cykge1xuICAgICAgICAgIGNvbnN0IHBhcmVudFJlY3QgPSBzZWxlY3RlZEhpZ2hMaWdodGVkRWxlbWVudHNbMF0ucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGlvblJlY3RhbmdsZXM6IFJlY3RhbmdsZVtdID0gW107XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjbGllbnRSZWN0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uUmVjdGFuZ2xlID0gdGhpcy5jcmVhdGVUZXh0UmVjdGFuZ2xlKGNsaWVudFJlY3RzW2ldLCBwYXJlbnRSZWN0KTtcbiAgICAgICAgICAgIGNvbnN0IGZpbmRTZWxlY3R0aW9uUmVjdGFuZ2xlID0gc2VsZWN0aW9uUmVjdGFuZ2xlcy5maW5kKFxuICAgICAgICAgICAgICAocmVjdCkgPT4gcmVjdC53aWR0aCA9PT0gc2VsZWN0aW9uUmVjdGFuZ2xlLndpZHRoICYmIHJlY3QueCA9PT0gc2VsZWN0aW9uUmVjdGFuZ2xlLnhcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoIWZpbmRTZWxlY3R0aW9uUmVjdGFuZ2xlKSB7XG4gICAgICAgICAgICAgIHNlbGVjdGlvblJlY3RhbmdsZXMucHVzaChzZWxlY3Rpb25SZWN0YW5nbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBzZWxlY3Rpb25SZWN0YW5nbGVzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVUZXh0UmVjdGFuZ2xlKHJlY3Q6IERPTVJlY3QsIHBhcmVudFJlY3Q6IGFueSk6IFJlY3RhbmdsZSB7XG4gICAgY29uc3QgaGVpZ2h0ID0gcmVjdC5ib3R0b20gLSByZWN0LnRvcDtcbiAgICBjb25zdCB3aWR0aCA9IHJlY3QucmlnaHQgLSByZWN0LmxlZnQ7XG4gICAgY29uc3QgdG9wID0gcmVjdC50b3AgLSBwYXJlbnRSZWN0LnRvcDtcbiAgICBjb25zdCBsZWZ0ID0gcmVjdC5sZWZ0IC0gcGFyZW50UmVjdC5sZWZ0O1xuXG4gICAgbGV0IHJlY3RhbmdsZSA9IHRoaXMuaGlnaGxpZ2h0U2VydmljZS5hcHBseVJvdGF0aW9uKFxuICAgICAgdGhpcy5wYWdlSGVpZ2h0LFxuICAgICAgdGhpcy5wYWdlV2lkdGgsXG4gICAgICBoZWlnaHQsXG4gICAgICB3aWR0aCxcbiAgICAgIHRvcCxcbiAgICAgIGxlZnQsXG4gICAgICB0aGlzLnJvdGF0ZSxcbiAgICAgIHRoaXMuem9vbVxuICAgICk7XG4gICAgcmVjdGFuZ2xlID0geyBpZDogdXVpZCgpLCAuLi5yZWN0YW5nbGUgfTtcblxuICAgIHJldHVybiByZWN0YW5nbGUgYXMgUmVjdGFuZ2xlO1xuICB9XG59XG4iLCI8ZGl2XG4gICpuZ0lmPVwib3BlblNlYXJjaE1vZGFsXCJcbiAgY2xhc3M9XCJzZWFyY2hiYXIgcmVkYWN0aW9uLXNlYXJjaC1iYXIgZ292dWstIS1wYWRkaW5nLTNcIlxuPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1yb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1jb2x1bW4tZnVsbCBnb3Z1ay0hLXBhZGRpbmctcmlnaHQtMFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJlZGFjdGlvbi1zZWFyY2gtYnV0dG9ucy1hcmVhXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBpZD1cIm12Q2xvc2VCdG5cIlxuICAgICAgICAgICNtdkNsb3NlQnRuXG4gICAgICAgICAgY2xhc3M9XCJtdi1idXR0b24gc2VhcmNoYmFyLWJ1dHRvbi0tY2xvc2VcIlxuICAgICAgICAgIHRpdGxlPVwiQ2xvc2UgU2VhcmNoXCJcbiAgICAgICAgICBkYXRhLWwxMG4taWQ9XCJtdlJlZGFjdEJ0blwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQ2xvc2VTZWFyY2hNb2RhbCgpXCJcbiAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8aW5wdXRcbiAgICAgICAgaWQ9XCJzZWFyY2hfaW5wdXRcIlxuICAgICAgICBjbGFzcz1cImdvdnVrLWlucHV0IGdvdnVrLSEtd2lkdGgtdGhyZWUtcXVhcnRlcnMgZ292dWstIS1kaXNwbGF5LWlubGluZS1ibG9jayBnb3Z1ay0hLW1hcmdpbi10b3AtNVwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIlJlZGFjdCBmcm9tIHNlYXJjaFwiXG4gICAgICAgICNmaW5kSW5wdXRcbiAgICAgICAgdGl0bGU9XCJSZWRhY3QgZnJvbSBzZWFyY2hcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHRpdGxlVGV4dCArICcgZnJvbSBzZWFyY2guLi4nIHwgcnB4VHJhbnNsYXRlIH19XCJcbiAgICAgICAgZGF0YS1sMTBuLWlkPVwic2VhcmNoX2lucHV0XCJcbiAgICAgICAgW25nTW9kZWxdPVwic2VhcmNoVGV4dFwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlYXJjaFRleHQgPSAkZXZlbnRcIlxuICAgICAgICAoa2V5ZG93bi5lc2NhcGUpPVwib25Fc2NhcGVLZXlQcmVzcygkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25FbnRlcktleVByZXNzKCRldmVudClcIlxuICAgICAgLz5cbiAgICAgIDxkaXYgY2xhc3M9XCJyZWRhY3Rpb24tc2VhcmNoLWJ1dHRvbnMtYXJlYVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgaWQ9XCJtdlNlYXJjaEFsbEJ0blwiXG4gICAgICAgICAgY2xhc3M9XCJnb3Z1ay1idXR0b24gZ292dWstIS1tYXJnaW4tYm90dG9tLTBcIlxuICAgICAgICAgIGRhdGEtbW9kdWxlPVwiZ292dWstYnV0dG9uXCJcbiAgICAgICAgICAoY2xpY2spPVwic2VhcmNoKClcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWRhY3RBbGxJblByb2dyZXNzXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IFwiU2VhcmNoXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBpZD1cIm12UmVkYWN0QWxsQnRuXCJcbiAgICAgICAgICBjbGFzcz1cImdvdnVrLWJ1dHRvbiBnb3Z1ay0hLW1hcmdpbi1sZWZ0LTIgZ292dWstIS1tYXJnaW4tYm90dG9tLTBcIlxuICAgICAgICAgIGRhdGEtbW9kdWxlPVwiZ292dWstYnV0dG9uXCJcbiAgICAgICAgICAoY2xpY2spPVwic2VhcmNoKGZhbHNlKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cInJlZGFjdEFsbEluUHJvZ3Jlc3MgfHwgcmVzdWx0Q291bnQgPD0gMFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyB0aXRsZVRleHQgKyBcIiBhbGxcIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLXRocmVlLXF1YXJ0ZXJzIGdvdnVrLSEtcGFkZGluZy1sZWZ0LTAgZ292dWstIS1wYWRkaW5nLXRvcC0yIHJlZGFjdGlvbi1zdGF0dXMtdGV4dFwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgaWQ9XCJmaW5kUmVkYWN0UmVzdWx0c0NvdW50XCJcbiAgICAgICAgICBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLWZ1bGwgZ292dWstIS1tYXJnaW4tcmlnaHQtNCBnb3Z1ay0hLW1hcmdpbi1sZWZ0LTAgZ292dWstIS1wYWRkaW5nLWxlZnQtMFwiXG4gICAgICAgICAgPjxoNFxuICAgICAgICAgICAgY2xhc3M9XCJnb3Z1ay0hLWRpc3BsYXktaW5saW5lLWJsb2NrIGdvdnVrLSEtbWFyZ2luLXRvcC0wIGdvdnVrLSEtbWFyZ2luLWJvdHRvbS0xXCJcbiAgICAgICAgICAgICpuZ0lmPVwicmVkYWN0QWxsSW5Qcm9ncmVzc1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgaW5Qcm9ncmVzc1RleHQgKyBcIiBpbiBwcm9ncmVzc1wiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9oND5cbiAgICAgICAgICB7eyByZWRhY3RBbGxJblByb2dyZXNzID8gXCJcIiA6IHJlc3VsdHNUZXh0IH19PC9zcGFuXG4gICAgICAgID5cbiAgICAgICAgPHNwYW4+XG4gICAgICAgICAgPGg1XG4gICAgICAgICAgICBpZD1cInJlZGFjdEFsbEluUHJvZ3Jlc3NDb3VudFwiXG4gICAgICAgICAgICBjbGFzcz1cImdvdnVrLSEtZGlzcGxheS1pbmxpbmUtYmxvY2sgZ292dWstIS1tYXJnaW4tdG9wLTAgZ292dWstIS1tYXJnaW4tYm90dG9tLTFcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IHJlZGFjdEFsbEluUHJvZ3Jlc3MgPyByZWRhY3RBbGxUZXh0IDogXCJcIiB9fVxuICAgICAgICAgIDwvaDU+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
237
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkYWN0aW9uLXNlYXJjaC1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvdG9vbGJhci9yZWRhY3Rpb24tc2VhcmNoLWJhci9yZWRhY3Rpb24tc2VhcmNoLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi90b29sYmFyL3JlZGFjdGlvbi1zZWFyY2gtYmFyL3JlZGFjdGlvbi1zZWFyY2gtYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBa0MsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFeEYsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUlsRyxPQUFPLEVBQVMsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzVDLE9BQU8sS0FBSyxZQUFZLE1BQU0sMENBQTBDLENBQUM7QUFDekUsT0FBTyxLQUFLLG9CQUFvQixNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWxDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saURBQWlELENBQUM7Ozs7Ozs7OztBQU90RixNQUFNLE9BQU8sMkJBQTJCO0lBOEJ0QyxZQUNVLEtBQTZCLEVBQ3JCLGNBQThDLEVBQzlDLGFBQWtDLEVBQ2xDLGdCQUF3QztRQUhoRCxVQUFLLEdBQUwsS0FBSyxDQUF3QjtRQUNyQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0M7UUFDOUMsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2xDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBd0I7UUE5QjFELGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLG1CQUFjLEdBQXNCLEVBQUUsQ0FBQztRQWlCaEMsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO0lBUWpDLENBQUM7SUFFRSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQXdCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3ZJLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdkgsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3ZGLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDeEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDSixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FDdkcsQ0FBQztRQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsVUFBc0IsRUFBRSxFQUFFO1lBQ2hHLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLGVBQWUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO2dCQUN6QyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNKLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsMEJBQTBCO2FBQ2hFLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBR00sZUFBZSxDQUFDLENBQWdCO1FBQ3JDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN4RCxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9DLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5RCxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFpQixJQUFJO1FBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUNELElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUMzQixDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7WUFDeEIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFFBQVEsRUFBRSxLQUFLO1lBQ2YsS0FBSztTQUNOLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM3QyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztZQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQztRQUMvQixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqRCxJQUFJLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQztZQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQztJQUVPLGFBQWEsQ0FBQyxlQUFrQztRQUN0RCxNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQWUsQ0FBQztRQUN2SCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQW1CLENBQUMsQ0FBQyxDQUFDO0lBQ3BILENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxVQUFrQixFQUFFLGFBQXFCLEVBQUUsVUFBdUI7UUFDOUYsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzFELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxVQUFVLElBQUksRUFBRSxDQUFDLFlBQVksS0FBSyxhQUFhLENBQUMsQ0FBQztZQUMvRyxNQUFNLGNBQWMsR0FBRyxVQUFVLEVBQUUsVUFBVSxDQUFDO1lBQzlDLElBQUksQ0FBQyxjQUFjLElBQUksY0FBYyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbEQsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBQ0QsSUFBSSxpQkFBaUIsR0FBRyxDQUFDLENBQUM7WUFDMUIsS0FBSyxJQUFJLFFBQVEsR0FBRyxDQUFDLEVBQUUsUUFBUSxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQztnQkFDcEUsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMzQyxNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsS0FBSztvQkFDdkUsRUFBRSxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbEYsSUFBSSxjQUFjLEVBQUUsQ0FBQztvQkFDbkIsaUJBQWlCLEVBQUUsQ0FBQztnQkFDdEIsQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLGNBQWMsQ0FBQyxNQUFNLEtBQUssaUJBQWlCLENBQUM7UUFDckQsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFHTyxxQkFBcUIsQ0FBQyxPQUEyQjtRQUN2RCxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUM7WUFDckMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssaUJBQWlCO1lBQ25DLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztJQUN6QixDQUFDO0lBRU8saUJBQWlCLENBQUMsT0FBd0I7UUFDaEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ25CLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDbEMsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUMvRSxJQUFJLGdCQUFnQixJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDcEQsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUMxQixLQUFLLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkMsQ0FBQztRQUNILENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFHTyxxQkFBcUIsQ0FBQyxPQUF3QjtRQUNwRCxNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQy9FLElBQUksZ0JBQWdCLElBQUksZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3BELElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztZQUN4QyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNwQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2xELElBQUksVUFBVSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXO21CQUMzRCxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUMvRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFxQixDQUFDLENBQUM7Z0JBQ25ILElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUM7bUJBQ3pELFVBQVUsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2pFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckIsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDMUYsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO2dCQUMxQixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUMxQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDMUMsQ0FBQztxQkFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUNwRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO29CQUM3RCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3pCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUUsQ0FBQztJQUVNLGdCQUFnQixDQUFDLENBQWdCO1FBQ3RDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRU0sZUFBZSxDQUFDLENBQWdCO1FBQ3JDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFTyxhQUFhLENBQUMsSUFBWTtRQUNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNwRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNsRCxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkUsTUFBTSwyQkFBMkIsR0FBRyxRQUFRLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUMxRixJQUFJLDJCQUEyQixJQUFJLDJCQUEyQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxRSxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDeEMsSUFBSSxJQUFJLENBQUMsMkJBQTJCLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxLQUFLLDBCQUEwQixJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssd0JBQXdCLENBQUMsRUFBRSxDQUFDO2dCQUNySixRQUFRLENBQUMsUUFBUSxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNyRCxNQUFNLE9BQU8sR0FBRywyQkFBMkIsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BGLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEQsQ0FBQztpQkFDSSxDQUFDO2dCQUNKLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQWdCLENBQUMsQ0FBQztZQUM3RSxDQUFDO1lBQ0QsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3hDLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQztZQUM3QixTQUFTLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlCLElBQUksU0FBUyxDQUFDLFVBQVUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbkQsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbkQsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUUzQyxJQUFJLFdBQVcsRUFBRSxDQUFDO29CQUNoQixNQUFNLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyx1QkFBdUIsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUM7b0JBQzdILE1BQU0sbUJBQW1CLEdBQWdCLEVBQUUsQ0FBQztvQkFDNUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQzt3QkFDNUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO3dCQUNoRixNQUFNLHVCQUF1QixHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FDdEQsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssa0JBQWtCLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssa0JBQWtCLENBQUMsQ0FBQyxDQUNyRixDQUFDO3dCQUNGLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDOzRCQUM3QixtQkFBbUIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQzt3QkFDL0MsQ0FBQztvQkFDSCxDQUFDO29CQUVELE9BQU8sbUJBQW1CLENBQUM7Z0JBQzdCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxJQUFhLEVBQUUsVUFBZTtRQUN4RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDdEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3JDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUN0QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFFekMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FDakQsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsU0FBUyxFQUNkLE1BQU0sRUFDTixLQUFLLEVBQ0wsR0FBRyxFQUNILElBQUksRUFDSixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxJQUFJLENBQ1YsQ0FBQztRQUNGLFNBQVMsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBRXpDLE9BQU8sU0FBc0IsQ0FBQztJQUNoQyxDQUFDO2tJQXhRVSwyQkFBMkI7c0hBQTNCLDJCQUEyQiwyUEN0QnhDLDJ2RkE0RUE7OzRGRHREYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UseUJBQXlCOzhMQU1PLFNBQVM7c0JBQWxELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkE4RGpDLGVBQWU7c0JBRHJCLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWxrUmVkYWN0aW9uLCBSZWRhY3Rpb24gfSBmcm9tICcuLy4uLy4uL3JlZGFjdGlvbi9zZXJ2aWNlcy9yZWRhY3Rpb24ubW9kZWwnO1xuaW1wb3J0IHsgU2VhcmNoTW9kZSwgU2VhcmNoUmVzdWx0c0NvdW50LCBTZWFyY2hUeXBlIH0gZnJvbSAnLi8uLi90b29sYmFyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVkYWN0aW9uU2VhcmNoLCBSZWRhY3RSZWN0YW5nbGUgfSBmcm9tICcuL3JlZGFjdGlvbi1zZWFyY2gubW9kZWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9vbGJhckJ1dHRvblZpc2liaWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vdG9vbGJhci1idXR0b24tdmlzaWJpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IFRvb2xiYXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi90b29sYmFyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RvcmUsIHNlbGVjdCB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCAqIGFzIGZyb21TdG9yZSBmcm9tICcuLi8uLi9zdG9yZS9yZWR1Y2Vycy9yZWR1Y2Vycyc7XG5pbXBvcnQgeyBSZWN0YW5nbGUgfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9ucy9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLXZpZXcvcmVjdGFuZ2xlL3JlY3RhbmdsZS5tb2RlbCc7XG5pbXBvcnQgKiBhcyBmcm9tRG9jdW1lbnQgZnJvbSAnLi4vLi4vc3RvcmUvc2VsZWN0b3JzL2RvY3VtZW50LnNlbGVjdG9ycyc7XG5pbXBvcnQgKiBhcyBmcm9tUmVkYWN0aW9uQWN0aW9ucyBmcm9tICcuLi8uLi9zdG9yZS9hY3Rpb25zL3JlZGFjdGlvbi5hY3Rpb25zJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IEhpZ2hsaWdodENyZWF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9ucy9hbm5vdGF0aW9uLXNldC9hbm5vdGF0aW9uLWNyZWF0ZS9oaWdobGlnaHQtY3JlYXRlL2hpZ2hsaWdodC1jcmVhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBzb21lIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEh0bWxUZW1wbGF0ZXNIZWxwZXIgfSBmcm9tICcuLi8uLi9zaGFyZWQvdXRpbC9oZWxwZXJzL2h0bWwtdGVtcGxhdGVzLmhlbHBlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ212LXJlZGFjdGlvbi1zZWFyY2gtYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlZGFjdGlvbi1zZWFyY2gtYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVkYWN0aW9uLXNlYXJjaC1iYXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBSZWRhY3Rpb25TZWFyY2hCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQFZpZXdDaGlsZCgnZmluZElucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgZmluZElucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIGhpZ2hsaWdodEFsbCA9IHRydWU7XG4gIG1hdGNoQ2FzZSA9IGZhbHNlO1xuICB3aG9sZVdvcmQgPSBmYWxzZTtcbiAgcmVzdWx0c1RleHQgPSAnJztcbiAgc2VhcmNoVGV4dCA9ICcnO1xuICByZXN1bHRDb3VudCA9IDA7XG4gIHJlZGFjdEVsZW1lbnRzOiBSZWRhY3RSZWN0YW5nbGVbXSA9IFtdO1xuICBwYWdlSGVpZ2h0OiBudW1iZXI7XG4gIHBhZ2VXaWR0aDogbnVtYmVyO1xuICB6b29tOiBudW1iZXI7XG4gIHJvdGF0ZTogbnVtYmVyO1xuICBhbGxQYWdlczogb2JqZWN0O1xuICByZWRhY3RBbGw6IGJvb2xlYW47XG4gIG9wZW5TZWFyY2hNb2RhbDogYm9vbGVhbjtcbiAgcmVkYWN0QWxsSW5Qcm9ncmVzczogYm9vbGVhbjtcbiAgcmVkYWN0QWxsVGV4dD86IHN0cmluZztcbiAgc2VhcmNoVHlwZTogU2VhcmNoVHlwZTtcbiAgaW5Qcm9ncmVzc1RleHQ6IHN0cmluZztcbiAgdGl0bGVUZXh0OiBzdHJpbmc7XG5cblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGRvY3VtZW50SWQ6IHN0cmluZztcbiAgcHVibGljIGFkdmFuY2VkU2VhcmNoVmlzaWJsZSA9IGZhbHNlO1xuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8ZnJvbVN0b3JlLlN0YXRlPixcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG9vbGJhckJ1dHRvbnM6IFRvb2xiYXJCdXR0b25WaXNpYmlsaXR5U2VydmljZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG9vbGJhckV2ZW50czogVG9vbGJhckV2ZW50U2VydmljZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgaGlnaGxpZ2h0U2VydmljZTogSGlnaGxpZ2h0Q3JlYXRlU2VydmljZSxcbiAgKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnRvb2xiYXJFdmVudHMucmVkYWN0aW9uU2VyYWNoU3ViamVjdC5zdWJzY3JpYmUoKHJlc3VsdHM6IFJlZGFjdGlvblNlYXJjaCkgPT4gdGhpcy5yZWRhY3RBbGxTZWFyY2hlZChyZXN1bHRzKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZnJvbURvY3VtZW50LmdldERvY3VtZW50SWQpKS5zdWJzY3JpYmUoZG9jSWQgPT4gdGhpcy5kb2N1bWVudElkID0gZG9jSWQpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQodGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tRG9jdW1lbnQuZ2V0UGFnZXMpKS5zdWJzY3JpYmUoKHBhZ2VzKSA9PiB7XG4gICAgICBpZiAocGFnZXNbMV0pIHtcbiAgICAgICAgdGhpcy5hbGxQYWdlcyA9IHBhZ2VzO1xuICAgICAgfVxuICAgIH0pKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMuc2VhcmNoUmVzdWx0c0NvdW50U3ViamVjdC5zdWJzY3JpYmUocmVzdWx0cyA9PiB0aGlzLnNldFNlYXJjaFJlc3VsdHNDb3VudChyZXN1bHRzKSlcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZCh0aGlzLnRvb2xiYXJFdmVudHMub3BlblJlZGFjdGlvblNlYXJjaC5zdWJzY3JpYmUoKHNlYXJjaE1vZGU6IFNlYXJjaE1vZGUpID0+IHtcbiAgICAgIGlmIChzZWFyY2hNb2RlKSB7XG4gICAgICAgIHRoaXMub3BlblNlYXJjaE1vZGFsID0gc2VhcmNoTW9kZS5pc09wZW47XG4gICAgICAgIHRoaXMuc2VhcmNoVHlwZSA9IHNlYXJjaE1vZGUubW9kZVR5cGU7XG4gICAgICAgIHRoaXMubW9kZVRleHQoKTtcbiAgICAgIH1cbiAgICB9KSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKHRoaXMudG9vbGJhckV2ZW50cy5yZWRhY3RBbGxJblByb2dyZXNzU3ViamVjdFxuICAgICAgLnN1YnNjcmliZShpblByb2dyZXNzID0+IHRoaXMucmVkYWN0QWxsSW5Qcm9ncmVzcyA9IGluUHJvZ3Jlc3MpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbldpbmRvd0tleURvd24oZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChlLmNvZGUgPT09ICdGMycgfHwgKGUuY3RybEtleSAmJiBlLmNvZGUgPT09ICdLZXlGJykpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5zZWFyY2hCYXJIaWRkZW4ubmV4dChmYWxzZSk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZmluZElucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSwgMjAwKTtcbiAgICB9XG4gIH1cblxuICBzZWFyY2gocmVzZXQ6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy5yZWRhY3RBbGwgPSAhcmVzZXQ7XG4gICAgaWYgKHRoaXMucmVkYWN0QWxsKSB7XG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMucmVkYWN0QWxsSW5Qcm9ncmVzc1N1YmplY3QubmV4dCh0cnVlKTtcbiAgICB9XG4gICAgaWYgKHJlc2V0KSB7XG4gICAgICB0aGlzLnJlZGFjdEVsZW1lbnRzID0gW107XG4gICAgfVxuICAgIHRoaXMudG9vbGJhckV2ZW50cy5zZWFyY2goe1xuICAgICAgc2VhcmNoVGVybTogdGhpcy5zZWFyY2hUZXh0LFxuICAgICAgaGlnaGxpZ2h0QWxsOiB0aGlzLmhpZ2hsaWdodEFsbCxcbiAgICAgIG1hdGNoQ2FzZTogdGhpcy5tYXRjaENhc2UsXG4gICAgICB3aG9sZVdvcmQ6IHRoaXMud2hvbGVXb3JkLFxuICAgICAgcHJldmlvdXM6IGZhbHNlLFxuICAgICAgcmVzZXRcbiAgICB9KTtcbiAgfVxuXG4gIG1vZGVUZXh0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlYXJjaFR5cGUgPT09IFNlYXJjaFR5cGUuSGlnaGxpZ2h0KSB7XG4gICAgICB0aGlzLmluUHJvZ3Jlc3NUZXh0ID0gJ0hpZ2hsaWdodGluZyc7XG4gICAgICB0aGlzLnRpdGxlVGV4dCA9ICdIaWdobGlnaHQnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZWFyY2hUeXBlID09PSBTZWFyY2hUeXBlLlJlZGFjdCkge1xuICAgICAgdGhpcy5pblByb2dyZXNzVGV4dCA9ICdSZWRhY3RpbmcnO1xuICAgICAgdGhpcy50aXRsZVRleHQgPSAnUmVkYWN0JztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNhdmVSZWRhY3Rpb24ocmVkYWN0UmVjdGFuZ2xlOiBSZWRhY3RSZWN0YW5nbGVbXSkge1xuICAgIGNvbnN0IHJlZGFjdGlvbiA9IHJlZGFjdFJlY3RhbmdsZS5tYXAoZWxlID0+IHtcbiAgICAgIHJldHVybiB7IHBhZ2U6IGVsZS5wYWdlLCByZWN0YW5nbGVzOiBlbGUucmVjdGFuZ2xlcywgcmVkYWN0aW9uSWQ6IHV1aWQoKSwgZG9jdW1lbnRJZDogdGhpcy5kb2N1bWVudElkIH0gYXMgUmVkYWN0aW9uO1xuICAgIH0pO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IGZyb21SZWRhY3Rpb25BY3Rpb25zLlNhdmVCdWxrUmVkYWN0aW9uKHsgc2VhcmNoUmVkYWN0aW9uczogcmVkYWN0aW9uIH0gYXMgQnVsa1JlZGFjdGlvbikpO1xuICB9XG5cbiAgcHJpdmF0ZSBleGlzdEluUmVkYWN0RWxlbWVudHMocGFnZU51bWJlcjogbnVtYmVyLCBtYXRlY2hlZEluZGV4OiBudW1iZXIsIHJlY3RhbmdsZXM6IFJlY3RhbmdsZVtdKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMucmVkYWN0RWxlbWVudHMgJiYgdGhpcy5yZWRhY3RFbGVtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBwYWdlc0ZvdW5kID0gdGhpcy5yZWRhY3RFbGVtZW50cy5maW5kKHJlID0+IHJlLnBhZ2UgPT09IHBhZ2VOdW1iZXIgJiYgcmUubWF0Y2hlZEluZGV4ID09PSBtYXRlY2hlZEluZGV4KTtcbiAgICAgIGNvbnN0IHBhZ2VSZWN0YW5nbGVzID0gcGFnZXNGb3VuZD8ucmVjdGFuZ2xlcztcbiAgICAgIGlmICghcGFnZVJlY3RhbmdsZXMgfHwgcGFnZVJlY3RhbmdsZXMubGVuZ3RoIDw9IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgbGV0IG1hdGNoZXNSZWN0YW5nbGVzID0gMDtcbiAgICAgIGZvciAobGV0IHJlY3RJbmR4ID0gMDsgcmVjdEluZHggPCBwYWdlUmVjdGFuZ2xlcy5sZW5ndGg7IHJlY3RJbmR4KyspIHtcbiAgICAgICAgY29uc3QgcmVjdGFuZ2xlID0gcGFnZVJlY3RhbmdsZXNbcmVjdEluZHhdO1xuICAgICAgICBjb25zdCBmb3VuZFJlY3RhbmdsZSA9IHJlY3RhbmdsZXMuZmluZChyZSA9PiByZS53aWR0aCA9PT0gcmVjdGFuZ2xlLndpZHRoICYmXG4gICAgICAgICAgcmUuaGVpZ2h0ID09PSByZWN0YW5nbGUuaGVpZ2h0ICYmIHJlLnggPT09IHJlY3RhbmdsZS54ICYmIHJlLnkgPT09IHJlY3RhbmdsZS55KTtcbiAgICAgICAgaWYgKGZvdW5kUmVjdGFuZ2xlKSB7XG4gICAgICAgICAgbWF0Y2hlc1JlY3RhbmdsZXMrKztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHBhZ2VSZWN0YW5nbGVzLmxlbmd0aCA9PT0gbWF0Y2hlc1JlY3RhbmdsZXM7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIG9uQ2xvc2VTZWFyY2hNb2RhbCgpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMub3BlblJlZGFjdGlvblNlYXJjaC5uZXh0KHsgaXNPcGVuOiBmYWxzZSwgbW9kZVR5cGU6IHRoaXMuc2VhcmNoVHlwZSB9KTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBzZXRTZWFyY2hSZXN1bHRzQ291bnQocmVzdWx0czogU2VhcmNoUmVzdWx0c0NvdW50KTogdm9pZCB7XG4gICAgdGhpcy5yZXN1bHRDb3VudCA9IHJlc3VsdHMudG90YWw7XG4gICAgdGhpcy5yZXN1bHRzVGV4dCA9IHRoaXMucmVzdWx0Q291bnQgPiAwXG4gICAgICA/IGAke3Jlc3VsdHMudG90YWx9IHJlc3VsdHMgZm91bmRzYFxuICAgICAgOiAnTm8gcmVzdWx0cyBmb3VuZCc7XG4gIH1cblxuICBwcml2YXRlIHJlZGFjdEFsbFNlYXJjaGVkKHJlc3VsdHM6IFJlZGFjdGlvblNlYXJjaCk6IHZvaWQge1xuICAgIGNvbnN0ICR0aGlzID0gdGhpcztcbiAgICBjb25zdCBpbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgY29uc3QgaGlnaGxpZ2h0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2hpZ2hsaWdodCBzZWxlY3RlZCcpO1xuICAgICAgaWYgKGhpZ2hsaWdodEVsZW1lbnQgJiYgaGlnaGxpZ2h0RWxlbWVudC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJZCk7XG4gICAgICAgICR0aGlzLnJlZGFjdEFsbFNlYXJjaGVkVGljayhyZXN1bHRzKTtcbiAgICAgIH1cbiAgICB9LCAxMDApO1xuICB9XG5cblxuICBwcml2YXRlIHJlZGFjdEFsbFNlYXJjaGVkVGljayhyZXN1bHRzOiBSZWRhY3Rpb25TZWFyY2gpOiB2b2lkIHtcbiAgICBjb25zdCBoaWdobGlnaHRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnaGlnaGxpZ2h0IHNlbGVjdGVkJyk7XG4gICAgaWYgKGhpZ2hsaWdodEVsZW1lbnQgJiYgaGlnaGxpZ2h0RWxlbWVudC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnJlc3VsdENvdW50ID0gcmVzdWx0cy5tYXRjaGVzQ291bnQ7XG4gICAgICBjb25zdCBwYWdlTnVtYmVyID0gcmVzdWx0cy5wYWdlICsgMTtcbiAgICAgIGNvbnN0IHJlY3RhbmdsZXMgPSB0aGlzLmdldFJlY3RhbmdsZXMocGFnZU51bWJlcik7XG4gICAgICBpZiAocmVjdGFuZ2xlcyAmJiB0aGlzLnJlZGFjdEVsZW1lbnRzLmxlbmd0aCA8PSB0aGlzLnJlc3VsdENvdW50XG4gICAgICAgICYmICF0aGlzLmV4aXN0SW5SZWRhY3RFbGVtZW50cyhwYWdlTnVtYmVyLCByZXN1bHRzLm1hdGNoZWRJbmRleCwgcmVjdGFuZ2xlcykpIHtcbiAgICAgICAgdGhpcy5yZWRhY3RFbGVtZW50cy5wdXNoKHsgcGFnZTogcGFnZU51bWJlciwgbWF0Y2hlZEluZGV4OiByZXN1bHRzPy5tYXRjaGVkSW5kZXgsIHJlY3RhbmdsZXMgfSBhcyBSZWRhY3RSZWN0YW5nbGUpO1xuICAgICAgICB0aGlzLkNyZWF0ZVJlZGFjdEFsbFRleHQoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnJlZGFjdEFsbCAmJiB0aGlzLnJlc3VsdENvdW50ICYmIHRoaXMucmVzdWx0Q291bnQgPiAwXG4gICAgICAgICYmIHJlY3RhbmdsZXMgJiYgdGhpcy5yZWRhY3RFbGVtZW50cy5sZW5ndGggPCB0aGlzLnJlc3VsdENvdW50KSB7XG4gICAgICAgIHRoaXMuc2VhcmNoKGZhbHNlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMucmVkYWN0QWxsICYmIHRoaXMucmVzdWx0Q291bnQgJiYgdGhpcy5yZWRhY3RFbGVtZW50cy5sZW5ndGggPT09IHRoaXMucmVzdWx0Q291bnQpIHtcbiAgICAgICAgdGhpcy5yZWRhY3RBbGwgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yZWRhY3RBbGxUZXh0ID0gbnVsbDtcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVHlwZSA9PT0gU2VhcmNoVHlwZS5SZWRhY3QpIHtcbiAgICAgICAgICB0aGlzLnNhdmVSZWRhY3Rpb24odGhpcy5yZWRhY3RFbGVtZW50cyk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWFyY2hUeXBlID09PSBTZWFyY2hUeXBlLkhpZ2hsaWdodCkge1xuICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0U2VydmljZS5zYXZlQW5ub3RhdGlvblNldCh0aGlzLnJlZGFjdEVsZW1lbnRzKTtcbiAgICAgICAgICB0aGlzLmNsZWFuVXBQb3N0U2F2ZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjbGVhblVwUG9zdFNhdmUoKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnJlZGFjdEFsbEluUHJvZ3Jlc3NTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgIHRoaXMuc2VhcmNoVGV4dCA9ICcnO1xuICAgIHRoaXMuc2VhcmNoKCk7XG4gIH1cblxuICBwcml2YXRlIENyZWF0ZVJlZGFjdEFsbFRleHQoKSB7XG4gICAgdGhpcy5yZWRhY3RBbGxUZXh0ID0gYCR7dGhpcy5yZWRhY3RFbGVtZW50cy5sZW5ndGh9IG9mICR7dGhpcy5yZXN1bHRDb3VudH1gO1xuICB9XG5cbiAgcHVibGljIG9uRXNjYXBlS2V5UHJlc3MoZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy5zZWFyY2hCYXJIaWRkZW4ubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkVudGVyS2V5UHJlc3MoZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoKCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlU2VhcmNoQmFyKCkge1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy5zZWFyY2hCYXJIaWRkZW4ubmV4dCghdGhpcy50b29sYmFyRXZlbnRzLnNlYXJjaEJhckhpZGRlbi5nZXRWYWx1ZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmVjdGFuZ2xlcyhwYWdlOiBudW1iZXIpOiBSZWN0YW5nbGVbXSB7XG4gICAgdGhpcy5wYWdlSGVpZ2h0ID0gdGhpcy5hbGxQYWdlc1twYWdlXS5zdHlsZXMuaGVpZ2h0O1xuICAgIHRoaXMucGFnZVdpZHRoID0gdGhpcy5hbGxQYWdlc1twYWdlXS5zdHlsZXMud2lkdGg7XG4gICAgdGhpcy56b29tID0gcGFyc2VGbG9hdCh0aGlzLmFsbFBhZ2VzW3BhZ2VdLnNjYWxlUm90YXRpb24uc2NhbGUpO1xuICAgIHRoaXMucm90YXRlID0gcGFyc2VJbnQodGhpcy5hbGxQYWdlc1twYWdlXS5zY2FsZVJvdGF0aW9uLnJvdGF0aW9uLCAxMCk7XG4gICAgY29uc3Qgc2VsZWN0ZWRIaWdoTGlnaHRlZEVsZW1lbnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnaGlnaGxpZ2h0IHNlbGVjdGVkJyk7XG4gICAgaWYgKHNlbGVjdGVkSGlnaExpZ2h0ZWRFbGVtZW50cyAmJiBzZWxlY3RlZEhpZ2hMaWdodGVkRWxlbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZG9jUmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgICAgaWYgKHNvbWUoc2VsZWN0ZWRIaWdoTGlnaHRlZEVsZW1lbnRzLCBlbGVtZW50ID0+IGVsZW1lbnQuY2xhc3NOYW1lID09PSAnaGlnaGxpZ2h0IGJlZ2luIHNlbGVjdGVkJyB8fCBlbGVtZW50LmNsYXNzTmFtZSA9PT0gJ2hpZ2hsaWdodCBlbmQgc2VsZWN0ZWQnKSkge1xuICAgICAgICBkb2NSYW5nZS5zZXRTdGFydChzZWxlY3RlZEhpZ2hMaWdodGVkRWxlbWVudHNbMF0sIDApO1xuICAgICAgICBjb25zdCBlbmROb2RlID0gc2VsZWN0ZWRIaWdoTGlnaHRlZEVsZW1lbnRzW3NlbGVjdGVkSGlnaExpZ2h0ZWRFbGVtZW50cy5sZW5ndGggLSAxXTtcbiAgICAgICAgZG9jUmFuZ2Uuc2V0RW5kKGVuZE5vZGUsIGVuZE5vZGUuY2hpbGROb2Rlcy5sZW5ndGgpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGRvY1JhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhzZWxlY3RlZEhpZ2hMaWdodGVkRWxlbWVudHNbMF0gYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgfVxuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgc2VsZWN0aW9uPy5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgIHNlbGVjdGlvbj8uYWRkUmFuZ2UoZG9jUmFuZ2UpO1xuICAgICAgaWYgKHNlbGVjdGlvbi5yYW5nZUNvdW50ICYmICFzZWxlY3Rpb24uaXNDb2xsYXBzZWQpIHtcbiAgICAgICAgY29uc3QgcmFuZ2UgPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKS5jbG9uZVJhbmdlKCk7XG4gICAgICAgIGNvbnN0IGNsaWVudFJlY3RzID0gcmFuZ2UuZ2V0Q2xpZW50UmVjdHMoKTtcblxuICAgICAgICBpZiAoY2xpZW50UmVjdHMpIHtcbiAgICAgICAgICBjb25zdCBwYXJlbnRSZWN0ID0gSHRtbFRlbXBsYXRlc0hlbHBlci5nZXRBZGp1c3RlZEJvdW5kaW5nUmVjdChzZWxlY3RlZEhpZ2hMaWdodGVkRWxlbWVudHNbMF0/LnBhcmVudEVsZW1lbnQ/LnBhcmVudEVsZW1lbnQpO1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGlvblJlY3RhbmdsZXM6IFJlY3RhbmdsZVtdID0gW107XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjbGllbnRSZWN0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uUmVjdGFuZ2xlID0gdGhpcy5jcmVhdGVUZXh0UmVjdGFuZ2xlKGNsaWVudFJlY3RzW2ldLCBwYXJlbnRSZWN0KTtcbiAgICAgICAgICAgIGNvbnN0IGZpbmRTZWxlY3R0aW9uUmVjdGFuZ2xlID0gc2VsZWN0aW9uUmVjdGFuZ2xlcy5maW5kKFxuICAgICAgICAgICAgICAocmVjdCkgPT4gcmVjdC53aWR0aCA9PT0gc2VsZWN0aW9uUmVjdGFuZ2xlLndpZHRoICYmIHJlY3QueCA9PT0gc2VsZWN0aW9uUmVjdGFuZ2xlLnhcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoIWZpbmRTZWxlY3R0aW9uUmVjdGFuZ2xlKSB7XG4gICAgICAgICAgICAgIHNlbGVjdGlvblJlY3RhbmdsZXMucHVzaChzZWxlY3Rpb25SZWN0YW5nbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBzZWxlY3Rpb25SZWN0YW5nbGVzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVUZXh0UmVjdGFuZ2xlKHJlY3Q6IERPTVJlY3QsIHBhcmVudFJlY3Q6IGFueSk6IFJlY3RhbmdsZSB7XG4gICAgY29uc3QgaGVpZ2h0ID0gcmVjdC5ib3R0b20gLSByZWN0LnRvcDtcbiAgICBjb25zdCB3aWR0aCA9IHJlY3QucmlnaHQgLSByZWN0LmxlZnQ7XG4gICAgY29uc3QgdG9wID0gcmVjdC50b3AgLSBwYXJlbnRSZWN0LnRvcDtcbiAgICBjb25zdCBsZWZ0ID0gcmVjdC5sZWZ0IC0gcGFyZW50UmVjdC5sZWZ0O1xuXG4gICAgbGV0IHJlY3RhbmdsZSA9IHRoaXMuaGlnaGxpZ2h0U2VydmljZS5hcHBseVJvdGF0aW9uKFxuICAgICAgdGhpcy5wYWdlSGVpZ2h0LFxuICAgICAgdGhpcy5wYWdlV2lkdGgsXG4gICAgICBoZWlnaHQsXG4gICAgICB3aWR0aCxcbiAgICAgIHRvcCxcbiAgICAgIGxlZnQsXG4gICAgICB0aGlzLnJvdGF0ZSxcbiAgICAgIHRoaXMuem9vbVxuICAgICk7XG4gICAgcmVjdGFuZ2xlID0geyBpZDogdXVpZCgpLCAuLi5yZWN0YW5nbGUgfTtcblxuICAgIHJldHVybiByZWN0YW5nbGUgYXMgUmVjdGFuZ2xlO1xuICB9XG59XG4iLCI8ZGl2XG4gICpuZ0lmPVwib3BlblNlYXJjaE1vZGFsXCJcbiAgY2xhc3M9XCJzZWFyY2hiYXIgcmVkYWN0aW9uLXNlYXJjaC1iYXIgZ292dWstIS1wYWRkaW5nLTNcIlxuPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1yb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1jb2x1bW4tZnVsbCBnb3Z1ay0hLXBhZGRpbmctcmlnaHQtMFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJlZGFjdGlvbi1zZWFyY2gtYnV0dG9ucy1hcmVhXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBpZD1cIm12Q2xvc2VCdG5cIlxuICAgICAgICAgICNtdkNsb3NlQnRuXG4gICAgICAgICAgY2xhc3M9XCJtdi1idXR0b24gc2VhcmNoYmFyLWJ1dHRvbi0tY2xvc2VcIlxuICAgICAgICAgIHRpdGxlPVwiQ2xvc2UgU2VhcmNoXCJcbiAgICAgICAgICBkYXRhLWwxMG4taWQ9XCJtdlJlZGFjdEJ0blwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQ2xvc2VTZWFyY2hNb2RhbCgpXCJcbiAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8aW5wdXRcbiAgICAgICAgaWQ9XCJzZWFyY2hfaW5wdXRcIlxuICAgICAgICBjbGFzcz1cImdvdnVrLWlucHV0IGdvdnVrLSEtd2lkdGgtdGhyZWUtcXVhcnRlcnMgZ292dWstIS1kaXNwbGF5LWlubGluZS1ibG9jayBnb3Z1ay0hLW1hcmdpbi10b3AtNVwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIlJlZGFjdCBmcm9tIHNlYXJjaFwiXG4gICAgICAgICNmaW5kSW5wdXRcbiAgICAgICAgdGl0bGU9XCJSZWRhY3QgZnJvbSBzZWFyY2hcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHRpdGxlVGV4dCArICcgZnJvbSBzZWFyY2guLi4nIHwgcnB4VHJhbnNsYXRlIH19XCJcbiAgICAgICAgZGF0YS1sMTBuLWlkPVwic2VhcmNoX2lucHV0XCJcbiAgICAgICAgW25nTW9kZWxdPVwic2VhcmNoVGV4dFwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlYXJjaFRleHQgPSAkZXZlbnRcIlxuICAgICAgICAoa2V5ZG93bi5lc2NhcGUpPVwib25Fc2NhcGVLZXlQcmVzcygkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25FbnRlcktleVByZXNzKCRldmVudClcIlxuICAgICAgLz5cbiAgICAgIDxkaXYgY2xhc3M9XCJyZWRhY3Rpb24tc2VhcmNoLWJ1dHRvbnMtYXJlYVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgaWQ9XCJtdlNlYXJjaEFsbEJ0blwiXG4gICAgICAgICAgY2xhc3M9XCJnb3Z1ay1idXR0b24gZ292dWstIS1tYXJnaW4tYm90dG9tLTBcIlxuICAgICAgICAgIGRhdGEtbW9kdWxlPVwiZ292dWstYnV0dG9uXCJcbiAgICAgICAgICAoY2xpY2spPVwic2VhcmNoKClcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWRhY3RBbGxJblByb2dyZXNzXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IFwiU2VhcmNoXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBpZD1cIm12UmVkYWN0QWxsQnRuXCJcbiAgICAgICAgICBjbGFzcz1cImdvdnVrLWJ1dHRvbiBnb3Z1ay0hLW1hcmdpbi1sZWZ0LTIgZ292dWstIS1tYXJnaW4tYm90dG9tLTBcIlxuICAgICAgICAgIGRhdGEtbW9kdWxlPVwiZ292dWstYnV0dG9uXCJcbiAgICAgICAgICAoY2xpY2spPVwic2VhcmNoKGZhbHNlKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cInJlZGFjdEFsbEluUHJvZ3Jlc3MgfHwgcmVzdWx0Q291bnQgPD0gMFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyB0aXRsZVRleHQgKyBcIiBhbGxcIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLXRocmVlLXF1YXJ0ZXJzIGdvdnVrLSEtcGFkZGluZy1sZWZ0LTAgZ292dWstIS1wYWRkaW5nLXRvcC0yIHJlZGFjdGlvbi1zdGF0dXMtdGV4dFwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgaWQ9XCJmaW5kUmVkYWN0UmVzdWx0c0NvdW50XCJcbiAgICAgICAgICBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLWZ1bGwgZ292dWstIS1tYXJnaW4tcmlnaHQtNCBnb3Z1ay0hLW1hcmdpbi1sZWZ0LTAgZ292dWstIS1wYWRkaW5nLWxlZnQtMFwiXG4gICAgICAgICAgPjxoNFxuICAgICAgICAgICAgY2xhc3M9XCJnb3Z1ay0hLWRpc3BsYXktaW5saW5lLWJsb2NrIGdvdnVrLSEtbWFyZ2luLXRvcC0wIGdvdnVrLSEtbWFyZ2luLWJvdHRvbS0xXCJcbiAgICAgICAgICAgICpuZ0lmPVwicmVkYWN0QWxsSW5Qcm9ncmVzc1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgaW5Qcm9ncmVzc1RleHQgKyBcIiBpbiBwcm9ncmVzc1wiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9oND5cbiAgICAgICAgICB7eyByZWRhY3RBbGxJblByb2dyZXNzID8gXCJcIiA6IHJlc3VsdHNUZXh0IH19PC9zcGFuXG4gICAgICAgID5cbiAgICAgICAgPHNwYW4+XG4gICAgICAgICAgPGg1XG4gICAgICAgICAgICBpZD1cInJlZGFjdEFsbEluUHJvZ3Jlc3NDb3VudFwiXG4gICAgICAgICAgICBjbGFzcz1cImdvdnVrLSEtZGlzcGxheS1pbmxpbmUtYmxvY2sgZ292dWstIS1tYXJnaW4tdG9wLTAgZ292dWstIS1tYXJnaW4tYm90dG9tLTFcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IHJlZGFjdEFsbEluUHJvZ3Jlc3MgPyByZWRhY3RBbGxUZXh0IDogXCJcIiB9fVxuICAgICAgICAgIDwvaDU+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -31,7 +31,9 @@ export class SideBarComponent {
|
|
|
31
31
|
this.sidebarOpen = toggle;
|
|
32
32
|
}));
|
|
33
33
|
this.subscriptions.push(this.store.pipe(select(bookmarksSelectors.getScrollTop)).subscribe(scrollTopValue => {
|
|
34
|
-
this.sidebarDiv
|
|
34
|
+
if (this.sidebarDiv?.nativeElement) {
|
|
35
|
+
this.sidebarDiv.nativeElement.scrollTop = scrollTopValue;
|
|
36
|
+
}
|
|
35
37
|
}));
|
|
36
38
|
}
|
|
37
39
|
ngOnChanges(changes) {
|
|
@@ -94,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
94
96
|
type: ViewChild,
|
|
95
97
|
args: ['sidebar']
|
|
96
98
|
}] } });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvdmlld2Vycy9wZGYtdmlld2VyL3NpZGUtYmFyL3NpZGUtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL3ZpZXdlcnMvcGRmLXZpZXdlci9zaWRlLWJhci9zaWRlLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBNEIsS0FBSyxFQUErQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbEosT0FBTyxFQUFFLE1BQU0sRUFBUyxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEtBQUssa0JBQWtCLE1BQU0sNkNBQTZDLENBQUM7QUFFbEYsT0FBTyxFQUFrQixhQUFhLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQU14RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7OztBQU1yRSxNQUFNLE9BQU8sZ0JBQWdCO0lBb0IzQixZQUFvQixZQUFnQyxFQUMxQyxLQUE0QixFQUNuQixhQUFrQztRQUZqQyxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFDMUMsVUFBSyxHQUFMLEtBQUssQ0FBdUI7UUFDbkIsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBWHJELGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGlCQUFZLEdBQUcsU0FBUyxDQUFDO1FBS2pCLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztJQU12QyxDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztRQUNu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QztJQUVELFdBQVcsQ0FBQyxJQUFhO1FBQ3ZCLE9BQU8sSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3hFLENBQUM7a0lBbkZVLGdCQUFnQjtzSEFBaEIsZ0JBQWdCLDRQQVNoQixrQkFBa0IsNkpDM0IvQix5dUVBa0VBOzs0RkRoRGEsZ0JBQWdCO2tCQUo1QixTQUFTOytCQUNFLGFBQWE7NklBS2Qsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR04sU0FBUztzQkFEUixTQUFTO3VCQUFDLGtCQUFrQjtnQkFTUCxVQUFVO3NCQUEvQixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3V0bGluZSB9IGZyb20gJy4vb3V0bGluZS1pdGVtL291dGxpbmUubW9kZWwnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0ICogYXMgYm9va21hcmtzU2VsZWN0b3JzIGZyb20gJy4uLy4uLy4uL3N0b3JlL3NlbGVjdG9ycy9ib29rbWFyay5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgQm9va21hcmtOb2RlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvbW9kZWxzL2Jvb2ttYXJrcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ3JlYXRlQm9va21hcmssIExvYWRCb29rbWFya3MgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9hY3Rpb25zL2Jvb2ttYXJrLmFjdGlvbnMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFZpZXdlckV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3ZpZXdlci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEJvb2ttYXJrc1N0YXRlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvcmVkdWNlcnMvYm9va21hcmtzLnJlZHVjZXInO1xuaW1wb3J0IHsgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Rvb2xiYXIvdG9vbGJhci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEJvb2ttYXJrc0NvbXBvbmVudCB9IGZyb20gJy4vYm9va21hcmtzL2Jvb2ttYXJrcy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1zaWRlLWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWRlLWJhci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU2lkZUJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIGFubm90YXRpb25zRW5hYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgb3V0bGluZTogT3V0bGluZTtcbiAgQElucHV0KCkgdXJsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHpvb206IG51bWJlcjtcbiAgQElucHV0KCkgcm90YXRlOiBudW1iZXI7XG4gIEBJbnB1dCgpIGN1cnJlbnRQYWdlTnVtYmVyOiBudW1iZXI7XG5cbiAgQFZpZXdDaGlsZChCb29rbWFya3NDb21wb25lbnQpXG4gIGJvb2ttYXJrczogQm9va21hcmtzQ29tcG9uZW50O1xuICB0cmVlQ2hhbmdlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBzZWxlY3RlZFZpZXcgPSAnb3V0bGluZSc7XG4gIGJvb2ttYXJrTm9kZXMkOiBPYnNlcnZhYmxlPEJvb2ttYXJrTm9kZVtdPjtcbiAgc2Nyb2xsVG9wOiBhbnk7XG4gIHNpZGViYXJPcGVuOiBhbnk7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBAVmlld0NoaWxkKCdzaWRlYmFyJykgc2lkZWJhckRpdjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZpZXdlckV2ZW50czogVmlld2VyRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPEJvb2ttYXJrc1N0YXRlPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvb2xiYXJFdmVudHM6IFRvb2xiYXJFdmVudFNlcnZpY2UsXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5ib29rbWFya05vZGVzJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoYm9va21hcmtzU2VsZWN0b3JzLmdldEJvb2ttYXJrTm9kZXMpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGJvb2ttYXJrc1NlbGVjdG9ycy5nZXRFZGl0YWJsZUJvb2ttYXJrKSlcbiAgICAgIC5zdWJzY3JpYmUoZWRpdGFibGUgPT4gdGhpcy5zZWxlY3RlZFZpZXcgPSBlZGl0YWJsZSA/ICdib29rbWFya3MnIDogdGhpcy5zZWxlY3RlZFZpZXcpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5zaWRlYmFyT3V0bGluZVZpZXcuc3Vic2NyaWJlKHRvZ2dsZSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWaWV3ID0gdG9nZ2xlID8gJ291dGxpbmUnIDogJ2Jvb2ttYXJrcyc7XG4gICAgICB9KSxcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5zaWRlYmFyT3Blbi5zdWJzY3JpYmUodG9nZ2xlID0+IHtcbiAgICAgICAgdGhpcy5zaWRlYmFyT3BlbiA9IHRvZ2dsZTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGJvb2ttYXJrc1NlbGVjdG9ycy5nZXRTY3JvbGxUb3ApKS5zdWJzY3JpYmUoc2Nyb2xsVG9wVmFsdWUgPT4ge1xuICAgICAgdGhpcy5zaWRlYmFyRGl2Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gc2Nyb2xsVG9wVmFsdWU7XG4gICAgfSkpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnVybCAmJiB0aGlzLnVybCkge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgTG9hZEJvb2ttYXJrcygpKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uU2Nyb2xsKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudHJlZUNoYW5nZWQpIHtcbiAgICAgIHRoaXMuc2Nyb2xsVG9wID0gZXZlbnQuc3JjRWxlbWVudC5zY3JvbGxUb3A7XG4gICAgfVxuICAgIHRoaXMudHJlZUNoYW5nZWQgPSBmYWxzZTtcbiAgfVxuXG4gIGdvVG9EZXN0aW5hdGlvbihkZXN0aW5hdGlvbjogYW55W10pIHtcbiAgICB0aGlzLnZpZXdlckV2ZW50cy5nb1RvRGVzdGluYXRpb24oZGVzdGluYXRpb24pO1xuICB9XG5cbiAgaGFzVHJlZUNoYW5nZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnRyZWVDaGFuZ2VkID0gdmFsdWU7XG4gIH1cblxuICB0b2dnbGVTaWRlYmFyVmlldyhzaWRlYmFyVmlldzogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWxlY3RlZFZpZXcgPSBzaWRlYmFyVmlldztcbiAgfVxuXG4gIGlzVmlld2VkSXRlbShjdXJyZW50OiBPdXRsaW5lLCBuZXh0OiBPdXRsaW5lKTogYm9vbGVhbiB7XG4gICAgaWYgKGN1cnJlbnQucGFnZU51bWJlciA9PT0gdGhpcy5jdXJyZW50UGFnZU51bWJlcikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBuZXh0ID09PSB1bmRlZmluZWQgPyBjdXJyZW50LnBhZ2VOdW1iZXIgPD0gdGhpcy5jdXJyZW50UGFnZU51bWJlciA6XG4gICAgICBjdXJyZW50LnBhZ2VOdW1iZXIgPD0gdGhpcy5jdXJyZW50UGFnZU51bWJlciAmJiAobmV4dC5wYWdlTnVtYmVyID4gdGhpcy5jdXJyZW50UGFnZU51bWJlcik7XG4gIH1cblxuICBmaW5kRW5kUGFnZShuZXh0OiBPdXRsaW5lKTogbnVtYmVyIHtcbiAgICByZXR1cm4gbmV4dCA9PT0gdW5kZWZpbmVkID8gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgOiBuZXh0LnBhZ2VOdW1iZXI7XG4gIH1cbn1cbiIsIjxkaXYgaWQ9XCJ0b29sYmFyU2lkZWJhclwiPlxuICA8ZGl2XG4gICAgKm5nSWY9XCJhbm5vdGF0aW9uc0VuYWJsZWQgJiYgc2VsZWN0ZWRWaWV3ID09PSAnYm9va21hcmtzJ1wiXG4gICAgY2xhc3M9XCJzcGxpdFRvb2xiYXJCdXR0b24gdG9nZ2xlZFwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICBpZD1cInNvcnRCb29rbWFya1Bvc2l0aW9uXCJcbiAgICAgIGNsYXNzPVwic3BsaXRUb29sYmFyQnV0dG9uIGxlZnQgYm9va21hcmtfX3NvcnRfX3Bvc2l0aW9uXCJcbiAgICAgIChjbGljayk9XCJib29rbWFya3Muc29ydChib29rbWFya3MucG9zaXRpb25Tb3J0KVwiXG4gICAgICB0aXRsZT1cIk9yZGVyIGJ5IHBsYWNlIGluIGRvY3VtZW50XCJcbiAgICAgIGFyaWEtcHJlc3NlZD1cInRydWVcIlxuICAgID48L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBpZD1cInNvcnRCb29rbWFya0N1c3RvbVwiXG4gICAgICBjbGFzcz1cInNwbGl0VG9vbGJhckJ1dHRvbiBsZWZ0IGJvb2ttYXJrX19zb3J0X19jdXN0b21cIlxuICAgICAgKGNsaWNrKT1cImJvb2ttYXJrcy5zb3J0KGJvb2ttYXJrcy5jdXN0b21Tb3J0KVwiXG4gICAgICB0aXRsZT1cIk9yZGVyIG1hbnVhbGx5XCJcbiAgICAgIGFyaWEtcHJlc3NlZD1cInRydWVcIlxuICAgID48L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJzcGxpdFRvb2xiYXJCdXR0b25TZXBhcmF0b3JcIj48L2Rpdj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiYW5ub3RhdGlvbnNFbmFibGVkICYmIHNlbGVjdGVkVmlldyA9PT0gJ2Jvb2ttYXJrcydcIlxuICAgIGNsYXNzPVwic3BsaXRUb29sYmFyQnV0dG9uIHJpZ2h0XCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIGlkPVwiYWRkQm9va21hcmtcIlxuICAgICAgY2xhc3M9XCJ0b29sYmFyQnV0dG9uIGFkZEJvb2ttYXJrXCJcbiAgICAgIChjbGljayk9XCJib29rbWFya3Mub25BZGRCb29rbWFya0NsaWNrKClcIlxuICAgICAgdGl0bGU9XCJBZGQgYm9va21hcmtcIlxuICAgICAgdGFiaW5kZXg9XCIzXCJcbiAgICAgIGRhdGEtbDEwbi1pZD1cImFkZEJvb2ttYXJrXCJcbiAgICA+XG4gICAgICA8c3BhbiBkYXRhLWwxMG4taWQ9XCJhZGRCb29rbWFya19sYWJlbFwiPnt7XG4gICAgICAgIFwiQWRkIGJvb2ttYXJrXCIgfCBycHhUcmFuc2xhdGVcbiAgICAgIH19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiAjc2lkZWJhciBpZD1cInNpZGViYXJDb250ZW50XCIgY2RrU2Nyb2xsYWJsZSAoc2Nyb2xsKT1cIm9uU2Nyb2xsKCRldmVudClcIiBbaGlkZGVuXT1cIiFzaWRlYmFyT3BlblwiPlxuICA8ZGl2IGlkPVwib3V0bGluZVZpZXdcIiBjbGFzcz1cIm91dGxpbmVXaXRoRGVlcE5lc3RpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwib3V0bGluZUl0ZW1cIiAqbmdJZj1cInNlbGVjdGVkVmlldyA9PT0gJ291dGxpbmUnXCI+XG4gICAgICA8bXYtb3V0bGluZS1pdGVtXG4gICAgICAgICpuZ0Zvcj1cImxldCBvdXRsaW5lSXRlbSBvZiBvdXRsaW5lOyBpbmRleCBhcyBpXCJcbiAgICAgICAgW291dGxpbmVdPVwib3V0bGluZUl0ZW1cIlxuICAgICAgICBbY3VycmVudFBhZ2VOdW1iZXJdPVwiY3VycmVudFBhZ2VOdW1iZXJcIlxuICAgICAgICBbaXNDdXJyZW50U2VjdGlvbl09XCJpc1ZpZXdlZEl0ZW0ob3V0bGluZUl0ZW0sIG91dGxpbmVbaSArIDFdKVwiXG4gICAgICAgIFtlbmRQYWdlXT1cImZpbmRFbmRQYWdlKG91dGxpbmVbaSArIDFdKVwiXG4gICAgICAgIChuYXZpZ2F0aW9uRXZlbnQpPVwiZ29Ub0Rlc3RpbmF0aW9uKCRldmVudClcIlxuICAgICAgPjwvbXYtb3V0bGluZS1pdGVtPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiYW5ub3RhdGlvbnNFbmFibGVkICYmIHNlbGVjdGVkVmlldyA9PT0gJ2Jvb2ttYXJrcydcIlxuICAgICAgaWQ9XCJib29rbWFya0NvbnRhaW5lclwiXG4gICAgPlxuICAgICAgPG12LWJvb2ttYXJrc1xuICAgICAgICBbYm9va21hcmtOb2Rlc109XCJib29rbWFya05vZGVzJCB8IGFzeW5jXCJcbiAgICAgICAgW3pvb21dPVwiem9vbVwiXG4gICAgICAgIFtyb3RhdGVdPVwicm90YXRlXCJcbiAgICAgICAgW3BhcmVudFNjcm9sbFRvcF09XCJzY3JvbGxUb3BcIlxuICAgICAgICAoZ29Ub0Rlc3RpbmF0aW9uKT1cImdvVG9EZXN0aW5hdGlvbigkZXZlbnQpXCJcbiAgICAgICAgKHRyZWVIYXNDaGFuZ2VkKT1cImhhc1RyZWVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgPjwvbXYtYm9va21hcmtzPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvdmlld2Vycy9wZGYtdmlld2VyL3NpZGUtYmFyL3NpZGUtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21lZGlhLXZpZXdlci9zcmMvbGliL3ZpZXdlcnMvcGRmLXZpZXdlci9zaWRlLWJhci9zaWRlLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBNEIsS0FBSyxFQUErQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbEosT0FBTyxFQUFFLE1BQU0sRUFBUyxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEtBQUssa0JBQWtCLE1BQU0sNkNBQTZDLENBQUM7QUFFbEYsT0FBTyxFQUFrQixhQUFhLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQU14RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7OztBQU1yRSxNQUFNLE9BQU8sZ0JBQWdCO0lBb0IzQixZQUFvQixZQUFnQyxFQUMxQyxLQUE0QixFQUNuQixhQUFrQztRQUZqQyxpQkFBWSxHQUFaLFlBQVksQ0FBb0I7UUFDMUMsVUFBSyxHQUFMLEtBQUssQ0FBdUI7UUFDbkIsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBWHJELGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGlCQUFZLEdBQUcsU0FBUyxDQUFDO1FBS2pCLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztJQU12QyxDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztRQUNu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LElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFhO1FBQ3ZCLE9BQU8sSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3hFLENBQUM7a0lBckZVLGdCQUFnQjtzSEFBaEIsZ0JBQWdCLDRQQVNoQixrQkFBa0IsNkpDM0IvQix5dUVBa0VBOzs0RkRoRGEsZ0JBQWdCO2tCQUo1QixTQUFTOytCQUNFLGFBQWE7NklBS2Qsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR04sU0FBUztzQkFEUixTQUFTO3VCQUFDLGtCQUFrQjtnQkFTUCxVQUFVO3NCQUEvQixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3V0bGluZSB9IGZyb20gJy4vb3V0bGluZS1pdGVtL291dGxpbmUubW9kZWwnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0ICogYXMgYm9va21hcmtzU2VsZWN0b3JzIGZyb20gJy4uLy4uLy4uL3N0b3JlL3NlbGVjdG9ycy9ib29rbWFyay5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgQm9va21hcmtOb2RlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvbW9kZWxzL2Jvb2ttYXJrcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ3JlYXRlQm9va21hcmssIExvYWRCb29rbWFya3MgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9hY3Rpb25zL2Jvb2ttYXJrLmFjdGlvbnMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFZpZXdlckV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3ZpZXdlci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEJvb2ttYXJrc1N0YXRlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvcmVkdWNlcnMvYm9va21hcmtzLnJlZHVjZXInO1xuaW1wb3J0IHsgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Rvb2xiYXIvdG9vbGJhci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEJvb2ttYXJrc0NvbXBvbmVudCB9IGZyb20gJy4vYm9va21hcmtzL2Jvb2ttYXJrcy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1zaWRlLWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWRlLWJhci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU2lkZUJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIGFubm90YXRpb25zRW5hYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgb3V0bGluZTogT3V0bGluZTtcbiAgQElucHV0KCkgdXJsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHpvb206IG51bWJlcjtcbiAgQElucHV0KCkgcm90YXRlOiBudW1iZXI7XG4gIEBJbnB1dCgpIGN1cnJlbnRQYWdlTnVtYmVyOiBudW1iZXI7XG5cbiAgQFZpZXdDaGlsZChCb29rbWFya3NDb21wb25lbnQpXG4gIGJvb2ttYXJrczogQm9va21hcmtzQ29tcG9uZW50O1xuICB0cmVlQ2hhbmdlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBzZWxlY3RlZFZpZXcgPSAnb3V0bGluZSc7XG4gIGJvb2ttYXJrTm9kZXMkOiBPYnNlcnZhYmxlPEJvb2ttYXJrTm9kZVtdPjtcbiAgc2Nyb2xsVG9wOiBhbnk7XG4gIHNpZGViYXJPcGVuOiBhbnk7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBAVmlld0NoaWxkKCdzaWRlYmFyJykgc2lkZWJhckRpdjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZpZXdlckV2ZW50czogVmlld2VyRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPEJvb2ttYXJrc1N0YXRlPixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvb2xiYXJFdmVudHM6IFRvb2xiYXJFdmVudFNlcnZpY2UsXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5ib29rbWFya05vZGVzJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoYm9va21hcmtzU2VsZWN0b3JzLmdldEJvb2ttYXJrTm9kZXMpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGJvb2ttYXJrc1NlbGVjdG9ycy5nZXRFZGl0YWJsZUJvb2ttYXJrKSlcbiAgICAgIC5zdWJzY3JpYmUoZWRpdGFibGUgPT4gdGhpcy5zZWxlY3RlZFZpZXcgPSBlZGl0YWJsZSA/ICdib29rbWFya3MnIDogdGhpcy5zZWxlY3RlZFZpZXcpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5zaWRlYmFyT3V0bGluZVZpZXcuc3Vic2NyaWJlKHRvZ2dsZSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWaWV3ID0gdG9nZ2xlID8gJ291dGxpbmUnIDogJ2Jvb2ttYXJrcyc7XG4gICAgICB9KSxcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5zaWRlYmFyT3Blbi5zdWJzY3JpYmUodG9nZ2xlID0+IHtcbiAgICAgICAgdGhpcy5zaWRlYmFyT3BlbiA9IHRvZ2dsZTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGJvb2ttYXJrc1NlbGVjdG9ycy5nZXRTY3JvbGxUb3ApKS5zdWJzY3JpYmUoc2Nyb2xsVG9wVmFsdWUgPT4ge1xuICAgICAgaWYgKHRoaXMuc2lkZWJhckRpdj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICB0aGlzLnNpZGViYXJEaXYubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSBzY3JvbGxUb3BWYWx1ZVxuICAgICAgfVxuICAgIH0pKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy51cmwgJiYgdGhpcy51cmwpIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IExvYWRCb29rbWFya3MoKSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblNjcm9sbChldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnRyZWVDaGFuZ2VkKSB7XG4gICAgICB0aGlzLnNjcm9sbFRvcCA9IGV2ZW50LnNyY0VsZW1lbnQuc2Nyb2xsVG9wO1xuICAgIH1cbiAgICB0aGlzLnRyZWVDaGFuZ2VkID0gZmFsc2U7XG4gIH1cblxuICBnb1RvRGVzdGluYXRpb24oZGVzdGluYXRpb246IGFueVtdKSB7XG4gICAgdGhpcy52aWV3ZXJFdmVudHMuZ29Ub0Rlc3RpbmF0aW9uKGRlc3RpbmF0aW9uKTtcbiAgfVxuXG4gIGhhc1RyZWVDaGFuZ2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy50cmVlQ2hhbmdlZCA9IHZhbHVlO1xuICB9XG5cbiAgdG9nZ2xlU2lkZWJhclZpZXcoc2lkZWJhclZpZXc6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRWaWV3ID0gc2lkZWJhclZpZXc7XG4gIH1cblxuICBpc1ZpZXdlZEl0ZW0oY3VycmVudDogT3V0bGluZSwgbmV4dDogT3V0bGluZSk6IGJvb2xlYW4ge1xuICAgIGlmIChjdXJyZW50LnBhZ2VOdW1iZXIgPT09IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dCA9PT0gdW5kZWZpbmVkID8gY3VycmVudC5wYWdlTnVtYmVyIDw9IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIgOlxuICAgICAgY3VycmVudC5wYWdlTnVtYmVyIDw9IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIgJiYgKG5leHQucGFnZU51bWJlciA+IHRoaXMuY3VycmVudFBhZ2VOdW1iZXIpO1xuICB9XG5cbiAgZmluZEVuZFBhZ2UobmV4dDogT3V0bGluZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIG5leHQgPT09IHVuZGVmaW5lZCA/IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSIDogbmV4dC5wYWdlTnVtYmVyO1xuICB9XG59XG4iLCI8ZGl2IGlkPVwidG9vbGJhclNpZGViYXJcIj5cbiAgPGRpdlxuICAgICpuZ0lmPVwiYW5ub3RhdGlvbnNFbmFibGVkICYmIHNlbGVjdGVkVmlldyA9PT0gJ2Jvb2ttYXJrcydcIlxuICAgIGNsYXNzPVwic3BsaXRUb29sYmFyQnV0dG9uIHRvZ2dsZWRcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgaWQ9XCJzb3J0Qm9va21hcmtQb3NpdGlvblwiXG4gICAgICBjbGFzcz1cInNwbGl0VG9vbGJhckJ1dHRvbiBsZWZ0IGJvb2ttYXJrX19zb3J0X19wb3NpdGlvblwiXG4gICAgICAoY2xpY2spPVwiYm9va21hcmtzLnNvcnQoYm9va21hcmtzLnBvc2l0aW9uU29ydClcIlxuICAgICAgdGl0bGU9XCJPcmRlciBieSBwbGFjZSBpbiBkb2N1bWVudFwiXG4gICAgICBhcmlhLXByZXNzZWQ9XCJ0cnVlXCJcbiAgICA+PC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgaWQ9XCJzb3J0Qm9va21hcmtDdXN0b21cIlxuICAgICAgY2xhc3M9XCJzcGxpdFRvb2xiYXJCdXR0b24gbGVmdCBib29rbWFya19fc29ydF9fY3VzdG9tXCJcbiAgICAgIChjbGljayk9XCJib29rbWFya3Muc29ydChib29rbWFya3MuY3VzdG9tU29ydClcIlxuICAgICAgdGl0bGU9XCJPcmRlciBtYW51YWxseVwiXG4gICAgICBhcmlhLXByZXNzZWQ9XCJ0cnVlXCJcbiAgICA+PC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic3BsaXRUb29sYmFyQnV0dG9uU2VwYXJhdG9yXCI+PC9kaXY+XG4gIDxkaXZcbiAgICAqbmdJZj1cImFubm90YXRpb25zRW5hYmxlZCAmJiBzZWxlY3RlZFZpZXcgPT09ICdib29rbWFya3MnXCJcbiAgICBjbGFzcz1cInNwbGl0VG9vbGJhckJ1dHRvbiByaWdodFwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICBpZD1cImFkZEJvb2ttYXJrXCJcbiAgICAgIGNsYXNzPVwidG9vbGJhckJ1dHRvbiBhZGRCb29rbWFya1wiXG4gICAgICAoY2xpY2spPVwiYm9va21hcmtzLm9uQWRkQm9va21hcmtDbGljaygpXCJcbiAgICAgIHRpdGxlPVwiQWRkIGJvb2ttYXJrXCJcbiAgICAgIHRhYmluZGV4PVwiM1wiXG4gICAgICBkYXRhLWwxMG4taWQ9XCJhZGRCb29rbWFya1wiXG4gICAgPlxuICAgICAgPHNwYW4gZGF0YS1sMTBuLWlkPVwiYWRkQm9va21hcmtfbGFiZWxcIj57e1xuICAgICAgICBcIkFkZCBib29rbWFya1wiIHwgcnB4VHJhbnNsYXRlXG4gICAgICB9fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgI3NpZGViYXIgaWQ9XCJzaWRlYmFyQ29udGVudFwiIGNka1Njcm9sbGFibGUgKHNjcm9sbCk9XCJvblNjcm9sbCgkZXZlbnQpXCIgW2hpZGRlbl09XCIhc2lkZWJhck9wZW5cIj5cbiAgPGRpdiBpZD1cIm91dGxpbmVWaWV3XCIgY2xhc3M9XCJvdXRsaW5lV2l0aERlZXBOZXN0aW5nXCI+XG4gICAgPGRpdiBjbGFzcz1cIm91dGxpbmVJdGVtXCIgKm5nSWY9XCJzZWxlY3RlZFZpZXcgPT09ICdvdXRsaW5lJ1wiPlxuICAgICAgPG12LW91dGxpbmUtaXRlbVxuICAgICAgICAqbmdGb3I9XCJsZXQgb3V0bGluZUl0ZW0gb2Ygb3V0bGluZTsgaW5kZXggYXMgaVwiXG4gICAgICAgIFtvdXRsaW5lXT1cIm91dGxpbmVJdGVtXCJcbiAgICAgICAgW2N1cnJlbnRQYWdlTnVtYmVyXT1cImN1cnJlbnRQYWdlTnVtYmVyXCJcbiAgICAgICAgW2lzQ3VycmVudFNlY3Rpb25dPVwiaXNWaWV3ZWRJdGVtKG91dGxpbmVJdGVtLCBvdXRsaW5lW2kgKyAxXSlcIlxuICAgICAgICBbZW5kUGFnZV09XCJmaW5kRW5kUGFnZShvdXRsaW5lW2kgKyAxXSlcIlxuICAgICAgICAobmF2aWdhdGlvbkV2ZW50KT1cImdvVG9EZXN0aW5hdGlvbigkZXZlbnQpXCJcbiAgICAgID48L212LW91dGxpbmUtaXRlbT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImFubm90YXRpb25zRW5hYmxlZCAmJiBzZWxlY3RlZFZpZXcgPT09ICdib29rbWFya3MnXCJcbiAgICAgIGlkPVwiYm9va21hcmtDb250YWluZXJcIlxuICAgID5cbiAgICAgIDxtdi1ib29rbWFya3NcbiAgICAgICAgW2Jvb2ttYXJrTm9kZXNdPVwiYm9va21hcmtOb2RlcyQgfCBhc3luY1wiXG4gICAgICAgIFt6b29tXT1cInpvb21cIlxuICAgICAgICBbcm90YXRlXT1cInJvdGF0ZVwiXG4gICAgICAgIFtwYXJlbnRTY3JvbGxUb3BdPVwic2Nyb2xsVG9wXCJcbiAgICAgICAgKGdvVG9EZXN0aW5hdGlvbik9XCJnb1RvRGVzdGluYXRpb24oJGV2ZW50KVwiXG4gICAgICAgICh0cmVlSGFzQ2hhbmdlZCk9XCJoYXNUcmVlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgID48L212LWJvb2ttYXJrcz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|