ca-components 1.1.4 → 1.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,6 @@
1
1
  import { Directive, EventEmitter, HostListener, Input, Output, } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class CommandVisibleDirective {
4
- //this._inputConfig.commands
5
4
  constructor(el) {
6
5
  this.el = el;
7
6
  this.commandVisible = new EventEmitter(); // ✅ Emit true/false
@@ -11,45 +10,20 @@ export class CommandVisibleDirective {
11
10
  this.emitCommandVisible(false);
12
11
  }
13
12
  }
14
- // ✅ Detect when the browser loses focus (clicking outside)
15
- onWindowBlur(event) {
13
+ onWindowBlur() {
16
14
  this.emitCommandVisible(false);
17
15
  }
18
16
  onFocus() {
19
17
  // Show commands on focus
20
18
  this.emitCommandVisible(true);
21
19
  }
22
- onClick(event) {
23
- if (!this.restrictInput.commands)
24
- return;
25
- const clickedElement = event.target;
26
- const inputParent = this.el.nativeElement.parentNode;
27
- // ✅ Check if clicked element is inside a `<ta-input-commands>` parent
28
- if (!this.isInsideElement(clickedElement, 'APP-CA-INPUT-COMMANDS') &&
29
- !this.el.nativeElement.contains(event.target) &&
30
- inputParent != event.target) {
31
- this.commandVisible.emit(false); // ✅ Trigger event when clicking outside
32
- }
33
- }
34
- /**
35
- * ✅ Recursively checks if an element has a specific parent tag
36
- */
37
- isInsideElement(element, tagName) {
38
- while (element) {
39
- if (element.tagName === tagName) {
40
- return true; // ✅ Found the parent with the specified tag
41
- }
42
- element = element.parentElement; // Move up the DOM tree
43
- }
44
- return false; // ❌ No matching parent found
45
- }
46
20
  emitCommandVisible(status) {
47
21
  if (this.restrictInput.commands) {
48
22
  this.commandVisible.emit(status);
49
23
  }
50
24
  }
51
25
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommandVisibleDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
52
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: CommandVisibleDirective, isStandalone: true, selector: "[commandVisible]", inputs: { restrictInput: "restrictInput" }, outputs: { commandVisible: "commandVisible" }, host: { listeners: { "keydown": "onKeyDown($event)", "window:blur": "onWindowBlur($event)", "focus": "onFocus()", "document:click": "onClick($event)" } }, ngImport: i0 }); }
26
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: CommandVisibleDirective, isStandalone: true, selector: "[commandVisible]", inputs: { restrictInput: "restrictInput" }, outputs: { commandVisible: "commandVisible" }, host: { listeners: { "keydown": "onKeyDown($event)", "blur": "onWindowBlur()", "focus": "onFocus()" } }, ngImport: i0 }); }
53
27
  }
54
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CommandVisibleDirective, decorators: [{
55
29
  type: Directive,
@@ -66,12 +40,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
66
40
  args: ['keydown', ['$event']]
67
41
  }], onWindowBlur: [{
68
42
  type: HostListener,
69
- args: ['window:blur', ['$event']]
43
+ args: ['blur']
70
44
  }], onFocus: [{
71
45
  type: HostListener,
72
46
  args: ['focus']
73
- }], onClick: [{
74
- type: HostListener,
75
- args: ['document:click', ['$event']]
76
47
  }] } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC12aXNpYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWlucHV0L2RpcmVjdGl2ZXMvY29tbWFuZC12aXNpYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQzs7QUFPdkIsTUFBTSxPQUFPLHVCQUF1QjtJQUdoQyw0QkFBNEI7SUFFNUIsWUFBb0IsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUFKeEIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDLENBQUMsb0JBQW9CO0lBSXZDLENBQUM7SUFHdEMsU0FBUyxDQUFDLEtBQW9CO1FBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLEtBQUssSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNqRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7SUFFRCwyREFBMkQ7SUFFM0QsWUFBWSxDQUFDLEtBQWlCO1FBQzFCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBR0QsT0FBTztRQUNILHlCQUF5QjtRQUN6QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUdELE9BQU8sQ0FBQyxLQUFZO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQ3pDLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxNQUFxQixDQUFDO1FBQ25ELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztRQUNyRCxzRUFBc0U7UUFDdEUsSUFDSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxFQUFFLHVCQUF1QixDQUFDO1lBQzlELENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDN0MsV0FBVyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQzdCLENBQUM7WUFDQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLHdDQUF3QztRQUM3RSxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssZUFBZSxDQUNuQixPQUEyQixFQUMzQixPQUFlO1FBRWYsT0FBTyxPQUFPLEVBQUUsQ0FBQztZQUNiLElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDOUIsT0FBTyxJQUFJLENBQUMsQ0FBQyw0Q0FBNEM7WUFDN0QsQ0FBQztZQUNELE9BQU8sR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsdUJBQXVCO1FBQzVELENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxDQUFDLDZCQUE2QjtJQUMvQyxDQUFDO0lBRU8sa0JBQWtCLENBQUMsTUFBZTtRQUN0QyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckMsQ0FBQztJQUNMLENBQUM7K0dBN0RRLHVCQUF1QjttR0FBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQUpuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjsrRUFFYSxjQUFjO3NCQUF2QixNQUFNO2dCQUNFLGFBQWE7c0JBQXJCLEtBQUs7Z0JBTU4sU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFTbkMsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNdkMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU87Z0JBT3JCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUNhSW5wdXQgfSBmcm9tICcuLi9jb25maWcnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tjb21tYW5kVmlzaWJsZV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENvbW1hbmRWaXNpYmxlRGlyZWN0aXZlIHtcbiAgICBAT3V0cHV0KCkgY29tbWFuZFZpc2libGUgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7IC8vIOKchSBFbWl0IHRydWUvZmFsc2VcbiAgICBASW5wdXQoKSByZXN0cmljdElucHV0ITogSUNhSW5wdXQ7XG4gICAgLy90aGlzLl9pbnB1dENvbmZpZy5jb21tYW5kc1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoKGV2ZW50LmtleSA9PT0gJ1RhYicgJiYgZXZlbnQuc2hpZnRLZXkpIHx8IGV2ZW50LmtleSA9PT0gJ1RhYicpIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdENvbW1hbmRWaXNpYmxlKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIOKchSBEZXRlY3Qgd2hlbiB0aGUgYnJvd3NlciBsb3NlcyBmb2N1cyAoY2xpY2tpbmcgb3V0c2lkZSlcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6Ymx1cicsIFsnJGV2ZW50J10pXG4gICAgb25XaW5kb3dCbHVyKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgICAgIHRoaXMuZW1pdENvbW1hbmRWaXNpYmxlKGZhbHNlKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gICAgb25Gb2N1cygpIHtcbiAgICAgICAgLy8gU2hvdyBjb21tYW5kcyBvbiBmb2N1c1xuICAgICAgICB0aGlzLmVtaXRDb21tYW5kVmlzaWJsZSh0cnVlKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXG4gICAgb25DbGljayhldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLnJlc3RyaWN0SW5wdXQuY29tbWFuZHMpIHJldHVybjtcbiAgICAgICAgY29uc3QgY2xpY2tlZEVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGlucHV0UGFyZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGU7XG4gICAgICAgIC8vIOKchSBDaGVjayBpZiBjbGlja2VkIGVsZW1lbnQgaXMgaW5zaWRlIGEgYDx0YS1pbnB1dC1jb21tYW5kcz5gIHBhcmVudFxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdGhpcy5pc0luc2lkZUVsZW1lbnQoY2xpY2tlZEVsZW1lbnQsICdBUFAtQ0EtSU5QVVQtQ09NTUFORFMnKSAmJlxuICAgICAgICAgICAgIXRoaXMuZWwubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpICYmXG4gICAgICAgICAgICBpbnB1dFBhcmVudCAhPSBldmVudC50YXJnZXRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmNvbW1hbmRWaXNpYmxlLmVtaXQoZmFsc2UpOyAvLyDinIUgVHJpZ2dlciBldmVudCB3aGVuIGNsaWNraW5nIG91dHNpZGVcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOKchSBSZWN1cnNpdmVseSBjaGVja3MgaWYgYW4gZWxlbWVudCBoYXMgYSBzcGVjaWZpYyBwYXJlbnQgdGFnXG4gICAgICovXG4gICAgcHJpdmF0ZSBpc0luc2lkZUVsZW1lbnQoXG4gICAgICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgICAgICAgdGFnTmFtZTogc3RyaW5nXG4gICAgKTogYm9vbGVhbiB7XG4gICAgICAgIHdoaWxlIChlbGVtZW50KSB7XG4gICAgICAgICAgICBpZiAoZWxlbWVudC50YWdOYW1lID09PSB0YWdOYW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8vIOKchSBGb3VuZCB0aGUgcGFyZW50IHdpdGggdGhlIHNwZWNpZmllZCB0YWdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7IC8vIE1vdmUgdXAgdGhlIERPTSB0cmVlXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyDinYwgTm8gbWF0Y2hpbmcgcGFyZW50IGZvdW5kXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbWl0Q29tbWFuZFZpc2libGUoc3RhdHVzOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0aGlzLnJlc3RyaWN0SW5wdXQuY29tbWFuZHMpIHtcbiAgICAgICAgICAgIHRoaXMuY29tbWFuZFZpc2libGUuZW1pdChzdGF0dXMpO1xuICAgICAgICB9XG4gICAgfVxufSJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC12aXNpYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWlucHV0L2RpcmVjdGl2ZXMvY29tbWFuZC12aXNpYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQzs7QUFPdkIsTUFBTSxPQUFPLHVCQUF1QjtJQUloQyxZQUFvQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUh4QixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUMsQ0FBQyxvQkFBb0I7SUFHdkMsQ0FBQztJQUd0QyxTQUFTLENBQUMsS0FBb0I7UUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssS0FBSyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ2pFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0wsQ0FBQztJQUdELFlBQVk7UUFDUixJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUdELE9BQU87UUFDSCx5QkFBeUI7UUFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxNQUFlO1FBQ3RDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyQyxDQUFDO0lBQ0wsQ0FBQzsrR0E1QlEsdUJBQXVCO21HQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBSm5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7aUJBQ25COytFQUVhLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0UsYUFBYTtzQkFBckIsS0FBSztnQkFLTixTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVFuQyxZQUFZO3NCQURYLFlBQVk7dUJBQUMsTUFBTTtnQkFNcEIsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElDYUlucHV0IH0gZnJvbSAnLi4vY29uZmlnJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbY29tbWFuZFZpc2libGVdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBDb21tYW5kVmlzaWJsZURpcmVjdGl2ZSB7XG4gICAgQE91dHB1dCgpIGNvbW1hbmRWaXNpYmxlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpOyAvLyDinIUgRW1pdCB0cnVlL2ZhbHNlXG4gICAgQElucHV0KCkgcmVzdHJpY3RJbnB1dCE6IElDYUlucHV0O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoKGV2ZW50LmtleSA9PT0gJ1RhYicgJiYgZXZlbnQuc2hpZnRLZXkpIHx8IGV2ZW50LmtleSA9PT0gJ1RhYicpIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdENvbW1hbmRWaXNpYmxlKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2JsdXInKVxuICAgIG9uV2luZG93Qmx1cigpIHtcbiAgICAgICAgdGhpcy5lbWl0Q29tbWFuZFZpc2libGUoZmFsc2UpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcbiAgICBvbkZvY3VzKCkge1xuICAgICAgICAvLyBTaG93IGNvbW1hbmRzIG9uIGZvY3VzXG4gICAgICAgIHRoaXMuZW1pdENvbW1hbmRWaXNpYmxlKHRydWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW1pdENvbW1hbmRWaXNpYmxlKHN0YXR1czogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy5yZXN0cmljdElucHV0LmNvbW1hbmRzKSB7XG4gICAgICAgICAgICB0aGlzLmNvbW1hbmRWaXNpYmxlLmVtaXQoc3RhdHVzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -33,7 +33,9 @@ export class RestrictInputDirective extends RestrictionPipeMixin(class {
33
33
  ? inputValue.replace(/[^0-9.]/g, '')
34
34
  : inputValue;
35
35
  if (regex.test(inputValueToTestWithRegex)) {
36
+ console.log("WHAT IS HEREEE", inputValueToTestWithRegex);
36
37
  if (maxLength) {
38
+ console.log("WHAT IS MAX VALUE", maxLength);
37
39
  // Allow only numbers and one dot (.)
38
40
  const tempLengthValue = isDecimalAndDotOnly
39
41
  ? inputValue.replace(/[^0-9.]/g, '')
@@ -92,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
92
94
  type: HostListener,
93
95
  args: ['input', ['$event']]
94
96
  }] } });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdHJpY3QtaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQvZGlyZWN0aXZlcy9yZXN0cmljdC1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxZQUFZLEVBRVosS0FBSyxHQUNSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQU94RSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsb0JBQW9CLENBQzVEO0NBRUMsQ0FDSjtJQU1HLFlBQ1ksRUFBYyxFQUNkLFFBQWtCO1FBRTFCLEtBQUssRUFBRSxDQUFDO1FBSEEsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVU7UUFKdEIsd0JBQW1CLEdBQVcsRUFBRSxDQUFDO1FBT3JDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsdUJBQXVCO0lBQ3hGLENBQUM7SUFHRCxPQUFPLENBQUMsS0FBaUI7UUFDckIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO1FBRTdDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO1FBQy9DLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pELE1BQU0sRUFDRixLQUFLLEVBQ0wsdUJBQXVCLEVBQ3ZCLG1CQUFtQixFQUNuQix5QkFBeUIsRUFD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QUFLLEdBQUcsYUFBYSxDQUFDO1lBRS9ELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3JELDZFQUE2RTtnQkFDN0UsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztZQUMzRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osd0JBQXdCO2dCQUN4QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsVUFBVSxDQUFDO1lBQzFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLDZFQUE2RTtZQUM3RSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQzNELENBQUM7SUFDTCxDQUFDOytHQTdHUSxzQkFBc0I7bUdBQXRCLHNCQUFzQiwrSkFGcEIsQ0FBQyxnQkFBZ0IsQ0FBQzs7NEZBRXBCLHNCQUFzQjtrQkFMbEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsRUFBRSx5Q0FBeUM7aUJBQzNFO3NHQU1xQixhQUFhO3NCQUE5QixLQUFLO2dCQWNOLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnB1dFBhdHRlcm5QaXBlIH0gZnJvbSAnLi4vcGlwZXMvaW5wdXQtcGF0dGVybi5waXBlJztcbmltcG9ydCB7IElDYUlucHV0IH0gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7IElucHV0VHJhbnNmb3JtU3RyaW5nRW51bSB9IGZyb20gJy4uL2VudW1zL2lucHV0LXRleHQtdHJhbnNmb3JtLmVudW0nO1xuaW1wb3J0IHsgUmVzdHJpY3Rpb25QaXBlTWl4aW4gfSBmcm9tICcuLi9taXhpbnMvcmVzdHJpY3Rpb24tcGlwZS5taXhpbic7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3Jlc3RyaWN0SW5wdXRdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW0lucHV0UGF0dGVyblBpcGVdLCAvLyBQcm92aWRlIHRoZSBwaXBlIHNvIGl0IGNhbiBiZSBpbmplY3RlZFxufSlcbmV4cG9ydCBjbGFzcyBSZXN0cmljdElucHV0RGlyZWN0aXZlIGV4dGVuZHMgUmVzdHJpY3Rpb25QaXBlTWl4aW4oXG4gICAgY2xhc3Mge1xuICAgICAgICByZXN0cmljdElucHV0ITogSUNhSW5wdXQ7XG4gICAgfVxuKSB7XG4gICAgQElucHV0KCkgb3ZlcnJpZGUgcmVzdHJpY3RJbnB1dCE6IElDYUlucHV0O1xuICAgIHByaXZhdGUgaW5wdXRQYXR0ZXJuUGlwZSE6IElucHV0UGF0dGVyblBpcGU7XG5cbiAgICBwcml2YXRlIGxhc3RWYWxpZElucHV0VmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuaW5wdXRQYXR0ZXJuUGlwZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KElucHV0UGF0dGVyblBpcGUpOyAvLyBJbmplY3QgcGlwZSBtYW51YWxseVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQnXSlcbiAgICBvbklucHV0KGV2ZW50OiBJbnB1dEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGxldCBpbnB1dFZhbHVlID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuXG4gICAgICAgIGNvbnN0IG1heExlbmd0aCA9IHRoaXMucmVzdHJpY3RJbnB1dC5tYXhMZW5ndGg7XG4gICAgICAgIGNvbnN0IGNvbmZpZ05hbWUgPSB0aGlzLnJlc3RyaWN0SW5wdXQubmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICByZWdleCxcbiAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzLFxuICAgICAgICAgICAgcmVzdHJpY3RNdWx0aXBlRG90cyxcbiAgICAgICAgICAgIHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXMsXG4gICAgICAgICAgICBpc0RlY2ltYWxBbmREb3RPbmx5LFxuICAgICAgICB9ID0gdGhpcy5pbnB1dFBhdHRlcm5QaXBlLnRyYW5zZm9ybShjb25maWdOYW1lLCB0aGlzLnJlc3RyaWN0SW5wdXQpO1xuXG4gICAgICAgIC8vIFByZXZlbnQgZmlyc3Qgc3BhY2UgY2hhcmFjdGVyXG4gICAgICAgIGlmIChpbnB1dFZhbHVlLnN0YXJ0c1dpdGgoJyAnKSkge1xuICAgICAgICAgICAgaW5wdXRWYWx1ZSA9IGlucHV0VmFsdWUudHJpbVN0YXJ0KCk7IC8vIFJlbW92ZSBsZWFkaW5nIHNwYWNlXG4gICAgICAgIH1cblxuICAgICAgICAvLyBBbGxvdyBkb3RzIGJ1dCBkb250IGFsbG93IG9uIGZpcnN0IHBsYWNlLi4uXG4gICAgICAgIGNvbnN0IGRvdEluZGV4ID0gaW5wdXRWYWx1ZS5pbmRleE9mKCcuJyk7XG4gICAgICAgIGlmIChkb3RJbmRleCA9PSAwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5yZXN0cmljdElucHV0LnByaWNlU2VwYXJhdG9yKSB7XG4gICAgICAgICAgICAgICAgaW5wdXRWYWx1ZSA9IGAwJHtpbnB1dFZhbHVlfWA7XG4gICAgICAgICAgICB9IGVsc2UgaW5wdXRWYWx1ZSA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaW5wdXRWYWx1ZVRvVGVzdFdpdGhSZWdleCA9IGlzRGVjaW1hbEFuZERvdE9ubHlcbiAgICAgICAgICAgID8gaW5wdXRWYWx1ZS5yZXBsYWNlKC9bXjAtOS5dL2csICcnKVxuICAgICAgICAgICAgOiBpbnB1dFZhbHVlO1xuXG4gICAgICAgIGlmIChyZWdleC50ZXN0KGlucHV0VmFsdWVUb1Rlc3RXaXRoUmVnZXgpKSB7XG4gICAgICAgICAgICBpZiAobWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgLy8gQWxsb3cgb25seSBudW1iZXJzIGFuZCBvbmUgZG90ICguKVxuICAgICAgICAgICAgICAgIGNvbnN0IHRlbXBMZW5ndGhWYWx1ZSA9IGlzRGVjaW1hbEFuZERvdE9ubHlcbiAgICAgICAgICAgICAgICAgICAgPyBpbnB1dFZhbHVlLnJlcGxhY2UoL1teMC05Ll0vZywgJycpXG4gICAgICAgICAgICAgICAgICAgIDogaW5wdXRWYWx1ZTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IFtpbnRlZ2VyUGFydCwgZGVjaW1hbFBhcnRdID0gdGVtcExlbmd0aFZhbHVlLnNwbGl0KCcuJyk7XG5cbiAgICAgICAgICAgICAgICAvLyBFbnN1cmUgaW50ZWdlciBwYXJ0IHJlc3BlY3RzIG1heExlbmd0aCAoZXhjbHVkaW5nIHRob3VzYW5kIHNlcGFyYXRvcnMpXG4gICAgICAgICAgICAgICAgaWYgKGludGVnZXJQYXJ0Lmxlbmd0aCA+IG1heExlbmd0aCEpIHtcbiAgICAgICAgICAgICAgICAgICAgaW5wdXRWYWx1ZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICBpbnRlZ2VyUGFydC5zdWJzdHJpbmcoMCwgbWF4TGVuZ3RoKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbFBhcnQgPyAnLicgKyBkZWNpbWFsUGFydCA6ICcnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzKSB7XG4gICAgICAgICAgICAgICAgaW5wdXRWYWx1ZSA9IGlucHV0VmFsdWUucmVwbGFjZSgvXFxzezIsfS9nLCAnICcpOyAvLyBSZXBsYWNlIGNvbnNlY3V0aXZlIHNwYWNlcyB3aXRoIGEgc2luZ2xlIHNwYWNlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZXN0cmljdENvbnNlY3V0aXZlRG90cykge1xuICAgICAgICAgICAgICAgIGlucHV0VmFsdWUgPSBpbnB1dFZhbHVlLnJlcGxhY2UoL1xcLnsyLH0vZywgJy4nKTsgLy8gUmVwbGFjZSBjb25zZWN1dGl2ZSBkb3RzIHdpdGggYSBzaW5nbGUgZG90XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZXN0cmljdE11bHRpcGVEb3RzKSB7XG4gICAgICAgICAgICAgICAgaW5wdXRWYWx1ZSA9IGlucHV0VmFsdWUucmVwbGFjZShcbiAgICAgICAgICAgICAgICAgICAgL14oW14uXSopXFwuKC4qKSQvLFxuICAgICAgICAgICAgICAgICAgICAobTogYW55LCBwMTogYW55LCBwMjogYW55KSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgcDEgKyAnLicgKyBwMi5yZXBsYWNlKC9cXC4vZywgJycpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coXCJXSEFUIElTIElOUFVUIFZBTFVFXCIsIGlucHV0VmFsdWUpO1xuXG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBpbnB1dFZhbHVlO1xuXG4gICAgICAgICAgICAvLyDwn5SlIE1hbnVhbGx5IHRyaWdnZXIgbWF4IERpcmVjdGl2ZSBiZWNhdXNlIGN1cnJlbnQgb25lIG5lZWRzIHRvIGJlIGRvbmUgZmlyc3RcbiAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgICAgICAgIG5ldyBFdmVudCgnYXBwbHlNYXhWYWx1ZURpcmVjdGl2ZScpXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm1UZXh0ID0gdGhpcy5nZXRUZXh0VHJhbnNmb3JtYXRpb24oXG4gICAgICAgICAgICAgICAgaW5wdXRWYWx1ZSxcbiAgICAgICAgICAgICAgICB0aGlzLnJlc3RyaWN0SW5wdXQ/LnRleHRUcmFuc2Zvcm0gYXMgSW5wdXRUcmFuc2Zvcm1TdHJpbmdFbnVtXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAodHJhbnNmb3JtVGV4dCkgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdHJhbnNmb3JtVGV4dDtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLmNoZWNrUmFuZ2VSZWdleCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgZW50ZXJlZCBpcyBub3QgcGFzc2luZyByZWdFeCB0aGVuIHRoZSBpbnB1dCB2YWx1ZSB3aWxsIGJlIGxhc3Qgc2F2ZWQuLi5cbiAgICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLmxhc3RWYWxpZElucHV0VmFsdWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFNhdmUgbGFzdCB2YWxpZCB2YWx1ZVxuICAgICAgICAgICAgICAgIHRoaXMubGFzdFZhbGlkSW5wdXRWYWx1ZSA9IGlucHV0VmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBJZiBlbnRlcmVkIGlzIG5vdCBwYXNzaW5nIHJlZ0V4IHRoZW4gdGhlIGlucHV0IHZhbHVlIHdpbGwgYmUgbGFzdCBzYXZlZC4uLlxuICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5sYXN0VmFsaWRJbnB1dFZhbHVlO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdHJpY3QtaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQvZGlyZWN0aXZlcy9yZXN0cmljdC1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxZQUFZLEVBRVosS0FBSyxHQUNSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQU94RSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsb0JBQW9CLENBQzVEO0NBRUMsQ0FDSjtJQU1HLFlBQ1ksRUFBYyxFQUNkLFFBQWtCO1FBRTFCLEtBQUssRUFBRSxDQUFDO1FBSEEsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVU7UUFKdEIsd0JBQW1CLEdBQVcsRUFBRSxDQUFDO1FBT3JDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsdUJBQXVCO0lBQ3hGLENBQUM7SUFHRCxPQUFPLENBQUMsS0FBaUI7UUFDckIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO1FBRTdDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO1FBQy9DLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pELE1BQU0sRUFDRixLQUFLLEVBQ0wsdUJBQXVCLEVBQ3ZCLG1CQUFtQixFQUNuQix5QkFBeUIsRUFD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QXFCLENBQzVDLFVBQVUsRUFDVixJQUFJLENBQUMsYUFBYSxFQUFFLGFBQXlDLENBQ2hFLENBQUM7WUFFRixJQUFJLGFBQWE7Z0JBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLGFBQWEsQ0FBQztZQUUvRCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNyRCw2RUFBNkU7Z0JBQzdFLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7WUFDM0QsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLHdCQUF3QjtnQkFDeEIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFVBQVUsQ0FBQztZQUMxQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDSiw2RUFBNkU7WUFDN0UsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztRQUMzRCxDQUFDO0lBQ0wsQ0FBQzsrR0FuSFEsc0JBQXNCO21HQUF0QixzQkFBc0IsK0pBRnBCLENBQUMsZ0JBQWdCLENBQUM7OzRGQUVwQixzQkFBc0I7a0JBTGxDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUUseUNBQXlDO2lCQUMzRTtzR0FNcUIsYUFBYTtzQkFBOUIsS0FBSztnQkFjTixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW5wdXRQYXR0ZXJuUGlwZSB9IGZyb20gJy4uL3BpcGVzL2lucHV0LXBhdHRlcm4ucGlwZSc7XG5pbXBvcnQgeyBJQ2FJbnB1dCB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBJbnB1dFRyYW5zZm9ybVN0cmluZ0VudW0gfSBmcm9tICcuLi9lbnVtcy9pbnB1dC10ZXh0LXRyYW5zZm9ybS5lbnVtJztcbmltcG9ydCB7IFJlc3RyaWN0aW9uUGlwZU1peGluIH0gZnJvbSAnLi4vbWl4aW5zL3Jlc3RyaWN0aW9uLXBpcGUubWl4aW4nO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tyZXN0cmljdElucHV0XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtJbnB1dFBhdHRlcm5QaXBlXSwgLy8gUHJvdmlkZSB0aGUgcGlwZSBzbyBpdCBjYW4gYmUgaW5qZWN0ZWRcbn0pXG5leHBvcnQgY2xhc3MgUmVzdHJpY3RJbnB1dERpcmVjdGl2ZSBleHRlbmRzIFJlc3RyaWN0aW9uUGlwZU1peGluKFxuICAgIGNsYXNzIHtcbiAgICAgICAgcmVzdHJpY3RJbnB1dCE6IElDYUlucHV0O1xuICAgIH1cbikge1xuICAgIEBJbnB1dCgpIG92ZXJyaWRlIHJlc3RyaWN0SW5wdXQhOiBJQ2FJbnB1dDtcbiAgICBwcml2YXRlIGlucHV0UGF0dGVyblBpcGUhOiBJbnB1dFBhdHRlcm5QaXBlO1xuXG4gICAgcHJpdmF0ZSBsYXN0VmFsaWRJbnB1dFZhbHVlOiBzdHJpbmcgPSAnJztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvclxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmlucHV0UGF0dGVyblBpcGUgPSB0aGlzLmluamVjdG9yLmdldChJbnB1dFBhdHRlcm5QaXBlKTsgLy8gSW5qZWN0IHBpcGUgbWFudWFsbHlcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdpbnB1dCcsIFsnJGV2ZW50J10pXG4gICAgb25JbnB1dChldmVudDogSW5wdXRFdmVudCk6IHZvaWQge1xuICAgICAgICBsZXQgaW5wdXRWYWx1ZSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZTtcblxuICAgICAgICBjb25zdCBtYXhMZW5ndGggPSB0aGlzLnJlc3RyaWN0SW5wdXQubWF4TGVuZ3RoO1xuICAgICAgICBjb25zdCBjb25maWdOYW1lID0gdGhpcy5yZXN0cmljdElucHV0Lm5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgcmVnZXgsXG4gICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlRG90cyxcbiAgICAgICAgICAgIHJlc3RyaWN0TXVsdGlwZURvdHMsXG4gICAgICAgICAgICByZXN0cmljdENvbnNlY3V0aXZlU3BhY2VzLFxuICAgICAgICAgICAgaXNEZWNpbWFsQW5kRG90T25seSxcbiAgICAgICAgfSA9IHRoaXMuaW5wdXRQYXR0ZXJuUGlwZS50cmFuc2Zvcm0oY29uZmlnTmFtZSwgdGhpcy5yZXN0cmljdElucHV0KTtcblxuICAgICAgICAvLyBQcmV2ZW50IGZpcnN0IHNwYWNlIGNoYXJhY3RlclxuICAgICAgICBpZiAoaW5wdXRWYWx1ZS5zdGFydHNXaXRoKCcgJykpIHtcbiAgICAgICAgICAgIGlucHV0VmFsdWUgPSBpbnB1dFZhbHVlLnRyaW1TdGFydCgpOyAvLyBSZW1vdmUgbGVhZGluZyBzcGFjZVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWxsb3cgZG90cyBidXQgZG9udCBhbGxvdyBvbiBmaXJzdCBwbGFjZS4uLlxuICAgICAgICBjb25zdCBkb3RJbmRleCA9IGlucHV0VmFsdWUuaW5kZXhPZignLicpO1xuICAgICAgICBpZiAoZG90SW5kZXggPT0gMCkge1xuICAgICAgICAgICAgaWYgKHRoaXMucmVzdHJpY3RJbnB1dC5wcmljZVNlcGFyYXRvcikge1xuICAgICAgICAgICAgICAgIGlucHV0VmFsdWUgPSBgMCR7aW5wdXRWYWx1ZX1gO1xuICAgICAgICAgICAgfSBlbHNlIGlucHV0VmFsdWUgPSAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlucHV0VmFsdWVUb1Rlc3RXaXRoUmVnZXggPSBpc0RlY2ltYWxBbmREb3RPbmx5XG4gICAgICAgICAgICA/IGlucHV0VmFsdWUucmVwbGFjZSgvW14wLTkuXS9nLCAnJylcbiAgICAgICAgICAgIDogaW5wdXRWYWx1ZTtcblxuXG4gICAgICAgICAgICBcblxuICAgICAgICBpZiAocmVnZXgudGVzdChpbnB1dFZhbHVlVG9UZXN0V2l0aFJlZ2V4KSkge1xuXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIldIQVQgSVMgSEVSRUVFXCIsIGlucHV0VmFsdWVUb1Rlc3RXaXRoUmVnZXgpO1xuICAgICAgICAgICAgaWYgKG1heExlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiV0hBVCBJUyBNQVggVkFMVUVcIiwgbWF4TGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAvLyBBbGxvdyBvbmx5IG51bWJlcnMgYW5kIG9uZSBkb3QgKC4pXG4gICAgICAgICAgICAgICAgY29uc3QgdGVtcExlbmd0aFZhbHVlID0gaXNEZWNpbWFsQW5kRG90T25seVxuICAgICAgICAgICAgICAgICAgICA/IGlucHV0VmFsdWUucmVwbGFjZSgvW14wLTkuXS9nLCAnJylcbiAgICAgICAgICAgICAgICAgICAgOiBpbnB1dFZhbHVlO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgW2ludGVnZXJQYXJ0LCBkZWNpbWFsUGFydF0gPSB0ZW1wTGVuZ3RoVmFsdWUuc3BsaXQoJy4nKTtcblxuICAgICAgICAgICAgICAgIC8vIEVuc3VyZSBpbnRlZ2VyIHBhcnQgcmVzcGVjdHMgbWF4TGVuZ3RoIChleGNsdWRpbmcgdGhvdXNhbmQgc2VwYXJhdG9ycylcbiAgICAgICAgICAgICAgICBpZiAoaW50ZWdlclBhcnQubGVuZ3RoID4gbWF4TGVuZ3RoISkge1xuICAgICAgICAgICAgICAgICAgICBpbnB1dFZhbHVlID1cbiAgICAgICAgICAgICAgICAgICAgICAgIGludGVnZXJQYXJ0LnN1YnN0cmluZygwLCBtYXhMZW5ndGgpICtcbiAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsUGFydCA/ICcuJyArIGRlY2ltYWxQYXJ0IDogJycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlc3RyaWN0Q29uc2VjdXRpdmVTcGFjZXMpIHtcbiAgICAgICAgICAgICAgICBpbnB1dFZhbHVlID0gaW5wdXRWYWx1ZS5yZXBsYWNlKC9cXHN7Mix9L2csICcgJyk7IC8vIFJlcGxhY2UgY29uc2VjdXRpdmUgc3BhY2VzIHdpdGggYSBzaW5nbGUgc3BhY2VcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlc3RyaWN0Q29uc2VjdXRpdmVEb3RzKSB7XG4gICAgICAgICAgICAgICAgaW5wdXRWYWx1ZSA9IGlucHV0VmFsdWUucmVwbGFjZSgvXFwuezIsfS9nLCAnLicpOyAvLyBSZXBsYWNlIGNvbnNlY3V0aXZlIGRvdHMgd2l0aCBhIHNpbmdsZSBkb3RcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlc3RyaWN0TXVsdGlwZURvdHMpIHtcbiAgICAgICAgICAgICAgICBpbnB1dFZhbHVlID0gaW5wdXRWYWx1ZS5yZXBsYWNlKFxuICAgICAgICAgICAgICAgICAgICAvXihbXi5dKilcXC4oLiopJC8sXG4gICAgICAgICAgICAgICAgICAgIChtOiBhbnksIHAxOiBhbnksIHAyOiBhbnkpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBwMSArICcuJyArIHAyLnJlcGxhY2UoL1xcLi9nLCAnJylcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIldIQVQgSVMgSU5QVVQgVkFMVUVcIiwgaW5wdXRWYWx1ZSk7XG5cbiAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IGlucHV0VmFsdWU7XG5cbiAgICAgICAgICAgIC8vIPCflKUgTWFudWFsbHkgdHJpZ2dlciBtYXggRGlyZWN0aXZlIGJlY2F1c2UgY3VycmVudCBvbmUgbmVlZHMgdG8gYmUgZG9uZSBmaXJzdFxuICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgICAgICAgbmV3IEV2ZW50KCdhcHBseU1heFZhbHVlRGlyZWN0aXZlJylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybVRleHQgPSB0aGlzLmdldFRleHRUcmFuc2Zvcm1hdGlvbihcbiAgICAgICAgICAgICAgICBpbnB1dFZhbHVlLFxuICAgICAgICAgICAgICAgIHRoaXMucmVzdHJpY3RJbnB1dD8udGV4dFRyYW5zZm9ybSBhcyBJbnB1dFRyYW5zZm9ybVN0cmluZ0VudW1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmICh0cmFuc2Zvcm1UZXh0KSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0cmFuc2Zvcm1UZXh0O1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuY2hlY2tSYW5nZVJlZ2V4KHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiBlbnRlcmVkIGlzIG5vdCBwYXNzaW5nIHJlZ0V4IHRoZW4gdGhlIGlucHV0IHZhbHVlIHdpbGwgYmUgbGFzdCBzYXZlZC4uLlxuICAgICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMubGFzdFZhbGlkSW5wdXRWYWx1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gU2F2ZSBsYXN0IHZhbGlkIHZhbHVlXG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0VmFsaWRJbnB1dFZhbHVlID0gaW5wdXRWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIElmIGVudGVyZWQgaXMgbm90IHBhc3NpbmcgcmVnRXggdGhlbiB0aGUgaW5wdXQgdmFsdWUgd2lsbCBiZSBsYXN0IHNhdmVkLi4uXG4gICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLmxhc3RWYWxpZElucHV0VmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -106,7 +106,8 @@ export class InputTestComponent extends InputCommandMixin(InputHelperMixin(Input
106
106
  this.onChange(value); // Notify Angular form about the change
107
107
  if (value && this._inputConfig.updateAsTouchedOnEdit)
108
108
  this.onTouched(); // Mark as touched
109
- this.inputElement.nativeElement.value = value;
109
+ if (!this._inputConfig.isDropdown)
110
+ this.inputElement.nativeElement.value = value;
110
111
  this.chdet.detectChanges();
111
112
  }
112
113
  handleInput(event) {
@@ -126,10 +127,12 @@ export class InputTestComponent extends InputCommandMixin(InputHelperMixin(Input
126
127
  }
127
128
  handleChangeInputAndUpdateControl(value) {
128
129
  this.onChange(value);
129
- this.inputElement.nativeElement.value = value;
130
- // Trigger all inputs directives that listen for input Event
131
- const event = new Event('input', { bubbles: true });
132
- this.inputElement.nativeElement.dispatchEvent(event);
130
+ if (!this._inputConfig.isDropdown) {
131
+ this.inputElement.nativeElement.value = value;
132
+ // Trigger all inputs directives that listen for input Event
133
+ const event = new Event('input', { bubbles: true });
134
+ this.inputElement.nativeElement.dispatchEvent(event);
135
+ }
133
136
  }
134
137
  handleInputFocus(event) {
135
138
  this.focusInputEvent.emit(event);
@@ -260,4 +263,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
260
263
  type: Output,
261
264
  args: ['dropDownKeyNavigation']
262
265
  }] } });
263
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGVzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1pbnB1dC9pbnB1dC10ZXN0L2lucHV0LXRlc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQvaW5wdXQtdGVzdC9pbnB1dC10ZXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixTQUFTLEVBQ1QsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJeEQsT0FBTyxFQUFvQixjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHNUQsUUFBUTtBQUNSLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDOUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFekUsUUFBUTtBQUNSLE9BQU8sRUFDSCxjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLDJCQUEyQixFQUMzQixjQUFjLEVBQ2Qsa0NBQWtDLEVBQ2xDLDZCQUE2QixFQUM3QixhQUFhLEVBQ2IsY0FBYyxFQUNkLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLGtCQUFrQixHQUNyQixNQUFNLFVBQVUsQ0FBQztBQUNsQixP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QkFFM0IsYUFBYTt3QkFDYixzQkFBc0I7d0JBQ3RCLG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFFdkIsYUFBYTt3QkFDYixxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIsK0JBQStCO3dCQUMvQix3QkFBd0I7d0JBQ3hCLHdCQUF3QjtxQkFDM0IsaUJBR2MsaUJBQWlCLENBQUMsSUFBSTs7MEJBc0VoQyxRQUFROzswQkFBSSxJQUFJOzBJQTNEMEIsWUFBWTtzQkFBMUQsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUMzQiwwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBSUcsVUFBVTtzQkFBbEIsS0FBSztnQkFHRywyQkFBMkI7c0JBRG5DLE1BQU07dUJBQUMsNkJBQTZCO2dCQUlYLGNBQWM7c0JBQXZDLE1BQU07dUJBQUMsZ0JBQWdCO2dCQUdILFNBQVM7c0JBQTdCLE1BQU07dUJBQUMsV0FBVztnQkFFRyxlQUFlO3NCQUFwQyxNQUFNO3VCQUFDLFlBQVk7Z0JBRUYsV0FBVztzQkFBNUIsTUFBTTt1QkFBQyxRQUFRO2dCQUVRLFlBQVk7c0JBQW5DLE1BQU07dUJBQUMsY0FBYztnQkFFTCxlQUFlO3NCQUEvQixNQUFNO3VCQUFDLE9BQU87Z0JBSWEscUJBQXFCO3NCQUFoRCxNQUFNO3VCQUFDLGtCQUFrQjtnQkFFTywwQkFBMEI7c0JBQTFELE1BQU07dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmdiTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5cbi8vIG1vZGVsc1xuaW1wb3J0IHsgSUNhSW5wdXQgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgSW5wdXRDaGFuZ2VWYWx1ZSwgSW5wdXRTdmdSb3V0ZXMgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBDb21tYW5kc0V2ZW50LCBMYWJlbENvbG9yIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuLy8gZW11bXNcbmltcG9ydCB7IElucHV0Q29tbWFuZHNUeXBlLCBJbnB1dFN0cmluZ0VudW0gfSBmcm9tICcuLi9lbnVtcyc7XG5pbXBvcnQgeyBEcm9wZG93blRlbXBsYXRlVHlwZUVudW0gfSBmcm9tICcuLi8uLi9jYS1pbnB1dC1kcm9wZG93bi9lbnVtcyc7XG5cbi8vIHBpcGVzXG5pbXBvcnQge1xuICAgIElucHV0Q2xhc3NQaXBlLFxuICAgIElucHV0Q29udGFpbmVyQ2xhc3NQaXBlLFxuICAgIElucHV0RHJvcGRvd25BcnJvd0NsYXNzUGlwZSxcbiAgICBJbnB1dEVycm9yUGlwZSxcbiAgICBJbnB1dFBsYWNlaG9sZGVySWNvblJpZ2h0Q2xhc3NQaXBlLFxuICAgIElucHV0UGxhY2Vob2xkZXJUZXh0Q2xhc3NQaXBlLFxuICAgIElucHV0VHlwZVBpcGUsXG4gICAgTGFiZWxDbGFzc1BpcGUsXG4gICAgU2hvd0NsZWFyUGlwZSxcbiAgICBTaG93RHJvcGRvd25BcnJvd1BpcGUsXG4gICAgU2hvd1BsYWNlaG9sZGVyVGV4dFBpcGUsXG4gICAgU2hvd1ZhbGlkQ2hlY2tQaXBlLFxufSBmcm9tICcuLi9waXBlcyc7XG5pbXBvcnQge1xuICAgIENhU3ZnUGlwZSxcbiAgICBMb2FkU3RhdHVzQ29sb3JQaXBlLFxuICAgIFRob3VzYW5kU2VwYXJhdG9yUGlwZSxcbn0gZnJvbSAnLi4vLi4vLi4vcGlwZXMnO1xuXG4vLyBtYXNrXG5pbXBvcnQgeyBOZ3hNYXNrTW9kdWxlIH0gZnJvbSAnbmd4LW1hc2snO1xuaW1wb3J0IHsgTmd4TWFza1NlcnZpY2UgfSBmcm9tICduZ3gtbWFzayc7XG5cbi8vIGNvbXBvbmVudHNcbmltcG9ydCB7IENhSW5wdXRQYXNzd29yZENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvY2EtaW5wdXQtcGFzc3dvcmQvY2EtaW5wdXQtcGFzc3dvcmQuY29tcG9uZW50JztcbmltcG9ydCB7IENhSW5wdXRQbGFjZWhvbGRlckljb25Db21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2NhLWlucHV0LXBsYWNlaG9sZGVyLWljb24vY2EtaW5wdXQtcGxhY2Vob2xkZXItaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dENsZWFyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jYS1pbnB1dC1jbGVhci9jYS1pbnB1dC1jbGVhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FBcHBUb29sdGlwVjJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jYS1hcHAtdG9vbHRpcC12Mi9jYS1hcHAtdG9vbHRpcC12Mi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dENvbW1hbmRzQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jYS1pbnB1dC1jb21tYW5kcy9jYS1pbnB1dC1jb21tYW5kcy5jb21wb25lbnQnO1xuXG4vLyBkaXJlY3RpdmVzXG5pbXBvcnQgeyBDYXBzTG9ja0RpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgTWF4VmFsdWVEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IFJlc3RyaWN0SW5wdXREaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IFByaWNlRm9ybWF0RGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBDb21tYW5kVmlzaWJsZURpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvY29tbWFuZC12aXNpYmxlLmRpcmVjdGl2ZSc7XG5cbi8vIGNsYXNzXG5pbXBvcnQgeyBFdmVudElucHV0TWFuYWdlciB9IGZyb20gJy4uL2Jhc2UtY2xhc3Nlcy9jYS1pbnB1dC1ldmVudC1tYW5hZ2VyJztcblxuLy8gbWl4aW5zXG5pbXBvcnQgeyBJbnB1dENvbW1hbmRNaXhpbiB9IGZyb20gJy4uL21peGlucy9pbnB1dC1jb21tYW5kLm1peGluJztcbmltcG9ydCB7IElucHV0SGVscGVyTWl4aW4gfSBmcm9tICcuLi9taXhpbnMvaW5wdXQtaGVscGVyLm1peGluJztcbmltcG9ydCB7IE9wdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vY2EtaW5wdXQtZHJvcGRvd24vbW9kZWxzJztcblxuY2xhc3MgSW5wdXRCYXNlIHtcbiAgICBwdWJsaWMgaW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjtcbiAgICBwdWJsaWMgX2lucHV0Q29uZmlnITogSUNhSW5wdXQ7XG4gICAgcHVibGljIGlzVmlzaWJsZUNvbW1hbmRzOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIG1hc2tBcHBsaWVyITogTmd4TWFza1NlcnZpY2U7XG4gICAgcHVibGljIHRob3VzYW5kU2VwYXJhdG9yUGlwZSE6IFRob3VzYW5kU2VwYXJhdG9yUGlwZTtcbiAgICBwdWJsaWMgaXNGb2N1c0lucHV0OiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGlzRWRpdElucHV0OiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGlzRHJvcGRvd25Ub2dnbGVyOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGlzVG91Y2hlZElucHV0OiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIHNldENvbW1hbmRFdmVudCE6IEV2ZW50SW5wdXRNYW5hZ2VyPENvbW1hbmRzRXZlbnQ+O1xuXG4gICAgcHVibGljIGhhbmRsZVRvZ2dsZURyb3Bkb3duT3B0aW9ucyE6IEV2ZW50RW1pdHRlcjx2b2lkPjtcblxuICAgIHB1YmxpYyBvblRvdWNoZWQgPSAoKSA9PiB7fTtcbiAgICBwdWJsaWMgb25DaGFuZ2UoXzogYW55KTogdm9pZCB7fVxuICAgIHB1YmxpYyBoYW5kbGVDaGFuZ2VJbnB1dEFuZFVwZGF0ZUNvbnRyb2woXzogSW5wdXRDaGFuZ2VWYWx1ZSk6IHZvaWQge31cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdjYS1pbnB1dC10ZXN0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgLy8gTW9kdWxlc1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIE5nYk1vZHVsZSxcbiAgICAgICAgQW5ndWxhclN2Z0ljb25Nb2R1bGUsXG4gICAgICAgIE5neE1hc2tNb2R1bGUsXG5cbiAgICAgICAgLy8gUGlwZXNcbiAgICAgICAgSW5wdXRFcnJvclBpcGUsXG4gICAgICAgIElucHV0Q29udGFpbmVyQ2xhc3NQaXBlLFxuICAgICAgICBJbnB1dENsYXNzUGlwZSxcbiAgICAgICAgSW5wdXRQbGFjZWhvbGRlclRleHRDbGFzc1BpcGUsXG4gICAgICAgIFNob3dQbGFjZWhvbGRlclRleHRQaXBlLFxuICAgICAgICBMYWJlbENsYXNzUGlwZSxcbiAgICAgICAgQ2FTdmdQaXBlLFxuICAgICAgICBMb2FkU3RhdHVzQ29sb3JQaXBlLFxuICAgICAgICBJbnB1dFBsYWNlaG9sZGVySWNvblJpZ2h0Q2xhc3NQaXBlLFxuICAgICAgICBNYXhWYWx1ZURpcmVjdGl2ZSxcbiAgICAgICAgSW5wdXRUeXBlUGlwZSxcbiAgICAgICAgU2hvd1ZhbGlkQ2hlY2tQaXBlLFxuICAgICAgICBTaG93RHJvcGRvd25BcnJvd1BpcGUsXG4gICAgICAgIElucHV0RHJvcGRvd25BcnJvd0NsYXNzUGlwZSxcblxuICAgICAgICAvLyBEaXJlY3RpdmVzXG4gICAgICAgIFJlc3RyaWN0SW5wdXREaXJlY3RpdmUsXG4gICAgICAgIFByaWNlRm9ybWF0RGlyZWN0aXZlLFxuICAgICAgICBTaG93Q2xlYXJQaXBlLFxuICAgICAgICBDYXBzTG9ja0RpcmVjdGl2ZSxcbiAgICAgICAgQ29tbWFuZFZpc2libGVEaXJlY3RpdmUsXG5cbiAgICAgICAgLy8gQ29tcG9uZW50c1xuICAgICAgICBDYUlucHV0Q2xlYXJDb21wb25lbnQsXG4gICAgICAgIENhQXBwVG9vbHRpcFYyQ29tcG9uZW50LFxuICAgICAgICBDYUlucHV0UGxhY2Vob2xkZXJJY29uQ29tcG9uZW50LFxuICAgICAgICBDYUlucHV0UGFzc3dvcmRDb21wb25lbnQsXG4gICAgICAgIENhSW5wdXRDb21tYW5kc0NvbXBvbmVudCxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC10ZXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vaW5wdXQtdGVzdC5jb21wb25lbnQuc2NzcycsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRUZXN0Q29tcG9uZW50XG4gICAgZXh0ZW5kcyBJbnB1dENvbW1hbmRNaXhpbihJbnB1dEhlbHBlck1peGluKElucHV0QmFzZSkpXG4gICAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdFxue1xuICAgIHB1YmxpYyBpbnB1dFZhbHVlOiBJbnB1dENoYW5nZVZhbHVlID0gJyc7XG4gICAgcHVibGljIG92ZXJyaWRlIF9pbnB1dENvbmZpZyE6IElDYUlucHV0O1xuXG4gICAgcHVibGljIGlucHV0U3ZnUm91dGVzID0gSW5wdXRTdmdSb3V0ZXM7XG5cbiAgICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIG92ZXJyaWRlIGlucHV0RWxlbWVudCE6IEVsZW1lbnRSZWY7XG4gICAgQElucHV0KCkgc2VsZWN0ZWREcm9wZG93bkxhYmVsQ29sb3IhOiBMYWJlbENvbG9yIHwgbnVsbDtcbiAgICBASW5wdXQoKSB0ZW1wbGF0ZSE6IHN0cmluZztcbiAgICBASW5wdXQoKSBpbmNvcnJlY3RWYWx1ZSE6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2V0IGlucHV0Q29uZmlnKGNvbmZpZzogSUNhSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faW5wdXRDb25maWcgPSBjb25maWc7XG4gICAgfVxuXG4gICAgQElucHV0KCkgYWN0aXZlSXRlbSE6IE9wdGlvbk1vZGVsIHwgbnVsbDtcblxuICAgIEBPdXRwdXQoJ2hhbmRsZVRvZ2dsZURyb3Bkb3duT3B0aW9ucycpXG4gICAgb3ZlcnJpZGUgaGFuZGxlVG9nZ2xlRHJvcGRvd25PcHRpb25zOiBFdmVudEVtaXR0ZXI8dm9pZD4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCdpbmNvcnJlY3RFdmVudCcpIGluY29ycmVjdElucHV0OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBAT3V0cHV0KCdibHVySW5wdXQnKSBibHVySW5wdXQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBAT3V0cHV0KCdmb2N1c0lucHV0JykgZm9jdXNJbnB1dEV2ZW50OiBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgnY2hhbmdlJykgY2hhbmdlSW5wdXQ6IEV2ZW50RW1pdHRlcjxJbnB1dENoYW5nZVZhbHVlPiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8SW5wdXRDaGFuZ2VWYWx1ZT4oKTtcbiAgICBAT3V0cHV0KCdjb21tYW5kRXZlbnQnKSBjb21tYW5kRXZlbnQ6IEV2ZW50RW1pdHRlcjxDb21tYW5kc0V2ZW50PiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8Q29tbWFuZHNFdmVudD4oKTtcbiAgICBAT3V0cHV0KCdjbGVhcicpIGNsZWFySW5wdXRFdmVudDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID1cbiAgICAgICAgbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLy8gRHJvcGRvd25cbiAgICBAT3V0cHV0KCdzaG93SGlkZURyb3Bkb3duJykgc2hvd0hpZGVEcm9wZG93bkV2ZW50OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgnZHJvcERvd25LZXlOYXZpZ2F0aW9uJykgZHJvcERvd25LZXlOYXZpZ2F0aW9uRXZlbnQ6IEV2ZW50RW1pdHRlcjx7XG4gICAgICAgIGtleUNvZGU6IG51bWJlcjtcbiAgICAgICAgZGF0YTogSUNhSW5wdXQgfCBudWxsO1xuICAgIH0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgICAgIGtleUNvZGU6IG51bWJlcjtcbiAgICAgICAgZGF0YTogSUNhSW5wdXQgfCBudWxsO1xuICAgIH0+KCk7XG5cbiAgICAvLyBldmVudHNcbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2V0Q29tbWFuZEV2ZW50ID0gbmV3IEV2ZW50SW5wdXRNYW5hZ2VyPENvbW1hbmRzRXZlbnQ+KFxuICAgICAgICBudWxsLFxuICAgICAgICB0aGlzLmNvbW1hbmRFdmVudFxuICAgICk7XG5cbiAgICBwdWJsaWMgaXNDYXBzTG9ja09uID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgaW5wdXRDb21tYW5kc1R5cGUgPSBJbnB1dENvbW1hbmRzVHlwZTtcbiAgICBwdWJsaWMgaW5wdXRTdHJpbmdFbnVtID0gSW5wdXRTdHJpbmdFbnVtO1xuICAgIHB1YmxpYyBkcm9wZG93blRlbXBsYXRlVHlwZUVudW0gPSBEcm9wZG93blRlbXBsYXRlVHlwZUVudW07XG5cbiAgICAvLyBQYXNzd29yZFxuICAgIHB1YmxpYyBpc1RvZ2dsZVBhc3N3b3JkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgZ2V0IGlucHV0Q29uZmlnKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5wdXRDb25maWc7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBwdWJsaWMgY2hkZXQ6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgbWFza0FwcGxpZXI6IE5neE1hc2tTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgdGhvdXNhbmRTZXBhcmF0b3JQaXBlOiBUaG91c2FuZFNlcGFyYXRvclBpcGVcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZUlucHV0QW5kVXBkYXRlQ29udHJvbCh0aGlzLmlucHV0VmFsdWUpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5faW5wdXRDb25maWcuYXV0b0ZvY3VzKVxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbnRyb2woKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbD8uY29udHJvbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKG9iajogSW5wdXRDaGFuZ2VWYWx1ZSk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudHJhbnNmb3JtVmFsdWUodGhpcy5faW5wdXRDb25maWcsIG9iaik7IC8vIOKchSBBcHBseSBtYXNrXG5cbiAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpOyAvLyBOb3RpZnkgQW5ndWxhciBmb3JtIGFib3V0IHRoZSBjaGFuZ2VcbiAgICAgICAgaWYgKHZhbHVlICYmIHRoaXMuX2lucHV0Q29uZmlnLnVwZGF0ZUFzVG91Y2hlZE9uRWRpdCkgdGhpcy5vblRvdWNoZWQoKTsgLy8gTWFyayBhcyB0b3VjaGVkXG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcblxuICAgICAgICB0aGlzLmNoZGV0LmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBoYW5kbGVJbnB1dChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTsgLy8gTm90aWZ5IEFuZ3VsYXIgZm9ybSBhYm91dCB0aGUgY2hhbmdlXG4gICAgICAgIGlmICh2YWx1ZSkgdGhpcy5vblRvdWNoZWQoKTsgLy8gTWFyayBhcyB0b3VjaGVkXG5cbiAgICAgICAgaWYgKHRoaXMuaW5wdXRWYWx1ZSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbD8ubWFya0FzVW50b3VjaGVkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJJbnB1dChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlSW5wdXRBbmRVcGRhdGVDb250cm9sKCcnKTtcbiAgICAgICAgdGhpcy5jbGVhcklucHV0RXZlbnQuZW1pdCh0cnVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgaGFuZGxlQ2hhbmdlSW5wdXRBbmRVcGRhdGVDb250cm9sKHZhbHVlOiBJbnB1dENoYW5nZVZhbHVlKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgICAgIC8vIFRyaWdnZXIgYWxsIGlucHV0cyBkaXJlY3RpdmVzIHRoYXQgbGlzdGVuIGZvciBpbnB1dCBFdmVudFxuICAgICAgICBjb25zdCBldmVudCA9IG5ldyBFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUgfSk7XG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUlucHV0Rm9jdXMoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0RXZlbnQuZW1pdChldmVudCk7XG4gICAgICAgIHRoaXMuaXNGb2N1c0lucHV0ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlSW5wdXRCbHVyKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgICAgIHRoaXMuYmx1cklucHV0LmVtaXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuaXNGb2N1c0lucHV0ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUG9wb3ZlclNob3duKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2lucHV0Q29uZmlnLmRyb3Bkb3duTGFiZWwpIHtcbiAgICAgICAgICAgIHRoaXMuaXNGb2N1c0lucHV0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvblBvcG92ZXJIaWRkZW4oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5faW5wdXRDb25maWcuZHJvcGRvd25MYWJlbCkge1xuICAgICAgICAgICAgdGhpcy5pc0ZvY3VzSW5wdXQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvblRvZ2dsZVBhc3N3b3JkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmlzVG9nZ2xlUGFzc3dvcmQgPSAhdGhpcy5pc1RvZ2dsZVBhc3N3b3JkO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVDYXBzTG9jayhzdGF0dXM6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0NhcHNMb2NrT24gPSBzdGF0dXM7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUNvbW1hbmRWaXNpYmxlKHN0YXR1czogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlzVmlzaWJsZUNvbW1hbmRzID0gc3RhdHVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBpZGVudGlmeShpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHRoaXMuZHJvcERvd25LZXlOYXZpZ2F0aW9uRXZlbnQuZW1pdCh7XG4gICAgICAgICAgICBrZXlDb2RlOiBldmVudC5rZXlDb2RlLFxuICAgICAgICAgICAgZGF0YTogdGhpcy5pbnB1dENvbmZpZyxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwiaW5wdXQtY3VzdG9tLWdyb3VwIHt7IF9pbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVwiXG4gICAgW25nQ2xhc3NdPVwiXG4gICAgICAgIGNvbnRyb2xcbiAgICAgICAgICAgIHwgaW5wdXRDb250YWluZXJDbGFzc1xuICAgICAgICAgICAgICAgIDogaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgOiBjb250cm9sPy50b3VjaGVkIVxuICAgICAgICAgICAgICAgIDogX2lucHV0Q29uZmlnXG4gICAgICAgICAgICAgICAgOiBjb250cm9sPy52YWx1ZVxuICAgIFwiXG4gICAgbmdiVG9vbHRpcFxuICAgIFttYWluQ2FUb29sdGlwXT1cImNvbnRyb2w/LmVycm9ycyB8IGlucHV0RXJyb3I6IF9pbnB1dENvbmZpZy5uYW1lXCJcbiAgICBbdG9vbHRpcEJhY2tncm91bmRdPVwiJyNERjNDM0MnXCJcbiAgICBbZGlzYWJsZVRvb2x0aXBdPVwiIV9pbnB1dENvbmZpZy5yZXF1aXJlZExhYmVsIHx8ICEhY29udHJvbD8udmFsaWRcIlxuICAgIHBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICB0cmlnZ2Vycz1cImhvdmVyXCJcbj5cbiAgICA8IS0tIElucHV0IENvbW1hbmRzIC0tPlxuICAgIEBpZiAoX2lucHV0Q29uZmlnLmNvbW1hbmRzPy5hY3RpdmUgJiYgaXNWaXNpYmxlQ29tbWFuZHMpIHtcbiAgICAgICAgPGFwcC1jYS1pbnB1dC1jb21tYW5kc1xuICAgICAgICAgICAgW2lucHV0Q29uZmlnXT1cIl9pbnB1dENvbmZpZ1wiXG4gICAgICAgICAgICBbaXNGb2N1c0lucHV0XT1cImlzRm9jdXNJbnB1dFwiXG4gICAgICAgICAgICBbaXNWaXNpYmxlQ29tbWFuZHNdPVwiaXNWaXNpYmxlQ29tbWFuZHNcIlxuICAgICAgICAgICAgKG9uQ29tbWFuZHNDbGljayk9XCJvbkNvbW1hbmRzKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvYXBwLWNhLWlucHV0LWNvbW1hbmRzPlxuICAgIH1cbiAgICA8IS0tIElucHV0IFZhbGlkIENoZWNrIC0tPlxuICAgIEBpZiAoXG4gICAgICAgIGNvbnRyb2wgfCBzaG93VmFsaWRDaGVjazogaXNGb2N1c0lucHV0IDogX2lucHV0Q29uZmlnIDogY29udHJvbD8udmFsdWVcbiAgICApIHtcbiAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICBjbGFzcz1cImlucHV0LXJlcXVpcmVkLWNoZWNrIHt7IF9pbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVwiXG4gICAgICAgICAgICBbc3JjXT1cImlucHV0U3ZnUm91dGVzLmNvbmZpcm1TdmdcIlxuICAgICAgICA+PC9zdmctaWNvbj5cbiAgICB9XG4gICAgPCEtLSBJbnB1dCBQYXNzd29yZCBDYXBzIExvY2sgQW5kIEV5ZSAtLT5cbiAgICBAaWYgKF9pbnB1dENvbmZpZy50eXBlID09PSAncGFzc3dvcmQnKSB7XG4gICAgICAgIDxhcHAtY2EtaW5wdXQtcGFzc3dvcmRcbiAgICAgICAgICAgIFtpbnB1dENvbmZpZ109XCJfaW5wdXRDb25maWdcIlxuICAgICAgICAgICAgW2dldFN1cGVyQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgICAgIFtpc0ZvY3VzSW5wdXRdPVwiaXNGb2N1c0lucHV0XCJcbiAgICAgICAgICAgIFtpc1RvdWNoZWRJbnB1dF09XCJpc1RvdWNoZWRJbnB1dFwiXG4gICAgICAgICAgICBbaXNDYXBzTG9ja09uXT1cImlzQ2Fwc0xvY2tPblwiXG4gICAgICAgICAgICBbaXNUb2dnbGVQYXNzd29yZF09XCJpc1RvZ2dsZVBhc3N3b3JkXCJcbiAgICAgICAgICAgIChvblRvZ2dsZVBhc3N3b3JkQ2xpY2spPVwib25Ub2dnbGVQYXNzd29yZCgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L2FwcC1jYS1pbnB1dC1wYXNzd29yZD5cbiAgICB9XG4gICAgPCEtLSBJbnB1dCBDbGVhciAtLT5cbiAgICBAaWYgKF9pbnB1dENvbmZpZyB8IHNob3dDbGVhcikge1xuICAgICAgICA8YXBwLWNhLWlucHV0LWNsZWFyXG4gICAgICAgICAgICBbaW5wdXRDb25maWddPVwiX2lucHV0Q29uZmlnXCJcbiAgICAgICAgICAgIFtnZXRTdXBlckNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICAgICAgICBbaXNGb2N1c0lucHV0XT1cImlzRm9jdXNJbnB1dFwiXG4gICAgICAgICAgICBbaW5jb3JyZWN0VmFsdWVdPVwiaW5jb3JyZWN0VmFsdWVcIlxuICAgICAgICAgICAgW3NlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yXT1cInNlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yXCJcbiAgICAgICAgICAgIFt0ZW1wbGF0ZV09XCJ0ZW1wbGF0ZVwiXG4gICAgICAgICAgICAoY2xlYXJJbnB1dENsaWNrKT1cImNsZWFySW5wdXQoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgPC9hcHAtY2EtaW5wdXQtY2xlYXI+XG4gICAgfVxuXG4gICAgPCEtLSBJbnB1dCBEcm9wZG93biBBcnJvdyAtLT5cbiAgICBAaWYgKF9pbnB1dENvbmZpZyB8IHNob3dEcm9wZG93bkFycm93KSB7XG4gICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1kcm9wZG93bi1hcnJvdyB7eyBfaW5wdXRDb25maWcuY3VzdG9tQ2xhc3MgfX1cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgY29udHJvbFxuICAgICAgICAgICAgICAgICAgICB8IGlucHV0RHJvcGRvd25BcnJvd0NsYXNzXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBfaW5wdXRDb25maWdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaXNUb3VjaGVkSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8udmFsdWVcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbc3JjXT1cImlucHV0U3ZnUm91dGVzLmlucHV0RHJvcGRvd25BcnJvd1N2Z1wiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd25PcHRpb25zKClcIlxuICAgICAgICA+PC9zdmctaWNvbj5cbiAgICB9XG5cbiAgICA8IS0tIElucHV0IFBsYWNlaG9sZGVyIEljb24gLS0+XG4gICAgQGlmIChfaW5wdXRDb25maWcucGxhY2Vob2xkZXJJY29uKSB7XG4gICAgICAgIDxhcHAtY2EtaW5wdXQtcGxhY2Vob2xkZXItaWNvblxuICAgICAgICAgICAgW2lucHV0Q29uZmlnXT1cIl9pbnB1dENvbmZpZ1wiXG4gICAgICAgICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgICAgICAgW2lzRm9jdXNJbnB1dF09XCJpc0ZvY3VzSW5wdXRcIlxuICAgICAgICAgICAgW2lzVG91Y2hlZElucHV0XT1cImNvbnRyb2w/LnRvdWNoZWQhXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZERyb3Bkb3duTGFiZWxDb2xvcl09XCJzZWxlY3RlZERyb3Bkb3duTGFiZWxDb2xvclwiXG4gICAgICAgICAgICBbaXNFZGl0SW5wdXRdPVwiaXNFZGl0SW5wdXRcIlxuICAgICAgICAgICAgKG9uUGxhY2Vob2xkZXJJY29uRXZlbnRFbWl0dGVyKT1cIm9uUGxhY2Vob2xkZXJJY29uRXZlbnQoJGV2ZW50KVwiXG4gICAgICAgICAgICAob25Qb3BvdmVyU2hvd25FbWl0dGVyKT1cIm9uUG9wb3ZlclNob3duKClcIlxuICAgICAgICAgICAgKG9uUG9wb3ZlckhpZGRlbkVtaXR0ZXIpPVwib25Qb3BvdmVySGlkZGVuKClcIlxuICAgICAgICA+XG4gICAgICAgIDwvYXBwLWNhLWlucHV0LXBsYWNlaG9sZGVyLWljb24+XG4gICAgfVxuXG4gICAgPCEtLSBJbnB1dCBQbGFjZWhvbGRlciBUZXh0IC0tPlxuICAgIEBpZiAoXG4gICAgICAgIF9pbnB1dENvbmZpZ1xuICAgICAgICAgICAgfCBzaG93UGxhY2Vob2xkZXJUZXh0OiBjb250cm9sIDogaXNWaXNpYmxlQ29tbWFuZHMgOiBjb250cm9sPy52YWx1ZVxuICAgICkge1xuICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJjYS1wbGFjZWhvbGRlci10ZXh0IHt7IF9pbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJcbiAgICAgICAgICAgICAgICBpc0ZvY3VzSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgfCBpbnB1dFBsYWNlaG9sZGVyVGV4dENsYXNzXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnRvdWNoZWQhXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgICAgIDogX2lucHV0Q29uZmlnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlzVmlzaWJsZUNvbW1hbmRzXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnZhbHVlXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3N0eWxlLmxlZnRdPVwiXG4gICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVyVGV4dD8udG9Mb3dlckNhc2UoKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgaW5wdXRTdHJpbmdFbnVtLlBFUlNPTlMgfHxcbiAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJUZXh0Py50b0xvd2VyQ2FzZSgpID09PVxuICAgICAgICAgICAgICAgICAgICBpbnB1dFN0cmluZ0VudW0uVkVISUNMRVNcbiAgICAgICAgICAgICAgICAgICAgPyAzMCArIChjb250cm9sPy52YWx1ZT8udG9TdHJpbmcoKT8ubGVuZ3RoICsgMSkgKiA5ICsgJ3B4J1xuICAgICAgICAgICAgICAgICAgICA6IGlzRm9jdXNJbnB1dCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVyVGV4dD8udG9Mb3dlckNhc2UoKSAhPT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dENvbW1hbmRzVHlwZS5NT05USFNcbiAgICAgICAgICAgICAgICAgICAgICA/ICdhdXRvJ1xuICAgICAgICAgICAgICAgICAgICAgIDogKGNvbnRyb2w/LnZhbHVlPy50b1N0cmluZygpPy5sZW5ndGggKyAxKSAqIDggKyAncHgnXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3N0eWxlLnJpZ2h0XT1cIlxuICAgICAgICAgICAgICAgIGlzRm9jdXNJbnB1dCAmJlxuICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlclRleHQ/LnRvTG93ZXJDYXNlKCkgIT09XG4gICAgICAgICAgICAgICAgICAgIGlucHV0Q29tbWFuZHNUeXBlLk1PTlRIU1xuICAgICAgICAgICAgICAgICAgICA/ICcyOHB4J1xuICAgICAgICAgICAgICAgICAgICA6ICdhdXRvJ1xuICAgICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVyVGV4dCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgfVxuXG4gICAgPCEtLSBJbnB1dCBMYWJlbCBDb3VudGVyIC0tPlxuICAgIEBpZiAoXG4gICAgICAgIHNlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yICYmXG4gICAgICAgIGNvbnRyb2w/LnZhbHVlICYmXG4gICAgICAgICFpc0ZvY3VzSW5wdXQgJiZcbiAgICAgICAgIV9pbnB1dENvbmZpZy5pc0Rpc2FibGVkICYmXG4gICAgICAgIF9pbnB1dENvbmZpZy5zaG93Q291bnRcbiAgICApIHtcbiAgICAgICAgPHBcbiAgICAgICAgICAgIFtzdHlsZS50b3BdPVwiJzRweCdcIlxuICAgICAgICAgICAgW3N0eWxlLmxlZnRdPVwiKGNvbnRyb2w/LnZhbHVlPy50b1N0cmluZygpPy5sZW5ndGggKyA2LjUpICogOCArICdweCdcIlxuICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1sYWJlbC1jb3VudGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgc2VsZWN0ZWREcm9wZG93bkxhYmVsQ29sb3IuY291bnQgfX1cbiAgICAgICAgPC9wPlxuICAgIH1cblxuICAgIDwhLS0gU3BlY2lhbCBEcm9wZG93biBTZWxlY3RlZCBTVkcgd2l0aCBvciBXaXRob3V0IFRleHQgLS0+XG4gICAgQGlmIChcbiAgICAgICAgX2lucHV0Q29uZmlnPy5kcm9wZG93bkltYWdlSW5wdXQ/Lmljb25zUGF0aCAmJlxuICAgICAgICBhY3RpdmVJdGVtICYmXG4gICAgICAgICFfaW5wdXRDb25maWc/LmhpZGVBbGxJdGVtc0luSW5wdXREcm9wZG93biAmJlxuICAgICAgICAhKCFfaW5wdXRDb25maWcuZHJvcGRvd25JbWFnZUlucHV0Py53aXRoVGV4dCAmJiBpc0ZvY3VzSW5wdXQpICYmXG4gICAgICAgICEoXG4gICAgICAgICAgICBbJ3RydWNrJywgJ3RyYWlsZXInXS5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcuZHJvcGRvd25JbWFnZUlucHV0Py50ZW1wbGF0ZSFcbiAgICAgICAgICAgICkgJiZcbiAgICAgICAgICAgIGlzRm9jdXNJbnB1dCAmJlxuICAgICAgICAgICAgX2lucHV0Q29uZmlnLmRyb3Bkb3duSW1hZ2VJbnB1dD8ucmVtb3ZlXG4gICAgICAgICkgJiZcbiAgICAgICAgIV9pbnB1dENvbmZpZz8uZHJvcGRvd25JbWFnZUlucHV0Py5uYW1lSW5pdGlhbHNJbnN0ZWFkVXJsXG4gICAgKSB7XG4gICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgW3NyY109XCJfaW5wdXRDb25maWcuZHJvcGRvd25JbWFnZUlucHV0Py5pY29uc1BhdGghXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZHJvcGRvd24tc2VsZWN0ZWQtaW1hZ2Uge3tcbiAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcuZHJvcGRvd25JbWFnZUlucHV0Py5jbGFzc1xuICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICd1bnNldC1jb2xvcic6XG4gICAgICAgICAgICAgICAgICAgIGlzRm9jdXNJbnB1dCAmJiBfaW5wdXRDb25maWcuZHJvcGRvd25JbWFnZUlucHV0Py5jbGFzcyxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgW3N2Z1N0eWxlXT1cIntcbiAgICAgICAgICAgICAgICBmaWxsOlxuICAgICAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcuZHJvcGRvd25JbWFnZUlucHV0Py5jb2xvciAmJiAhaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICA/IF9pbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/LmNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICcjZmZmZmZmJyxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgIDwvc3ZnLWljb24+XG4gICAgfVxuXG4gICAgPCEtLSBJbnB1dCBMYWJlbCAtLT5cbiAgICBAaWYgKCFfaW5wdXRDb25maWcubXVsdGlTZWxlY3REcm9wZG93bkFjdGl2ZSkge1xuICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIFtmb3JdPVwiX2lucHV0Q29uZmlnLm5hbWVcIlxuICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1sYWJlbCB7eyBfaW5wdXRDb25maWcuY3VzdG9tQ2xhc3MgfX0ge3tcbiAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcubXVsdGlwbGVMYWJlbD8uY3VzdG9tQ2xhc3NcbiAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgICAgICAgICAgIGNvbnRyb2w/LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgIHwgbGFiZWxDbGFzc1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBpc0ZvY3VzSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIDogX2lucHV0Q29uZmlnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlzVG91Y2hlZElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LmludmFsaWRcbiAgICAgICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8udG91Y2hlZFxuICAgICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGlmIChfaW5wdXRDb25maWcubGFiZWwpIHtcbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBfaW5wdXRDb25maWcubGFiZWwgfX0gPC9zcGFuPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKF9pbnB1dENvbmZpZy5tdWx0aXBsZUxhYmVsPy5sYWJlbHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIl9pbnB1dENvbmZpZy5tdWx0aXBsZUxhYmVsPy5jdXN0b21DbGFzcyFcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAnbXVsdGlwbGUtbGFiZWxzLXBvc2l0aW9uLW9uLWZvY3VzJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0ZvY3VzSW5wdXQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcubXVsdGlwbGVJbnB1dFZhbHVlcz8ub3B0aW9ucz8ubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLmlzUmVxdWlyZWQgJiYgIV9pbnB1dENvbmZpZy5pc0Rpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwgb2YgX2lucHV0Q29uZmlnLm11bHRpcGxlTGFiZWw/LmxhYmVscztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrICRpbmRleFxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9sYWJlbD5cbiAgICB9XG5cbiAgICA8aW5wdXRcbiAgICAgICAgI2lucHV0XG4gICAgICAgIChpbnB1dCk9XCJoYW5kbGVJbnB1dCgkZXZlbnQpXCJcbiAgICAgICAgW3Jlc3RyaWN0SW5wdXRdPVwiaW5wdXRDb25maWdcIlxuICAgICAgICBwcmljZUZvcm1hdFxuICAgICAgICBbcHJpY2VTZXBhcmF0b3JdPVwiXG4gICAgICAgICAgICBpbnB1dENvbmZpZy5wcmljZVNlcGFyYXRvciB8fCBpbnB1dENvbmZpZy50aG91c2FuZFNlcGFyYXRvclxuICAgICAgICBcIlxuICAgICAgICAoZm9jdXMpPVwiaGFuZGxlSW5wdXRGb2N1cygkZXZlbnQpXCJcbiAgICAgICAgKGJsdXIpPVwiaGFuZGxlSW5wdXRCbHVyKCRldmVudClcIlxuICAgICAgICAoa2V5ZG93bik9XCJoYW5kbGVLZXlEb3duKCRldmVudClcIlxuICAgICAgICBbcmVhZE9ubHldPVwiX2lucHV0Q29uZmlnLnJlYWRPbmx5XCJcbiAgICAgICAgW3R5cGVdPVwiX2lucHV0Q29uZmlnLnR5cGUgfCBpbnB1dFR5cGU6IGlzVG9nZ2xlUGFzc3dvcmRcIlxuICAgICAgICBjbGFzcz1cImlucHV0LWNvbnRyb2xcbiAgICAgICAgICAgIHt7IF9pbnB1dENvbmZpZy50ZXh0VHJhbnNmb3JtIH19XG4gICAgICAgICAgICB7eyBfaW5wdXRDb25maWcudGV4dEFsaWduIH19XG4gICAgICAgICAgICB7eyBfaW5wdXRDb25maWcuY3VzdG9tQ2xhc3MgfX1cbiAgICAgICAgXCJcbiAgICAgICAgW2FwcE1heFZhbHVlXT1cImlucHV0Q29uZmlnLm1heFwiXG4gICAgICAgIGFwcENhcHNMb2NrXG4gICAgICAgIChjYXBzTG9ja1N0YXR1cyk9XCJoYW5kbGVDYXBzTG9jaygkZXZlbnQpXCJcbiAgICAgICAgY29tbWFuZFZpc2libGVcbiAgICAgICAgKGNvbW1hbmRWaXNpYmxlKT1cImhhbmRsZUNvbW1hbmRWaXNpYmxlKCRldmVudClcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAgICAgICAoX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVySW5zdGVhZE9mTGFiZWwgJiZcbiAgICAgICAgICAgIF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlciAmJlxuICAgICAgICAgICAgaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgPyBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJcbiAgICAgICAgICAgICAgICA6ICcnKSB8fFxuICAgICAgICAgICAgKF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlciAmJiBpc0ZvY3VzSW5wdXRcbiAgICAgICAgICAgICAgICA/IF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlclxuICAgICAgICAgICAgICAgIDogJycpXG4gICAgICAgIFwiXG4gICAgICAgIFttYXNrXT1cIl9pbnB1dENvbmZpZy5tYXNrXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICBjb250cm9sXG4gICAgICAgICAgICAgICAgfCBpbnB1dENsYXNzXG4gICAgICAgICAgICAgICAgICAgIDogaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8udG91Y2hlZCFcbiAgICAgICAgICAgICAgICAgICAgOiBfaW5wdXRDb25maWdcbiAgICAgICAgICAgICAgICAgICAgOiBpbnB1dFxuICAgICAgICAgICAgICAgICAgICA6IGlzVmlzaWJsZUNvbW1hbmRzXG4gICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8udmFsdWVcbiAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy5pbnZhbGlkXG4gICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8udG91Y2hlZFxuICAgICAgICAgICAgICAgICAgICA6IGlzRHJvcGRvd25Ub2dnbGVyXG4gICAgICAgICAgICAgICAgICAgIDogaXNFZGl0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgOiB0ZW1wbGF0ZVxuICAgICAgICBcIlxuICAgIC8+XG5cbiAgICA8IS0tIFBsYWNlaG9sZGVyIEljb24gb24gUmlnaHQgU2lkZSAtLT5cbiAgICBAaWYgKF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlckljb25SaWdodFNpZGUpIHtcbiAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICBjbGFzcz1cInBsYWNlaG9sZGVyLWljb24tcmlnaHQtc2lkZSB7e1xuICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlckljb25Db2xvclxuICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgICAgIHwgaW5wdXRQbGFjZWhvbGRlckljb25SaWdodENsYXNzXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgICAgIDogX2lucHV0Q29uZmlnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlzVG91Y2hlZElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnZhbHVlXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3NyY109XCJcbiAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJJY29uUmlnaHRTaWRlLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgfCBjYVN2ZzogJ2NvbW1vbidcbiAgICAgICAgICAgIFwiXG4gICAgICAgID48L3N2Zy1pY29uPlxuICAgIH1cblxuICAgIDwhLS0gSW5wdXQgRXJyb3IgTWVzc2FnZSAtLT5cbiAgICBAaWYgKFxuICAgICAgICAhKCFjb250cm9sPy52YWx1ZSAmJiBpc0ZvY3VzSW5wdXQpICYmXG4gICAgICAgIChpc1RvdWNoZWRJbnB1dCB8fCBjb250cm9sPy50b3VjaGVkIHx8IGNvbnRyb2w/LnZhbHVlKSAmJlxuICAgICAgICBjb250cm9sPy5pbnZhbGlkICYmXG4gICAgICAgICFfaW5wdXRDb25maWcuaXNJbnZhbGlkU2VhcmNoSW5Ecm9wZG93biAmJlxuICAgICAgICAhX2lucHV0Q29uZmlnLmlzRGlzYWJsZWRcbiAgICApIHtcbiAgICAgICAgQGlmIChcbiAgICAgICAgICAgICEoX2lucHV0Q29uZmlnLmhpZGVFcnJvck1lc3NhZ2UgfHwgX2lucHV0Q29uZmlnLmVycm9ySW5zaWRlSW5wdXQpXG4gICAgICAgICkge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1lcnJvciB7eyBfaW5wdXRDb25maWcuY3VzdG9tQ2xhc3MgfX1cIj5cbiAgICAgICAgICAgICAgICB7eyBjb250cm9sPy5lcnJvcnMgfCBpbnB1dEVycm9yOiBfaW5wdXRDb25maWcubmFtZSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBFcnJvciBNZXNzYWdlIEluc2lkZSBJbnB1dCAtLT5cbiAgICAgICAgQGlmIChfaW5wdXRDb25maWcuZXJyb3JJbnNpZGVJbnB1dCkge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1pbnNpZGUtaW5wdXQge3sgX2lucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XCI+XG4gICAgICAgICAgICAgICAge3sgY29udHJvbD8uZXJyb3JzIHwgaW5wdXRFcnJvcjogX2lucHV0Q29uZmlnLm5hbWUgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoX2lucHV0Q29uZmlnLmZpeGVkUGxhY2hvbGRlciAmJiBpbnB1dC52YWx1ZSkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImlucHV0LWZpeGVkLXBsYWNlaG9kZXItbGFiZWxcIj5cbiAgICAgICAgICAgIHt7IF9pbnB1dENvbmZpZy5maXhlZFBsYWNob2xkZXIgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIH1cbjwvZGl2PlxuIl19
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGVzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1pbnB1dC9pbnB1dC10ZXN0L2lucHV0LXRlc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQvaW5wdXQtdGVzdC9pbnB1dC10ZXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFDSixTQUFTLEVBQ1QsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJeEQsT0FBTyxFQUFvQixjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHNUQsUUFBUTtBQUNSLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDOUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFekUsUUFBUTtBQUNSLE9BQU8sRUFDSCxjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLDJCQUEyQixFQUMzQixjQUFjLEVBQ2Qsa0NBQWtDLEVBQ2xDLDZCQUE2QixFQUM3QixhQUFhLEVBQ2IsY0FBYyxFQUNkLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLGtCQUFrQixHQUNyQixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQ0gsU0FBUyxFQUNULG1CQUFtQixHQUV0QixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU87QUFDUCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBR3pDLGFBQWE7QUFDYixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw2RUFBNkUsQ0FBQztBQUM5SCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUV2RyxhQUFhO0FBQ2IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRWxGLFFBQVE7QUFDUixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUUzRSxTQUFTO0FBQ1QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7O0FBR2hFLE1BQU0sU0FBUztJQUFmO1FBR1csc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBR25DLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUtoQyxjQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBR2pDLENBQUM7SUFGVSxRQUFRLENBQUMsQ0FBTSxJQUFVLENBQUM7SUFDMUIsaUNBQWlDLENBQUMsQ0FBbUIsSUFBVSxDQUFDO0NBQzFFO0FBOENELE1BQU0sT0FBTyxrQkFDVCxTQUFRLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBV3RELElBQWEsV0FBVyxDQUFDLE1BQWdCO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO0lBQy9CLENBQUM7SUFnREQsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRUQsWUFDK0IsU0FBb0IsRUFDeEMsS0FBd0IsRUFDZixXQUEyQixFQUMzQixxQkFBNEM7UUFFNUQsS0FBSyxFQUFFLENBQUM7UUFMbUIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN4QyxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBbkV6RCxlQUFVLEdBQXFCLEVBQUUsQ0FBQztRQUdsQyxtQkFBYyxHQUFHLGNBQWMsQ0FBQztRQWE5QixnQ0FBMkIsR0FDaEMsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVILG1CQUFjLEdBQ3BDLElBQUksWUFBWSxFQUFXLENBQUM7UUFFWCxjQUFTLEdBQzFCLElBQUksWUFBWSxFQUFXLENBQUM7UUFDVixvQkFBZSxHQUNqQyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBQ2pCLGdCQUFXLEdBQ3pCLElBQUksWUFBWSxFQUFvQixDQUFDO1FBQ2pCLGlCQUFZLEdBQ2hDLElBQUksWUFBWSxFQUFpQixDQUFDO1FBQ3JCLG9CQUFlLEdBQzVCLElBQUksWUFBWSxFQUFXLENBQUM7UUFFaEMsV0FBVztRQUNpQiwwQkFBcUIsR0FDN0MsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUNDLCtCQUEwQixHQUd0RCxJQUFJLFlBQVksRUFHakIsQ0FBQztRQUVMLFNBQVM7UUFDTyxvQkFBZSxHQUFHLElBQUksaUJBQWlCLENBQ25ELElBQUksRUFDSixJQUFJLENBQUMsWUFBWSxDQUNwQixDQUFDO1FBRUssaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFckIsc0JBQWlCLEdBQUcsaUJBQWlCLENBQUM7UUFDdEMsb0JBQWUsR0FBRyxlQUFlLENBQUM7UUFDbEMsNkJBQXdCLEdBQUcsd0JBQXdCLENBQUM7UUFFM0QsV0FBVztRQUNKLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQWFyQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDeEMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ1gsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUV4RCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUztnQkFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQztJQUNuQyxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsRUFBTztRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBYztRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sVUFBVSxDQUFDLEdBQXFCO1FBQ25DLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLGVBQWU7UUFFMUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLHVDQUF1QztRQUM3RCxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLHFCQUFxQjtZQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQjtRQUUxRixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVO1lBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVk7UUFDcEIsTUFBTSxLQUFLLEdBQUksS0FBSyxDQUFDLE1BQTJCLENBQUMsS0FBSyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyx1Q0FBdUM7UUFDN0QsSUFBSSxLQUFLO1lBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsa0JBQWtCO1FBRS9DLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxDQUFDO1FBQ3BDLENBQUM7SUFDTCxDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQVk7UUFDMUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsaUNBQWlDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVlLGlDQUFpQyxDQUFDLEtBQXVCO1FBQ3JFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFckIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUM5Qyw0REFBNEQ7WUFDNUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pELENBQUM7SUFDTCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsS0FBaUI7UUFDckMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDN0IsQ0FBQztJQUVNLGVBQWUsQ0FBQyxLQUFpQjtRQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRU0sY0FBYztRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDOUIsQ0FBQztJQUNMLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxLQUFZO1FBQ2hDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDbkQsQ0FBQztJQUVNLGNBQWMsQ0FBQyxNQUFlO1FBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO0lBQy9CLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxNQUFlO1FBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUM7SUFDcEMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFhO1FBQ3pCLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFTSxhQUFhLENBQUMsS0FBb0I7UUFDckMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQztZQUNqQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQ3pCLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBeExRLGtCQUFrQjttR0FBbEIsa0JBQWtCLDB0QkMzSS9CLHVtWEE4VUE7Z0JEM09RLFVBQVU7Z0JBQ1YsWUFBWSw0SEFDWixTQUFTLHNXQUNULG9CQUFvQixnT0FDcEIsYUFBYTtnQkFFYixRQUFRO2dCQUNSLGNBQWMsOENBQ2QsdUJBQXVCLHVEQUN2QixjQUFjLDhDQUNkLDZCQUE2Qiw2REFDN0IsdUJBQXVCLHVEQUN2QixjQUFjLDhDQUNkLFNBQVMseUNBRVQsa0NBQWtDLHVFQUNsQyxpQkFBaUIsOEVBQ2pCLGFBQWEsNkNBQ2Isa0JBQWtCLGtEQUNsQixxQkFBcUIscURBQ3JCLDJCQUEyQjtnQkFFM0IsYUFBYTtnQkFDYixzQkFBc0IsdUZBQ3RCLG9CQUFvQixpRkFDcEIsYUFBYSxrREFDYixpQkFBaUIsdUZBQ2pCLHVCQUF1QjtnQkFFdkIsYUFBYTtnQkFDYixxQkFBcUIscU5BQ3JCLHVCQUF1QixxT0FDdkIsK0JBQStCLHVUQUMvQix3QkFBd0Isd05BQ3hCLHdCQUF3Qjs7NEZBTW5CLGtCQUFrQjtrQkE1QzlCLFNBQVM7K0JBQ0ksZUFBZSxjQUNiLElBQUksV0FDUDt3QkFDTCxVQUFVO3dCQUNWLFlBQVk7d0JBQ1osU0FBUzt3QkFDVCxvQkFBb0I7d0JBQ3BCLGFBQWE7d0JBRWIsUUFBUTt3QkFDUixjQUFjO3dCQUNkLHVCQUF1Qjt3QkFDdkIsY0FBYzt3QkFDZCw2QkFBNkI7d0JBQzdCLHVCQUF1Qjt3QkFDdkIsY0FBYzt3QkFDZCxTQUFTO3dCQUNULG1CQUFtQjt3QkFDbkIsa0NBQWtDO3dCQUNsQyxpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixxQkFBcUI7d0JBQ3JCLDJCQUEyQjt3QkFFM0IsYUFBYTt3QkFDYixzQkFBc0I7d0JBQ3RCLG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFFdkIsYUFBYTt3QkFDYixxQkFBcUI7d0JBQ3JCLHVCQUF1Qjt3QkFDdkIsK0JBQStCO3dCQUMvQix3QkFBd0I7d0JBQ3hCLHdCQUF3QjtxQkFDM0IsaUJBR2MsaUJBQWlCLENBQUMsSUFBSTs7MEJBcUVoQyxRQUFROzswQkFBSSxJQUFJOzBJQTNEMEIsWUFBWTtzQkFBMUQsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUMzQiwwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBSUcsVUFBVTtzQkFBbEIsS0FBSztnQkFHRywyQkFBMkI7c0JBRG5DLE1BQU07dUJBQUMsNkJBQTZCO2dCQUlYLGNBQWM7c0JBQXZDLE1BQU07dUJBQUMsZ0JBQWdCO2dCQUdILFNBQVM7c0JBQTdCLE1BQU07dUJBQUMsV0FBVztnQkFFRyxlQUFlO3NCQUFwQyxNQUFNO3VCQUFDLFlBQVk7Z0JBRUYsV0FBVztzQkFBNUIsTUFBTTt1QkFBQyxRQUFRO2dCQUVRLFlBQVk7c0JBQW5DLE1BQU07dUJBQUMsY0FBYztnQkFFTCxlQUFlO3NCQUEvQixNQUFNO3VCQUFDLE9BQU87Z0JBSWEscUJBQXFCO3NCQUFoRCxNQUFNO3VCQUFDLGtCQUFrQjtnQkFFTywwQkFBMEI7c0JBQTFELE1BQU07dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmdiTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5cbi8vIG1vZGVsc1xuaW1wb3J0IHsgSUNhSW5wdXQgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgSW5wdXRDaGFuZ2VWYWx1ZSwgSW5wdXRTdmdSb3V0ZXMgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBDb21tYW5kc0V2ZW50LCBMYWJlbENvbG9yIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuLy8gZW11bXNcbmltcG9ydCB7IElucHV0Q29tbWFuZHNUeXBlLCBJbnB1dFN0cmluZ0VudW0gfSBmcm9tICcuLi9lbnVtcyc7XG5pbXBvcnQgeyBEcm9wZG93blRlbXBsYXRlVHlwZUVudW0gfSBmcm9tICcuLi8uLi9jYS1pbnB1dC1kcm9wZG93bi9lbnVtcyc7XG5cbi8vIHBpcGVzXG5pbXBvcnQge1xuICAgIElucHV0Q2xhc3NQaXBlLFxuICAgIElucHV0Q29udGFpbmVyQ2xhc3NQaXBlLFxuICAgIElucHV0RHJvcGRvd25BcnJvd0NsYXNzUGlwZSxcbiAgICBJbnB1dEVycm9yUGlwZSxcbiAgICBJbnB1dFBsYWNlaG9sZGVySWNvblJpZ2h0Q2xhc3NQaXBlLFxuICAgIElucHV0UGxhY2Vob2xkZXJUZXh0Q2xhc3NQaXBlLFxuICAgIElucHV0VHlwZVBpcGUsXG4gICAgTGFiZWxDbGFzc1BpcGUsXG4gICAgU2hvd0NsZWFyUGlwZSxcbiAgICBTaG93RHJvcGRvd25BcnJvd1BpcGUsXG4gICAgU2hvd1BsYWNlaG9sZGVyVGV4dFBpcGUsXG4gICAgU2hvd1ZhbGlkQ2hlY2tQaXBlLFxufSBmcm9tICcuLi9waXBlcyc7XG5pbXBvcnQge1xuICAgIENhU3ZnUGlwZSxcbiAgICBMb2FkU3RhdHVzQ29sb3JQaXBlLFxuICAgIFRob3VzYW5kU2VwYXJhdG9yUGlwZSxcbn0gZnJvbSAnLi4vLi4vLi4vcGlwZXMnO1xuXG4vLyBtYXNrXG5pbXBvcnQgeyBOZ3hNYXNrTW9kdWxlIH0gZnJvbSAnbmd4LW1hc2snO1xuaW1wb3J0IHsgTmd4TWFza1NlcnZpY2UgfSBmcm9tICduZ3gtbWFzayc7XG5cbi8vIGNvbXBvbmVudHNcbmltcG9ydCB7IENhSW5wdXRQYXNzd29yZENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvY2EtaW5wdXQtcGFzc3dvcmQvY2EtaW5wdXQtcGFzc3dvcmQuY29tcG9uZW50JztcbmltcG9ydCB7IENhSW5wdXRQbGFjZWhvbGRlckljb25Db21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2NhLWlucHV0LXBsYWNlaG9sZGVyLWljb24vY2EtaW5wdXQtcGxhY2Vob2xkZXItaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dENsZWFyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jYS1pbnB1dC1jbGVhci9jYS1pbnB1dC1jbGVhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FBcHBUb29sdGlwVjJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jYS1hcHAtdG9vbHRpcC12Mi9jYS1hcHAtdG9vbHRpcC12Mi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dENvbW1hbmRzQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9jYS1pbnB1dC1jb21tYW5kcy9jYS1pbnB1dC1jb21tYW5kcy5jb21wb25lbnQnO1xuXG4vLyBkaXJlY3RpdmVzXG5pbXBvcnQgeyBDYXBzTG9ja0RpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgTWF4VmFsdWVEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IFJlc3RyaWN0SW5wdXREaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IFByaWNlRm9ybWF0RGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBDb21tYW5kVmlzaWJsZURpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvY29tbWFuZC12aXNpYmxlLmRpcmVjdGl2ZSc7XG5cbi8vIGNsYXNzXG5pbXBvcnQgeyBFdmVudElucHV0TWFuYWdlciB9IGZyb20gJy4uL2Jhc2UtY2xhc3Nlcy9jYS1pbnB1dC1ldmVudC1tYW5hZ2VyJztcblxuLy8gbWl4aW5zXG5pbXBvcnQgeyBJbnB1dENvbW1hbmRNaXhpbiB9IGZyb20gJy4uL21peGlucy9pbnB1dC1jb21tYW5kLm1peGluJztcbmltcG9ydCB7IElucHV0SGVscGVyTWl4aW4gfSBmcm9tICcuLi9taXhpbnMvaW5wdXQtaGVscGVyLm1peGluJztcbmltcG9ydCB7IE9wdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vY2EtaW5wdXQtZHJvcGRvd24vbW9kZWxzJztcblxuY2xhc3MgSW5wdXRCYXNlIHtcbiAgICBwdWJsaWMgaW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjtcbiAgICBwdWJsaWMgX2lucHV0Q29uZmlnITogSUNhSW5wdXQ7XG4gICAgcHVibGljIGlzVmlzaWJsZUNvbW1hbmRzOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIG1hc2tBcHBsaWVyITogTmd4TWFza1NlcnZpY2U7XG4gICAgcHVibGljIHRob3VzYW5kU2VwYXJhdG9yUGlwZSE6IFRob3VzYW5kU2VwYXJhdG9yUGlwZTtcbiAgICBwdWJsaWMgaXNGb2N1c0lucHV0OiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGlzRWRpdElucHV0OiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGlzRHJvcGRvd25Ub2dnbGVyOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGlzVG91Y2hlZElucHV0OiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIHNldENvbW1hbmRFdmVudCE6IEV2ZW50SW5wdXRNYW5hZ2VyPENvbW1hbmRzRXZlbnQ+O1xuXG4gICAgcHVibGljIGhhbmRsZVRvZ2dsZURyb3Bkb3duT3B0aW9ucyE6IEV2ZW50RW1pdHRlcjx2b2lkPjtcblxuICAgIHB1YmxpYyBvblRvdWNoZWQgPSAoKSA9PiB7IH07XG4gICAgcHVibGljIG9uQ2hhbmdlKF86IGFueSk6IHZvaWQgeyB9XG4gICAgcHVibGljIGhhbmRsZUNoYW5nZUlucHV0QW5kVXBkYXRlQ29udHJvbChfOiBJbnB1dENoYW5nZVZhbHVlKTogdm9pZCB7IH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdjYS1pbnB1dC10ZXN0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgLy8gTW9kdWxlc1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIE5nYk1vZHVsZSxcbiAgICAgICAgQW5ndWxhclN2Z0ljb25Nb2R1bGUsXG4gICAgICAgIE5neE1hc2tNb2R1bGUsXG5cbiAgICAgICAgLy8gUGlwZXNcbiAgICAgICAgSW5wdXRFcnJvclBpcGUsXG4gICAgICAgIElucHV0Q29udGFpbmVyQ2xhc3NQaXBlLFxuICAgICAgICBJbnB1dENsYXNzUGlwZSxcbiAgICAgICAgSW5wdXRQbGFjZWhvbGRlclRleHRDbGFzc1BpcGUsXG4gICAgICAgIFNob3dQbGFjZWhvbGRlclRleHRQaXBlLFxuICAgICAgICBMYWJlbENsYXNzUGlwZSxcbiAgICAgICAgQ2FTdmdQaXBlLFxuICAgICAgICBMb2FkU3RhdHVzQ29sb3JQaXBlLFxuICAgICAgICBJbnB1dFBsYWNlaG9sZGVySWNvblJpZ2h0Q2xhc3NQaXBlLFxuICAgICAgICBNYXhWYWx1ZURpcmVjdGl2ZSxcbiAgICAgICAgSW5wdXRUeXBlUGlwZSxcbiAgICAgICAgU2hvd1ZhbGlkQ2hlY2tQaXBlLFxuICAgICAgICBTaG93RHJvcGRvd25BcnJvd1BpcGUsXG4gICAgICAgIElucHV0RHJvcGRvd25BcnJvd0NsYXNzUGlwZSxcblxuICAgICAgICAvLyBEaXJlY3RpdmVzXG4gICAgICAgIFJlc3RyaWN0SW5wdXREaXJlY3RpdmUsXG4gICAgICAgIFByaWNlRm9ybWF0RGlyZWN0aXZlLFxuICAgICAgICBTaG93Q2xlYXJQaXBlLFxuICAgICAgICBDYXBzTG9ja0RpcmVjdGl2ZSxcbiAgICAgICAgQ29tbWFuZFZpc2libGVEaXJlY3RpdmUsXG5cbiAgICAgICAgLy8gQ29tcG9uZW50c1xuICAgICAgICBDYUlucHV0Q2xlYXJDb21wb25lbnQsXG4gICAgICAgIENhQXBwVG9vbHRpcFYyQ29tcG9uZW50LFxuICAgICAgICBDYUlucHV0UGxhY2Vob2xkZXJJY29uQ29tcG9uZW50LFxuICAgICAgICBDYUlucHV0UGFzc3dvcmRDb21wb25lbnQsXG4gICAgICAgIENhSW5wdXRDb21tYW5kc0NvbXBvbmVudCxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC10ZXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vaW5wdXQtdGVzdC5jb21wb25lbnQuc2NzcycsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRUZXN0Q29tcG9uZW50XG4gICAgZXh0ZW5kcyBJbnB1dENvbW1hbmRNaXhpbihJbnB1dEhlbHBlck1peGluKElucHV0QmFzZSkpXG4gICAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgcHVibGljIGlucHV0VmFsdWU6IElucHV0Q2hhbmdlVmFsdWUgPSAnJztcbiAgICBwdWJsaWMgb3ZlcnJpZGUgX2lucHV0Q29uZmlnITogSUNhSW5wdXQ7XG5cbiAgICBwdWJsaWMgaW5wdXRTdmdSb3V0ZXMgPSBJbnB1dFN2Z1JvdXRlcztcblxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgb3ZlcnJpZGUgaW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjtcbiAgICBASW5wdXQoKSBzZWxlY3RlZERyb3Bkb3duTGFiZWxDb2xvciE6IExhYmVsQ29sb3IgfCBudWxsO1xuICAgIEBJbnB1dCgpIHRlbXBsYXRlITogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGluY29ycmVjdFZhbHVlITogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBzZXQgaW5wdXRDb25maWcoY29uZmlnOiBJQ2FJbnB1dCkge1xuICAgICAgICB0aGlzLl9pbnB1dENvbmZpZyA9IGNvbmZpZztcbiAgICB9XG5cbiAgICBASW5wdXQoKSBhY3RpdmVJdGVtITogT3B0aW9uTW9kZWwgfCBudWxsO1xuXG4gICAgQE91dHB1dCgnaGFuZGxlVG9nZ2xlRHJvcGRvd25PcHRpb25zJylcbiAgICBvdmVycmlkZSBoYW5kbGVUb2dnbGVEcm9wZG93bk9wdGlvbnM6IEV2ZW50RW1pdHRlcjx2b2lkPiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIEBPdXRwdXQoJ2luY29ycmVjdEV2ZW50JykgaW5jb3JyZWN0SW5wdXQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBPdXRwdXQoJ2JsdXJJbnB1dCcpIGJsdXJJbnB1dDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID1cbiAgICAgICAgbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICAgIEBPdXRwdXQoJ2ZvY3VzSW5wdXQnKSBmb2N1c0lucHV0RXZlbnQ6IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4oKTtcbiAgICBAT3V0cHV0KCdjaGFuZ2UnKSBjaGFuZ2VJbnB1dDogRXZlbnRFbWl0dGVyPElucHV0Q2hhbmdlVmFsdWU+ID1cbiAgICAgICAgbmV3IEV2ZW50RW1pdHRlcjxJbnB1dENoYW5nZVZhbHVlPigpO1xuICAgIEBPdXRwdXQoJ2NvbW1hbmRFdmVudCcpIGNvbW1hbmRFdmVudDogRXZlbnRFbWl0dGVyPENvbW1hbmRzRXZlbnQ+ID1cbiAgICAgICAgbmV3IEV2ZW50RW1pdHRlcjxDb21tYW5kc0V2ZW50PigpO1xuICAgIEBPdXRwdXQoJ2NsZWFyJykgY2xlYXJJbnB1dEV2ZW50OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvLyBEcm9wZG93blxuICAgIEBPdXRwdXQoJ3Nob3dIaWRlRHJvcGRvd24nKSBzaG93SGlkZURyb3Bkb3duRXZlbnQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBAT3V0cHV0KCdkcm9wRG93bktleU5hdmlnYXRpb24nKSBkcm9wRG93bktleU5hdmlnYXRpb25FdmVudDogRXZlbnRFbWl0dGVyPHtcbiAgICAgICAga2V5Q29kZTogbnVtYmVyO1xuICAgICAgICBkYXRhOiBJQ2FJbnB1dCB8IG51bGw7XG4gICAgfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICAgICAga2V5Q29kZTogbnVtYmVyO1xuICAgICAgICBkYXRhOiBJQ2FJbnB1dCB8IG51bGw7XG4gICAgfT4oKTtcblxuICAgIC8vIGV2ZW50c1xuICAgIHB1YmxpYyBvdmVycmlkZSBzZXRDb21tYW5kRXZlbnQgPSBuZXcgRXZlbnRJbnB1dE1hbmFnZXI8Q29tbWFuZHNFdmVudD4oXG4gICAgICAgIG51bGwsXG4gICAgICAgIHRoaXMuY29tbWFuZEV2ZW50XG4gICAgKTtcblxuICAgIHB1YmxpYyBpc0NhcHNMb2NrT24gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBpbnB1dENvbW1hbmRzVHlwZSA9IElucHV0Q29tbWFuZHNUeXBlO1xuICAgIHB1YmxpYyBpbnB1dFN0cmluZ0VudW0gPSBJbnB1dFN0cmluZ0VudW07XG4gICAgcHVibGljIGRyb3Bkb3duVGVtcGxhdGVUeXBlRW51bSA9IERyb3Bkb3duVGVtcGxhdGVUeXBlRW51bTtcblxuICAgIC8vIFBhc3N3b3JkXG4gICAgcHVibGljIGlzVG9nZ2xlUGFzc3dvcmQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBnZXQgaW5wdXRDb25maWcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnB1dENvbmZpZztcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIHB1YmxpYyBjaGRldDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHB1YmxpYyBvdmVycmlkZSBtYXNrQXBwbGllcjogTmd4TWFza1NlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBvdmVycmlkZSB0aG91c2FuZFNlcGFyYXRvclBpcGU6IFRob3VzYW5kU2VwYXJhdG9yUGlwZVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlSW5wdXRBbmRVcGRhdGVDb250cm9sKHRoaXMuaW5wdXRWYWx1ZSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9pbnB1dENvbmZpZy5hdXRvRm9jdXMpXG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXQgY29udHJvbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmdDb250cm9sPy5jb250cm9sO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUob2JqOiBJbnB1dENoYW5nZVZhbHVlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy50cmFuc2Zvcm1WYWx1ZSh0aGlzLl9pbnB1dENvbmZpZywgb2JqKTsgLy8g4pyFIEFwcGx5IG1hc2tcblxuICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7IC8vIE5vdGlmeSBBbmd1bGFyIGZvcm0gYWJvdXQgdGhlIGNoYW5nZVxuICAgICAgICBpZiAodmFsdWUgJiYgdGhpcy5faW5wdXRDb25maWcudXBkYXRlQXNUb3VjaGVkT25FZGl0KSB0aGlzLm9uVG91Y2hlZCgpOyAvLyBNYXJrIGFzIHRvdWNoZWRcblxuICAgICAgICBpZiAoIXRoaXMuX2lucHV0Q29uZmlnLmlzRHJvcGRvd24pXG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5jaGRldC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgaGFuZGxlSW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7IC8vIE5vdGlmeSBBbmd1bGFyIGZvcm0gYWJvdXQgdGhlIGNoYW5nZVxuICAgICAgICBpZiAodmFsdWUpIHRoaXMub25Ub3VjaGVkKCk7IC8vIE1hcmsgYXMgdG91Y2hlZFxuXG4gICAgICAgIGlmICh0aGlzLmlucHV0VmFsdWUgPT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2w/Lm1hcmtBc1VudG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFySW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZUlucHV0QW5kVXBkYXRlQ29udHJvbCgnJyk7XG4gICAgICAgIHRoaXMuY2xlYXJJbnB1dEV2ZW50LmVtaXQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGhhbmRsZUNoYW5nZUlucHV0QW5kVXBkYXRlQ29udHJvbCh2YWx1ZTogSW5wdXRDaGFuZ2VWYWx1ZSkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcblxuICAgICAgICBpZiAoIXRoaXMuX2lucHV0Q29uZmlnLmlzRHJvcGRvd24pIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIC8vIFRyaWdnZXIgYWxsIGlucHV0cyBkaXJlY3RpdmVzIHRoYXQgbGlzdGVuIGZvciBpbnB1dCBFdmVudFxuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgRXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlIH0pO1xuICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVJbnB1dEZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dEV2ZW50LmVtaXQoZXZlbnQpO1xuICAgICAgICB0aGlzLmlzRm9jdXNJbnB1dCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUlucHV0Qmx1cihldmVudDogRm9jdXNFdmVudCkge1xuICAgICAgICB0aGlzLmJsdXJJbnB1dC5lbWl0KHRydWUpO1xuICAgICAgICB0aGlzLmlzRm9jdXNJbnB1dCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblBvcG92ZXJTaG93bigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9pbnB1dENvbmZpZy5kcm9wZG93bkxhYmVsKSB7XG4gICAgICAgICAgICB0aGlzLmlzRm9jdXNJbnB1dCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25Qb3BvdmVySGlkZGVuKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2lucHV0Q29uZmlnLmRyb3Bkb3duTGFiZWwpIHtcbiAgICAgICAgICAgIHRoaXMuaXNGb2N1c0lucHV0ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25Ub2dnbGVQYXNzd29yZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5pc1RvZ2dsZVBhc3N3b3JkID0gIXRoaXMuaXNUb2dnbGVQYXNzd29yZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlQ2Fwc0xvY2soc3RhdHVzOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaXNDYXBzTG9ja09uID0gc3RhdHVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVDb21tYW5kVmlzaWJsZShzdGF0dXM6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc1Zpc2libGVDb21tYW5kcyA9IHN0YXR1cztcbiAgICB9XG5cbiAgICBwdWJsaWMgaWRlbnRpZnkoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICB0aGlzLmRyb3BEb3duS2V5TmF2aWdhdGlvbkV2ZW50LmVtaXQoe1xuICAgICAgICAgICAga2V5Q29kZTogZXZlbnQua2V5Q29kZSxcbiAgICAgICAgICAgIGRhdGE6IHRoaXMuaW5wdXRDb25maWcsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImlucHV0LWN1c3RvbS1ncm91cCB7eyBfaW5wdXRDb25maWcuY3VzdG9tQ2xhc3MgfX1cIlxuICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgICBjb250cm9sXG4gICAgICAgICAgICB8IGlucHV0Q29udGFpbmVyQ2xhc3NcbiAgICAgICAgICAgICAgICA6IGlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgIDogY29udHJvbD8udG91Y2hlZCFcbiAgICAgICAgICAgICAgICA6IF9pbnB1dENvbmZpZ1xuICAgICAgICAgICAgICAgIDogY29udHJvbD8udmFsdWVcbiAgICBcIlxuICAgIG5nYlRvb2x0aXBcbiAgICBbbWFpbkNhVG9vbHRpcF09XCJjb250cm9sPy5lcnJvcnMgfCBpbnB1dEVycm9yOiBfaW5wdXRDb25maWcubmFtZVwiXG4gICAgW3Rvb2x0aXBCYWNrZ3JvdW5kXT1cIicjREYzQzNDJ1wiXG4gICAgW2Rpc2FibGVUb29sdGlwXT1cIiFfaW5wdXRDb25maWcucmVxdWlyZWRMYWJlbCB8fCAhIWNvbnRyb2w/LnZhbGlkXCJcbiAgICBwb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgdHJpZ2dlcnM9XCJob3ZlclwiXG4+XG4gICAgPCEtLSBJbnB1dCBDb21tYW5kcyAtLT5cbiAgICBAaWYgKF9pbnB1dENvbmZpZy5jb21tYW5kcz8uYWN0aXZlICYmIGlzVmlzaWJsZUNvbW1hbmRzKSB7XG4gICAgICAgIDxhcHAtY2EtaW5wdXQtY29tbWFuZHNcbiAgICAgICAgICAgIFtpbnB1dENvbmZpZ109XCJfaW5wdXRDb25maWdcIlxuICAgICAgICAgICAgW2lzRm9jdXNJbnB1dF09XCJpc0ZvY3VzSW5wdXRcIlxuICAgICAgICAgICAgW2lzVmlzaWJsZUNvbW1hbmRzXT1cImlzVmlzaWJsZUNvbW1hbmRzXCJcbiAgICAgICAgICAgIChvbkNvbW1hbmRzQ2xpY2spPVwib25Db21tYW5kcygkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L2FwcC1jYS1pbnB1dC1jb21tYW5kcz5cbiAgICB9XG4gICAgPCEtLSBJbnB1dCBWYWxpZCBDaGVjayAtLT5cbiAgICBAaWYgKFxuICAgICAgICBjb250cm9sIHwgc2hvd1ZhbGlkQ2hlY2s6IGlzRm9jdXNJbnB1dCA6IF9pbnB1dENvbmZpZyA6IGNvbnRyb2w/LnZhbHVlXG4gICAgKSB7XG4gICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1yZXF1aXJlZC1jaGVjayB7eyBfaW5wdXRDb25maWcuY3VzdG9tQ2xhc3MgfX1cIlxuICAgICAgICAgICAgW3NyY109XCJpbnB1dFN2Z1JvdXRlcy5jb25maXJtU3ZnXCJcbiAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgfVxuICAgIDwhLS0gSW5wdXQgUGFzc3dvcmQgQ2FwcyBMb2NrIEFuZCBFeWUgLS0+XG4gICAgQGlmIChfaW5wdXRDb25maWcudHlwZSA9PT0gJ3Bhc3N3b3JkJykge1xuICAgICAgICA8YXBwLWNhLWlucHV0LXBhc3N3b3JkXG4gICAgICAgICAgICBbaW5wdXRDb25maWddPVwiX2lucHV0Q29uZmlnXCJcbiAgICAgICAgICAgIFtnZXRTdXBlckNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICAgICAgICBbaXNGb2N1c0lucHV0XT1cImlzRm9jdXNJbnB1dFwiXG4gICAgICAgICAgICBbaXNUb3VjaGVkSW5wdXRdPVwiaXNUb3VjaGVkSW5wdXRcIlxuICAgICAgICAgICAgW2lzQ2Fwc0xvY2tPbl09XCJpc0NhcHNMb2NrT25cIlxuICAgICAgICAgICAgW2lzVG9nZ2xlUGFzc3dvcmRdPVwiaXNUb2dnbGVQYXNzd29yZFwiXG4gICAgICAgICAgICAob25Ub2dnbGVQYXNzd29yZENsaWNrKT1cIm9uVG9nZ2xlUGFzc3dvcmQoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgPC9hcHAtY2EtaW5wdXQtcGFzc3dvcmQ+XG4gICAgfVxuICAgIDwhLS0gSW5wdXQgQ2xlYXIgLS0+XG4gICAgQGlmIChfaW5wdXRDb25maWcgfCBzaG93Q2xlYXIpIHtcbiAgICAgICAgPGFwcC1jYS1pbnB1dC1jbGVhclxuICAgICAgICAgICAgW2lucHV0Q29uZmlnXT1cIl9pbnB1dENvbmZpZ1wiXG4gICAgICAgICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgICAgICAgW2lzRm9jdXNJbnB1dF09XCJpc0ZvY3VzSW5wdXRcIlxuICAgICAgICAgICAgW2luY29ycmVjdFZhbHVlXT1cImluY29ycmVjdFZhbHVlXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZERyb3Bkb3duTGFiZWxDb2xvcl09XCJzZWxlY3RlZERyb3Bkb3duTGFiZWxDb2xvclwiXG4gICAgICAgICAgICBbdGVtcGxhdGVdPVwidGVtcGxhdGVcIlxuICAgICAgICAgICAgKGNsZWFySW5wdXRDbGljayk9XCJjbGVhcklucHV0KCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvYXBwLWNhLWlucHV0LWNsZWFyPlxuICAgIH1cblxuICAgIDwhLS0gSW5wdXQgRHJvcGRvd24gQXJyb3cgLS0+XG4gICAgQGlmIChfaW5wdXRDb25maWcgfCBzaG93RHJvcGRvd25BcnJvdykge1xuICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZHJvcGRvd24tYXJyb3cge3sgX2lucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgICAgICAgICAgIGNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgfCBpbnB1dERyb3Bkb3duQXJyb3dDbGFzc1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBpc0ZvY3VzSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIDogX2lucHV0Q29uZmlnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlzVG91Y2hlZElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnZhbHVlXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3NyY109XCJpbnB1dFN2Z1JvdXRlcy5pbnB1dERyb3Bkb3duQXJyb3dTdmdcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duT3B0aW9ucygpXCJcbiAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgfVxuXG4gICAgPCEtLSBJbnB1dCBQbGFjZWhvbGRlciBJY29uIC0tPlxuICAgIEBpZiAoX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVySWNvbikge1xuICAgICAgICA8YXBwLWNhLWlucHV0LXBsYWNlaG9sZGVyLWljb25cbiAgICAgICAgICAgIFtpbnB1dENvbmZpZ109XCJfaW5wdXRDb25maWdcIlxuICAgICAgICAgICAgW2dldFN1cGVyQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgICAgIFtpc0ZvY3VzSW5wdXRdPVwiaXNGb2N1c0lucHV0XCJcbiAgICAgICAgICAgIFtpc1RvdWNoZWRJbnB1dF09XCJjb250cm9sPy50b3VjaGVkIVwiXG4gICAgICAgICAgICBbc2VsZWN0ZWREcm9wZG93bkxhYmVsQ29sb3JdPVwic2VsZWN0ZWREcm9wZG93bkxhYmVsQ29sb3JcIlxuICAgICAgICAgICAgW2lzRWRpdElucHV0XT1cImlzRWRpdElucHV0XCJcbiAgICAgICAgICAgIChvblBsYWNlaG9sZGVySWNvbkV2ZW50RW1pdHRlcik9XCJvblBsYWNlaG9sZGVySWNvbkV2ZW50KCRldmVudClcIlxuICAgICAgICAgICAgKG9uUG9wb3ZlclNob3duRW1pdHRlcik9XCJvblBvcG92ZXJTaG93bigpXCJcbiAgICAgICAgICAgIChvblBvcG92ZXJIaWRkZW5FbWl0dGVyKT1cIm9uUG9wb3ZlckhpZGRlbigpXCJcbiAgICAgICAgPlxuICAgICAgICA8L2FwcC1jYS1pbnB1dC1wbGFjZWhvbGRlci1pY29uPlxuICAgIH1cblxuICAgIDwhLS0gSW5wdXQgUGxhY2Vob2xkZXIgVGV4dCAtLT5cbiAgICBAaWYgKFxuICAgICAgICBfaW5wdXRDb25maWdcbiAgICAgICAgICAgIHwgc2hvd1BsYWNlaG9sZGVyVGV4dDogY29udHJvbCA6IGlzVmlzaWJsZUNvbW1hbmRzIDogY29udHJvbD8udmFsdWVcbiAgICApIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwiY2EtcGxhY2Vob2xkZXItdGV4dCB7eyBfaW5wdXRDb25maWcuY3VzdG9tQ2xhc3MgfX1cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgICAgIHwgaW5wdXRQbGFjZWhvbGRlclRleHRDbGFzc1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy50b3VjaGVkIVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICA6IF9pbnB1dENvbmZpZ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBpc1Zpc2libGVDb21tYW5kc1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy52YWx1ZVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtzdHlsZS5sZWZ0XT1cIlxuICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlclRleHQ/LnRvTG93ZXJDYXNlKCkgPT09XG4gICAgICAgICAgICAgICAgICAgIGlucHV0U3RyaW5nRW51bS5QRVJTT05TIHx8XG4gICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVyVGV4dD8udG9Mb3dlckNhc2UoKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgaW5wdXRTdHJpbmdFbnVtLlZFSElDTEVTXG4gICAgICAgICAgICAgICAgICAgID8gMzAgKyAoY29udHJvbD8udmFsdWU/LnRvU3RyaW5nKCk/Lmxlbmd0aCArIDEpICogOSArICdweCdcbiAgICAgICAgICAgICAgICAgICAgOiBpc0ZvY3VzSW5wdXQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlclRleHQ/LnRvTG93ZXJDYXNlKCkgIT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRDb21tYW5kc1R5cGUuTU9OVEhTXG4gICAgICAgICAgICAgICAgICAgICAgPyAnYXV0bydcbiAgICAgICAgICAgICAgICAgICAgICA6IChjb250cm9sPy52YWx1ZT8udG9TdHJpbmcoKT8ubGVuZ3RoICsgMSkgKiA4ICsgJ3B4J1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtzdHlsZS5yaWdodF09XCJcbiAgICAgICAgICAgICAgICBpc0ZvY3VzSW5wdXQgJiZcbiAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJUZXh0Py50b0xvd2VyQ2FzZSgpICE9PVxuICAgICAgICAgICAgICAgICAgICBpbnB1dENvbW1hbmRzVHlwZS5NT05USFNcbiAgICAgICAgICAgICAgICAgICAgPyAnMjhweCdcbiAgICAgICAgICAgICAgICAgICAgOiAnYXV0bydcbiAgICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlclRleHQgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIH1cblxuICAgIDwhLS0gSW5wdXQgTGFiZWwgQ291bnRlciAtLT5cbiAgICBAaWYgKFxuICAgICAgICBzZWxlY3RlZERyb3Bkb3duTGFiZWxDb2xvciAmJlxuICAgICAgICBjb250cm9sPy52YWx1ZSAmJlxuICAgICAgICAhaXNGb2N1c0lucHV0ICYmXG4gICAgICAgICFfaW5wdXRDb25maWcuaXNEaXNhYmxlZCAmJlxuICAgICAgICBfaW5wdXRDb25maWcuc2hvd0NvdW50XG4gICAgKSB7XG4gICAgICAgIDxwXG4gICAgICAgICAgICBbc3R5bGUudG9wXT1cIic0cHgnXCJcbiAgICAgICAgICAgIFtzdHlsZS5sZWZ0XT1cIihjb250cm9sPy52YWx1ZT8udG9TdHJpbmcoKT8ubGVuZ3RoICsgNi41KSAqIDggKyAncHgnXCJcbiAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtbGFiZWwtY291bnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IHNlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yLmNvdW50IH19XG4gICAgICAgIDwvcD5cbiAgICB9XG5cbiAgICA8IS0tIFNwZWNpYWwgRHJvcGRvd24gU2VsZWN0ZWQgU1ZHIHdpdGggb3IgV2l0aG91dCBUZXh0IC0tPlxuICAgIEBpZiAoXG4gICAgICAgIF9pbnB1dENvbmZpZz8uZHJvcGRvd25JbWFnZUlucHV0Py5pY29uc1BhdGggJiZcbiAgICAgICAgYWN0aXZlSXRlbSAmJlxuICAgICAgICAhX2lucHV0Q29uZmlnPy5oaWRlQWxsSXRlbXNJbklucHV0RHJvcGRvd24gJiZcbiAgICAgICAgISghX2lucHV0Q29uZmlnLmRyb3Bkb3duSW1hZ2VJbnB1dD8ud2l0aFRleHQgJiYgaXNGb2N1c0lucHV0KSAmJlxuICAgICAgICAhKFxuICAgICAgICAgICAgWyd0cnVjaycsICd0cmFpbGVyJ10uaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLmRyb3Bkb3duSW1hZ2VJbnB1dD8udGVtcGxhdGUhXG4gICAgICAgICAgICApICYmXG4gICAgICAgICAgICBpc0ZvY3VzSW5wdXQgJiZcbiAgICAgICAgICAgIF9pbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/LnJlbW92ZVxuICAgICAgICApICYmXG4gICAgICAgICFfaW5wdXRDb25maWc/LmRyb3Bkb3duSW1hZ2VJbnB1dD8ubmFtZUluaXRpYWxzSW5zdGVhZFVybFxuICAgICkge1xuICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgIFtzcmNdPVwiX2lucHV0Q29uZmlnLmRyb3Bkb3duSW1hZ2VJbnB1dD8uaWNvbnNQYXRoIVwiXG4gICAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duLXNlbGVjdGVkLWltYWdlIHt7XG4gICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLmRyb3Bkb3duSW1hZ2VJbnB1dD8uY2xhc3NcbiAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAndW5zZXQtY29sb3InOlxuICAgICAgICAgICAgICAgICAgICBpc0ZvY3VzSW5wdXQgJiYgX2lucHV0Q29uZmlnLmRyb3Bkb3duSW1hZ2VJbnB1dD8uY2xhc3MsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIFtzdmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgZmlsbDpcbiAgICAgICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLmRyb3Bkb3duSW1hZ2VJbnB1dD8uY29sb3IgJiYgIWlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBfaW5wdXRDb25maWcuZHJvcGRvd25JbWFnZUlucHV0Py5jb2xvclxuICAgICAgICAgICAgICAgICAgICAgICAgOiAnI2ZmZmZmZicsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgPlxuICAgICAgICA8L3N2Zy1pY29uPlxuICAgIH1cblxuICAgIDwhLS0gSW5wdXQgTGFiZWwgLS0+XG4gICAgQGlmICghX2lucHV0Q29uZmlnLm11bHRpU2VsZWN0RHJvcGRvd25BY3RpdmUpIHtcbiAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICBbZm9yXT1cIl9pbnB1dENvbmZpZy5uYW1lXCJcbiAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtbGFiZWwge3sgX2lucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19IHt7XG4gICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLm11bHRpcGxlTGFiZWw/LmN1c3RvbUNsYXNzXG4gICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJcbiAgICAgICAgICAgICAgICBjb250cm9sPy52YWx1ZVxuICAgICAgICAgICAgICAgICAgICB8IGxhYmVsQ2xhc3NcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICA6IF9pbnB1dENvbmZpZ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBpc1RvdWNoZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy5pbnZhbGlkXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnRvdWNoZWRcbiAgICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZiAoX2lucHV0Q29uZmlnLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgX2lucHV0Q29uZmlnLmxhYmVsIH19IDwvc3Bhbj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmIChfaW5wdXRDb25maWcubXVsdGlwbGVMYWJlbD8ubGFiZWxzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJfaW5wdXRDb25maWcubXVsdGlwbGVMYWJlbD8uY3VzdG9tQ2xhc3MhXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgJ211bHRpcGxlLWxhYmVscy1wb3NpdGlvbi1vbi1mb2N1cyc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNGb2N1c0lucHV0IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLm11bHRpcGxlSW5wdXRWYWx1ZXM/Lm9wdGlvbnM/Lmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5pc1JlcXVpcmVkICYmICFfaW5wdXRDb25maWcuaXNEaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsIG9mIF9pbnB1dENvbmZpZy5tdWx0aXBsZUxhYmVsPy5sYWJlbHM7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFjayAkaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvbGFiZWw+XG4gICAgfVxuXG4gICAgPGlucHV0XG4gICAgICAgICNpbnB1dFxuICAgICAgICAoaW5wdXQpPVwiaGFuZGxlSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgIFtyZXN0cmljdElucHV0XT1cImlucHV0Q29uZmlnXCJcbiAgICAgICAgcHJpY2VGb3JtYXRcbiAgICAgICAgW3ByaWNlU2VwYXJhdG9yXT1cIlxuICAgICAgICAgICAgaW5wdXRDb25maWcucHJpY2VTZXBhcmF0b3IgfHwgaW5wdXRDb25maWcudGhvdXNhbmRTZXBhcmF0b3JcbiAgICAgICAgXCJcbiAgICAgICAgKGZvY3VzKT1cImhhbmRsZUlucHV0Rm9jdXMoJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cImhhbmRsZUlucHV0Qmx1cigkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24pPVwiaGFuZGxlS2V5RG93bigkZXZlbnQpXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cIl9pbnB1dENvbmZpZy5yZWFkT25seVwiXG4gICAgICAgIFt0eXBlXT1cIl9pbnB1dENvbmZpZy50eXBlIHwgaW5wdXRUeXBlOiBpc1RvZ2dsZVBhc3N3b3JkXCJcbiAgICAgICAgY2xhc3M9XCJpbnB1dC1jb250cm9sXG4gICAgICAgICAgICB7eyBfaW5wdXRDb25maWcudGV4dFRyYW5zZm9ybSB9fVxuICAgICAgICAgICAge3sgX2lucHV0Q29uZmlnLnRleHRBbGlnbiB9fVxuICAgICAgICAgICAge3sgX2lucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XG4gICAgICAgIFwiXG4gICAgICAgIFthcHBNYXhWYWx1ZV09XCJpbnB1dENvbmZpZy5tYXhcIlxuICAgICAgICBhcHBDYXBzTG9ja1xuICAgICAgICAoY2Fwc0xvY2tTdGF0dXMpPVwiaGFuZGxlQ2Fwc0xvY2soJGV2ZW50KVwiXG4gICAgICAgIGNvbW1hbmRWaXNpYmxlXG4gICAgICAgIChjb21tYW5kVmlzaWJsZSk9XCJoYW5kbGVDb21tYW5kVmlzaWJsZSgkZXZlbnQpXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIlxuICAgICAgICAgICAgKF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlckluc3RlYWRPZkxhYmVsICYmXG4gICAgICAgICAgICBfaW5wdXRDb25maWcucGxhY2Vob2xkZXIgJiZcbiAgICAgICAgICAgIGlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgID8gX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVyXG4gICAgICAgICAgICAgICAgOiAnJykgfHxcbiAgICAgICAgICAgIChfaW5wdXRDb25maWcucGxhY2Vob2xkZXIgJiYgaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgPyBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJcbiAgICAgICAgICAgICAgICA6ICcnKVxuICAgICAgICBcIlxuICAgICAgICBbbWFza109XCJfaW5wdXRDb25maWcubWFza1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgICAgICAgY29udHJvbFxuICAgICAgICAgICAgICAgIHwgaW5wdXRDbGFzc1xuICAgICAgICAgICAgICAgICAgICA6IGlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnRvdWNoZWQhXG4gICAgICAgICAgICAgICAgICAgIDogX2lucHV0Q29uZmlnXG4gICAgICAgICAgICAgICAgICAgIDogaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgOiBpc1Zpc2libGVDb21tYW5kc1xuICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8uaW52YWxpZFxuICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnRvdWNoZWRcbiAgICAgICAgICAgICAgICAgICAgOiBpc0Ryb3Bkb3duVG9nZ2xlclxuICAgICAgICAgICAgICAgICAgICA6IGlzRWRpdElucHV0XG4gICAgICAgICAgICAgICAgICAgIDogdGVtcGxhdGVcbiAgICAgICAgXCJcbiAgICAvPlxuXG4gICAgPCEtLSBQbGFjZWhvbGRlciBJY29uIG9uIFJpZ2h0IFNpZGUgLS0+XG4gICAgQGlmIChfaW5wdXRDb25maWcucGxhY2Vob2xkZXJJY29uUmlnaHRTaWRlKSB7XG4gICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJwbGFjZWhvbGRlci1pY29uLXJpZ2h0LXNpZGUge3tcbiAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJJY29uQ29sb3JcbiAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgICAgICAgICAgIGlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgICAgICB8IGlucHV0UGxhY2Vob2xkZXJJY29uUmlnaHRDbGFzc1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICA6IF9pbnB1dENvbmZpZ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBpc1RvdWNoZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy52YWx1ZVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtzcmNdPVwiXG4gICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVySWNvblJpZ2h0U2lkZS50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgIHwgY2FTdmc6ICdjb21tb24nXG4gICAgICAgICAgICBcIlxuICAgICAgICA+PC9zdmctaWNvbj5cbiAgICB9XG5cbiAgICA8IS0tIElucHV0IEVycm9yIE1lc3NhZ2UgLS0+XG4gICAgQGlmIChcbiAgICAgICAgISghY29udHJvbD8udmFsdWUgJiYgaXNGb2N1c0lucHV0KSAmJlxuICAgICAgICAoaXNUb3VjaGVkSW5wdXQgfHwgY29udHJvbD8udG91Y2hlZCB8fCBjb250cm9sPy52YWx1ZSkgJiZcbiAgICAgICAgY29udHJvbD8uaW52YWxpZCAmJlxuICAgICAgICAhX2lucHV0Q29uZmlnLmlzSW52YWxpZFNlYXJjaEluRHJvcGRvd24gJiZcbiAgICAgICAgIV9pbnB1dENvbmZpZy5pc0Rpc2FibGVkXG4gICAgKSB7XG4gICAgICAgIEBpZiAoXG4gICAgICAgICAgICAhKF9pbnB1dENvbmZpZy5oaWRlRXJyb3JNZXNzYWdlIHx8IF9pbnB1dENvbmZpZy5lcnJvckluc2lkZUlucHV0KVxuICAgICAgICApIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZXJyb3Ige3sgX2lucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XCI+XG4gICAgICAgICAgICAgICAge3sgY29udHJvbD8uZXJyb3JzIHwgaW5wdXRFcnJvcjogX2lucHV0Q29uZmlnLm5hbWUgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gRXJyb3IgTWVzc2FnZSBJbnNpZGUgSW5wdXQgLS0+XG4gICAgICAgIEBpZiAoX2lucHV0Q29uZmlnLmVycm9ySW5zaWRlSW5wdXQpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItaW5zaWRlLWlucHV0IHt7IF9pbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVwiPlxuICAgICAgICAgICAgICAgIHt7IGNvbnRyb2w/LmVycm9ycyB8IGlucHV0RXJyb3I6IF9pbnB1dENvbmZpZy5uYW1lIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKF9pbnB1dENvbmZpZy5maXhlZFBsYWNob2xkZXIgJiYgaW5wdXQudmFsdWUpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1maXhlZC1wbGFjZWhvZGVyLWxhYmVsXCI+XG4gICAgICAgICAgICB7eyBfaW5wdXRDb25maWcuZml4ZWRQbGFjaG9sZGVyIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9XG48L2Rpdj5cbiJdfQ==
@@ -6,9 +6,6 @@ export function InputCommandMixin(Base) {
6
6
  const { event, type, action } = e;
7
7
  event.stopPropagation();
8
8
  event.preventDefault();
9
- setTimeout(() => {
10
- this.inputElement.nativeElement.focus();
11
- }, 0);
12
9
  switch (type) {
13
10
  case InputCommandsType.PM_INCREMENT_DECREMENT:
14
11
  this.handlePmIncrementDecrement(action);
@@ -127,4 +124,4 @@ export function InputCommandMixin(Base) {
127
124
  }
128
125
  };
129
126
  }
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY29tbWFuZC5taXhpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWlucHV0L21peGlucy9pbnB1dC1jb21tYW5kLm1peGluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUdsRSxNQUFNLFVBQVUsaUJBQWlCLENBRS9CLElBQU87SUFDTCxPQUFPLEtBQU0sU0FBUSxJQUFJO1FBQ3JCLHFCQUFxQjtRQUNkLFVBQVUsQ0FBQyxDQUFNO1lBQ3BCLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNsQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBRXZCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDNUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRU4sUUFBUSxJQUFJLEVBQUUsQ0FBQztnQkFDWCxLQUFLLGlCQUFpQixDQUFDLHNCQUFzQjtvQkFDekMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxNQUFNO2dCQUNWLEtBQUssaUJBQWlCLENBQUMsY0FBYztvQkFDakMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNqQyxNQUFNO2dCQUNWLEtBQUssaUJBQWlCLENBQUMsTUFBTTtvQkFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDMUIsTUFBTTtnQkFDVjtvQkFDSSxNQUFNO1lBQ2QsQ0FBQztRQUNMLENBQUM7UUFFRCxVQUFV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RUFBRSxDQUFDO2dCQUN6QyxPQUFPLElBQUksQ0FBQztZQUNoQixDQUFDO2lCQUFNLElBQUksS0FBSyxJQUFJLEtBQUssSUFBSSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUM7Z0JBQzFDLE9BQU8sS0FBSyxDQUFDO1lBQ2pCLENBQUM7aUJBQU0sSUFDSCxLQUFLLElBQUksTUFBTTtnQkFDZixNQUFNLEtBQUssbUJBQW1CLENBQUMsU0FBUyxFQUMxQyxDQUFDO2dCQUNDLE9BQU8sQ0FBQyxDQUFDO1lBQ2IsQ0FBQztpQkFBTSxJQUFJLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxLQUFLLENBQUM7WUFDakIsQ0FBQztpQkFBTSxJQUNILEtBQUssSUFBSSxJQUFJO2dCQUNiLE1BQU0sS0FBSyxtQkFBbUIsQ0FBQyxTQUFTLEVBQzFDLENBQUM7Z0JBQ0MsT0FBTyxDQUFDLENBQUM7WUFDYixDQUFDO1lBRUQsT0FBTyxHQUFHLENBQUM7UUFDZixDQUFDO1FBQ0QsYUFBYTtRQUViLHVCQUF1QjtRQUNoQixZQUFZO1lBQ2YsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLFlBQVk7Z0JBQy9CLElBQUksQ0FBQyxpQ0FBaUMsQ0FDbEMsSUFBSSxDQUFDLFlBQVksRUFBRSxZQUFhLENBQ25DLENBQUM7UUFDVixDQUFDO0tBR0osQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9taXhpbi5tb2RlbCc7XG5pbXBvcnQgeyBJbnB1dENvbW1hbmRzQWN0aW9uLCBJbnB1dENvbW1hbmRzVHlwZSB9IGZyb20gJy4uL2VudW1zJztcbmltcG9ydCB7IElucHV0QmFzZSB9IGZyb20gJy4uL21vZGVscy9iYXNlLm1vZGVsJztcblxuZXhwb3J0IGZ1bmN0aW9uIElucHV0Q29tbWFuZE1peGluPFxuICAgIFQgZXh0ZW5kcyBDb25zdHJ1Y3RvcjxJbnB1dEJhc2U+LFxuPihCYXNlOiBUKSB7XG4gICAgcmV0dXJuIGNsYXNzIGV4dGVuZHMgQmFzZSB7XG4gICAgICAgIC8vICNyZWdpb24gT25Db21tYW5kc1xuICAgICAgICBwdWJsaWMgb25Db21tYW5kcyhlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZXZlbnQsIHR5cGUsIGFjdGlvbiB9ID0gZTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgfSwgMCk7XG5cbiAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgSW5wdXRDb21tYW5kc1R5cGUuUE1fSU5DUkVNRU5UX0RFQ1JFTUVOVDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVQbUluY3JlbWVudERlY3JlbWVudChhY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIElucHV0Q29tbWFuZHNUeXBlLkNPTkZJUk1fQ0FOQ0VMOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUNvbmZpcm1DYW5jZWwoYWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBJbnB1dENvbW1hbmRzVHlwZS5NT05USFM6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlTW9udGhzKGFjdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gI3JlZ2lvblxuXG4gICAgICAgIHB1YmxpYyBoYW5kbGVNb250aHMoYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgICAgIC8vY2xlYXJUaW1lb3V0KHRoaXMuaW5wdXRDb21tYW5kc1RpbWVvdXQpO1xuXG4gICAgICAgICAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgICAgICAgICAgIGNhc2UgSW5wdXRDb21tYW5kc0FjdGlvbi5NSU5VUzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2VJbnB1dEFuZFVwZGF0ZUNvbnRyb2woXG4gICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gK3RoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IDApIC0gMVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIElucHV0Q29tbWFuZHNBY3Rpb24uUExVUzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2VJbnB1dEFuZFVwZGF0ZUNvbnRyb2woXG4gICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gK3RoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IDApICsgMVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyAjZW5kcmVnaW9uXG5cbiAgICAgICAgcHVibGljIGhhbmRsZUNvbmZpcm1DYW5jZWwoYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBJbnB1dENvbW1hbmRzQWN0aW9uLkNPTkZJUk06XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlybUNvbW1hbmQoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBJbnB1dENvbW1hbmRzQWN0aW9uLkNBTkNFTDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYW5jZWxDb21tYW5kKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyB0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy5zZXRFcnJvcnMobnVsbCk7XG4gICAgICAgICAgICAvLyB0aGlzLl9pbnB1dENvbmZpZy5kcm9wZG93bkxhYmVsTmV3ID0gZmFsc2U7XG4gICAgICAgICAgICAvLyB0aGlzLl9pbnB1dENvbmZpZy5jb21tYW5kcyEuYWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICAvLyB0aGlzLl9pbnB1dENvbmZpZy5ibGFja0lucHV0ID0gZmFsc2U7XG4gICAgICAgICAgICAvLyB0aGlzLmlzRWRpdElucHV0ID0gZmFsc2U7XG4gICAgICAgICAgICAvLyB0aGlzLmlzVmlzaWJsZUNvbW1hbmRzID0gZmFsc2VcbiAgICAgICAgICAgIC8vIHRoaXMuaXNGb2N1c0lucHV0ID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgY2FuY2VsQ29tbWFuZCgpOiB2b2lkIHtcbiAgICAgICAgICAgIC8vdGhpcy5zZXRDb21tYW5kRXZlbnQubmV4dCh7IGFjdGlvbjogSW5wdXRDb21tYW5kc0FjdGlvbi5DQU5DRUwgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgY29uZmlybUNvbW1hbmQoKTogdm9pZCB7XG4gICAgICAgICAgICAvLyB0aGlzLnNldENvbW1hbmRFdmVudC5uZXh0KHtcbiAgICAgICAgICAgIC8vICAgICBkYXRhOiB0aGlzLnN1cGVyQ29udHJvbC5jb250cm9sPy52YWx1ZSxcbiAgICAgICAgICAgIC8vICAgICBhY3Rpb246IElucHV0Q29tbWFuZHNBY3Rpb24uQ09ORklSTSxcbiAgICAgICAgICAgIC8vICAgICBtb2RlOlxuICAgICAgICAgICAgLy8gICAgICAgICAhdGhpcy5faW5wdXRDb25maWcuZHJvcGRvd25MYWJlbE5ldyAmJlxuICAgICAgICAgICAgLy8gICAgICAgICB0aGlzLl9pbnB1dENvbmZpZy5uYW1lICE9PSAnSW5wdXQgRHJvcGRvd24gQmFuayBOYW1lJ1xuICAgICAgICAgICAgLy8gICAgICAgICAgICAgPyAnZWRpdCdcbiAgICAgICAgICAgIC8vICAgICAgICAgICAgIDogJ25ldycsXG4gICAgICAgICAgICAvLyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vICNyZWdpb24gSGFuZGxlUG1JbmNyZW1lbnREZWNyZW1lbnRcbiAgICAgICAgcHVibGljIGhhbmRsZVBtSW5jcmVtZW50RGVjcmVtZW50KGFjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgICAgICBjb25zdCBudW1lcmljVmFsdWUgPSB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuXG4gICAgICAgICAgICAvLyBSZW1vdmUgdGhvdXNhbmRzIHNlcGFyYXRvcnMgKGAsYCkgYmVmb3JlIHBhcnNpbmdcbiAgICAgICAgICAgIGxldCB2YWx1ZSA9IHBhcnNlRmxvYXQobnVtZXJpY1ZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcblxuICAgICAgICAgICAgc3dpdGNoIChhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBjYXNlIElucHV0Q29tbWFuZHNBY3Rpb24uREVDUkVNRU5UOlxuICAgICAgICAgICAgICAgIGNhc2UgSW5wdXRDb21tYW5kc0FjdGlvbi5JTkNSRU1FTlQ6XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGluY2RlY1ZhbHVlID0gdGhpcy5kZWNyZW1lbnRJbmNyZW1lbnREZWNyZW1lbnRQbVZhbHVlKFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2VJbnB1dEFuZFVwZGF0ZUNvbnRyb2woXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPT09IElucHV0Q29tbWFuZHNBY3Rpb24uSU5DUkVNRU5UXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZSArIGluY2RlY1ZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB2YWx1ZSAtIGluY2RlY1ZhbHVlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgSW5wdXRDb21tYW5kc0FjdGlvbi5SRVNFVDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNldFBtVmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyAjcmVnaW9uIERlY3JlbWVudFBtVmFsdWVcbiAgICAgICAgcHVibGljIGRlY3JlbWVudEluY3JlbWVudERlY3JlbWVudFBtVmFsdWUoXG4gICAgICAgICAgICB2YWx1ZTogbnVtYmVyLFxuICAgICAgICAgICAgYWN0aW9uOiBJbnB1dENvbW1hbmRzQWN0aW9uXG4gICAgICAgICk6IG51bWJlciB7XG4gICAgICAgICAgICBpZiAodmFsdWUgPj0gMTAwMDAgJiYgdmFsdWUgPCAyMDAwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAxMDAwO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA+PSAyMDAwMCAmJiB2YWx1ZSA8IDUwMDAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDUwMDA7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlID49IDUwMDAwICYmIHZhbHVlIDwgMTAwMDAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDEwMDAwO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICB2YWx1ZSA+PSA1MDAwMDAgJiZcbiAgICAgICAgICAgICAgICBhY3Rpb24gPT09IElucHV0Q29tbWFuZHNBY3Rpb24uSU5DUkVNRU5UXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPj0gMTAwMDAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDIwMDAwO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICB2YWx1ZSA8PSA1MDAwICYmXG4gICAgICAgICAgICAgICAgYWN0aW9uID09PSBJbnB1dENvbW1hbmRzQWN0aW9uLkRFQ1JFTUVOVFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiA1MDA7XG4gICAgICAgIH1cbiAgICAgICAgLy8gI2VuZHJlZ2lvblxuXG4gICAgICAgIC8vICNyZWdpb24gUmVzZXRQbVZhbHVlXG4gICAgICAgIHB1YmxpYyByZXNldFBtVmFsdWUoKTogdm9pZCB7XG4gICAgICAgICAgICBpZiAodGhpcy5faW5wdXRDb25maWc/LmRlZmF1bHRWYWx1ZSlcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZUlucHV0QW5kVXBkYXRlQ29udHJvbChcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5wdXRDb25maWc/LmRlZmF1bHRWYWx1ZSFcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgIH07XG59Il19
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY29tbWFuZC5taXhpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWlucHV0L21peGlucy9pbnB1dC1jb21tYW5kLm1peGluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUdsRSxNQUFNLFVBQVUsaUJBQWlCLENBQW1DLElBQU87SUFDdkUsT0FBTyxLQUFNLFNBQVEsSUFBSTtRQUNyQixxQkFBcUI7UUFDZCxVQUFVLENBQUMsQ0FBTTtZQUNwQixNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDbEMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUV2QixRQUFRLElBQUksRUFBRSxDQUFDO2dCQUNYLEtBQUssaUJBQWlCLENBQUMsc0JBQXNCO29CQUN6QyxJQUFJLENBQUMsMEJBQTBCLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hDLE1BQU07Z0JBQ1YsS0FBSyxpQkFBaUIsQ0FBQyxjQUFjO29CQUNqQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ2pDLE1BQU07Z0JBQ1YsS0FBSyxpQkFBaUIsQ0FBQyxNQUFNO29CQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUMxQixNQUFNO2dCQUNWO29CQUNJLE1BQU07WUFDZCxDQUFDO1FBQ0wsQ0FBQztRQUVELFVBQVU7UUFFSCxZQUFZLENBQUMsTUFBYztZQUM5QiwwQ0FBMEM7WUFFMUMsUUFBUSxNQUFNLEVBQUUsQ0FBQztnQkFDYixLQUFLLG1CQUFtQixDQUFDLEtBQUs7b0JBQzFCLElBQUksQ0FBQyxp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T0FBTyxLQUFLLENBQUM7WUFDakIsQ0FBQztpQkFBTSxJQUNILEtBQUssSUFBSSxNQUFNO2dCQUNmLE1BQU0sS0FBSyxtQkFBbUIsQ0FBQyxTQUFTLEVBQzFDLENBQUM7Z0JBQ0MsT0FBTyxDQUFDLENBQUM7WUFDYixDQUFDO2lCQUFNLElBQUksS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUN6QixPQUFPLEtBQUssQ0FBQztZQUNqQixDQUFDO2lCQUFNLElBQ0gsS0FBSyxJQUFJLElBQUk7Z0JBQ2IsTUFBTSxLQUFLLG1CQUFtQixDQUFDLFNBQVMsRUFDMUMsQ0FBQztnQkFDQyxPQUFPLENBQUMsQ0FBQztZQUNiLENBQUM7WUFFRCxPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUM7UUFDRCxhQUFhO1FBRWIsdUJBQXVCO1FBQ2hCLFlBQVk7WUFDZixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsWUFBWTtnQkFDL0IsSUFBSSxDQUFDLGlDQUFpQyxDQUNsQyxJQUFJLENBQUMsWUFBWSxFQUFFLFlBQWEsQ0FDbkMsQ0FBQztRQUNWLENBQUM7S0FHSixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL21peGluLm1vZGVsJztcbmltcG9ydCB7IElucHV0Q29tbWFuZHNBY3Rpb24sIElucHV0Q29tbWFuZHNUeXBlIH0gZnJvbSAnLi4vZW51bXMnO1xuaW1wb3J0IHsgSW5wdXRCYXNlIH0gZnJvbSAnLi4vbW9kZWxzL2Jhc2UubW9kZWwnO1xuXG5leHBvcnQgZnVuY3Rpb24gSW5wdXRDb21tYW5kTWl4aW48VCBleHRlbmRzIENvbnN0cnVjdG9yPElucHV0QmFzZT4+KEJhc2U6IFQpIHtcbiAgICByZXR1cm4gY2xhc3MgZXh0ZW5kcyBCYXNlIHtcbiAgICAgICAgLy8gI3JlZ2lvbiBPbkNvbW1hbmRzXG4gICAgICAgIHB1YmxpYyBvbkNvbW1hbmRzKGU6IGFueSk6IHZvaWQge1xuICAgICAgICAgICAgY29uc3QgeyBldmVudCwgdHlwZSwgYWN0aW9uIH0gPSBlO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIElucHV0Q29tbWFuZHNUeXBlLlBNX0lOQ1JFTUVOVF9ERUNSRU1FTlQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlUG1JbmNyZW1lbnREZWNyZW1lbnQoYWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBJbnB1dENvbW1hbmRzVHlwZS5DT05GSVJNX0NBTkNFTDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVDb25maXJtQ2FuY2VsKGFjdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgSW5wdXRDb21tYW5kc1R5cGUuTU9OVEhTOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZU1vbnRocyhhY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vICNyZWdpb25cblxuICAgICAgICBwdWJsaWMgaGFuZGxlTW9udGhzKGFjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgICAgICAvL2NsZWFyVGltZW91dCh0aGlzLmlucHV0Q29tbWFuZHNUaW1lb3V0KTtcblxuICAgICAgICAgICAgc3dpdGNoIChhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBjYXNlIElucHV0Q29tbWFuZHNBY3Rpb24uTUlOVVM6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlSW5wdXRBbmRVcGRhdGVDb250cm9sKFxuICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICt0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAwKSAtIDFcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBJbnB1dENvbW1hbmRzQWN0aW9uLlBMVVM6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlSW5wdXRBbmRVcGRhdGVDb250cm9sKFxuICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICt0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAwKSArIDFcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gI2VuZHJlZ2lvblxuXG4gICAgICAgIHB1YmxpYyBoYW5kbGVDb25maXJtQ2FuY2VsKGFjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgICAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgICAgICAgICAgIGNhc2UgSW5wdXRDb21tYW5kc0FjdGlvbi5DT05GSVJNOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpcm1Db21tYW5kKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgSW5wdXRDb21tYW5kc0FjdGlvbi5DQU5DRUw6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuY2VsQ29tbWFuZCgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gdGhpcy5zdXBlckNvbnRyb2wuY29udHJvbD8uc2V0RXJyb3JzKG51bGwpO1xuICAgICAgICAgICAgLy8gdGhpcy5faW5wdXRDb25maWcuZHJvcGRvd25MYWJlbE5ldyA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gdGhpcy5faW5wdXRDb25maWcuY29tbWFuZHMhLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gdGhpcy5faW5wdXRDb25maWcuYmxhY2tJbnB1dCA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gdGhpcy5pc0VkaXRJbnB1dCA9IGZhbHNlO1xuICAgICAgICAgICAgLy8gdGhpcy5pc1Zpc2libGVDb21tYW5kcyA9IGZhbHNlXG4gICAgICAgICAgICAvLyB0aGlzLmlzRm9jdXNJbnB1dCA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIGNhbmNlbENvbW1hbmQoKTogdm9pZCB7XG4gICAgICAgICAgICAvL3RoaXMuc2V0Q29tbWFuZEV2ZW50Lm5leHQoeyBhY3Rpb246IElucHV0Q29tbWFuZHNBY3Rpb24uQ0FOQ0VMIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIGNvbmZpcm1Db21tYW5kKCk6IHZvaWQge1xuICAgICAgICAgICAgLy8gdGhpcy5zZXRDb21tYW5kRXZlbnQubmV4dCh7XG4gICAgICAgICAgICAvLyAgICAgZGF0YTogdGhpcy5zdXBlckNvbnRyb2wuY29udHJvbD8udmFsdWUsXG4gICAgICAgICAgICAvLyAgICAgYWN0aW9uOiBJbnB1dENvbW1hbmRzQWN0aW9uLkNPTkZJUk0sXG4gICAgICAgICAgICAvLyAgICAgbW9kZTpcbiAgICAgICAgICAgIC8vICAgICAgICAgIXRoaXMuX2lucHV0Q29uZmlnLmRyb3Bkb3duTGFiZWxOZXcgJiZcbiAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5faW5wdXRDb25maWcubmFtZSAhPT0gJ0lucHV0IERyb3Bkb3duIEJhbmsgTmFtZSdcbiAgICAgICAgICAgIC8vICAgICAgICAgICAgID8gJ2VkaXQnXG4gICAgICAgICAgICAvLyAgICAgICAgICAgICA6ICduZXcnLFxuICAgICAgICAgICAgLy8gfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyAjcmVnaW9uIEhhbmRsZVBtSW5jcmVtZW50RGVjcmVtZW50XG4gICAgICAgIHB1YmxpYyBoYW5kbGVQbUluY3JlbWVudERlY3JlbWVudChhY3Rpb246IHN0cmluZyk6IHZvaWQge1xuICAgICAgICAgICAgY29uc3QgbnVtZXJpY1ZhbHVlID0gdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZTtcblxuICAgICAgICAgICAgLy8gUmVtb3ZlIHRob3VzYW5kcyBzZXBhcmF0b3JzIChgLGApIGJlZm9yZSBwYXJzaW5nXG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBwYXJzZUZsb2F0KG51bWVyaWNWYWx1ZS5yZXBsYWNlKC8sL2csICcnKSk7XG5cbiAgICAgICAgICAgIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBJbnB1dENvbW1hbmRzQWN0aW9uLkRFQ1JFTUVOVDpcbiAgICAgICAgICAgICAgICBjYXNlIElucHV0Q29tbWFuZHNBY3Rpb24uSU5DUkVNRU5UOlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmNkZWNWYWx1ZSA9IHRoaXMuZGVjcmVtZW50SW5jcmVtZW50RGVjcmVtZW50UG1WYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlSW5wdXRBbmRVcGRhdGVDb250cm9sKFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uID09PSBJbnB1dENvbW1hbmRzQWN0aW9uLklOQ1JFTUVOVFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdmFsdWUgKyBpbmNkZWNWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdmFsdWUgLSBpbmNkZWNWYWx1ZVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIElucHV0Q29tbWFuZHNBY3Rpb24uUkVTRVQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXRQbVZhbHVlKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gI3JlZ2lvbiBEZWNyZW1lbnRQbVZhbHVlXG4gICAgICAgIHB1YmxpYyBkZWNyZW1lbnRJbmNyZW1lbnREZWNyZW1lbnRQbVZhbHVlKFxuICAgICAgICAgICAgdmFsdWU6IG51bWJlcixcbiAgICAgICAgICAgIGFjdGlvbjogSW5wdXRDb21tYW5kc0FjdGlvblxuICAgICAgICApOiBudW1iZXIge1xuICAgICAgICAgICAgaWYgKHZhbHVlID49IDEwMDAwICYmIHZhbHVlIDwgMjAwMDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gMTAwMDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPj0gMjAwMDAgJiYgdmFsdWUgPCA1MDAwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiA1MDAwO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA+PSA1MDAwMCAmJiB2YWx1ZSA8IDEwMDAwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAxMDAwMDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgdmFsdWUgPj0gNTAwMDAwICYmXG4gICAgICAgICAgICAgICAgYWN0aW9uID09PSBJbnB1dENvbW1hbmRzQWN0aW9uLklOQ1JFTUVOVFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlID49IDEwMDAwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAyMDAwMDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgdmFsdWUgPD0gNTAwMCAmJlxuICAgICAgICAgICAgICAgIGFjdGlvbiA9PT0gSW5wdXRDb21tYW5kc0FjdGlvbi5ERUNSRU1FTlRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gNTAwO1xuICAgICAgICB9XG4gICAgICAgIC8vICNlbmRyZWdpb25cblxuICAgICAgICAvLyAjcmVnaW9uIFJlc2V0UG1WYWx1ZVxuICAgICAgICBwdWJsaWMgcmVzZXRQbVZhbHVlKCk6IHZvaWQge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2lucHV0Q29uZmlnPy5kZWZhdWx0VmFsdWUpXG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2VJbnB1dEFuZFVwZGF0ZUNvbnRyb2woXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2lucHV0Q29uZmlnPy5kZWZhdWx0VmFsdWUhXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vICNlbmRyZWdpb25cbiAgICB9O1xufVxuIl19
@@ -10,10 +10,8 @@ export function RestrictionPipeMixin(Base) {
10
10
  const min = this.restrictInput.minValue ?? -Infinity;
11
11
  const max = this.restrictInput.maxValue ?? Infinity;
12
12
  // ✅ Ensure the value is a valid number
13
- if (!/^\d+$/.test(value)) {
14
- return false;
15
- }
16
- const numericValue = Number(value);
13
+ const tempValue = value.replace(/[^0-9]/g, '');
14
+ const numericValue = Number(tempValue);
17
15
  // ✅ Check if value is within the valid range
18
16
  return numericValue >= min && numericValue <= max;
19
17
  }
@@ -28,9 +26,9 @@ export function RestrictionPipeMixin(Base) {
28
26
  const capitalizedCaseWords = value.replace(/(^\w{1})|(\s+\w{1})/g, (letter) => letter.toUpperCase());
29
27
  return capitalizedCaseWords;
30
28
  default:
31
- return;
29
+ return value;
32
30
  }
33
31
  }
34
32
  };
35
33
  }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdHJpY3Rpb24tcGlwZS5taXhpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWlucHV0L21peGlucy9yZXN0cmljdGlvbi1waXBlLm1peGluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRTlFLE1BQU0sVUFBVSxvQkFBb0IsQ0FFbEMsSUFBTztJQUNMLE9BQU8sS0FBTSxTQUFRLElBQUk7UUFDZCxlQUFlLENBQUMsS0FBYTtZQUNoQyxJQUNJLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVE7Z0JBQ3pCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7Z0JBQ2pDLENBQUMsS0FBSyxFQUNSLENBQUM7Z0JBQ0MsT0FBTyxJQUFJLENBQUMsQ0FBQyw0QkFBNEI7WUFDN0MsQ0FBQztZQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ3JELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQztZQUVwRCx1Q0FBdUM7WUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDdkIsT0FBTyxLQUFLLENBQUM7WUFDakIsQ0FBQztZQUVELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVuQyw2Q0FBNkM7WUFDN0MsT0FBTyxZQUFZLElBQUksR0FBRyxJQUFJLFlBQVksSUFBSSxHQUFHLENBQUM7UUFDdEQsQ0FBQztRQUVNLHFCQUFxQixDQUN4QixLQUFhLEVBQ2IsYUFBbUQ7WUFFbkQsUUFBUSxhQUFhLEVBQUUsQ0FBQztnQkFDcEIsS0FBSyx3QkFBd0IsQ0FBQyxVQUFVO29CQUNwQyxPQUFPLENBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUU7d0JBQzdCLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQ25DLENBQUM7Z0JBQ04sS0FBSyx3QkFBd0IsQ0FBQyxTQUFTO29CQUNuQyxPQUFPLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDNUMsS0FBSyx3QkFBd0IsQ0FBQyxnQkFBZ0I7b0JBQzFDLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FDdEMsc0JBQXNCLEVBQ3RCLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQzNDLENBQUM7b0JBQ0YsT0FBTyxvQkFBb0IsQ0FBQztnQkFDaEM7b0JBQ0ksT0FBTztZQUNmLENBQUM7UUFDTCxDQUFDO0tBQ0osQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9taXhpbi5tb2RlbCc7XG5pbXBvcnQgeyBJQ2FJbnB1dCB9IGZyb20gJy4uL2NvbmZpZy9jYS1pbnB1dC5jb25maWcnO1xuaW1wb3J0IHsgSW5wdXRUcmFuc2Zvcm1TdHJpbmdFbnVtIH0gZnJvbSAnLi4vZW51bXMvaW5wdXQtdGV4dC10cmFuc2Zvcm0uZW51bSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBSZXN0cmljdGlvblBpcGVNaXhpbjxcbiAgICBUIGV4dGVuZHMgQ29uc3RydWN0b3I8eyByZXN0cmljdElucHV0OiBJQ2FJbnB1dCB9Pixcbj4oQmFzZTogVCkge1xuICAgIHJldHVybiBjbGFzcyBleHRlbmRzIEJhc2Uge1xuICAgICAgICBwdWJsaWMgY2hlY2tSYW5nZVJlZ2V4KHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAoIXRoaXMucmVzdHJpY3RJbnB1dC5taW5WYWx1ZSAmJlxuICAgICAgICAgICAgICAgICAgICAhdGhpcy5yZXN0cmljdElucHV0Lm1heFZhbHVlKSB8fFxuICAgICAgICAgICAgICAgICF2YWx1ZVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8vIOKchSBObyBsaW1pdHMsIGFsd2F5cyB2YWxpZFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBtaW4gPSB0aGlzLnJlc3RyaWN0SW5wdXQubWluVmFsdWUgPz8gLUluZmluaXR5O1xuICAgICAgICAgICAgY29uc3QgbWF4ID0gdGhpcy5yZXN0cmljdElucHV0Lm1heFZhbHVlID8/IEluZmluaXR5O1xuXG4gICAgICAgICAgICAvLyDinIUgRW5zdXJlIHRoZSB2YWx1ZSBpcyBhIHZhbGlkIG51bWJlclxuICAgICAgICAgICAgaWYgKCEvXlxcZCskLy50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgbnVtZXJpY1ZhbHVlID0gTnVtYmVyKHZhbHVlKTtcblxuICAgICAgICAgICAgLy8g4pyFIENoZWNrIGlmIHZhbHVlIGlzIHdpdGhpbiB0aGUgdmFsaWQgcmFuZ2VcbiAgICAgICAgICAgIHJldHVybiBudW1lcmljVmFsdWUgPj0gbWluICYmIG51bWVyaWNWYWx1ZSA8PSBtYXg7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgZ2V0VGV4dFRyYW5zZm9ybWF0aW9uKFxuICAgICAgICAgICAgdmFsdWU6IHN0cmluZyxcbiAgICAgICAgICAgIHRleHRUcmFuc2Zvcm06IElucHV0VHJhbnNmb3JtU3RyaW5nRW51bSB8IHVuZGVmaW5lZFxuICAgICAgICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICAgICAgc3dpdGNoICh0ZXh0VHJhbnNmb3JtKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBJbnB1dFRyYW5zZm9ybVN0cmluZ0VudW0uQ0FQSVRBTElaRTpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLnN1YnN0cmluZygxKS50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY2FzZSBJbnB1dFRyYW5zZm9ybVN0cmluZ0VudW0uVVBQRVJDQVNFOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUudG9Mb2NhbGVVcHBlckNhc2UoJ2VuLVVTJyk7XG4gICAgICAgICAgICAgICAgY2FzZSBJbnB1dFRyYW5zZm9ybVN0cmluZ0VudW0uQ0FQSVRBTElaRURfQ0FTRTpcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FwaXRhbGl6ZWRDYXNlV29yZHMgPSB2YWx1ZS5yZXBsYWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgLyheXFx3ezF9KXwoXFxzK1xcd3sxfSkvZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIChsZXR0ZXI6IHN0cmluZykgPT4gbGV0dGVyLnRvVXBwZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhcGl0YWxpemVkQ2FzZVdvcmRzO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG59XG4iXX0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdHJpY3Rpb24tcGlwZS5taXhpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWlucHV0L21peGlucy9yZXN0cmljdGlvbi1waXBlLm1peGluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRTlFLE1BQU0sVUFBVSxvQkFBb0IsQ0FFbEMsSUFBTztJQUNMLE9BQU8sS0FBTSxTQUFRLElBQUk7UUFDZCxlQUFlLENBQUMsS0FBYTtZQUNoQyxJQUNJLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVE7Z0JBQ3pCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7Z0JBQ2pDLENBQUMsS0FBSyxFQUNSLENBQUM7Z0JBQ0MsT0FBTyxJQUFJLENBQUMsQ0FBQyw0QkFBNEI7WUFDN0MsQ0FBQztZQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ3JELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQztZQUVwRCx1Q0FBdUM7WUFFdkMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFL0MsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRXZDLDZDQUE2QztZQUM3QyxPQUFPLFlBQVksSUFBSSxHQUFHLElBQUksWUFBWSxJQUFJLEdBQUcsQ0FBQztRQUN0RCxDQUFDO1FBRU0scUJBQXFCLENBQ3hCLEtBQWEsRUFDYixhQUFtRDtZQUVuRCxRQUFRLGFBQWEsRUFBRSxDQUFDO2dCQUNwQixLQUFLLHdCQUF3QixDQUFDLFVBQVU7b0JBQ3BDLE9BQU8sQ0FDSCxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRTt3QkFDN0IsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FDbkMsQ0FBQztnQkFDTixLQUFLLHdCQUF3QixDQUFDLFNBQVM7b0JBQ25DLE9BQU8sS0FBSyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM1QyxLQUFLLHdCQUF3QixDQUFDLGdCQUFnQjtvQkFDMUMsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUN0QyxzQkFBc0IsRUFDdEIsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FDM0MsQ0FBQztvQkFDRixPQUFPLG9CQUFvQixDQUFDO2dCQUNoQztvQkFDSSxPQUFPLEtBQUssQ0FBQztZQUNyQixDQUFDO1FBQ0wsQ0FBQztLQUNKLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvbWl4aW4ubW9kZWwnO1xuaW1wb3J0IHsgSUNhSW5wdXQgfSBmcm9tICcuLi9jb25maWcvY2EtaW5wdXQuY29uZmlnJztcbmltcG9ydCB7IElucHV0VHJhbnNmb3JtU3RyaW5nRW51bSB9IGZyb20gJy4uL2VudW1zL2lucHV0LXRleHQtdHJhbnNmb3JtLmVudW0nO1xuXG5leHBvcnQgZnVuY3Rpb24gUmVzdHJpY3Rpb25QaXBlTWl4aW48XG4gICAgVCBleHRlbmRzIENvbnN0cnVjdG9yPHsgcmVzdHJpY3RJbnB1dDogSUNhSW5wdXQgfT4sXG4+KEJhc2U6IFQpIHtcbiAgICByZXR1cm4gY2xhc3MgZXh0ZW5kcyBCYXNlIHtcbiAgICAgICAgcHVibGljIGNoZWNrUmFuZ2VSZWdleCh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKCF0aGlzLnJlc3RyaWN0SW5wdXQubWluVmFsdWUgJiZcbiAgICAgICAgICAgICAgICAgICAgIXRoaXMucmVzdHJpY3RJbnB1dC5tYXhWYWx1ZSkgfHxcbiAgICAgICAgICAgICAgICAhdmFsdWVcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOyAvLyDinIUgTm8gbGltaXRzLCBhbHdheXMgdmFsaWRcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgbWluID0gdGhpcy5yZXN0cmljdElucHV0Lm1pblZhbHVlID8/IC1JbmZpbml0eTtcbiAgICAgICAgICAgIGNvbnN0IG1heCA9IHRoaXMucmVzdHJpY3RJbnB1dC5tYXhWYWx1ZSA/PyBJbmZpbml0eTtcblxuICAgICAgICAgICAgLy8g4pyFIEVuc3VyZSB0aGUgdmFsdWUgaXMgYSB2YWxpZCBudW1iZXJcblxuICAgICAgICAgICAgY29uc3QgdGVtcFZhbHVlID0gdmFsdWUucmVwbGFjZSgvW14wLTldL2csICcnKTtcblxuICAgICAgICAgICAgY29uc3QgbnVtZXJpY1ZhbHVlID0gTnVtYmVyKHRlbXBWYWx1ZSk7XG5cbiAgICAgICAgICAgIC8vIOKchSBDaGVjayBpZiB2YWx1ZSBpcyB3aXRoaW4gdGhlIHZhbGlkIHJhbmdlXG4gICAgICAgICAgICByZXR1cm4gbnVtZXJpY1ZhbHVlID49IG1pbiAmJiBudW1lcmljVmFsdWUgPD0gbWF4O1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIGdldFRleHRUcmFuc2Zvcm1hdGlvbihcbiAgICAgICAgICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgICAgICAgICB0ZXh0VHJhbnNmb3JtOiBJbnB1dFRyYW5zZm9ybVN0cmluZ0VudW0gfCB1bmRlZmluZWRcbiAgICAgICAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgICAgIHN3aXRjaCAodGV4dFRyYW5zZm9ybSkge1xuICAgICAgICAgICAgICAgIGNhc2UgSW5wdXRUcmFuc2Zvcm1TdHJpbmdFbnVtLkNBUElUQUxJWkU6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5zdWJzdHJpbmcoMSkudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNhc2UgSW5wdXRUcmFuc2Zvcm1TdHJpbmdFbnVtLlVQUEVSQ0FTRTpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnRvTG9jYWxlVXBwZXJDYXNlKCdlbi1VUycpO1xuICAgICAgICAgICAgICAgIGNhc2UgSW5wdXRUcmFuc2Zvcm1TdHJpbmdFbnVtLkNBUElUQUxJWkVEX0NBU0U6XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhcGl0YWxpemVkQ2FzZVdvcmRzID0gdmFsdWUucmVwbGFjZShcbiAgICAgICAgICAgICAgICAgICAgICAgIC8oXlxcd3sxfSl8KFxccytcXHd7MX0pL2csXG4gICAgICAgICAgICAgICAgICAgICAgICAobGV0dGVyOiBzdHJpbmcpID0+IGxldHRlci50b1VwcGVyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjYXBpdGFsaXplZENhc2VXb3JkcztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xufVxuIl19