Socket
Socket
Sign inDemoInstall

@limble/limble-tree

Package Overview
Dependencies
Maintainers
2
Versions
51
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@limble/limble-tree - npm Package Compare versions

Comparing version 0.11.8 to 0.12.0

4

esm2015/lib/custom-event-bindings/dragleave-no-change-detect.directive.js

@@ -24,3 +24,3 @@ import { Directive, EventEmitter, Output } from "@angular/core";

DragleaveNoChangeDetectDirective.ɵfac = function DragleaveNoChangeDetectDirective_Factory(t) { return new (t || DragleaveNoChangeDetectDirective)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ElementRef)); };
DragleaveNoChangeDetectDirective.ɵdir = i0.ɵɵdefineDirective({ type: DragleaveNoChangeDetectDirective, selectors: [["", "dragleaveNoChangeDetect", ""]], outputs: { dragleaveNoChangeDetect: "dragleaveNoChangeDetect" } });
DragleaveNoChangeDetectDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: DragleaveNoChangeDetectDirective, selectors: [["", "dragleaveNoChangeDetect", ""]], outputs: { dragleaveNoChangeDetect: "dragleaveNoChangeDetect" } });
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DragleaveNoChangeDetectDirective, [{

@@ -34,2 +34,2 @@ type: Directive,

}] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2xlYXZlLW5vLWNoYW5nZS1kZXRlY3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9jdXN0b20tZXZlbnQtYmluZGluZ3MvZHJhZ2xlYXZlLW5vLWNoYW5nZS1kZXRlY3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSixTQUFTLEVBRVQsWUFBWSxFQUlaLE1BQU0sRUFDUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7QUFLL0MsTUFBTSxPQUFPLGdDQUFnQztJQUkxQyxZQUNvQixNQUFjLEVBQ2QsRUFBdUI7UUFEdkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXFCO1FBRXhDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFDO0lBQ2hFLENBQUM7SUFFRCxRQUFRO1FBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FDL0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQ3JCLFdBQVcsQ0FDYixDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNwQixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdDLENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVztRQUNSLElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLFNBQVMsRUFBRTtZQUN2QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdkM7SUFDSixDQUFDOztnSEExQlMsZ0NBQWdDO3FFQUFoQyxnQ0FBZ0M7dUZBQWhDLGdDQUFnQztjQUg1QyxTQUFTO2VBQUM7Z0JBQ1IsUUFBUSxFQUFFLDJCQUEyQjthQUN2QztrRkFFcUIsdUJBQXVCO2tCQUF6QyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgIERpcmVjdGl2ZSxcbiAgIEVsZW1lbnRSZWYsXG4gICBFdmVudEVtaXR0ZXIsXG4gICBOZ1pvbmUsXG4gICBPbkRlc3Ryb3ksXG4gICBPbkluaXQsXG4gICBPdXRwdXRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IGZyb21FdmVudCwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcblxuQERpcmVjdGl2ZSh7XG4gICBzZWxlY3RvcjogXCJbZHJhZ2xlYXZlTm9DaGFuZ2VEZXRlY3RdXCJcbn0pXG5leHBvcnQgY2xhc3MgRHJhZ2xlYXZlTm9DaGFuZ2VEZXRlY3REaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICBAT3V0cHV0KCkgcmVhZG9ubHkgZHJhZ2xlYXZlTm9DaGFuZ2VEZXRlY3Q6IEV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+O1xuICAgcHJpdmF0ZSBldmVudFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmPEVsZW1lbnQ+XG4gICApIHtcbiAgICAgIHRoaXMuZHJhZ2xlYXZlTm9DaGFuZ2VEZXRlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcbiAgIH1cblxuICAgbmdPbkluaXQoKSB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICB0aGlzLmV2ZW50U3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50PERyYWdFdmVudD4oXG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBcImRyYWdsZWF2ZVwiXG4gICAgICAgICApLnN1YnNjcmliZSgoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRyYWdsZWF2ZU5vQ2hhbmdlRGV0ZWN0LmVtaXQoJGV2ZW50KTtcbiAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gICB9XG5cbiAgIG5nT25EZXN0cm95KCkge1xuICAgICAgaWYgKHRoaXMuZXZlbnRTdWJzY3JpcHRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgdGhpcy5ldmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2xlYXZlLW5vLWNoYW5nZS1kZXRlY3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9jdXN0b20tZXZlbnQtYmluZGluZ3MvZHJhZ2xlYXZlLW5vLWNoYW5nZS1kZXRlY3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSixTQUFTLEVBRVQsWUFBWSxFQUlaLE1BQU0sRUFDUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7QUFLL0MsTUFBTSxPQUFPLGdDQUFnQztJQUkxQyxZQUNvQixNQUFjLEVBQ2QsRUFBdUI7UUFEdkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXFCO1FBRXhDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFDO0lBQ2hFLENBQUM7SUFFRCxRQUFRO1FBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FDL0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQ3JCLFdBQVcsQ0FDYixDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNwQixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdDLENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVztRQUNSLElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLFNBQVMsRUFBRTtZQUN2QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdkM7SUFDSixDQUFDOztnSEExQlMsZ0NBQWdDO21GQUFoQyxnQ0FBZ0M7dUZBQWhDLGdDQUFnQztjQUg1QyxTQUFTO2VBQUM7Z0JBQ1IsUUFBUSxFQUFFLDJCQUEyQjthQUN2QztrRkFFcUIsdUJBQXVCO2tCQUF6QyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgIERpcmVjdGl2ZSxcbiAgIEVsZW1lbnRSZWYsXG4gICBFdmVudEVtaXR0ZXIsXG4gICBOZ1pvbmUsXG4gICBPbkRlc3Ryb3ksXG4gICBPbkluaXQsXG4gICBPdXRwdXRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IGZyb21FdmVudCwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcblxuQERpcmVjdGl2ZSh7XG4gICBzZWxlY3RvcjogXCJbZHJhZ2xlYXZlTm9DaGFuZ2VEZXRlY3RdXCJcbn0pXG5leHBvcnQgY2xhc3MgRHJhZ2xlYXZlTm9DaGFuZ2VEZXRlY3REaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICBAT3V0cHV0KCkgcmVhZG9ubHkgZHJhZ2xlYXZlTm9DaGFuZ2VEZXRlY3Q6IEV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+O1xuICAgcHJpdmF0ZSBldmVudFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmPEVsZW1lbnQ+XG4gICApIHtcbiAgICAgIHRoaXMuZHJhZ2xlYXZlTm9DaGFuZ2VEZXRlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcbiAgIH1cblxuICAgbmdPbkluaXQoKSB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICB0aGlzLmV2ZW50U3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50PERyYWdFdmVudD4oXG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBcImRyYWdsZWF2ZVwiXG4gICAgICAgICApLnN1YnNjcmliZSgoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRyYWdsZWF2ZU5vQ2hhbmdlRGV0ZWN0LmVtaXQoJGV2ZW50KTtcbiAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gICB9XG5cbiAgIG5nT25EZXN0cm95KCkge1xuICAgICAgaWYgKHRoaXMuZXZlbnRTdWJzY3JpcHRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgdGhpcy5ldmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgfVxufVxuIl19

@@ -28,3 +28,3 @@ import { Directive, EventEmitter, Input, Output } from "@angular/core";

DragoverNoChangeDetectDirective.ɵfac = function DragoverNoChangeDetectDirective_Factory(t) { return new (t || DragoverNoChangeDetectDirective)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ElementRef)); };
DragoverNoChangeDetectDirective.ɵdir = i0.ɵɵdefineDirective({ type: DragoverNoChangeDetectDirective, selectors: [["", "dragoverNoChangeDetect", ""]], inputs: { dragoverEventThrottle: "dragoverEventThrottle" }, outputs: { dragoverNoChangeDetect: "dragoverNoChangeDetect" } });
DragoverNoChangeDetectDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: DragoverNoChangeDetectDirective, selectors: [["", "dragoverNoChangeDetect", ""]], inputs: { dragoverEventThrottle: "dragoverEventThrottle" }, outputs: { dragoverNoChangeDetect: "dragoverNoChangeDetect" } });
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DragoverNoChangeDetectDirective, [{

@@ -40,2 +40,2 @@ type: Directive,

}] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ292ZXItbm8tY2hhbmdlLWRldGVjdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2N1c3RvbS1ldmVudC1iaW5kaW5ncy9kcmFnb3Zlci1uby1jaGFuZ2UtZGV0ZWN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0osU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUNSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLOUMsTUFBTSxPQUFPLCtCQUErQjtJQUt6QyxZQUNvQixNQUFjLEVBQ2QsRUFBdUI7UUFEdkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXFCO1FBRXhDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFDO1FBQzVELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELFFBQVE7UUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNoQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUMvQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFDckIsVUFBVSxDQUNaO2lCQUNHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7aUJBQzlDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNuQixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLENBQUMsQ0FBQyxDQUFDO1FBQ1QsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVztRQUNSLElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLFNBQVMsRUFBRTtZQUN2QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdkM7SUFDSixDQUFDOzs4R0E5QlMsK0JBQStCO29FQUEvQiwrQkFBK0I7dUZBQS9CLCtCQUErQjtjQUgzQyxTQUFTO2VBQUM7Z0JBQ1IsUUFBUSxFQUFFLDBCQUEwQjthQUN0QztrRkFFVyxxQkFBcUI7a0JBQTdCLEtBQUs7WUFDYSxzQkFBc0I7a0JBQXhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICBEaXJlY3RpdmUsXHJcbiAgIEVsZW1lbnRSZWYsXHJcbiAgIEV2ZW50RW1pdHRlcixcclxuICAgSW5wdXQsXHJcbiAgIE5nWm9uZSxcclxuICAgT25EZXN0cm95LFxyXG4gICBPbkluaXQsXHJcbiAgIE91dHB1dFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IGZyb21FdmVudCwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgdGhyb3R0bGVUaW1lIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgc2VsZWN0b3I6IFwiW2RyYWdvdmVyTm9DaGFuZ2VEZXRlY3RdXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIERyYWdvdmVyTm9DaGFuZ2VEZXRlY3REaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgIEBJbnB1dCgpIGRyYWdvdmVyRXZlbnRUaHJvdHRsZTogbnVtYmVyO1xyXG4gICBAT3V0cHV0KCkgcmVhZG9ubHkgZHJhZ292ZXJOb0NoYW5nZURldGVjdDogRXZlbnRFbWl0dGVyPERyYWdFdmVudD47XHJcbiAgIHByaXZhdGUgZXZlbnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmPEVsZW1lbnQ+XHJcbiAgICkge1xyXG4gICAgICB0aGlzLmRyYWdvdmVyTm9DaGFuZ2VEZXRlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcclxuICAgICAgdGhpcy5kcmFnb3ZlckV2ZW50VGhyb3R0bGUgPSAyNTtcclxuICAgfVxyXG5cclxuICAgbmdPbkluaXQoKSB7XHJcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAgdGhpcy5ldmVudFN1YnNjcmlwdGlvbiA9IGZyb21FdmVudDxEcmFnRXZlbnQ+KFxyXG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgIFwiZHJhZ292ZXJcIlxyXG4gICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKHRocm90dGxlVGltZSh0aGlzLmRyYWdvdmVyRXZlbnRUaHJvdHRsZSkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCRldmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICB0aGlzLmRyYWdvdmVyTm9DaGFuZ2VEZXRlY3QuZW1pdCgkZXZlbnQpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgIH1cclxuXHJcbiAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICBpZiAodGhpcy5ldmVudFN1YnNjcmlwdGlvbiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRoaXMuZXZlbnRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgfVxyXG4gICB9XHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ292ZXItbm8tY2hhbmdlLWRldGVjdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2N1c3RvbS1ldmVudC1iaW5kaW5ncy9kcmFnb3Zlci1uby1jaGFuZ2UtZGV0ZWN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0osU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUNSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLOUMsTUFBTSxPQUFPLCtCQUErQjtJQUt6QyxZQUNvQixNQUFjLEVBQ2QsRUFBdUI7UUFEdkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLE9BQUUsR0FBRixFQUFFLENBQXFCO1FBRXhDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFDO1FBQzVELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELFFBQVE7UUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNoQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUMvQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFDckIsVUFBVSxDQUNaO2lCQUNHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7aUJBQzlDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNuQixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLENBQUMsQ0FBQyxDQUFDO1FBQ1QsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVztRQUNSLElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLFNBQVMsRUFBRTtZQUN2QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdkM7SUFDSixDQUFDOzs4R0E5QlMsK0JBQStCO2tGQUEvQiwrQkFBK0I7dUZBQS9CLCtCQUErQjtjQUgzQyxTQUFTO2VBQUM7Z0JBQ1IsUUFBUSxFQUFFLDBCQUEwQjthQUN0QztrRkFFVyxxQkFBcUI7a0JBQTdCLEtBQUs7WUFDYSxzQkFBc0I7a0JBQXhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICBEaXJlY3RpdmUsXHJcbiAgIEVsZW1lbnRSZWYsXHJcbiAgIEV2ZW50RW1pdHRlcixcclxuICAgSW5wdXQsXHJcbiAgIE5nWm9uZSxcclxuICAgT25EZXN0cm95LFxyXG4gICBPbkluaXQsXHJcbiAgIE91dHB1dFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IGZyb21FdmVudCwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgdGhyb3R0bGVUaW1lIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgc2VsZWN0b3I6IFwiW2RyYWdvdmVyTm9DaGFuZ2VEZXRlY3RdXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIERyYWdvdmVyTm9DaGFuZ2VEZXRlY3REaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgIEBJbnB1dCgpIGRyYWdvdmVyRXZlbnRUaHJvdHRsZTogbnVtYmVyO1xyXG4gICBAT3V0cHV0KCkgcmVhZG9ubHkgZHJhZ292ZXJOb0NoYW5nZURldGVjdDogRXZlbnRFbWl0dGVyPERyYWdFdmVudD47XHJcbiAgIHByaXZhdGUgZXZlbnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmPEVsZW1lbnQ+XHJcbiAgICkge1xyXG4gICAgICB0aGlzLmRyYWdvdmVyTm9DaGFuZ2VEZXRlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcclxuICAgICAgdGhpcy5kcmFnb3ZlckV2ZW50VGhyb3R0bGUgPSAyNTtcclxuICAgfVxyXG5cclxuICAgbmdPbkluaXQoKSB7XHJcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAgdGhpcy5ldmVudFN1YnNjcmlwdGlvbiA9IGZyb21FdmVudDxEcmFnRXZlbnQ+KFxyXG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgIFwiZHJhZ292ZXJcIlxyXG4gICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKHRocm90dGxlVGltZSh0aGlzLmRyYWdvdmVyRXZlbnRUaHJvdHRsZSkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCRldmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICB0aGlzLmRyYWdvdmVyTm9DaGFuZ2VEZXRlY3QuZW1pdCgkZXZlbnQpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgIH1cclxuXHJcbiAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICBpZiAodGhpcy5ldmVudFN1YnNjcmlwdGlvbiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRoaXMuZXZlbnRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgfVxyXG4gICB9XHJcbn1cclxuIl19

@@ -65,3 +65,3 @@ import { ChangeDetectionStrategy, Component, Input } from "@angular/core";

DropZoneComponent.ɵfac = function DropZoneComponent_Factory(t) { return new (t || DropZoneComponent)(i0.ɵɵdirectiveInject(i1.DropZoneService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
DropZoneComponent.ɵcmp = i0.ɵɵdefineComponent({ type: DropZoneComponent, selectors: [["drop-zone"]], inputs: { dropZone: "dropZone" }, decls: 1, vars: 1, consts: [["class", "dropZoneContainer", 3, "dragenter", 4, "ngIf"], [1, "dropZoneContainer", 3, "dragenter"], [3, "ngClass"]], template: function DropZoneComponent_Template(rf, ctx) { if (rf & 1) {
DropZoneComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DropZoneComponent, selectors: [["drop-zone"]], inputs: { dropZone: "dropZone" }, decls: 1, vars: 1, consts: [["class", "dropZoneContainer", 3, "dragenter", 4, "ngIf"], [1, "dropZoneContainer", 3, "dragenter"], [3, "ngClass"]], template: function DropZoneComponent_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵtemplate(0, DropZoneComponent_div_0_Template, 2, 4, "div", 0);

@@ -82,2 +82,2 @@ } if (rf & 2) {

}] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC16b25lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvZHJvcC16b25lL2Ryb3Atem9uZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2Ryb3Atem9uZS9kcm9wLXpvbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNKLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsS0FBSyxFQUdQLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0lDUHZCLDhCQUFnRjtJQUFqRCxnTUFBZ0M7SUFDNUQseUJBQTREO0lBQy9ELGlCQUFNOzs7SUFERSxlQUFnRDtJQUFoRCxtRkFBZ0Q7O0FEaUJ4RCxNQUFNLE9BQU8saUJBQWlCO0lBTTNCLFlBQ29CLGVBQWdDLEVBQ2hDLGlCQUFvQztRQURwQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUVyRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRU0sZ0JBQWdCO1FBQ3BCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUU7WUFDdEQsT0FBTztTQUNUO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVNLFFBQVE7UUFDWixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQztTQUNyRTtRQUNELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUTthQUNqQyxjQUFjLEVBQUU7YUFDaEIsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7O1lBQ3BCLFFBQVEsT0FBTyxFQUFFO2dCQUNkLEtBQUssY0FBYyxDQUFDLENBQUM7b0JBQ2xCLElBQUksQ0FBQyxPQUFPLGVBQUcsSUFBSSxDQUFDLFFBQVEsMENBQUUsU0FBUyxxQ0FBTSxLQUFLLENBQUM7b0JBQ25ELE1BQU07aUJBQ1I7Z0JBQ0QsS0FBSyxhQUFhLENBQUMsQ0FBQztvQkFDakIsSUFBSSxDQUFDLE1BQU0sZUFBRyxJQUFJLENBQUMsUUFBUSwwQ0FBRSxRQUFRLHFDQUFNLEtBQUssQ0FBQztvQkFDakQsTUFBTTtpQkFDUjtnQkFDRCxLQUFLLGVBQWUsQ0FBQyxDQUFDO29CQUNuQixtREFBbUQ7b0JBQ25ELE1BQU07aUJBQ1I7Z0JBQ0QsT0FBTyxDQUFDLENBQUM7b0JBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO2lCQUM1QzthQUNIO1lBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVNLFdBQVc7UUFDZixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxTQUFTLEVBQUU7WUFDdEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3RDO0lBQ0osQ0FBQzs7a0ZBckRTLGlCQUFpQjtzREFBakIsaUJBQWlCO1FDbEI5QixrRUFFTTs7UUFGMkQsa0NBQWE7O3VGRGtCakUsaUJBQWlCO2NBTjdCLFNBQVM7ZUFBQztnQkFDUixRQUFRLEVBQUUsV0FBVztnQkFDckIsV0FBVyxFQUFFLDRCQUE0QjtnQkFDekMsU0FBUyxFQUFFLENBQUMsNEJBQTRCLENBQUM7Z0JBQ3pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2pEO2tHQUVXLFFBQVE7a0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgIENvbXBvbmVudCxcclxuICAgSW5wdXQsXHJcbiAgIE9uRGVzdHJveSxcclxuICAgT25Jbml0XHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgRHJvcFpvbmUgfSBmcm9tIFwiLi4vY2xhc3Nlcy9Ecm9wWm9uZVwiO1xyXG5pbXBvcnQgeyBEcm9wWm9uZVNlcnZpY2UgfSBmcm9tIFwiLi4vbGltYmxlLXRyZWUtcm9vdC9kcm9wLXpvbmUuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgIHNlbGVjdG9yOiBcImRyb3Atem9uZVwiLFxyXG4gICB0ZW1wbGF0ZVVybDogXCIuL2Ryb3Atem9uZS5jb21wb25lbnQuaHRtbFwiLFxyXG4gICBzdHlsZVVybHM6IFtcIi4vZHJvcC16b25lLmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJvcFpvbmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgIEBJbnB1dCgpIGRyb3Bab25lOiBEcm9wWm9uZSB8IHVuZGVmaW5lZDtcclxuICAgcHJpdmF0ZSBjb21tU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XHJcbiAgIHB1YmxpYyB2aXNpYmxlOiBib29sZWFuO1xyXG4gICBwdWJsaWMgYWN0aXZlOiBib29sZWFuO1xyXG5cclxuICAgY29uc3RydWN0b3IoXHJcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgZHJvcFpvbmVTZXJ2aWNlOiBEcm9wWm9uZVNlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgICkge1xyXG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcclxuICAgfVxyXG5cclxuICAgcHVibGljIGRyYWdlbnRlckhhbmRsZXIoKSB7XHJcbiAgICAgIGlmICh0aGlzLmRyb3Bab25lID09PSB1bmRlZmluZWQgfHwgdGhpcy5hY3RpdmUgPT09IHRydWUpIHtcclxuICAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZHJvcFpvbmVTZXJ2aWNlLnN3YXBBY3RpdmVEcm9wWm9uZSh0aGlzLmRyb3Bab25lKTtcclxuICAgfVxyXG5cclxuICAgcHVibGljIG5nT25Jbml0KCkge1xyXG4gICAgICBpZiAodGhpcy5kcm9wWm9uZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vIGRyb3Agem9uZSBvYmplY3QgYXQgY29tcG9uZW50IGluaXRpYWxpemF0aW9uXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29tbVN1YnNjcmlwdGlvbiA9IHRoaXMuZHJvcFpvbmVcclxuICAgICAgICAgLmdldENvbW1DaGFubmVsKClcclxuICAgICAgICAgLnN1YnNjcmliZSgobWVzc2FnZSkgPT4ge1xyXG4gICAgICAgICAgICBzd2l0Y2ggKG1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgICAgY2FzZSBcImNoZWNrVmlzaWJsZVwiOiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IHRoaXMuZHJvcFpvbmU/LmlzVmlzaWJsZSgpID8/IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICBjYXNlIFwiY2hlY2tBY3RpdmVcIjoge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZSA9IHRoaXMuZHJvcFpvbmU/LmlzQWN0aXZlKCkgPz8gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgIGNhc2UgXCJjaGVja1JlbmRlcmVkXCI6IHtcclxuICAgICAgICAgICAgICAgICAgLy9EbyBub3RoaW5nLiBUaGlzIG1lc3NhZ2UgaXMgZm9yIG90aGVyIHN1YnNjcmliZXJzXHJcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcclxuICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidW5oYW5kbGVkIGNvbW0gbWVzc2FnZVwiKTtcclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICB9KTtcclxuICAgfVxyXG5cclxuICAgcHVibGljIG5nT25EZXN0cm95KCkge1xyXG4gICAgICBpZiAodGhpcy5jb21tU3Vic2NyaXB0aW9uICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgdGhpcy5jb21tU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIH1cclxuICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJkcm9wWm9uZUNvbnRhaW5lclwiIChkcmFnZW50ZXIpPVwiZHJhZ2VudGVySGFuZGxlcigpXCIgKm5nSWY9XCJ2aXNpYmxlXCI+XHJcbiAgIDxkaXYgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGFjdGl2ZSwgcmVsYXRlZDogIWFjdGl2ZSB9XCI+PC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC16b25lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvZHJvcC16b25lL2Ryb3Atem9uZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2Ryb3Atem9uZS9kcm9wLXpvbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNKLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsS0FBSyxFQUdQLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0lDUHZCLDhCQUFnRjtJQUFqRCxnTUFBZ0M7SUFDNUQseUJBQTREO0lBQy9ELGlCQUFNOzs7SUFERSxlQUFnRDtJQUFoRCxtRkFBZ0Q7O0FEaUJ4RCxNQUFNLE9BQU8saUJBQWlCO0lBTTNCLFlBQ29CLGVBQWdDLEVBQ2hDLGlCQUFvQztRQURwQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUVyRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRU0sZ0JBQWdCO1FBQ3BCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUU7WUFDdEQsT0FBTztTQUNUO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVNLFFBQVE7UUFDWixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQztTQUNyRTtRQUNELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUTthQUNqQyxjQUFjLEVBQUU7YUFDaEIsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7O1lBQ3BCLFFBQVEsT0FBTyxFQUFFO2dCQUNkLEtBQUssY0FBYyxDQUFDLENBQUM7b0JBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBQSxNQUFBLElBQUksQ0FBQyxRQUFRLDBDQUFFLFNBQVMsRUFBRSxtQ0FBSSxLQUFLLENBQUM7b0JBQ25ELE1BQU07aUJBQ1I7Z0JBQ0QsS0FBSyxhQUFhLENBQUMsQ0FBQztvQkFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFBLE1BQUEsSUFBSSxDQUFDLFFBQVEsMENBQUUsUUFBUSxFQUFFLG1DQUFJLEtBQUssQ0FBQztvQkFDakQsTUFBTTtpQkFDUjtnQkFDRCxLQUFLLGVBQWUsQ0FBQyxDQUFDO29CQUNuQixtREFBbUQ7b0JBQ25ELE1BQU07aUJBQ1I7Z0JBQ0QsT0FBTyxDQUFDLENBQUM7b0JBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO2lCQUM1QzthQUNIO1lBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVNLFdBQVc7UUFDZixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxTQUFTLEVBQUU7WUFDdEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3RDO0lBQ0osQ0FBQzs7a0ZBckRTLGlCQUFpQjtvRUFBakIsaUJBQWlCO1FDbEI5QixrRUFFTTs7UUFGMkQsa0NBQWE7O3VGRGtCakUsaUJBQWlCO2NBTjdCLFNBQVM7ZUFBQztnQkFDUixRQUFRLEVBQUUsV0FBVztnQkFDckIsV0FBVyxFQUFFLDRCQUE0QjtnQkFDekMsU0FBUyxFQUFFLENBQUMsNEJBQTRCLENBQUM7Z0JBQ3pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2pEO2tHQUVXLFFBQVE7a0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgIENvbXBvbmVudCxcclxuICAgSW5wdXQsXHJcbiAgIE9uRGVzdHJveSxcclxuICAgT25Jbml0XHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgRHJvcFpvbmUgfSBmcm9tIFwiLi4vY2xhc3Nlcy9Ecm9wWm9uZVwiO1xyXG5pbXBvcnQgeyBEcm9wWm9uZVNlcnZpY2UgfSBmcm9tIFwiLi4vbGltYmxlLXRyZWUtcm9vdC9kcm9wLXpvbmUuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgIHNlbGVjdG9yOiBcImRyb3Atem9uZVwiLFxyXG4gICB0ZW1wbGF0ZVVybDogXCIuL2Ryb3Atem9uZS5jb21wb25lbnQuaHRtbFwiLFxyXG4gICBzdHlsZVVybHM6IFtcIi4vZHJvcC16b25lLmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJvcFpvbmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgIEBJbnB1dCgpIGRyb3Bab25lOiBEcm9wWm9uZSB8IHVuZGVmaW5lZDtcclxuICAgcHJpdmF0ZSBjb21tU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XHJcbiAgIHB1YmxpYyB2aXNpYmxlOiBib29sZWFuO1xyXG4gICBwdWJsaWMgYWN0aXZlOiBib29sZWFuO1xyXG5cclxuICAgY29uc3RydWN0b3IoXHJcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgZHJvcFpvbmVTZXJ2aWNlOiBEcm9wWm9uZVNlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgICkge1xyXG4gICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcclxuICAgfVxyXG5cclxuICAgcHVibGljIGRyYWdlbnRlckhhbmRsZXIoKSB7XHJcbiAgICAgIGlmICh0aGlzLmRyb3Bab25lID09PSB1bmRlZmluZWQgfHwgdGhpcy5hY3RpdmUgPT09IHRydWUpIHtcclxuICAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZHJvcFpvbmVTZXJ2aWNlLnN3YXBBY3RpdmVEcm9wWm9uZSh0aGlzLmRyb3Bab25lKTtcclxuICAgfVxyXG5cclxuICAgcHVibGljIG5nT25Jbml0KCkge1xyXG4gICAgICBpZiAodGhpcy5kcm9wWm9uZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vIGRyb3Agem9uZSBvYmplY3QgYXQgY29tcG9uZW50IGluaXRpYWxpemF0aW9uXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29tbVN1YnNjcmlwdGlvbiA9IHRoaXMuZHJvcFpvbmVcclxuICAgICAgICAgLmdldENvbW1DaGFubmVsKClcclxuICAgICAgICAgLnN1YnNjcmliZSgobWVzc2FnZSkgPT4ge1xyXG4gICAgICAgICAgICBzd2l0Y2ggKG1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgICAgY2FzZSBcImNoZWNrVmlzaWJsZVwiOiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IHRoaXMuZHJvcFpvbmU/LmlzVmlzaWJsZSgpID8/IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICBjYXNlIFwiY2hlY2tBY3RpdmVcIjoge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZSA9IHRoaXMuZHJvcFpvbmU/LmlzQWN0aXZlKCkgPz8gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgIGNhc2UgXCJjaGVja1JlbmRlcmVkXCI6IHtcclxuICAgICAgICAgICAgICAgICAgLy9EbyBub3RoaW5nLiBUaGlzIG1lc3NhZ2UgaXMgZm9yIG90aGVyIHN1YnNjcmliZXJzXHJcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcclxuICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidW5oYW5kbGVkIGNvbW0gbWVzc2FnZVwiKTtcclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICB9KTtcclxuICAgfVxyXG5cclxuICAgcHVibGljIG5nT25EZXN0cm95KCkge1xyXG4gICAgICBpZiAodGhpcy5jb21tU3Vic2NyaXB0aW9uICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgdGhpcy5jb21tU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIH1cclxuICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJkcm9wWm9uZUNvbnRhaW5lclwiIChkcmFnZW50ZXIpPVwiZHJhZ2VudGVySGFuZGxlcigpXCIgKm5nSWY9XCJ2aXNpYmxlXCI+XHJcbiAgIDxkaXYgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGFjdGl2ZSwgcmVsYXRlZDogIWFjdGl2ZSB9XCI+PC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=

@@ -9,2 +9,4 @@ import { Component, Input, ViewChild, ViewContainerRef } from "@angular/core";

import * as i3 from "../limble-tree-root/tree-construction-status.service";
import * as i4 from "@angular/common";
import * as i5 from "../drop-zone/drop-zone.component";
const _c0 = ["children"];

@@ -83,4 +85,4 @@ function LimbleTreeBranchComponent_drop_zone_1_Template(rf, ctx) { if (rf & 1) {

LimbleTreeBranchComponent.ɵfac = function LimbleTreeBranchComponent_Factory(t) { return new (t || LimbleTreeBranchComponent)(i0.ɵɵdirectiveInject(i1.TreeService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2.DropZoneService), i0.ɵɵdirectiveInject(i3.TreeConstructionStatus), i0.ɵɵdirectiveInject(i0.NgZone)); };
LimbleTreeBranchComponent.ɵcmp = i0.ɵɵdefineComponent({ type: LimbleTreeBranchComponent, selectors: [["limble-tree-branch"]], viewQuery: function LimbleTreeBranchComponent_Query(rf, ctx) { if (rf & 1) {
i0.ɵɵviewQuery(_c0, 1, ViewContainerRef);
LimbleTreeBranchComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LimbleTreeBranchComponent, selectors: [["limble-tree-branch"]], viewQuery: function LimbleTreeBranchComponent_Query(rf, ctx) { if (rf & 1) {
i0.ɵɵviewQuery(_c0, 5, ViewContainerRef);
} if (rf & 2) {

@@ -102,3 +104,3 @@ let _t;

i0.ɵɵproperty("hidden", ctx.branch && ctx.branch.data.collapsed);
} }, styles: ["./limble-tree-branch.component.scss"] });
} }, directives: [i4.NgIf, i5.DropZoneComponent], styles: [""] });
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LimbleTreeBranchComponent, [{

@@ -109,3 +111,3 @@ type: Component,

templateUrl: "./limble-tree-branch.component.html",
styles: ["./limble-tree-branch.component.scss"]
styleUrls: ["./limble-tree-branch.component.scss"]
}]

@@ -118,2 +120,2 @@ }], function () { return [{ type: i1.TreeService }, { type: i0.ChangeDetectorRef }, { type: i2.DropZoneService }, { type: i3.TreeConstructionStatus }, { type: i0.NgZone }]; }, { branch: [{

}] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGltYmxlLXRyZWUtYnJhbmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvbGltYmxlLXRyZWUtYnJhbmNoL2xpbWJsZS10cmVlLWJyYW5jaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2xpbWJsZS10cmVlLWJyYW5jaC9saW1ibGUtdHJlZS1icmFuY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdKLFNBQVMsRUFDVCxLQUFLLEVBSUwsU0FBUyxFQUNULGdCQUFnQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7Ozs7OztJQ2R4QywrQkFHYTs7O0lBRFYsZ0RBQTJCOzs7QURxQmpDLE1BQU0sT0FBTyx5QkFBeUI7SUFhbkMsWUFDVyxXQUF3QixFQUNmLGlCQUFvQyxFQUNwQyxlQUFnQyxFQUNoQyxzQkFBOEMsRUFDOUMsTUFBYzs7UUFKdkIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDZixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFFL0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxNQUFNLFNBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLDBDQUFFLE1BQU0sQ0FBQztRQUNuRCxJQUFJLENBQUMsb0JB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QW9DO1FBQ2pDLHNGQUdhO1FBQ2IsK0JBQTRFO1FBQ3pFLDJIQUFxQztRQUN4QyxpQkFBTztRQUNWLGlCQUFNOztRQVJELCtDQUE4QjtRQUU1QixlQUEwQjtRQUExQiwrQ0FBMEI7UUFHeEIsZUFBMEM7UUFBMUMsZ0VBQTBDOzt1RkRtQnRDLHlCQUF5QjtjQUxyQyxTQUFTO2VBQUM7Z0JBQ1IsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsV0FBVyxFQUFFLHFDQUFxQztnQkFDbEQsTUFBTSxFQUFFLENBQUMscUNBQXFDLENBQUM7YUFDakQ7c0xBR1csTUFBTTtrQkFBZCxLQUFLO1lBRTZDLFFBQVE7a0JBQTFELFNBQVM7bUJBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgQWZ0ZXJWaWV3SW5pdCxcclxuICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgIENvbXBvbmVudCxcclxuICAgSW5wdXQsXHJcbiAgIE5nWm9uZSxcclxuICAgT25EZXN0cm95LFxyXG4gICBPbkluaXQsXHJcbiAgIFZpZXdDaGlsZCxcclxuICAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFRyZWVTZXJ2aWNlIH0gZnJvbSBcIi4uL2xpbWJsZS10cmVlLXJvb3QvdHJlZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB0eXBlIHsgQnJhbmNoIH0gZnJvbSBcIi4uL2NsYXNzZXMvQnJhbmNoXCI7XHJcbmltcG9ydCB7IERyb3Bab25lIH0gZnJvbSBcIi4uL2NsYXNzZXMvRHJvcFpvbmVcIjtcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IGlzTmVzdGluZ0FsbG93ZWQgfSBmcm9tIFwiLi4vdXRpbFwiO1xyXG5pbXBvcnQgeyBEcm9wWm9uZVNlcnZpY2UgfSBmcm9tIFwiLi4vbGltYmxlLXRyZWUtcm9vdC9kcm9wLXpvbmUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUcmVlQ29uc3RydWN0aW9uU3RhdHVzIH0gZnJvbSBcIi4uL2xpbWJsZS10cmVlLXJvb3QvdHJlZS1jb25zdHJ1Y3Rpb24tc3RhdHVzLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICBzZWxlY3RvcjogXCJsaW1ibGUtdHJlZS1icmFuY2hcIixcclxuICAgdGVtcGxhdGVVcmw6IFwiLi9saW1ibGUtdHJlZS1icmFuY2guY29tcG9uZW50Lmh0bWxcIixcclxuICAgc3R5bGVzOiBbXCIuL2xpbWJsZS10cmVlLWJyYW5jaC5jb21wb25lbnQuc2Nzc1wiXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGltYmxlVHJlZUJyYW5jaENvbXBvbmVudFxyXG4gICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgQElucHV0KCkgYnJhbmNoOiBCcmFuY2g8YW55PiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgIEBWaWV3Q2hpbGQoXCJjaGlsZHJlblwiLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgY2hpbGRyZW46XHJcbiAgICAgIHwgVmlld0NvbnRhaW5lclJlZlxyXG4gICAgICB8IHVuZGVmaW5lZDtcclxuXHJcbiAgIHB1YmxpYyBkcm9wWm9uZUluc2lkZTogRHJvcFpvbmUgfCB1bmRlZmluZWQ7XHJcbiAgIHB1YmxpYyByZW5kZXJEcm9wWm9uZUluc2lkZTogYm9vbGVhbjtcclxuXHJcbiAgIHB1YmxpYyByZWFkb25seSBpbmRlbnQ7XHJcblxyXG4gICBjb25zdHJ1Y3RvcihcclxuICAgICAgcHJpdmF0ZSB0cmVlU2VydmljZTogVHJlZVNlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGRyb3Bab25lU2VydmljZTogRHJvcFpvbmVTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IHRyZWVDb25zdHJ1Y3Rpb25TdGF0dXM6IFRyZWVDb25zdHJ1Y3Rpb25TdGF0dXMsXHJcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmVcclxuICAgKSB7XHJcbiAgICAgIHRoaXMudHJlZUNvbnN0cnVjdGlvblN0YXR1cy5jb25zdHJ1Y3RpbmcoKTtcclxuICAgICAgdGhpcy5pbmRlbnQgPSB0aGlzLnRyZWVTZXJ2aWNlLnRyZWVPcHRpb25zPy5pbmRlbnQ7XHJcbiAgICAgIHRoaXMucmVuZGVyRHJvcFpvbmVJbnNpZGUgPSBmYWxzZTtcclxuICAgfVxyXG5cclxuICAgcHVibGljIG5nT25Jbml0KCkge1xyXG4gICAgICB0aGlzLmFkZERyb3Bab25lSW5zaWRlKCk7XHJcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAgaWYgKHRoaXMuZHJvcFpvbmVJbnNpZGUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJkcm9wIHpvbmUgaW5zaWRlIGlzIG5vdCBkZWZpbmVkXCIpO1xyXG4gICAgICAgICB9XHJcbiAgICAgICAgIHRoaXMuZHJvcFpvbmVJbnNpZGVcclxuICAgICAgICAgICAgLmdldENvbW1DaGFubmVsKClcclxuICAgICAgICAgICAgLnBpcGUoZmlsdGVyKChtZXNzYWdlKSA9PiBtZXNzYWdlID09PSBcImNoZWNrUmVuZGVyZWRcIikpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcFpvbmVJbnNpZGUgPT09IHVuZGVmaW5lZCB8fFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmJyYW5jaCA9PT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJab25lcyBub3QgcmVnaXN0ZXJlZFwiKTtcclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgIGlzTmVzdGluZ0FsbG93ZWQoXHJcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJlZVNlcnZpY2UudHJlZU9wdGlvbnMsXHJcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMuYnJhbmNoLmRhdGFcclxuICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJEcm9wWm9uZUluc2lkZSA9IHRoaXMuZHJvcFpvbmVJbnNpZGUuaXNSZW5kZXJlZCgpO1xyXG4gICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgfVxyXG5cclxuICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgdGhpcy5yZVJlbmRlcigpO1xyXG4gICAgICB0aGlzLnNldERyb3Bab25lSG9zdCgpO1xyXG4gICAgICB0aGlzLnRyZWVDb25zdHJ1Y3Rpb25TdGF0dXMuZG9uZUNvbnN0cnVjdGluZygpO1xyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgfVxyXG5cclxuICAgcHVibGljIG5nT25EZXN0cm95KCkge1xyXG4gICAgICBpZiAodGhpcy5kcm9wWm9uZUluc2lkZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRoaXMuZHJvcFpvbmVTZXJ2aWNlLnJlbW92ZURyb3Bab25lKHRoaXMuZHJvcFpvbmVJbnNpZGUpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudHJlZVNlcnZpY2UuY2xlYW51cFNpZ25hbCQubmV4dCh0cnVlKTtcclxuICAgfVxyXG5cclxuICAgcHJpdmF0ZSBhZGREcm9wWm9uZUluc2lkZSgpIHtcclxuICAgICAgaWYgKHRoaXMuYnJhbmNoID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZmFpbGVkIHRvIHJlZ2lzdGVyIGRyb3Agem9uZSBpbnNpZGVcIik7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5kcm9wWm9uZUluc2lkZSA9IG5ldyBEcm9wWm9uZShbLi4udGhpcy5icmFuY2guZ2V0Q29vcmRpbmF0ZXMoKV0sIDApO1xyXG4gICAgICB0aGlzLmRyb3Bab25lU2VydmljZS5hZGREcm9wWm9uZSh0aGlzLmRyb3Bab25lSW5zaWRlKTtcclxuICAgfVxyXG5cclxuICAgcHVibGljIHJlUmVuZGVyKCkge1xyXG4gICAgICBpZiAodGhpcy5jaGlsZHJlbiA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuYnJhbmNoID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRmFpbGVkIHRvIHJlbmRlciBsaW1ibGUgdHJlZSBicmFuY2hcIik7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50cmVlU2VydmljZS5yZW5kZXJCcmFuY2godGhpcy5jaGlsZHJlbiwgdGhpcy5icmFuY2gpO1xyXG4gICB9XHJcblxyXG4gICBwcml2YXRlIHNldERyb3Bab25lSG9zdCgpIHtcclxuICAgICAgaWYgKHRoaXMuY2hpbGRyZW4gPT09IHVuZGVmaW5lZCB8fCB0aGlzLmRyb3Bab25lSW5zaWRlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRmFpbGVkIHRvIGFkZCBkcm9wIHpvbmUgaG9zdFwiKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRyb3Bab25lSW5zaWRlLnNldEhvc3QodGhpcy5jaGlsZHJlbik7XHJcbiAgIH1cclxufVxyXG4iLCI8ZGl2IFtzdHlsZS5tYXJnaW5MZWZ0LnB4XT1cImluZGVudFwiPlxyXG4gICA8ZHJvcC16b25lXHJcbiAgICAgICpuZ0lmPVwicmVuZGVyRHJvcFpvbmVJbnNpZGVcIlxyXG4gICAgICBbZHJvcFpvbmVdPVwiZHJvcFpvbmVJbnNpZGVcIlxyXG4gICA+PC9kcm9wLXpvbmU+XHJcbiAgIDxzcGFuIFtoaWRkZW5dPVwiYnJhbmNoICYmIGJyYW5jaC5kYXRhLmNvbGxhcHNlZFwiIGNsYXNzPVwibGltYmxlLWNoaWxkLW5vZGVzXCI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjY2hpbGRyZW4+PC9uZy10ZW1wbGF0ZT5cclxuICAgPC9zcGFuPlxyXG48L2Rpdj5cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGltYmxlLXRyZWUtYnJhbmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvbGltYmxlLXRyZWUtYnJhbmNoL2xpbWJsZS10cmVlLWJyYW5jaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2xpbWJsZS10cmVlLWJyYW5jaC9saW1ibGUtdHJlZS1icmFuY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdKLFNBQVMsRUFDVCxLQUFLLEVBSUwsU0FBUyxFQUNULGdCQUFnQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7Ozs7Ozs7O0lDZHhDLCtCQUdhOzs7SUFEVixnREFBMkI7OztBRHFCakMsTUFBTSxPQUFPLHlCQUF5QjtJQWFuQyxZQUNXLFdBQXdCLEVBQ2YsaUJBQW9DLEVBQ3BDLGVBQWdDLEVBQ2hDLHNCQUE4QyxFQUM5QyxNQUFjOztRQUp2QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUNmLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUUvQixJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFBLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVywwQ0FBRSxNQUFNLENBQUM7UUFDbkQsSUFBSSxD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QmxELDJCQUFvQztRQUNqQyxzRkFHYTtRQUNiLCtCQUE0RTtRQUN6RSwySEFBcUM7UUFDeEMsaUJBQU87UUFDVixpQkFBTTs7UUFSRCwrQ0FBOEI7UUFFNUIsZUFBMEI7UUFBMUIsK0NBQTBCO1FBR3hCLGVBQTBDO1FBQTFDLGdFQUEwQzs7dUZEbUJ0Qyx5QkFBeUI7Y0FMckMsU0FBUztlQUFDO2dCQUNSLFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLFdBQVcsRUFBRSxxQ0FBcUM7Z0JBQ2xELFNBQVMsRUFBRSxDQUFDLHFDQUFxQyxDQUFDO2FBQ3BEO3NMQUdXLE1BQU07a0JBQWQsS0FBSztZQUU2QyxRQUFRO2tCQUExRCxTQUFTO21CQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgIEFmdGVyVmlld0luaXQsXHJcbiAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICBDb21wb25lbnQsXHJcbiAgIElucHV0LFxyXG4gICBOZ1pvbmUsXHJcbiAgIE9uRGVzdHJveSxcclxuICAgT25Jbml0LFxyXG4gICBWaWV3Q2hpbGQsXHJcbiAgIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBUcmVlU2VydmljZSB9IGZyb20gXCIuLi9saW1ibGUtdHJlZS1yb290L3RyZWUuc2VydmljZVwiO1xyXG5pbXBvcnQgdHlwZSB7IEJyYW5jaCB9IGZyb20gXCIuLi9jbGFzc2VzL0JyYW5jaFwiO1xyXG5pbXBvcnQgeyBEcm9wWm9uZSB9IGZyb20gXCIuLi9jbGFzc2VzL0Ryb3Bab25lXCI7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBpc05lc3RpbmdBbGxvd2VkIH0gZnJvbSBcIi4uL3V0aWxcIjtcclxuaW1wb3J0IHsgRHJvcFpvbmVTZXJ2aWNlIH0gZnJvbSBcIi4uL2xpbWJsZS10cmVlLXJvb3QvZHJvcC16b25lLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJlZUNvbnN0cnVjdGlvblN0YXR1cyB9IGZyb20gXCIuLi9saW1ibGUtdHJlZS1yb290L3RyZWUtY29uc3RydWN0aW9uLXN0YXR1cy5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgc2VsZWN0b3I6IFwibGltYmxlLXRyZWUtYnJhbmNoXCIsXHJcbiAgIHRlbXBsYXRlVXJsOiBcIi4vbGltYmxlLXRyZWUtYnJhbmNoLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgIHN0eWxlVXJsczogW1wiLi9saW1ibGUtdHJlZS1icmFuY2guY29tcG9uZW50LnNjc3NcIl1cclxufSlcclxuZXhwb3J0IGNsYXNzIExpbWJsZVRyZWVCcmFuY2hDb21wb25lbnRcclxuICAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgIEBJbnB1dCgpIGJyYW5jaDogQnJhbmNoPGFueT4gfCB1bmRlZmluZWQ7XHJcblxyXG4gICBAVmlld0NoaWxkKFwiY2hpbGRyZW5cIiwgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIGNoaWxkcmVuOlxyXG4gICAgICB8IFZpZXdDb250YWluZXJSZWZcclxuICAgICAgfCB1bmRlZmluZWQ7XHJcblxyXG4gICBwdWJsaWMgZHJvcFpvbmVJbnNpZGU6IERyb3Bab25lIHwgdW5kZWZpbmVkO1xyXG4gICBwdWJsaWMgcmVuZGVyRHJvcFpvbmVJbnNpZGU6IGJvb2xlYW47XHJcblxyXG4gICBwdWJsaWMgcmVhZG9ubHkgaW5kZW50O1xyXG5cclxuICAgY29uc3RydWN0b3IoXHJcbiAgICAgIHByaXZhdGUgdHJlZVNlcnZpY2U6IFRyZWVTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgcHJpdmF0ZSByZWFkb25seSBkcm9wWm9uZVNlcnZpY2U6IERyb3Bab25lU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmVlQ29uc3RydWN0aW9uU3RhdHVzOiBUcmVlQ29uc3RydWN0aW9uU3RhdHVzLFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lXHJcbiAgICkge1xyXG4gICAgICB0aGlzLnRyZWVDb25zdHJ1Y3Rpb25TdGF0dXMuY29uc3RydWN0aW5nKCk7XHJcbiAgICAgIHRoaXMuaW5kZW50ID0gdGhpcy50cmVlU2VydmljZS50cmVlT3B0aW9ucz8uaW5kZW50O1xyXG4gICAgICB0aGlzLnJlbmRlckRyb3Bab25lSW5zaWRlID0gZmFsc2U7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcclxuICAgICAgdGhpcy5hZGREcm9wWm9uZUluc2lkZSgpO1xyXG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgIGlmICh0aGlzLmRyb3Bab25lSW5zaWRlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZHJvcCB6b25lIGluc2lkZSBpcyBub3QgZGVmaW5lZFwiKTtcclxuICAgICAgICAgfVxyXG4gICAgICAgICB0aGlzLmRyb3Bab25lSW5zaWRlXHJcbiAgICAgICAgICAgIC5nZXRDb21tQ2hhbm5lbCgpXHJcbiAgICAgICAgICAgIC5waXBlKGZpbHRlcigobWVzc2FnZSkgPT4gbWVzc2FnZSA9PT0gXCJjaGVja1JlbmRlcmVkXCIpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmRyb3Bab25lSW5zaWRlID09PSB1bmRlZmluZWQgfHxcclxuICAgICAgICAgICAgICAgICAgdGhpcy5icmFuY2ggPT09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiWm9uZXMgbm90IHJlZ2lzdGVyZWRcIik7XHJcbiAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICBpc05lc3RpbmdBbGxvd2VkKFxyXG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnRyZWVTZXJ2aWNlLnRyZWVPcHRpb25zLFxyXG4gICAgICAgICAgICAgICAgICAgICB0aGlzLmJyYW5jaC5kYXRhXHJcbiAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyRHJvcFpvbmVJbnNpZGUgPSB0aGlzLmRyb3Bab25lSW5zaWRlLmlzUmVuZGVyZWQoKTtcclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgIHRoaXMucmVSZW5kZXIoKTtcclxuICAgICAgdGhpcy5zZXREcm9wWm9uZUhvc3QoKTtcclxuICAgICAgdGhpcy50cmVlQ29uc3RydWN0aW9uU3RhdHVzLmRvbmVDb25zdHJ1Y3RpbmcoKTtcclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgaWYgKHRoaXMuZHJvcFpvbmVJbnNpZGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICB0aGlzLmRyb3Bab25lU2VydmljZS5yZW1vdmVEcm9wWm9uZSh0aGlzLmRyb3Bab25lSW5zaWRlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRyZWVTZXJ2aWNlLmNsZWFudXBTaWduYWwkLm5leHQodHJ1ZSk7XHJcbiAgIH1cclxuXHJcbiAgIHByaXZhdGUgYWRkRHJvcFpvbmVJbnNpZGUoKSB7XHJcbiAgICAgIGlmICh0aGlzLmJyYW5jaCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImZhaWxlZCB0byByZWdpc3RlciBkcm9wIHpvbmUgaW5zaWRlXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZHJvcFpvbmVJbnNpZGUgPSBuZXcgRHJvcFpvbmUoWy4uLnRoaXMuYnJhbmNoLmdldENvb3JkaW5hdGVzKCldLCAwKTtcclxuICAgICAgdGhpcy5kcm9wWm9uZVNlcnZpY2UuYWRkRHJvcFpvbmUodGhpcy5kcm9wWm9uZUluc2lkZSk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyByZVJlbmRlcigpIHtcclxuICAgICAgaWYgKHRoaXMuY2hpbGRyZW4gPT09IHVuZGVmaW5lZCB8fCB0aGlzLmJyYW5jaCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkZhaWxlZCB0byByZW5kZXIgbGltYmxlIHRyZWUgYnJhbmNoXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudHJlZVNlcnZpY2UucmVuZGVyQnJhbmNoKHRoaXMuY2hpbGRyZW4sIHRoaXMuYnJhbmNoKTtcclxuICAgfVxyXG5cclxuICAgcHJpdmF0ZSBzZXREcm9wWm9uZUhvc3QoKSB7XHJcbiAgICAgIGlmICh0aGlzLmNoaWxkcmVuID09PSB1bmRlZmluZWQgfHwgdGhpcy5kcm9wWm9uZUluc2lkZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkZhaWxlZCB0byBhZGQgZHJvcCB6b25lIGhvc3RcIik7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5kcm9wWm9uZUluc2lkZS5zZXRIb3N0KHRoaXMuY2hpbGRyZW4pO1xyXG4gICB9XHJcbn1cclxuIiwiPGRpdiBbc3R5bGUubWFyZ2luTGVmdC5weF09XCJpbmRlbnRcIj5cclxuICAgPGRyb3Atem9uZVxyXG4gICAgICAqbmdJZj1cInJlbmRlckRyb3Bab25lSW5zaWRlXCJcclxuICAgICAgW2Ryb3Bab25lXT1cImRyb3Bab25lSW5zaWRlXCJcclxuICAgPjwvZHJvcC16b25lPlxyXG4gICA8c3BhbiBbaGlkZGVuXT1cImJyYW5jaCAmJiBicmFuY2guZGF0YS5jb2xsYXBzZWRcIiBjbGFzcz1cImxpbWJsZS1jaGlsZC1ub2Rlc1wiPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2NoaWxkcmVuPjwvbmctdGVtcGxhdGU+XHJcbiAgIDwvc3Bhbj5cclxuPC9kaXY+XHJcbiJdfQ==

@@ -58,3 +58,3 @@ import { ChangeDetectionStrategy, Component } from "@angular/core";

LimbleTreePlaceholderComponent.ɵfac = function LimbleTreePlaceholderComponent_Factory(t) { return new (t || LimbleTreePlaceholderComponent)(i0.ɵɵdirectiveInject(i1.DropZoneService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2.TreeService), i0.ɵɵdirectiveInject(i3.TreeConstructionStatus)); };
LimbleTreePlaceholderComponent.ɵcmp = i0.ɵɵdefineComponent({ type: LimbleTreePlaceholderComponent, selectors: [["limble-tree-placeholder"]], decls: 2, vars: 1, consts: [[3, "dropZone"], [1, "placeholder", 3, "dragoverNoChangeDetect"]], template: function LimbleTreePlaceholderComponent_Template(rf, ctx) { if (rf & 1) {
LimbleTreePlaceholderComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LimbleTreePlaceholderComponent, selectors: [["limble-tree-placeholder"]], decls: 2, vars: 1, consts: [[3, "dropZone"], [1, "placeholder", 3, "dragoverNoChangeDetect"]], template: function LimbleTreePlaceholderComponent_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelement(0, "drop-zone", 0);

@@ -76,2 +76,2 @@ i0.ɵɵelementStart(1, "div", 1);

}], function () { return [{ type: i1.DropZoneService }, { type: i0.ChangeDetectorRef }, { type: i2.TreeService }, { type: i3.TreeConstructionStatus }]; }, null); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGltYmxlLXRyZWUtcGxhY2Vob2xkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9saW1ibGUtdHJlZS1wbGFjZWhvbGRlci9saW1ibGUtdHJlZS1wbGFjZWhvbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2xpbWJsZS10cmVlLXBsYWNlaG9sZGVyL2xpbWJsZS10cmVlLXBsYWNlaG9sZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSix1QkFBdUIsRUFFdkIsU0FBUyxFQUdYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7OztBQVcvQyxNQUFNLE9BQU8sOEJBQThCO0lBS3hDLFlBQ29CLGVBQWdDLEVBQ2hDLGlCQUFvQyxFQUNwQyxXQUF3QixFQUN4QixzQkFBOEM7UUFIOUMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUUvRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDM0MsOEVBQThFO1FBQzlFLG1GQUFtRjtRQUNuRixvRkFBb0Y7UUFDcEYsa0ZBQWtGO1FBQ2xGLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQ25FLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDUCxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO2dCQUM5QixPQUFPO2FBQ1Q7WUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkQsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO2dCQUNqQixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDL0M7UUFDSixDQUFDLENBQ0gsQ0FBQztJQUNMLENBQUM7SUFFTSxRQUFRO1FBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSxlQUFlO1FBQ25CLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1NBQzFEO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVNLGVBQWU7UUFDbkIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUM5QixPQUFPO1NBQ1Q7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sV0FBVztRQUNmLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMzQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztTQUM1RDtRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs0R0F6RFMsOEJBQThCO21FQUE5Qiw4QkFBOEI7UUNwQjNDLCtCQUE2QztRQUM3Qyw4QkFBc0U7UUFBN0MsMElBQTBCLHFCQUFpQixJQUFDO1FBQUMsaUJBQU07O1FBRGpFLHVDQUFxQjs7dUZEb0JuQiw4QkFBOEI7Y0FOMUMsU0FBUztlQUFDO2dCQUNSLFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLFdBQVcsRUFBRSwwQ0FBMEM7Z0JBQ3ZELFNBQVMsRUFBRSxDQUFDLDBDQUEwQyxDQUFDO2dCQUN2RCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNqRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgIEFmdGVyVmlld0luaXQsXHJcbiAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgQ29tcG9uZW50LFxyXG4gICBPbkRlc3Ryb3ksXHJcbiAgIE9uSW5pdFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IERyb3Bab25lIH0gZnJvbSBcIi4uL2NsYXNzZXMvRHJvcFpvbmVcIjtcclxuaW1wb3J0IHsgRHJvcFpvbmVTZXJ2aWNlIH0gZnJvbSBcIi4uL2xpbWJsZS10cmVlLXJvb3QvZHJvcC16b25lLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJlZUNvbnN0cnVjdGlvblN0YXR1cyB9IGZyb20gXCIuLi9saW1ibGUtdHJlZS1yb290L3RyZWUtY29uc3RydWN0aW9uLXN0YXR1cy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRyZWVTZXJ2aWNlIH0gZnJvbSBcIi4uL2xpbWJsZS10cmVlLXJvb3QvdHJlZS5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgc2VsZWN0b3I6IFwibGltYmxlLXRyZWUtcGxhY2Vob2xkZXJcIixcclxuICAgdGVtcGxhdGVVcmw6IFwiLi9saW1ibGUtdHJlZS1wbGFjZWhvbGRlci5jb21wb25lbnQuaHRtbFwiLFxyXG4gICBzdHlsZVVybHM6IFtcIi4vbGltYmxlLXRyZWUtcGxhY2Vob2xkZXIuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaW1ibGVUcmVlUGxhY2Vob2xkZXJDb21wb25lbnRcclxuICAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgIHB1YmxpYyBkcm9wWm9uZTogRHJvcFpvbmUgfCB1bmRlZmluZWQ7XHJcbiAgIHByaXZhdGUgcmVhZG9ubHkgcGxhY2Vob2xkZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgICAgcHJpdmF0ZSByZWFkb25seSBkcm9wWm9uZVNlcnZpY2U6IERyb3Bab25lU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJlZVNlcnZpY2U6IFRyZWVTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IHRyZWVDb25zdHJ1Y3Rpb25TdGF0dXM6IFRyZWVDb25zdHJ1Y3Rpb25TdGF0dXNcclxuICAgKSB7XHJcbiAgICAgIHRoaXMudHJlZUNvbnN0cnVjdGlvblN0YXR1cy5jb25zdHJ1Y3RpbmcoKTtcclxuICAgICAgLy9UaGlzIGxvZ2ljIGlzIHZlcnkgc2ltaWxhciB0byB3aGF0IHRoZSBsaWZlY3ljbGUgaG9va3Mgb2YgdGhpcyBjb21wb25lbnQgZG8uXHJcbiAgICAgIC8vV2UgdXNlIHRoaXMgc3Vic2NyaXB0aW9uIGJlY2F1c2Ugc29tZXRpbWVzIHdlIGNhbid0IHdhaXQgZm9yIHRoZSBsaWZlY3ljbGUgaG9va3M6XHJcbiAgICAgIC8vU3BlY2lmaWNhbGx5LCB0aGUgZHJvcCB6b25lIHJlZ2lzdHJhdGlvbiBhbmQgZGVyZWdpc3RyYXRpb24gc29tZXRpbWVzIGNhbid0IGhhcHBlblxyXG4gICAgICAvL2FzeW5jaHJvbm91c2x5IHdpdGhvdXQgY2F1c2luZyBidWdzLiBTbyB3ZSBoYW5kbGUgaXQgc3luY2hyb25vdXNseSBoZXJlIGFzIHdlbGwuXHJcbiAgICAgIHRoaXMucGxhY2Vob2xkZXJTdWJzY3JpcHRpb24gPSB0aGlzLnRyZWVTZXJ2aWNlLnBsYWNlaG9sZGVyJC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5kcm9wWm9uZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmRyb3Bab25lU2VydmljZS5yZW1vdmVEcm9wWm9uZSh0aGlzLmRyb3Bab25lKTtcclxuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgIHRoaXMuZHJvcFpvbmVTZXJ2aWNlLmFkZERyb3Bab25lKHRoaXMuZHJvcFpvbmUpO1xyXG4gICAgICAgICAgICAgICB0aGlzLmRyb3Bab25lLnNldEhvc3QodGhpcy50cmVlU2VydmljZS5ob3N0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcclxuICAgICAgdGhpcy5kcm9wWm9uZSA9IG5ldyBEcm9wWm9uZShbXSwgMCk7XHJcbiAgICAgIHRoaXMuZHJvcFpvbmVTZXJ2aWNlLmFkZERyb3Bab25lKHRoaXMuZHJvcFpvbmUpO1xyXG4gICB9XHJcblxyXG4gICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICBpZiAodGhpcy5kcm9wWm9uZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInBsYWNlaG9sZGVyIGRyb3Agem9uZSBpcyBub3QgZGVmaW5lZFwiKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRyb3Bab25lLnNldEhvc3QodGhpcy50cmVlU2VydmljZS5ob3N0KTtcclxuICAgICAgdGhpcy50cmVlQ29uc3RydWN0aW9uU3RhdHVzLmRvbmVDb25zdHJ1Y3RpbmcoKTtcclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyBkcmFnb3ZlckhhbmRsZXIoKSB7XHJcbiAgICAgIGlmICh0aGlzLmRyb3Bab25lID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZHJvcFpvbmVTZXJ2aWNlLnNob3dEcm9wWm9uZUZhbWlseSh0aGlzLmRyb3Bab25lKTtcclxuICAgfVxyXG5cclxuICAgcHVibGljIG5nT25EZXN0cm95KCkge1xyXG4gICAgICB0aGlzLnBsYWNlaG9sZGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIGlmICh0aGlzLmRyb3Bab25lID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiY291bGQgbm90IHJlbW92ZSBwbGFjZWhvbGRlciBkcm9wIHpvbmVcIik7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5kcm9wWm9uZVNlcnZpY2UucmVtb3ZlRHJvcFpvbmUodGhpcy5kcm9wWm9uZSk7XHJcbiAgIH1cclxufVxyXG4iLCI8ZHJvcC16b25lIFtkcm9wWm9uZV09XCJkcm9wWm9uZVwiPjwvZHJvcC16b25lPlxuPGRpdiBjbGFzcz1cInBsYWNlaG9sZGVyXCIgKGRyYWdvdmVyTm9DaGFuZ2VEZXRlY3QpPVwiZHJhZ292ZXJIYW5kbGVyKClcIj48L2Rpdj5cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGltYmxlLXRyZWUtcGxhY2Vob2xkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9saW1ibGUtdHJlZS1wbGFjZWhvbGRlci9saW1ibGUtdHJlZS1wbGFjZWhvbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2xpbWJsZS10cmVlLXBsYWNlaG9sZGVyL2xpbWJsZS10cmVlLXBsYWNlaG9sZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSix1QkFBdUIsRUFFdkIsU0FBUyxFQUdYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7OztBQVcvQyxNQUFNLE9BQU8sOEJBQThCO0lBS3hDLFlBQ29CLGVBQWdDLEVBQ2hDLGlCQUFvQyxFQUNwQyxXQUF3QixFQUN4QixzQkFBOEM7UUFIOUMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUUvRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDM0MsOEVBQThFO1FBQzlFLG1GQUFtRjtRQUNuRixvRkFBb0Y7UUFDcEYsa0ZBQWtGO1FBQ2xGLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQ25FLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDUCxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO2dCQUM5QixPQUFPO2FBQ1Q7WUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkQsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO2dCQUNqQixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDL0M7UUFDSixDQUFDLENBQ0gsQ0FBQztJQUNMLENBQUM7SUFFTSxRQUFRO1FBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSxlQUFlO1FBQ25CLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1NBQzFEO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVNLGVBQWU7UUFDbkIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUM5QixPQUFPO1NBQ1Q7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sV0FBVztRQUNmLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMzQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztTQUM1RDtRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs0R0F6RFMsOEJBQThCO2lGQUE5Qiw4QkFBOEI7UUNwQjNDLCtCQUE2QztRQUM3Qyw4QkFBc0U7UUFBN0MsMElBQTBCLHFCQUFpQixJQUFDO1FBQUMsaUJBQU07O1FBRGpFLHVDQUFxQjs7dUZEb0JuQiw4QkFBOEI7Y0FOMUMsU0FBUztlQUFDO2dCQUNSLFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLFdBQVcsRUFBRSwwQ0FBMEM7Z0JBQ3ZELFNBQVMsRUFBRSxDQUFDLDBDQUEwQyxDQUFDO2dCQUN2RCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNqRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgIEFmdGVyVmlld0luaXQsXHJcbiAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgQ29tcG9uZW50LFxyXG4gICBPbkRlc3Ryb3ksXHJcbiAgIE9uSW5pdFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IERyb3Bab25lIH0gZnJvbSBcIi4uL2NsYXNzZXMvRHJvcFpvbmVcIjtcclxuaW1wb3J0IHsgRHJvcFpvbmVTZXJ2aWNlIH0gZnJvbSBcIi4uL2xpbWJsZS10cmVlLXJvb3QvZHJvcC16b25lLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJlZUNvbnN0cnVjdGlvblN0YXR1cyB9IGZyb20gXCIuLi9saW1ibGUtdHJlZS1yb290L3RyZWUtY29uc3RydWN0aW9uLXN0YXR1cy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRyZWVTZXJ2aWNlIH0gZnJvbSBcIi4uL2xpbWJsZS10cmVlLXJvb3QvdHJlZS5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgc2VsZWN0b3I6IFwibGltYmxlLXRyZWUtcGxhY2Vob2xkZXJcIixcclxuICAgdGVtcGxhdGVVcmw6IFwiLi9saW1ibGUtdHJlZS1wbGFjZWhvbGRlci5jb21wb25lbnQuaHRtbFwiLFxyXG4gICBzdHlsZVVybHM6IFtcIi4vbGltYmxlLXRyZWUtcGxhY2Vob2xkZXIuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaW1ibGVUcmVlUGxhY2Vob2xkZXJDb21wb25lbnRcclxuICAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgIHB1YmxpYyBkcm9wWm9uZTogRHJvcFpvbmUgfCB1bmRlZmluZWQ7XHJcbiAgIHByaXZhdGUgcmVhZG9ubHkgcGxhY2Vob2xkZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgICAgcHJpdmF0ZSByZWFkb25seSBkcm9wWm9uZVNlcnZpY2U6IERyb3Bab25lU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJlZVNlcnZpY2U6IFRyZWVTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IHRyZWVDb25zdHJ1Y3Rpb25TdGF0dXM6IFRyZWVDb25zdHJ1Y3Rpb25TdGF0dXNcclxuICAgKSB7XHJcbiAgICAgIHRoaXMudHJlZUNvbnN0cnVjdGlvblN0YXR1cy5jb25zdHJ1Y3RpbmcoKTtcclxuICAgICAgLy9UaGlzIGxvZ2ljIGlzIHZlcnkgc2ltaWxhciB0byB3aGF0IHRoZSBsaWZlY3ljbGUgaG9va3Mgb2YgdGhpcyBjb21wb25lbnQgZG8uXHJcbiAgICAgIC8vV2UgdXNlIHRoaXMgc3Vic2NyaXB0aW9uIGJlY2F1c2Ugc29tZXRpbWVzIHdlIGNhbid0IHdhaXQgZm9yIHRoZSBsaWZlY3ljbGUgaG9va3M6XHJcbiAgICAgIC8vU3BlY2lmaWNhbGx5LCB0aGUgZHJvcCB6b25lIHJlZ2lzdHJhdGlvbiBhbmQgZGVyZWdpc3RyYXRpb24gc29tZXRpbWVzIGNhbid0IGhhcHBlblxyXG4gICAgICAvL2FzeW5jaHJvbm91c2x5IHdpdGhvdXQgY2F1c2luZyBidWdzLiBTbyB3ZSBoYW5kbGUgaXQgc3luY2hyb25vdXNseSBoZXJlIGFzIHdlbGwuXHJcbiAgICAgIHRoaXMucGxhY2Vob2xkZXJTdWJzY3JpcHRpb24gPSB0aGlzLnRyZWVTZXJ2aWNlLnBsYWNlaG9sZGVyJC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5kcm9wWm9uZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmRyb3Bab25lU2VydmljZS5yZW1vdmVEcm9wWm9uZSh0aGlzLmRyb3Bab25lKTtcclxuICAgICAgICAgICAgaWYgKHZhbHVlID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgIHRoaXMuZHJvcFpvbmVTZXJ2aWNlLmFkZERyb3Bab25lKHRoaXMuZHJvcFpvbmUpO1xyXG4gICAgICAgICAgICAgICB0aGlzLmRyb3Bab25lLnNldEhvc3QodGhpcy50cmVlU2VydmljZS5ob3N0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcclxuICAgICAgdGhpcy5kcm9wWm9uZSA9IG5ldyBEcm9wWm9uZShbXSwgMCk7XHJcbiAgICAgIHRoaXMuZHJvcFpvbmVTZXJ2aWNlLmFkZERyb3Bab25lKHRoaXMuZHJvcFpvbmUpO1xyXG4gICB9XHJcblxyXG4gICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICBpZiAodGhpcy5kcm9wWm9uZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInBsYWNlaG9sZGVyIGRyb3Agem9uZSBpcyBub3QgZGVmaW5lZFwiKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRyb3Bab25lLnNldEhvc3QodGhpcy50cmVlU2VydmljZS5ob3N0KTtcclxuICAgICAgdGhpcy50cmVlQ29uc3RydWN0aW9uU3RhdHVzLmRvbmVDb25zdHJ1Y3RpbmcoKTtcclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyBkcmFnb3ZlckhhbmRsZXIoKSB7XHJcbiAgICAgIGlmICh0aGlzLmRyb3Bab25lID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZHJvcFpvbmVTZXJ2aWNlLnNob3dEcm9wWm9uZUZhbWlseSh0aGlzLmRyb3Bab25lKTtcclxuICAgfVxyXG5cclxuICAgcHVibGljIG5nT25EZXN0cm95KCkge1xyXG4gICAgICB0aGlzLnBsYWNlaG9sZGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIGlmICh0aGlzLmRyb3Bab25lID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiY291bGQgbm90IHJlbW92ZSBwbGFjZWhvbGRlciBkcm9wIHpvbmVcIik7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5kcm9wWm9uZVNlcnZpY2UucmVtb3ZlRHJvcFpvbmUodGhpcy5kcm9wWm9uZSk7XHJcbiAgIH1cclxufVxyXG4iLCI8ZHJvcC16b25lIFtkcm9wWm9uZV09XCJkcm9wWm9uZVwiPjwvZHJvcC16b25lPlxuPGRpdiBjbGFzcz1cInBsYWNlaG9sZGVyXCIgKGRyYWdvdmVyTm9DaGFuZ2VEZXRlY3QpPVwiZHJhZ292ZXJIYW5kbGVyKClcIj48L2Rpdj5cbiJdfQ==

@@ -368,6 +368,6 @@ import { Injectable } from "@angular/core";

DropZoneService.ɵfac = function DropZoneService_Factory(t) { return new (t || DropZoneService)(i0.ɵɵinject(i1.DragStateService), i0.ɵɵinject(i2.TreeConstructionStatus)); };
DropZoneService.ɵprov = i0.ɵɵdefineInjectable({ token: DropZoneService, factory: DropZoneService.ɵfac });
DropZoneService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: DropZoneService, factory: DropZoneService.ɵfac });
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DropZoneService, [{
type: Injectable
}], function () { return [{ type: i1.DragStateService }, { type: i2.TreeConstructionStatus }]; }, null); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC16b25lLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2xpbWJsZS10cmVlLXJvb3QvZHJvcC16b25lLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVN2RCxTQUFTLFVBQVUsQ0FBQyxPQUFpQixFQUFFLE9BQWlCO0lBQ3JELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ3hELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ3hELElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFO1FBQzVDLE9BQU8sQ0FBQyxDQUFDLENBQUM7S0FDWjtJQUNELElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFO1FBQzVDLE9BQU8sQ0FBQyxDQUFDO0tBQ1g7SUFDRCxPQUFPLENBQUMsQ0FBQztBQUNaLENBQUM7QUFHRCxNQUFNLE9BQU8sZUFBZTtJQWF6QixZQUNvQixnQkFBa0MsRUFDbkQsc0JBQThDO1FBRDdCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFHbkQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJ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QkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM3QyxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FDL0MsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLGlCQUFpQixDQUMxQyxDQUFDO1FBQ0YsSUFBSSxjQUFjLEtBQUssU0FBUyxFQUFFO1lBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztTQUNwRDtRQUNELE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxXQUFXLENBQUM7UUFDekQsSUFBSSxhQUFhLEtBQUssU0FBUyxFQUFFO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztTQUNuRDtRQUNELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDaEMsSUFDRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FDdkIsV0FBVyxDQUFDLElBQUksRUFDaEIsY0FBYyxDQUFDLElBQXNCLEVBQ3JDLGFBQWEsQ0FDZixFQUNGO1lBQ0MsT0FBTyxJQUFJLENBQUM7U0FDZDtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2hCLENBQUM7OzhFQXhhUyxlQUFlO3VEQUFmLGVBQWUsV0FBZixlQUFlO3VGQUFmLGVBQWU7Y0FEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBCcmFuY2gsIEJyYW5jaENvb3JkaW5hdGVzIH0gZnJvbSBcIi4uL2NsYXNzZXMvQnJhbmNoXCI7XHJcbmltcG9ydCB7IERyYWdTdGF0ZVNlcnZpY2UgfSBmcm9tIFwiLi4vc2luZ2xldG9ucy9kcmFnLXN0YXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHR5cGUgeyBMaW1ibGVUcmVlTm9kZSwgUHJvY2Vzc2VkT3B0aW9ucyB9IGZyb20gXCIuL3RyZWUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBhcnJheXNBcmVFcXVhbCB9IGZyb20gXCIuLi91dGlsXCI7XHJcbmltcG9ydCB7IERyb3Bab25lIH0gZnJvbSBcIi4uL2NsYXNzZXMvRHJvcFpvbmVcIjtcclxuaW1wb3J0IHsgRHJvcFpvbmVMb2NhdGlvbiB9IGZyb20gXCIuLi9jbGFzc2VzL0Ryb3Bab25lTG9jYXRpb25cIjtcclxuaW1wb3J0IHsgRU1QVFksIFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBUcmVlQ29uc3RydWN0aW9uU3RhdHVzIH0gZnJvbSBcIi4vdHJlZS1jb25zdHJ1Y3Rpb24tc3RhdHVzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgZGVib3VuY2UsIGZpbHRlciwgdGFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERyb3Bab25lRmFtaWx5IHtcclxuICAgLyoqIFRoZSBkZWVwZXN0IG1lbWJlciBvZiB0aGUgZmFtaWx5ICovXHJcbiAgIGZvdW5kZXI6IERyb3Bab25lO1xyXG4gICAvKiogQWxsIHRoZSBkcm9wIHpvbmVzIHRoYXQgYmVsb25nIHRvIHRoaXMgZmFtaWx5ICovXHJcbiAgIG1lbWJlcnM6IEFycmF5PERyb3Bab25lPjtcclxufVxyXG5cclxuZnVuY3Rpb24gc29ydEZhbWlseShtZW1iZXJBOiBEcm9wWm9uZSwgbWVtYmVyQjogRHJvcFpvbmUpIHtcclxuICAgY29uc3QgYUNvb3JkaW5hdGVzID0gbWVtYmVyQS5nZXRGdWxsSW5zZXJ0Q29vcmRpbmF0ZXMoKTtcclxuICAgY29uc3QgYkNvb3JkaW5hdGVzID0gbWVtYmVyQi5nZXRGdWxsSW5zZXJ0Q29vcmRpbmF0ZXMoKTtcclxuICAgaWYgKGFDb29yZGluYXRlcy5sZW5ndGggPiBiQ29vcmRpbmF0ZXMubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiAtMTtcclxuICAgfVxyXG4gICBpZiAoYUNvb3JkaW5hdGVzLmxlbmd0aCA8IGJDb29yZGluYXRlcy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIDE7XHJcbiAgIH1cclxuICAgcmV0dXJuIDA7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIERyb3Bab25lU2VydmljZSB7XHJcbiAgIHByaXZhdGUgcmVhZG9ubHkgZHJvcFpvbmVBcmNoaXZlOiBTZXQ8RHJvcFpvbmU+O1xyXG4gICBwcml2YXRlIHJlYWRvbmx5IGRyb3Bab25lSW52ZW50b3J5OiBBcnJheTxEcm9wWm9uZT47XHJcbiAgIHByaXZhdGUgcmVhZG9ubHkgZHJvcFpvbmVGYW1pbGllczogQXJyYXk8RHJvcFpvbmVGYW1pbHk+O1xyXG4gICBwcml2YXRlIHZpc2libGVGYW1pbHk6IERyb3Bab25lRmFtaWx5IHwgbnVsbDtcclxuICAgcHJpdmF0ZSBhY3RpdmVEcm9wWm9uZTogRHJvcFpvbmUgfCBudWxsO1xyXG4gICBwcml2YXRlIHRyZWU6IEJyYW5jaDxhbnk+IHwgdW5kZWZpbmVkO1xyXG4gICBwcml2YXRlIHRyZWVPcHRpb25zOiBQcm9jZXNzZWRPcHRpb25zIHwgdW5kZWZpbmVkO1xyXG4gICBwcml2YXRlIHRlbXBGYW1pbGllczpcclxuICAgICAgfCByZWFkb25seSBbRHJvcFpvbmVGYW1pbHksIERyb3Bab25lRmFtaWx5IHwgbnVsbF1cclxuICAgICAgfCByZWFkb25seSBbXTtcclxuICAgcHJpdmF0ZSByZWFkb25seSB1cGRhdGUkOiBTdWJqZWN0PG51bGw+O1xyXG5cclxuICAgY29uc3RydWN0b3IoXHJcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgZHJhZ1N0YXRlU2VydmljZTogRHJhZ1N0YXRlU2VydmljZSxcclxuICAgICAgdHJlZUNvbnN0cnVjdGlvblN0YXR1czogVHJlZUNvbnN0cnVjdGlvblN0YXR1c1xyXG4gICApIHtcclxuICAgICAgdGhpcy5kcm9wWm9uZUFyY2hpdmUgPSBuZXcgU2V0KCk7XHJcbiAgICAgIHRoaXMuZHJvcFpvbmVJbnZlbnRvcnkgPSBbXTtcclxuICAgICAgdGhpcy5kcm9wWm9uZUZhbWlsaWVzID0gW107XHJcbiAgICAgIHRoaXMudmlzaWJsZUZhbWlseSA9IG51bGw7XHJcbiAgICAgIHRoaXMuYWN0aXZlRHJvcFpvbmUgPSBudWxsO1xyXG4gICAgICB0aGlzLnRlbXBGYW1pbGllcyA9IFtdO1xyXG4gICAgICB0aGlzLnNldEFjdGl2ZURyb3Bab25lKG51bGwpO1xyXG4gICAgICBsZXQgdHJlZUlzU3RhYmxlID0gZmFsc2U7XHJcbiAgICAgIGNvbnN0IHRyZWVJc1N0YWJsZSQgPSB0cmVlQ29uc3RydWN0aW9uU3RhdHVzLnN0YWJsZSQucGlwZShcclxuICAgICAgICAgdGFwKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0cmVlSXNTdGFibGUgPSB2YWx1ZTtcclxuICAgICAgICAgfSksXHJcbiAgICAgICAgIGZpbHRlcigodmFsdWUpID0+IHZhbHVlID09PSB0cnVlKVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnVwZGF0ZSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gICAgICB0aGlzLnVwZGF0ZSRcclxuICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIGRlYm91bmNlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgaWYgKHRyZWVJc1N0YWJsZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAvL0lmIHRyZWUgaXMgc3RhYmxlLCBjb250aW51ZSByaWdodCBhd2F5XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBFTVBUWTtcclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAvL0lmIHRyZWUgaXMgbm90IHN0YWJsZSwgd2FpdCBmb3IgaXQgdG8gYmVjb21lIHNvLlxyXG4gICAgICAgICAgICAgICByZXR1cm4gdHJlZUlzU3RhYmxlJDtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgKVxyXG4gICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgIHRoaXMudXBkYXRlRHJvcFpvbmVzKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICB9KTtcclxuICAgfVxyXG5cclxuICAgcHVibGljIGFkZERyb3Bab25lKG5ld0Ryb3Bab25lOiBEcm9wWm9uZSk6IHZvaWQge1xyXG4gICAgICB0aGlzLmRyb3Bab25lQXJjaGl2ZS5hZGQobmV3RHJvcFpvbmUpO1xyXG4gICB9XHJcblxyXG4gICAvKiogaGlkZXMgYWxsIGRyb3Agem9uZXMgKi9cclxuICAgcHVibGljIGNsZWFyVmlzaWJsZVpvbmVzKCk6IHZvaWQge1xyXG4gICAgICBpZiAodGhpcy52aXNpYmxlRmFtaWx5ICE9PSBudWxsKSB7XHJcbiAgICAgICAgIGZvciAoY29uc3QgbWVtYmVyIG9mIHRoaXMudmlzaWJsZUZhbWlseS5tZW1iZXJzKSB7XHJcbiAgICAgICAgICAgIG1lbWJlci5pc1Zpc2libGUoZmFsc2UpO1xyXG4gICAgICAgICB9XHJcbiAgICAgICAgIHRoaXMudmlzaWJsZUZhbWlseSA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZXRBY3RpdmVEcm9wWm9uZShudWxsKTtcclxuICAgfVxyXG5cclxuICAgcHVibGljIGdldEFjdGl2ZURyb3Bab25lKCk6IERyb3Bab25lU2VydmljZVtcImFjdGl2ZURyb3Bab25lXCJdIHtcclxuICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlRHJvcFpvbmU7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyBnZXREcm9wWm9uZShjb29yZGluYXRlczogQnJhbmNoQ29vcmRpbmF0ZXMpOiBEcm9wWm9uZSB8IHVuZGVmaW5lZCB7XHJcbiAgICAgIGNvbnN0IHBhcmVudCA9IFsuLi5jb29yZGluYXRlc107XHJcbiAgICAgIHBhcmVudC5wb3AoKTtcclxuICAgICAgY29uc3QgaW5kZXggPSBjb29yZGluYXRlc1tjb29yZGluYXRlcy5sZW5ndGggLSAxXTtcclxuICAgICAgY29uc3QgbG9jYXRpb24gPSBuZXcgRHJvcFpvbmVMb2NhdGlvbihwYXJlbnQsIGluZGV4KTtcclxuICAgICAgcmV0dXJuIHRoaXMuZHJvcFpvbmVJbnZlbnRvcnkuZmluZCgoZHJvcFpvbmUpID0+XHJcbiAgICAgICAgIERyb3Bab25lLmRyb3Bab25lTG9jYXRpb25zQXJlRXF1YWwoZHJvcFpvbmUsIGxvY2F0aW9uKVxyXG4gICAgICApO1xyXG4gICB9XHJcblxyXG4gICBwdWJsaWMgaW5pdCh0cmVlOiBCcmFuY2g8YW55PiwgdHJlZU9wdGlvbnM6IFByb2Nlc3NlZE9wdGlvbnMpOiB2b2lkIHtcclxuICAgICAgdGhpcy50cmVlID0gdHJlZTtcclxuICAgICAgdGhpcy50cmVlT3B0aW9ucyA9IHRyZWVPcHRpb25zO1xyXG4gICAgICB0aGlzLnVwZGF0ZSgpO1xyXG4gICB9XHJcblxyXG4gICBwdWJsaWMgcmVtb3ZlRHJvcFpvbmUoZHJvcFpvbmU6IERyb3Bab25lKSB7XHJcbiAgICAgIHRoaXMuZHJvcFpvbmVBcmNoaXZlLmRlbGV0ZShkcm9wWm9uZSk7XHJcbiAgIH1cclxuXHJcbiAgIC8qKiBoaWRlcyBhbGwgZHJvcCB6b25lcywgZGVsZXRlcyBhbGwgdGhlIGZhbWlseSBhc3NpZ25tZW50cyxcclxuICAgICogYW5kIGVtcHRpZXMgdGhlIGRyb3Bab25lSW52ZW50b3J5XHJcbiAgICAqL1xyXG4gICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XHJcbiAgICAgIHRoaXMuY2xlYXJWaXNpYmxlWm9uZXMoKTtcclxuICAgICAgdGhpcy5kcm9wWm9uZUZhbWlsaWVzLmxlbmd0aCA9IDA7XHJcbiAgICAgIHRoaXMuZHJvcFpvbmVJbnZlbnRvcnkubGVuZ3RoID0gMDtcclxuICAgfVxyXG5cclxuICAgLyoqXHJcbiAgICAqIFJlc3RvcmVzIHRoZSBzZXJ2aWNlIHRvIGl0cyBpbml0aWFsIHN0YXRlOiBoaWRlcyBhbGwgZHJvcCB6b25lcyxcclxuICAgICogZGVsZXRlcyBhbGwgdGhlIGZhbWlseSBhc3NpZ25tZW50cywgYW5kIGVtcHRpZXMgdGhlIGRyb3Bab25lSW52ZW50b3J5XHJcbiAgICAqIGFuZCBkcm9wWm9uZUFyY2hpdmUuXHJcbiAgICAqL1xyXG4gICBwdWJsaWMgcmVzdGFydCgpOiB2b2lkIHtcclxuICAgICAgdGhpcy5yZXNldCgpO1xyXG4gICAgICB0aGlzLmRyb3Bab25lQXJjaGl2ZS5jbGVhcigpO1xyXG4gICB9XHJcblxyXG4gICBwdWJsaWMgcmVzdG9yZUZhbWlsaWVzKCk6IHZvaWQge1xyXG4gICAgICBpZiAodGhpcy50ZW1wRmFtaWxpZXMubGVuZ3RoID09PSAyKSB7XHJcbiAgICAgICAgIHRoaXMuZHJvcFpvbmVGYW1pbGllcy5wb3AoKTtcclxuICAgICAgICAgdGhpcy5kcm9wWm9uZUZhbWlsaWVzLnB1c2godGhpcy50ZW1wRmFtaWxpZXNbMF0pO1xyXG4gICAgICAgICBmb3IgKGNvbnN0IG1lbWJlciBvZiB0aGlzLnRlbXBGYW1pbGllc1swXS5tZW1iZXJzKSB7XHJcbiAgICAgICAgICAgIG1lbWJlci5zZXRGYW1pbHkodGhpcy50ZW1wRmFtaWxpZXNbMF0pO1xyXG4gICAgICAgICB9XHJcbiAgICAgICAgIGlmICh0aGlzLnRlbXBGYW1pbGllc1sxXSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmRyb3Bab25lRmFtaWxpZXMucHVzaCh0aGlzLnRlbXBGYW1pbGllc1sxXSk7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgbWVtYmVyIG9mIHRoaXMudGVtcEZhbWlsaWVzWzFdLm1lbWJlcnMpIHtcclxuICAgICAgICAgICAgICAgbWVtYmVyLnNldEZhbWlseSh0aGlzLnRlbXBGYW1pbGllc1sxXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgfVxyXG4gICAgICAgICB0aGlzLnRlbXBGYW1pbGllcyA9IFtdO1xyXG4gICAgICB9XHJcbiAgIH1cclxuXHJcbiAgIC8qKlxyXG4gICAgKiBTaG93cyB0aGUgZHJvcCB6b25lIGZhbWlseSBvZiB0aGUgZHJvcCB6b25lIGluZGljYXRlZCBieSBgY29vcmRpbmF0ZXNgLlxyXG4gICAgKi9cclxuICAgcHVibGljIHNob3dEcm9wWm9uZUZhbWlseShcclxuICAgICAgLyoqIE5vdGU6IHRoaXMgZHJvcCB6b25lIG1heSBub3QgZXhpc3QgaW4gdGhlIGRyb3Bab25lSW52ZW50b3J5OyB3ZSBoYXZlIHRvIHNlYXJjaCB0aGUgaW52ZW50b3J5IGJhc2VkIG9uIGl0cyBsb2NhdGlvbiAqL1xyXG4gICAgICBkcm9wWm9uZTogRHJvcFpvbmUsXHJcbiAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgam9pbkZhbWlsaWVzPzogYm9vbGVhbjtcclxuICAgICAgICAgYWN0aXZhdGVMb3dlc3RJbnN0ZWFkT2ZGb3VuZGVyPzogYm9vbGVhbjtcclxuICAgICAgfSA9IHsgam9pbkZhbWlsaWVzOiBmYWxzZSwgYWN0aXZhdGVMb3dlc3RJbnN0ZWFkT2ZGb3VuZGVyOiBmYWxzZSB9XHJcbiAgICk6IHZvaWQge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIHRoaXMuYWN0aXZlRHJvcFpvbmUgIT09IG51bGwgJiZcclxuICAgICAgICAgRHJvcFpvbmUuZHJvcFpvbmVMb2NhdGlvbnNBcmVFcXVhbCh0aGlzLmFjdGl2ZURyb3Bab25lLCBkcm9wWm9uZSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgIC8vQWxyZWFkeSBzaG93aW5nIHRoZSBmYW1pbHkgd2l0aCB0aGUgYXBwcm9wcmlhdGUgYWN0aXZlIGRyb3Agem9uZVxyXG4gICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudmlzaWJsZUZhbWlseSAhPT0gbnVsbCB8fCB0aGlzLmFjdGl2ZURyb3Bab25lICE9PSBudWxsKSB7XHJcbiAgICAgICAgIHRoaXMuY2xlYXJWaXNpYmxlWm9uZXMoKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLmRyb3Bab25lSW52ZW50b3J5LmZpbmQoKHpvbmUpID0+XHJcbiAgICAgICAgIERyb3Bab25lLmRyb3Bab25lTG9jYXRpb25zQXJlRXF1YWwoem9uZSwgZHJvcFpvbmUpXHJcbiAgICAgICk7XHJcbiAgICAgIGlmICh0YXJnZXQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICAgIGBDb3VsZCBub3QgZmluZCBkcm9wIHpvbmUgdG8gc2hvdy4gbG9jYXRpb246ICR7SlNPTi5zdHJpbmdpZnkoXHJcbiAgICAgICAgICAgICAgIGRyb3Bab25lLmdldExvY2F0aW9uKClcclxuICAgICAgICAgICAgKX1gXHJcbiAgICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgZmFtaWx5ID0gdGFyZ2V0LmdldEZhbWlseSgpO1xyXG4gICAgICBpZiAob3B0aW9ucy5qb2luRmFtaWxpZXMgPT09IHRydWUpIHtcclxuICAgICAgICAgY29uc3QgbG9jYXRpb24xID0gZHJvcFpvbmUuZ2V0TG9jYXRpb24oKTtcclxuICAgICAgICAgY29uc3QgbG9jYXRpb24yID0gbmV3IERyb3Bab25lTG9jYXRpb24oXHJcbiAgICAgICAgICAgIFsuLi5sb2NhdGlvbjEucGFyZW50Q29vcmRpbmF0ZXNdLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjEuaW5zZXJ0SW5kZXggKyAxXHJcbiAgICAgICAgICk7XHJcbiAgICAgICAgIGNvbnN0IHRhcmdldDIgPSB0aGlzLmRyb3Bab25lSW52ZW50b3J5LmZpbmQoKHpvbmUpID0+XHJcbiAgICAgICAgICAgIERyb3Bab25lLmRyb3Bab25lTG9jYXRpb25zQXJlRXF1YWwoem9uZSwgbG9jYXRpb24yKVxyXG4gICAgICAgICApO1xyXG4gICAgICAgICBpZiAodGFyZ2V0MiA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkIG5vdCBmaW5kIGRyb3Agem9uZSB0byBzaG93XCIpO1xyXG4gICAgICAgICB9XHJcbiAgICAgICAgIGNvbnN0IGZhbWlseTIgPSB0YXJnZXQyLmdldEZhbWlseSgpO1xyXG4gICAgICAgICBpZiAoZmFtaWx5ID09PSB1bmRlZmluZWQgfHwgZmFtaWx5MiA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vIGZhbWlseVwiKTtcclxuICAgICAgICAgfVxyXG4gICAgICAgICBjb25zdCBuZXdGYW1pbHkgPSB7XHJcbiAgICAgICAgICAgIGZvdW5kZXI6IGZhbWlseS5mb3VuZGVyLFxyXG4gICAgICAgICAgICBtZW1iZXJzOiBbLi4uZmFtaWx5Lm1lbWJlcnNdXHJcbiAgICAgICAgIH07XHJcbiAgICAgICAgIHRoaXMuc2hvd0Ryb3Bab25lKGZhbWlseS5mb3VuZGVyLCB0cnVlKTtcclxuICAgICAgICAgZm9yIChjb25zdCBtZW1iZXIgb2YgZmFtaWx5Lm1lbWJlcnMuc29ydChzb3J0RmFtaWx5KSkge1xyXG4gICAgICAgICAgICBtZW1iZXIuc2V0RmFtaWx5KG5ld0ZhbWlseSk7XHJcbiAgICAgICAgICAgIGlmIChtZW1iZXIgIT09IGZhbWlseS5mb3VuZGVyKSB7XHJcbiAgICAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2ZURyb3Bab25lID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgIC8vRmFpbGVkIHRvIGFjdGl2YXRlIGEgem9uZSBzbyBmYXIsIHNvIGFjdGl2YXRlIHRoaXMgb25lIGluc3RlYWRcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zaG93RHJvcFpvbmUobWVtYmVyLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zaG93RHJvcFpvbmUobWVtYmVyKTtcclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgIH1cclxuICAgICAgICAgZm9yIChjb25zdCBtZW1iZXIgb2YgZmFtaWx5Mi5tZW1iZXJzKSB7XHJcbiAgICAgICAgICAgIG1lbWJlci5zZXRGYW1pbHkobmV3RmFtaWx5KTtcclxuICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICBtZW1iZXIuZ2V0TG9jYXRpb24oKS5wYXJlbnRDb29yZGluYXRlcy5sZW5ndGggPFxyXG4gICAgICAgICAgICAgICB0YXJnZXQyLmdldExvY2F0aW9uKCkucGFyZW50Q29vcmRpbmF0ZXMubGVuZ3RoXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICBuZXdGYW1pbHkubWVtYmVycy5wdXNoKG1lbWJlcik7XHJcbiAgICAgICAgICAgICAgIHRoaXMuc2hvd0Ryb3Bab25lKG1lbWJlcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgfVxyXG4gICAgICAgICAvL1RlbXBvcmFyaWx5IHN0b3JlIHRoZSBvbGQgZmFtaWxpZXNcclxuICAgICAgICAgdGhpcy50ZW1wRmFtaWxpZXMgPSBbZmFtaWx5LCBmYW1pbHkyXTtcclxuICAgICAgICAgLy9SZW1vdmUgdGhlIG9sZCBmYW1pbGllc1xyXG4gICAgICAgICBjb25zdCBmYW1pbHlJbmRleCA9IHRoaXMuZHJvcFpvbmVGYW1pbGllcy5pbmRleE9mKGZhbWlseSk7XHJcbiAgICAgICAgIHRoaXMuZHJvcFpvbmVGYW1pbGllcy5zcGxpY2UoZmFtaWx5SW5kZXgsIDEpO1xyXG4gICAgICAgICBjb25zdCBmYW1pbHkySW5kZXggPSB0aGlzLmRyb3Bab25lRmFtaWxpZXMuaW5kZXhPZihmYW1pbHkyKTtcclxuICAgICAgICAgdGhpcy5kcm9wWm9uZUZhbWlsaWVzLnNwbGljZShmYW1pbHkySW5kZXgsIDEpO1xyXG4gICAgICAgICAvL0FkZCB0aGUgbmV3IGZhbWlseVxyXG4gICAgICAgICB0aGlzLmRyb3Bab25lRmFtaWxpZXMucHVzaChuZXdGYW1pbHkpO1xyXG4gICAgICAgICB0aGlzLnZpc2libGVGYW1pbHkgPSBuZXdGYW1pbHk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgIGlmIChmYW1pbHkgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJObyBmYW1pbHlcIik7XHJcbiAgICAgICAgIH1cclxuICAgICAgICAgdGhpcy52aXNpYmxlRmFtaWx5ID0gZmFtaWx5O1xyXG4gICAgICAgICB0aGlzLnNob3dEcm9wWm9uZShmYW1pbHkuZm91bmRlciwgdHJ1ZSk7XHJcbiAgICAgICAgIGlmIChmYW1pbHkubWVtYmVycy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgbWVtYmVyIG9mIGZhbWlseS5tZW1iZXJzLnNvcnQoc29ydEZhbWlseSkpIHtcclxuICAgICAgICAgICAgICAgaWYgKG1lbWJlciAhPT0gZmFtaWx5LmZvdW5kZXIpIHtcclxuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlRHJvcFpvbmUgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgLy9GYWlsZWQgdG8gYWN0aXZhdGUgYSB6b25lIHNvIGZhciwgc28gYWN0aXZhdGUgdGhpcyBvbmUgaW5zdGVhZFxyXG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dEcm9wWm9uZShtZW1iZXIsIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dEcm9wWm9uZShtZW1iZXIpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKFxyXG4gICAgICAgICBvcHRpb25zLmFjdGl2YXRlTG93ZXN0SW5zdGVhZE9mRm91bmRlciA9PT0gdHJ1ZSAmJlxyXG4gICAgICAgICB0aGlzLnZpc2libGVGYW1pbHkubWVtYmVycy5sZW5ndGggPiAxXHJcbiAgICAgICkge1xyXG4gICAgICAgICBjb25zdCBsb3dlc3RNZW1iZXIgPSBbLi4udGhpcy52aXNpYmxlRmFtaWx5Lm1lbWJlcnNdXHJcbiAgICAgICAgICAgIC5zb3J0KHNvcnRGYW1pbHkpXHJcbiAgICAgICAgICAgIC5wb3AoKTtcclxuICAgICAgICAgaWYgKGxvd2VzdE1lbWJlciA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkIG5vdCBnZXQgbG93ZXN0IG1lbWJlclwiKTtcclxuICAgICAgICAgfVxyXG4gICAgICAgICB0aGlzLnN3YXBBY3RpdmVEcm9wWm9uZShsb3dlc3RNZW1iZXIpO1xyXG4gICAgICB9XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyBzd2FwQWN0aXZlRHJvcFpvbmUobmV3QWN0aXZlRHJvcFpvbmU6IERyb3Bab25lKTogdm9pZCB7XHJcbiAgICAgIGlmICh0aGlzLnZpc2libGVGYW1pbHkgPT09IG51bGwpIHtcclxuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm8gdmlzaWJsZSBmYW1pbHkgYXZhaWxhYmxlIGZvciBzd2FwcGluZ1wiKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMudmlzaWJsZUZhbWlseS5tZW1iZXJzLmZpbmRJbmRleChcclxuICAgICAgICAgKGRyb3Bab25lKSA9PiBkcm9wWm9uZSA9PT0gbmV3QWN0aXZlRHJvcFpvbmVcclxuICAgICAgKTtcclxuICAgICAgaWYgKGluZGV4ID09PSAtMSkge1xyXG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJmYWlsZWQgdG8gc3dhcCBhY3RpdmUgZHJvcCB6b25lXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2V0QWN0aXZlRHJvcFpvbmUobmV3QWN0aXZlRHJvcFpvbmUpO1xyXG4gICB9XHJcblxyXG4gICBwdWJsaWMgdXBkYXRlKCk6IHZvaWQge1xyXG4gICAgICB0aGlzLnVwZGF0ZSQubmV4dChudWxsKTtcclxuICAgfVxyXG5cclxuICAgcHJpdmF0ZSBhc3NpZ25GYW1pbGllcygpOiB2b2lkIHtcclxuICAgICAgY29uc3Qgb3JwaGFuWm9uZXMgPSBbLi4udGhpcy5kcm9wWm9uZUludmVudG9yeV07XHJcbiAgICAgIGNvbnN0IGRlZXBlc3RNZW1iZXJzID0gb3JwaGFuWm9uZXNcclxuICAgICAgICAgLmZpbHRlcigoem9uZSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHpvbmUuZ2V0TG9jYXRpb24oKTtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgbG9jYXRpb24uaW5zZXJ0SW5kZXggPT09IDAgJiZcclxuICAgICAgICAgICAgICAgbG9jYXRpb24ucGFyZW50Q29vcmRpbmF0ZXMubGVuZ3RoID4gMFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICB9KVxyXG4gICAgICAgICAuc29ydCgodmFsdWVBLCB2YWx1ZUIpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgYUNvb3JkaW5hdGVzID0gdmFsdWVBLmdldEZ1bGxJbnNlcnRDb29yZGluYXRlcygpO1xyXG4gICAgICAgICAgICBjb25zdCBiQ29vcmRpbmF0ZXMgPSB2YWx1ZUIuZ2V0RnVsbEluc2VydENvb3JkaW5hdGVzKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGxlbmd0aCA9IE1hdGgubWF4KGFDb29yZGluYXRlcy5sZW5ndGgsIGJDb29yZGluYXRlcy5sZW5ndGgpO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICAgICAgIGlmICgoYUNvb3JkaW5hdGVzW2luZGV4XSA/PyAtMSkgPiAoYkNvb3JkaW5hdGVzW2luZGV4XSA/PyAtMSkpIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAoYUNvb3JkaW5hdGVzW2luZGV4XSA/PyAtMSkgPCAoYkNvb3JkaW5hdGVzW2luZGV4XSA/PyAtMSlcclxuICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgIH0pO1xyXG4gICAgICBmb3IgKGNvbnN0IGRyb3Bab25lIG9mIGRlZXBlc3RNZW1iZXJzKSB7XHJcbiAgICAgICAgIGlmICghb3JwaGFuWm9uZXMuaW5jbHVkZXMoZHJvcFpvbmUpKSB7XHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICB9XHJcbiAgICAgICAgIGNvbnN0IGZhbWlseTogRHJvcFpvbmVGYW1pbHkgPSB7XHJcbiAgICAgICAgICAgIGZvdW5kZXI6IGRyb3Bab25lLFxyXG4gICAgICAgICAgICBtZW1iZXJzOiBbXVxyXG4gICAgICAgICB9O1xyXG4gICAgICAgICBkcm9wWm9uZS5zZXRGYW1pbHkoZmFtaWx5KTtcclxuICAgICAgICAgLy9TZWUgaWYgdGhlcmUgYXJlIGFueSBvcnBoYW5zIHRoYXQgYmVsb25nIHRvIHRoaXMgZmFtaWx5IGFuZCBjbGFpbSB0aGVtLlxyXG4gICAgICAgICBjb25zdCBjdXJzb3IgPSBbLi4uZHJvcFpvbmUuZ2V0RnVsbEluc2VydENvb3JkaW5hdGVzKCldO1xyXG4gICAgICAgICB3aGlsZSAoY3Vyc29yLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgZmFtaWx5TWVtYmVySW5kZXggPSBvcnBoYW5ab25lcy5maW5kSW5kZXgoKHpvbmUpID0+XHJcbiAgICAgICAgICAgICAgIGFycmF5c0FyZUVxdWFsKHpvbmUuZ2V0RnVsbEluc2VydENvb3JkaW5hdGVzKCksIGN1cnNvcilcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgaWYgKGZhbWlseU1lbWJlckluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgICAgICBjb25zdCBmYW1pbHlNZW1iZXIgPSBvcnBoYW5ab25lcy5zcGxpY2UoZmFtaWx5TWVtYmVySW5kZXgsIDEpWzBdO1xyXG4gICAgICAgICAgICAgICBmYW1pbHkubWVtYmVycy5wdXNoKGZhbWlseU1lbWJlcik7XHJcbiAgICAgICAgICAgICAgIGZhbWlseU1lbWJlci5zZXRGYW1pbHkoZmFtaWx5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjdXJzb3IucG9wKCk7XHJcbiAgICAgICAgICAgIGN1cnNvcltjdXJzb3IubGVuZ3RoIC0gMV0rKztcclxuICAgICAgICAgfVxyXG4gICAgICAgICB0aGlzLmRyb3Bab25lRmFtaWxpZXMucHVzaChmYW1pbHkpO1xyXG4gICAgICB9XHJcbiAgICAgIGZvciAoY29uc3QgZHJvcFpvbmUgb2Ygb3JwaGFuWm9uZXMuZmlsdGVyKFxyXG4gICAgICAgICAoem9uZSkgPT4gem9uZS5nZXRGdWxsSW5zZXJ0Q29vcmRpbmF0ZXMoKS5sZW5ndGggPT09IDFcclxuICAgICAgKSkge1xyXG4gICAgICAgICBjb25zdCBmYW1pbHk6IERyb3Bab25lRmFtaWx5ID0ge1xyXG4gICAgICAgICAgICBmb3VuZGVyOiBkcm9wWm9uZSxcclxuICAgICAgICAgICAgbWVtYmVyczogW2Ryb3Bab25lXVxyXG4gICAgICAgICB9O1xyXG4gICAgICAgICBkcm9wWm9uZS5zZXRGYW1pbHkoZmFtaWx5KTtcclxuICAgICAgICAgdGhpcy5kcm9wWm9uZUZhbWlsaWVzLnB1c2goZmFtaWx5KTtcclxuICAgICAgICAgb3JwaGFuWm9uZXMuc3BsaWNlKG9ycGhhblpvbmVzLmluZGV4T2YoZHJvcFpvbmUpLCAxKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAob3JwaGFuWm9uZXMubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgIGxldCBvcnBoYW5zID0gXCJcIjtcclxuICAgICAgICAgZm9yIChjb25zdCB6b25lIG9mIG9ycGhhblpvbmVzKSB7XHJcbiAgICAgICAgICAgIG9ycGhhbnMgKz0gYCR7SlNPTi5zdHJpbmdpZnkoem9uZS5nZXRMb2NhdGlvbigpKX0sIGA7XHJcbiAgICAgICAgIH1cclxuICAgICAgICAgb3JwaGFucyA9IG9ycGhhbnMuc2xpY2UoMCwgb3JwaGFucy5sZW5ndGggLSAyKTtcclxuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgICBgU29tZSB6b25lcyB3ZXJlIG5vdCBhc3NpZ25lZCB0byBhIGZhbWlseS4gVGhlIG9ycGhhbiB6b25lcyBoYXZlIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOiAke29ycGhhbnN9YFxyXG4gICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgIH1cclxuXHJcbiAgIHByaXZhdGUgYnVpbGRJbnZlbnRvcnkoKSB7XHJcbiAgICAgIC8vV2UgZG8gdGhpcyBmdW5reSBzdHJpbmcgYXJyYXkgYmVjYXVzZSBpdCBpcyBmYXN0ZXIgdGhhbiBkb2luZyBkaXJlY3QgYXJyYXkgY29tcGFyaXNvbnNcclxuICAgICAgY29uc3QgaW52ZW50b3J5Q29vcmRpbmF0ZXM6IEFycmF5PHN0cmluZz4gPSBbXTtcclxuICAgICAgZm9yIChjb25zdCBkcm9wWm9uZSBvZiB0aGlzLmRyb3Bab25lQXJjaGl2ZSkge1xyXG4gICAgICAgICBjb25zdCBjb29yZGluYXRlcyA9IGRyb3Bab25lLmdldEZ1bGxJbnNlcnRDb29yZGluYXRlcygpLmpvaW4oXCIsXCIpO1xyXG4gICAgICAgICBpZiAoaW52ZW50b3J5Q29vcmRpbmF0ZXMuaW5jbHVkZXMoY29vcmRpbmF0ZXMpKSB7XHJcbiAgICAgICAgICAgIGRyb3Bab25lLmlzUmVuZGVyZWQoZmFsc2UpO1xyXG4gICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRyb3Bab25lSW52ZW50b3J5LnB1c2goZHJvcFpvbmUpO1xyXG4gICAgICAgICAgICBpbnZlbnRvcnlDb29yZGluYXRlcy5wdXNoKGNvb3JkaW5hdGVzKTtcclxuICAgICAgICAgICAgZHJvcFpvbmUuaXNSZW5kZXJlZCh0cnVlKTtcclxuICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgIH1cclxuXHJcbiAgIHByaXZhdGUgc2V0QWN0aXZlRHJvcFpvbmUoZHJvcFpvbmU6IERyb3Bab25lIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgICBpZiAodGhpcy5hY3RpdmVEcm9wWm9uZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICB0aGlzLmFjdGl2ZURyb3Bab25lLmlzQWN0aXZlKGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmFjdGl2ZURyb3Bab25lID0gZHJvcFpvbmU7XHJcbiAgICAgIGlmIChcclxuICAgICAgICAgdGhpcy5hY3RpdmVEcm9wWm9uZSAhPT0gbnVsbCAmJlxyXG4gICAgICAgICB0aGlzLmRyYWdTdGF0ZVNlcnZpY2UuZ2V0U3RhdGUoKSAhPT0gXCJkcm9wcGFibGVcIlxyXG4gICAgICApIHtcclxuICAgICAgICAgdGhpcy5kcmFnU3RhdGVTZXJ2aWNlLmRyb3BwYWJsZSgpO1xyXG4gICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICB0aGlzLmFjdGl2ZURyb3Bab25lID09PSBudWxsICYmXHJcbiAgICAgICAgIHRoaXMuZHJhZ1N0YXRlU2VydmljZS5nZXRTdGF0ZSgpID09PSBcImRyb3BwYWJsZVwiXHJcbiAgICAgICkge1xyXG4gICAgICAgICB0aGlzLmRyYWdTdGF0ZVNlcnZpY2Uubm90RHJvcHBhYmxlKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuYWN0aXZlRHJvcFpvbmUgIT09IG51bGwpIHtcclxuICAgICAgICAgdGhpcy5hY3RpdmVEcm9wWm9uZS5pc0FjdGl2ZSh0cnVlKTtcclxuICAgICAgfVxyXG4gICB9XHJcblxyXG4gICBwcml2YXRlIHNob3dEcm9wWm9uZShkcm9wWm9uZTogRHJvcFpvbmUsIGFjdGl2ZSA9IGZhbHNlKTogYm9vbGVhbiB7XHJcbiAgICAgIGlmICh0aGlzLnRyZWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJEcm9wWm9uZVNlcnZpY2Ugbm90IGluaXRpYWxpemVkXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy56b25lSXNBbGxvd2VkKGRyb3Bab25lKSkge1xyXG4gICAgICAgICAvL1VzZXIgc2V0dGluZ3MgaW5kaWNhdGUgdG8gc2tpcCB0aGlzIGRyb3Agem9uZVxyXG4gICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy50cmVlLmZpbmRCeUNvb3JkaW5hdGVzKFxyXG4gICAgICAgICBkcm9wWm9uZS5nZXRMb2NhdGlvbigpLnBhcmVudENvb3JkaW5hdGVzXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChwYXJlbnQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJCYWQgZmFtaWx5IG1lbWJlclwiKTtcclxuICAgICAgfVxyXG4gICAgICBkcm9wWm9uZS5pc1Zpc2libGUodHJ1ZSk7XHJcbiAgICAgIGlmIChhY3RpdmUgPT09IHRydWUpIHtcclxuICAgICAgICAgdGhpcy5zZXRBY3RpdmVEcm9wWm9uZShkcm9wWm9uZSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgIH1cclxuXHJcbiAgIHByaXZhdGUgdXBkYXRlRHJvcFpvbmVzKCk6IHZvaWQge1xyXG4gICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMuYnVpbGRJbnZlbnRvcnkoKTtcclxuICAgICAgdGhpcy5hc3NpZ25GYW1pbGllcygpO1xyXG4gICB9XHJcblxyXG4gICBwcml2YXRlIHpvbmVJc0FsbG93ZWQoZHJvcFpvbmU6IERyb3Bab25lKTogYm9vbGVhbiB7XHJcbiAgICAgIGlmICh0aGlzLnRyZWVPcHRpb25zID09PSB1bmRlZmluZWQgfHwgdGhpcy50cmVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZHJvcFpvbmVTZXJ2aWNlIG5vdCBpbml0aWFsaXplZFwiKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5kcmFnU3RhdGVTZXJ2aWNlLmdldERhdGEoKTtcclxuICAgICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW4ndCBnZXQgZHJhZ2dlZCBub2RlXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGRyb3Bab25lUGFyZW50ID0gdGhpcy50cmVlLmZpbmRCeUNvb3JkaW5hdGVzKFxyXG4gICAgICAgICBkcm9wWm9uZS5nZXRMb2NhdGlvbigpLnBhcmVudENvb3JkaW5hdGVzXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChkcm9wWm9uZVBhcmVudCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkIG5vdCBnZXQgZHJvcCB6b25lIHBhcmVudFwiKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBkcm9wWm9uZUluZGV4ID0gZHJvcFpvbmUuZ2V0TG9jYXRpb24oKS5pbnNlcnRJbmRleDtcclxuICAgICAgaWYgKGRyb3Bab25lSW5kZXggPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZCBub3QgZ2V0IGRyb3Agem9uZSBpbmRleFwiKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBkcmFnZ2VkTm9kZSA9IGRhdGEuYnJhbmNoO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIHRoaXMudHJlZU9wdGlvbnMuYWxsb3dEcm9wKFxyXG4gICAgICAgICAgICBkcmFnZ2VkTm9kZS5kYXRhLFxyXG4gICAgICAgICAgICBkcm9wWm9uZVBhcmVudC5kYXRhIGFzIExpbWJsZVRyZWVOb2RlLFxyXG4gICAgICAgICAgICBkcm9wWm9uZUluZGV4XHJcbiAgICAgICAgIClcclxuICAgICAgKSB7XHJcbiAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgfVxyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC16b25lLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2xpbWJsZS10cmVlLXJvb3QvZHJvcC16b25lLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVN2RCxTQUFTLFVBQVUsQ0FBQyxPQUFpQixFQUFFLE9BQWlCO0lBQ3JELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ3hELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ3hELElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFO1FBQzVDLE9BQU8sQ0FBQyxDQUFDLENBQUM7S0FDWjtJQUNELElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFO1FBQzVDLE9BQU8sQ0FBQyxDQUFDO0tBQ1g7SUFDRCxPQUFPLENBQUMsQ0FBQztBQUNaLENBQUM7QUFHRCxNQUFNLE9BQU8sZUFBZTtJQWF6QixZQUNvQixnQkFBa0MsRUFDbkQsc0JBQThDO1FBRDdCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFHbkQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJ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QUFJLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzdDLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7U0FDNUM7UUFDRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUMvQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsaUJBQWlCLENBQzFDLENBQUM7UUFDRixJQUFJLGNBQWMsS0FBSyxTQUFTLEVBQUU7WUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQ3BEO1FBQ0QsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUN6RCxJQUFJLGFBQWEsS0FBSyxTQUFTLEVBQUU7WUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1NBQ25EO1FBQ0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNoQyxJQUNHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUN2QixXQUFXLENBQUMsSUFBSSxFQUNoQixjQUFjLENBQUMsSUFBc0IsRUFDckMsYUFBYSxDQUNmLEVBQ0Y7WUFDQyxPQUFPLElBQUksQ0FBQztTQUNkO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDaEIsQ0FBQzs7OEVBeGFTLGVBQWU7cUVBQWYsZUFBZSxXQUFmLGVBQWU7dUZBQWYsZUFBZTtjQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEJyYW5jaCwgQnJhbmNoQ29vcmRpbmF0ZXMgfSBmcm9tIFwiLi4vY2xhc3Nlcy9CcmFuY2hcIjtcclxuaW1wb3J0IHsgRHJhZ1N0YXRlU2VydmljZSB9IGZyb20gXCIuLi9zaW5nbGV0b25zL2RyYWctc3RhdGUuc2VydmljZVwiO1xyXG5pbXBvcnQgdHlwZSB7IExpbWJsZVRyZWVOb2RlLCBQcm9jZXNzZWRPcHRpb25zIH0gZnJvbSBcIi4vdHJlZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IGFycmF5c0FyZUVxdWFsIH0gZnJvbSBcIi4uL3V0aWxcIjtcclxuaW1wb3J0IHsgRHJvcFpvbmUgfSBmcm9tIFwiLi4vY2xhc3Nlcy9Ecm9wWm9uZVwiO1xyXG5pbXBvcnQgeyBEcm9wWm9uZUxvY2F0aW9uIH0gZnJvbSBcIi4uL2NsYXNzZXMvRHJvcFpvbmVMb2NhdGlvblwiO1xyXG5pbXBvcnQgeyBFTVBUWSwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFRyZWVDb25zdHJ1Y3Rpb25TdGF0dXMgfSBmcm9tIFwiLi90cmVlLWNvbnN0cnVjdGlvbi1zdGF0dXMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBkZWJvdW5jZSwgZmlsdGVyLCB0YXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRHJvcFpvbmVGYW1pbHkge1xyXG4gICAvKiogVGhlIGRlZXBlc3QgbWVtYmVyIG9mIHRoZSBmYW1pbHkgKi9cclxuICAgZm91bmRlcjogRHJvcFpvbmU7XHJcbiAgIC8qKiBBbGwgdGhlIGRyb3Agem9uZXMgdGhhdCBiZWxvbmcgdG8gdGhpcyBmYW1pbHkgKi9cclxuICAgbWVtYmVyczogQXJyYXk8RHJvcFpvbmU+O1xyXG59XHJcblxyXG5mdW5jdGlvbiBzb3J0RmFtaWx5KG1lbWJlckE6IERyb3Bab25lLCBtZW1iZXJCOiBEcm9wWm9uZSkge1xyXG4gICBjb25zdCBhQ29vcmRpbmF0ZXMgPSBtZW1iZXJBLmdldEZ1bGxJbnNlcnRDb29yZGluYXRlcygpO1xyXG4gICBjb25zdCBiQ29vcmRpbmF0ZXMgPSBtZW1iZXJCLmdldEZ1bGxJbnNlcnRDb29yZGluYXRlcygpO1xyXG4gICBpZiAoYUNvb3JkaW5hdGVzLmxlbmd0aCA+IGJDb29yZGluYXRlcy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIC0xO1xyXG4gICB9XHJcbiAgIGlmIChhQ29vcmRpbmF0ZXMubGVuZ3RoIDwgYkNvb3JkaW5hdGVzLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gMTtcclxuICAgfVxyXG4gICByZXR1cm4gMDtcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRHJvcFpvbmVTZXJ2aWNlIHtcclxuICAgcHJpdmF0ZSByZWFkb25seSBkcm9wWm9uZUFyY2hpdmU6IFNldDxEcm9wWm9uZT47XHJcbiAgIHByaXZhdGUgcmVhZG9ubHkgZHJvcFpvbmVJbnZlbnRvcnk6IEFycmF5PERyb3Bab25lPjtcclxuICAgcHJpdmF0ZSByZWFkb25seSBkcm9wWm9uZUZhbWlsaWVzOiBBcnJheTxEcm9wWm9uZUZhbWlseT47XHJcbiAgIHByaXZhdGUgdmlzaWJsZUZhbWlseTogRHJvcFpvbmVGYW1pbHkgfCBudWxsO1xyXG4gICBwcml2YXRlIGFjdGl2ZURyb3Bab25lOiBEcm9wWm9uZSB8IG51bGw7XHJcbiAgIHByaXZhdGUgdHJlZTogQnJhbmNoPGFueT4gfCB1bmRlZmluZWQ7XHJcbiAgIHByaXZhdGUgdHJlZU9wdGlvbnM6IFByb2Nlc3NlZE9wdGlvbnMgfCB1bmRlZmluZWQ7XHJcbiAgIHByaXZhdGUgdGVtcEZhbWlsaWVzOlxyXG4gICAgICB8IHJlYWRvbmx5IFtEcm9wWm9uZUZhbWlseSwgRHJvcFpvbmVGYW1pbHkgfCBudWxsXVxyXG4gICAgICB8IHJlYWRvbmx5IFtdO1xyXG4gICBwcml2YXRlIHJlYWRvbmx5IHVwZGF0ZSQ6IFN1YmplY3Q8bnVsbD47XHJcblxyXG4gICBjb25zdHJ1Y3RvcihcclxuICAgICAgcHJpdmF0ZSByZWFkb25seSBkcmFnU3RhdGVTZXJ2aWNlOiBEcmFnU3RhdGVTZXJ2aWNlLFxyXG4gICAgICB0cmVlQ29uc3RydWN0aW9uU3RhdHVzOiBUcmVlQ29uc3RydWN0aW9uU3RhdHVzXHJcbiAgICkge1xyXG4gICAgICB0aGlzLmRyb3Bab25lQXJjaGl2ZSA9IG5ldyBTZXQoKTtcclxuICAgICAgdGhpcy5kcm9wWm9uZUludmVudG9yeSA9IFtdO1xyXG4gICAgICB0aGlzLmRyb3Bab25lRmFtaWxpZXMgPSBbXTtcclxuICAgICAgdGhpcy52aXNpYmxlRmFtaWx5ID0gbnVsbDtcclxuICAgICAgdGhpcy5hY3RpdmVEcm9wWm9uZSA9IG51bGw7XHJcbiAgICAgIHRoaXMudGVtcEZhbWlsaWVzID0gW107XHJcbiAgICAgIHRoaXMuc2V0QWN0aXZlRHJvcFpvbmUobnVsbCk7XHJcbiAgICAgIGxldCB0cmVlSXNTdGFibGUgPSBmYWxzZTtcclxuICAgICAgY29uc3QgdHJlZUlzU3RhYmxlJCA9IHRyZWVDb25zdHJ1Y3Rpb25TdGF0dXMuc3RhYmxlJC5waXBlKFxyXG4gICAgICAgICB0YXAoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRyZWVJc1N0YWJsZSA9IHZhbHVlO1xyXG4gICAgICAgICB9KSxcclxuICAgICAgICAgZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgPT09IHRydWUpXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMudXBkYXRlJCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgICAgIHRoaXMudXBkYXRlJFxyXG4gICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgZGVib3VuY2UoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICBpZiAodHJlZUlzU3RhYmxlID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgIC8vSWYgdHJlZSBpcyBzdGFibGUsIGNvbnRpbnVlIHJpZ2h0IGF3YXlcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgIC8vSWYgdHJlZSBpcyBub3Qgc3RhYmxlLCB3YWl0IGZvciBpdCB0byBiZWNvbWUgc28uXHJcbiAgICAgICAgICAgICAgIHJldHVybiB0cmVlSXNTdGFibGUkO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICApXHJcbiAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgdGhpcy51cGRhdGVEcm9wWm9uZXMoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgIH0pO1xyXG4gICB9XHJcblxyXG4gICBwdWJsaWMgYWRkRHJvcFpvbmUobmV3RHJvcFpvbmU6IERyb3Bab25lKTogdm9pZCB7XHJcbiAgICAgIHRoaXMuZHJvcFpvbmVBcmNoaXZlLmFkZChuZXdEcm9wWm9uZSk7XHJcbiAgIH1cclxuXHJcbiAgIC8qKiBoaWRlcyBhbGwgZHJvcCB6b25lcyAqL1xyXG4gICBwdWJsaWMgY2xlYXJWaXNpYmxlWm9uZXMoKTogdm9pZCB7XHJcbiAgICAgIGlmICh0aGlzLnZpc2libGVGYW1pbHkgIT09IG51bGwpIHtcclxuICAgICAgICAgZm9yIChjb25zdCBtZW1iZXIgb2YgdGhpcy52aXNpYmxlRmFtaWx5Lm1lbWJlcnMpIHtcclxuICAgICAgICAgICAgbWVtYmVyLmlzVmlzaWJsZShmYWxzZSk7XHJcbiAgICAgICAgIH1cclxuICAgICAgICAgdGhpcy52aXNpYmxlRmFtaWx5ID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNldEFjdGl2ZURyb3Bab25lKG51bGwpO1xyXG4gICB9XHJcblxyXG4gICBwdWJsaWMgZ2V0QWN0aXZlRHJvcFpvbmUoKTogRHJvcFpvbmVTZXJ2aWNlW1wiYWN0aXZlRHJvcFpvbmVcIl0ge1xyXG4gICAgICByZXR1cm4gdGhpcy5hY3RpdmVEcm9wWm9uZTtcclxuICAgfVxyXG5cclxuICAgcHVibGljIGdldERyb3Bab25lKGNvb3JkaW5hdGVzOiBCcmFuY2hDb29yZGluYXRlcyk6IERyb3Bab25lIHwgdW5kZWZpbmVkIHtcclxuICAgICAgY29uc3QgcGFyZW50ID0gWy4uLmNvb3JkaW5hdGVzXTtcclxuICAgICAgcGFyZW50LnBvcCgpO1xyXG4gICAgICBjb25zdCBpbmRleCA9IGNvb3JkaW5hdGVzW2Nvb3JkaW5hdGVzLmxlbmd0aCAtIDFdO1xyXG4gICAgICBjb25zdCBsb2NhdGlvbiA9IG5ldyBEcm9wWm9uZUxvY2F0aW9uKHBhcmVudCwgaW5kZXgpO1xyXG4gICAgICByZXR1cm4gdGhpcy5kcm9wWm9uZUludmVudG9yeS5maW5kKChkcm9wWm9uZSkgPT5cclxuICAgICAgICAgRHJvcFpvbmUuZHJvcFpvbmVMb2NhdGlvbnNBcmVFcXVhbChkcm9wWm9uZSwgbG9jYXRpb24pXHJcbiAgICAgICk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyBpbml0KHRyZWU6IEJyYW5jaDxhbnk+LCB0cmVlT3B0aW9uczogUHJvY2Vzc2VkT3B0aW9ucyk6IHZvaWQge1xyXG4gICAgICB0aGlzLnRyZWUgPSB0cmVlO1xyXG4gICAgICB0aGlzLnRyZWVPcHRpb25zID0gdHJlZU9wdGlvbnM7XHJcbiAgICAgIHRoaXMudXBkYXRlKCk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyByZW1vdmVEcm9wWm9uZShkcm9wWm9uZTogRHJvcFpvbmUpIHtcclxuICAgICAgdGhpcy5kcm9wWm9uZUFyY2hpdmUuZGVsZXRlKGRyb3Bab25lKTtcclxuICAgfVxyXG5cclxuICAgLyoqIGhpZGVzIGFsbCBkcm9wIHpvbmVzLCBkZWxldGVzIGFsbCB0aGUgZmFtaWx5IGFzc2lnbm1lbnRzLFxyXG4gICAgKiBhbmQgZW1wdGllcyB0aGUgZHJvcFpvbmVJbnZlbnRvcnlcclxuICAgICovXHJcbiAgIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcclxuICAgICAgdGhpcy5jbGVhclZpc2libGVab25lcygpO1xyXG4gICAgICB0aGlzLmRyb3Bab25lRmFtaWxpZXMubGVuZ3RoID0gMDtcclxuICAgICAgdGhpcy5kcm9wWm9uZUludmVudG9yeS5sZW5ndGggPSAwO1xyXG4gICB9XHJcblxyXG4gICAvKipcclxuICAgICogUmVzdG9yZXMgdGhlIHNlcnZpY2UgdG8gaXRzIGluaXRpYWwgc3RhdGU6IGhpZGVzIGFsbCBkcm9wIHpvbmVzLFxyXG4gICAgKiBkZWxldGVzIGFsbCB0aGUgZmFtaWx5IGFzc2lnbm1lbnRzLCBhbmQgZW1wdGllcyB0aGUgZHJvcFpvbmVJbnZlbnRvcnlcclxuICAgICogYW5kIGRyb3Bab25lQXJjaGl2ZS5cclxuICAgICovXHJcbiAgIHB1YmxpYyByZXN0YXJ0KCk6IHZvaWQge1xyXG4gICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMuZHJvcFpvbmVBcmNoaXZlLmNsZWFyKCk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyByZXN0b3JlRmFtaWxpZXMoKTogdm9pZCB7XHJcbiAgICAgIGlmICh0aGlzLnRlbXBGYW1pbGllcy5sZW5ndGggPT09IDIpIHtcclxuICAgICAgICAgdGhpcy5kcm9wWm9uZUZhbWlsaWVzLnBvcCgpO1xyXG4gICAgICAgICB0aGlzLmRyb3Bab25lRmFtaWxpZXMucHVzaCh0aGlzLnRlbXBGYW1pbGllc1swXSk7XHJcbiAgICAgICAgIGZvciAoY29uc3QgbWVtYmVyIG9mIHRoaXMudGVtcEZhbWlsaWVzWzBdLm1lbWJlcnMpIHtcclxuICAgICAgICAgICAgbWVtYmVyLnNldEZhbWlseSh0aGlzLnRlbXBGYW1pbGllc1swXSk7XHJcbiAgICAgICAgIH1cclxuICAgICAgICAgaWYgKHRoaXMudGVtcEZhbWlsaWVzWzFdICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZHJvcFpvbmVGYW1pbGllcy5wdXNoKHRoaXMudGVtcEZhbWlsaWVzWzFdKTtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBtZW1iZXIgb2YgdGhpcy50ZW1wRmFtaWxpZXNbMV0ubWVtYmVycykge1xyXG4gICAgICAgICAgICAgICBtZW1iZXIuc2V0RmFtaWx5KHRoaXMudGVtcEZhbWlsaWVzWzFdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICB9XHJcbiAgICAgICAgIHRoaXMudGVtcEZhbWlsaWVzID0gW107XHJcbiAgICAgIH1cclxuICAgfVxyXG5cclxuICAgLyoqXHJcbiAgICAqIFNob3dzIHRoZSBkcm9wIHpvbmUgZmFtaWx5IG9mIHRoZSBkcm9wIHpvbmUgaW5kaWNhdGVkIGJ5IGBjb29yZGluYXRlc2AuXHJcbiAgICAqL1xyXG4gICBwdWJsaWMgc2hvd0Ryb3Bab25lRmFtaWx5KFxyXG4gICAgICAvKiogTm90ZTogdGhpcyBkcm9wIHpvbmUgbWF5IG5vdCBleGlzdCBpbiB0aGUgZHJvcFpvbmVJbnZlbnRvcnk7IHdlIGhhdmUgdG8gc2VhcmNoIHRoZSBpbnZlbnRvcnkgYmFzZWQgb24gaXRzIGxvY2F0aW9uICovXHJcbiAgICAgIGRyb3Bab25lOiBEcm9wWm9uZSxcclxuICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICBqb2luRmFtaWxpZXM/OiBib29sZWFuO1xyXG4gICAgICAgICBhY3RpdmF0ZUxvd2VzdEluc3RlYWRPZkZvdW5kZXI/OiBib29sZWFuO1xyXG4gICAgICB9ID0geyBqb2luRmFtaWxpZXM6IGZhbHNlLCBhY3RpdmF0ZUxvd2VzdEluc3RlYWRPZkZvdW5kZXI6IGZhbHNlIH1cclxuICAgKTogdm9pZCB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICAgdGhpcy5hY3RpdmVEcm9wWm9uZSAhPT0gbnVsbCAmJlxyXG4gICAgICAgICBEcm9wWm9uZS5kcm9wWm9uZUxvY2F0aW9uc0FyZUVxdWFsKHRoaXMuYWN0aXZlRHJvcFpvbmUsIGRyb3Bab25lKVxyXG4gICAgICApIHtcclxuICAgICAgICAgLy9BbHJlYWR5IHNob3dpbmcgdGhlIGZhbWlseSB3aXRoIHRoZSBhcHByb3ByaWF0ZSBhY3RpdmUgZHJvcCB6b25lXHJcbiAgICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy52aXNpYmxlRmFtaWx5ICE9PSBudWxsIHx8IHRoaXMuYWN0aXZlRHJvcFpvbmUgIT09IG51bGwpIHtcclxuICAgICAgICAgdGhpcy5jbGVhclZpc2libGVab25lcygpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuZHJvcFpvbmVJbnZlbnRvcnkuZmluZCgoem9uZSkgPT5cclxuICAgICAgICAgRHJvcFpvbmUuZHJvcFpvbmVMb2NhdGlvbnNBcmVFcXVhbCh6b25lLCBkcm9wWm9uZSlcclxuICAgICAgKTtcclxuICAgICAgaWYgKHRhcmdldCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgICAgYENvdWxkIG5vdCBmaW5kIGRyb3Agem9uZSB0byBzaG93LiBsb2NhdGlvbjogJHtKU09OLnN0cmluZ2lmeShcclxuICAgICAgICAgICAgICAgZHJvcFpvbmUuZ2V0TG9jYXRpb24oKVxyXG4gICAgICAgICAgICApfWBcclxuICAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBmYW1pbHkgPSB0YXJnZXQuZ2V0RmFtaWx5KCk7XHJcbiAgICAgIGlmIChvcHRpb25zLmpvaW5GYW1pbGllcyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICBjb25zdCBsb2NhdGlvbjEgPSBkcm9wWm9uZS5nZXRMb2NhdGlvbigpO1xyXG4gICAgICAgICBjb25zdCBsb2NhdGlvbjIgPSBuZXcgRHJvcFpvbmVMb2NhdGlvbihcclxuICAgICAgICAgICAgWy4uLmxvY2F0aW9uMS5wYXJlbnRDb29yZGluYXRlc10sXHJcbiAgICAgICAgICAgIGxvY2F0aW9uMS5pbnNlcnRJbmRleCArIDFcclxuICAgICAgICAgKTtcclxuICAgICAgICAgY29uc3QgdGFyZ2V0MiA9IHRoaXMuZHJvcFpvbmVJbnZlbnRvcnkuZmluZCgoem9uZSkgPT5cclxuICAgICAgICAgICAgRHJvcFpvbmUuZHJvcFpvbmVMb2NhdGlvbnNBcmVFcXVhbCh6b25lLCBsb2NhdGlvbjIpXHJcbiAgICAgICAgICk7XHJcbiAgICAgICAgIGlmICh0YXJnZXQyID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGQgbm90IGZpbmQgZHJvcCB6b25lIHRvIHNob3dcIik7XHJcbiAgICAgICAgIH1cclxuICAgICAgICAgY29uc3QgZmFtaWx5MiA9IHRhcmdldDIuZ2V0RmFtaWx5KCk7XHJcbiAgICAgICAgIGlmIChmYW1pbHkgPT09IHVuZGVmaW5lZCB8fCBmYW1pbHkyID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm8gZmFtaWx5XCIpO1xyXG4gICAgICAgICB9XHJcbiAgICAgICAgIGNvbnN0IG5ld0ZhbWlseSA9IHtcclxuICAgICAgICAgICAgZm91bmRlcjogZmFtaWx5LmZvdW5kZXIsXHJcbiAgICAgICAgICAgIG1lbWJlcnM6IFsuLi5mYW1pbHkubWVtYmVyc11cclxuICAgICAgICAgfTtcclxuICAgICAgICAgdGhpcy5zaG93RHJvcFpvbmUoZmFtaWx5LmZvdW5kZXIsIHRydWUpO1xyXG4gICAgICAgICBmb3IgKGNvbnN0IG1lbWJlciBvZiBmYW1pbHkubWVtYmVycy5zb3J0KHNvcnRGYW1pbHkpKSB7XHJcbiAgICAgICAgICAgIG1lbWJlci5zZXRGYW1pbHkobmV3RmFtaWx5KTtcclxuICAgICAgICAgICAgaWYgKG1lbWJlciAhPT0gZmFtaWx5LmZvdW5kZXIpIHtcclxuICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlRHJvcFpvbmUgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgLy9GYWlsZWQgdG8gYWN0aXZhdGUgYSB6b25lIHNvIGZhciwgc28gYWN0aXZhdGUgdGhpcyBvbmUgaW5zdGVhZFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNob3dEcm9wWm9uZShtZW1iZXIsIHRydWUpO1xyXG4gICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNob3dEcm9wWm9uZShtZW1iZXIpO1xyXG4gICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgfVxyXG4gICAgICAgICBmb3IgKGNvbnN0IG1lbWJlciBvZiBmYW1pbHkyLm1lbWJlcnMpIHtcclxuICAgICAgICAgICAgbWVtYmVyLnNldEZhbWlseShuZXdGYW1pbHkpO1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgIG1lbWJlci5nZXRMb2NhdGlvbigpLnBhcmVudENvb3JkaW5hdGVzLmxlbmd0aCA8XHJcbiAgICAgICAgICAgICAgIHRhcmdldDIuZ2V0TG9jYXRpb24oKS5wYXJlbnRDb29yZGluYXRlcy5sZW5ndGhcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgIG5ld0ZhbWlseS5tZW1iZXJzLnB1c2gobWVtYmVyKTtcclxuICAgICAgICAgICAgICAgdGhpcy5zaG93RHJvcFpvbmUobWVtYmVyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICB9XHJcbiAgICAgICAgIC8vVGVtcG9yYXJpbHkgc3RvcmUgdGhlIG9sZCBmYW1pbGllc1xyXG4gICAgICAgICB0aGlzLnRlbXBGYW1pbGllcyA9IFtmYW1pbHksIGZhbWlseTJdO1xyXG4gICAgICAgICAvL1JlbW92ZSB0aGUgb2xkIGZhbWlsaWVzXHJcbiAgICAgICAgIGNvbnN0IGZhbWlseUluZGV4ID0gdGhpcy5kcm9wWm9uZUZhbWlsaWVzLmluZGV4T2YoZmFtaWx5KTtcclxuICAgICAgICAgdGhpcy5kcm9wWm9uZUZhbWlsaWVzLnNwbGljZShmYW1pbHlJbmRleCwgMSk7XHJcbiAgICAgICAgIGNvbnN0IGZhbWlseTJJbmRleCA9IHRoaXMuZHJvcFpvbmVGYW1pbGllcy5pbmRleE9mKGZhbWlseTIpO1xyXG4gICAgICAgICB0aGlzLmRyb3Bab25lRmFtaWxpZXMuc3BsaWNlKGZhbWlseTJJbmRleCwgMSk7XHJcbiAgICAgICAgIC8vQWRkIHRoZSBuZXcgZmFtaWx5XHJcbiAgICAgICAgIHRoaXMuZHJvcFpvbmVGYW1pbGllcy5wdXNoKG5ld0ZhbWlseSk7XHJcbiAgICAgICAgIHRoaXMudmlzaWJsZUZhbWlseSA9IG5ld0ZhbWlseTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgaWYgKGZhbWlseSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vIGZhbWlseVwiKTtcclxuICAgICAgICAgfVxyXG4gICAgICAgICB0aGlzLnZpc2libGVGYW1pbHkgPSBmYW1pbHk7XHJcbiAgICAgICAgIHRoaXMuc2hvd0Ryb3Bab25lKGZhbWlseS5mb3VuZGVyLCB0cnVlKTtcclxuICAgICAgICAgaWYgKGZhbWlseS5tZW1iZXJzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBtZW1iZXIgb2YgZmFtaWx5Lm1lbWJlcnMuc29ydChzb3J0RmFtaWx5KSkge1xyXG4gICAgICAgICAgICAgICBpZiAobWVtYmVyICE9PSBmYW1pbHkuZm91bmRlcikge1xyXG4gICAgICAgICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVEcm9wWm9uZSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAvL0ZhaWxlZCB0byBhY3RpdmF0ZSBhIHpvbmUgc28gZmFyLCBzbyBhY3RpdmF0ZSB0aGlzIG9uZSBpbnN0ZWFkXHJcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd0Ryb3Bab25lKG1lbWJlciwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd0Ryb3Bab25lKG1lbWJlcik7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIG9wdGlvbnMuYWN0aXZhdGVMb3dlc3RJbnN0ZWFkT2ZGb3VuZGVyID09PSB0cnVlICYmXHJcbiAgICAgICAgIHRoaXMudmlzaWJsZUZhbWlseS5tZW1iZXJzLmxlbmd0aCA+IDFcclxuICAgICAgKSB7XHJcbiAgICAgICAgIGNvbnN0IGxvd2VzdE1lbWJlciA9IFsuLi50aGlzLnZpc2libGVGYW1pbHkubWVtYmVyc11cclxuICAgICAgICAgICAgLnNvcnQoc29ydEZhbWlseSlcclxuICAgICAgICAgICAgLnBvcCgpO1xyXG4gICAgICAgICBpZiAobG93ZXN0TWVtYmVyID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGQgbm90IGdldCBsb3dlc3QgbWVtYmVyXCIpO1xyXG4gICAgICAgICB9XHJcbiAgICAgICAgIHRoaXMuc3dhcEFjdGl2ZURyb3Bab25lKGxvd2VzdE1lbWJlcik7XHJcbiAgICAgIH1cclxuICAgfVxyXG5cclxuICAgcHVibGljIHN3YXBBY3RpdmVEcm9wWm9uZShuZXdBY3RpdmVEcm9wWm9uZTogRHJvcFpvbmUpOiB2b2lkIHtcclxuICAgICAgaWYgKHRoaXMudmlzaWJsZUZhbWlseSA9PT0gbnVsbCkge1xyXG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJObyB2aXNpYmxlIGZhbWlseSBhdmFpbGFibGUgZm9yIHN3YXBwaW5nXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy52aXNpYmxlRmFtaWx5Lm1lbWJlcnMuZmluZEluZGV4KFxyXG4gICAgICAgICAoZHJvcFpvbmUpID0+IGRyb3Bab25lID09PSBuZXdBY3RpdmVEcm9wWm9uZVxyXG4gICAgICApO1xyXG4gICAgICBpZiAoaW5kZXggPT09IC0xKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImZhaWxlZCB0byBzd2FwIGFjdGl2ZSBkcm9wIHpvbmVcIik7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZXRBY3RpdmVEcm9wWm9uZShuZXdBY3RpdmVEcm9wWm9uZSk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyB1cGRhdGUoKTogdm9pZCB7XHJcbiAgICAgIHRoaXMudXBkYXRlJC5uZXh0KG51bGwpO1xyXG4gICB9XHJcblxyXG4gICBwcml2YXRlIGFzc2lnbkZhbWlsaWVzKCk6IHZvaWQge1xyXG4gICAgICBjb25zdCBvcnBoYW5ab25lcyA9IFsuLi50aGlzLmRyb3Bab25lSW52ZW50b3J5XTtcclxuICAgICAgY29uc3QgZGVlcGVzdE1lbWJlcnMgPSBvcnBoYW5ab25lc1xyXG4gICAgICAgICAuZmlsdGVyKCh6b25lKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uID0gem9uZS5nZXRMb2NhdGlvbigpO1xyXG4gICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICBsb2NhdGlvbi5pbnNlcnRJbmRleCA9PT0gMCAmJlxyXG4gICAgICAgICAgICAgICBsb2NhdGlvbi5wYXJlbnRDb29yZGluYXRlcy5sZW5ndGggPiAwXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgIH0pXHJcbiAgICAgICAgIC5zb3J0KCh2YWx1ZUEsIHZhbHVlQikgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBhQ29vcmRpbmF0ZXMgPSB2YWx1ZUEuZ2V0RnVsbEluc2VydENvb3JkaW5hdGVzKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGJDb29yZGluYXRlcyA9IHZhbHVlQi5nZXRGdWxsSW5zZXJ0Q29vcmRpbmF0ZXMoKTtcclxuICAgICAgICAgICAgY29uc3QgbGVuZ3RoID0gTWF0aC5tYXgoYUNvb3JkaW5hdGVzLmxlbmd0aCwgYkNvb3JkaW5hdGVzLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgICAgaWYgKChhQ29vcmRpbmF0ZXNbaW5kZXhdID8/IC0xKSA+IChiQ29vcmRpbmF0ZXNbaW5kZXhdID8/IC0xKSkge1xyXG4gICAgICAgICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICAgICAgICAgIChhQ29vcmRpbmF0ZXNbaW5kZXhdID8/IC0xKSA8IChiQ29vcmRpbmF0ZXNbaW5kZXhdID8/IC0xKVxyXG4gICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICAgfSk7XHJcbiAgICAgIGZvciAoY29uc3QgZHJvcFpvbmUgb2YgZGVlcGVzdE1lbWJlcnMpIHtcclxuICAgICAgICAgaWYgKCFvcnBoYW5ab25lcy5pbmNsdWRlcyhkcm9wWm9uZSkpIHtcclxuICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgIH1cclxuICAgICAgICAgY29uc3QgZmFtaWx5OiBEcm9wWm9uZUZhbWlseSA9IHtcclxuICAgICAgICAgICAgZm91bmRlcjogZHJvcFpvbmUsXHJcbiAgICAgICAgICAgIG1lbWJlcnM6IFtdXHJcbiAgICAgICAgIH07XHJcbiAgICAgICAgIGRyb3Bab25lLnNldEZhbWlseShmYW1pbHkpO1xyXG4gICAgICAgICAvL1NlZSBpZiB0aGVyZSBhcmUgYW55IG9ycGhhbnMgdGhhdCBiZWxvbmcgdG8gdGhpcyBmYW1pbHkgYW5kIGNsYWltIHRoZW0uXHJcbiAgICAgICAgIGNvbnN0IGN1cnNvciA9IFsuLi5kcm9wWm9uZS5nZXRGdWxsSW5zZXJ0Q29vcmRpbmF0ZXMoKV07XHJcbiAgICAgICAgIHdoaWxlIChjdXJzb3IubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjb25zdCBmYW1pbHlNZW1iZXJJbmRleCA9IG9ycGhhblpvbmVzLmZpbmRJbmRleCgoem9uZSkgPT5cclxuICAgICAgICAgICAgICAgYXJyYXlzQXJlRXF1YWwoem9uZS5nZXRGdWxsSW5zZXJ0Q29vcmRpbmF0ZXMoKSwgY3Vyc29yKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBpZiAoZmFtaWx5TWVtYmVySW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgIGNvbnN0IGZhbWlseU1lbWJlciA9IG9ycGhhblpvbmVzLnNwbGljZShmYW1pbHlNZW1iZXJJbmRleCwgMSlbMF07XHJcbiAgICAgICAgICAgICAgIGZhbWlseS5tZW1iZXJzLnB1c2goZmFtaWx5TWVtYmVyKTtcclxuICAgICAgICAgICAgICAgZmFtaWx5TWVtYmVyLnNldEZhbWlseShmYW1pbHkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGN1cnNvci5wb3AoKTtcclxuICAgICAgICAgICAgY3Vyc29yW2N1cnNvci5sZW5ndGggLSAxXSsrO1xyXG4gICAgICAgICB9XHJcbiAgICAgICAgIHRoaXMuZHJvcFpvbmVGYW1pbGllcy5wdXNoKGZhbWlseSk7XHJcbiAgICAgIH1cclxuICAgICAgZm9yIChjb25zdCBkcm9wWm9uZSBvZiBvcnBoYW5ab25lcy5maWx0ZXIoXHJcbiAgICAgICAgICh6b25lKSA9PiB6b25lLmdldEZ1bGxJbnNlcnRDb29yZGluYXRlcygpLmxlbmd0aCA9PT0gMVxyXG4gICAgICApKSB7XHJcbiAgICAgICAgIGNvbnN0IGZhbWlseTogRHJvcFpvbmVGYW1pbHkgPSB7XHJcbiAgICAgICAgICAgIGZvdW5kZXI6IGRyb3Bab25lLFxyXG4gICAgICAgICAgICBtZW1iZXJzOiBbZHJvcFpvbmVdXHJcbiAgICAgICAgIH07XHJcbiAgICAgICAgIGRyb3Bab25lLnNldEZhbWlseShmYW1pbHkpO1xyXG4gICAgICAgICB0aGlzLmRyb3Bab25lRmFtaWxpZXMucHVzaChmYW1pbHkpO1xyXG4gICAgICAgICBvcnBoYW5ab25lcy5zcGxpY2Uob3JwaGFuWm9uZXMuaW5kZXhPZihkcm9wWm9uZSksIDEpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChvcnBoYW5ab25lcy5sZW5ndGggIT09IDApIHtcclxuICAgICAgICAgbGV0IG9ycGhhbnMgPSBcIlwiO1xyXG4gICAgICAgICBmb3IgKGNvbnN0IHpvbmUgb2Ygb3JwaGFuWm9uZXMpIHtcclxuICAgICAgICAgICAgb3JwaGFucyArPSBgJHtKU09OLnN0cmluZ2lmeSh6b25lLmdldExvY2F0aW9uKCkpfSwgYDtcclxuICAgICAgICAgfVxyXG4gICAgICAgICBvcnBoYW5zID0gb3JwaGFucy5zbGljZSgwLCBvcnBoYW5zLmxlbmd0aCAtIDIpO1xyXG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICAgIGBTb21lIHpvbmVzIHdlcmUgbm90IGFzc2lnbmVkIHRvIGEgZmFtaWx5LiBUaGUgb3JwaGFuIHpvbmVzIGhhdmUgdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6ICR7b3JwaGFuc31gXHJcbiAgICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgfVxyXG5cclxuICAgcHJpdmF0ZSBidWlsZEludmVudG9yeSgpIHtcclxuICAgICAgLy9XZSBkbyB0aGlzIGZ1bmt5IHN0cmluZyBhcnJheSBiZWNhdXNlIGl0IGlzIGZhc3RlciB0aGFuIGRvaW5nIGRpcmVjdCBhcnJheSBjb21wYXJpc29uc1xyXG4gICAgICBjb25zdCBpbnZlbnRvcnlDb29yZGluYXRlczogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG4gICAgICBmb3IgKGNvbnN0IGRyb3Bab25lIG9mIHRoaXMuZHJvcFpvbmVBcmNoaXZlKSB7XHJcbiAgICAgICAgIGNvbnN0IGNvb3JkaW5hdGVzID0gZHJvcFpvbmUuZ2V0RnVsbEluc2VydENvb3JkaW5hdGVzKCkuam9pbihcIixcIik7XHJcbiAgICAgICAgIGlmIChpbnZlbnRvcnlDb29yZGluYXRlcy5pbmNsdWRlcyhjb29yZGluYXRlcykpIHtcclxuICAgICAgICAgICAgZHJvcFpvbmUuaXNSZW5kZXJlZChmYWxzZSk7XHJcbiAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZHJvcFpvbmVJbnZlbnRvcnkucHVzaChkcm9wWm9uZSk7XHJcbiAgICAgICAgICAgIGludmVudG9yeUNvb3JkaW5hdGVzLnB1c2goY29vcmRpbmF0ZXMpO1xyXG4gICAgICAgICAgICBkcm9wWm9uZS5pc1JlbmRlcmVkKHRydWUpO1xyXG4gICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgfVxyXG5cclxuICAgcHJpdmF0ZSBzZXRBY3RpdmVEcm9wWm9uZShkcm9wWm9uZTogRHJvcFpvbmUgfCBudWxsKTogdm9pZCB7XHJcbiAgICAgIGlmICh0aGlzLmFjdGl2ZURyb3Bab25lICE9PSBudWxsKSB7XHJcbiAgICAgICAgIHRoaXMuYWN0aXZlRHJvcFpvbmUuaXNBY3RpdmUoZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuYWN0aXZlRHJvcFpvbmUgPSBkcm9wWm9uZTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgICB0aGlzLmFjdGl2ZURyb3Bab25lICE9PSBudWxsICYmXHJcbiAgICAgICAgIHRoaXMuZHJhZ1N0YXRlU2VydmljZS5nZXRTdGF0ZSgpICE9PSBcImRyb3BwYWJsZVwiXHJcbiAgICAgICkge1xyXG4gICAgICAgICB0aGlzLmRyYWdTdGF0ZVNlcnZpY2UuZHJvcHBhYmxlKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgIHRoaXMuYWN0aXZlRHJvcFpvbmUgPT09IG51bGwgJiZcclxuICAgICAgICAgdGhpcy5kcmFnU3RhdGVTZXJ2aWNlLmdldFN0YXRlKCkgPT09IFwiZHJvcHBhYmxlXCJcclxuICAgICAgKSB7XHJcbiAgICAgICAgIHRoaXMuZHJhZ1N0YXRlU2VydmljZS5ub3REcm9wcGFibGUoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5hY3RpdmVEcm9wWm9uZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICB0aGlzLmFjdGl2ZURyb3Bab25lLmlzQWN0aXZlKHRydWUpO1xyXG4gICAgICB9XHJcbiAgIH1cclxuXHJcbiAgIHByaXZhdGUgc2hvd0Ryb3Bab25lKGRyb3Bab25lOiBEcm9wWm9uZSwgYWN0aXZlID0gZmFsc2UpOiBib29sZWFuIHtcclxuICAgICAgaWYgKHRoaXMudHJlZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkRyb3Bab25lU2VydmljZSBub3QgaW5pdGlhbGl6ZWRcIik7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLnpvbmVJc0FsbG93ZWQoZHJvcFpvbmUpKSB7XHJcbiAgICAgICAgIC8vVXNlciBzZXR0aW5ncyBpbmRpY2F0ZSB0byBza2lwIHRoaXMgZHJvcCB6b25lXHJcbiAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLnRyZWUuZmluZEJ5Q29vcmRpbmF0ZXMoXHJcbiAgICAgICAgIGRyb3Bab25lLmdldExvY2F0aW9uKCkucGFyZW50Q29vcmRpbmF0ZXNcclxuICAgICAgKTtcclxuICAgICAgaWYgKHBhcmVudCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkJhZCBmYW1pbHkgbWVtYmVyXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIGRyb3Bab25lLmlzVmlzaWJsZSh0cnVlKTtcclxuICAgICAgaWYgKGFjdGl2ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICB0aGlzLnNldEFjdGl2ZURyb3Bab25lKGRyb3Bab25lKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgfVxyXG5cclxuICAgcHJpdmF0ZSB1cGRhdGVEcm9wWm9uZXMoKTogdm9pZCB7XHJcbiAgICAgIHRoaXMucmVzZXQoKTtcclxuICAgICAgdGhpcy5idWlsZEludmVudG9yeSgpO1xyXG4gICAgICB0aGlzLmFzc2lnbkZhbWlsaWVzKCk7XHJcbiAgIH1cclxuXHJcbiAgIHByaXZhdGUgem9uZUlzQWxsb3dlZChkcm9wWm9uZTogRHJvcFpvbmUpOiBib29sZWFuIHtcclxuICAgICAgaWYgKHRoaXMudHJlZU9wdGlvbnMgPT09IHVuZGVmaW5lZCB8fCB0aGlzLnRyZWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJkcm9wWm9uZVNlcnZpY2Ugbm90IGluaXRpYWxpemVkXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmRyYWdTdGF0ZVNlcnZpY2UuZ2V0RGF0YSgpO1xyXG4gICAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbid0IGdldCBkcmFnZ2VkIG5vZGVcIik7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgZHJvcFpvbmVQYXJlbnQgPSB0aGlzLnRyZWUuZmluZEJ5Q29vcmRpbmF0ZXMoXHJcbiAgICAgICAgIGRyb3Bab25lLmdldExvY2F0aW9uKCkucGFyZW50Q29vcmRpbmF0ZXNcclxuICAgICAgKTtcclxuICAgICAgaWYgKGRyb3Bab25lUGFyZW50ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGQgbm90IGdldCBkcm9wIHpvbmUgcGFyZW50XCIpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGRyb3Bab25lSW5kZXggPSBkcm9wWm9uZS5nZXRMb2NhdGlvbigpLmluc2VydEluZGV4O1xyXG4gICAgICBpZiAoZHJvcFpvbmVJbmRleCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkIG5vdCBnZXQgZHJvcCB6b25lIGluZGV4XCIpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGRyYWdnZWROb2RlID0gZGF0YS5icmFuY2g7XHJcbiAgICAgIGlmIChcclxuICAgICAgICAgdGhpcy50cmVlT3B0aW9ucy5hbGxvd0Ryb3AoXHJcbiAgICAgICAgICAgIGRyYWdnZWROb2RlLmRhdGEsXHJcbiAgICAgICAgICAgIGRyb3Bab25lUGFyZW50LmRhdGEgYXMgTGltYmxlVHJlZU5vZGUsXHJcbiAgICAgICAgICAgIGRyb3Bab25lSW5kZXhcclxuICAgICAgICAgKVxyXG4gICAgICApIHtcclxuICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICB9XHJcbn1cclxuIl19

@@ -135,4 +135,4 @@ import { Component, EventEmitter, Input, NgZone, Output, ViewChild, ViewContainerRef } from "@angular/core";

LimbleTreeRootComponent.ɵfac = function LimbleTreeRootComponent_Factory(t) { return new (t || LimbleTreeRootComponent)(i0.ɵɵdirectiveInject(i1.TreeService), i0.ɵɵdirectiveInject(i2.DropZoneService), i0.ɵɵdirectiveInject(i3.DragStateService), i0.ɵɵdirectiveInject(i4.GlobalEventsService), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef)); };
LimbleTreeRootComponent.ɵcmp = i0.ɵɵdefineComponent({ type: LimbleTreeRootComponent, selectors: [["limble-tree-root"]], viewQuery: function LimbleTreeRootComponent_Query(rf, ctx) { if (rf & 1) {
i0.ɵɵviewQuery(_c0, 1, ViewContainerRef);
LimbleTreeRootComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LimbleTreeRootComponent, selectors: [["limble-tree-root"]], viewQuery: function LimbleTreeRootComponent_Query(rf, ctx) { if (rf & 1) {
i0.ɵɵviewQuery(_c0, 5, ViewContainerRef);
} if (rf & 2) {

@@ -175,2 +175,2 @@ let _t;

}] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGltYmxlLXRyZWUtcm9vdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2xpbWJsZS10cmVlLXJvb3QvbGltYmxlLXRyZWUtcm9vdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2xpbWJsZS10cmVlLXJvb3QvbGltYmxlLXRyZWUtcm9vdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0osU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUdOLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU10RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7O0lDckJ6RSwwQ0FFMkI7OztBRDJCOUIsTUFBTSxPQUFPLHVCQUF1QjtJQW1CakMsWUFDb0IsV0FBd0IsRUFDeEIsZUFBZ0MsRUFDaEMsZ0JBQWtDLEVBQ2xDLG1CQUF3QyxFQUN4QyxNQUFjLEVBQ2QsaUJBQW9DLEVBQ3BDLEVBQXVCO1FBTnZCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtR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Q0FBbUM7Z0JBQ2hELFNBQVMsRUFBRSxDQUFDLG1DQUFtQyxDQUFDO2dCQUNoRCxTQUFTLEVBQUUsQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixDQUFDO2FBQ25FOzJPQUdXLElBQUk7a0JBQVosS0FBSztZQUNHLE9BQU87a0JBQWYsS0FBSztZQUNHLFlBQVk7a0JBQXBCLEtBQUs7WUFDRyxJQUFJO2tCQUFaLEtBQUs7WUFFaUQsSUFBSTtrQkFBMUQsU0FBUzttQkFBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7WUFJMUIsVUFBVTtrQkFBNUIsTUFBTTtZQUVZLFFBQVE7a0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICBBZnRlclZpZXdJbml0LFxyXG4gICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgQ29tcG9uZW50LFxyXG4gICBFbGVtZW50UmVmLFxyXG4gICBFdmVudEVtaXR0ZXIsXHJcbiAgIElucHV0LFxyXG4gICBOZ1pvbmUsXHJcbiAgIE9uQ2hhbmdlcyxcclxuICAgT25EZXN0cm95LFxyXG4gICBPdXRwdXQsXHJcbiAgIFZpZXdDaGlsZCxcclxuICAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IERyb3Bab25lU2VydmljZSB9IGZyb20gXCIuL2Ryb3Atem9uZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7XHJcbiAgIExpbWJsZVRyZWVEYXRhLFxyXG4gICBMaW1ibGVUcmVlT3B0aW9ucyxcclxuICAgVHJlZURyb3BcclxufSBmcm9tIFwiLi4vbGltYmxlLXRyZWUtcm9vdC90cmVlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJlZVNlcnZpY2UgfSBmcm9tIFwiLi90cmVlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgaXNFbGVtZW50RGVzY2VuZGFudCB9IGZyb20gXCIuLi91dGlsXCI7XHJcbmltcG9ydCB7IERyYWdTdGF0ZVNlcnZpY2UgfSBmcm9tIFwiLi4vc2luZ2xldG9ucy9kcmFnLXN0YXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgR2xvYmFsRXZlbnRzU2VydmljZSB9IGZyb20gXCIuLi9zaW5nbGV0b25zL2dsb2JhbC1ldmVudHMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBUcmVlQ29uc3RydWN0aW9uU3RhdHVzIH0gZnJvbSBcIi4vdHJlZS1jb25zdHJ1Y3Rpb24tc3RhdHVzLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICBzZWxlY3RvcjogXCJsaW1ibGUtdHJlZS1yb290XCIsXHJcbiAgIHRlbXBsYXRlVXJsOiBcIi4vbGltYmxlLXRyZWUtcm9vdC5jb21wb25lbnQuaHRtbFwiLFxyXG4gICBzdHlsZVVybHM6IFtcIi4vbGltYmxlLXRyZWUtcm9vdC5jb21wb25lbnQuc2Nzc1wiXSxcclxuICAgcHJvdmlkZXJzOiBbVHJlZVNlcnZpY2UsIERyb3Bab25lU2VydmljZSwgVHJlZUNvbnN0cnVjdGlvblN0YXR1c11cclxufSlcclxuZXhwb3J0IGNsYXNzIExpbWJsZVRyZWVSb290Q29tcG9uZW50XHJcbiAgIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gICBASW5wdXQoKSBkYXRhOiBMaW1ibGVUcmVlRGF0YSB8IHVuZGVmaW5lZDtcclxuICAgQElucHV0KCkgb3B0aW9uczogTGltYmxlVHJlZU9wdGlvbnMgfCB1bmRlZmluZWQ7XHJcbiAgIEBJbnB1dCgpIGl0ZW1zUGVyUGFnZTogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICBASW5wdXQoKSBwYWdlOiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcblxyXG4gICBAVmlld0NoaWxkKFwiaG9zdFwiLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgcHJpdmF0ZSBob3N0OlxyXG4gICAgICB8IFZpZXdDb250YWluZXJSZWZcclxuICAgICAgfCB1bmRlZmluZWQ7XHJcblxyXG4gICBAT3V0cHV0KCkgcmVhZG9ubHkgdHJlZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVsbD4oKTtcclxuXHJcbiAgIEBPdXRwdXQoKSByZWFkb25seSB0cmVlRHJvcCA9IG5ldyBFdmVudEVtaXR0ZXI8VHJlZURyb3A+KCk7XHJcblxyXG4gICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICAgcHJpdmF0ZSByZWFkb25seSBkcm9wU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgIHB1YmxpYyBwbGFjZWhvbGRlcjogYm9vbGVhbjtcclxuXHJcbiAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IHRyZWVTZXJ2aWNlOiBUcmVlU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSByZWFkb25seSBkcm9wWm9uZVNlcnZpY2U6IERyb3Bab25lU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSByZWFkb25seSBkcmFnU3RhdGVTZXJ2aWNlOiBEcmFnU3RhdGVTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGdsb2JhbEV2ZW50c1NlcnZpY2U6IEdsb2JhbEV2ZW50c1NlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXHJcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmPEVsZW1lbnQ+XHJcbiAgICkge1xyXG4gICAgICB0aGlzLmNoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLnRyZWVTZXJ2aWNlLmNoYW5nZXMkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgIC8vXCJJbiBkZXYgbW9kZSwgQW5ndWxhciBwZXJmb3JtcyBhbiBhZGRpdGlvbmFsIGNoZWNrIGFmdGVyIGVhY2ggY2hhbmdlXHJcbiAgICAgICAgIC8vZGV0ZWN0aW9uIHJ1biwgdG8gZW5zdXJlIHRoZSBiaW5kaW5ncyBoYXZlbuKAmXQgY2hhbmdlZC5cIiBXZSB1c2UgYSB0aW1lb3V0IGhlcmVcclxuICAgICAgICAgLy90byBwcmVjbHVkZSB0aGUgcG9zc2liaWxpdHkgb2YgY2F1c2luZyBhIGJpbmRpbmcgdG8gdXBkYXRlIGluIHRoZSBwYXJlbnRcclxuICAgICAgICAgLy9jb21wb25lbnQgYWZ0ZXIgY2hhbmdlIGRldGVjdGlvbiBydW5zIGJ1dCBiZWZvcmUgdGhlIGFkZGl0aW9uYWwgY2hlY2suXHJcbiAgICAgICAgIC8vU2VlIGh0dHBzOi8vYW5ndWxhci5pby9lcnJvcnMvTkcwMTAwIGZvciBkZXRhaWxzLlxyXG4gICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy50cmVlQ2hhbmdlLmVtaXQoKTtcclxuICAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmRyb3BTdWJzY3JpcHRpb24gPSB0aGlzLnRyZWVTZXJ2aWNlLmRyb3BzJC5zdWJzY3JpYmUoKGRyb3ApID0+IHtcclxuICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudHJlZURyb3AuZW1pdChkcm9wKTtcclxuICAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnBsYWNlaG9sZGVyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudHJlZVNlcnZpY2UucGxhY2Vob2xkZXIkLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IHZhbHVlO1xyXG4gICAgICAgICBpZiAoIU5nWm9uZS5pc0luQW5ndWxhclpvbmUoKSkge1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgfVxyXG5cclxuICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIHRoaXMub3B0aW9ucz8ubGlzdE1vZGUgIT09IHRydWUgJiZcclxuICAgICAgICAgKHRoaXMuaXRlbXNQZXJQYWdlICE9PSB1bmRlZmluZWQgfHwgdGhpcy5wYWdlICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICkge1xyXG4gICAgICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgICAgIFwicGFnaW5hdGlvbiBpcyBvbmx5IGFsbG93ZWQgaW4gbGlzdE1vZGU7IGBpdGVtc1BlclBhZ2VgIGFuZCBgcGFnZWAgaW5wdXRzIHdpbGwgYmUgaWdub3JlZFwiXHJcbiAgICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy51cGRhdGUoKTtcclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgIC8vdGhpcyBpcyBmb3IgbWFjIG9zIC0gd2l0aG91dCB0aGlzIGRyYWdvdmVyIGhhbmRsZXIgZHJvcCBldmVudHMgYXJlbid0IGZpcmluZyBjb3JyZWN0bHlcclxuICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJkcmFnb3ZlclwiLCAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICB9XHJcblxyXG4gICBuZ09uQ2hhbmdlcygpIHtcclxuICAgICAgaWYgKHRoaXMuaG9zdCAhPT0gdW5kZWZpbmVkICYmIHRoaXMuZGF0YSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRoaXMudXBkYXRlKCk7XHJcbiAgICAgIH1cclxuICAgfVxyXG5cclxuICAgLyoqIFJlYnVpbGQgdGhlIHRyZWUgKi9cclxuICAgcHVibGljIHVwZGF0ZSgpIHtcclxuICAgICAgaWYgKHRoaXMuaG9zdCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgICAgXCJGYWlsZWQgdG8gcmVuZGVyIGxpbWJsZSB0cmVlLiBGYWlsdXJlIG9jY3VycmVkIGF0IHJvb3QuXCJcclxuICAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5kYXRhID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBsaW1ibGVUcmVlIHJlcXVpcmVzIGEgZGF0YSBvYmplY3RgKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRyZWVTZXJ2aWNlLmluaXQoXHJcbiAgICAgICAgIHRoaXMuaG9zdCxcclxuICAgICAgICAgdGhpcy5kYXRhLFxyXG4gICAgICAgICB0aGlzLm9wdGlvbnMsXHJcbiAgICAgICAgIHRoaXMuaXRlbXNQZXJQYWdlLFxyXG4gICAgICAgICB0aGlzLnBhZ2VcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5nbG9iYWxFdmVudHNTZXJ2aWNlLmFkZFNjcm9sbGluZygpO1xyXG4gICB9XHJcblxyXG4gICBwdWJsaWMgZHJhZ292ZXJIYW5kbGVyKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgICAgaWYgKGV2ZW50LmRhdGFUcmFuc2ZlciA9PT0gbnVsbCkge1xyXG4gICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0ID0gXCJtb3ZlXCI7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyBkcmFnbGVhdmVIYW5kbGVyKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgICAgY29uc3QgY3VycmVudFRhcmdldCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQ7XHJcbiAgICAgIGNvbnN0IHJlbGF0ZWRUYXJnZXQgPSBldmVudC5yZWxhdGVkVGFyZ2V0O1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgICEoY3VycmVudFRhcmdldCBpbnN0YW5jZW9mIE5vZGUpIHx8XHJcbiAgICAgICAgICEocmVsYXRlZFRhcmdldCBpbnN0YW5jZW9mIE5vZGUpIHx8XHJcbiAgICAgICAgIGlzRWxlbWVudERlc2NlbmRhbnQoY3VycmVudFRhcmdldCwgcmVsYXRlZFRhcmdldCkgIT09IGZhbHNlXHJcbiAgICAgICkge1xyXG4gICAgICAgICAvL2V2ZW50IGNhbWUgZnJvbSBkZWVwZXIgaW4gdGhlIHRyZWUuIElnbm9yZSBpdC5cclxuICAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIC8vTW91c2UgaGFzIGxlZnQgdGhlIHRyZWUsIHNvIGNsZWFyIHRoZSBkcm9wIHpvbmVzXHJcbiAgICAgIHRoaXMuZHJvcFpvbmVTZXJ2aWNlLmNsZWFyVmlzaWJsZVpvbmVzKCk7XHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICB9XHJcblxyXG4gICBwdWJsaWMgZHJvcEhhbmRsZXIoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgaWYgKHRoaXMuZHJhZ1N0YXRlU2VydmljZS5nZXRTdGF0ZSgpICE9PSBcImRyb3BwYWJsZVwiKSB7XHJcbiAgICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBzb3VyY2VCcmFuY2ggPSB0aGlzLmRyYWdTdGF0ZVNlcnZpY2UuY2FwdHVyZSgpO1xyXG4gICAgICBpZiAoc291cmNlQnJhbmNoID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZmFpbGVkIHRvIGdldCBjdXJyZW50IGJyYW5jaCBpbiBkcmFnZW5kSGFuZGxlclwiKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBkcm9wWm9uZSA9IHRoaXMuZHJvcFpvbmVTZXJ2aWNlLmdldEFjdGl2ZURyb3Bab25lKCk7XHJcbiAgICAgIGlmIChkcm9wWm9uZSA9PT0gbnVsbCkge1xyXG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJmYWlsZWQgdG8gZ2V0IGFjdGl2ZSBkcm9wIHpvbmUgYXQgZHJvcCBoYW5kbGVyXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudHJlZVNlcnZpY2UuY2FwdHVyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmRyYWdTdGF0ZVNlcnZpY2Uuc3RhdGUkXHJcbiAgICAgICAgIC5waXBlKGZpcnN0KChtZXNzYWdlKSA9PiBtZXNzYWdlID09PSBcImlkbGVcIikpXHJcbiAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRyZWVTZXJ2aWNlLmNhcHR1cmVkID0gZmFsc2U7XHJcbiAgICAgICAgIH0pO1xyXG4gICAgICB0aGlzLmRyb3Bab25lU2VydmljZS5jbGVhclZpc2libGVab25lcygpO1xyXG4gICAgICB0aGlzLnRyZWVTZXJ2aWNlLmRyb3Aoc291cmNlQnJhbmNoLCBkcm9wWm9uZS5nZXRGdWxsSW5zZXJ0Q29vcmRpbmF0ZXMoKSk7XHJcbiAgIH1cclxuXHJcbiAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICB0aGlzLmNoYW5nZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgdGhpcy5kcm9wU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgIChkcmFnb3Zlck5vQ2hhbmdlRGV0ZWN0KT1cImRyYWdvdmVySGFuZGxlcigkZXZlbnQpXCJcclxuICAgKGRyYWdsZWF2ZU5vQ2hhbmdlRGV0ZWN0KT1cImRyYWdsZWF2ZUhhbmRsZXIoJGV2ZW50KVwiXHJcbiAgIChkcm9wKT1cImRyb3BIYW5kbGVyKCRldmVudClcIlxyXG4+XHJcbiAgIDxsaW1ibGUtdHJlZS1wbGFjZWhvbGRlclxyXG4gICAgICAqbmdJZj1cInBsYWNlaG9sZGVyID09PSB0cnVlXCJcclxuICAgPjwvbGltYmxlLXRyZWUtcGxhY2Vob2xkZXI+XHJcbiAgIDxuZy10ZW1wbGF0ZSAjaG9zdD48L25nLXRlbXBsYXRlPlxyXG48L2Rpdj5cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGltYmxlLXRyZWUtcm9vdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2xpbWJsZS10cmVlLXJvb3QvbGltYmxlLXRyZWUtcm9vdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2xpbWJsZS10cmVlLXJvb3QvbGltYmxlLXRyZWUtcm9vdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0osU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUdOLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU10RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7O0lDckJ6RSwwQ0FFMkI7OztBRDJCOUIsTUFBTSxPQUFPLHVCQUF1QjtJQW1CakMsWUFDb0IsV0FBd0IsRUFDeEIsZUFBZ0MsRUFDaEMsZ0JBQWtDLEVBQ2xDLG1CQUF3QyxFQUN4QyxNQUFjLEVBQ2QsaUJBQW9DLEVBQ3BDLEVBQXVCO1FBTnZCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsT0FBRSxHQUFGLEVBQUUsQ0FBcUI7UUFmeEIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFdEMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFZLENBQUM7UUFleEQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakUsc0VBQXNFO1lBQ3RFLCtFQUErRTtZQUMvRSwwRUFBMEU7WUFDMUUsd0VBQXdFO1lBQ3hFLG1EQUFtRDtZQUNuRCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoRSxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxFQUFFO2dCQUM1QixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDekM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRCxlQUFlOztRQUNaLElBQ0csQ0FBQSxNQUFBLElBQUksQ0FBQyxPQUFPLDBDQUFFLFFBQVEsTUFBSyxJQUFJO1lBQy9CLENBQUMsSUFBSSxDQUFDLFlBQVksS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsRUFDN0Q7WUFDQyxPQUFPLENBQUMsSUFBSSxDQUNULDBGQUEwRixDQUM1RixDQUFDO1NBQ0o7UUFDRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFdkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsd0ZBQXdGO1lBQ3hGLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUMxRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRCxXQUFXO1FBQ1IsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUNyRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDaEI7SUFDSixDQUFDO0lBRUQsdUJBQXVCO0lBQ2hCLE1BQU07UUFDVixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQ1oseURBQXlELENBQzNELENBQUM7U0FDSjtRQUNELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1NBQ3ZEO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ2xCLElBQUksQ0FBQyxJQUFJLEVBQ1QsSUFBSSxDQUFDLElBQUksRUFDVCxJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxZQUFZLEVBQ2pCLElBQUksQ0FBQyxJQUFJLENBQ1gsQ0FBQztRQUNGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRU0sZUFBZSxDQUFDLEtBQWdCO1FBQ3BDLElBQUksS0FBSyxDQUFDLFlBQVksS0FBSyxJQUFJLEVBQUU7WUFDOUIsT0FBTztTQUNUO1FBQ0QsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7SUFDMUMsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEtBQWdCO1FBQ3JDLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDMUMsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUMxQyxJQUNHLENBQUMsQ0FBQyxhQUFhLFlBQVksSUFBSSxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxhQUFhLFlBQVksSUFBSSxDQUFDO1lBQ2hDLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsS0FBSyxLQUFLLEVBQzVEO1lBQ0MsZ0RBQWdEO1lBQ2hELE9BQU87U0FDVDtRQUNELGtEQUFrRDtRQUNsRCxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFTSxXQUFXLENBQUMsS0FBZ0I7UUFDaEMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxLQUFLLFdBQVcsRUFBRTtZQUNuRCxPQUFPO1NBQ1Q7UUFDRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckQsSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFO1lBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztTQUNwRTtRQUNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMxRCxJQUFJLFFBQVEsS0FBSyxJQUFJLEVBQUU7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO1NBQ3BFO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNO2FBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxNQUFNLENBQUMsQ0FBQzthQUM1QyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBQ04sSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxXQUFXO1FBQ1IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QyxDQUFDOzs4RkFySlMsdUJBQXVCOzBFQUF2Qix1QkFBdUI7K0JBT04sZ0JBQWdCOzs7O2lNQVRoQyxDQUFDLFdBQVcsRUFBRSxlQUFlLEVBQUUsc0JBQXNCLENBQUM7UUNoQ3BFLDhCQUlDO1FBSEUseUlBQTBCLDJCQUF1QixJQUFDLDhIQUN2Qiw0QkFBd0IsSUFERCx3RkFFMUMsdUJBQW1CLElBRnVCO1FBSWxELGdIQUUyQjtRQUMzQix5SEFBaUM7UUFDcEMsaUJBQU07O1FBSEMsZUFBMEI7UUFBMUIsK0NBQTBCOzt1RkQ0QnBCLHVCQUF1QjtjQU5uQyxTQUFTO2VBQUM7Z0JBQ1IsUUFBUSxFQUFFLGtCQUFrQjtnQkFDNUIsV0FBVyxFQUFFLG1DQUFtQztnQkFDaEQsU0FBUyxFQUFFLENBQUMsbUNBQW1DLENBQUM7Z0JBQ2hELFNBQVMsRUFBRSxDQUFDLFdBQVcsRUFBRSxlQUFlLEVBQUUsc0JBQXNCLENBQUM7YUFDbkU7Mk9BR1csSUFBSTtrQkFBWixLQUFLO1lBQ0csT0FBTztrQkFBZixLQUFLO1lBQ0csWUFBWTtrQkFBcEIsS0FBSztZQUNHLElBQUk7a0JBQVosS0FBSztZQUVpRCxJQUFJO2tCQUExRCxTQUFTO21CQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtZQUkxQixVQUFVO2tCQUE1QixNQUFNO1lBRVksUUFBUTtrQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgIEFmdGVyVmlld0luaXQsXHJcbiAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICBDb21wb25lbnQsXHJcbiAgIEVsZW1lbnRSZWYsXHJcbiAgIEV2ZW50RW1pdHRlcixcclxuICAgSW5wdXQsXHJcbiAgIE5nWm9uZSxcclxuICAgT25DaGFuZ2VzLFxyXG4gICBPbkRlc3Ryb3ksXHJcbiAgIE91dHB1dCxcclxuICAgVmlld0NoaWxkLFxyXG4gICBWaWV3Q29udGFpbmVyUmVmXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgRHJvcFpvbmVTZXJ2aWNlIH0gZnJvbSBcIi4vZHJvcC16b25lLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtcclxuICAgTGltYmxlVHJlZURhdGEsXHJcbiAgIExpbWJsZVRyZWVPcHRpb25zLFxyXG4gICBUcmVlRHJvcFxyXG59IGZyb20gXCIuLi9saW1ibGUtdHJlZS1yb290L3RyZWUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUcmVlU2VydmljZSB9IGZyb20gXCIuL3RyZWUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBpc0VsZW1lbnREZXNjZW5kYW50IH0gZnJvbSBcIi4uL3V0aWxcIjtcclxuaW1wb3J0IHsgRHJhZ1N0YXRlU2VydmljZSB9IGZyb20gXCIuLi9zaW5nbGV0b25zL2RyYWctc3RhdGUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBHbG9iYWxFdmVudHNTZXJ2aWNlIH0gZnJvbSBcIi4uL3NpbmdsZXRvbnMvZ2xvYmFsLWV2ZW50cy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IFRyZWVDb25zdHJ1Y3Rpb25TdGF0dXMgfSBmcm9tIFwiLi90cmVlLWNvbnN0cnVjdGlvbi1zdGF0dXMuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgIHNlbGVjdG9yOiBcImxpbWJsZS10cmVlLXJvb3RcIixcclxuICAgdGVtcGxhdGVVcmw6IFwiLi9saW1ibGUtdHJlZS1yb290LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgIHN0eWxlVXJsczogW1wiLi9saW1ibGUtdHJlZS1yb290LmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gICBwcm92aWRlcnM6IFtUcmVlU2VydmljZSwgRHJvcFpvbmVTZXJ2aWNlLCBUcmVlQ29uc3RydWN0aW9uU3RhdHVzXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGltYmxlVHJlZVJvb3RDb21wb25lbnRcclxuICAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgIEBJbnB1dCgpIGRhdGE6IExpbWJsZVRyZWVEYXRhIHwgdW5kZWZpbmVkO1xyXG4gICBASW5wdXQoKSBvcHRpb25zOiBMaW1ibGVUcmVlT3B0aW9ucyB8IHVuZGVmaW5lZDtcclxuICAgQElucHV0KCkgaXRlbXNQZXJQYWdlOiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgIEBJbnB1dCgpIHBhZ2U6IG51bWJlciB8IHVuZGVmaW5lZDtcclxuXHJcbiAgIEBWaWV3Q2hpbGQoXCJob3N0XCIsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBwcml2YXRlIGhvc3Q6XHJcbiAgICAgIHwgVmlld0NvbnRhaW5lclJlZlxyXG4gICAgICB8IHVuZGVmaW5lZDtcclxuXHJcbiAgIEBPdXRwdXQoKSByZWFkb25seSB0cmVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudWxsPigpO1xyXG5cclxuICAgQE91dHB1dCgpIHJlYWRvbmx5IHRyZWVEcm9wID0gbmV3IEV2ZW50RW1pdHRlcjxUcmVlRHJvcD4oKTtcclxuXHJcbiAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gICBwcml2YXRlIHJlYWRvbmx5IGRyb3BTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICAgcHVibGljIHBsYWNlaG9sZGVyOiBib29sZWFuO1xyXG5cclxuICAgY29uc3RydWN0b3IoXHJcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJlZVNlcnZpY2U6IFRyZWVTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGRyb3Bab25lU2VydmljZTogRHJvcFpvbmVTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGRyYWdTdGF0ZVNlcnZpY2U6IERyYWdTdGF0ZVNlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgZ2xvYmFsRXZlbnRzU2VydmljZTogR2xvYmFsRXZlbnRzU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcclxuICAgICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgZWw6IEVsZW1lbnRSZWY8RWxlbWVudD5cclxuICAgKSB7XHJcbiAgICAgIHRoaXMuY2hhbmdlc1N1YnNjcmlwdGlvbiA9IHRoaXMudHJlZVNlcnZpY2UuY2hhbmdlcyQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgLy9cIkluIGRldiBtb2RlLCBBbmd1bGFyIHBlcmZvcm1zIGFuIGFkZGl0aW9uYWwgY2hlY2sgYWZ0ZXIgZWFjaCBjaGFuZ2VcclxuICAgICAgICAgLy9kZXRlY3Rpb24gcnVuLCB0byBlbnN1cmUgdGhlIGJpbmRpbmdzIGhhdmVu4oCZdCBjaGFuZ2VkLlwiIFdlIHVzZSBhIHRpbWVvdXQgaGVyZVxyXG4gICAgICAgICAvL3RvIHByZWNsdWRlIHRoZSBwb3NzaWJpbGl0eSBvZiBjYXVzaW5nIGEgYmluZGluZyB0byB1cGRhdGUgaW4gdGhlIHBhcmVudFxyXG4gICAgICAgICAvL2NvbXBvbmVudCBhZnRlciBjaGFuZ2UgZGV0ZWN0aW9uIHJ1bnMgYnV0IGJlZm9yZSB0aGUgYWRkaXRpb25hbCBjaGVjay5cclxuICAgICAgICAgLy9TZWUgaHR0cHM6Ly9hbmd1bGFyLmlvL2Vycm9ycy9ORzAxMDAgZm9yIGRldGFpbHMuXHJcbiAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRyZWVDaGFuZ2UuZW1pdCgpO1xyXG4gICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuZHJvcFN1YnNjcmlwdGlvbiA9IHRoaXMudHJlZVNlcnZpY2UuZHJvcHMkLnN1YnNjcmliZSgoZHJvcCkgPT4ge1xyXG4gICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy50cmVlRHJvcC5lbWl0KGRyb3ApO1xyXG4gICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy50cmVlU2VydmljZS5wbGFjZWhvbGRlciQuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gdmFsdWU7XHJcbiAgICAgICAgIGlmICghTmdab25lLmlzSW5Bbmd1bGFyWm9uZSgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICB9XHJcblxyXG4gICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICAgdGhpcy5vcHRpb25zPy5saXN0TW9kZSAhPT0gdHJ1ZSAmJlxyXG4gICAgICAgICAodGhpcy5pdGVtc1BlclBhZ2UgIT09IHVuZGVmaW5lZCB8fCB0aGlzLnBhZ2UgIT09IHVuZGVmaW5lZClcclxuICAgICAgKSB7XHJcbiAgICAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICAgICAgXCJwYWdpbmF0aW9uIGlzIG9ubHkgYWxsb3dlZCBpbiBsaXN0TW9kZTsgYGl0ZW1zUGVyUGFnZWAgYW5kIGBwYWdlYCBpbnB1dHMgd2lsbCBiZSBpZ25vcmVkXCJcclxuICAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnVwZGF0ZSgpO1xyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAgLy90aGlzIGlzIGZvciBtYWMgb3MgLSB3aXRob3V0IHRoaXMgZHJhZ292ZXIgaGFuZGxlciBkcm9wIGV2ZW50cyBhcmVuJ3QgZmlyaW5nIGNvcnJlY3RseVxyXG4gICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImRyYWdvdmVyXCIsIChldmVudCkgPT4ge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgIH1cclxuXHJcbiAgIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgICBpZiAodGhpcy5ob3N0ICE9PSB1bmRlZmluZWQgJiYgdGhpcy5kYXRhICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgdGhpcy51cGRhdGUoKTtcclxuICAgICAgfVxyXG4gICB9XHJcblxyXG4gICAvKiogUmVidWlsZCB0aGUgdHJlZSAqL1xyXG4gICBwdWJsaWMgdXBkYXRlKCkge1xyXG4gICAgICBpZiAodGhpcy5ob3N0ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgICBcIkZhaWxlZCB0byByZW5kZXIgbGltYmxlIHRyZWUuIEZhaWx1cmUgb2NjdXJyZWQgYXQgcm9vdC5cIlxyXG4gICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmRhdGEgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGxpbWJsZVRyZWUgcmVxdWlyZXMgYSBkYXRhIG9iamVjdGApO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudHJlZVNlcnZpY2UuaW5pdChcclxuICAgICAgICAgdGhpcy5ob3N0LFxyXG4gICAgICAgICB0aGlzLmRhdGEsXHJcbiAgICAgICAgIHRoaXMub3B0aW9ucyxcclxuICAgICAgICAgdGhpcy5pdGVtc1BlclBhZ2UsXHJcbiAgICAgICAgIHRoaXMucGFnZVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmdsb2JhbEV2ZW50c1NlcnZpY2UuYWRkU2Nyb2xsaW5nKCk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyBkcmFnb3ZlckhhbmRsZXIoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgICBpZiAoZXZlbnQuZGF0YVRyYW5zZmVyID09PSBudWxsKSB7XHJcbiAgICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSBcIm1vdmVcIjtcclxuICAgfVxyXG5cclxuICAgcHVibGljIGRyYWdsZWF2ZUhhbmRsZXIoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgICBjb25zdCBjdXJyZW50VGFyZ2V0ID0gZXZlbnQuY3VycmVudFRhcmdldDtcclxuICAgICAgY29uc3QgcmVsYXRlZFRhcmdldCA9IGV2ZW50LnJlbGF0ZWRUYXJnZXQ7XHJcbiAgICAgIGlmIChcclxuICAgICAgICAgIShjdXJyZW50VGFyZ2V0IGluc3RhbmNlb2YgTm9kZSkgfHxcclxuICAgICAgICAgIShyZWxhdGVkVGFyZ2V0IGluc3RhbmNlb2YgTm9kZSkgfHxcclxuICAgICAgICAgaXNFbGVtZW50RGVzY2VuZGFudChjdXJyZW50VGFyZ2V0LCByZWxhdGVkVGFyZ2V0KSAhPT0gZmFsc2VcclxuICAgICAgKSB7XHJcbiAgICAgICAgIC8vZXZlbnQgY2FtZSBmcm9tIGRlZXBlciBpbiB0aGUgdHJlZS4gSWdub3JlIGl0LlxyXG4gICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgLy9Nb3VzZSBoYXMgbGVmdCB0aGUgdHJlZSwgc28gY2xlYXIgdGhlIGRyb3Agem9uZXNcclxuICAgICAgdGhpcy5kcm9wWm9uZVNlcnZpY2UuY2xlYXJWaXNpYmxlWm9uZXMoKTtcclxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyBkcm9wSGFuZGxlcihldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICBpZiAodGhpcy5kcmFnU3RhdGVTZXJ2aWNlLmdldFN0YXRlKCkgIT09IFwiZHJvcHBhYmxlXCIpIHtcclxuICAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHNvdXJjZUJyYW5jaCA9IHRoaXMuZHJhZ1N0YXRlU2VydmljZS5jYXB0dXJlKCk7XHJcbiAgICAgIGlmIChzb3VyY2VCcmFuY2ggPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJmYWlsZWQgdG8gZ2V0IGN1cnJlbnQgYnJhbmNoIGluIGRyYWdlbmRIYW5kbGVyXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGRyb3Bab25lID0gdGhpcy5kcm9wWm9uZVNlcnZpY2UuZ2V0QWN0aXZlRHJvcFpvbmUoKTtcclxuICAgICAgaWYgKGRyb3Bab25lID09PSBudWxsKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImZhaWxlZCB0byBnZXQgYWN0aXZlIGRyb3Agem9uZSBhdCBkcm9wIGhhbmRsZXJcIik7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50cmVlU2VydmljZS5jYXB0dXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZHJhZ1N0YXRlU2VydmljZS5zdGF0ZSRcclxuICAgICAgICAgLnBpcGUoZmlyc3QoKG1lc3NhZ2UpID0+IG1lc3NhZ2UgPT09IFwiaWRsZVwiKSlcclxuICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudHJlZVNlcnZpY2UuY2FwdHVyZWQgPSBmYWxzZTtcclxuICAgICAgICAgfSk7XHJcbiAgICAgIHRoaXMuZHJvcFpvbmVTZXJ2aWNlLmNsZWFyVmlzaWJsZVpvbmVzKCk7XHJcbiAgICAgIHRoaXMudHJlZVNlcnZpY2UuZHJvcChzb3VyY2VCcmFuY2gsIGRyb3Bab25lLmdldEZ1bGxJbnNlcnRDb29yZGluYXRlcygpKTtcclxuICAgfVxyXG5cclxuICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgIHRoaXMuY2hhbmdlc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLmRyb3BTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAgKGRyYWdvdmVyTm9DaGFuZ2VEZXRlY3QpPVwiZHJhZ292ZXJIYW5kbGVyKCRldmVudClcIlxyXG4gICAoZHJhZ2xlYXZlTm9DaGFuZ2VEZXRlY3QpPVwiZHJhZ2xlYXZlSGFuZGxlcigkZXZlbnQpXCJcclxuICAgKGRyb3ApPVwiZHJvcEhhbmRsZXIoJGV2ZW50KVwiXHJcbj5cclxuICAgPGxpbWJsZS10cmVlLXBsYWNlaG9sZGVyXHJcbiAgICAgICpuZ0lmPVwicGxhY2Vob2xkZXIgPT09IHRydWVcIlxyXG4gICA+PC9saW1ibGUtdHJlZS1wbGFjZWhvbGRlcj5cclxuICAgPG5nLXRlbXBsYXRlICNob3N0PjwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PlxyXG4iXX0=

@@ -29,6 +29,6 @@ import { Injectable } from "@angular/core";

TreeConstructionStatus.ɵfac = function TreeConstructionStatus_Factory(t) { return new (t || TreeConstructionStatus)(); };
TreeConstructionStatus.ɵprov = i0.ɵɵdefineInjectable({ token: TreeConstructionStatus, factory: TreeConstructionStatus.ɵfac });
TreeConstructionStatus.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: TreeConstructionStatus, factory: TreeConstructionStatus.ɵfac });
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TreeConstructionStatus, [{
type: Injectable
}], function () { return []; }, null); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1jb25zdHJ1Y3Rpb24tc3RhdHVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2xpbWJsZS10cmVlLXJvb3QvdHJlZS1jb25zdHJ1Y3Rpb24tc3RhdHVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUd2QyxNQUFNLE9BQU8sc0JBQXNCO0lBS2hDO1FBQ0csSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU0sWUFBWTtRQUNoQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVNLGdCQUFnQjtRQUNwQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVNLFlBQVk7UUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQVk7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDdEIsQ0FBQztJQUVNLElBQUk7UUFDUixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDOzs0RkEvQlMsc0JBQXNCOzhEQUF0QixzQkFBc0IsV0FBdEIsc0JBQXNCO3VGQUF0QixzQkFBc0I7Y0FEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVHJlZUNvbnN0cnVjdGlvblN0YXR1cyB7XHJcbiAgIHByaXZhdGUgYmVpbmdCdWlsdDogbnVtYmVyO1xyXG4gICBwcml2YXRlIGlzUmVhZHk6IGJvb2xlYW47XHJcbiAgIHB1YmxpYyByZWFkb25seSBzdGFibGUkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XHJcblxyXG4gICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgIHRoaXMuYmVpbmdCdWlsdCA9IDA7XHJcbiAgICAgIHRoaXMuaXNSZWFkeSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnN0YWJsZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMudHJlZUlzU3RhYmxlKCkpO1xyXG4gICB9XHJcblxyXG4gICBwdWJsaWMgY29uc3RydWN0aW5nKCk6IHZvaWQge1xyXG4gICAgICB0aGlzLmJlaW5nQnVpbHQrKztcclxuICAgICAgdGhpcy5lbWl0KCk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyBkb25lQ29uc3RydWN0aW5nKCk6IHZvaWQge1xyXG4gICAgICB0aGlzLmJlaW5nQnVpbHQtLTtcclxuICAgICAgdGhpcy5lbWl0KCk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyB0cmVlSXNTdGFibGUoKTogYm9vbGVhbiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlzUmVhZHkgPT09IHRydWUgJiYgdGhpcy5iZWluZ0J1aWx0ID09PSAwO1xyXG4gICB9XHJcblxyXG4gICBwdWJsaWMgcmVhZHkodmFsOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgIHRoaXMuaXNSZWFkeSA9IHZhbDtcclxuICAgfVxyXG5cclxuICAgcHVibGljIGVtaXQoKTogdm9pZCB7XHJcbiAgICAgIHRoaXMuc3RhYmxlJC5uZXh0KHRoaXMudHJlZUlzU3RhYmxlKCkpO1xyXG4gICB9XHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1jb25zdHJ1Y3Rpb24tc3RhdHVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2xpbWJsZS10cmVlLXJvb3QvdHJlZS1jb25zdHJ1Y3Rpb24tc3RhdHVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUd2QyxNQUFNLE9BQU8sc0JBQXNCO0lBS2hDO1FBQ0csSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU0sWUFBWTtRQUNoQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVNLGdCQUFnQjtRQUNwQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVNLFlBQVk7UUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQVk7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDdEIsQ0FBQztJQUVNLElBQUk7UUFDUixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDOzs0RkEvQlMsc0JBQXNCOzRFQUF0QixzQkFBc0IsV0FBdEIsc0JBQXNCO3VGQUF0QixzQkFBc0I7Y0FEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVHJlZUNvbnN0cnVjdGlvblN0YXR1cyB7XHJcbiAgIHByaXZhdGUgYmVpbmdCdWlsdDogbnVtYmVyO1xyXG4gICBwcml2YXRlIGlzUmVhZHk6IGJvb2xlYW47XHJcbiAgIHB1YmxpYyByZWFkb25seSBzdGFibGUkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XHJcblxyXG4gICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgIHRoaXMuYmVpbmdCdWlsdCA9IDA7XHJcbiAgICAgIHRoaXMuaXNSZWFkeSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnN0YWJsZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMudHJlZUlzU3RhYmxlKCkpO1xyXG4gICB9XHJcblxyXG4gICBwdWJsaWMgY29uc3RydWN0aW5nKCk6IHZvaWQge1xyXG4gICAgICB0aGlzLmJlaW5nQnVpbHQrKztcclxuICAgICAgdGhpcy5lbWl0KCk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyBkb25lQ29uc3RydWN0aW5nKCk6IHZvaWQge1xyXG4gICAgICB0aGlzLmJlaW5nQnVpbHQtLTtcclxuICAgICAgdGhpcy5lbWl0KCk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyB0cmVlSXNTdGFibGUoKTogYm9vbGVhbiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlzUmVhZHkgPT09IHRydWUgJiYgdGhpcy5iZWluZ0J1aWx0ID09PSAwO1xyXG4gICB9XHJcblxyXG4gICBwdWJsaWMgcmVhZHkodmFsOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgIHRoaXMuaXNSZWFkeSA9IHZhbDtcclxuICAgfVxyXG5cclxuICAgcHVibGljIGVtaXQoKTogdm9pZCB7XHJcbiAgICAgIHRoaXMuc3RhYmxlJC5uZXh0KHRoaXMudHJlZUlzU3RhYmxlKCkpO1xyXG4gICB9XHJcbn1cclxuIl19

@@ -297,6 +297,6 @@ import { Injectable } from "@angular/core";

TreeService.ɵfac = function TreeService_Factory(t) { return new (t || TreeService)(i0.ɵɵinject(i1.ComponentCreatorService), i0.ɵɵinject(i2.DropZoneService), i0.ɵɵinject(i3.DragStateService), i0.ɵɵinject(i4.TreeConstructionStatus)); };
TreeService.ɵprov = i0.ɵɵdefineInjectable({ token: TreeService, factory: TreeService.ɵfac });
TreeService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: TreeService, factory: TreeService.ɵfac });
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TreeService, [{
type: Injectable
}], function () { return [{ type: i1.ComponentCreatorService }, { type: i2.DropZoneService }, { type: i3.DragStateService }, { type: i4.TreeConstructionStatus }]; }, null); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9saW1ibGUtdHJlZS1yb290L3RyZWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUEwQixNQUFNLGVBQWUsQ0FBQztBQUduRSxPQUFPLEVBQUUsTUFBTSxFQUFxQixNQUFNLG1CQUFtQixDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRXpGLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBK0RyRSxnREFBZ0Q7QUFDaEQsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztBQWtEekIsTUFBTSxPQUFPLFdBQVc7SUFjckIsWUFDb0IsdUJBQWdELEVBQ2hELGVBQWdDLEVBQ2hDLGdCQUFrQyxFQUNsQyxzQkFBOEM7UUFIOUMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBRS9ELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMs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LElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDN0M7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNmLENBQUM7O3NFQTlWUyxXQUFXO21EQUFYLFdBQVcsV0FBWCxXQUFXO3VGQUFYLFdBQVc7Y0FEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFR5cGUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnRDcmVhdG9yU2VydmljZSB9IGZyb20gXCIuLi9zaW5nbGV0b25zL2NvbXBvbmVudC1jcmVhdG9yLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRHJvcFpvbmVTZXJ2aWNlIH0gZnJvbSBcIi4vZHJvcC16b25lLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQnJhbmNoLCBCcmFuY2hDb29yZGluYXRlcyB9IGZyb20gXCIuLi9jbGFzc2VzL0JyYW5jaFwiO1xyXG5pbXBvcnQgeyBMaW1ibGVUcmVlTm9kZUNvbXBvbmVudCB9IGZyb20gXCIuLi9saW1ibGUtdHJlZS1ub2RlL2xpbWJsZS10cmVlLW5vZGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IERyYWdTdGF0ZVNlcnZpY2UgfSBmcm9tIFwiLi4vc2luZ2xldG9ucy9kcmFnLXN0YXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBFTVBUWSwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IGFycmF5c0FyZUVxdWFsIH0gZnJvbSBcIi4uL3V0aWxcIjtcclxuaW1wb3J0IHsgZGVib3VuY2UsIGRlYm91bmNlVGltZSwgZmlsdGVyLCB0YXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgVHJlZUNvbnN0cnVjdGlvblN0YXR1cyB9IGZyb20gXCIuL3RyZWUtY29uc3RydWN0aW9uLXN0YXR1cy5zZXJ2aWNlXCI7XHJcblxyXG4vKiogQW4gb2JqZWN0IGRlc2NyaWJpbmcgYSBub2RlIG9mIHRoZSB0cmVlICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGltYmxlVHJlZU5vZGUge1xyXG4gICAvKiogQSBsaXN0IG9mIG5vZGVzIHRvIGJlIHJlbmRlcmVkIFwidW5kZXJcIiB0aGlzIG9uZSwgb25lIGxldmVsIGRlZXBlciBpbiB0aGUgdHJlZS4gKi9cclxuICAgbm9kZXM/OiBMaW1ibGVUcmVlRGF0YTtcclxuICAgLy8gLyoqIEEgY3VzdG9tIGRhdGEgb2JqZWN0IHRoYXQgd2lsbCBiZSBwYXNzZWQgaW50byB0aGUgY29tcG9uZW50IGFzIGFuIGBJbnB1dCgpYCBiaW5kaW5nIGNhbGxlZCBgbm9kZURhdGFgICovXHJcbiAgIC8vIGRhdGE6IHVua25vd247XHJcbiAgIC8qKiBBbiBvYmplY3QgdGhhdCBkZXNjcmliZXMgdGhlIGNvbXBvbmVudCB3aGljaCB3aWxsIHJlcHJlc2VudCB0aGlzIG5vZGUgaW4gdGhlIHZpc3VhbCB0cmVlICovXHJcbiAgIGNvbXBvbmVudD86IENvbXBvbmVudE9iajtcclxuICAgY29sbGFwc2VkPzogYm9vbGVhbjtcclxuICAgW2luZGV4OiBzdHJpbmddOiB1bmtub3duO1xyXG59XHJcblxyXG4vKiogQW4gb2JqZWN0IHRoYXQgdGhlIGxpbWJsZS10cmVlLXJvb3QgY29tcG9uZW50IHVzZXMgdG8gYnVpbGQgdGhlIHRyZWUgKi9cclxuZXhwb3J0IHR5cGUgTGltYmxlVHJlZURhdGEgPSBBcnJheTxMaW1ibGVUcmVlTm9kZT47XHJcblxyXG4vKiogQSBncm91cCBvZiBzZXR0aW5ncyBmb3IgY2hhbmdpbmcgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHRyZWUgKi9cclxuZXhwb3J0IGludGVyZmFjZSBMaW1ibGVUcmVlT3B0aW9ucyB7XHJcbiAgIC8qKiBUaGUgY29tcG9uZW50IG9iamVjdCB0byB1c2UgaWYgb25lIGlzIG5vdCBzcGVjaWZpZWQgZm9yIGEgcGFydGljdWxhciBub2RlICovXHJcbiAgIGRlZmF1bHRDb21wb25lbnQ/OiBDb21wb25lbnRPYmo7XHJcbiAgIC8qKiBUaGUgbnVtYmVyIG9mIHBpeGVscyB0byBpbmRlbnQgZWFjaCBsZXZlbCBvZiB0aGUgdHJlZS4gRGVmYXVsdHMgdG8gNDUgKi9cclxuICAgaW5kZW50PzogbnVtYmVyO1xyXG4gICAvKipcclxuICAgICogV2hldGhlciB0byBhbGxvdyBcIm5lc3RpbmdcIiAocGxhY2luZyBhIG5vZGUgb25lIGxldmVsIGRlZXBlciB0aGFuIGN1cnJlbnRseSBleGlzdHMgb24gdGhlIGJyYW5jaCkuXHJcbiAgICAqIFdoZW4gdGhpcyBpcyBhIGJvb2xlYW4sIGl0IGFwcGxpZXMgdG8gYWxsIG5vZGVzLiBXaGVuIHRoaXMgaXMgYSBmdW5jdGlvbiwgdGhlIG5vZGUgaW4gcXVlc3Rpb25cclxuICAgICogaXMgcGFzc2VkIGluLiBEZWZhdWx0cyB0byB0cnVlLlxyXG4gICAgKi9cclxuICAgYWxsb3dOZXN0aW5nPzogYm9vbGVhbiB8ICgobm9kZURhdGE6IExpbWJsZVRyZWVOb2RlKSA9PiBib29sZWFuKTtcclxuICAgLyoqXHJcbiAgICAqIFdoZXRoZXIgdG8gYWxsb3cgYSBub2RlIHRvIGJlIGRyYWdnZWQuIFdoZW4gdGhpcyBpcyBhIGJvb2xlYW4sIGl0IGFwcGxpZXMgdG8gYWxsIG5vZGVzLiBXaGVuIHRoaXNcclxuICAgICogaXMgYSBmdW5jdGlvbiwgdGhlIG5vZGUgaW4gcXVlc3Rpb24gaXMgcGFzc2VkIGluLiBEZWZhdWx0cyB0byB0cnVlLlxyXG4gICAgKi9cclxuICAgYWxsb3dEcmFnZ2luZz86IGJvb2xlYW4gfCAoKG5vZGVEYXRhOiBMaW1ibGVUcmVlTm9kZSkgPT4gYm9vbGVhbik7XHJcbiAgIC8qKiBBIGNhbGxiYWNrIHRvIGRldGVybWluZSB3aGV0aGVyIGEgc291cmNlTm9kZSBjYW4gYmUgZHJvcHBlZCBhdCBhIHBhcnRpY3VsYXIgbG9jYXRpb24uICovXHJcbiAgIGFsbG93RHJvcD86IChcclxuICAgICAgc291cmNlTm9kZTogTGltYmxlVHJlZU5vZGUsXHJcbiAgICAgIHByb3Bvc2VkUGFyZW50OiBMaW1ibGVUcmVlTm9kZSB8IG51bGwsXHJcbiAgICAgIHByb3Bvc2VkSW5kZXg6IG51bWJlclxyXG4gICApID0+IGJvb2xlYW47XHJcbiAgIC8qKiBXaGVuIHNldCB0byB0cnVlLCBsaXN0IG1vZGUgd2lsbCBlbmZvcmNlIGEgZmxhdCB0cmVlIHN0cnVjdHVyZSwgbWVhbmluZyB0aGVyZVxyXG4gICAgKiBjYW4gb25seSBiZSBvbmUgbGV2ZWwgb2YgdGhlIHRyZWUuIGBhbGxvd05lc3RpbmdgIGlzIGF1dG9tYXRpY2FsbHkgc2V0IHRvIGBmYWxzZWBcclxuICAgICogYW5kIGFueSBjaGlsZHJlbiB3aWxsIGJlIGRlbGV0ZWQuXHJcbiAgICAqXHJcbiAgICAqIFRoaXMgbW9kZSBjYW4gYmUgdXNlZCB3aGVuIHRoZSBzYW1lIGR5bmFtaWMgZHJhZyBhbmQgZHJvcCBmdW5jdGlvbmFsaXR5IG9mXHJcbiAgICAqIHRoZSB0cmVlIGlzIGRlc2lyZWQsIGJ1dCB0aGUgdHJlZSBzdHJ1Y3R1cmUgaXRzZWxmIGlzIG5vdCBuZWNlc3NhcnkuIFRoaXNcclxuICAgICogYWxzbyBvcGVucyB1cCB0aGUgcGFnaW5hdGlvbiBBUEkgb24gdGhlIGxpbWJsZS10cmVlLXJvb3QgY29tcG9uZW50LiBTZWUgdGhlXHJcbiAgICAqIFJFQURNRSBmb3IgZGV0YWlscyBvbiBwYWdpbmF0aW9uLlxyXG4gICAgKi9cclxuICAgbGlzdE1vZGU/OiBib29sZWFuO1xyXG59XHJcblxyXG4vKiogQW4gb2JqZWN0IHRoYXQgcmVmZXJlbmNlcyB0aGUgY29tcG9uZW50IHRvIGJlIHJlbmRlcmVkIGFuZCBpdHMgYmluZGluZ3MgKi9cclxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnRPYmoge1xyXG4gICAvKiogVGhlIGNvbXBvbmVudCBjbGFzcyAqL1xyXG4gICBjbGFzczogVHlwZTx1bmtub3duPjtcclxuICAgLyoqIFRoZSBiaW5kaW5ncyAoaW5wdXRzIGFuZCBvdXRwdXRzKSBvZiB0aGUgY2xhc3MgKi9cclxuICAgYmluZGluZ3M/OiB7XHJcbiAgICAgIFtpbmRleDogc3RyaW5nXTogdW5rbm93bjtcclxuICAgfTtcclxufVxyXG5cclxuLyoqIFRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgYGluZGVudGAgb3B0aW9uICovXHJcbmV4cG9ydCBjb25zdCBJTkRFTlQgPSA0NTtcclxuXHJcbi8qKiBBbiBvcHRpb25zIG9iamVjdCB3aXRoIGRlZmF1bHQgdmFsdWVzIGxvYWRlZCB3aGVyZSBhcHBsaWNhYmxlICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc2VkT3B0aW9uc0Jhc2UgZXh0ZW5kcyBMaW1ibGVUcmVlT3B0aW9ucyB7XHJcbiAgIGRlZmF1bHRDb21wb25lbnQ/OiBDb21wb25lbnRPYmo7XHJcbiAgIGluZGVudDogbnVtYmVyO1xyXG4gICBhbGxvd05lc3Rpbmc6IGJvb2xlYW4gfCAoKG5vZGVEYXRhOiBMaW1ibGVUcmVlTm9kZSkgPT4gYm9vbGVhbik7XHJcbiAgIGFsbG93RHJhZ2dpbmc6IGJvb2xlYW4gfCAoKG5vZGVEYXRhOiBMaW1ibGVUcmVlTm9kZSkgPT4gYm9vbGVhbik7XHJcbiAgIGFsbG93RHJvcDogKFxyXG4gICAgICBzb3VyY2VOb2RlOiBMaW1ibGVUcmVlTm9kZSxcclxuICAgICAgcHJvcG9zZWRQYXJlbnQ6IExpbWJsZVRyZWVOb2RlIHwgbnVsbCxcclxuICAgICAgcHJvcG9zZWRJbmRleDogbnVtYmVyXHJcbiAgICkgPT4gYm9vbGVhbjtcclxuICAgbGlzdE1vZGU6IGJvb2xlYW47XHJcbiAgIGl0ZW1zUGVyUGFnZTogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICBwYWdlOiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc2VkT3B0aW9uc1dpdGhQYWdpbmF0aW9uIGV4dGVuZHMgUHJvY2Vzc2VkT3B0aW9uc0Jhc2Uge1xyXG4gICBsaXN0TW9kZTogdHJ1ZTtcclxuICAgaXRlbXNQZXJQYWdlOiBudW1iZXI7XHJcbiAgIHBhZ2U6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQcm9jZXNzZWRPcHRpb25zV2l0aG91dFBhZ2luYXRpb25cclxuICAgZXh0ZW5kcyBQcm9jZXNzZWRPcHRpb25zQmFzZSB7XHJcbiAgIGxpc3RNb2RlOiBmYWxzZTtcclxuICAgaXRlbXNQZXJQYWdlOiB1bmRlZmluZWQ7XHJcbiAgIHBhZ2U6IHVuZGVmaW5lZDtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJvY2Vzc2VkT3B0aW9ucyA9XHJcbiAgIHwgUHJvY2Vzc2VkT3B0aW9uc1dpdGhQYWdpbmF0aW9uXHJcbiAgIHwgUHJvY2Vzc2VkT3B0aW9uc1dpdGhvdXRQYWdpbmF0aW9uO1xyXG5cclxuLyoqIHRoZSB2YWx1ZSBlbWl0dGVkIGZyb20gdGhlIHJvb3QgY29tcG9uZW50IGFmdGVyIGEgbm9kZSBpcyBkcm9wcGVkICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHJlZURyb3Age1xyXG4gICAvKiogVGhlIG5vZGUgdGhhdCB3YXMgZHJvcHBlZCAqL1xyXG4gICB0YXJnZXQ6IExpbWJsZVRyZWVOb2RlO1xyXG4gICAvKiogdGhlIHRhcmdldCdzIHBhcmVudCBiZWZvcmUgdGhlIGRyYWcgYW5kIGRyb3AsIG9yIG51bGwgaWYgaXQgd2FzIGEgdG9wLWxldmVsIG5vZGUgKi9cclxuICAgb2xkUGFyZW50OiBMaW1ibGVUcmVlTm9kZSB8IG51bGw7XHJcbiAgIC8qKiB0aGUgaW5kZXggb2YgdGhlIG5vZGUgYmVmb3JlIHRoZSBkcmFnIGFuZCBkcm9wIHJlbGF0aXZlIHRvIGl0cyBvbGQgc2libGluZ3MgKi9cclxuICAgb2xkSW5kZXg6IG51bWJlcjtcclxuICAgLyoqIHRoZSB0YXJnZXQncyBwYXJlbnQgYWZ0ZXIgdGhlIGRyYWcgYW5kIGRyb3AsIG9yIG51bGwgaWYgaXQgaXMgbm93IGEgdG9wLWxldmVsIG5vZGUgKi9cclxuICAgbmV3UGFyZW50OiBMaW1ibGVUcmVlTm9kZSB8IG51bGw7XHJcbiAgIC8qKiB0aGUgaW5kZXggb2YgdGhlIG5vZGUgYWZ0ZXIgdGhlIGRyYWcgYW5kIGRyb3AgcmVsYXRpdmUgdG8gaXRzIG5ldyBzaWJsaW5ncyAqL1xyXG4gICBuZXdJbmRleDogbnVtYmVyO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBUcmVlU2VydmljZSB7XHJcbiAgIHB1YmxpYyByZWFkb25seSBjaGFuZ2VzJDogU3ViamVjdDxudWxsPjtcclxuICAgcHVibGljIHJlYWRvbmx5IGRyb3BzJDogU3ViamVjdDxUcmVlRHJvcD47XHJcbiAgIHB1YmxpYyBob3N0OiBWaWV3Q29udGFpbmVyUmVmIHwgdW5kZWZpbmVkO1xyXG4gICBwdWJsaWMgdHJlZURhdGE6IExpbWJsZVRyZWVEYXRhIHwgdW5kZWZpbmVkO1xyXG4gICAvKiogVGhpcyBzaG91bGQgbmV2ZXIgYmUgcmVhc3NpZ25lZC4gSXQgaXMgYXNzaWduZWQgaW4gaW5pdCgpIGFuZCBubyB3aGVyZSBlbHNlLiBXZSBuZWVkIHRvIGtlZXAgdGhlIHJlZmVyZW5jZSBmcm9tIGJyZWFraW5nLiAqL1xyXG4gICBwcml2YXRlIG9yaWdpbmFsRGF0YTogTGltYmxlVHJlZURhdGEgfCB1bmRlZmluZWQ7XHJcbiAgIHB1YmxpYyB0cmVlT3B0aW9uczogUHJvY2Vzc2VkT3B0aW9ucyB8IHVuZGVmaW5lZDtcclxuICAgcHVibGljIHRyZWVNb2RlbDogQnJhbmNoPGFueT47XHJcbiAgIHByaXZhdGUgcGxhY2Vob2xkZXI6IGJvb2xlYW47XHJcbiAgIHB1YmxpYyBjYXB0dXJlZDogYm9vbGVhbjtcclxuICAgcHVibGljIHJlYWRvbmx5IGNsZWFudXBTaWduYWwkOiBTdWJqZWN0PGJvb2xlYW4+O1xyXG4gICBwdWJsaWMgcGxhY2Vob2xkZXIkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XHJcblxyXG4gICBjb25zdHJ1Y3RvcihcclxuICAgICAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnRDcmVhdG9yU2VydmljZTogQ29tcG9uZW50Q3JlYXRvclNlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgZHJvcFpvbmVTZXJ2aWNlOiBEcm9wWm9uZVNlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgZHJhZ1N0YXRlU2VydmljZTogRHJhZ1N0YXRlU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmVlQ29uc3RydWN0aW9uU3RhdHVzOiBUcmVlQ29uc3RydWN0aW9uU3RhdHVzXHJcbiAgICkge1xyXG4gICAgICB0aGlzLmNoYW5nZXMkID0gbmV3IFN1YmplY3QoKTtcclxuICAgICAgdGhpcy5kcm9wcyQgPSBuZXcgU3ViamVjdCgpO1xyXG4gICAgICB0aGlzLnRyZWVNb2RlbCA9IG5ldyBCcmFuY2gobnVsbCk7XHJcbiAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jYXB0dXJlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmNsZWFudXBTaWduYWwkID0gbmV3IFN1YmplY3QoKTtcclxuICAgICAgbGV0IHJlYnVpbGQgPSBmYWxzZTtcclxuICAgICAgbGV0IHRyZWVJc1N0YWJsZSA9IGZhbHNlO1xyXG4gICAgICBjb25zdCB0cmVlSXNTdGFibGUkID0gdGhpcy50cmVlQ29uc3RydWN0aW9uU3RhdHVzLnN0YWJsZSQucGlwZShcclxuICAgICAgICAgdGFwKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0cmVlSXNTdGFibGUgPSB2YWx1ZTtcclxuICAgICAgICAgfSksXHJcbiAgICAgICAgIGZpbHRlcigodmFsdWUpID0+IHZhbHVlID09PSB0cnVlKVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmNsZWFudXBTaWduYWwkXHJcbiAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICB0YXAoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgIHJlYnVpbGQgPSB2YWx1ZTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIGRlYm91bmNlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgaWYgKHRyZWVJc1N0YWJsZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAvL0lmIHRyZWUgaXMgc3RhYmxlLCBjb250aW51ZSByaWdodCBhd2F5XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBFTVBUWTtcclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAvL0lmIHRyZWUgaXMgbm90IHN0YWJsZSwgd2FpdCBmb3IgaXQgdG8gYmVjb21lIHNvLlxyXG4gICAgICAgICAgICAgICByZXR1cm4gdHJlZUlzU3RhYmxlJDtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIC8vV2UgdXNlIHRoaXMgdGltZWQgZGVib3VuY2UgdG8gdGhyb3R0bGUgY2hhaW5lZCBkZXN0cnVjdGlvbiBvZiBjb21wb25lbnRzXHJcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSg1KVxyXG4gICAgICAgICApXHJcbiAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsZWFudXAocmVidWlsZCk7XHJcbiAgICAgICAgICAgIHJlYnVpbGQgPSBmYWxzZTtcclxuICAgICAgICAgfSk7XHJcbiAgICAgIHRoaXMucGxhY2Vob2xkZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgICAgIHRoaXMucGxhY2Vob2xkZXIkLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IHZhbHVlO1xyXG4gICAgICB9KTtcclxuICAgfVxyXG5cclxuICAgcHVibGljIGRyb3Aoc291cmNlOiBCcmFuY2g8YW55PiwgdGFyZ2V0Q29vcmRpbmF0ZXM6IEJyYW5jaENvb3JkaW5hdGVzKSB7XHJcbiAgICAgIC8vcHJlcFxyXG4gICAgICBjb25zdCBzb3VyY2VQYXJlbnQgPSBzb3VyY2UuZ2V0UGFyZW50KCk7XHJcbiAgICAgIGlmIChzb3VyY2VQYXJlbnQgPT09IG51bGwpIHtcclxuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiY2FuJ3QgZHJvcCByb290IG9mIHRyZWVcIik7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3Qgc291cmNlSW5kZXggPSBzb3VyY2UuZ2V0SW5kZXgoKTtcclxuICAgICAgaWYgKHNvdXJjZUluZGV4ID09PSB1bmRlZmluZWQgfHwgc291cmNlSW5kZXggPT09IG51bGwpIHtcclxuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IG1vdmUgdGhlIGhpZGRlbiByb290IG5vZGVcIik7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IHRhcmdldFBhcmVudENvb3JkaW5hdGVzOiBCcmFuY2hDb29yZGluYXRlcztcclxuICAgICAgbGV0IG5ld0luZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgICAgIGlmICh0aGlzLnBsYWNlaG9sZGVyID09PSB0cnVlKSB7XHJcbiAgICAgICAgIHRhcmdldFBhcmVudENvb3JkaW5hdGVzID0gW107XHJcbiAgICAgICAgIG5ld0luZGV4ID0gMDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgdGFyZ2V0UGFyZW50Q29vcmRpbmF0ZXMgPSBbLi4udGFyZ2V0Q29vcmRpbmF0ZXNdO1xyXG4gICAgICAgICBuZXdJbmRleCA9IHRhcmdldFBhcmVudENvb3JkaW5hdGVzLnBvcCgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChuZXdJbmRleCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInRhcmdldCBjb29yZGluYXRlcyBhcmUgZW1wdHlcIik7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgdGFyZ2V0UGFyZW50ID0gdGhpcy50cmVlTW9kZWwuZ2V0RGVzY2VuZGFudChcclxuICAgICAgICAgdGFyZ2V0UGFyZW50Q29vcmRpbmF0ZXNcclxuICAgICAgKTtcclxuICAgICAgaWYgKHRhcmdldFBhcmVudCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcImNvdWxkIG5vdCBnZXQgdG8gdGFyZ2V0XCIpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuZHJvcFpvbmVTZXJ2aWNlLmdldERyb3Bab25lKHRhcmdldENvb3JkaW5hdGVzKTtcclxuICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSB0YXJnZXQ/LmdldExvY2F0aW9uKCkuaW5zZXJ0SW5kZXg7XHJcbiAgICAgIGNvbnN0IHRhcmdldEhvc3QgPSB0YXJnZXQ/LmdldEhvc3QoKTtcclxuICAgICAgY29uc3Qgc291cmNlSG9zdCA9IHRoaXMuZHJhZ1N0YXRlU2VydmljZS5nZXREYXRhKCk/LnBhcmVudENvbnRhaW5lcjtcclxuICAgICAgaWYgKHRoaXMucGxhY2Vob2xkZXIgPT09IHRydWUpIHtcclxuICAgICAgICAgdGhpcy5wbGFjZWhvbGRlciQubmV4dChmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgICAgLy9DaGFuZ2UgdGhlIHRyZWVNb2RlbFxyXG4gICAgICB0YXJnZXRQYXJlbnQuaW5zZXJ0Q2hpbGQoc291cmNlLCBuZXdJbmRleCk7XHJcbiAgICAgIC8vUHJlcGFyZSB0byB1cGRhdGUgdGhlIHZpZXdcclxuICAgICAgaWYgKFxyXG4gICAgICAgICB0YXJnZXRIb3N0ID09PSB1bmRlZmluZWQgfHxcclxuICAgICAgICAgc291cmNlSG9zdCA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgIHRhcmdldEluZGV4ID09PSB1bmRlZmluZWRcclxuICAgICAgKSB7XHJcbiAgICAgICAgIC8vSGl0dGluZyB0aGlzIG1lYW5zIHRoZXJlIGlzIGEgYnVnLCBidXQgbm90IGEgZmF0YWwgb25lLlxyXG4gICAgICAgICAvL0p1c3QgcmVuZGVyIHRoZSB3aG9sZSB0cmVlIGFnYWluLlxyXG4gICAgICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgICAgIFwiQ291bGQgbm90IHBlcmZvcm0gYSBwcmVjaXNlIHVwZGF0ZS4gUmUtcmVuZGVyaW5nIHRoZSBlbnRpcmUgdHJlZSBpbnN0ZWFkXCJcclxuICAgICAgICAgKTtcclxuICAgICAgICAgdGhpcy5yZW5kZXIoKTtcclxuICAgICAgICAgdGhpcy5jaGFuZ2VzJC5uZXh0KG51bGwpO1xyXG4gICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgLy9VcGRhdGUgdGhlIHZpZXdcclxuICAgICAgY29uc3Qgbm9kZXNJblNvdXJjZSA9IHNvdXJjZUhvc3QubGVuZ3RoO1xyXG4gICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmNvbXBvbmVudENyZWF0b3JTZXJ2aWNlLmFwcGVuZENvbXBvbmVudChcclxuICAgICAgICAgTGltYmxlVHJlZU5vZGVDb21wb25lbnQsXHJcbiAgICAgICAgIHRhcmdldEhvc3QsXHJcbiAgICAgICAgIG5ld0luZGV4XHJcbiAgICAgICk7XHJcbiAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5icmFuY2ggPSBzb3VyY2U7XHJcbiAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5wYXJlbnRIb3N0ID0gdGFyZ2V0SG9zdDtcclxuICAgICAgaWYgKFxyXG4gICAgICAgICB0YXJnZXRJbmRleCA8IHNvdXJjZUluZGV4ICYmXHJcbiAgICAgICAgIHNvdXJjZUhvc3QubGVuZ3RoID4gbm9kZXNJblNvdXJjZSAmJlxyXG4gICAgICAgICBhcnJheXNBcmVFcXVhbChzb3VyY2VQYXJlbnQuZ2V0Q29vcmRpbmF0ZXMoKSwgdGFyZ2V0UGFyZW50Q29vcmRpbmF0ZXMpXHJcbiAgICAgICkge1xyXG4gICAgICAgICBzb3VyY2VIb3N0LnJlbW92ZShzb3VyY2VJbmRleCArIDEpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgICBzb3VyY2VIb3N0LnJlbW92ZShzb3VyY2VJbmRleCk7XHJcbiAgICAgIH1cclxuICAgICAgLy9VcGRhdGUgdGhlIHRyZWUgZGF0YVxyXG4gICAgICB0aGlzLnJlYnVpbGRUcmVlRGF0YSgpO1xyXG4gICAgICAvL1B1Ymxpc2ggZHJvcCBkYXRhXHJcbiAgICAgIHRoaXMuZHJvcHMkLm5leHQoe1xyXG4gICAgICAgICB0YXJnZXQ6IHNvdXJjZS5kYXRhLFxyXG4gICAgICAgICBvbGRQYXJlbnQ6IHNvdXJjZVBhcmVudC5kYXRhIGFzIExpbWJsZVRyZWVOb2RlLFxyXG4gICAgICAgICBvbGRJbmRleDogc291cmNlSW5kZXgsXHJcbiAgICAgICAgIG5ld1BhcmVudDogdGFyZ2V0UGFyZW50LmRhdGEsXHJcbiAgICAgICAgIG5ld0luZGV4OiBuZXdJbmRleFxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5jbGVhbnVwU2lnbmFsJC5uZXh0KGZhbHNlKTtcclxuICAgfVxyXG5cclxuICAgLyoqIEluaXRpYWxpemVzIHRoZSBzZXJ2aWNlIGFuZCByZW5kZXJzIHRoZSB0cmVlLlxyXG4gICAgKiBAcGFyYW0gaG9zdCAtIFRoZSBWaWV3Q29udGFpbmVyUmVmIGludG8gd2hpY2ggdGhlIHRyZWUgd2lsbCBiZSByZW5kZXJlZC5cclxuICAgICogQHBhcmFtIGRhdGEgLSBUaGUgZGF0YSBhcnJheSB0aGF0IHdhcyBwYXNzZWQgaW4gdG8gTGltYmxlVHJlZVJvb3QsIHdoaWNoIGlzXHJcbiAgICAqIHRoZSB1c2VycycgcmVwcmVzZW50YXRpb24gb2YgdGhlIHRyZWVcclxuICAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUgb3B0aW9ucyBvYmplY3QgdGhhdCB3YXMgcGFzc2VkIGluIHRvIExpbWJsZVRyZWVSb290XHJcbiAgICAqL1xyXG4gICBwdWJsaWMgaW5pdChcclxuICAgICAgaG9zdDogVmlld0NvbnRhaW5lclJlZixcclxuICAgICAgZGF0YTogTGltYmxlVHJlZURhdGEsXHJcbiAgICAgIG9wdGlvbnM/OiBMaW1ibGVUcmVlT3B0aW9ucyxcclxuICAgICAgaXRlbXNQZXJQYWdlPzogbnVtYmVyLFxyXG4gICAgICBwYWdlPzogbnVtYmVyXHJcbiAgICk6IHZvaWQge1xyXG4gICAgICB0aGlzLmhvc3QgPSBob3N0O1xyXG4gICAgICB0aGlzLm9yaWdpbmFsRGF0YSA9IGRhdGE7XHJcbiAgICAgIHRoaXMudHJlZU9wdGlvbnMgPSB0aGlzLnByb2Nlc3NPcHRpb25zKG9wdGlvbnMsIGl0ZW1zUGVyUGFnZSwgcGFnZSk7XHJcbiAgICAgIGlmICh0aGlzLnRyZWVPcHRpb25zLmxpc3RNb2RlID09PSB0cnVlKSB7XHJcbiAgICAgICAgIGxldCBzdGFydCA9XHJcbiAgICAgICAgICAgIHRoaXMudHJlZU9wdGlvbnMuaXRlbXNQZXJQYWdlICogKHRoaXMudHJlZU9wdGlvbnMucGFnZSAtIDEpO1xyXG4gICAgICAgICBpZiAoaXNOYU4oc3RhcnQpKSB7XHJcbiAgICAgICAgICAgIC8vVGhpcyBjYXRjaGVzIHRoZSBjYXNlIHdoZXJlIGl0ZW1zUGVyUGFnZSB3YXMgbm90IHBhc3NlZCBieSB0aGUgdXNlcixcclxuICAgICAgICAgICAgLy9jYXVzaW5nIGBzdGFydGAgdG8gZXF1YWwgaW5maW5pdHkqMCwgd2hpY2ggaXMgTmFOLlxyXG4gICAgICAgICAgICBzdGFydCA9IDA7XHJcbiAgICAgICAgIH1cclxuICAgICAgICAgY29uc3QgZW5kID0gc3RhcnQgKyB0aGlzLnRyZWVPcHRpb25zLml0ZW1zUGVyUGFnZTtcclxuICAgICAgICAgdGhpcy50cmVlRGF0YSA9IHRoaXMub3JpZ2luYWxEYXRhLnNsaWNlKHN0YXJ0LCBlbmQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgICB0aGlzLnRyZWVEYXRhID0gWy4uLnRoaXMub3JpZ2luYWxEYXRhXTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnJlbmRlcigpO1xyXG4gICB9XHJcblxyXG4gICBwcml2YXRlIGNsZWFudXAocmVidWlsZCA9IGZhbHNlKTogdm9pZCB7XHJcbiAgICAgIGlmIChyZWJ1aWxkKSB7XHJcbiAgICAgICAgIHRoaXMucmVidWlsZFRyZWVEYXRhKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudHJlZURhdGE/Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAvL1dlIGRvIGEgZnVsbCByZW5kZXIgaGVyZSBiZWNhdXNlIGl0IGlzbid0IGFjdHVhbGx5IGFueSBzbG93ZXJcclxuICAgICAgICAgLy93aGVuIHRoZXJlIGFyZSBubyBub2RlcywgYW5kIGl0IGlzIGEgbGl0dGxlIG1vcmUgc3RyYWlnaHRmb3J3YXJkXHJcbiAgICAgICAgIHRoaXMucmVuZGVyKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgIHRoaXMuY2hhbmdlcyQubmV4dChudWxsKTtcclxuICAgICAgICAgdGhpcy5kcm9wWm9uZVNlcnZpY2UudXBkYXRlKCk7XHJcbiAgICAgIH1cclxuICAgfVxyXG5cclxuICAgLyoqIFJlbmRlcnMgdGhlIGVudGlyZSB0cmVlIGZyb20gcm9vdCB0byBsZWF2ZXMgKi9cclxuICAgcHJpdmF0ZSByZW5kZXIoKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICAgdGhpcy5ob3N0ID09PSB1bmRlZmluZWQgfHxcclxuICAgICAgICAgdGhpcy50cmVlRGF0YSA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgIHRoaXMudHJlZU9wdGlvbnMgPT09IHVuZGVmaW5lZFxyXG4gICAgICApIHtcclxuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVHJlZU1vZGVsIG5vdCBpbml0aWFsaXplZFwiKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRyZWVDb25zdHJ1Y3Rpb25TdGF0dXMucmVhZHkoZmFsc2UpO1xyXG4gICAgICB0aGlzLmhvc3QuY2xlYXIoKTtcclxuICAgICAgdGhpcy5kcm9wWm9uZVNlcnZpY2UucmVzdGFydCgpO1xyXG4gICAgICB0aGlzLnBsYWNlaG9sZGVyJC5uZXh0KGZhbHNlKTtcclxuICAgICAgdGhpcy50cmVlTW9kZWwgPSBuZXcgQnJhbmNoKG51bGwpO1xyXG4gICAgICBpZiAodGhpcy50cmVlRGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgLy9UcmVlIGlzIGVtcHR5LCBidXQgd2UgaGF2ZSB0byB0byBoYXZlIHNvbWV0aGluZyB0aGVyZSBzbyBvdGhlciB0cmVlcycgaXRlbXMgY2FuIGJlIGRyb3BwZWQgaW50byBpdFxyXG4gICAgICAgICB0aGlzLnBsYWNlaG9sZGVyJC5uZXh0KHRydWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgICBmb3IgKGNvbnN0IG5vZGUgb2YgdGhpcy50cmVlRGF0YSkge1xyXG4gICAgICAgICAgICBjb25zdCBicmFuY2ggPSBuZXcgQnJhbmNoKG5vZGUpO1xyXG4gICAgICAgICAgICB0aGlzLnRyZWVNb2RlbC5hcHBlbmRDaGlsZChicmFuY2gpO1xyXG4gICAgICAgICB9XHJcbiAgICAgICAgIGZvciAoY29uc3QgYnJhbmNoIG9mIHRoaXMudHJlZU1vZGVsLmdldENoaWxkcmVuKCkpIHtcclxuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5jb21wb25lbnRDcmVhdG9yU2VydmljZS5hcHBlbmRDb21wb25lbnQ8TGltYmxlVHJlZU5vZGVDb21wb25lbnQ+KFxyXG4gICAgICAgICAgICAgICBMaW1ibGVUcmVlTm9kZUNvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgdGhpcy5ob3N0XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5icmFuY2ggPSBicmFuY2g7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5wYXJlbnRIb3N0ID0gdGhpcy5ob3N0O1xyXG4gICAgICAgICAgICAvL1RoZSBMaW1ibGVUcmVlTm9kZUNvbXBvbmVudCB3aWxsIChpbmRpcmVjdGx5KSBjYWxsIHRoZSBgcmVuZGVyQnJhbmNoYCBtZXRob2Qgb2YgdGhpcyBzZXJ2aWNlIHRvIHJlbmRlclxyXG4gICAgICAgICAgICAvL2l0cyBvd24gY2hpbGRyZW5cclxuICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudHJlZUNvbnN0cnVjdGlvblN0YXR1cy5yZWFkeSh0cnVlKTtcclxuICAgICAgdGhpcy5jaGFuZ2VzJC5uZXh0KG51bGwpO1xyXG4gICAgICB0aGlzLmRyb3Bab25lU2VydmljZS5pbml0KHRoaXMudHJlZU1vZGVsLCB0aGlzLnRyZWVPcHRpb25zKTtcclxuICAgfVxyXG5cclxuICAgLyoqIFJlbmRlcnMgYSBicmFuY2ggb2YgdGhlIHRyZWUgYW5kIGFsbCBvZiBpdHMgZGVzY2VuZGFudHMgKi9cclxuICAgcHVibGljIHJlbmRlckJyYW5jaChob3N0OiBWaWV3Q29udGFpbmVyUmVmLCBicmFuY2g6IEJyYW5jaDxhbnk+KSB7XHJcbiAgICAgIGlmICh0aGlzLnRyZWVNb2RlbCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRyZWVNb2RlbCBub3QgaW5pdGlhbGl6ZWRcIik7XHJcbiAgICAgIH1cclxuICAgICAgaG9zdC5jbGVhcigpO1xyXG4gICAgICBicmFuY2guY2xlYXJDaGlsZHJlbigpO1xyXG4gICAgICBmb3IgKGNvbnN0IG5vZGUgb2YgYnJhbmNoLmRhdGE/Lm5vZGVzID8/IFtdKSB7XHJcbiAgICAgICAgIGNvbnN0IG5ld0JyYW5jaCA9IG5ldyBCcmFuY2gobm9kZSk7XHJcbiAgICAgICAgIGJyYW5jaC5hcHBlbmRDaGlsZChuZXdCcmFuY2gpO1xyXG4gICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmNvbXBvbmVudENyZWF0b3JTZXJ2aWNlLmFwcGVuZENvbXBvbmVudDxMaW1ibGVUcmVlTm9kZUNvbXBvbmVudD4oXHJcbiAgICAgICAgICAgIExpbWJsZVRyZWVOb2RlQ29tcG9uZW50LFxyXG4gICAgICAgICAgICBob3N0XHJcbiAgICAgICAgICk7XHJcbiAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5icmFuY2ggPSBuZXdCcmFuY2g7XHJcbiAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5wYXJlbnRIb3N0ID0gaG9zdDtcclxuICAgICAgICAgLy9UaGUgTGltYmxlVHJlZU5vZGVDb21wb25lbnQgd2lsbCAoaW5kaXJlY3RseSkgY2FsbCB0aGUgYHJlbmRlckJyYW5jaGAgbWV0aG9kIG9mIHRoaXMgc2VydmljZSB0byByZW5kZXJcclxuICAgICAgICAgLy9pdHMgb3duIGNoaWxkcmVuXHJcbiAgICAgIH1cclxuICAgfVxyXG5cclxuICAgcHJpdmF0ZSBwcm9jZXNzT3B0aW9ucyhcclxuICAgICAgb3B0aW9uczogTGltYmxlVHJlZU9wdGlvbnMgPSB7fSxcclxuICAgICAgaXRlbXNQZXJQYWdlOiBudW1iZXIgPSBJbmZpbml0eSxcclxuICAgICAgcGFnZTogbnVtYmVyID0gMVxyXG4gICApOiBQcm9jZXNzZWRPcHRpb25zIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgICBvcHRpb25zLmxpc3RNb2RlID09PSB0cnVlICYmXHJcbiAgICAgICAgIG9wdGlvbnMuYWxsb3dOZXN0aW5nICE9PSB1bmRlZmluZWQgJiZcclxuICAgICAgICAgb3B0aW9ucy5hbGxvd05lc3RpbmcgIT09IGZhbHNlXHJcbiAgICAgICkge1xyXG4gICAgICAgICBjb25zb2xlLndhcm4oXHJcbiAgICAgICAgICAgIFwiVGhlIHZhbHVlIG9mIGBhbGxvd05lc3RpbmdgIHdpbGwgYmUgaWdub3JlZDsgaXQgbXVzdCBiZSBmYWxzZSB3aGVuIGBsaXN0TW9kZWAgaXMgdHJ1ZVwiXHJcbiAgICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgcmVzdWx0OiBQcm9jZXNzZWRPcHRpb25zQmFzZSA9IHtcclxuICAgICAgICAgZGVmYXVsdENvbXBvbmVudDogb3B0aW9ucy5kZWZhdWx0Q29tcG9uZW50LFxyXG4gICAgICAgICBpbmRlbnQ6IG9wdGlvbnMuaW5kZW50ID8/IElOREVOVCxcclxuICAgICAgICAgYWxsb3dOZXN0aW5nOlxyXG4gICAgICAgICAgICBvcHRpb25zLmxpc3RNb2RlICE9PSB0cnVlICYmIChvcHRpb25zLmFsbG93TmVzdGluZyA/PyB0cnVlKSxcclxuICAgICAgICAgYWxsb3dEcmFnZ2luZzogb3B0aW9ucy5hbGxvd0RyYWdnaW5nID8/IHRydWUsXHJcbiAgICAgICAgIGFsbG93RHJvcDogb3B0aW9ucy5hbGxvd0Ryb3AgPz8gKCgpID0+IHRydWUpLFxyXG4gICAgICAgICBsaXN0TW9kZTogb3B0aW9ucy5saXN0TW9kZSA/PyBmYWxzZSxcclxuICAgICAgICAgaXRlbXNQZXJQYWdlOiBvcHRpb25zLmxpc3RNb2RlID8gaXRlbXNQZXJQYWdlIDogdW5kZWZpbmVkLFxyXG4gICAgICAgICBwYWdlOiBvcHRpb25zLmxpc3RNb2RlID8gcGFnZSA6IHVuZGVmaW5lZFxyXG4gICAgICB9O1xyXG4gICAgICByZXR1cm4gcmVzdWx0IGFzIFByb2Nlc3NlZE9wdGlvbnM7XHJcbiAgIH1cclxuXHJcbiAgIHByaXZhdGUgcmVidWlsZFRyZWVEYXRhKCk6IHZvaWQge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIHRoaXMub3JpZ2luYWxEYXRhID09PSB1bmRlZmluZWQgfHxcclxuICAgICAgICAgdGhpcy50cmVlRGF0YSA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgIHRoaXMudHJlZU9wdGlvbnMgPT09IHVuZGVmaW5lZCB8fFxyXG4gICAgICAgICB0aGlzLmhvc3QgPT09IHVuZGVmaW5lZFxyXG4gICAgICApIHtcclxuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVHJlZSBkYXRhIG5vdCBpbml0aWFsaXplZFwiKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnRyZWVEYXRhID0gW107XHJcbiAgICAgIGZvciAoY29uc3QgYnJhbmNoIG9mIHRoaXMudHJlZU1vZGVsLmdldENoaWxkcmVuKCkpIHtcclxuICAgICAgICAgdGhpcy50cmVlRGF0YS5wdXNoKHRoaXMucmVidWlsZEJyYW5jaChicmFuY2gpKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIHRoaXMudHJlZU9wdGlvbnMubGlzdE1vZGUgPT09IHRydWUgJiZcclxuICAgICAgICAgdGhpcy50cmVlT3B0aW9ucy5pdGVtc1BlclBhZ2UgPCBJbmZpbml0eVxyXG4gICAgICApIHtcclxuICAgICAgICAgY29uc3QgaXRlbXNQZXJQYWdlID0gdGhpcy50cmVlT3B0aW9ucy5pdGVtc1BlclBhZ2U7XHJcbiAgICAgICAgIGNvbnN0IHN0YXJ0ID0gaXRlbXNQZXJQYWdlICogKHRoaXMudHJlZU9wdGlvbnMucGFnZSAtIDEpO1xyXG4gICAgICAgICB0aGlzLm9yaWdpbmFsRGF0YS5zcGxpY2Uoc3RhcnQsIGl0ZW1zUGVyUGFnZSwgLi4udGhpcy50cmVlRGF0YSk7XHJcbiAgICAgICAgIGlmICh0aGlzLnRyZWVEYXRhLmxlbmd0aCAhPT0gaXRlbXNQZXJQYWdlKSB7XHJcbiAgICAgICAgICAgIGxldCBhY3Rpb24gPSBmYWxzZTtcclxuICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICB0aGlzLnRyZWVEYXRhLmxlbmd0aCA8IGl0ZW1zUGVyUGFnZSAmJlxyXG4gICAgICAgICAgICAgICBzdGFydCArIGl0ZW1zUGVyUGFnZSA8PSB0aGlzLm9yaWdpbmFsRGF0YS5sZW5ndGhcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgIC8vVGhlIGN1cnJlbnQgcGFnZSBkb2VzIG5vdCBoYXZlIGVub3VnaCBub2Rlcy4gQWRkIHNvbWUgdG8gdGhlIHZpZXcgZnJvbSB0aGUgbmV4dCBwYWdlLlxyXG4gICAgICAgICAgICAgICBjb25zdCBjb3VudCA9IGl0ZW1zUGVyUGFnZSAtIHRoaXMudHJlZURhdGEubGVuZ3RoO1xyXG4gICAgICAgICAgICAgICBmb3IgKFxyXG4gICAgICAgICAgICAgICAgICBsZXQgaW5kZXggPSBpdGVtc1BlclBhZ2UgLSAxO1xyXG4gICAgICAgICAgICAgICAgICBpbmRleCA8IGl0ZW1zUGVyUGFnZSArIGNvdW50IC0gMTtcclxuICAgICAgICAgICAgICAgICAgaW5kZXgrK1xyXG4gICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgYnJhbmNoID0gbmV3IEJyYW5jaCh0aGlzLm9yaWdpbmFsRGF0YVtzdGFydCArIGluZGV4XSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudHJlZU1vZGVsLmFwcGVuZENoaWxkKGJyYW5jaCk7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuY29tcG9uZW50Q3JlYXRvclNlcnZpY2UuYXBwZW5kQ29tcG9uZW50PExpbWJsZVRyZWVOb2RlQ29tcG9uZW50PihcclxuICAgICAgICAgICAgICAgICAgICAgTGltYmxlVHJlZU5vZGVDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMuaG9zdFxyXG4gICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuYnJhbmNoID0gYnJhbmNoO1xyXG4gICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UucGFyZW50SG9zdCA9IHRoaXMuaG9zdDtcclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICBhY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHJlZURhdGEubGVuZ3RoID4gaXRlbXNQZXJQYWdlKSB7XHJcbiAgICAgICAgICAgICAgIC8vVGhlIGN1cnJlbnQgcGFnZSBoYXMgdG9vIG1hbnkgbm9kZXMuIFJlbW92ZSBzb21lIG9mIHRoZW0gZnJvbSB0aGUgdmlldy5cclxuICAgICAgICAgICAgICAgY29uc3QgY291bnQgPSB0aGlzLnRyZWVEYXRhLmxlbmd0aCAtIGl0ZW1zUGVyUGFnZTtcclxuICAgICAgICAgICAgICAgZm9yIChcclxuICAgICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gaXRlbXNQZXJQYWdlICsgY291bnQgLSAxO1xyXG4gICAgICAgICAgICAgICAgICBpbmRleCA+PSBpdGVtc1BlclBhZ2U7XHJcbiAgICAgICAgICAgICAgICAgIGluZGV4LS1cclxuICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudHJlZU1vZGVsLnJlbW92ZUNoaWxkKGluZGV4KTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5ob3N0LnJlbW92ZShpbmRleCk7XHJcbiAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgYWN0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoYWN0aW9uID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IHN0YXJ0ICsgaXRlbXNQZXJQYWdlO1xyXG4gICAgICAgICAgICAgICB0aGlzLnRyZWVEYXRhID0gdGhpcy5vcmlnaW5hbERhdGEuc2xpY2Uoc3RhcnQsIGVuZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgICB0aGlzLm9yaWdpbmFsRGF0YS5sZW5ndGggPSAwO1xyXG4gICAgICAgICB0aGlzLm9yaWdpbmFsRGF0YS5wdXNoKC4uLnRoaXMudHJlZURhdGEpO1xyXG4gICAgICB9XHJcbiAgIH1cclxuXHJcbiAgIHByaXZhdGUgcmVidWlsZEJyYW5jaChicmFuY2g6IEJyYW5jaDxhbnk+KTogTGltYmxlVHJlZU5vZGUge1xyXG4gICAgICBjb25zdCB0ZW1wOiBMaW1ibGVUcmVlTm9kZSA9IGJyYW5jaC5kYXRhO1xyXG4gICAgICB0ZW1wLm5vZGVzID0gW107XHJcbiAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgYnJhbmNoLmdldENoaWxkcmVuKCkpIHtcclxuICAgICAgICAgdGVtcC5ub2Rlcy5wdXNoKHRoaXMucmVidWlsZEJyYW5jaChjaGlsZCkpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0ZW1wO1xyXG4gICB9XHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9saW1ibGUtdHJlZS1yb290L3RyZWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUEwQixNQUFNLGVBQWUsQ0FBQztBQUduRSxPQUFPLEVBQUUsTUFBTSxFQUFxQixNQUFNLG1CQUFtQixDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRXpGLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBK0RyRSxnREFBZ0Q7QUFDaEQsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztBQWtEekIsTUFBTSxPQUFPLFdBQVc7SUFjckIsWUFDb0IsdUJBQWdELEVBQ2hELGVBQWdDLEVBQ2hDLGdCQUFrQyxFQUNsQyxzQkFBOEM7UUFIOUMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBRS9ELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDcEMsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQztRQUN6QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDM0QsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDWCxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxFQUNGLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUNuQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLGNBQWM7YUFDZixJQUFJLENBQ0YsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDWCxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxFQUNGLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDWCxJQUFJLFlBQVksS0FBSyxJQUFJLEVBQUU7Z0JBQ3hCLHdDQUF3QztnQkFDeEMsT0FBTyxLQUFLLENBQUM7YUFDZjtZQUNELGtEQUFrRDtZQUNsRCxPQUFPLGFBQWEsQ0FBQztRQUN4QixDQUFDLENBQUM7UUFDRiwwRUFBMEU7UUFDMUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUNqQjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RCLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDTixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRU0sSUFBSSxDQUFDLE1BQW1CLEVBQUUsaUJBQW9DOztRQUNsRSxNQUFNO1FBQ04sTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3hDLElBQUksWUFBWSxLQUFLLElBQUksRUFBRTtZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7U0FDN0M7UUFDRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEMsSUFBSSxXQUFXLEtBQUssU0FBUyxJQUFJLFdBQVcsS0FBSyxJQUFJLEVBQUU7WUFDcEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1NBQ3REO1FBQ0QsSUFBSSx1QkFBMEMsQ0FBQztRQUMvQyxJQUFJLFFBQTRCLENBQUM7UUFDakMsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLElBQUksRUFBRTtZQUM1Qix1QkFBdUIsR0FBRyxFQUFFLENBQUM7WUFDN0IsUUFBUSxHQUFHLENBQUMsQ0FBQztTQUNmO2FBQU07WUFDSix1QkFBdUIsR0FBRyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsQ0FBQztZQUNqRCxRQUFRLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDM0M7UUFDRCxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1NBQ2xEO1FBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQzlDLHVCQUF1QixDQUN6QixDQUFDO1FBQ0YsSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFO1lBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztTQUM3QztRQUNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbkUsTUFBTSxXQUFXLEdBQUcsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDdEQsTUFBTSxVQUFVLEdBQUcsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3JDLE1BQU0sVUFBVSxHQUFHLE1BQUEsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSwwQ0FBRSxlQUFlLENBQUM7UUFDcEUsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLElBQUksRUFBRTtZQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNoQztRQUNELHNCQUFzQjtRQUN0QixZQUFZLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMzQyw0QkFBNEI7UUFDNUIsSUFDRyxVQUFVLEtBQUssU0FBUztZQUN4QixVQUFVLEtBQUssU0FBUztZQUN4QixXQUFXLEtBQUssU0FBUyxFQUMxQjtZQUNDLHlEQUF5RDtZQUN6RCxtQ0FBbUM7WUFDbkMsT0FBTyxDQUFDLElBQUksQ0FDVCwwRUFBMEUsQ0FDNUUsQ0FBQztZQUNGLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pCLE9BQU87U0FDVDtRQUNELGlCQUFpQjtRQUNqQixNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ3hDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLENBQzlELHVCQUF1QixFQUN2QixVQUFVLEVBQ1YsUUFBUSxDQUNWLENBQUM7UUFDRixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDdEMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzlDLElBQ0csV0FBVyxHQUFHLFdBQVc7WUFDekIsVUFBVSxDQUFDLE1BQU0sR0FBRyxhQUFhO1lBQ2pDLGNBQWMsQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLEVBQUUsdUJBQXVCLENBQUMsRUFDdkU7WUFDQyxVQUFVLENBQUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNyQzthQUFNO1lBQ0osVUFBVSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNqQztRQUNELHNCQUFzQjtRQUN0QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsbUJBQW1CO1FBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ2QsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ25CLFNBQVMsRUFBRSxZQUFZLENBQUMsSUFBc0I7WUFDOUMsUUFBUSxFQUFFLFdBQVc7WUFDckIsU0FBUyxFQUFFLFlBQVksQ0FBQyxJQUFJO1lBQzVCLFFBQVEsRUFBRSxRQUFRO1NBQ3BCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLElBQUksQ0FDUixJQUFzQixFQUN0QixJQUFvQixFQUNwQixPQUEyQixFQUMzQixZQUFxQixFQUNyQixJQUFhO1FBRWIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEUsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQUU7WUFDckMsSUFBSSxLQUFLLEdBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMvRCxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDZixzRUFBc0U7Z0JBQ3RFLG9EQUFvRDtnQkFDcEQsS0FBSyxHQUFHLENBQUMsQ0FBQzthQUNaO1lBQ0QsTUFBTSxHQUFHLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDO1lBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ3REO2FBQU07WUFDSixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDekM7UUFDRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVPLE9BQU8sQ0FBQyxPQUFPLEdBQUcsS0FBSzs7UUFDNUIsSUFBSSxPQUFPLEVBQUU7WUFDVixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDekI7UUFDRCxJQUFJLENBQUEsTUFBQSxJQUFJLENBQUMsUUFBUSwwQ0FBRSxNQUFNLE1BQUssQ0FBQyxFQUFFO1lBQzlCLCtEQUErRDtZQUMvRCxrRUFBa0U7WUFDbEUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2hCO2FBQU07WUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ2hDO0lBQ0osQ0FBQztJQUVELGtEQUFrRDtJQUMxQyxNQUFNO1FBQ1gsSUFDRyxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVM7WUFDdkIsSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTO1lBQzNCLElBQUksQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUMvQjtZQUNDLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUMvQztRQUNELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDN0Isb0dBQW9HO1lBQ3BHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9CO2FBQU07WUFDSixLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQy9CLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNyQztZQUNELEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDaEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FDOUQsdUJBQXVCLEVBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQ1gsQ0FBQztnQkFDRixZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Z0JBQ3RDLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQzdDLHdHQUF3RztnQkFDeEcsa0JBQWtCO2FBQ3BCO1NBQ0g7UUFDRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCw4REFBOEQ7SUFDdkQsWUFBWSxDQUFDLElBQXNCLEVBQUUsTUFBbUI7O1FBQzVELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUU7WUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2IsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssTUFBTSxJQUFJLElBQUksTUFBQSxNQUFBLE1BQU0sQ0FBQyxJQUFJLDBDQUFFLEtBQUssbUNBQUksRUFBRSxFQUFFO1lBQzFDLE1BQU0sU0FBUyxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25DLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDOUIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FDOUQsdUJBQXVCLEVBQ3ZCLElBQUksQ0FDTixDQUFDO1lBQ0YsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1lBQ3pDLFlBQVksQ0FBQyxRQUFRLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN4Qyx3R0FBd0c7WUFDeEcsa0JBQWtCO1NBQ3BCO0lBQ0osQ0FBQztJQUVPLGNBQWMsQ0FDbkIsVUFBNkIsRUFBRSxFQUMvQixlQUF1QixRQUFRLEVBQy9CLE9BQWUsQ0FBQzs7UUFFaEIsSUFDRyxPQUFPLENBQUMsUUFBUSxLQUFLLElBQUk7WUFDekIsT0FBTyxDQUFDLFlBQVksS0FBSyxTQUFTO1lBQ2xDLE9BQU8sQ0FBQyxZQUFZLEtBQUssS0FBSyxFQUMvQjtZQUNDLE9BQU8sQ0FBQyxJQUFJLENBQ1QsdUZBQXVGLENBQ3pGLENBQUM7U0FDSjtRQUNELE1BQU0sTUFBTSxHQUF5QjtZQUNsQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCO1lBQzFDLE1BQU0sRUFBRSxNQUFBLE9BQU8sQ0FBQyxNQUFNLG1DQUFJLE1BQU07WUFDaEMsWUFBWSxFQUNULE9BQU8sQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBQSxPQUFPLENBQUMsWUFBWSxtQ0FBSSxJQUFJLENBQUM7WUFDOUQsYUFBYSxFQUFFLE1BQUEsT0FBTyxDQUFDLGFBQWEsbUNBQUksSUFBSTtZQUM1QyxTQUFTLEVBQUUsTUFBQSxPQUFPLENBQUMsU0FBUyxtQ0FBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztZQUM1QyxRQUFRLEVBQUUsTUFBQSxPQUFPLENBQUMsUUFBUSxtQ0FBSSxLQUFLO1lBQ25DLFlBQVksRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDekQsSUFBSSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUztTQUMzQyxDQUFDO1FBQ0YsT0FBTyxNQUEwQixDQUFDO0lBQ3JDLENBQUM7SUFFTyxlQUFlO1FBQ3BCLElBQ0csSUFBSSxDQUFDLFlBQVksS0FBSyxTQUFTO1lBQy9CLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUztZQUMzQixJQUFJLENBQUMsV0FBVyxLQUFLLFNBQVM7WUFDOUIsSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQ3hCO1lBQ0MsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUNqRDtRQUNELElBQ0csSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEtBQUssSUFBSTtZQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksR0FBRyxRQUFRLEVBQ3pDO1lBQ0MsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7WUFDbkQsTUFBTSxLQUFLLEdBQUcsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLFlBQVksRUFBRTtnQkFDeEMsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO2dCQUNuQixJQUNHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLFlBQVk7b0JBQ25DLEtBQUssR0FBRyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQ2pEO29CQUNDLHVGQUF1RjtvQkFDdkYsTUFBTSxLQUFLLEdBQUcsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO29CQUNsRCxLQUNHLElBQUksS0FBSyxHQUFHLFlBQVksR0FBRyxDQUFDLEVBQzVCLEtBQUssR0FBRyxZQUFZLEdBQUcsS0FBSyxHQUFHLENBQUMsRUFDaEMsS0FBSyxFQUFFLEVBQ1I7d0JBQ0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQzt3QkFDNUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQ25DLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLENBQzlELHVCQUF1QixFQUN2QixJQUFJLENBQUMsSUFBSSxDQUNYLENBQUM7d0JBQ0YsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO3dCQUN0QyxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO3FCQUMvQztvQkFDRCxNQUFNLEdBQUcsSUFBSSxDQUFDO2lCQUNoQjtxQkFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLFlBQVksRUFBRTtvQkFDN0MseUVBQXlFO29CQUN6RSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUM7b0JBQ2xELEtBQ0csSUFBSSxLQUFLLEdBQUcsWUFBWSxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQ3BDLEtBQUssSUFBSSxZQUFZLEVBQ3JCLEtBQUssRUFBRSxFQUNSO3dCQUNDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztxQkFDMUI7b0JBQ0QsTUFBTSxHQUFHLElBQUksQ0FBQztpQkFDaEI7Z0JBQ0QsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFO29CQUNsQixNQUFNLEdBQUcsR0FBRyxLQUFLLEdBQUcsWUFBWSxDQUFDO29CQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztpQkFDdEQ7YUFDSDtTQUNIO2FBQU07WUFDSixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDM0M7SUFDSixDQUFDO0lBRU8sYUFBYSxDQUFDLE1BQW1CO1FBQ3RDLE1BQU0sSUFBSSxHQUFtQixNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUM3QztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2YsQ0FBQzs7c0VBOVZTLFdBQVc7aUVBQVgsV0FBVyxXQUFYLFdBQVc7dUZBQVgsV0FBVztjQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgVHlwZSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudENyZWF0b3JTZXJ2aWNlIH0gZnJvbSBcIi4uL3NpbmdsZXRvbnMvY29tcG9uZW50LWNyZWF0b3Iuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEcm9wWm9uZVNlcnZpY2UgfSBmcm9tIFwiLi9kcm9wLXpvbmUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBCcmFuY2gsIEJyYW5jaENvb3JkaW5hdGVzIH0gZnJvbSBcIi4uL2NsYXNzZXMvQnJhbmNoXCI7XHJcbmltcG9ydCB7IExpbWJsZVRyZWVOb2RlQ29tcG9uZW50IH0gZnJvbSBcIi4uL2xpbWJsZS10cmVlLW5vZGUvbGltYmxlLXRyZWUtbm9kZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRHJhZ1N0YXRlU2VydmljZSB9IGZyb20gXCIuLi9zaW5nbGV0b25zL2RyYWctc3RhdGUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIEVNUFRZLCBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgYXJyYXlzQXJlRXF1YWwgfSBmcm9tIFwiLi4vdXRpbFwiO1xyXG5pbXBvcnQgeyBkZWJvdW5jZSwgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIHRhcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBUcmVlQ29uc3RydWN0aW9uU3RhdHVzIH0gZnJvbSBcIi4vdHJlZS1jb25zdHJ1Y3Rpb24tc3RhdHVzLnNlcnZpY2VcIjtcclxuXHJcbi8qKiBBbiBvYmplY3QgZGVzY3JpYmluZyBhIG5vZGUgb2YgdGhlIHRyZWUgKi9cclxuZXhwb3J0IGludGVyZmFjZSBMaW1ibGVUcmVlTm9kZSB7XHJcbiAgIC8qKiBBIGxpc3Qgb2Ygbm9kZXMgdG8gYmUgcmVuZGVyZWQgXCJ1bmRlclwiIHRoaXMgb25lLCBvbmUgbGV2ZWwgZGVlcGVyIGluIHRoZSB0cmVlLiAqL1xyXG4gICBub2Rlcz86IExpbWJsZVRyZWVEYXRhO1xyXG4gICAvLyAvKiogQSBjdXN0b20gZGF0YSBvYmplY3QgdGhhdCB3aWxsIGJlIHBhc3NlZCBpbnRvIHRoZSBjb21wb25lbnQgYXMgYW4gYElucHV0KClgIGJpbmRpbmcgY2FsbGVkIGBub2RlRGF0YWAgKi9cclxuICAgLy8gZGF0YTogdW5rbm93bjtcclxuICAgLyoqIEFuIG9iamVjdCB0aGF0IGRlc2NyaWJlcyB0aGUgY29tcG9uZW50IHdoaWNoIHdpbGwgcmVwcmVzZW50IHRoaXMgbm9kZSBpbiB0aGUgdmlzdWFsIHRyZWUgKi9cclxuICAgY29tcG9uZW50PzogQ29tcG9uZW50T2JqO1xyXG4gICBjb2xsYXBzZWQ/OiBib29sZWFuO1xyXG4gICBbaW5kZXg6IHN0cmluZ106IHVua25vd247XHJcbn1cclxuXHJcbi8qKiBBbiBvYmplY3QgdGhhdCB0aGUgbGltYmxlLXRyZWUtcm9vdCBjb21wb25lbnQgdXNlcyB0byBidWlsZCB0aGUgdHJlZSAqL1xyXG5leHBvcnQgdHlwZSBMaW1ibGVUcmVlRGF0YSA9IEFycmF5PExpbWJsZVRyZWVOb2RlPjtcclxuXHJcbi8qKiBBIGdyb3VwIG9mIHNldHRpbmdzIGZvciBjaGFuZ2luZyB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgdHJlZSAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIExpbWJsZVRyZWVPcHRpb25zIHtcclxuICAgLyoqIFRoZSBjb21wb25lbnQgb2JqZWN0IHRvIHVzZSBpZiBvbmUgaXMgbm90IHNwZWNpZmllZCBmb3IgYSBwYXJ0aWN1bGFyIG5vZGUgKi9cclxuICAgZGVmYXVsdENvbXBvbmVudD86IENvbXBvbmVudE9iajtcclxuICAgLyoqIFRoZSBudW1iZXIgb2YgcGl4ZWxzIHRvIGluZGVudCBlYWNoIGxldmVsIG9mIHRoZSB0cmVlLiBEZWZhdWx0cyB0byA0NSAqL1xyXG4gICBpbmRlbnQ/OiBudW1iZXI7XHJcbiAgIC8qKlxyXG4gICAgKiBXaGV0aGVyIHRvIGFsbG93IFwibmVzdGluZ1wiIChwbGFjaW5nIGEgbm9kZSBvbmUgbGV2ZWwgZGVlcGVyIHRoYW4gY3VycmVudGx5IGV4aXN0cyBvbiB0aGUgYnJhbmNoKS5cclxuICAgICogV2hlbiB0aGlzIGlzIGEgYm9vbGVhbiwgaXQgYXBwbGllcyB0byBhbGwgbm9kZXMuIFdoZW4gdGhpcyBpcyBhIGZ1bmN0aW9uLCB0aGUgbm9kZSBpbiBxdWVzdGlvblxyXG4gICAgKiBpcyBwYXNzZWQgaW4uIERlZmF1bHRzIHRvIHRydWUuXHJcbiAgICAqL1xyXG4gICBhbGxvd05lc3Rpbmc/OiBib29sZWFuIHwgKChub2RlRGF0YTogTGltYmxlVHJlZU5vZGUpID0+IGJvb2xlYW4pO1xyXG4gICAvKipcclxuICAgICogV2hldGhlciB0byBhbGxvdyBhIG5vZGUgdG8gYmUgZHJhZ2dlZC4gV2hlbiB0aGlzIGlzIGEgYm9vbGVhbiwgaXQgYXBwbGllcyB0byBhbGwgbm9kZXMuIFdoZW4gdGhpc1xyXG4gICAgKiBpcyBhIGZ1bmN0aW9uLCB0aGUgbm9kZSBpbiBxdWVzdGlvbiBpcyBwYXNzZWQgaW4uIERlZmF1bHRzIHRvIHRydWUuXHJcbiAgICAqL1xyXG4gICBhbGxvd0RyYWdnaW5nPzogYm9vbGVhbiB8ICgobm9kZURhdGE6IExpbWJsZVRyZWVOb2RlKSA9PiBib29sZWFuKTtcclxuICAgLyoqIEEgY2FsbGJhY2sgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSBzb3VyY2VOb2RlIGNhbiBiZSBkcm9wcGVkIGF0IGEgcGFydGljdWxhciBsb2NhdGlvbi4gKi9cclxuICAgYWxsb3dEcm9wPzogKFxyXG4gICAgICBzb3VyY2VOb2RlOiBMaW1ibGVUcmVlTm9kZSxcclxuICAgICAgcHJvcG9zZWRQYXJlbnQ6IExpbWJsZVRyZWVOb2RlIHwgbnVsbCxcclxuICAgICAgcHJvcG9zZWRJbmRleDogbnVtYmVyXHJcbiAgICkgPT4gYm9vbGVhbjtcclxuICAgLyoqIFdoZW4gc2V0IHRvIHRydWUsIGxpc3QgbW9kZSB3aWxsIGVuZm9yY2UgYSBmbGF0IHRyZWUgc3RydWN0dXJlLCBtZWFuaW5nIHRoZXJlXHJcbiAgICAqIGNhbiBvbmx5IGJlIG9uZSBsZXZlbCBvZiB0aGUgdHJlZS4gYGFsbG93TmVzdGluZ2AgaXMgYXV0b21hdGljYWxseSBzZXQgdG8gYGZhbHNlYFxyXG4gICAgKiBhbmQgYW55IGNoaWxkcmVuIHdpbGwgYmUgZGVsZXRlZC5cclxuICAgICpcclxuICAgICogVGhpcyBtb2RlIGNhbiBiZSB1c2VkIHdoZW4gdGhlIHNhbWUgZHluYW1pYyBkcmFnIGFuZCBkcm9wIGZ1bmN0aW9uYWxpdHkgb2ZcclxuICAgICogdGhlIHRyZWUgaXMgZGVzaXJlZCwgYnV0IHRoZSB0cmVlIHN0cnVjdHVyZSBpdHNlbGYgaXMgbm90IG5lY2Vzc2FyeS4gVGhpc1xyXG4gICAgKiBhbHNvIG9wZW5zIHVwIHRoZSBwYWdpbmF0aW9uIEFQSSBvbiB0aGUgbGltYmxlLXRyZWUtcm9vdCBjb21wb25lbnQuIFNlZSB0aGVcclxuICAgICogUkVBRE1FIGZvciBkZXRhaWxzIG9uIHBhZ2luYXRpb24uXHJcbiAgICAqL1xyXG4gICBsaXN0TW9kZT86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKiBBbiBvYmplY3QgdGhhdCByZWZlcmVuY2VzIHRoZSBjb21wb25lbnQgdG8gYmUgcmVuZGVyZWQgYW5kIGl0cyBiaW5kaW5ncyAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudE9iaiB7XHJcbiAgIC8qKiBUaGUgY29tcG9uZW50IGNsYXNzICovXHJcbiAgIGNsYXNzOiBUeXBlPHVua25vd24+O1xyXG4gICAvKiogVGhlIGJpbmRpbmdzIChpbnB1dHMgYW5kIG91dHB1dHMpIG9mIHRoZSBjbGFzcyAqL1xyXG4gICBiaW5kaW5ncz86IHtcclxuICAgICAgW2luZGV4OiBzdHJpbmddOiB1bmtub3duO1xyXG4gICB9O1xyXG59XHJcblxyXG4vKiogVGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBgaW5kZW50YCBvcHRpb24gKi9cclxuZXhwb3J0IGNvbnN0IElOREVOVCA9IDQ1O1xyXG5cclxuLyoqIEFuIG9wdGlvbnMgb2JqZWN0IHdpdGggZGVmYXVsdCB2YWx1ZXMgbG9hZGVkIHdoZXJlIGFwcGxpY2FibGUgKi9cclxuZXhwb3J0IGludGVyZmFjZSBQcm9jZXNzZWRPcHRpb25zQmFzZSBleHRlbmRzIExpbWJsZVRyZWVPcHRpb25zIHtcclxuICAgZGVmYXVsdENvbXBvbmVudD86IENvbXBvbmVudE9iajtcclxuICAgaW5kZW50OiBudW1iZXI7XHJcbiAgIGFsbG93TmVzdGluZzogYm9vbGVhbiB8ICgobm9kZURhdGE6IExpbWJsZVRyZWVOb2RlKSA9PiBib29sZWFuKTtcclxuICAgYWxsb3dEcmFnZ2luZzogYm9vbGVhbiB8ICgobm9kZURhdGE6IExpbWJsZVRyZWVOb2RlKSA9PiBib29sZWFuKTtcclxuICAgYWxsb3dEcm9wOiAoXHJcbiAgICAgIHNvdXJjZU5vZGU6IExpbWJsZVRyZWVOb2RlLFxyXG4gICAgICBwcm9wb3NlZFBhcmVudDogTGltYmxlVHJlZU5vZGUgfCBudWxsLFxyXG4gICAgICBwcm9wb3NlZEluZGV4OiBudW1iZXJcclxuICAgKSA9PiBib29sZWFuO1xyXG4gICBsaXN0TW9kZTogYm9vbGVhbjtcclxuICAgaXRlbXNQZXJQYWdlOiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgIHBhZ2U6IG51bWJlciB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQcm9jZXNzZWRPcHRpb25zV2l0aFBhZ2luYXRpb24gZXh0ZW5kcyBQcm9jZXNzZWRPcHRpb25zQmFzZSB7XHJcbiAgIGxpc3RNb2RlOiB0cnVlO1xyXG4gICBpdGVtc1BlclBhZ2U6IG51bWJlcjtcclxuICAgcGFnZTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFByb2Nlc3NlZE9wdGlvbnNXaXRob3V0UGFnaW5hdGlvblxyXG4gICBleHRlbmRzIFByb2Nlc3NlZE9wdGlvbnNCYXNlIHtcclxuICAgbGlzdE1vZGU6IGZhbHNlO1xyXG4gICBpdGVtc1BlclBhZ2U6IHVuZGVmaW5lZDtcclxuICAgcGFnZTogdW5kZWZpbmVkO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcm9jZXNzZWRPcHRpb25zID1cclxuICAgfCBQcm9jZXNzZWRPcHRpb25zV2l0aFBhZ2luYXRpb25cclxuICAgfCBQcm9jZXNzZWRPcHRpb25zV2l0aG91dFBhZ2luYXRpb247XHJcblxyXG4vKiogdGhlIHZhbHVlIGVtaXR0ZWQgZnJvbSB0aGUgcm9vdCBjb21wb25lbnQgYWZ0ZXIgYSBub2RlIGlzIGRyb3BwZWQgKi9cclxuZXhwb3J0IGludGVyZmFjZSBUcmVlRHJvcCB7XHJcbiAgIC8qKiBUaGUgbm9kZSB0aGF0IHdhcyBkcm9wcGVkICovXHJcbiAgIHRhcmdldDogTGltYmxlVHJlZU5vZGU7XHJcbiAgIC8qKiB0aGUgdGFyZ2V0J3MgcGFyZW50IGJlZm9yZSB0aGUgZHJhZyBhbmQgZHJvcCwgb3IgbnVsbCBpZiBpdCB3YXMgYSB0b3AtbGV2ZWwgbm9kZSAqL1xyXG4gICBvbGRQYXJlbnQ6IExpbWJsZVRyZWVOb2RlIHwgbnVsbDtcclxuICAgLyoqIHRoZSBpbmRleCBvZiB0aGUgbm9kZSBiZWZvcmUgdGhlIGRyYWcgYW5kIGRyb3AgcmVsYXRpdmUgdG8gaXRzIG9sZCBzaWJsaW5ncyAqL1xyXG4gICBvbGRJbmRleDogbnVtYmVyO1xyXG4gICAvKiogdGhlIHRhcmdldCdzIHBhcmVudCBhZnRlciB0aGUgZHJhZyBhbmQgZHJvcCwgb3IgbnVsbCBpZiBpdCBpcyBub3cgYSB0b3AtbGV2ZWwgbm9kZSAqL1xyXG4gICBuZXdQYXJlbnQ6IExpbWJsZVRyZWVOb2RlIHwgbnVsbDtcclxuICAgLyoqIHRoZSBpbmRleCBvZiB0aGUgbm9kZSBhZnRlciB0aGUgZHJhZyBhbmQgZHJvcCByZWxhdGl2ZSB0byBpdHMgbmV3IHNpYmxpbmdzICovXHJcbiAgIG5ld0luZGV4OiBudW1iZXI7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFRyZWVTZXJ2aWNlIHtcclxuICAgcHVibGljIHJlYWRvbmx5IGNoYW5nZXMkOiBTdWJqZWN0PG51bGw+O1xyXG4gICBwdWJsaWMgcmVhZG9ubHkgZHJvcHMkOiBTdWJqZWN0PFRyZWVEcm9wPjtcclxuICAgcHVibGljIGhvc3Q6IFZpZXdDb250YWluZXJSZWYgfCB1bmRlZmluZWQ7XHJcbiAgIHB1YmxpYyB0cmVlRGF0YTogTGltYmxlVHJlZURhdGEgfCB1bmRlZmluZWQ7XHJcbiAgIC8qKiBUaGlzIHNob3VsZCBuZXZlciBiZSByZWFzc2lnbmVkLiBJdCBpcyBhc3NpZ25lZCBpbiBpbml0KCkgYW5kIG5vIHdoZXJlIGVsc2UuIFdlIG5lZWQgdG8ga2VlcCB0aGUgcmVmZXJlbmNlIGZyb20gYnJlYWtpbmcuICovXHJcbiAgIHByaXZhdGUgb3JpZ2luYWxEYXRhOiBMaW1ibGVUcmVlRGF0YSB8IHVuZGVmaW5lZDtcclxuICAgcHVibGljIHRyZWVPcHRpb25zOiBQcm9jZXNzZWRPcHRpb25zIHwgdW5kZWZpbmVkO1xyXG4gICBwdWJsaWMgdHJlZU1vZGVsOiBCcmFuY2g8YW55PjtcclxuICAgcHJpdmF0ZSBwbGFjZWhvbGRlcjogYm9vbGVhbjtcclxuICAgcHVibGljIGNhcHR1cmVkOiBib29sZWFuO1xyXG4gICBwdWJsaWMgcmVhZG9ubHkgY2xlYW51cFNpZ25hbCQ6IFN1YmplY3Q8Ym9vbGVhbj47XHJcbiAgIHB1YmxpYyBwbGFjZWhvbGRlciQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcclxuXHJcbiAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbXBvbmVudENyZWF0b3JTZXJ2aWNlOiBDb21wb25lbnRDcmVhdG9yU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSByZWFkb25seSBkcm9wWm9uZVNlcnZpY2U6IERyb3Bab25lU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSByZWFkb25seSBkcmFnU3RhdGVTZXJ2aWNlOiBEcmFnU3RhdGVTZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IHRyZWVDb25zdHJ1Y3Rpb25TdGF0dXM6IFRyZWVDb25zdHJ1Y3Rpb25TdGF0dXNcclxuICAgKSB7XHJcbiAgICAgIHRoaXMuY2hhbmdlcyQgPSBuZXcgU3ViamVjdCgpO1xyXG4gICAgICB0aGlzLmRyb3BzJCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgICAgIHRoaXMudHJlZU1vZGVsID0gbmV3IEJyYW5jaChudWxsKTtcclxuICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmNhcHR1cmVkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY2xlYW51cFNpZ25hbCQgPSBuZXcgU3ViamVjdCgpO1xyXG4gICAgICBsZXQgcmVidWlsZCA9IGZhbHNlO1xyXG4gICAgICBsZXQgdHJlZUlzU3RhYmxlID0gZmFsc2U7XHJcbiAgICAgIGNvbnN0IHRyZWVJc1N0YWJsZSQgPSB0aGlzLnRyZWVDb25zdHJ1Y3Rpb25TdGF0dXMuc3RhYmxlJC5waXBlKFxyXG4gICAgICAgICB0YXAoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRyZWVJc1N0YWJsZSA9IHZhbHVlO1xyXG4gICAgICAgICB9KSxcclxuICAgICAgICAgZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgPT09IHRydWUpXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuY2xlYW51cFNpZ25hbCRcclxuICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIHRhcCgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICAgcmVidWlsZCA9IHZhbHVlO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgZGVib3VuY2UoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICBpZiAodHJlZUlzU3RhYmxlID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgIC8vSWYgdHJlZSBpcyBzdGFibGUsIGNvbnRpbnVlIHJpZ2h0IGF3YXlcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgIC8vSWYgdHJlZSBpcyBub3Qgc3RhYmxlLCB3YWl0IGZvciBpdCB0byBiZWNvbWUgc28uXHJcbiAgICAgICAgICAgICAgIHJldHVybiB0cmVlSXNTdGFibGUkO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgLy9XZSB1c2UgdGhpcyB0aW1lZCBkZWJvdW5jZSB0byB0aHJvdHRsZSBjaGFpbmVkIGRlc3RydWN0aW9uIG9mIGNvbXBvbmVudHNcclxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDUpXHJcbiAgICAgICAgIClcclxuICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xlYW51cChyZWJ1aWxkKTtcclxuICAgICAgICAgICAgcmVidWlsZCA9IGZhbHNlO1xyXG4gICAgICAgICB9KTtcclxuICAgICAgdGhpcy5wbGFjZWhvbGRlciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgICAgdGhpcy5wbGFjZWhvbGRlciQuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gdmFsdWU7XHJcbiAgICAgIH0pO1xyXG4gICB9XHJcblxyXG4gICBwdWJsaWMgZHJvcChzb3VyY2U6IEJyYW5jaDxhbnk+LCB0YXJnZXRDb29yZGluYXRlczogQnJhbmNoQ29vcmRpbmF0ZXMpIHtcclxuICAgICAgLy9wcmVwXHJcbiAgICAgIGNvbnN0IHNvdXJjZVBhcmVudCA9IHNvdXJjZS5nZXRQYXJlbnQoKTtcclxuICAgICAgaWYgKHNvdXJjZVBhcmVudCA9PT0gbnVsbCkge1xyXG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJjYW4ndCBkcm9wIHJvb3Qgb2YgdHJlZVwiKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBzb3VyY2VJbmRleCA9IHNvdXJjZS5nZXRJbmRleCgpO1xyXG4gICAgICBpZiAoc291cmNlSW5kZXggPT09IHVuZGVmaW5lZCB8fCBzb3VyY2VJbmRleCA9PT0gbnVsbCkge1xyXG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgbW92ZSB0aGUgaGlkZGVuIHJvb3Qgbm9kZVwiKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgdGFyZ2V0UGFyZW50Q29vcmRpbmF0ZXM6IEJyYW5jaENvb3JkaW5hdGVzO1xyXG4gICAgICBsZXQgbmV3SW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgICAgaWYgKHRoaXMucGxhY2Vob2xkZXIgPT09IHRydWUpIHtcclxuICAgICAgICAgdGFyZ2V0UGFyZW50Q29vcmRpbmF0ZXMgPSBbXTtcclxuICAgICAgICAgbmV3SW5kZXggPSAwO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgICB0YXJnZXRQYXJlbnRDb29yZGluYXRlcyA9IFsuLi50YXJnZXRDb29yZGluYXRlc107XHJcbiAgICAgICAgIG5ld0luZGV4ID0gdGFyZ2V0UGFyZW50Q29vcmRpbmF0ZXMucG9wKCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG5ld0luZGV4ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwidGFyZ2V0IGNvb3JkaW5hdGVzIGFyZSBlbXB0eVwiKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCB0YXJnZXRQYXJlbnQgPSB0aGlzLnRyZWVNb2RlbC5nZXREZXNjZW5kYW50KFxyXG4gICAgICAgICB0YXJnZXRQYXJlbnRDb29yZGluYXRlc1xyXG4gICAgICApO1xyXG4gICAgICBpZiAodGFyZ2V0UGFyZW50ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiY291bGQgbm90IGdldCB0byB0YXJnZXRcIik7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5kcm9wWm9uZVNlcnZpY2UuZ2V0RHJvcFpvbmUodGFyZ2V0Q29vcmRpbmF0ZXMpO1xyXG4gICAgICBjb25zdCB0YXJnZXRJbmRleCA9IHRhcmdldD8uZ2V0TG9jYXRpb24oKS5pbnNlcnRJbmRleDtcclxuICAgICAgY29uc3QgdGFyZ2V0SG9zdCA9IHRhcmdldD8uZ2V0SG9zdCgpO1xyXG4gICAgICBjb25zdCBzb3VyY2VIb3N0ID0gdGhpcy5kcmFnU3RhdGVTZXJ2aWNlLmdldERhdGEoKT8ucGFyZW50Q29udGFpbmVyO1xyXG4gICAgICBpZiAodGhpcy5wbGFjZWhvbGRlciA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICB0aGlzLnBsYWNlaG9sZGVyJC5uZXh0KGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgICAvL0NoYW5nZSB0aGUgdHJlZU1vZGVsXHJcbiAgICAgIHRhcmdldFBhcmVudC5pbnNlcnRDaGlsZChzb3VyY2UsIG5ld0luZGV4KTtcclxuICAgICAgLy9QcmVwYXJlIHRvIHVwZGF0ZSB0aGUgdmlld1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIHRhcmdldEhvc3QgPT09IHVuZGVmaW5lZCB8fFxyXG4gICAgICAgICBzb3VyY2VIb3N0ID09PSB1bmRlZmluZWQgfHxcclxuICAgICAgICAgdGFyZ2V0SW5kZXggPT09IHVuZGVmaW5lZFxyXG4gICAgICApIHtcclxuICAgICAgICAgLy9IaXR0aW5nIHRoaXMgbWVhbnMgdGhlcmUgaXMgYSBidWcsIGJ1dCBub3QgYSBmYXRhbCBvbmUuXHJcbiAgICAgICAgIC8vSnVzdCByZW5kZXIgdGhlIHdob2xlIHRyZWUgYWdhaW4uXHJcbiAgICAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICAgICAgXCJDb3VsZCBub3QgcGVyZm9ybSBhIHByZWNpc2UgdXBkYXRlLiBSZS1yZW5kZXJpbmcgdGhlIGVudGlyZSB0cmVlIGluc3RlYWRcIlxyXG4gICAgICAgICApO1xyXG4gICAgICAgICB0aGlzLnJlbmRlcigpO1xyXG4gICAgICAgICB0aGlzLmNoYW5nZXMkLm5leHQobnVsbCk7XHJcbiAgICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICAvL1VwZGF0ZSB0aGUgdmlld1xyXG4gICAgICBjb25zdCBub2Rlc0luU291cmNlID0gc291cmNlSG9zdC5sZW5ndGg7XHJcbiAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuY29tcG9uZW50Q3JlYXRvclNlcnZpY2UuYXBwZW5kQ29tcG9uZW50KFxyXG4gICAgICAgICBMaW1ibGVUcmVlTm9kZUNvbXBvbmVudCxcclxuICAgICAgICAgdGFyZ2V0SG9zdCxcclxuICAgICAgICAgbmV3SW5kZXhcclxuICAgICAgKTtcclxuICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmJyYW5jaCA9IHNvdXJjZTtcclxuICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnBhcmVudEhvc3QgPSB0YXJnZXRIb3N0O1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIHRhcmdldEluZGV4IDwgc291cmNlSW5kZXggJiZcclxuICAgICAgICAgc291cmNlSG9zdC5sZW5ndGggPiBub2Rlc0luU291cmNlICYmXHJcbiAgICAgICAgIGFycmF5c0FyZUVxdWFsKHNvdXJjZVBhcmVudC5nZXRDb29yZGluYXRlcygpLCB0YXJnZXRQYXJlbnRDb29yZGluYXRlcylcclxuICAgICAgKSB7XHJcbiAgICAgICAgIHNvdXJjZUhvc3QucmVtb3ZlKHNvdXJjZUluZGV4ICsgMSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgIHNvdXJjZUhvc3QucmVtb3ZlKHNvdXJjZUluZGV4KTtcclxuICAgICAgfVxyXG4gICAgICAvL1VwZGF0ZSB0aGUgdHJlZSBkYXRhXHJcbiAgICAgIHRoaXMucmVidWlsZFRyZWVEYXRhKCk7XHJcbiAgICAgIC8vUHVibGlzaCBkcm9wIGRhdGFcclxuICAgICAgdGhpcy5kcm9wcyQubmV4dCh7XHJcbiAgICAgICAgIHRhcmdldDogc291cmNlLmRhdGEsXHJcbiAgICAgICAgIG9sZFBhcmVudDogc291cmNlUGFyZW50LmRhdGEgYXMgTGltYmxlVHJlZU5vZGUsXHJcbiAgICAgICAgIG9sZEluZGV4OiBzb3VyY2VJbmRleCxcclxuICAgICAgICAgbmV3UGFyZW50OiB0YXJnZXRQYXJlbnQuZGF0YSxcclxuICAgICAgICAgbmV3SW5kZXg6IG5ld0luZGV4XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmNsZWFudXBTaWduYWwkLm5leHQoZmFsc2UpO1xyXG4gICB9XHJcblxyXG4gICAvKiogSW5pdGlhbGl6ZXMgdGhlIHNlcnZpY2UgYW5kIHJlbmRlcnMgdGhlIHRyZWUuXHJcbiAgICAqIEBwYXJhbSBob3N0IC0gVGhlIFZpZXdDb250YWluZXJSZWYgaW50byB3aGljaCB0aGUgdHJlZSB3aWxsIGJlIHJlbmRlcmVkLlxyXG4gICAgKiBAcGFyYW0gZGF0YSAtIFRoZSBkYXRhIGFycmF5IHRoYXQgd2FzIHBhc3NlZCBpbiB0byBMaW1ibGVUcmVlUm9vdCwgd2hpY2ggaXNcclxuICAgICogdGhlIHVzZXJzJyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdHJlZVxyXG4gICAgKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIG9iamVjdCB0aGF0IHdhcyBwYXNzZWQgaW4gdG8gTGltYmxlVHJlZVJvb3RcclxuICAgICovXHJcbiAgIHB1YmxpYyBpbml0KFxyXG4gICAgICBob3N0OiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICBkYXRhOiBMaW1ibGVUcmVlRGF0YSxcclxuICAgICAgb3B0aW9ucz86IExpbWJsZVRyZWVPcHRpb25zLFxyXG4gICAgICBpdGVtc1BlclBhZ2U/OiBudW1iZXIsXHJcbiAgICAgIHBhZ2U/OiBudW1iZXJcclxuICAgKTogdm9pZCB7XHJcbiAgICAgIHRoaXMuaG9zdCA9IGhvc3Q7XHJcbiAgICAgIHRoaXMub3JpZ2luYWxEYXRhID0gZGF0YTtcclxuICAgICAgdGhpcy50cmVlT3B0aW9ucyA9IHRoaXMucHJvY2Vzc09wdGlvbnMob3B0aW9ucywgaXRlbXNQZXJQYWdlLCBwYWdlKTtcclxuICAgICAgaWYgKHRoaXMudHJlZU9wdGlvbnMubGlzdE1vZGUgPT09IHRydWUpIHtcclxuICAgICAgICAgbGV0IHN0YXJ0ID1cclxuICAgICAgICAgICAgdGhpcy50cmVlT3B0aW9ucy5pdGVtc1BlclBhZ2UgKiAodGhpcy50cmVlT3B0aW9ucy5wYWdlIC0gMSk7XHJcbiAgICAgICAgIGlmIChpc05hTihzdGFydCkpIHtcclxuICAgICAgICAgICAgLy9UaGlzIGNhdGNoZXMgdGhlIGNhc2Ugd2hlcmUgaXRlbXNQZXJQYWdlIHdhcyBub3QgcGFzc2VkIGJ5IHRoZSB1c2VyLFxyXG4gICAgICAgICAgICAvL2NhdXNpbmcgYHN0YXJ0YCB0byBlcXVhbCBpbmZpbml0eSowLCB3aGljaCBpcyBOYU4uXHJcbiAgICAgICAgICAgIHN0YXJ0ID0gMDtcclxuICAgICAgICAgfVxyXG4gICAgICAgICBjb25zdCBlbmQgPSBzdGFydCArIHRoaXMudHJlZU9wdGlvbnMuaXRlbXNQZXJQYWdlO1xyXG4gICAgICAgICB0aGlzLnRyZWVEYXRhID0gdGhpcy5vcmlnaW5hbERhdGEuc2xpY2Uoc3RhcnQsIGVuZCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgIHRoaXMudHJlZURhdGEgPSBbLi4udGhpcy5vcmlnaW5hbERhdGFdO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVuZGVyKCk7XHJcbiAgIH1cclxuXHJcbiAgIHByaXZhdGUgY2xlYW51cChyZWJ1aWxkID0gZmFsc2UpOiB2b2lkIHtcclxuICAgICAgaWYgKHJlYnVpbGQpIHtcclxuICAgICAgICAgdGhpcy5yZWJ1aWxkVHJlZURhdGEoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy50cmVlRGF0YT8ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgIC8vV2UgZG8gYSBmdWxsIHJlbmRlciBoZXJlIGJlY2F1c2UgaXQgaXNuJ3QgYWN0dWFsbHkgYW55IHNsb3dlclxyXG4gICAgICAgICAvL3doZW4gdGhlcmUgYXJlIG5vIG5vZGVzLCBhbmQgaXQgaXMgYSBsaXR0bGUgbW9yZSBzdHJhaWdodGZvcndhcmRcclxuICAgICAgICAgdGhpcy5yZW5kZXIoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgdGhpcy5jaGFuZ2VzJC5uZXh0KG51bGwpO1xyXG4gICAgICAgICB0aGlzLmRyb3Bab25lU2VydmljZS51cGRhdGUoKTtcclxuICAgICAgfVxyXG4gICB9XHJcblxyXG4gICAvKiogUmVuZGVycyB0aGUgZW50aXJlIHRyZWUgZnJvbSByb290IHRvIGxlYXZlcyAqL1xyXG4gICBwcml2YXRlIHJlbmRlcigpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgICB0aGlzLmhvc3QgPT09IHVuZGVmaW5lZCB8fFxyXG4gICAgICAgICB0aGlzLnRyZWVEYXRhID09PSB1bmRlZmluZWQgfHxcclxuICAgICAgICAgdGhpcy50cmVlT3B0aW9ucyA9PT0gdW5kZWZpbmVkXHJcbiAgICAgICkge1xyXG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUcmVlTW9kZWwgbm90IGluaXRpYWxpemVkXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudHJlZUNvbnN0cnVjdGlvblN0YXR1cy5yZWFkeShmYWxzZSk7XHJcbiAgICAgIHRoaXMuaG9zdC5jbGVhcigpO1xyXG4gICAgICB0aGlzLmRyb3Bab25lU2VydmljZS5yZXN0YXJ0KCk7XHJcbiAgICAgIHRoaXMucGxhY2Vob2xkZXIkLm5leHQoZmFsc2UpO1xyXG4gICAgICB0aGlzLnRyZWVNb2RlbCA9IG5ldyBCcmFuY2gobnVsbCk7XHJcbiAgICAgIGlmICh0aGlzLnRyZWVEYXRhLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAvL1RyZWUgaXMgZW1wdHksIGJ1dCB3ZSBoYXZlIHRvIHRvIGhhdmUgc29tZXRoaW5nIHRoZXJlIHNvIG90aGVyIHRyZWVzJyBpdGVtcyBjYW4gYmUgZHJvcHBlZCBpbnRvIGl0XHJcbiAgICAgICAgIHRoaXMucGxhY2Vob2xkZXIkLm5leHQodHJ1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiB0aGlzLnRyZWVEYXRhKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGJyYW5jaCA9IG5ldyBCcmFuY2gobm9kZSk7XHJcbiAgICAgICAgICAgIHRoaXMudHJlZU1vZGVsLmFwcGVuZENoaWxkKGJyYW5jaCk7XHJcbiAgICAgICAgIH1cclxuICAgICAgICAgZm9yIChjb25zdCBicmFuY2ggb2YgdGhpcy50cmVlTW9kZWwuZ2V0Q2hpbGRyZW4oKSkge1xyXG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmNvbXBvbmVudENyZWF0b3JTZXJ2aWNlLmFwcGVuZENvbXBvbmVudDxMaW1ibGVUcmVlTm9kZUNvbXBvbmVudD4oXHJcbiAgICAgICAgICAgICAgIExpbWJsZVRyZWVOb2RlQ29tcG9uZW50LFxyXG4gICAgICAgICAgICAgICB0aGlzLmhvc3RcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmJyYW5jaCA9IGJyYW5jaDtcclxuICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnBhcmVudEhvc3QgPSB0aGlzLmhvc3Q7XHJcbiAgICAgICAgICAgIC8vVGhlIExpbWJsZVRyZWVOb2RlQ29tcG9uZW50IHdpbGwgKGluZGlyZWN0bHkpIGNhbGwgdGhlIGByZW5kZXJCcmFuY2hgIG1ldGhvZCBvZiB0aGlzIHNlcnZpY2UgdG8gcmVuZGVyXHJcbiAgICAgICAgICAgIC8vaXRzIG93biBjaGlsZHJlblxyXG4gICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy50cmVlQ29uc3RydWN0aW9uU3RhdHVzLnJlYWR5KHRydWUpO1xyXG4gICAgICB0aGlzLmNoYW5nZXMkLm5leHQobnVsbCk7XHJcbiAgICAgIHRoaXMuZHJvcFpvbmVTZXJ2aWNlLmluaXQodGhpcy50cmVlTW9kZWwsIHRoaXMudHJlZU9wdGlvbnMpO1xyXG4gICB9XHJcblxyXG4gICAvKiogUmVuZGVycyBhIGJyYW5jaCBvZiB0aGUgdHJlZSBhbmQgYWxsIG9mIGl0cyBkZXNjZW5kYW50cyAqL1xyXG4gICBwdWJsaWMgcmVuZGVyQnJhbmNoKGhvc3Q6IFZpZXdDb250YWluZXJSZWYsIGJyYW5jaDogQnJhbmNoPGFueT4pIHtcclxuICAgICAgaWYgKHRoaXMudHJlZU1vZGVsID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVHJlZU1vZGVsIG5vdCBpbml0aWFsaXplZFwiKTtcclxuICAgICAgfVxyXG4gICAgICBob3N0LmNsZWFyKCk7XHJcbiAgICAgIGJyYW5jaC5jbGVhckNoaWxkcmVuKCk7XHJcbiAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiBicmFuY2guZGF0YT8ubm9kZXMgPz8gW10pIHtcclxuICAgICAgICAgY29uc3QgbmV3QnJhbmNoID0gbmV3IEJyYW5jaChub2RlKTtcclxuICAgICAgICAgYnJhbmNoLmFwcGVuZENoaWxkKG5ld0JyYW5jaCk7XHJcbiAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuY29tcG9uZW50Q3JlYXRvclNlcnZpY2UuYXBwZW5kQ29tcG9uZW50PExpbWJsZVRyZWVOb2RlQ29tcG9uZW50PihcclxuICAgICAgICAgICAgTGltYmxlVHJlZU5vZGVDb21wb25lbnQsXHJcbiAgICAgICAgICAgIGhvc3RcclxuICAgICAgICAgKTtcclxuICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmJyYW5jaCA9IG5ld0JyYW5jaDtcclxuICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnBhcmVudEhvc3QgPSBob3N0O1xyXG4gICAgICAgICAvL1RoZSBMaW1ibGVUcmVlTm9kZUNvbXBvbmVudCB3aWxsIChpbmRpcmVjdGx5KSBjYWxsIHRoZSBgcmVuZGVyQnJhbmNoYCBtZXRob2Qgb2YgdGhpcyBzZXJ2aWNlIHRvIHJlbmRlclxyXG4gICAgICAgICAvL2l0cyBvd24gY2hpbGRyZW5cclxuICAgICAgfVxyXG4gICB9XHJcblxyXG4gICBwcml2YXRlIHByb2Nlc3NPcHRpb25zKFxyXG4gICAgICBvcHRpb25zOiBMaW1ibGVUcmVlT3B0aW9ucyA9IHt9LFxyXG4gICAgICBpdGVtc1BlclBhZ2U6IG51bWJlciA9IEluZmluaXR5LFxyXG4gICAgICBwYWdlOiBudW1iZXIgPSAxXHJcbiAgICk6IFByb2Nlc3NlZE9wdGlvbnMge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIG9wdGlvbnMubGlzdE1vZGUgPT09IHRydWUgJiZcclxuICAgICAgICAgb3B0aW9ucy5hbGxvd05lc3RpbmcgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgICBvcHRpb25zLmFsbG93TmVzdGluZyAhPT0gZmFsc2VcclxuICAgICAgKSB7XHJcbiAgICAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICAgICAgXCJUaGUgdmFsdWUgb2YgYGFsbG93TmVzdGluZ2Agd2lsbCBiZSBpZ25vcmVkOyBpdCBtdXN0IGJlIGZhbHNlIHdoZW4gYGxpc3RNb2RlYCBpcyB0cnVlXCJcclxuICAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCByZXN1bHQ6IFByb2Nlc3NlZE9wdGlvbnNCYXNlID0ge1xyXG4gICAgICAgICBkZWZhdWx0Q29tcG9uZW50OiBvcHRpb25zLmRlZmF1bHRDb21wb25lbnQsXHJcbiAgICAgICAgIGluZGVudDogb3B0aW9ucy5pbmRlbnQgPz8gSU5ERU5ULFxyXG4gICAgICAgICBhbGxvd05lc3Rpbmc6XHJcbiAgICAgICAgICAgIG9wdGlvbnMubGlzdE1vZGUgIT09IHRydWUgJiYgKG9wdGlvbnMuYWxsb3dOZXN0aW5nID8/IHRydWUpLFxyXG4gICAgICAgICBhbGxvd0RyYWdnaW5nOiBvcHRpb25zLmFsbG93RHJhZ2dpbmcgPz8gdHJ1ZSxcclxuICAgICAgICAgYWxsb3dEcm9wOiBvcHRpb25zLmFsbG93RHJvcCA/PyAoKCkgPT4gdHJ1ZSksXHJcbiAgICAgICAgIGxpc3RNb2RlOiBvcHRpb25zLmxpc3RNb2RlID8/IGZhbHNlLFxyXG4gICAgICAgICBpdGVtc1BlclBhZ2U6IG9wdGlvbnMubGlzdE1vZGUgPyBpdGVtc1BlclBhZ2UgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgIHBhZ2U6IG9wdGlvbnMubGlzdE1vZGUgPyBwYWdlIDogdW5kZWZpbmVkXHJcbiAgICAgIH07XHJcbiAgICAgIHJldHVybiByZXN1bHQgYXMgUHJvY2Vzc2VkT3B0aW9ucztcclxuICAgfVxyXG5cclxuICAgcHJpdmF0ZSByZWJ1aWxkVHJlZURhdGEoKTogdm9pZCB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICAgdGhpcy5vcmlnaW5hbERhdGEgPT09IHVuZGVmaW5lZCB8fFxyXG4gICAgICAgICB0aGlzLnRyZWVEYXRhID09PSB1bmRlZmluZWQgfHxcclxuICAgICAgICAgdGhpcy50cmVlT3B0aW9ucyA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgIHRoaXMuaG9zdCA9PT0gdW5kZWZpbmVkXHJcbiAgICAgICkge1xyXG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUcmVlIGRhdGEgbm90IGluaXRpYWxpemVkXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudHJlZURhdGEgPSBbXTtcclxuICAgICAgZm9yIChjb25zdCBicmFuY2ggb2YgdGhpcy50cmVlTW9kZWwuZ2V0Q2hpbGRyZW4oKSkge1xyXG4gICAgICAgICB0aGlzLnRyZWVEYXRhLnB1c2godGhpcy5yZWJ1aWxkQnJhbmNoKGJyYW5jaCkpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChcclxuICAgICAgICAgdGhpcy50cmVlT3B0aW9ucy5saXN0TW9kZSA9PT0gdHJ1ZSAmJlxyXG4gICAgICAgICB0aGlzLnRyZWVPcHRpb25zLml0ZW1zUGVyUGFnZSA8IEluZmluaXR5XHJcbiAgICAgICkge1xyXG4gICAgICAgICBjb25zdCBpdGVtc1BlclBhZ2UgPSB0aGlzLnRyZWVPcHRpb25zLml0ZW1zUGVyUGFnZTtcclxuICAgICAgICAgY29uc3Qgc3RhcnQgPSBpdGVtc1BlclBhZ2UgKiAodGhpcy50cmVlT3B0aW9ucy5wYWdlIC0gMSk7XHJcbiAgICAgICAgIHRoaXMub3JpZ2luYWxEYXRhLnNwbGljZShzdGFydCwgaXRlbXNQZXJQYWdlLCAuLi50aGlzLnRyZWVEYXRhKTtcclxuICAgICAgICAgaWYgKHRoaXMudHJlZURhdGEubGVuZ3RoICE9PSBpdGVtc1BlclBhZ2UpIHtcclxuICAgICAgICAgICAgbGV0IGFjdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgIHRoaXMudHJlZURhdGEubGVuZ3RoIDwgaXRlbXNQZXJQYWdlICYmXHJcbiAgICAgICAgICAgICAgIHN0YXJ0ICsgaXRlbXNQZXJQYWdlIDw9IHRoaXMub3JpZ2luYWxEYXRhLmxlbmd0aFxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgLy9UaGUgY3VycmVudCBwYWdlIGRvZXMgbm90IGhhdmUgZW5vdWdoIG5vZGVzLiBBZGQgc29tZSB0byB0aGUgdmlldyBmcm9tIHRoZSBuZXh0IHBhZ2UuXHJcbiAgICAgICAgICAgICAgIGNvbnN0IGNvdW50ID0gaXRlbXNQZXJQYWdlIC0gdGhpcy50cmVlRGF0YS5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgIGZvciAoXHJcbiAgICAgICAgICAgICAgICAgIGxldCBpbmRleCA9IGl0ZW1zUGVyUGFnZSAtIDE7XHJcbiAgICAgICAgICAgICAgICAgIGluZGV4IDwgaXRlbXNQZXJQYWdlICsgY291bnQgLSAxO1xyXG4gICAgICAgICAgICAgICAgICBpbmRleCsrXHJcbiAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBicmFuY2ggPSBuZXcgQnJhbmNoKHRoaXMub3JpZ2luYWxEYXRhW3N0YXJ0ICsgaW5kZXhdKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy50cmVlTW9kZWwuYXBwZW5kQ2hpbGQoYnJhbmNoKTtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5jb21wb25lbnRDcmVhdG9yU2VydmljZS5hcHBlbmRDb21wb25lbnQ8TGltYmxlVHJlZU5vZGVDb21wb25lbnQ+KFxyXG4gICAgICAgICAgICAgICAgICAgICBMaW1ibGVUcmVlTm9kZUNvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgICAgICAgdGhpcy5ob3N0XHJcbiAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5icmFuY2ggPSBicmFuY2g7XHJcbiAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5wYXJlbnRIb3N0ID0gdGhpcy5ob3N0O1xyXG4gICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgIGFjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50cmVlRGF0YS5sZW5ndGggPiBpdGVtc1BlclBhZ2UpIHtcclxuICAgICAgICAgICAgICAgLy9UaGUgY3VycmVudCBwYWdlIGhhcyB0b28gbWFueSBub2Rlcy4gUmVtb3ZlIHNvbWUgb2YgdGhlbSBmcm9tIHRoZSB2aWV3LlxyXG4gICAgICAgICAgICAgICBjb25zdCBjb3VudCA9IHRoaXMudHJlZURhdGEubGVuZ3RoIC0gaXRlbXNQZXJQYWdlO1xyXG4gICAgICAgICAgICAgICBmb3IgKFxyXG4gICAgICAgICAgICAgICAgICBsZXQgaW5kZXggPSBpdGVtc1BlclBhZ2UgKyBjb3VudCAtIDE7XHJcbiAgICAgICAgICAgICAgICAgIGluZGV4ID49IGl0ZW1zUGVyUGFnZTtcclxuICAgICAgICAgICAgICAgICAgaW5kZXgtLVxyXG4gICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy50cmVlTW9kZWwucmVtb3ZlQ2hpbGQoaW5kZXgpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmhvc3QucmVtb3ZlKGluZGV4KTtcclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICBhY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChhY3Rpb24gPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgY29uc3QgZW5kID0gc3RhcnQgKyBpdGVtc1BlclBhZ2U7XHJcbiAgICAgICAgICAgICAgIHRoaXMudHJlZURhdGEgPSB0aGlzLm9yaWdpbmFsRGF0YS5zbGljZShzdGFydCwgZW5kKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgIHRoaXMub3JpZ2luYWxEYXRhLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgIHRoaXMub3JpZ2luYWxEYXRhLnB1c2goLi4udGhpcy50cmVlRGF0YSk7XHJcbiAgICAgIH1cclxuICAgfVxyXG5cclxuICAgcHJpdmF0ZSByZWJ1aWxkQnJhbmNoKGJyYW5jaDogQnJhbmNoPGFueT4pOiBMaW1ibGVUcmVlTm9kZSB7XHJcbiAgICAgIGNvbnN0IHRlbXA6IExpbWJsZVRyZWVOb2RlID0gYnJhbmNoLmRhdGE7XHJcbiAgICAgIHRlbXAubm9kZXMgPSBbXTtcclxuICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBicmFuY2guZ2V0Q2hpbGRyZW4oKSkge1xyXG4gICAgICAgICB0ZW1wLm5vZGVzLnB1c2godGhpcy5yZWJ1aWxkQnJhbmNoKGNoaWxkKSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRlbXA7XHJcbiAgIH1cclxufVxyXG4iXX0=

@@ -18,11 +18,4 @@ import { NgModule } from "@angular/core";

LimbleTreeModule.ɵfac = function LimbleTreeModule_Factory(t) { return new (t || LimbleTreeModule)(); };
LimbleTreeModule.ɵmod = i0.ɵɵdefineNgModule({ type: LimbleTreeModule });
LimbleTreeModule.ɵinj = i0.ɵɵdefineInjector({ providers: [ComponentCreatorService, DragStateService, GlobalEventsService], imports: [[CommonModule]] });
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(LimbleTreeModule, { declarations: [LimbleTreeBranchComponent,
DropZoneComponent,
LimbleTreeNodeComponent,
LimbleTreeRootComponent,
LimbleTreePlaceholderComponent,
DragoverNoChangeDetectDirective,
DragleaveNoChangeDetectDirective], imports: [CommonModule], exports: [LimbleTreeRootComponent] }); })();
LimbleTreeModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: LimbleTreeModule });
LimbleTreeModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [ComponentCreatorService, DragStateService, GlobalEventsService], imports: [[CommonModule]] });
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LimbleTreeModule, [{

@@ -45,6 +38,12 @@ type: NgModule,

}], null, null); })();
i0.ɵɵsetComponentScope(LimbleTreeBranchComponent, [i1.NgIf, DropZoneComponent], []);
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(LimbleTreeModule, { declarations: [LimbleTreeBranchComponent,
DropZoneComponent,
LimbleTreeNodeComponent,
LimbleTreeRootComponent,
LimbleTreePlaceholderComponent,
DragoverNoChangeDetectDirective,
DragleaveNoChangeDetectDirective], imports: [CommonModule], exports: [LimbleTreeRootComponent] }); })();
i0.ɵɵsetComponentScope(LimbleTreeNodeComponent, [i1.NgIf, DropZoneComponent,
DragoverNoChangeDetectDirective,
LimbleTreeBranchComponent], []);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGltYmxlLXRyZWUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9saW1ibGUtdHJlZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDN0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDOUcsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sOERBQThELENBQUM7OztBQWdCaEgsTUFBTSxPQUFPLGdCQUFnQjs7Z0ZBQWhCLGdCQUFnQjtvREFBaEIsZ0JBQWdCO3lEQUZmLENBQUMsdUJBQXVCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUMsWUFGbEUsQ0FBQyxZQUFZLENBQUM7d0ZBSWIsZ0JBQWdCLG1CQVp2Qix5QkFBeUI7UUFDekIsaUJBQWlCO1FBQ2pCLHVCQUF1QjtRQUN2Qix1QkFBdUI7UUFDdkIsOEJBQThCO1FBQzlCLCtCQUErQjtRQUMvQixnQ0FBZ0MsYUFFekIsWUFBWSxhQUNaLHVCQUF1Qjt1RkFHdkIsZ0JBQWdCO2NBZDVCLFFBQVE7ZUFBQztnQkFDUCxZQUFZLEVBQUU7b0JBQ1gseUJBQXlCO29CQUN6QixpQkFBaUI7b0JBQ2pCLHVCQUF1QjtvQkFDdkIsdUJBQXVCO29CQUN2Qiw4QkFBOEI7b0JBQzlCLCtCQUErQjtvQkFDL0IsZ0NBQWdDO2lCQUNsQztnQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQUNsQyxTQUFTLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQzthQUM3RTs7dUJBWEsseUJBQXlCLFlBQ3pCLGlCQUFpQjt1QkFDakIsdUJBQXVCLFlBRHZCLGlCQUFpQjtJQUlqQiwrQkFBK0I7SUFML0IseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnRDcmVhdG9yU2VydmljZSB9IGZyb20gXCIuL3NpbmdsZXRvbnMvY29tcG9uZW50LWNyZWF0b3Iuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEcm9wWm9uZUNvbXBvbmVudCB9IGZyb20gXCIuL2Ryb3Atem9uZS9kcm9wLXpvbmUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IExpbWJsZVRyZWVCcmFuY2hDb21wb25lbnQgfSBmcm9tIFwiLi9saW1ibGUtdHJlZS1icmFuY2gvbGltYmxlLXRyZWUtYnJhbmNoLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IExpbWJsZVRyZWVOb2RlQ29tcG9uZW50IH0gZnJvbSBcIi4vbGltYmxlLXRyZWUtbm9kZS9saW1ibGUtdHJlZS1ub2RlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBEcmFnU3RhdGVTZXJ2aWNlIH0gZnJvbSBcIi4vc2luZ2xldG9ucy9kcmFnLXN0YXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTGltYmxlVHJlZVJvb3RDb21wb25lbnQgfSBmcm9tIFwiLi9saW1ibGUtdHJlZS1yb290L2xpbWJsZS10cmVlLXJvb3QuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IExpbWJsZVRyZWVQbGFjZWhvbGRlckNvbXBvbmVudCB9IGZyb20gXCIuL2xpbWJsZS10cmVlLXBsYWNlaG9sZGVyL2xpbWJsZS10cmVlLXBsYWNlaG9sZGVyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBHbG9iYWxFdmVudHNTZXJ2aWNlIH0gZnJvbSBcIi4vc2luZ2xldG9ucy9nbG9iYWwtZXZlbnRzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRHJhZ292ZXJOb0NoYW5nZURldGVjdERpcmVjdGl2ZSB9IGZyb20gXCIuL2N1c3RvbS1ldmVudC1iaW5kaW5ncy9kcmFnb3Zlci1uby1jaGFuZ2UtZGV0ZWN0LmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQgeyBEcmFnbGVhdmVOb0NoYW5nZURldGVjdERpcmVjdGl2ZSB9IGZyb20gXCIuL2N1c3RvbS1ldmVudC1iaW5kaW5ncy9kcmFnbGVhdmUtbm8tY2hhbmdlLWRldGVjdC5kaXJlY3RpdmVcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICBMaW1ibGVUcmVlQnJhbmNoQ29tcG9uZW50LFxyXG4gICAgICBEcm9wWm9uZUNvbXBvbmVudCxcclxuICAgICAgTGltYmxlVHJlZU5vZGVDb21wb25lbnQsXHJcbiAgICAgIExpbWJsZVRyZWVSb290Q29tcG9uZW50LFxyXG4gICAgICBMaW1ibGVUcmVlUGxhY2Vob2xkZXJDb21wb25lbnQsXHJcbiAgICAgIERyYWdvdmVyTm9DaGFuZ2VEZXRlY3REaXJlY3RpdmUsXHJcbiAgICAgIERyYWdsZWF2ZU5vQ2hhbmdlRGV0ZWN0RGlyZWN0aXZlXHJcbiAgIF0sXHJcbiAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gICBleHBvcnRzOiBbTGltYmxlVHJlZVJvb3RDb21wb25lbnRdLFxyXG4gICBwcm92aWRlcnM6IFtDb21wb25lbnRDcmVhdG9yU2VydmljZSwgRHJhZ1N0YXRlU2VydmljZSwgR2xvYmFsRXZlbnRzU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIExpbWJsZVRyZWVNb2R1bGUge31cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGltYmxlLXRyZWUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9saW1ibGUtdHJlZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDN0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDOUcsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sOERBQThELENBQUM7OztBQWdCaEgsTUFBTSxPQUFPLGdCQUFnQjs7Z0ZBQWhCLGdCQUFnQjtrRUFBaEIsZ0JBQWdCO3VFQUZmLENBQUMsdUJBQXVCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUMsWUFGbEUsQ0FBQyxZQUFZLENBQUM7dUZBSWIsZ0JBQWdCO2NBZDVCLFFBQVE7ZUFBQztnQkFDUCxZQUFZLEVBQUU7b0JBQ1gseUJBQXlCO29CQUN6QixpQkFBaUI7b0JBQ2pCLHVCQUF1QjtvQkFDdkIsdUJBQXVCO29CQUN2Qiw4QkFBOEI7b0JBQzlCLCtCQUErQjtvQkFDL0IsZ0NBQWdDO2lCQUNsQztnQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQUNsQyxTQUFTLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQzthQUM3RTs7d0ZBQ1ksZ0JBQWdCLG1CQVp2Qix5QkFBeUI7UUFDekIsaUJBQWlCO1FBQ2pCLHVCQUF1QjtRQUN2Qix1QkFBdUI7UUFDdkIsOEJBQThCO1FBQzlCLCtCQUErQjtRQUMvQixnQ0FBZ0MsYUFFekIsWUFBWSxhQUNaLHVCQUF1Qjt1QkFQOUIsdUJBQXVCLFlBRHZCLGlCQUFpQjtJQUlqQiwrQkFBK0I7SUFML0IseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnRDcmVhdG9yU2VydmljZSB9IGZyb20gXCIuL3NpbmdsZXRvbnMvY29tcG9uZW50LWNyZWF0b3Iuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEcm9wWm9uZUNvbXBvbmVudCB9IGZyb20gXCIuL2Ryb3Atem9uZS9kcm9wLXpvbmUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IExpbWJsZVRyZWVCcmFuY2hDb21wb25lbnQgfSBmcm9tIFwiLi9saW1ibGUtdHJlZS1icmFuY2gvbGltYmxlLXRyZWUtYnJhbmNoLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IExpbWJsZVRyZWVOb2RlQ29tcG9uZW50IH0gZnJvbSBcIi4vbGltYmxlLXRyZWUtbm9kZS9saW1ibGUtdHJlZS1ub2RlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBEcmFnU3RhdGVTZXJ2aWNlIH0gZnJvbSBcIi4vc2luZ2xldG9ucy9kcmFnLXN0YXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTGltYmxlVHJlZVJvb3RDb21wb25lbnQgfSBmcm9tIFwiLi9saW1ibGUtdHJlZS1yb290L2xpbWJsZS10cmVlLXJvb3QuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IExpbWJsZVRyZWVQbGFjZWhvbGRlckNvbXBvbmVudCB9IGZyb20gXCIuL2xpbWJsZS10cmVlLXBsYWNlaG9sZGVyL2xpbWJsZS10cmVlLXBsYWNlaG9sZGVyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBHbG9iYWxFdmVudHNTZXJ2aWNlIH0gZnJvbSBcIi4vc2luZ2xldG9ucy9nbG9iYWwtZXZlbnRzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRHJhZ292ZXJOb0NoYW5nZURldGVjdERpcmVjdGl2ZSB9IGZyb20gXCIuL2N1c3RvbS1ldmVudC1iaW5kaW5ncy9kcmFnb3Zlci1uby1jaGFuZ2UtZGV0ZWN0LmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQgeyBEcmFnbGVhdmVOb0NoYW5nZURldGVjdERpcmVjdGl2ZSB9IGZyb20gXCIuL2N1c3RvbS1ldmVudC1iaW5kaW5ncy9kcmFnbGVhdmUtbm8tY2hhbmdlLWRldGVjdC5kaXJlY3RpdmVcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICBMaW1ibGVUcmVlQnJhbmNoQ29tcG9uZW50LFxyXG4gICAgICBEcm9wWm9uZUNvbXBvbmVudCxcclxuICAgICAgTGltYmxlVHJlZU5vZGVDb21wb25lbnQsXHJcbiAgICAgIExpbWJsZVRyZWVSb290Q29tcG9uZW50LFxyXG4gICAgICBMaW1ibGVUcmVlUGxhY2Vob2xkZXJDb21wb25lbnQsXHJcbiAgICAgIERyYWdvdmVyTm9DaGFuZ2VEZXRlY3REaXJlY3RpdmUsXHJcbiAgICAgIERyYWdsZWF2ZU5vQ2hhbmdlRGV0ZWN0RGlyZWN0aXZlXHJcbiAgIF0sXHJcbiAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gICBleHBvcnRzOiBbTGltYmxlVHJlZVJvb3RDb21wb25lbnRdLFxyXG4gICBwcm92aWRlcnM6IFtDb21wb25lbnRDcmVhdG9yU2VydmljZSwgRHJhZ1N0YXRlU2VydmljZSwgR2xvYmFsRXZlbnRzU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIExpbWJsZVRyZWVNb2R1bGUge31cclxuIl19

@@ -15,6 +15,6 @@ import { Injectable } from "@angular/core";

ComponentCreatorService.ɵfac = function ComponentCreatorService_Factory(t) { return new (t || ComponentCreatorService)(i0.ɵɵinject(i0.ComponentFactoryResolver)); };
ComponentCreatorService.ɵprov = i0.ɵɵdefineInjectable({ token: ComponentCreatorService, factory: ComponentCreatorService.ɵfac });
ComponentCreatorService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ComponentCreatorService, factory: ComponentCreatorService.ɵfac });
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ComponentCreatorService, [{
type: Injectable
}], function () { return [{ type: i0.ComponentFactoryResolver }]; }, null); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWNyZWF0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvc2luZ2xldG9ucy9jb21wb25lbnQtY3JlYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSixVQUFVLEVBR1osTUFBTSxlQUFlLENBQUM7O0FBR3ZCLE1BQU0sT0FBTyx1QkFBdUI7SUFDakMsWUFBNkIsZUFBeUM7UUFBekMsb0JBQWUsR0FBZixlQUFlLENBQTBCO1FBQ25FLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO0lBQzFDLENBQUM7SUFFRCxlQUFlLENBQ1osU0FBa0IsRUFDbEIsZ0JBQWtDLEVBQ2xDLFFBQTRCLFNBQVM7UUFFckMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLHVCQUF1QixDQUNsRSxTQUFTLENBQ1gsQ0FBQztRQUNGLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLGVBQWUsQ0FDbEQsZ0JBQWdCLEVBQ2hCLEtBQUssQ0FDUCxDQUFDO1FBQ0YsT0FBTyxZQUFZLENBQUM7SUFDdkIsQ0FBQzs7OEZBbEJTLHVCQUF1QjsrREFBdkIsdUJBQXVCLFdBQXZCLHVCQUF1Qjt1RkFBdkIsdUJBQXVCO2NBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgIEluamVjdGFibGUsXHJcbiAgIFR5cGUsXHJcbiAgIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50Q3JlYXRvclNlcnZpY2Uge1xyXG4gICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XHJcbiAgICAgIHRoaXMuZmFjdG9yeVJlc29sdmVyID0gZmFjdG9yeVJlc29sdmVyO1xyXG4gICB9XHJcblxyXG4gICBhcHBlbmRDb21wb25lbnQ8VCA9IHVua25vd24+KFxyXG4gICAgICBjb21wb25lbnQ6IFR5cGU8VD4sXHJcbiAgICAgIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgIGluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcclxuICAgKSB7XHJcbiAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLmZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShcclxuICAgICAgICAgY29tcG9uZW50XHJcbiAgICAgICk7XHJcbiAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50PFQ+KFxyXG4gICAgICAgICBjb21wb25lbnRGYWN0b3J5LFxyXG4gICAgICAgICBpbmRleFxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gY29tcG9uZW50UmVmO1xyXG4gICB9XHJcbn1cclxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWNyZWF0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvc2luZ2xldG9ucy9jb21wb25lbnQtY3JlYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSixVQUFVLEVBR1osTUFBTSxlQUFlLENBQUM7O0FBR3ZCLE1BQU0sT0FBTyx1QkFBdUI7SUFDakMsWUFBNkIsZUFBeUM7UUFBekMsb0JBQWUsR0FBZixlQUFlLENBQTBCO1FBQ25FLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO0lBQzFDLENBQUM7SUFFRCxlQUFlLENBQ1osU0FBa0IsRUFDbEIsZ0JBQWtDLEVBQ2xDLFFBQTRCLFNBQVM7UUFFckMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLHVCQUF1QixDQUNsRSxTQUFTLENBQ1gsQ0FBQztRQUNGLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLGVBQWUsQ0FDbEQsZ0JBQWdCLEVBQ2hCLEtBQUssQ0FDUCxDQUFDO1FBQ0YsT0FBTyxZQUFZLENBQUM7SUFDdkIsQ0FBQzs7OEZBbEJTLHVCQUF1Qjs2RUFBdkIsdUJBQXVCLFdBQXZCLHVCQUF1Qjt1RkFBdkIsdUJBQXVCO2NBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgIEluamVjdGFibGUsXHJcbiAgIFR5cGUsXHJcbiAgIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ29tcG9uZW50Q3JlYXRvclNlcnZpY2Uge1xyXG4gICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XHJcbiAgICAgIHRoaXMuZmFjdG9yeVJlc29sdmVyID0gZmFjdG9yeVJlc29sdmVyO1xyXG4gICB9XHJcblxyXG4gICBhcHBlbmRDb21wb25lbnQ8VCA9IHVua25vd24+KFxyXG4gICAgICBjb21wb25lbnQ6IFR5cGU8VD4sXHJcbiAgICAgIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgIGluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcclxuICAgKSB7XHJcbiAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLmZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShcclxuICAgICAgICAgY29tcG9uZW50XHJcbiAgICAgICk7XHJcbiAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50PFQ+KFxyXG4gICAgICAgICBjb21wb25lbnRGYWN0b3J5LFxyXG4gICAgICAgICBpbmRleFxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gY29tcG9uZW50UmVmO1xyXG4gICB9XHJcbn1cclxuIl19

@@ -60,6 +60,6 @@ import { Injectable } from "@angular/core";

DragStateService.ɵfac = function DragStateService_Factory(t) { return new (t || DragStateService)(); };
DragStateService.ɵprov = i0.ɵɵdefineInjectable({ token: DragStateService, factory: DragStateService.ɵfac });
DragStateService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: DragStateService, factory: DragStateService.ɵfac });
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DragStateService, [{
type: Injectable
}], function () { return []; }, null); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9zaW5nbGV0b25zL2RyYWctc3RhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQVd2QyxNQUFNLE9BQU8sZ0JBQWdCO0lBVTFCO1FBQ0csSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBWSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELDJGQUEyRjtJQUNwRixRQUFRLENBQUMsTUFBbUIsRUFBRSxlQUFpQztRQUNuRSxJQUFJLENBQUMsU0FBUyxHQUFHO1lBQ2QsTUFBTSxFQUFFLE1BQU07WUFDZCxlQUFlLEVBQUUsZUFBZTtTQUNsQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCx1RkFBdUY7SUFDaEYsU0FBUztRQUNiLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxVQUFVLEVBQUU7WUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1NBQ3hFO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCx1R0FBdUc7SUFDaEcsWUFBWTtRQUNoQixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssV0FBVyxFQUFFO1lBQzdCLE1BQU0sSUFBSSxLQUFLLENBQ1osd0RBQXdELENBQzFELENBQUM7U0FDSjtRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsOEdBQThHO0lBQ3ZHLE9BQU87O1FBQ1gsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFdBQVcsRUFBRTtZQUM3QixNQUFNLElBQUksS0FBSyxDQUNaLDBEQUEwRCxDQUM1RCxDQUFDO1NBQ0o7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsYUFBTyxJQUFJLENBQUMsU0FBUywwQ0FBRSxNQUFNLENBQUM7SUFDakMsQ0FBQztJQUVELG1EQUFtRDtJQUM1QyxPQUFPO1FBQ1gsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7UUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxvREFBb0Q7SUFDN0MsT0FBTztRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN6QixDQUFDO0lBRUQsNkJBQTZCO0lBQ3RCLFFBQVE7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDckIsQ0FBQzs7Z0ZBeEVTLGdCQUFnQjt3REFBaEIsZ0JBQWdCLFdBQWhCLGdCQUFnQjt1RkFBaEIsZ0JBQWdCO2NBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHR5cGUgeyBCcmFuY2ggfSBmcm9tIFwiLi4vY2xhc3Nlcy9CcmFuY2hcIjtcclxuXHJcbmV4cG9ydCB0eXBlIERyYWdTdGF0ZSA9IFwiaWRsZVwiIHwgXCJkcmFnZ2luZ1wiIHwgXCJkcm9wcGFibGVcIiB8IFwiY2FwdHVyZWRcIjtcclxuXHJcbmludGVyZmFjZSBUZW1wRGF0YSB7XHJcbiAgIGJyYW5jaDogQnJhbmNoPGFueT47XHJcbiAgIHBhcmVudENvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRHJhZ1N0YXRlU2VydmljZSB7XHJcbiAgIC8qKiBwdXNoZXMgdGhlIG5ldyBzdGF0ZSB3aGVuZXZlciB0aGUgc3RhdGUgY2hhbmdlcyAqL1xyXG4gICBwdWJsaWMgc3RhdGUkOiBCZWhhdmlvclN1YmplY3Q8RHJhZ1N0YXRlPjtcclxuXHJcbiAgIC8qKiBob2xkcyBkYXRhIGFib3V0IHRoZSB0aGluZyBiZWluZyBkcmFnZ2VkICovXHJcbiAgIHByaXZhdGUgX3RlbXBEYXRhOiBUZW1wRGF0YSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgIC8qKiB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgZHJhZyBwcm9jZXNzICovXHJcbiAgIHByaXZhdGUgc3RhdGU6IERyYWdTdGF0ZTtcclxuXHJcbiAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICB0aGlzLnN0YXRlID0gXCJpZGxlXCI7XHJcbiAgICAgIHRoaXMuc3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEcmFnU3RhdGU+KHRoaXMuc3RhdGUpO1xyXG4gICB9XHJcblxyXG4gICAvKiogQ2FsbGVkIHRvIGluZGljYXRlIHRoYXQgc29tZXRoaW5nIGlzIGJlaW5nIGRyYWdnZWQuIFN0b3JlcyB0aGF0IHNvbWV0aGluZyBmb3IgbGF0ZXIuICovXHJcbiAgIHB1YmxpYyBkcmFnZ2luZyhicmFuY2g6IEJyYW5jaDxhbnk+LCBwYXJlbnRDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYpIHtcclxuICAgICAgdGhpcy5fdGVtcERhdGEgPSB7XHJcbiAgICAgICAgIGJyYW5jaDogYnJhbmNoLFxyXG4gICAgICAgICBwYXJlbnRDb250YWluZXI6IHBhcmVudENvbnRhaW5lclxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLnN0YXRlID0gXCJkcmFnZ2luZ1wiO1xyXG4gICAgICB0aGlzLnN0YXRlJC5uZXh0KHRoaXMuc3RhdGUpO1xyXG4gICB9XHJcblxyXG4gICAvKiogQ2FsbGVkIHRvIGluZGljYXRlIHRoYXQgdGhlcmUgaXMgYSB2YWxpZCBhY3RpdmUgZHJvcCB6b25lLiBEcm9wIGlzIG5vdyBwb3NzaWJsZS4gKi9cclxuICAgcHVibGljIGRyb3BwYWJsZSgpIHtcclxuICAgICAgaWYgKHRoaXMuc3RhdGUgIT09IFwiZHJhZ2dpbmdcIikge1xyXG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW4gb25seSBjYWxsIGBkcm9wcGFibGVgIHdoZW4gc3RhdGUgaXMgYGRyYWdnaW5nYFwiKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0YXRlID0gXCJkcm9wcGFibGVcIjtcclxuICAgICAgdGhpcy5zdGF0ZSQubmV4dCh0aGlzLnN0YXRlKTtcclxuICAgfVxyXG5cclxuICAgLyoqIENhbGxlZCB0byBpbmRpY2F0ZSB0aGF0IHRoZXJlIGlzIG5vIGxvbmdlciBhIHZhbGlkIGFjdGl2ZSBkcm9wIHpvbmUuIERyb3AgaXMgbm8gbG9uZ2VyIHBvc3NpYmxlLiAqL1xyXG4gICBwdWJsaWMgbm90RHJvcHBhYmxlKCkge1xyXG4gICAgICBpZiAodGhpcy5zdGF0ZSAhPT0gXCJkcm9wcGFibGVcIikge1xyXG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICAgIFwiQ2FuIG9ubHkgY2FsbCBgbm90RHJvcHBhYmxlYCB3aGVuIHN0YXRlIGlzIGBkcm9wcGFibGVgXCJcclxuICAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0YXRlID0gXCJkcmFnZ2luZ1wiO1xyXG4gICAgICB0aGlzLnN0YXRlJC5uZXh0KHRoaXMuc3RhdGUpO1xyXG4gICB9XHJcblxyXG4gICAvKiogQ2FsbGVkIHRvIGluZGljYXRlIHRoYXQgYSBkcm9wIGludG8gYSB2YWxpZCBkcm9wIHpvbmUgaGFzIG9jY3VycmVkLiBSZXR1cm5zIHRoZSBpdGVtIHRoYXQgd2FzIGRyb3BwZWQuICAqL1xyXG4gICBwdWJsaWMgY2FwdHVyZSgpIHtcclxuICAgICAgaWYgKHRoaXMuc3RhdGUgIT09IFwiZHJvcHBhYmxlXCIpIHtcclxuICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgICBcIkNhbiBvbmx5IG1vdmUgdG8gYGNhcHR1cmVkYCBzdGF0ZSBmcm9tIGBkcm9wcGFibGVgIHN0YXRlXCJcclxuICAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0YXRlID0gXCJjYXB0dXJlZFwiO1xyXG4gICAgICB0aGlzLnN0YXRlJC5uZXh0KHRoaXMuc3RhdGUpO1xyXG4gICAgICByZXR1cm4gdGhpcy5fdGVtcERhdGE/LmJyYW5jaDtcclxuICAgfVxyXG5cclxuICAgLyoqIENhbGxlZCB0byByZXNldCB0aGUgc2VydmljZSBmb3IgZnV0dXJlIGRyYWdzICovXHJcbiAgIHB1YmxpYyByZWxlYXNlKCkge1xyXG4gICAgICB0aGlzLl90ZW1wRGF0YSA9IHVuZGVmaW5lZDtcclxuICAgICAgdGhpcy5zdGF0ZSA9IFwiaWRsZVwiO1xyXG4gICAgICB0aGlzLnN0YXRlJC5uZXh0KHRoaXMuc3RhdGUpO1xyXG4gICB9XHJcblxyXG4gICAvKiogZ2V0cyB0aGUgY3VycmVudCB0aGluZyBiZWluZyBkcmFnZ2VkLCBpZiBhbnkuICovXHJcbiAgIHB1YmxpYyBnZXREYXRhKCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fdGVtcERhdGE7XHJcbiAgIH1cclxuXHJcbiAgIC8qKiBnZXRzIHRoZSBjdXJyZW50IHN0YXRlICovXHJcbiAgIHB1YmxpYyBnZXRTdGF0ZSgpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc3RhdGU7XHJcbiAgIH1cclxufVxyXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9zaW5nbGV0b25zL2RyYWctc3RhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQVd2QyxNQUFNLE9BQU8sZ0JBQWdCO0lBVTFCO1FBQ0csSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBWSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELDJGQUEyRjtJQUNwRixRQUFRLENBQUMsTUFBbUIsRUFBRSxlQUFpQztRQUNuRSxJQUFJLENBQUMsU0FBUyxHQUFHO1lBQ2QsTUFBTSxFQUFFLE1BQU07WUFDZCxlQUFlLEVBQUUsZUFBZTtTQUNsQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCx1RkFBdUY7SUFDaEYsU0FBUztRQUNiLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxVQUFVLEVBQUU7WUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1NBQ3hFO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCx1R0FBdUc7SUFDaEcsWUFBWTtRQUNoQixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssV0FBVyxFQUFFO1lBQzdCLE1BQU0sSUFBSSxLQUFLLENBQ1osd0RBQXdELENBQzFELENBQUM7U0FDSjtRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsOEdBQThHO0lBQ3ZHLE9BQU87O1FBQ1gsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFdBQVcsRUFBRTtZQUM3QixNQUFNLElBQUksS0FBSyxDQUNaLDBEQUEwRCxDQUM1RCxDQUFDO1NBQ0o7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsT0FBTyxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBRUQsbURBQW1EO0lBQzVDLE9BQU87UUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELG9EQUFvRDtJQUM3QyxPQUFPO1FBQ1gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3pCLENBQUM7SUFFRCw2QkFBNkI7SUFDdEIsUUFBUTtRQUNaLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNyQixDQUFDOztnRkF4RVMsZ0JBQWdCO3NFQUFoQixnQkFBZ0IsV0FBaEIsZ0JBQWdCO3VGQUFoQixnQkFBZ0I7Y0FENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgdHlwZSB7IEJyYW5jaCB9IGZyb20gXCIuLi9jbGFzc2VzL0JyYW5jaFwiO1xyXG5cclxuZXhwb3J0IHR5cGUgRHJhZ1N0YXRlID0gXCJpZGxlXCIgfCBcImRyYWdnaW5nXCIgfCBcImRyb3BwYWJsZVwiIHwgXCJjYXB0dXJlZFwiO1xyXG5cclxuaW50ZXJmYWNlIFRlbXBEYXRhIHtcclxuICAgYnJhbmNoOiBCcmFuY2g8YW55PjtcclxuICAgcGFyZW50Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBEcmFnU3RhdGVTZXJ2aWNlIHtcclxuICAgLyoqIHB1c2hlcyB0aGUgbmV3IHN0YXRlIHdoZW5ldmVyIHRoZSBzdGF0ZSBjaGFuZ2VzICovXHJcbiAgIHB1YmxpYyBzdGF0ZSQ6IEJlaGF2aW9yU3ViamVjdDxEcmFnU3RhdGU+O1xyXG5cclxuICAgLyoqIGhvbGRzIGRhdGEgYWJvdXQgdGhlIHRoaW5nIGJlaW5nIGRyYWdnZWQgKi9cclxuICAgcHJpdmF0ZSBfdGVtcERhdGE6IFRlbXBEYXRhIHwgdW5kZWZpbmVkO1xyXG5cclxuICAgLyoqIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBkcmFnIHByb2Nlc3MgKi9cclxuICAgcHJpdmF0ZSBzdGF0ZTogRHJhZ1N0YXRlO1xyXG5cclxuICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgIHRoaXMuc3RhdGUgPSBcImlkbGVcIjtcclxuICAgICAgdGhpcy5zdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERyYWdTdGF0ZT4odGhpcy5zdGF0ZSk7XHJcbiAgIH1cclxuXHJcbiAgIC8qKiBDYWxsZWQgdG8gaW5kaWNhdGUgdGhhdCBzb21ldGhpbmcgaXMgYmVpbmcgZHJhZ2dlZC4gU3RvcmVzIHRoYXQgc29tZXRoaW5nIGZvciBsYXRlci4gKi9cclxuICAgcHVibGljIGRyYWdnaW5nKGJyYW5jaDogQnJhbmNoPGFueT4sIHBhcmVudENvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikge1xyXG4gICAgICB0aGlzLl90ZW1wRGF0YSA9IHtcclxuICAgICAgICAgYnJhbmNoOiBicmFuY2gsXHJcbiAgICAgICAgIHBhcmVudENvbnRhaW5lcjogcGFyZW50Q29udGFpbmVyXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuc3RhdGUgPSBcImRyYWdnaW5nXCI7XHJcbiAgICAgIHRoaXMuc3RhdGUkLm5leHQodGhpcy5zdGF0ZSk7XHJcbiAgIH1cclxuXHJcbiAgIC8qKiBDYWxsZWQgdG8gaW5kaWNhdGUgdGhhdCB0aGVyZSBpcyBhIHZhbGlkIGFjdGl2ZSBkcm9wIHpvbmUuIERyb3AgaXMgbm93IHBvc3NpYmxlLiAqL1xyXG4gICBwdWJsaWMgZHJvcHBhYmxlKCkge1xyXG4gICAgICBpZiAodGhpcy5zdGF0ZSAhPT0gXCJkcmFnZ2luZ1wiKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbiBvbmx5IGNhbGwgYGRyb3BwYWJsZWAgd2hlbiBzdGF0ZSBpcyBgZHJhZ2dpbmdgXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RhdGUgPSBcImRyb3BwYWJsZVwiO1xyXG4gICAgICB0aGlzLnN0YXRlJC5uZXh0KHRoaXMuc3RhdGUpO1xyXG4gICB9XHJcblxyXG4gICAvKiogQ2FsbGVkIHRvIGluZGljYXRlIHRoYXQgdGhlcmUgaXMgbm8gbG9uZ2VyIGEgdmFsaWQgYWN0aXZlIGRyb3Agem9uZS4gRHJvcCBpcyBubyBsb25nZXIgcG9zc2libGUuICovXHJcbiAgIHB1YmxpYyBub3REcm9wcGFibGUoKSB7XHJcbiAgICAgIGlmICh0aGlzLnN0YXRlICE9PSBcImRyb3BwYWJsZVwiKSB7XHJcbiAgICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgICAgXCJDYW4gb25seSBjYWxsIGBub3REcm9wcGFibGVgIHdoZW4gc3RhdGUgaXMgYGRyb3BwYWJsZWBcIlxyXG4gICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RhdGUgPSBcImRyYWdnaW5nXCI7XHJcbiAgICAgIHRoaXMuc3RhdGUkLm5leHQodGhpcy5zdGF0ZSk7XHJcbiAgIH1cclxuXHJcbiAgIC8qKiBDYWxsZWQgdG8gaW5kaWNhdGUgdGhhdCBhIGRyb3AgaW50byBhIHZhbGlkIGRyb3Agem9uZSBoYXMgb2NjdXJyZWQuIFJldHVybnMgdGhlIGl0ZW0gdGhhdCB3YXMgZHJvcHBlZC4gICovXHJcbiAgIHB1YmxpYyBjYXB0dXJlKCkge1xyXG4gICAgICBpZiAodGhpcy5zdGF0ZSAhPT0gXCJkcm9wcGFibGVcIikge1xyXG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICAgIFwiQ2FuIG9ubHkgbW92ZSB0byBgY2FwdHVyZWRgIHN0YXRlIGZyb20gYGRyb3BwYWJsZWAgc3RhdGVcIlxyXG4gICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RhdGUgPSBcImNhcHR1cmVkXCI7XHJcbiAgICAgIHRoaXMuc3RhdGUkLm5leHQodGhpcy5zdGF0ZSk7XHJcbiAgICAgIHJldHVybiB0aGlzLl90ZW1wRGF0YT8uYnJhbmNoO1xyXG4gICB9XHJcblxyXG4gICAvKiogQ2FsbGVkIHRvIHJlc2V0IHRoZSBzZXJ2aWNlIGZvciBmdXR1cmUgZHJhZ3MgKi9cclxuICAgcHVibGljIHJlbGVhc2UoKSB7XHJcbiAgICAgIHRoaXMuX3RlbXBEYXRhID0gdW5kZWZpbmVkO1xyXG4gICAgICB0aGlzLnN0YXRlID0gXCJpZGxlXCI7XHJcbiAgICAgIHRoaXMuc3RhdGUkLm5leHQodGhpcy5zdGF0ZSk7XHJcbiAgIH1cclxuXHJcbiAgIC8qKiBnZXRzIHRoZSBjdXJyZW50IHRoaW5nIGJlaW5nIGRyYWdnZWQsIGlmIGFueS4gKi9cclxuICAgcHVibGljIGdldERhdGEoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl90ZW1wRGF0YTtcclxuICAgfVxyXG5cclxuICAgLyoqIGdldHMgdGhlIGN1cnJlbnQgc3RhdGUgKi9cclxuICAgcHVibGljIGdldFN0YXRlKCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zdGF0ZTtcclxuICAgfVxyXG59XHJcbiJdfQ==

@@ -133,6 +133,6 @@ import { Injectable } from "@angular/core";

GlobalEventsService.ɵfac = function GlobalEventsService_Factory(t) { return new (t || GlobalEventsService)(i0.ɵɵinject(i0.NgZone)); };
GlobalEventsService.ɵprov = i0.ɵɵdefineInjectable({ token: GlobalEventsService, factory: GlobalEventsService.ɵfac });
GlobalEventsService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: GlobalEventsService, factory: GlobalEventsService.ɵfac });
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GlobalEventsService, [{
type: Injectable
}], function () { return [{ type: i0.NgZone }]; }, null); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWV2ZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9zaW5nbGV0b25zL2dsb2JhbC1ldmVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQTRCLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRXRELFNBQVMsZUFBZSxDQUFDLE9BQW9COztJQUMxQyxNQUFNLEtBQUssR0FBRyxlQUFlLENBQUM7SUFDOUIsTUFBTSxPQUFPLEdBQUcsQ0FDYixLQUF5QixFQUN6QixVQUE4QixFQUNYLEVBQUU7UUFDckIsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFO1lBQzlDLE9BQU8sVUFBVSxDQUFDO1NBQ3BCO1FBQ0QsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUMsQ0FBQztJQUVGLE1BQU0sS0FBSyxHQUFHLENBQUMsS0FBa0IsRUFBRSxJQUFZLEVBQUUsRUFBRSxDQUNoRCxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFrQixFQUFFLEVBQUUsQ0FDckMsS0FBSyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUM7UUFDeEIsS0FBSyxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUM7UUFDMUIsS0FBSyxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztJ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LElBQUksb0JBQW9CLElBQUksYUFBYSxFQUFFO29CQUMvQyxNQUFNLFNBQVMsR0FBRyxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsR0FBRyxjQUFjLENBQUM7b0JBQzVELFdBQVcsR0FBRyxjQUFjLEdBQUcsT0FBTyxHQUFHLFNBQVMsQ0FBQztpQkFDckQ7cUJBQU07b0JBQ0osT0FBTztpQkFDVDtnQkFDRCxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxXQUFXLEtBQUssY0FBYyxFQUFFO29CQUNqQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7b0JBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO29CQUN0QixZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3BCLEtBQUssR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO3dCQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztvQkFDMUIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2lCQUNWO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDVCxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFTSxlQUFlO1FBQ25CLElBQUksSUFBSSxDQUFDLHNCQUFzQixLQUFLLFNBQVMsRUFBRTtZQUM1QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDNUM7SUFDSixDQUFDOztzRkFsSFMsbUJBQW1COzJEQUFuQixtQkFBbUIsV0FBbkIsbUJBQW1CO3VGQUFuQixtQkFBbUI7Y0FEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgZmlsdGVyLCB0aHJvdHRsZVRpbWUgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbmZ1bmN0aW9uIGdldFNjcm9sbFBhcmVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50IHtcclxuICAgY29uc3QgcmVnZXggPSAvKGF1dG98c2Nyb2xsKS87XHJcbiAgIGNvbnN0IHBhcmVudHMgPSAoXHJcbiAgICAgIF9ub2RlOiBIVE1MRWxlbWVudCB8IG51bGwsXHJcbiAgICAgIHBhcmVudExpc3Q6IEFycmF5PEhUTUxFbGVtZW50PlxyXG4gICApOiBBcnJheTxIVE1MRWxlbWVudD4gPT4ge1xyXG4gICAgICBpZiAoX25vZGUgPT09IG51bGwgfHwgX25vZGUucGFyZW50Tm9kZSA9PT0gbnVsbCkge1xyXG4gICAgICAgICByZXR1cm4gcGFyZW50TGlzdDtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gcGFyZW50cyhfbm9kZS5wYXJlbnRFbGVtZW50LCBwYXJlbnRMaXN0LmNvbmNhdChbX25vZGVdKSk7XHJcbiAgIH07XHJcblxyXG4gICBjb25zdCBzdHlsZSA9IChfbm9kZTogSFRNTEVsZW1lbnQsIHByb3A6IHN0cmluZykgPT5cclxuICAgICAgZ2V0Q29tcHV0ZWRTdHlsZShfbm9kZSwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShwcm9wKTtcclxuICAgY29uc3Qgb3ZlcmZsb3cgPSAoX25vZGU6IEhUTUxFbGVtZW50KSA9PlxyXG4gICAgICBzdHlsZShfbm9kZSwgXCJvdmVyZmxvd1wiKSArXHJcbiAgICAgIHN0eWxlKF9ub2RlLCBcIm92ZXJmbG93LXlcIikgK1xyXG4gICAgICBzdHlsZShfbm9kZSwgXCJvdmVyZmxvdy14XCIpO1xyXG4gICBjb25zdCBzY3JvbGwgPSAoX25vZGU6IEhUTUxFbGVtZW50KSA9PiByZWdleC50ZXN0KG92ZXJmbG93KF9ub2RlKSk7XHJcblxyXG4gICBjb25zdCBwYXJlbnRMaXN0ID0gcGFyZW50cyhlbGVtZW50LnBhcmVudEVsZW1lbnQsIFtdKTtcclxuICAgZm9yIChjb25zdCBwYXJlbnQgb2YgcGFyZW50TGlzdCkge1xyXG4gICAgICBpZiAoc2Nyb2xsKHBhcmVudCkpIHtcclxuICAgICAgICAgcmV0dXJuIHBhcmVudDtcclxuICAgICAgfVxyXG4gICB9XHJcbiAgIHJldHVybiAoXHJcbiAgICAgIChkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50IGFzIEhUTUxFbGVtZW50KSA/PyBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRcclxuICAgKTtcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgR2xvYmFsRXZlbnRzU2VydmljZSB7XHJcbiAgIHByaXZhdGUgZ2xvYmFsRHJhZyQ6IE9ic2VydmFibGU8RHJhZ0V2ZW50PiB8IHVuZGVmaW5lZDtcclxuICAgcHJpdmF0ZSBnbG9iYWxEcmFnU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XHJcbiAgIHB1YmxpYyBzY3JvbGxpbmc6IGJvb2xlYW47XHJcblxyXG4gICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lKSB7XHJcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAgdGhpcy5nbG9iYWxEcmFnJCA9IGZyb21FdmVudDxEcmFnRXZlbnQ+KGRvY3VtZW50LCBcImRyYWdcIik7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNjcm9sbGluZyA9IGZhbHNlO1xyXG4gICB9XHJcblxyXG4gICBwdWJsaWMgYWRkU2Nyb2xsaW5nKCkge1xyXG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgIGlmICh0aGlzLmdsb2JhbERyYWdTdWJzY3JpcHRpb24gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgIH1cclxuICAgICAgICAgaWYgKHRoaXMuZ2xvYmFsRHJhZyQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZCBub3QgZ2V0IG9ic2VydmFibGVcIik7XHJcbiAgICAgICAgIH1cclxuICAgICAgICAgbGV0IHZpZXdQb3J0SGVpZ2h0OiBudW1iZXI7XHJcbiAgICAgICAgIGxldCBzY3JvbGxBcmVhU2l6ZTogbnVtYmVyO1xyXG4gICAgICAgICBsZXQgZWRnZVRvcDogbnVtYmVyO1xyXG4gICAgICAgICBsZXQgZWRnZUJvdHRvbTogbnVtYmVyO1xyXG4gICAgICAgICBsZXQgaXNJblRvcFNjcm9sbEFyZWE6IGJvb2xlYW47XHJcbiAgICAgICAgIGxldCBpc0luQm90dG9tU2Nyb2xsQXJlYTogYm9vbGVhbjtcclxuICAgICAgICAgbGV0IHRpbWVyOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcclxuICAgICAgICAgbGV0IHNjcm9sbGFibGVEaXY6IEhUTUxFbGVtZW50IHwgbnVsbDtcclxuICAgICAgICAgbGV0IHJlbGF0aXZlWTogbnVtYmVyO1xyXG4gICAgICAgICB0aGlzLmdsb2JhbERyYWdTdWJzY3JpcHRpb24gPSB0aGlzLmdsb2JhbERyYWckXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICB0aHJvdHRsZVRpbWUoMjUpLFxyXG4gICAgICAgICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmICghZXZlbnQudGFyZ2V0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBzY3JvbGxhYmxlRGl2ID0gZ2V0U2Nyb2xsUGFyZW50KGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XHJcbiAgICAgICAgICAgICAgICAgIHZpZXdQb3J0SGVpZ2h0ID0gc2Nyb2xsYWJsZURpdi5jbGllbnRIZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHZpZXdQb3J0V2lkdGggPSBzY3JvbGxhYmxlRGl2LmNsaWVudFdpZHRoO1xyXG4gICAgICAgICAgICAgICAgICBsZXQgcmVsYXRpdmVYOiBudW1iZXI7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgd2luZG93XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRDb21wdXRlZFN0eWxlKHNjcm9sbGFibGVEaXYpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRQcm9wZXJ0eVZhbHVlKFwicG9zaXRpb25cIilcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnRvTG93ZXJDYXNlKCkgPT09IFwiZml4ZWRcIlxyXG4gICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVYID0gZXZlbnQuY2xpZW50WDtcclxuICAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVZID0gZXZlbnQuY2xpZW50WTtcclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgY29uc3QgYm91bmRpbmdSZWN0ID0gc2Nyb2xsYWJsZURpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2Nyb2xsYWJsZURpdkFuY2VzdG9yID0gZ2V0U2Nyb2xsUGFyZW50KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxhYmxlRGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlWCA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmNsaWVudFggLVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoYm91bmRpbmdSZWN0LmxlZnQgKyBzY3JvbGxhYmxlRGl2QW5jZXN0b3Iuc2Nyb2xsTGVmdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlWSA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LmNsaWVudFkgLVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoYm91bmRpbmdSZWN0LnRvcCArIHNjcm9sbGFibGVEaXZBbmNlc3Rvci5zY3JvbGxUb3ApO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVYIDwgMCB8fFxyXG4gICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVggPiB2aWV3UG9ydFdpZHRoIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlWSA8IDAgfHxcclxuICAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVZID4gdmlld1BvcnRIZWlnaHRcclxuICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgIC8vT3V0c2lkZSBvZiBzY3JvbGxhYmxlIGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgc2Nyb2xsQXJlYVNpemUgPSBNYXRoLm1heCh2aWV3UG9ydEhlaWdodCAqIDAuMSwgMTAwKTtcclxuICAgICAgICAgICAgICAgICAgZWRnZVRvcCA9IHNjcm9sbEFyZWFTaXplO1xyXG4gICAgICAgICAgICAgICAgICBlZGdlQm90dG9tID0gdmlld1BvcnRIZWlnaHQgLSBzY3JvbGxBcmVhU2l6ZTtcclxuICAgICAgICAgICAgICAgICAgaXNJblRvcFNjcm9sbEFyZWEgPSByZWxhdGl2ZVkgPCBlZGdlVG9wO1xyXG4gICAgICAgICAgICAgICAgICBpc0luQm90dG9tU2Nyb2xsQXJlYSA9IHJlbGF0aXZlWSA+IGVkZ2VCb3R0b207XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBpc0luVG9wU2Nyb2xsQXJlYSB8fCBpc0luQm90dG9tU2Nyb2xsQXJlYTtcclxuICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgaWYgKHNjcm9sbGFibGVEaXYgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IHNjcm9sbGFibGVEaXYuc2Nyb2xsSGVpZ2h0O1xyXG4gICAgICAgICAgICAgICBjb25zdCBtYXhTY3JvbGxZID0gaGVpZ2h0IC0gdmlld1BvcnRIZWlnaHQ7XHJcbiAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTY3JvbGxZID0gc2Nyb2xsYWJsZURpdi5zY3JvbGxUb3A7XHJcbiAgICAgICAgICAgICAgIGNvbnN0IGNhblNjcm9sbFVwID0gY3VycmVudFNjcm9sbFkgPiAwO1xyXG4gICAgICAgICAgICAgICBjb25zdCBjYW5TY3JvbGxEb3duID0gY3VycmVudFNjcm9sbFkgPCBtYXhTY3JvbGxZO1xyXG4gICAgICAgICAgICAgICBsZXQgbmV4dFNjcm9sbFk6IG51bWJlcjtcclxuICAgICAgICAgICAgICAgY29uc3QgbWF4U3RlcCA9IDc1O1xyXG4gICAgICAgICAgICAgICBpZiAoaXNJblRvcFNjcm9sbEFyZWEgJiYgY2FuU2Nyb2xsVXApIHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgaW50ZW5zaXR5ID0gKGVkZ2VUb3AgLSByZWxhdGl2ZVkpIC8gc2Nyb2xsQXJlYVNpemU7XHJcbiAgICAgICAgICAgICAgICAgIG5leHRTY3JvbGxZID0gY3VycmVudFNjcm9sbFkgLSBtYXhTdGVwICogaW50ZW5zaXR5O1xyXG4gICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzSW5Cb3R0b21TY3JvbGxBcmVhICYmIGNhblNjcm9sbERvd24pIHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgaW50ZW5zaXR5ID0gKHJlbGF0aXZlWSAtIGVkZ2VCb3R0b20pIC8gc2Nyb2xsQXJlYVNpemU7XHJcbiAgICAgICAgICAgICAgICAgIG5leHRTY3JvbGxZID0gY3VycmVudFNjcm9sbFkgKyBtYXhTdGVwICogaW50ZW5zaXR5O1xyXG4gICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgbmV4dFNjcm9sbFkgPSBNYXRoLm1heCgwLCBNYXRoLm1pbihtYXhTY3JvbGxZLCBuZXh0U2Nyb2xsWSkpO1xyXG4gICAgICAgICAgICAgICBpZiAobmV4dFNjcm9sbFkgIT09IGN1cnJlbnRTY3JvbGxZKSB7XHJcbiAgICAgICAgICAgICAgICAgIHNjcm9sbGFibGVEaXYuc2Nyb2xsVG8oeyB0b3A6IG5leHRTY3JvbGxZIH0pO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7XHJcbiAgICAgICAgICAgICAgICAgIHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICB9XHJcblxyXG4gICBwdWJsaWMgcmVtb3ZlU2Nyb2xsaW5nKCkge1xyXG4gICAgICBpZiAodGhpcy5nbG9iYWxEcmFnU3Vic2NyaXB0aW9uICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgdGhpcy5nbG9iYWxEcmFnU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIH1cclxuICAgfVxyXG59XHJcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWV2ZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9zaW5nbGV0b25zL2dsb2JhbC1ldmVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQTRCLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRXRELFNBQVMsZUFBZSxDQUFDLE9BQW9COztJQUMxQyxNQUFNLEtBQUssR0FBRyxlQUFlLENBQUM7SUFDOUIsTUFBTSxPQUFPLEdBQUcsQ0FDYixLQUF5QixFQUN6QixVQUE4QixFQUNYLEVBQUU7UUFDckIsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFO1lBQzlDLE9BQU8sVUFBVSxDQUFDO1NBQ3BCO1FBQ0QsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUMsQ0FBQztJQUVGLE1BQU0sS0FBSyxHQUFHLENBQUMsS0FBa0IsRUFBRSxJQUFZLEVBQUUsRUFBRSxDQUNoRCxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFrQixFQUFFLEVBQUUsQ0FDckMsS0FBSyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUM7UUFDeEIsS0FBSyxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUM7UUFDMUIsS0FBSyxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztJQUM5QixNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFFbkUsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEQsS0FBSyxNQUFNLE1BQU0sSUFBSSxVQUFVLEVBQUU7UUFDOUIsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDakIsT0FBTyxNQUFNLENBQUM7U0FDaEI7S0FDSDtJQUNELE9BQU8sQ0FDSixNQUFDLFFBQVEsQ0FBQyxnQkFBZ0MsbUNBQUksUUFBUSxDQUFDLGVBQWUsQ0FDeEUsQ0FBQztBQUNMLENBQUM7QUFHRCxNQUFNLE9BQU8sbUJBQW1CO0lBSzdCLFlBQTZCLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFZLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFTSxZQUFZO1FBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQ2hDLElBQUksSUFBSSxDQUFDLHNCQUFzQixLQUFLLFNBQVMsRUFBRTtnQkFDNUMsT0FBTzthQUNUO1lBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRTtnQkFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO2FBQzlDO1lBQ0QsSUFBSSxjQUFzQixDQUFDO1lBQzNCLElBQUksY0FBc0IsQ0FBQztZQUMzQixJQUFJLE9BQWUsQ0FBQztZQUNwQixJQUFJLFVBQWtCLENBQUM7WUFDdkIsSUFBSSxpQkFBMEIsQ0FBQztZQUMvQixJQUFJLG9CQUE2QixDQUFDO1lBQ2xDLElBQUksS0FBb0MsQ0FBQztZQUN6QyxJQUFJLGFBQWlDLENBQUM7WUFDdEMsSUFBSSxTQUFpQixDQUFDO1lBQ3RCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsV0FBVztpQkFDMUMsSUFBSSxDQUNGLFlBQVksQ0FBQyxFQUFFLENBQUMsRUFDaEIsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7b0JBQ2hCLE9BQU8sS0FBSyxDQUFDO2lCQUNmO2dCQUNELGFBQWEsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQXFCLENBQUMsQ0FBQztnQkFDN0QsY0FBYyxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUM7Z0JBQzVDLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUM7Z0JBQ2hELElBQUksU0FBaUIsQ0FBQztnQkFDdEIsSUFDRyxNQUFNO3FCQUNGLGdCQUFnQixDQUFDLGFBQWEsQ0FBQztxQkFDL0IsZ0JBQWdCLENBQUMsVUFBVSxDQUFDO3FCQUM1QixXQUFXLEVBQUUsS0FBSyxPQUFPLEVBQzlCO29CQUNDLFNBQVMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO29CQUMxQixTQUFTLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztpQkFDNUI7cUJBQU07b0JBQ0osTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7b0JBQzNELE1BQU0scUJBQXFCLEdBQUcsZUFBZSxDQUMxQyxhQUFhLENBQ2YsQ0FBQztvQkFDRixTQUFTO3dCQUNOLEtBQUssQ0FBQyxPQUFPOzRCQUNiLENBQUMsWUFBWSxDQUFDLElBQUksR0FBRyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDMUQsU0FBUzt3QkFDTixLQUFLLENBQUMsT0FBTzs0QkFDYixDQUFDLFlBQVksQ0FBQyxHQUFHLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQzFEO2dCQUNELElBQ0csU0FBUyxHQUFHLENBQUM7b0JBQ2IsU0FBUyxHQUFHLGFBQWE7b0JBQ3pCLFNBQVMsR0FBRyxDQUFDO29CQUNiLFNBQVMsR0FBRyxjQUFjLEVBQzNCO29CQUNDLDJCQUEyQjtvQkFDM0IsT0FBTyxLQUFLLENBQUM7aUJBQ2Y7Z0JBQ0QsY0FBYyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDckQsT0FBTyxHQUFHLGNBQWMsQ0FBQztnQkFDekIsVUFBVSxHQUFHLGNBQWMsR0FBRyxjQUFjLENBQUM7Z0JBQzdDLGlCQUFpQixHQUFHLFNBQVMsR0FBRyxPQUFPLENBQUM7Z0JBQ3hDLG9CQUFvQixHQUFHLFNBQVMsR0FBRyxVQUFVLENBQUM7Z0JBQzlDLE9BQU8saUJBQWlCLElBQUksb0JBQW9CLENBQUM7WUFDcEQsQ0FBQyxDQUFDLENBQ0o7aUJBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDYixJQUFJLGFBQWEsS0FBSyxJQUFJLEVBQUU7b0JBQ3pCLE9BQU87aUJBQ1Q7Z0JBQ0QsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQztnQkFDMUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxHQUFHLGNBQWMsQ0FBQztnQkFDM0MsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQztnQkFDL0MsTUFBTSxXQUFXLEdBQUcsY0FBYyxHQUFHLENBQUMsQ0FBQztnQkFDdkMsTUFBTSxhQUFhLEdBQUcsY0FBYyxHQUFHLFVBQVUsQ0FBQztnQkFDbEQsSUFBSSxXQUFtQixDQUFDO2dCQUN4QixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7Z0JBQ25CLElBQUksaUJBQWlCLElBQUksV0FBVyxFQUFFO29CQUNuQyxNQUFNLFNBQVMsR0FBRyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxjQUFjLENBQUM7b0JBQ3pELFdBQVcsR0FBRyxjQUFjLEdBQUcsT0FBTyxHQUFHLFNBQVMsQ0FBQztpQkFDckQ7cUJBQU0sSUFBSSxvQkFBb0IsSUFBSSxhQUFhLEVBQUU7b0JBQy9DLE1BQU0sU0FBUyxHQUFHLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxHQUFHLGNBQWMsQ0FBQztvQkFDNUQsV0FBVyxHQUFHLGNBQWMsR0FBRyxPQUFPLEdBQUcsU0FBUyxDQUFDO2lCQUNyRDtxQkFBTTtvQkFDSixPQUFPO2lCQUNUO2dCQUNELFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUM3RCxJQUFJLFdBQVcsS0FBSyxjQUFjLEVBQUU7b0JBQ2pDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztvQkFDN0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7b0JBQ3RCLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDcEIsS0FBSyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7d0JBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO29CQUMxQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7aUJBQ1Y7WUFDSixDQUFDLENBQUMsQ0FBQztRQUNULENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVNLGVBQWU7UUFDbkIsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEtBQUssU0FBUyxFQUFFO1lBQzVDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUM1QztJQUNKLENBQUM7O3NGQWxIUyxtQkFBbUI7eUVBQW5CLG1CQUFtQixXQUFuQixtQkFBbUI7dUZBQW5CLG1CQUFtQjtjQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgZnJvbUV2ZW50LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIHRocm90dGxlVGltZSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuZnVuY3Rpb24gZ2V0U2Nyb2xsUGFyZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnQge1xyXG4gICBjb25zdCByZWdleCA9IC8oYXV0b3xzY3JvbGwpLztcclxuICAgY29uc3QgcGFyZW50cyA9IChcclxuICAgICAgX25vZGU6IEhUTUxFbGVtZW50IHwgbnVsbCxcclxuICAgICAgcGFyZW50TGlzdDogQXJyYXk8SFRNTEVsZW1lbnQ+XHJcbiAgICk6IEFycmF5PEhUTUxFbGVtZW50PiA9PiB7XHJcbiAgICAgIGlmIChfbm9kZSA9PT0gbnVsbCB8fCBfbm9kZS5wYXJlbnROb2RlID09PSBudWxsKSB7XHJcbiAgICAgICAgIHJldHVybiBwYXJlbnRMaXN0O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBwYXJlbnRzKF9ub2RlLnBhcmVudEVsZW1lbnQsIHBhcmVudExpc3QuY29uY2F0KFtfbm9kZV0pKTtcclxuICAgfTtcclxuXHJcbiAgIGNvbnN0IHN0eWxlID0gKF9ub2RlOiBIVE1MRWxlbWVudCwgcHJvcDogc3RyaW5nKSA9PlxyXG4gICAgICBnZXRDb21wdXRlZFN0eWxlKF9ub2RlLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKHByb3ApO1xyXG4gICBjb25zdCBvdmVyZmxvdyA9IChfbm9kZTogSFRNTEVsZW1lbnQpID0+XHJcbiAgICAgIHN0eWxlKF9ub2RlLCBcIm92ZXJmbG93XCIpICtcclxuICAgICAgc3R5bGUoX25vZGUsIFwib3ZlcmZsb3cteVwiKSArXHJcbiAgICAgIHN0eWxlKF9ub2RlLCBcIm92ZXJmbG93LXhcIik7XHJcbiAgIGNvbnN0IHNjcm9sbCA9IChfbm9kZTogSFRNTEVsZW1lbnQpID0+IHJlZ2V4LnRlc3Qob3ZlcmZsb3coX25vZGUpKTtcclxuXHJcbiAgIGNvbnN0IHBhcmVudExpc3QgPSBwYXJlbnRzKGVsZW1lbnQucGFyZW50RWxlbWVudCwgW10pO1xyXG4gICBmb3IgKGNvbnN0IHBhcmVudCBvZiBwYXJlbnRMaXN0KSB7XHJcbiAgICAgIGlmIChzY3JvbGwocGFyZW50KSkge1xyXG4gICAgICAgICByZXR1cm4gcGFyZW50O1xyXG4gICAgICB9XHJcbiAgIH1cclxuICAgcmV0dXJuIChcclxuICAgICAgKGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQgYXMgSFRNTEVsZW1lbnQpID8/IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxyXG4gICApO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBHbG9iYWxFdmVudHNTZXJ2aWNlIHtcclxuICAgcHJpdmF0ZSBnbG9iYWxEcmFnJDogT2JzZXJ2YWJsZTxEcmFnRXZlbnQ+IHwgdW5kZWZpbmVkO1xyXG4gICBwcml2YXRlIGdsb2JhbERyYWdTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcclxuICAgcHVibGljIHNjcm9sbGluZzogYm9vbGVhbjtcclxuXHJcbiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUpIHtcclxuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICAgICB0aGlzLmdsb2JhbERyYWckID0gZnJvbUV2ZW50PERyYWdFdmVudD4oZG9jdW1lbnQsIFwiZHJhZ1wiKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc2Nyb2xsaW5nID0gZmFsc2U7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyBhZGRTY3JvbGxpbmcoKSB7XHJcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAgaWYgKHRoaXMuZ2xvYmFsRHJhZ1N1YnNjcmlwdGlvbiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgfVxyXG4gICAgICAgICBpZiAodGhpcy5nbG9iYWxEcmFnJCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkIG5vdCBnZXQgb2JzZXJ2YWJsZVwiKTtcclxuICAgICAgICAgfVxyXG4gICAgICAgICBsZXQgdmlld1BvcnRIZWlnaHQ6IG51bWJlcjtcclxuICAgICAgICAgbGV0IHNjcm9sbEFyZWFTaXplOiBudW1iZXI7XHJcbiAgICAgICAgIGxldCBlZGdlVG9wOiBudW1iZXI7XHJcbiAgICAgICAgIGxldCBlZGdlQm90dG9tOiBudW1iZXI7XHJcbiAgICAgICAgIGxldCBpc0luVG9wU2Nyb2xsQXJlYTogYm9vbGVhbjtcclxuICAgICAgICAgbGV0IGlzSW5Cb3R0b21TY3JvbGxBcmVhOiBib29sZWFuO1xyXG4gICAgICAgICBsZXQgdGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xyXG4gICAgICAgICBsZXQgc2Nyb2xsYWJsZURpdjogSFRNTEVsZW1lbnQgfCBudWxsO1xyXG4gICAgICAgICBsZXQgcmVsYXRpdmVZOiBudW1iZXI7XHJcbiAgICAgICAgIHRoaXMuZ2xvYmFsRHJhZ1N1YnNjcmlwdGlvbiA9IHRoaXMuZ2xvYmFsRHJhZyRcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgIHRocm90dGxlVGltZSgyNSksXHJcbiAgICAgICAgICAgICAgIGZpbHRlcigoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKCFldmVudC50YXJnZXQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIHNjcm9sbGFibGVEaXYgPSBnZXRTY3JvbGxQYXJlbnQoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcclxuICAgICAgICAgICAgICAgICAgdmlld1BvcnRIZWlnaHQgPSBzY3JvbGxhYmxlRGl2LmNsaWVudEhlaWdodDtcclxuICAgICAgICAgICAgICAgICAgY29uc3Qgdmlld1BvcnRXaWR0aCA9IHNjcm9sbGFibGVEaXYuY2xpZW50V2lkdGg7XHJcbiAgICAgICAgICAgICAgICAgIGxldCByZWxhdGl2ZVg6IG51bWJlcjtcclxuICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICB3aW5kb3dcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmdldENvbXB1dGVkU3R5bGUoc2Nyb2xsYWJsZURpdilcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmdldFByb3BlcnR5VmFsdWUoXCJwb3NpdGlvblwiKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAudG9Mb3dlckNhc2UoKSA9PT0gXCJmaXhlZFwiXHJcbiAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVggPSBldmVudC5jbGllbnRYO1xyXG4gICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVkgPSBldmVudC5jbGllbnRZO1xyXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICBjb25zdCBib3VuZGluZ1JlY3QgPSBzY3JvbGxhYmxlRGl2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICBjb25zdCBzY3JvbGxhYmxlRGl2QW5jZXN0b3IgPSBnZXRTY3JvbGxQYXJlbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbGFibGVEaXZcclxuICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVYID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuY2xpZW50WCAtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChib3VuZGluZ1JlY3QubGVmdCArIHNjcm9sbGFibGVEaXZBbmNlc3Rvci5zY3JvbGxMZWZ0KTtcclxuICAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVZID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuY2xpZW50WSAtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChib3VuZGluZ1JlY3QudG9wICsgc2Nyb2xsYWJsZURpdkFuY2VzdG9yLnNjcm9sbFRvcCk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVggPCAwIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlWCA+IHZpZXdQb3J0V2lkdGggfHxcclxuICAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVZIDwgMCB8fFxyXG4gICAgICAgICAgICAgICAgICAgICByZWxhdGl2ZVkgPiB2aWV3UG9ydEhlaWdodFxyXG4gICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgLy9PdXRzaWRlIG9mIHNjcm9sbGFibGUgZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBzY3JvbGxBcmVhU2l6ZSA9IE1hdGgubWF4KHZpZXdQb3J0SGVpZ2h0ICogMC4xLCAxMDApO1xyXG4gICAgICAgICAgICAgICAgICBlZGdlVG9wID0gc2Nyb2xsQXJlYVNpemU7XHJcbiAgICAgICAgICAgICAgICAgIGVkZ2VCb3R0b20gPSB2aWV3UG9ydEhlaWdodCAtIHNjcm9sbEFyZWFTaXplO1xyXG4gICAgICAgICAgICAgICAgICBpc0luVG9wU2Nyb2xsQXJlYSA9IHJlbGF0aXZlWSA8IGVkZ2VUb3A7XHJcbiAgICAgICAgICAgICAgICAgIGlzSW5Cb3R0b21TY3JvbGxBcmVhID0gcmVsYXRpdmVZID4gZWRnZUJvdHRvbTtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGlzSW5Ub3BTY3JvbGxBcmVhIHx8IGlzSW5Cb3R0b21TY3JvbGxBcmVhO1xyXG4gICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICBpZiAoc2Nyb2xsYWJsZURpdiA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgY29uc3QgaGVpZ2h0ID0gc2Nyb2xsYWJsZURpdi5zY3JvbGxIZWlnaHQ7XHJcbiAgICAgICAgICAgICAgIGNvbnN0IG1heFNjcm9sbFkgPSBoZWlnaHQgLSB2aWV3UG9ydEhlaWdodDtcclxuICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFNjcm9sbFkgPSBzY3JvbGxhYmxlRGl2LnNjcm9sbFRvcDtcclxuICAgICAgICAgICAgICAgY29uc3QgY2FuU2Nyb2xsVXAgPSBjdXJyZW50U2Nyb2xsWSA+IDA7XHJcbiAgICAgICAgICAgICAgIGNvbnN0IGNhblNjcm9sbERvd24gPSBjdXJyZW50U2Nyb2xsWSA8IG1heFNjcm9sbFk7XHJcbiAgICAgICAgICAgICAgIGxldCBuZXh0U2Nyb2xsWTogbnVtYmVyO1xyXG4gICAgICAgICAgICAgICBjb25zdCBtYXhTdGVwID0gNzU7XHJcbiAgICAgICAgICAgICAgIGlmIChpc0luVG9wU2Nyb2xsQXJlYSAmJiBjYW5TY3JvbGxVcCkge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBpbnRlbnNpdHkgPSAoZWRnZVRvcCAtIHJlbGF0aXZlWSkgLyBzY3JvbGxBcmVhU2l6ZTtcclxuICAgICAgICAgICAgICAgICAgbmV4dFNjcm9sbFkgPSBjdXJyZW50U2Nyb2xsWSAtIG1heFN0ZXAgKiBpbnRlbnNpdHk7XHJcbiAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNJbkJvdHRvbVNjcm9sbEFyZWEgJiYgY2FuU2Nyb2xsRG93bikge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBpbnRlbnNpdHkgPSAocmVsYXRpdmVZIC0gZWRnZUJvdHRvbSkgLyBzY3JvbGxBcmVhU2l6ZTtcclxuICAgICAgICAgICAgICAgICAgbmV4dFNjcm9sbFkgPSBjdXJyZW50U2Nyb2xsWSArIG1heFN0ZXAgKiBpbnRlbnNpdHk7XHJcbiAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICBuZXh0U2Nyb2xsWSA9IE1hdGgubWF4KDAsIE1hdGgubWluKG1heFNjcm9sbFksIG5leHRTY3JvbGxZKSk7XHJcbiAgICAgICAgICAgICAgIGlmIChuZXh0U2Nyb2xsWSAhPT0gY3VycmVudFNjcm9sbFkpIHtcclxuICAgICAgICAgICAgICAgICAgc2Nyb2xsYWJsZURpdi5zY3JvbGxUbyh7IHRvcDogbmV4dFNjcm9sbFkgfSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcclxuICAgICAgICAgICAgICAgICAgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgIH1cclxuXHJcbiAgIHB1YmxpYyByZW1vdmVTY3JvbGxpbmcoKSB7XHJcbiAgICAgIGlmICh0aGlzLmdsb2JhbERyYWdTdWJzY3JpcHRpb24gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICB0aGlzLmdsb2JhbERyYWdTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgfVxyXG4gICB9XHJcbn1cclxuIl19

@@ -11,4 +11,4 @@ import { ElementRef, EventEmitter, NgZone, OnDestroy, OnInit } from "@angular/core";

ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDef<DragleaveNoChangeDetectDirective, never>;
static ɵdir: i0.ɵɵDirectiveDefWithMeta<DragleaveNoChangeDetectDirective, "[dragleaveNoChangeDetect]", never, {}, { "dragleaveNoChangeDetect": "dragleaveNoChangeDetect"; }, never>;
static ɵfac: i0.ɵɵFactoryDeclaration<DragleaveNoChangeDetectDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<DragleaveNoChangeDetectDirective, "[dragleaveNoChangeDetect]", never, {}, { "dragleaveNoChangeDetect": "dragleaveNoChangeDetect"; }, never>;
}

@@ -12,4 +12,4 @@ import { ElementRef, EventEmitter, NgZone, OnDestroy, OnInit } from "@angular/core";

ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDef<DragoverNoChangeDetectDirective, never>;
static ɵdir: i0.ɵɵDirectiveDefWithMeta<DragoverNoChangeDetectDirective, "[dragoverNoChangeDetect]", never, { "dragoverEventThrottle": "dragoverEventThrottle"; }, { "dragoverNoChangeDetect": "dragoverNoChangeDetect"; }, never>;
static ɵfac: i0.ɵɵFactoryDeclaration<DragoverNoChangeDetectDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<DragoverNoChangeDetectDirective, "[dragoverNoChangeDetect]", never, { "dragoverEventThrottle": "dragoverEventThrottle"; }, { "dragoverNoChangeDetect": "dragoverNoChangeDetect"; }, never>;
}

@@ -16,4 +16,4 @@ import { ChangeDetectorRef, OnDestroy, OnInit } from "@angular/core";

ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDef<DropZoneComponent, never>;
static ɵcmp: i0.ɵɵComponentDefWithMeta<DropZoneComponent, "drop-zone", never, { "dropZone": "dropZone"; }, {}, never, never>;
static ɵfac: i0.ɵɵFactoryDeclaration<DropZoneComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<DropZoneComponent, "drop-zone", never, { "dropZone": "dropZone"; }, {}, never, never>;
}

@@ -26,4 +26,4 @@ import { AfterViewInit, ChangeDetectorRef, NgZone, OnDestroy, OnInit, ViewContainerRef } from "@angular/core";

private setDropZoneHost;
static ɵfac: i0.ɵɵFactoryDef<LimbleTreeBranchComponent, never>;
static ɵcmp: i0.ɵɵComponentDefWithMeta<LimbleTreeBranchComponent, "limble-tree-branch", never, { "branch": "branch"; }, {}, never, never>;
static ɵfac: i0.ɵɵFactoryDeclaration<LimbleTreeBranchComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<LimbleTreeBranchComponent, "limble-tree-branch", never, { "branch": "branch"; }, {}, never, never>;
}

@@ -51,4 +51,4 @@ import { AfterViewInit, ChangeDetectorRef, NgZone, OnDestroy, OnInit, ViewContainerRef } from "@angular/core";

private checkForHandle;
static ɵfac: i0.ɵɵFactoryDef<LimbleTreeNodeComponent, never>;
static ɵcmp: i0.ɵɵComponentDefWithMeta<LimbleTreeNodeComponent, "limble-tree-node", never, { "branch": "branch"; "parentHost": "parentHost"; }, {}, never, never>;
static ɵfac: i0.ɵɵFactoryDeclaration<LimbleTreeNodeComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<LimbleTreeNodeComponent, "limble-tree-node", never, { "branch": "branch"; "parentHost": "parentHost"; }, {}, never, never>;
}

@@ -19,4 +19,4 @@ import { AfterViewInit, ChangeDetectorRef, OnDestroy, OnInit } from "@angular/core";

ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDef<LimbleTreePlaceholderComponent, never>;
static ɵcmp: i0.ɵɵComponentDefWithMeta<LimbleTreePlaceholderComponent, "limble-tree-placeholder", never, {}, {}, never, never>;
static ɵfac: i0.ɵɵFactoryDeclaration<LimbleTreePlaceholderComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<LimbleTreePlaceholderComponent, "limble-tree-placeholder", never, {}, {}, never, never>;
}

@@ -60,4 +60,4 @@ import { Branch, BranchCoordinates } from "../classes/Branch";

private zoneIsAllowed;
static ɵfac: i0.ɵɵFactoryDef<DropZoneService, never>;
static ɵprov: i0.ɵɵInjectableDef<DropZoneService>;
static ɵfac: i0.ɵɵFactoryDeclaration<DropZoneService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<DropZoneService>;
}

@@ -35,4 +35,4 @@ import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy } from "@angular/core";

ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDef<LimbleTreeRootComponent, never>;
static ɵcmp: i0.ɵɵComponentDefWithMeta<LimbleTreeRootComponent, "limble-tree-root", never, { "data": "data"; "options": "options"; "itemsPerPage": "itemsPerPage"; "page": "page"; }, { "treeChange": "treeChange"; "treeDrop": "treeDrop"; }, never, never>;
static ɵfac: i0.ɵɵFactoryDeclaration<LimbleTreeRootComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<LimbleTreeRootComponent, "limble-tree-root", never, { "data": "data"; "options": "options"; "itemsPerPage": "itemsPerPage"; "page": "page"; }, { "treeChange": "treeChange"; "treeDrop": "treeDrop"; }, never, never>;
}

@@ -13,4 +13,4 @@ import { BehaviorSubject } from "rxjs";

emit(): void;
static ɵfac: i0.ɵɵFactoryDef<TreeConstructionStatus, never>;
static ɵprov: i0.ɵɵInjectableDef<TreeConstructionStatus>;
static ɵfac: i0.ɵɵFactoryDeclaration<TreeConstructionStatus, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<TreeConstructionStatus>;
}

@@ -130,4 +130,4 @@ import { Type, ViewContainerRef } from "@angular/core";

private rebuildBranch;
static ɵfac: i0.ɵɵFactoryDef<TreeService, never>;
static ɵprov: i0.ɵɵInjectableDef<TreeService>;
static ɵfac: i0.ɵɵFactoryDeclaration<TreeService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<TreeService>;
}

@@ -11,5 +11,5 @@ import * as i0 from "@angular/core";

export declare class LimbleTreeModule {
static ɵfac: i0.ɵɵFactoryDef<LimbleTreeModule, never>;
static ɵmod: i0.ɵɵNgModuleDefWithMeta<LimbleTreeModule, [typeof i1.LimbleTreeBranchComponent, typeof i2.DropZoneComponent, typeof i3.LimbleTreeNodeComponent, typeof i4.LimbleTreeRootComponent, typeof i5.LimbleTreePlaceholderComponent, typeof i6.DragoverNoChangeDetectDirective, typeof i7.DragleaveNoChangeDetectDirective], [typeof i8.CommonModule], [typeof i4.LimbleTreeRootComponent]>;
static ɵinj: i0.ɵɵInjectorDef<LimbleTreeModule>;
static ɵfac: i0.ɵɵFactoryDeclaration<LimbleTreeModule, never>;
static ɵmod: i0.ɵɵNgModuleDeclaration<LimbleTreeModule, [typeof i1.LimbleTreeBranchComponent, typeof i2.DropZoneComponent, typeof i3.LimbleTreeNodeComponent, typeof i4.LimbleTreeRootComponent, typeof i5.LimbleTreePlaceholderComponent, typeof i6.DragoverNoChangeDetectDirective, typeof i7.DragleaveNoChangeDetectDirective], [typeof i8.CommonModule], [typeof i4.LimbleTreeRootComponent]>;
static ɵinj: i0.ɵɵInjectorDeclaration<LimbleTreeModule>;
}

@@ -7,4 +7,4 @@ import { ComponentFactoryResolver, Type, ViewContainerRef } from "@angular/core";

appendComponent<T = unknown>(component: Type<T>, viewContainerRef: ViewContainerRef, index?: number | undefined): import("@angular/core").ComponentRef<T>;
static ɵfac: i0.ɵɵFactoryDef<ComponentCreatorService, never>;
static ɵprov: i0.ɵɵInjectableDef<ComponentCreatorService>;
static ɵfac: i0.ɵɵFactoryDeclaration<ComponentCreatorService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<ComponentCreatorService>;
}

@@ -32,5 +32,5 @@ import { ViewContainerRef } from "@angular/core";

getState(): DragState;
static ɵfac: i0.ɵɵFactoryDef<DragStateService, never>;
static ɵprov: i0.ɵɵInjectableDef<DragStateService>;
static ɵfac: i0.ɵɵFactoryDeclaration<DragStateService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<DragStateService>;
}
export {};

@@ -11,4 +11,4 @@ import { NgZone } from "@angular/core";

removeScrolling(): void;
static ɵfac: i0.ɵɵFactoryDef<GlobalEventsService, never>;
static ɵprov: i0.ɵɵInjectableDef<GlobalEventsService>;
static ɵfac: i0.ɵɵFactoryDeclaration<GlobalEventsService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<GlobalEventsService>;
}
{
"name": "@limble/limble-tree",
"version": "0.11.8",
"version": "0.12.0",
"peerDependencies": {
"@angular/common": "^11.2.5",
"@angular/core": "^11.2.5"
"@angular/common": "^12.0.5",
"@angular/core": "^12.0.5"
},

@@ -24,4 +24,4 @@ "dependencies": {

"scripts": {
"prepublishOnly": "node --eval \"console.error('ERROR: Trying to publish a package that has been compiled by Ivy. This is not allowed.\\nPlease delete and rebuild the package, without compiling with Ivy, before attempting to publish.\\n')\" && exit 1"
"prepublishOnly": "node --eval \"console.error('ERROR: Trying to publish a package that has been compiled by Ivy in full compilation mode. This is not allowed.\\nPlease delete and rebuild the package with Ivy partial compilation mode, before attempting to publish.\\n')\" && exit 1"
}
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc