ecabs-components 1.1.36 → 1.1.37

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.
Files changed (30) hide show
  1. package/README.md +0 -5
  2. package/esm2022/lib/base/directives/digits-only.directive.mjs +8 -2
  3. package/esm2022/lib/ecabs-base-phone-input/ecabs-base-phone.component.mjs +3 -7
  4. package/esm2022/lib/ecabs-buttons/ecabs-buttons.component.mjs +4 -9
  5. package/esm2022/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.mjs +4 -14
  6. package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.mjs +11 -19
  7. package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.mjs +3 -7
  8. package/esm2022/lib/ecabs-input/ecabs-input.component.mjs +6 -10
  9. package/esm2022/lib/ecabs-logo/ecabs-logo.component.mjs +2 -2
  10. package/esm2022/lib/ecabs-note/ecabs-note.component.mjs +3 -3
  11. package/esm2022/lib/ecabs-place-autocomplete/ecabs-place-autocomplete.component.mjs +6 -13
  12. package/esm2022/lib/ecabs-select-v2/ecabs-select-v2.component.mjs +8 -12
  13. package/esm2022/lib/ecabs-textarea/ecabs-textarea.component.mjs +6 -10
  14. package/esm2022/public-api.mjs +1 -2
  15. package/fesm2022/ecabs-components.mjs +52 -102
  16. package/fesm2022/ecabs-components.mjs.map +1 -1
  17. package/lib/base/directives/digits-only.directive.d.ts +1 -0
  18. package/lib/ecabs-base-phone-input/ecabs-base-phone.component.d.ts +0 -1
  19. package/lib/ecabs-buttons/ecabs-buttons.component.d.ts +0 -2
  20. package/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.d.ts +2 -6
  21. package/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.d.ts +1 -4
  22. package/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.d.ts +1 -2
  23. package/lib/ecabs-input/ecabs-input.component.d.ts +1 -2
  24. package/lib/ecabs-place-autocomplete/ecabs-place-autocomplete.component.d.ts +1 -4
  25. package/lib/ecabs-select-v2/ecabs-select-v2.component.d.ts +3 -4
  26. package/lib/ecabs-textarea/ecabs-textarea.component.d.ts +1 -2
  27. package/package.json +1 -1
  28. package/public-api.d.ts +0 -1
  29. package/esm2022/lib/base/consts/waypoint.consts.mjs +0 -10
  30. package/lib/base/consts/waypoint.consts.d.ts +0 -8
package/README.md CHANGED
@@ -93,8 +93,3 @@ To get more help on the Angular CLI use `ng help` or go check out the [Angular C
93
93
  - **v1.1.31** — Prevent hover state persistence on disabled buttons.
94
94
  - **v1.1.32** — Return falsey value when no input is available in `DateTime` selector.
95
95
  - **v1.1.33** — Return falsey value when no input is available in `DateTime` selector through keyboard action deletion.
96
- - **v1.1.34** — Emit `selectionChange` event when selecting item from `EcabsSelectV2`.
97
- - Add collapse styling for `EcabsLogo`.
98
- - **v1.1.35** — Add `waypointType` input to `EcabsAutoComplete`.
99
- - Add `nativeElement` handles to custom inputs.
100
- - **v1.1.36** — Use native `matDatepickerToggleIcon` in `EcabsDateTimePicker`.
@@ -77,6 +77,9 @@ export class EcabsDigitsOnlyDirective {
77
77
  event.preventDefault();
78
78
  }
79
79
  }
80
+ onWheel(event) {
81
+ event.preventDefault();
82
+ }
80
83
  ngOnInit() {
81
84
  this.regex = new RegExp(this.allowHyphen ? '^[\\d -]+$' : '\\d');
82
85
  }
@@ -112,7 +115,7 @@ export class EcabsDigitsOnlyDirective {
112
115
  return inputString.split(this.decimalSeparator).length <= 2;
113
116
  }
114
117
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDigitsOnlyDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
115
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: EcabsDigitsOnlyDirective, selector: "[ecabsDigitsOnly]", inputs: { digitsOnly: "digitsOnly", allowHyphen: "allowHyphen", decimal: "decimal", decimalSeparator: "decimalSeparator", unit: "unit" }, host: { listeners: { "keydown": "onKeyDown($event)", "keyup": "onKeyUp($event)", "paste": "onPaste($event)" } }, ngImport: i0 });
118
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: EcabsDigitsOnlyDirective, selector: "[ecabsDigitsOnly]", inputs: { digitsOnly: "digitsOnly", allowHyphen: "allowHyphen", decimal: "decimal", decimalSeparator: "decimalSeparator", unit: "unit" }, host: { listeners: { "keydown": "onKeyDown($event)", "keyup": "onKeyUp($event)", "paste": "onPaste($event)", "wheel": "onWheel($event)" } }, ngImport: i0 });
116
119
  }
117
120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsDigitsOnlyDirective, decorators: [{
118
121
  type: Directive,
@@ -138,5 +141,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
138
141
  }], onPaste: [{
139
142
  type: HostListener,
140
143
  args: ['paste', ['$event']]
144
+ }], onWheel: [{
145
+ type: HostListener,
146
+ args: ['wheel', ['$event']]
141
147
  }] } });
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXRzLW9ubHkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvZGlyZWN0aXZlcy9kaWdpdHMtb25seS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDOztBQUt2QixNQUFNLE9BQU8sd0JBQXdCO0lBZ0NoQjtJQTlCbkIsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUduQixXQUFXLEdBQUcsS0FBSyxDQUFDO0lBRVgsT0FBTyxHQUFJLEtBQUssQ0FBQztJQUNqQixnQkFBZ0IsR0FBSSxHQUFHLENBQUM7SUFDeEIsSUFBSSxHQUFJLENBQUMsQ0FBQztJQUVuQixZQUFZLENBQW1CO0lBQy9CLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDWixZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLEtBQUssQ0FBVTtJQUVQLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFDVixjQUFjLEdBQUc7UUFDaEMsV0FBVztRQUNYLFFBQVE7UUFDUixLQUFLO1FBQ0wsUUFBUTtRQUNSLE9BQU87UUFDUCxNQUFNO1FBQ04sS0FBSztRQUNMLFdBQVc7UUFDWCxZQUFZO1FBQ1osT0FBTztRQUNQLE1BQU07UUFDTixPQUFPO0tBQ1IsQ0FBQztJQUVGLFlBQW1CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUN2QyxDQUFDO0lBR0QsU0FBUyxDQUFDLENBQWdCO1FBQ3hCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUNFLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFB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dGVudCI6WyJpbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tlY2Fic0RpZ2l0c09ubHldJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVjYWJzRGlnaXRzT25seURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KClcclxuICBkaWdpdHNPbmx5ID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYWxsb3dIeXBoZW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgZGVjaW1hbD8gPSBmYWxzZTtcclxuICBASW5wdXQoKSBkZWNpbWFsU2VwYXJhdG9yPyA9ICcuJztcclxuICBASW5wdXQoKSB1bml0PyA9IDA7XHJcblxyXG4gIGlucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudDtcclxuICBtaW51cyA9ICctJztcclxuICBtaW51c0NvdW50ZXIgPSAwO1xyXG4gIHJlZ2V4ITogUmVnRXhwO1xyXG5cclxuICBwcml2YXRlIGRlY2ltYWxDb3VudGVyID0gMDtcclxuICBwcml2YXRlIHJlYWRvbmx5IG5hdmlnYXRpb25LZXlzID0gW1xyXG4gICAgJ0JhY2tzcGFjZScsXHJcbiAgICAnRGVsZXRlJyxcclxuICAgICdUYWInLFxyXG4gICAgJ0VzY2FwZScsXHJcbiAgICAnRW50ZXInLFxyXG4gICAgJ0hvbWUnLFxyXG4gICAgJ0VuZCcsXHJcbiAgICAnQXJyb3dMZWZ0JyxcclxuICAgICdBcnJvd1JpZ2h0JyxcclxuICAgICdDbGVhcicsXHJcbiAgICAnQ29weScsXHJcbiAgICAnUGFzdGUnLFxyXG4gIF07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbDogRWxlbWVudFJlZikge1xyXG4gICAgdGhpcy5pbnB1dEVsZW1lbnQgPSBlbC5uYXRpdmVFbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgb25LZXlEb3duKGU6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpZ2l0c09ubHkpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMubmF2aWdhdGlvbktleXMuaW5kZXhPZihlLmtleSkgPiAtMSB8fCAvLyBBbGxvdzogbmF2aWdhdGlvbiBrZXlzOiBiYWNrc3BhY2UsIGRlbGV0ZSwgYXJyb3dzIGV0Yy5cclxuICAgICAgICAoZS5rZXkgPT09ICdhJyAmJiBlLmN0cmxLZXkpIHx8IC8vIEFsbG93OiBDdHJsK0FcclxuICAgICAgICAoZS5rZXkgPT09ICdjJyAmJiBlLmN0cmxLZXkpIHx8IC8vIEFsbG93OiBDdHJsK0NcclxuICAgICAgICAoZS5rZXkgPT09ICd2JyAmJiBlLmN0cmxLZXkpIHx8IC8vIEFsbG93OiBDdHJsK1ZcclxuICAgICAgICAoZS5rZXkgPT09ICd4JyAmJiBlLmN0cmxLZXkpIHx8IC8vIEFsbG93OiBDdHJsK1hcclxuICAgICAgICAoZS5rZXkgPT09ICdhJyAmJiBlLm1ldGFLZXkpIHx8IC8vIEFsbG93OiBDbWQrQSAoTWFjKVxyXG4gICAgICAgIChlLmtleSA9PT0gJ2MnICYmIGUubWV0YUtleSkgfHwgLy8gQWxsb3c6IENtZCtDIChNYWMpXHJcbiAgICAgICAgKGUua2V5ID09PSAndicgJiYgZS5tZXRhS2V5KSB8fCAvLyBBbGxvdzogQ21kK1YgKE1hYylcclxuICAgICAgICAoZS5rZXkgPT09ICd4JyAmJiBlLm1ldGFLZXkpIHx8IC8vIEFsbG93OiBDbWQrWCAoTWFjKVxyXG4gICAgICAgICh0aGlzLmRlY2ltYWwgJiZcclxuICAgICAgICAgIGUua2V5ID09PSB0aGlzLmRlY2ltYWxTZXBhcmF0b3IgJiZcclxuICAgICAgICAgIHRoaXMuZGVjaW1hbENvdW50ZXIgPD0gMSkgfHwgLy8gQWxsb3c6IG9ubHkgb25lIGRlY2ltYWwgcG9pbnRcclxuICAgICAgICAodGhpcy5kZWNpbWFsICYmIGUua2V5ID09PSB0aGlzLm1pbnVzICYmIHRoaXMubWludXNDb3VudGVyIDwgMSkgLy8gQWxsb3c6IG9ubHkgb25lIG1pbnVzXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gRW5zdXJlIHRoYXQgaXQgaXMgYSBudW1iZXIgYW5kIHN0b3AgdGhlIGtleXByZXNzXHJcbiAgICAgIGlmIChlLmtleSA9PT0gJyAnIHx8ICF0aGlzLnJlZ2V4LnRlc3QoZS5rZXkpKSB7XHJcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXHJcbiAgb25LZXlVcCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpZ2l0c09ubHkpIHtcclxuICAgICAgaWYgKCF0aGlzLmRlY2ltYWwpIHtcclxuICAgICAgICBjb25zdCByZWdleCA9IC9bLixdL2c7XHJcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUgPSB0aGlzLmlucHV0RWxlbWVudC52YWx1ZS5yZXBsYWNlKHJlZ2V4LCAnJyk7XHJcblxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5kZWNpbWFsQ291bnRlciA9XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlLnNwbGl0KHRoaXMuZGVjaW1hbFNlcGFyYXRvcikubGVuZ3RoIC0gMTtcclxuICAgICAgdGhpcy5taW51c0NvdW50ZXIgPVxyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZS5zcGxpdCh0aGlzLm1pbnVzKS5sZW5ndGggLSAxO1xyXG5cclxuICAgICAgaWYgKGlzTmFOKCt0aGlzLmlucHV0RWxlbWVudC52YWx1ZSkpIHtcclxuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC52YWx1ZSA9IHRoaXMuc2FuaXRpemVJbnB1dCh0aGlzLmlucHV0RWxlbWVudC52YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3Bhc3RlJywgWyckZXZlbnQnXSlcclxuICBvblBhc3RlKGV2ZW50OiBDbGlwYm9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlnaXRzT25seSkge1xyXG4gICAgICBjb25zdCBwYXN0ZWRJbnB1dCA9IGV2ZW50LmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQvcGxhaW4nKSBhcyBzdHJpbmc7XHJcbiAgICAgIHRoaXMucGFzdGVEYXRhKHBhc3RlZElucHV0KTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZWdleCA9IG5ldyBSZWdFeHAodGhpcy5hbGxvd0h5cGhlbiA/ICdeW1xcXFxkIC1dKyQnIDogJ1xcXFxkJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhc3RlRGF0YShwYXN0ZWRDb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IHNhbml0aXplZENvbnRlbnQgPSBpc05hTigrcGFzdGVkQ29udGVudClcclxuICAgICAgPyB0aGlzLnNhbml0aXplSW5wdXQocGFzdGVkQ29udGVudClcclxuICAgICAgOiBwYXN0ZWRDb250ZW50O1xyXG4gICAgY29uc3QgcGFzdGVkID0gZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2luc2VydFRleHQnLCBmYWxzZSwgc2FuaXRpemVkQ29udGVudCk7XHJcbiAgICBpZiAoIXBhc3RlZCkge1xyXG4gICAgICBjb25zdCB7IHNlbGVjdGlvblN0YXJ0OiBzdGFydCwgc2VsZWN0aW9uRW5kOiBlbmQgfSA9IHRoaXMuaW5wdXRFbGVtZW50O1xyXG4gICAgICB0aGlzLmlucHV0RWxlbWVudC5zZXRSYW5nZVRleHQoXHJcbiAgICAgICAgc2FuaXRpemVkQ29udGVudCxcclxuICAgICAgICBzdGFydCBhcyBudW1iZXIsXHJcbiAgICAgICAgZW5kIGFzIG51bWJlcixcclxuICAgICAgICAnZW5kJyxcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2FuaXRpemVJbnB1dChpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCByZXN1bHQgPSAnJztcclxuICAgIGlmICh0aGlzLmRlY2ltYWwgJiYgdGhpcy5pc1ZhbGlkRGVjaW1hbChpbnB1dCkpIHtcclxuICAgICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcclxuICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBeW1xcZCAtJHt0aGlzLmRlY2ltYWxTZXBhcmF0b3J9XSskYCwgJ2cnKTtcclxuICAgICAgcmVzdWx0ID0gaW5wdXQucmVwbGFjZShyZWdleCwgJycpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVzdWx0ID0gaW5wdXQucmVwbGFjZShgLyR7dGhpcy5yZWdleH0vZ2AsICcnKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtYXhMZW5ndGggPSB0aGlzLmlucHV0RWxlbWVudC5tYXhMZW5ndGg7XHJcblxyXG4gICAgaWYgKG1heExlbmd0aCA+IDApIHtcclxuICAgICAgLy8gdGhlIGlucHV0IGVsZW1lbnQgaGFzIG1heExlbmd0aCBsaW1pdFxyXG4gICAgICBjb25zdCBhbGxvd2VkTGVuZ3RoID0gbWF4TGVuZ3RoIC0gdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUubGVuZ3RoO1xyXG4gICAgICByZXN1bHQgPSBhbGxvd2VkTGVuZ3RoID4gMCA/IHJlc3VsdC5zdWJzdHJpbmcoMCwgYWxsb3dlZExlbmd0aCkgOiAnJztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1ZhbGlkRGVjaW1hbChpbnB1dFN0cmluZzogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gaW5wdXRTdHJpbmcuc3BsaXQodGhpcy5kZWNpbWFsU2VwYXJhdG9yIGFzIHN0cmluZykubGVuZ3RoIDw9IDI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXRzLW9ubHkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2Jhc2UvZGlyZWN0aXZlcy9kaWdpdHMtb25seS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDOztBQUt2QixNQUFNLE9BQU8sd0JBQXdCO0lBZ0NoQjtJQTlCbkIsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUduQixXQUFXLEdBQUcsS0FBSyxDQUFDO0lBRVgsT0FBTyxHQUFJLEtBQUssQ0FBQztJQUNqQixnQkFBZ0IsR0FBSSxHQUFHLENBQUM7SUFDeEIsSUFBSSxHQUFJLENBQUMsQ0FBQztJQUVuQixZQUFZLENBQW1CO0lBQy9CLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDWixZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLEtBQUssQ0FBVTtJQUVQLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFDVixjQUFjLEdBQUc7UUFDaEMsV0FBVztRQUNYLFFBQVE7UUFDUixLQUFLO1FBQ0wsUUFBUTtRQUNSLE9BQU87UUFDUCxNQUFNO1FBQ04sS0FBSztRQUNMLFdBQVc7UUFDWCxZQUFZO1FBQ1osT0FBTztRQUNQLE1BQU07UUFDTixPQUFPO0tBQ1IsQ0FBQztJQUVGLFlBQW1CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUN2QyxDQUFDO0lBR0QsU0FBUyxDQUFDLENBQWdCO1FBQ3hCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUNFLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFB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akMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFVakMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2VjYWJzRGlnaXRzT25seV0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNEaWdpdHNPbmx5RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKVxyXG4gIGRpZ2l0c09ubHkgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBhbGxvd0h5cGhlbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBkZWNpbWFsPyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRlY2ltYWxTZXBhcmF0b3I/ID0gJy4nO1xyXG4gIEBJbnB1dCgpIHVuaXQ/ID0gMDtcclxuXHJcbiAgaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50O1xyXG4gIG1pbnVzID0gJy0nO1xyXG4gIG1pbnVzQ291bnRlciA9IDA7XHJcbiAgcmVnZXghOiBSZWdFeHA7XHJcblxyXG4gIHByaXZhdGUgZGVjaW1hbENvdW50ZXIgPSAwO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgbmF2aWdhdGlvbktleXMgPSBbXHJcbiAgICAnQmFja3NwYWNlJyxcclxuICAgICdEZWxldGUnLFxyXG4gICAgJ1RhYicsXHJcbiAgICAnRXNjYXBlJyxcclxuICAgICdFbnRlcicsXHJcbiAgICAnSG9tZScsXHJcbiAgICAnRW5kJyxcclxuICAgICdBcnJvd0xlZnQnLFxyXG4gICAgJ0Fycm93UmlnaHQnLFxyXG4gICAgJ0NsZWFyJyxcclxuICAgICdDb3B5JyxcclxuICAgICdQYXN0ZScsXHJcbiAgXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLmlucHV0RWxlbWVudCA9IGVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBvbktleURvd24oZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlnaXRzT25seSkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uS2V5cy5pbmRleE9mKGUua2V5KSA+IC0xIHx8IC8vIEFsbG93OiBuYXZpZ2F0aW9uIGtleXM6IGJhY2tzcGFjZSwgZGVsZXRlLCBhcnJvd3MgZXRjLlxyXG4gICAgICAgIChlLmtleSA9PT0gJ2EnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrQVxyXG4gICAgICAgIChlLmtleSA9PT0gJ2MnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrQ1xyXG4gICAgICAgIChlLmtleSA9PT0gJ3YnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrVlxyXG4gICAgICAgIChlLmtleSA9PT0gJ3gnICYmIGUuY3RybEtleSkgfHwgLy8gQWxsb3c6IEN0cmwrWFxyXG4gICAgICAgIChlLmtleSA9PT0gJ2EnICYmIGUubWV0YUtleSkgfHwgLy8gQWxsb3c6IENtZCtBIChNYWMpXHJcbiAgICAgICAgKGUua2V5ID09PSAnYycgJiYgZS5tZXRhS2V5KSB8fCAvLyBBbGxvdzogQ21kK0MgKE1hYylcclxuICAgICAgICAoZS5rZXkgPT09ICd2JyAmJiBlLm1ldGFLZXkpIHx8IC8vIEFsbG93OiBDbWQrViAoTWFjKVxyXG4gICAgICAgIChlLmtleSA9PT0gJ3gnICYmIGUubWV0YUtleSkgfHwgLy8gQWxsb3c6IENtZCtYIChNYWMpXHJcbiAgICAgICAgKHRoaXMuZGVjaW1hbCAmJlxyXG4gICAgICAgICAgZS5rZXkgPT09IHRoaXMuZGVjaW1hbFNlcGFyYXRvciAmJlxyXG4gICAgICAgICAgdGhpcy5kZWNpbWFsQ291bnRlciA8PSAxKSB8fCAvLyBBbGxvdzogb25seSBvbmUgZGVjaW1hbCBwb2ludFxyXG4gICAgICAgICh0aGlzLmRlY2ltYWwgJiYgZS5rZXkgPT09IHRoaXMubWludXMgJiYgdGhpcy5taW51c0NvdW50ZXIgPCAxKSAvLyBBbGxvdzogb25seSBvbmUgbWludXNcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBFbnN1cmUgdGhhdCBpdCBpcyBhIG51bWJlciBhbmQgc3RvcCB0aGUga2V5cHJlc3NcclxuICAgICAgaWYgKGUua2V5ID09PSAnICcgfHwgIXRoaXMucmVnZXgudGVzdChlLmtleSkpIHtcclxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcclxuICBvbktleVVwKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlnaXRzT25seSkge1xyXG4gICAgICBpZiAoIXRoaXMuZGVjaW1hbCkge1xyXG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gL1suLF0vZztcclxuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC52YWx1ZSA9IHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlLnJlcGxhY2UocmVnZXgsICcnKTtcclxuXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmRlY2ltYWxDb3VudGVyID1cclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUuc3BsaXQodGhpcy5kZWNpbWFsU2VwYXJhdG9yKS5sZW5ndGggLSAxO1xyXG4gICAgICB0aGlzLm1pbnVzQ291bnRlciA9XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlLnNwbGl0KHRoaXMubWludXMpLmxlbmd0aCAtIDE7XHJcblxyXG4gICAgICBpZiAoaXNOYU4oK3RoaXMuaW5wdXRFbGVtZW50LnZhbHVlKSkge1xyXG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlID0gdGhpcy5zYW5pdGl6ZUlucHV0KHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigncGFzdGUnLCBbJyRldmVudCddKVxyXG4gIG9uUGFzdGUoZXZlbnQ6IENsaXBib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kaWdpdHNPbmx5KSB7XHJcbiAgICAgIGNvbnN0IHBhc3RlZElucHV0ID0gZXZlbnQuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgndGV4dC9wbGFpbicpIGFzIHN0cmluZztcclxuICAgICAgdGhpcy5wYXN0ZURhdGEocGFzdGVkSW5wdXQpO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2hlZWwnLCBbJyRldmVudCddKVxyXG4gIG9uV2hlZWwoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlZ2V4ID0gbmV3IFJlZ0V4cCh0aGlzLmFsbG93SHlwaGVuID8gJ15bXFxcXGQgLV0rJCcgOiAnXFxcXGQnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGFzdGVEYXRhKHBhc3RlZENvbnRlbnQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2FuaXRpemVkQ29udGVudCA9IGlzTmFOKCtwYXN0ZWRDb250ZW50KVxyXG4gICAgICA/IHRoaXMuc2FuaXRpemVJbnB1dChwYXN0ZWRDb250ZW50KVxyXG4gICAgICA6IHBhc3RlZENvbnRlbnQ7XHJcbiAgICBjb25zdCBwYXN0ZWQgPSBkb2N1bWVudC5leGVjQ29tbWFuZCgnaW5zZXJ0VGV4dCcsIGZhbHNlLCBzYW5pdGl6ZWRDb250ZW50KTtcclxuICAgIGlmICghcGFzdGVkKSB7XHJcbiAgICAgIGNvbnN0IHsgc2VsZWN0aW9uU3RhcnQ6IHN0YXJ0LCBzZWxlY3Rpb25FbmQ6IGVuZCB9ID0gdGhpcy5pbnB1dEVsZW1lbnQ7XHJcbiAgICAgIHRoaXMuaW5wdXRFbGVtZW50LnNldFJhbmdlVGV4dChcclxuICAgICAgICBzYW5pdGl6ZWRDb250ZW50LFxyXG4gICAgICAgIHN0YXJ0IGFzIG51bWJlcixcclxuICAgICAgICBlbmQgYXMgbnVtYmVyLFxyXG4gICAgICAgICdlbmQnLFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzYW5pdGl6ZUlucHV0KGlucHV0OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xyXG4gICAgaWYgKHRoaXMuZGVjaW1hbCAmJiB0aGlzLmlzVmFsaWREZWNpbWFsKGlucHV0KSkge1xyXG4gICAgICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxyXG4gICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYF5bXFxkIC0ke3RoaXMuZGVjaW1hbFNlcGFyYXRvcn1dKyRgLCAnZycpO1xyXG4gICAgICByZXN1bHQgPSBpbnB1dC5yZXBsYWNlKHJlZ2V4LCAnJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXN1bHQgPSBpbnB1dC5yZXBsYWNlKGAvJHt0aGlzLnJlZ2V4fS9nYCwgJycpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG1heExlbmd0aCA9IHRoaXMuaW5wdXRFbGVtZW50Lm1heExlbmd0aDtcclxuXHJcbiAgICBpZiAobWF4TGVuZ3RoID4gMCkge1xyXG4gICAgICAvLyB0aGUgaW5wdXQgZWxlbWVudCBoYXMgbWF4TGVuZ3RoIGxpbWl0XHJcbiAgICAgIGNvbnN0IGFsbG93ZWRMZW5ndGggPSBtYXhMZW5ndGggLSB0aGlzLmlucHV0RWxlbWVudC52YWx1ZS5sZW5ndGg7XHJcbiAgICAgIHJlc3VsdCA9IGFsbG93ZWRMZW5ndGggPiAwID8gcmVzdWx0LnN1YnN0cmluZygwLCBhbGxvd2VkTGVuZ3RoKSA6ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzVmFsaWREZWNpbWFsKGlucHV0U3RyaW5nOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBpbnB1dFN0cmluZy5zcGxpdCh0aGlzLmRlY2ltYWxTZXBhcmF0b3IgYXMgc3RyaW5nKS5sZW5ndGggPD0gMjtcclxuICB9XHJcbn1cclxuIl19
@@ -66,7 +66,6 @@ export class EcabsBasePhoneComponent extends _NgxMatIntlTelInputMixinBase {
66
66
  countryChanged = new EventEmitter();
67
67
  matMenu;
68
68
  searchInput;
69
- matCustomInput;
70
69
  id = `ecabs-intl-tel-input-${EcabsBasePhoneComponent.nextId++}`;
71
70
  get shouldLabelFloat() {
72
71
  return this.focused || !this.empty;
@@ -348,7 +347,7 @@ export class EcabsBasePhoneComponent extends _NgxMatIntlTelInputMixinBase {
348
347
  useValue: phoneNumberValidator,
349
348
  multi: true,
350
349
  },
351
- ], viewQueries: [{ propertyName: "matMenu", first: true, predicate: MatMenu, descendants: true }, { propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "matCustomInput", first: true, predicate: ["matCustomInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecabs-tel-input-container\">\r\n <button\r\n type=\"button\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"country-selector\"\r\n [disabled]=\"disabled\"\r\n >\r\n <span\r\n class=\"country-selector-flag flag\"\r\n [ngClass]=\"flagClass(selectedCountry?.flagClass)\"\r\n ></span>\r\n <span class=\"country-selector-code\" *ngIf=\"selectedCountry?.dialCode\"\r\n >+{{ selectedCountry.dialCode }}</span\r\n >\r\n </button>\r\n <mat-menu #menu=\"matMenu\"\r\n class=\"ecabs-tel-input-mat-menu-panel\"\r\n backdropClass=\"ecabs-tel-input-overlay-backdrop\"\r\n overlayPanelClass=\"ecabs-tel-input-overlay-pane\">\r\n <input\r\n #searchInput\r\n *ngIf=\"enableSearch\"\r\n class=\"country-search\"\r\n [(ngModel)]=\"searchCriteria\"\r\n (ngModelChange)=\"onSearchInput()\"\r\n type=\"text\"\r\n [placeholder]=\"searchPlaceholder\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n <ng-container *ngIf=\"!searchCriteria\">\r\n <button\r\n type=\"button\"\r\n mat-menu-item\r\n class=\"country-list-button\"\r\n *ngFor=\"let country of preferredCountriesInDropDown\"\r\n (click)=\"onCountrySelect(country)\"\r\n >\r\n <div class=\"icon-wrapper\">\r\n <div class=\"flag\"\r\n [ngClass]=\"flagClass(country.flagClass)\"></div>\r\n </div>\r\n <div class=\"label-wrapper\">\r\n {{ country.name }}\r\n <span *ngIf=\"country?.dialCode\">+{{ country.dialCode }}</span>\r\n </div>\r\n </button>\r\n <mat-divider *ngIf=\"preferredCountriesInDropDown?.length\"></mat-divider>\r\n </ng-container>\r\n <ng-container *ngFor=\"let country of allCountries\">\r\n <button\r\n type=\"button\"\r\n mat-menu-item\r\n class=\"country-list-button\"\r\n *ngIf=\"country | search: searchCriteria\"\r\n (click)=\"onCountrySelect(country)\"\r\n >\r\n <div class=\"icon-wrapper\">\r\n <div class=\"flag\" [ngClass]=\"flagClass(country.flagClass)\"></div>\r\n </div>\r\n <div class=\"label-wrapper\">\r\n {{ country.name }} +{{ country.dialCode }}\r\n </div>\r\n </button>\r\n </ng-container>\r\n </mat-menu>\r\n\r\n <input #matCustomInput\r\n matInput\r\n type=\"tel\"\r\n autocomplete=\"tel\"\r\n [ngClass]=\"cssClass\"\r\n (blur)=\"onTouched()\"\r\n (keypress)=\"onInputKeyPress($event)\"\r\n [(ngModel)]=\"phoneNumber\"\r\n (ngModelChange)=\"onPhoneNumberChangeDebounce()\"\r\n [errorStateMatcher]=\"errorStateMatcher\"\r\n [placeholder]=\"inputPlaceholder\"\r\n [disabled]=\"disabled\"\r\n [aria-describedby]=\"describedBy\"\r\n />\r\n</div>\r\n", styles: ["input:not(.country-search){border:none;background:none;outline:none;font:inherit;width:100%;box-sizing:border-box;padding:0 6px 0 90px;position:relative;z-index:0;margin-top:0!important;margin-bottom:0!important;margin-right:0;margin-left:0}input.country-search{width:100%;height:34px;border:none;border-bottom:1px solid #ddd;font-size:14px;padding:20px 20px 24px;position:sticky;top:0;background-color:#fff;z-index:9}.icon-wrapper{padding-right:24px}.flag{background-size:100% auto;filter:drop-shadow(1px 1px 1px rgba(0,0,0,.54));height:14px;width:24px}.icon-wrapper,.label-wrapper{display:table-cell;vertical-align:middle}.country-selector{border-radius:0;color:#000000de;flex-shrink:0;height:initial;line-height:unset;width:90px;padding:1px;opacity:0;transition:opacity .2s;position:absolute;z-index:1;inset:0 auto 0 0;font-size:inherit;font-weight:inherit;background-position:right center;background-repeat:no-repeat;background-size:18px auto}.country-selector:disabled{color:#00000061}:host.ngx-floating .country-selector{opacity:1!important}.country-selector-flag{display:inline-block;margin-right:.5ex}.country-list-button{color:#000000de;direction:ltr;font-size:16px;font-weight:400;height:initial;line-height:normal;min-height:48px;padding:14px 24px;text-align:left;text-transform:none;width:100%}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i7.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "pipe", type: i10.SearchPipe, name: "search" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
350
+ ], viewQueries: [{ propertyName: "matMenu", first: true, predicate: MatMenu, descendants: true }, { propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecabs-tel-input-container\">\r\n <button\r\n type=\"button\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"country-selector\"\r\n [disabled]=\"disabled\"\r\n >\r\n <span\r\n class=\"country-selector-flag flag\"\r\n [ngClass]=\"flagClass(selectedCountry?.flagClass)\"\r\n ></span>\r\n <span class=\"country-selector-code\" *ngIf=\"selectedCountry?.dialCode\"\r\n >+{{ selectedCountry.dialCode }}</span\r\n >\r\n </button>\r\n <mat-menu #menu=\"matMenu\"\r\n class=\"ecabs-tel-input-mat-menu-panel\"\r\n backdropClass=\"ecabs-tel-input-overlay-backdrop\"\r\n overlayPanelClass=\"ecabs-tel-input-overlay-pane\">\r\n <input\r\n #searchInput\r\n *ngIf=\"enableSearch\"\r\n class=\"country-search\"\r\n [(ngModel)]=\"searchCriteria\"\r\n (ngModelChange)=\"onSearchInput()\"\r\n type=\"text\"\r\n [placeholder]=\"searchPlaceholder\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n <ng-container *ngIf=\"!searchCriteria\">\r\n <button\r\n type=\"button\"\r\n mat-menu-item\r\n class=\"country-list-button\"\r\n *ngFor=\"let country of preferredCountriesInDropDown\"\r\n (click)=\"onCountrySelect(country)\"\r\n >\r\n <div class=\"icon-wrapper\">\r\n <div class=\"flag\" \r\n [ngClass]=\"flagClass(country.flagClass)\"></div>\r\n </div>\r\n <div class=\"label-wrapper\">\r\n {{ country.name }}\r\n <span *ngIf=\"country?.dialCode\">+{{ country.dialCode }}</span>\r\n </div>\r\n </button>\r\n <mat-divider *ngIf=\"preferredCountriesInDropDown?.length\"></mat-divider>\r\n </ng-container>\r\n <ng-container *ngFor=\"let country of allCountries\">\r\n <button\r\n type=\"button\"\r\n mat-menu-item\r\n class=\"country-list-button\"\r\n *ngIf=\"country | search: searchCriteria\"\r\n (click)=\"onCountrySelect(country)\"\r\n >\r\n <div class=\"icon-wrapper\">\r\n <div class=\"flag\" [ngClass]=\"flagClass(country.flagClass)\"></div>\r\n </div>\r\n <div class=\"label-wrapper\">\r\n {{ country.name }} +{{ country.dialCode }}\r\n </div>\r\n </button>\r\n </ng-container>\r\n </mat-menu>\r\n\r\n <input\r\n matInput\r\n type=\"tel\"\r\n autocomplete=\"tel\"\r\n [ngClass]=\"cssClass\"\r\n (blur)=\"onTouched()\"\r\n (keypress)=\"onInputKeyPress($event)\"\r\n [(ngModel)]=\"phoneNumber\"\r\n (ngModelChange)=\"onPhoneNumberChangeDebounce()\"\r\n [errorStateMatcher]=\"errorStateMatcher\"\r\n [placeholder]=\"inputPlaceholder\"\r\n [disabled]=\"disabled\"\r\n [aria-describedby]=\"describedBy\"\r\n />\r\n</div>", styles: ["input:not(.country-search){border:none;background:none;outline:none;font:inherit;width:100%;box-sizing:border-box;padding:0 6px 0 90px;position:relative;z-index:0;margin-top:0!important;margin-bottom:0!important;margin-right:0;margin-left:0}input.country-search{width:100%;height:34px;border:none;border-bottom:1px solid #ddd;font-size:14px;padding:20px 20px 24px;position:sticky;top:0;background-color:#fff;z-index:9}.icon-wrapper{padding-right:24px}.flag{background-size:100% auto;filter:drop-shadow(1px 1px 1px rgba(0,0,0,.54));height:14px;width:24px}.icon-wrapper,.label-wrapper{display:table-cell;vertical-align:middle}.country-selector{border-radius:0;color:#000000de;flex-shrink:0;height:initial;line-height:unset;width:90px;padding:1px;opacity:0;transition:opacity .2s;position:absolute;z-index:1;inset:0 auto 0 0;font-size:inherit;font-weight:inherit;background-position:right center;background-repeat:no-repeat;background-size:18px auto}.country-selector:disabled{color:#00000061}:host.ngx-floating .country-selector{opacity:1!important}.country-selector-flag{display:inline-block;margin-right:.5ex}.country-list-button{color:#000000de;direction:ltr;font-size:16px;font-weight:400;height:initial;line-height:normal;min-height:48px;padding:14px 24px;text-align:left;text-transform:none;width:100%}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i7.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "pipe", type: i10.SearchPipe, name: "search" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
352
351
  }
353
352
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsBasePhoneComponent, decorators: [{
354
353
  type: Component,
@@ -360,7 +359,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
360
359
  useValue: phoneNumberValidator,
361
360
  multi: true,
362
361
  },
363
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ecabs-tel-input-container\">\r\n <button\r\n type=\"button\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"country-selector\"\r\n [disabled]=\"disabled\"\r\n >\r\n <span\r\n class=\"country-selector-flag flag\"\r\n [ngClass]=\"flagClass(selectedCountry?.flagClass)\"\r\n ></span>\r\n <span class=\"country-selector-code\" *ngIf=\"selectedCountry?.dialCode\"\r\n >+{{ selectedCountry.dialCode }}</span\r\n >\r\n </button>\r\n <mat-menu #menu=\"matMenu\"\r\n class=\"ecabs-tel-input-mat-menu-panel\"\r\n backdropClass=\"ecabs-tel-input-overlay-backdrop\"\r\n overlayPanelClass=\"ecabs-tel-input-overlay-pane\">\r\n <input\r\n #searchInput\r\n *ngIf=\"enableSearch\"\r\n class=\"country-search\"\r\n [(ngModel)]=\"searchCriteria\"\r\n (ngModelChange)=\"onSearchInput()\"\r\n type=\"text\"\r\n [placeholder]=\"searchPlaceholder\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n <ng-container *ngIf=\"!searchCriteria\">\r\n <button\r\n type=\"button\"\r\n mat-menu-item\r\n class=\"country-list-button\"\r\n *ngFor=\"let country of preferredCountriesInDropDown\"\r\n (click)=\"onCountrySelect(country)\"\r\n >\r\n <div class=\"icon-wrapper\">\r\n <div class=\"flag\"\r\n [ngClass]=\"flagClass(country.flagClass)\"></div>\r\n </div>\r\n <div class=\"label-wrapper\">\r\n {{ country.name }}\r\n <span *ngIf=\"country?.dialCode\">+{{ country.dialCode }}</span>\r\n </div>\r\n </button>\r\n <mat-divider *ngIf=\"preferredCountriesInDropDown?.length\"></mat-divider>\r\n </ng-container>\r\n <ng-container *ngFor=\"let country of allCountries\">\r\n <button\r\n type=\"button\"\r\n mat-menu-item\r\n class=\"country-list-button\"\r\n *ngIf=\"country | search: searchCriteria\"\r\n (click)=\"onCountrySelect(country)\"\r\n >\r\n <div class=\"icon-wrapper\">\r\n <div class=\"flag\" [ngClass]=\"flagClass(country.flagClass)\"></div>\r\n </div>\r\n <div class=\"label-wrapper\">\r\n {{ country.name }} +{{ country.dialCode }}\r\n </div>\r\n </button>\r\n </ng-container>\r\n </mat-menu>\r\n\r\n <input #matCustomInput\r\n matInput\r\n type=\"tel\"\r\n autocomplete=\"tel\"\r\n [ngClass]=\"cssClass\"\r\n (blur)=\"onTouched()\"\r\n (keypress)=\"onInputKeyPress($event)\"\r\n [(ngModel)]=\"phoneNumber\"\r\n (ngModelChange)=\"onPhoneNumberChangeDebounce()\"\r\n [errorStateMatcher]=\"errorStateMatcher\"\r\n [placeholder]=\"inputPlaceholder\"\r\n [disabled]=\"disabled\"\r\n [aria-describedby]=\"describedBy\"\r\n />\r\n</div>\r\n", styles: ["input:not(.country-search){border:none;background:none;outline:none;font:inherit;width:100%;box-sizing:border-box;padding:0 6px 0 90px;position:relative;z-index:0;margin-top:0!important;margin-bottom:0!important;margin-right:0;margin-left:0}input.country-search{width:100%;height:34px;border:none;border-bottom:1px solid #ddd;font-size:14px;padding:20px 20px 24px;position:sticky;top:0;background-color:#fff;z-index:9}.icon-wrapper{padding-right:24px}.flag{background-size:100% auto;filter:drop-shadow(1px 1px 1px rgba(0,0,0,.54));height:14px;width:24px}.icon-wrapper,.label-wrapper{display:table-cell;vertical-align:middle}.country-selector{border-radius:0;color:#000000de;flex-shrink:0;height:initial;line-height:unset;width:90px;padding:1px;opacity:0;transition:opacity .2s;position:absolute;z-index:1;inset:0 auto 0 0;font-size:inherit;font-weight:inherit;background-position:right center;background-repeat:no-repeat;background-size:18px auto}.country-selector:disabled{color:#00000061}:host.ngx-floating .country-selector{opacity:1!important}.country-selector-flag{display:inline-block;margin-right:.5ex}.country-list-button{color:#000000de;direction:ltr;font-size:16px;font-weight:400;height:initial;line-height:normal;min-height:48px;padding:14px 24px;text-align:left;text-transform:none;width:100%}\n"] }]
362
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ecabs-tel-input-container\">\r\n <button\r\n type=\"button\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n class=\"country-selector\"\r\n [disabled]=\"disabled\"\r\n >\r\n <span\r\n class=\"country-selector-flag flag\"\r\n [ngClass]=\"flagClass(selectedCountry?.flagClass)\"\r\n ></span>\r\n <span class=\"country-selector-code\" *ngIf=\"selectedCountry?.dialCode\"\r\n >+{{ selectedCountry.dialCode }}</span\r\n >\r\n </button>\r\n <mat-menu #menu=\"matMenu\"\r\n class=\"ecabs-tel-input-mat-menu-panel\"\r\n backdropClass=\"ecabs-tel-input-overlay-backdrop\"\r\n overlayPanelClass=\"ecabs-tel-input-overlay-pane\">\r\n <input\r\n #searchInput\r\n *ngIf=\"enableSearch\"\r\n class=\"country-search\"\r\n [(ngModel)]=\"searchCriteria\"\r\n (ngModelChange)=\"onSearchInput()\"\r\n type=\"text\"\r\n [placeholder]=\"searchPlaceholder\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n <ng-container *ngIf=\"!searchCriteria\">\r\n <button\r\n type=\"button\"\r\n mat-menu-item\r\n class=\"country-list-button\"\r\n *ngFor=\"let country of preferredCountriesInDropDown\"\r\n (click)=\"onCountrySelect(country)\"\r\n >\r\n <div class=\"icon-wrapper\">\r\n <div class=\"flag\" \r\n [ngClass]=\"flagClass(country.flagClass)\"></div>\r\n </div>\r\n <div class=\"label-wrapper\">\r\n {{ country.name }}\r\n <span *ngIf=\"country?.dialCode\">+{{ country.dialCode }}</span>\r\n </div>\r\n </button>\r\n <mat-divider *ngIf=\"preferredCountriesInDropDown?.length\"></mat-divider>\r\n </ng-container>\r\n <ng-container *ngFor=\"let country of allCountries\">\r\n <button\r\n type=\"button\"\r\n mat-menu-item\r\n class=\"country-list-button\"\r\n *ngIf=\"country | search: searchCriteria\"\r\n (click)=\"onCountrySelect(country)\"\r\n >\r\n <div class=\"icon-wrapper\">\r\n <div class=\"flag\" [ngClass]=\"flagClass(country.flagClass)\"></div>\r\n </div>\r\n <div class=\"label-wrapper\">\r\n {{ country.name }} +{{ country.dialCode }}\r\n </div>\r\n </button>\r\n </ng-container>\r\n </mat-menu>\r\n\r\n <input\r\n matInput\r\n type=\"tel\"\r\n autocomplete=\"tel\"\r\n [ngClass]=\"cssClass\"\r\n (blur)=\"onTouched()\"\r\n (keypress)=\"onInputKeyPress($event)\"\r\n [(ngModel)]=\"phoneNumber\"\r\n (ngModelChange)=\"onPhoneNumberChangeDebounce()\"\r\n [errorStateMatcher]=\"errorStateMatcher\"\r\n [placeholder]=\"inputPlaceholder\"\r\n [disabled]=\"disabled\"\r\n [aria-describedby]=\"describedBy\"\r\n />\r\n</div>", styles: ["input:not(.country-search){border:none;background:none;outline:none;font:inherit;width:100%;box-sizing:border-box;padding:0 6px 0 90px;position:relative;z-index:0;margin-top:0!important;margin-bottom:0!important;margin-right:0;margin-left:0}input.country-search{width:100%;height:34px;border:none;border-bottom:1px solid #ddd;font-size:14px;padding:20px 20px 24px;position:sticky;top:0;background-color:#fff;z-index:9}.icon-wrapper{padding-right:24px}.flag{background-size:100% auto;filter:drop-shadow(1px 1px 1px rgba(0,0,0,.54));height:14px;width:24px}.icon-wrapper,.label-wrapper{display:table-cell;vertical-align:middle}.country-selector{border-radius:0;color:#000000de;flex-shrink:0;height:initial;line-height:unset;width:90px;padding:1px;opacity:0;transition:opacity .2s;position:absolute;z-index:1;inset:0 auto 0 0;font-size:inherit;font-weight:inherit;background-position:right center;background-repeat:no-repeat;background-size:18px auto}.country-selector:disabled{color:#00000061}:host.ngx-floating .country-selector{opacity:1!important}.country-selector-flag{display:inline-block;margin-right:.5ex}.country-list-button{color:#000000de;direction:ltr;font-size:16px;font-weight:400;height:initial;line-height:normal;min-height:48px;padding:14px 24px;text-align:left;text-transform:none;width:100%}\n"] }]
364
363
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.CountryCode }, { type: i2.FocusMonitor }, { type: i0.ElementRef }, { type: i3.NgControl, decorators: [{
365
364
  type: Optional
366
365
  }, {
@@ -407,13 +406,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
407
406
  }], searchInput: [{
408
407
  type: ViewChild,
409
408
  args: ['searchInput', { static: false }]
410
- }], matCustomInput: [{
411
- type: ViewChild,
412
- args: ['matCustomInput', { static: false }]
413
409
  }], id: [{
414
410
  type: HostBinding
415
411
  }], shouldLabelFloat: [{
416
412
  type: HostBinding,
417
413
  args: ['class.ngx-floating']
418
414
  }] } });
419
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtYmFzZS1waG9uZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtYmFzZS1waG9uZS1pbnB1dC9lY2Ficy1iYXNlLXBob25lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1iYXNlLXBob25lLWlucHV0L2VjYWJzLWJhc2UtcGhvbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0RBQW9EO0FBQ3BELE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUdULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVuRSxPQUFPLEVBSUwsYUFBYSxHQUNkLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLFNBQVMsRUFHVCxnQkFBZ0IsRUFFaEIsMEJBQTBCLEdBRTNCLE1BQU0sbUJBQW1CLENBQUM7QUFHM0IsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixlQUFlLEdBR2hCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7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LEVBQUU7Z0JBSTlDLEVBQUU7c0JBREQsV0FBVztnQkFJUixnQkFBZ0I7c0JBRG5CLFdBQVc7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBEb0NoZWNrLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgT3V0cHV0LFxyXG4gIFNlbGYsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcblxyXG5pbXBvcnQge1xyXG4gIEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuICBOZ0NvbnRyb2wsXHJcbiAgTmdGb3JtLFxyXG4gIE5HX1ZBTElEQVRPUlMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIEFzWW91VHlwZSxcclxuICBDb3VudHJ5Q29kZSBhcyBDQyxcclxuICBFMTY0TnVtYmVyLFxyXG4gIGdldEV4YW1wbGVOdW1iZXIsXHJcbiAgTmF0aW9uYWxOdW1iZXIsXHJcbiAgcGFyc2VQaG9uZU51bWJlckZyb21TdHJpbmcsXHJcbiAgUGhvbmVOdW1iZXIsXHJcbn0gZnJvbSAnbGlicGhvbmVudW1iZXItanMnO1xyXG5cclxuaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQge1xyXG4gIENhblVwZGF0ZUVycm9yU3RhdGUsXHJcbiAgRXJyb3JTdGF0ZU1hdGNoZXIsXHJcbiAgbWl4aW5FcnJvclN0YXRlLFxyXG4gIF9BYnN0cmFjdENvbnN0cnVjdG9yLFxyXG4gIF9Db25zdHJ1Y3RvcixcclxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTWF0TWVudSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ291bnRyeUNvZGUsIEV4YW1wbGVzIH0gZnJvbSAnLi4vYmFzZS9jb25zdHMvY291bnRyeS1jb2Rlcyc7XHJcbmltcG9ydCB7IHBob25lTnVtYmVyVmFsaWRhdG9yIH0gZnJvbSAnLi4vYmFzZS92YWxpZGF0b3JzL3Bob25lLW51bWJlci52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBDb3VudHJ5LCBQaG9uZU51bWJlckZvcm1hdCB9IGZyb20gJy4uL2Jhc2UvbW9kZWxzL3Bob25lLm1vZGVscyc7XHJcblxyXG5jbGFzcyBOZ3hNYXRJbnRsVGVsSW5wdXRCYXNlIHtcclxuICByZWFkb25seSBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBfZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyOiBFcnJvclN0YXRlTWF0Y2hlcixcclxuICAgIHB1YmxpYyBfcGFyZW50Rm9ybTogTmdGb3JtLFxyXG4gICAgcHVibGljIF9wYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuICAgIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcclxuICApIHt9XHJcbn1cclxuXHJcbmRlY2xhcmUgdHlwZSBDYW5VcGRhdGVFcnJvclN0YXRlQ3RvciA9IF9Db25zdHJ1Y3RvcjxDYW5VcGRhdGVFcnJvclN0YXRlPiAmXHJcbiAgX0Fic3RyYWN0Q29uc3RydWN0b3I8Q2FuVXBkYXRlRXJyb3JTdGF0ZT47XHJcblxyXG5jb25zdCBfTmd4TWF0SW50bFRlbElucHV0TWl4aW5CYXNlOiBDYW5VcGRhdGVFcnJvclN0YXRlQ3RvciAmXHJcbiAgdHlwZW9mIE5neE1hdEludGxUZWxJbnB1dEJhc2UgPSBtaXhpbkVycm9yU3RhdGUoTmd4TWF0SW50bFRlbElucHV0QmFzZSk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjYWJzLWJhc2UtcGhvbmUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lY2Ficy1iYXNlLXBob25lLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9lY2Ficy1iYXNlLXBob25lLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogZmFsc2UsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBDb3VudHJ5Q29kZSxcclxuICAgIHsgcHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCwgdXNlRXhpc3Rpbmc6IEVjYWJzQmFzZVBob25lQ29tcG9uZW50IH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICAgIHVzZVZhbHVlOiBwaG9uZU51bWJlclZhbGlkYXRvcixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFY2Fic0Jhc2VQaG9uZUNvbXBvbmVudFxyXG4gIGV4dGVuZHMgX05neE1hdEludGxUZWxJbnB1dE1peGluQmFzZVxyXG4gIGltcGxlbWVudHNcclxuICAgIE9uSW5pdCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIERvQ2hlY2ssXHJcbiAgICBDYW5VcGRhdGVFcnJvclN0YXRlLFxyXG4gICAgTWF0Rm9ybUZpZWxkQ29udHJvbDxhbnk+XHJcbntcclxuICBASW5wdXQoKSBwcmVmZXJyZWRDb3VudHJpZXM6IHN0cmluZ1tdID0gW107XHJcbiAgQElucHV0KCkgZW5hYmxlUGxhY2Vob2xkZXIgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGlucHV0UGxhY2Vob2xkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBjc3NDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBvbmx5Q291bnRyaWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIG92ZXJyaWRlIGVycm9yU3RhdGVNYXRjaGVyOiBFcnJvclN0YXRlTWF0Y2hlciA9XHJcbiAgICBuZXcgRXJyb3JTdGF0ZU1hdGNoZXIoKTtcclxuICBASW5wdXQoKSBlbmFibGVTZWFyY2ggPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZWFyY2hQbGFjZWhvbGRlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGRlc2NyaWJlZEJ5ID0gJyc7XHJcbiAgQElucHV0KCkgZGVib3VuY2VUaW1lTXM7XHJcbiAgQElucHV0KClcclxuICBnZXQgZm9ybWF0KCk6IFBob25lTnVtYmVyRm9ybWF0IHtcclxuICAgIHJldHVybiB0aGlzLl9mb3JtYXQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyIHx8ICcnO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBjb3VudHJ5Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q291bnRyeT4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZChNYXRNZW51KSBtYXRNZW51OiBNYXRNZW51IHwgdW5kZWZpbmVkO1xyXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaElucHV0JywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgc2VhcmNoSW5wdXQ6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ21hdEN1c3RvbUlucHV0JywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgbWF0Q3VzdG9tSW5wdXQ6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBIb3N0QmluZGluZygpXHJcbiAgaWQgPSBgZWNhYnMtaW50bC10ZWwtaW5wdXQtJHtFY2Fic0Jhc2VQaG9uZUNvbXBvbmVudC5uZXh0SWQrK31gO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm5neC1mbG9hdGluZycpXHJcbiAgZ2V0IHNob3VsZExhYmVsRmxvYXQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5mb2N1c2VkIHx8ICF0aGlzLmVtcHR5O1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIG5leHRJZCA9IDA7XHJcblxyXG4gIHByaXZhdGUgX2NoYW5nZVN1YmplY3QgPSBuZXcgU3ViamVjdCgpO1xyXG4gIHByaXZhdGUgX3BsYWNlaG9sZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3ByZXZpb3VzRm9ybWF0dGVkTnVtYmVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBfZm9ybWF0OiBQaG9uZU51bWJlckZvcm1hdCA9ICdkZWZhdWx0JztcclxuICBvdmVycmlkZSBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBmb2N1c2VkID0gZmFsc2U7XHJcbiAgcGhvbmVOdW1iZXI6IE5hdGlvbmFsTnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIGFsbENvdW50cmllczogQ291bnRyeVtdID0gW107XHJcbiAgcHJlZmVycmVkQ291bnRyaWVzSW5Ecm9wRG93bjogQ291bnRyeVtdID0gW107XHJcbiAgc2VsZWN0ZWRDb3VudHJ5OiBDb3VudHJ5IHwgdW5kZWZpbmVkO1xyXG4gIG51bWJlckluc3RhbmNlOiBQaG9uZU51bWJlciB8IHVuZGVmaW5lZDtcclxuICB2YWx1ZTogRTE2NE51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBzZWFyY2hDcml0ZXJpYTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMucGhvbmVOdW1iZXI7XHJcbiAgfVxyXG5cclxuICBzZXQgZm9ybWF0KHZhbHVlOiBQaG9uZU51bWJlckZvcm1hdCkge1xyXG4gICAgdGhpcy5fZm9ybWF0ID0gdmFsdWU7XHJcbiAgICB0aGlzLnBob25lTnVtYmVyID0gdGhpcy5mb3JtYXR0ZWRQaG9uZU51bWJlcjtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQodW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHZhbHVlO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCh1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgc2V0IHJlcXVpcmVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQodW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXRQaG9uZU51bWJlclBsYWNlSG9sZGVyKGNvdW50cnlJU09Db2RlOiBDQyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICBjb25zdCByZXN1bHQgPSBnZXRFeGFtcGxlTnVtYmVyKGNvdW50cnlJU09Db2RlLCBFeGFtcGxlcyk7XHJcblxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWV4dHJhLWJvb2xlYW4tY2FzdFxyXG4gICAgcmV0dXJuICEhcmVzdWx0ID8gcmVzdWx0Lm51bWJlci50b1N0cmluZygpIDogdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgb25Ub3VjaGVkID0gKCkgPT4ge307XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcclxuICBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogdW5rbm93bikgPT4ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGNvdW50cnlDb2RlRGF0YTogQ291bnRyeUNvZGUsXHJcbiAgICBwcml2YXRlIGZtOiBGb2N1c01vbml0b3IsXHJcbiAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcclxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG92ZXJyaWRlIG5nQ29udHJvbDogTmdDb250cm9sLFxyXG4gICAgQE9wdGlvbmFsKCkgcGFyZW50Rm9ybTogTmdGb3JtLFxyXG4gICAgQE9wdGlvbmFsKCkgcGFyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmUsXHJcbiAgICBkZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyLFxyXG4gICkge1xyXG4gICAgc3VwZXIoZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyLCBwYXJlbnRGb3JtLCBwYXJlbnRGb3JtR3JvdXAsIG5nQ29udHJvbCk7XHJcblxyXG4gICAgZm0ubW9uaXRvcihlbFJlZiwgdHJ1ZSkuc3Vic2NyaWJlKChvcmlnaW4pID0+IHtcclxuICAgICAgaWYgKHRoaXMuZm9jdXNlZCAmJiAhb3JpZ2luKSB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmZvY3VzZWQgPSAhIW9yaWdpbjtcclxuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCh1bmRlZmluZWQpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmZldGNoQ291bnRyeURhdGEoKTtcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuc2VhcmNoUGxhY2Vob2xkZXIpIHtcclxuICAgICAgdGhpcy5zZWFyY2hQbGFjZWhvbGRlciA9ICdTZWFyY2ggLi4uJztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnByZWZlcnJlZENvdW50cmllcy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5wcmVmZXJyZWRDb3VudHJpZXMuZm9yRWFjaCgoaXNvMikgPT4ge1xyXG4gICAgICAgIGNvbnN0IHByZWZlcnJlZENvdW50cnkgPSB0aGlzLmFsbENvdW50cmllc1xyXG4gICAgICAgICAgLmZpbHRlcigoYykgPT4gYy5pc28yID09PSBpc28yKVxyXG4gICAgICAgICAgLnNoaWZ0KCk7XHJcbiAgICAgICAgaWYgKHByZWZlcnJlZENvdW50cnkpIHtcclxuICAgICAgICAgIHRoaXMucHJlZmVycmVkQ291bnRyaWVzSW5Ecm9wRG93bi5wdXNoKHByZWZlcnJlZENvdW50cnkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vbmx5Q291bnRyaWVzLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmFsbENvdW50cmllcyA9IHRoaXMuYWxsQ291bnRyaWVzLmZpbHRlcigoYykgPT5cclxuICAgICAgICB0aGlzLm9ubHlDb3VudHJpZXMuaW5jbHVkZXMoYy5pc28yKSxcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm51bWJlckluc3RhbmNlICYmIHRoaXMubnVtYmVySW5zdGFuY2UuY291bnRyeSkge1xyXG4gICAgICAvLyBJZiBhbiBleGlzdGluZyBudW1iZXIgaXMgcHJlc2VudCwgd2UgdXNlIGl0IHRvIGRldGVybWluZSBzZWxlY3RlZENvdW50cnlcclxuICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkgPSB0aGlzLmdldENvdW50cnkodGhpcy5udW1iZXJJbnN0YW5jZS5jb3VudHJ5KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLnByZWZlcnJlZENvdW50cmllc0luRHJvcERvd24ubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkgPSB0aGlzLnByZWZlcnJlZENvdW50cmllc0luRHJvcERvd25bMF07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkgPSB0aGlzLmFsbENvdW50cmllc1swXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5fY2hhbmdlU3ViamVjdFxyXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWVNcykpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMub25QaG9uZU51bWJlckNoYW5nZSgpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuY291bnRyeUNoYW5nZWQuZW1pdCh0aGlzLnNlbGVjdGVkQ291bnRyeSk7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCh1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlRXJyb3JTdGF0ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5mbS5zdG9wTW9uaXRvcmluZyh0aGlzLmVsUmVmKTtcclxuICAgIHRoaXMuX2NoYW5nZVN1YmplY3QuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIG9uUGhvbmVOdW1iZXJDaGFuZ2VEZWJvdW5jZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2NoYW5nZVN1YmplY3QubmV4dCh1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgb25QaG9uZU51bWJlckNoYW5nZSgpOiB2b2lkIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIHRoaXMubnVtYmVySW5zdGFuY2UgPSBwYXJzZVBob25lTnVtYmVyRnJvbVN0cmluZyhcclxuICAgICAgICB0aGlzLnBob25lTnVtYmVyPy50b1N0cmluZygpIHx8ICcnLFxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5Py5pc28yLnRvVXBwZXJDYXNlKCkgYXMgQ0MsXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuZm9ybWF0QXNZb3VUeXBlSWZFbmFibGVkKCk7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm51bWJlckluc3RhbmNlPy5udW1iZXI7XHJcbiAgICAgIGlmICh0aGlzLm51bWJlckluc3RhbmNlICYmIHRoaXMubnVtYmVySW5zdGFuY2UuaXNWYWxpZCgpKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucGhvbmVOdW1iZXIgIT09IHRoaXMuZm9ybWF0dGVkUGhvbmVOdW1iZXIpIHtcclxuICAgICAgICAgIHRoaXMucGhvbmVOdW1iZXIgPSB0aGlzLmZvcm1hdHRlZFBob25lTnVtYmVyO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeT8uaXNvMiAhPT0gdGhpcy5udW1iZXJJbnN0YW5jZS5jb3VudHJ5ICYmXHJcbiAgICAgICAgICAhIXRoaXMubnVtYmVySW5zdGFuY2UuY291bnRyeVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkgPSB0aGlzLmdldENvdW50cnkodGhpcy5udW1iZXJJbnN0YW5jZS5jb3VudHJ5KTtcclxuICAgICAgICAgIHRoaXMuY291bnRyeUNoYW5nZWQuZW1pdCh0aGlzLnNlbGVjdGVkQ291bnRyeSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIHtcclxuICAgICAgLy8gaWYgbm8gcG9zc2libGUgbnVtYmVycyBhcmUgdGhlcmUsXHJcbiAgICAgIC8vIHRoZW4gdGhlIGZ1bGwgbnVtYmVyIGlzIHBhc3NlZCBzbyB0aGF0IHZhbGlkYXRvciBjb3VsZCBiZSB0cmlnZ2VyZWQgYW5kIHByb3BlciBlcnJvciBjb3VsZCBiZSBzaG93blxyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5waG9uZU51bWJlcj8udG9TdHJpbmcoKTtcclxuICAgIH1cclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIG9uQ291bnRyeVNlbGVjdChjb3VudHJ5OiBDb3VudHJ5KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5waG9uZU51bWJlcikge1xyXG4gICAgICB0aGlzLnBob25lTnVtYmVyID0gdGhpcy5udW1iZXJJbnN0YW5jZT8ubmF0aW9uYWxOdW1iZXI7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IGNvdW50cnk7XHJcbiAgICB0aGlzLmNvdW50cnlDaGFuZ2VkLmVtaXQodGhpcy5zZWxlY3RlZENvdW50cnkpO1xyXG4gICAgdGhpcy5vblBob25lTnVtYmVyQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBnZXRDb3VudHJ5KGNvZGU6IHN0cmluZyk6IENvdW50cnkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5hbGxDb3VudHJpZXMuZmluZCgoYykgPT4gYy5pc28yID09PSBjb2RlLnRvTG93ZXJDYXNlKCkpIHx8IHtcclxuICAgICAgICBuYW1lOiAnVU4nLFxyXG4gICAgICAgIGlzbzI6ICdVTicsXHJcbiAgICAgICAgZGlhbENvZGU6ICcnLFxyXG4gICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgIGFyZWFDb2RlczogdW5kZWZpbmVkLFxyXG4gICAgICAgIGZsYWdDbGFzczogJ1VOJyxcclxuICAgICAgICBwbGFjZUhvbGRlcjogJycsXHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBvbklucHV0S2V5UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHBhdHRlcm4gPSAvWzAtOStcXC0gXS87XHJcbiAgICBpZiAoIXBhdHRlcm4udGVzdChldmVudC5rZXkpKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmbGFnQ2xhc3MobGFuZzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgZmkgZmktJHtsYW5nPy5zbGljZSgtMikudG9Mb3dlckNhc2UoKX1gO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCh1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5udW1iZXJJbnN0YW5jZSA9IHBhcnNlUGhvbmVOdW1iZXJGcm9tU3RyaW5nKHZhbHVlKTtcclxuICAgICAgaWYgKHRoaXMubnVtYmVySW5zdGFuY2UpIHtcclxuICAgICAgICBjb25zdCBjb3VudHJ5Q29kZSA9IHRoaXMubnVtYmVySW5zdGFuY2UuY291bnRyeTtcclxuICAgICAgICB0aGlzLnBob25lTnVtYmVyID0gdGhpcy5mb3JtYXR0ZWRQaG9uZU51bWJlcjtcclxuICAgICAgICBpZiAoIWNvdW50cnlDb2RlKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkgPSB0aGlzLmdldENvdW50cnkoY291bnRyeUNvZGUpO1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeS5kaWFsQ29kZSAmJlxyXG4gICAgICAgICAgICAhdGhpcy5wcmVmZXJyZWRDb3VudHJpZXMuaW5jbHVkZXModGhpcy5zZWxlY3RlZENvdW50cnkuaXNvMilcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLnByZWZlcnJlZENvdW50cmllc0luRHJvcERvd24ucHVzaCh0aGlzLnNlbGVjdGVkQ291bnRyeSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmNvdW50cnlDaGFuZ2VkLmVtaXQodGhpcy5zZWxlY3RlZENvdW50cnkpO1xyXG5cclxuICAgICAgICAgIC8vIEluaXRpYWwgdmFsdWUgaXMgc2V0XHJcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCh1bmRlZmluZWQpO1xyXG4gICAgICAgIH0sIDEpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucGhvbmVOdW1iZXIgPSB2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFZhbHVlIGlzIHNldCBmcm9tIG91dHNpZGUgdXNpbmcgc2V0VmFsdWUoKVxyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQodW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIHNldERlc2NyaWJlZEJ5SWRzKGlkczogc3RyaW5nW10pIHtcclxuICAgIHRoaXMuZGVzY3JpYmVkQnkgPSBpZHMuam9pbignICcpO1xyXG4gIH1cclxuXHJcbiAgb25Db250YWluZXJDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKChldmVudC50YXJnZXQgYXMgRWxlbWVudCkudGFnTmFtZS50b0xvd2VyQ2FzZSgpICE9PSAnaW5wdXQnKSB7XHJcbiAgICAgIHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpIS5mb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnBob25lTnVtYmVyID0gJyc7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZShudWxsKTtcclxuXHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCh1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgb25TZWFyY2hJbnB1dCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnNlYXJjaElucHV0Py5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xyXG4gICAgfSwgMjAwKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBmZXRjaENvdW50cnlEYXRhKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb3VudHJ5Q29kZURhdGEuYWxsQ291bnRyaWVzLmZvckVhY2goKGMpID0+IHtcclxuICAgICAgY29uc3QgY291bnRyeTogQ291bnRyeSA9IHtcclxuICAgICAgICBuYW1lOiBjWzBdLnRvU3RyaW5nKCksXHJcbiAgICAgICAgaXNvMjogY1sxXS50b1N0cmluZygpLFxyXG4gICAgICAgIGRpYWxDb2RlOiBjWzJdLnRvU3RyaW5nKCksXHJcbiAgICAgICAgcHJpb3JpdHk6ICtjWzNdIHx8IDAsXHJcbiAgICAgICAgYXJlYUNvZGVzOiAoY1s0XSBhcyBzdHJpbmdbXSkgfHwgdW5kZWZpbmVkLFxyXG4gICAgICAgIGZsYWdDbGFzczogY1sxXS50b1N0cmluZygpLnRvVXBwZXJDYXNlKCksXHJcbiAgICAgICAgcGxhY2VIb2xkZXI6ICcnLFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgaWYgKHRoaXMuZW5hYmxlUGxhY2Vob2xkZXIpIHtcclxuICAgICAgICBjb3VudHJ5LnBsYWNlSG9sZGVyID0gRWNhYnNCYXNlUGhvbmVDb21wb25lbnQuZ2V0UGhvbmVOdW1iZXJQbGFjZUhvbGRlcihcclxuICAgICAgICAgIGNvdW50cnkuaXNvMi50b1VwcGVyQ2FzZSgpIGFzIENDLFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuYWxsQ291bnRyaWVzLnB1c2goY291bnRyeSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0IGZvcm1hdHRlZFBob25lTnVtYmVyKCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXRoaXMubnVtYmVySW5zdGFuY2UpIHtcclxuICAgICAgcmV0dXJuIHRoaXMucGhvbmVOdW1iZXI/LnRvU3RyaW5nKCkgfHwgJyc7XHJcbiAgICB9XHJcbiAgICBzd2l0Y2ggKHRoaXMuZm9ybWF0KSB7XHJcbiAgICAgIGNhc2UgJ25hdGlvbmFsJzpcclxuICAgICAgICByZXR1cm4gdGhpcy5udW1iZXJJbnN0YW5jZS5mb3JtYXROYXRpb25hbCgpO1xyXG5cclxuICAgICAgY2FzZSAnaW50ZXJuYXRpb25hbCc6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubnVtYmVySW5zdGFuY2UuZm9ybWF0SW50ZXJuYXRpb25hbCgpO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gdGhpcy5udW1iZXJJbnN0YW5jZS5uYXRpb25hbE51bWJlci50b1N0cmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb3JtYXRBc1lvdVR5cGVJZkVuYWJsZWQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5mb3JtYXQgPT09ICdkZWZhdWx0Jykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBhc1lvdVR5cGU6IEFzWW91VHlwZSA9IG5ldyBBc1lvdVR5cGUoXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5Py5pc28yLnRvVXBwZXJDYXNlKCkgYXMgQ0MsXHJcbiAgICApO1xyXG4gICAgLy8gVG8gYXZvaWQgY2FyZXQgcG9zaXRpb25pbmcgd2UgYXBwbHkgZm9ybWF0dGluZyBvbmx5IGlmIHRoZSBjYXJldCBpcyBhdCB0aGUgZW5kOlxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnBob25lTnVtYmVyXHJcbiAgICAgICAgPy50b1N0cmluZygpXHJcbiAgICAgICAgLnN0YXJ0c1dpdGgodGhpcy5fcHJldmlvdXNGb3JtYXR0ZWROdW1iZXIgfHwgJycpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5waG9uZU51bWJlciA9IGFzWW91VHlwZS5pbnB1dCh0aGlzLnBob25lTnVtYmVyLnRvU3RyaW5nKCkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fcHJldmlvdXNGb3JtYXR0ZWROdW1iZXIgPSB0aGlzLnBob25lTnVtYmVyPy50b1N0cmluZygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZWNhYnMtdGVsLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gIDxidXR0b25cclxuICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgbWF0LWJ1dHRvblxyXG4gICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxyXG4gICAgY2xhc3M9XCJjb3VudHJ5LXNlbGVjdG9yXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgPlxyXG4gICAgPHNwYW5cclxuICAgICAgY2xhc3M9XCJjb3VudHJ5LXNlbGVjdG9yLWZsYWcgZmxhZ1wiXHJcbiAgICAgIFtuZ0NsYXNzXT1cImZsYWdDbGFzcyhzZWxlY3RlZENvdW50cnk/LmZsYWdDbGFzcylcIlxyXG4gICAgPjwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwiY291bnRyeS1zZWxlY3Rvci1jb2RlXCIgKm5nSWY9XCJzZWxlY3RlZENvdW50cnk/LmRpYWxDb2RlXCJcclxuICAgID4re3sgc2VsZWN0ZWRDb3VudHJ5LmRpYWxDb2RlIH19PC9zcGFuXHJcbiAgICA+XHJcbiAgPC9idXR0b24+XHJcbiAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZWNhYnMtdGVsLWlucHV0LW1hdC1tZW51LXBhbmVsXCJcclxuICAgICAgICAgICAgYmFja2Ryb3BDbGFzcz1cImVjYWJzLXRlbC1pbnB1dC1vdmVybGF5LWJhY2tkcm9wXCJcclxuICAgICAgICAgICAgb3ZlcmxheVBhbmVsQ2xhc3M9XCJlY2Ficy10ZWwtaW5wdXQtb3ZlcmxheS1wYW5lXCI+XHJcbiAgICA8aW5wdXRcclxuICAgICAgI3NlYXJjaElucHV0XHJcbiAgICAgICpuZ0lmPVwiZW5hYmxlU2VhcmNoXCJcclxuICAgICAgY2xhc3M9XCJjb3VudHJ5LXNlYXJjaFwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoQ3JpdGVyaWFcIlxyXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJvblNlYXJjaElucHV0KClcIlxyXG4gICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJzZWFyY2hQbGFjZWhvbGRlclwiXHJcbiAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgLz5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2VhcmNoQ3JpdGVyaWFcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cclxuICAgICAgICBjbGFzcz1cImNvdW50cnktbGlzdC1idXR0b25cIlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBjb3VudHJ5IG9mIHByZWZlcnJlZENvdW50cmllc0luRHJvcERvd25cIlxyXG4gICAgICAgIChjbGljayk9XCJvbkNvdW50cnlTZWxlY3QoY291bnRyeSlcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImljb24td3JhcHBlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsYWdcIlxyXG4gICAgICAgICAgW25nQ2xhc3NdPVwiZmxhZ0NsYXNzKGNvdW50cnkuZmxhZ0NsYXNzKVwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbC13cmFwcGVyXCI+XHJcbiAgICAgICAgICB7eyBjb3VudHJ5Lm5hbWUgfX1cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291bnRyeT8uZGlhbENvZGVcIj4re3sgY291bnRyeS5kaWFsQ29kZSB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxtYXQtZGl2aWRlciAqbmdJZj1cInByZWZlcnJlZENvdW50cmllc0luRHJvcERvd24/Lmxlbmd0aFwiPjwvbWF0LWRpdmlkZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvdW50cnkgb2YgYWxsQ291bnRyaWVzXCI+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBtYXQtbWVudS1pdGVtXHJcbiAgICAgICAgY2xhc3M9XCJjb3VudHJ5LWxpc3QtYnV0dG9uXCJcclxuICAgICAgICAqbmdJZj1cImNvdW50cnkgfCBzZWFyY2g6IHNlYXJjaENyaXRlcmlhXCJcclxuICAgICAgICAoY2xpY2spPVwib25Db3VudHJ5U2VsZWN0KGNvdW50cnkpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGFnXCIgW25nQ2xhc3NdPVwiZmxhZ0NsYXNzKGNvdW50cnkuZmxhZ0NsYXNzKVwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbC13cmFwcGVyXCI+XHJcbiAgICAgICAgICB7eyBjb3VudHJ5Lm5hbWUgfX0gK3t7IGNvdW50cnkuZGlhbENvZGUgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L21hdC1tZW51PlxyXG5cclxuICA8aW5wdXQgI21hdEN1c3RvbUlucHV0XHJcbiAgICBtYXRJbnB1dFxyXG4gICAgdHlwZT1cInRlbFwiXHJcbiAgICBhdXRvY29tcGxldGU9XCJ0ZWxcIlxyXG4gICAgW25nQ2xhc3NdPVwiY3NzQ2xhc3NcIlxyXG4gICAgKGJsdXIpPVwib25Ub3VjaGVkKClcIlxyXG4gICAgKGtleXByZXNzKT1cIm9uSW5wdXRLZXlQcmVzcygkZXZlbnQpXCJcclxuICAgIFsobmdNb2RlbCldPVwicGhvbmVOdW1iZXJcIlxyXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25QaG9uZU51bWJlckNoYW5nZURlYm91bmNlKClcIlxyXG4gICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cImVycm9yU3RhdGVNYXRjaGVyXCJcclxuICAgIFtwbGFjZWhvbGRlcl09XCJpbnB1dFBsYWNlaG9sZGVyXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICBbYXJpYS1kZXNjcmliZWRieV09XCJkZXNjcmliZWRCeVwiXHJcbiAgLz5cclxuPC9kaXY+XHJcbiJdfQ==
415
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtYmFzZS1waG9uZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtYmFzZS1waG9uZS1pbnB1dC9lY2Ficy1iYXNlLXBob25lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1iYXNlLXBob25lLWlucHV0L2VjYWJzLWJhc2UtcGhvbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0RBQW9EO0FBQ3BELE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUdULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVuRSxPQUFPLEVBSUwsYUFBYSxHQUNkLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLFNBQVMsRUFHVCxnQkFBZ0IsRUFFaEIsMEJBQTBCLEdBRTNCLE1BQU0sbUJBQW1CLENBQUM7QUFHM0IsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixlQUFlLEdBR2hCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7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dCI6WyIvLyBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIERvQ2hlY2ssXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPcHRpb25hbCxcclxuICBPdXRwdXQsXHJcbiAgU2VsZixcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuXHJcbmltcG9ydCB7XHJcbiAgRm9ybUdyb3VwRGlyZWN0aXZlLFxyXG4gIE5nQ29udHJvbCxcclxuICBOZ0Zvcm0sXHJcbiAgTkdfVkFMSURBVE9SUyxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7XHJcbiAgQXNZb3VUeXBlLFxyXG4gIENvdW50cnlDb2RlIGFzIENDLFxyXG4gIEUxNjROdW1iZXIsXHJcbiAgZ2V0RXhhbXBsZU51bWJlcixcclxuICBOYXRpb25hbE51bWJlcixcclxuICBwYXJzZVBob25lTnVtYmVyRnJvbVN0cmluZyxcclxuICBQaG9uZU51bWJlcixcclxufSBmcm9tICdsaWJwaG9uZW51bWJlci1qcyc7XHJcblxyXG5pbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XHJcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XHJcbmltcG9ydCB7XHJcbiAgQ2FuVXBkYXRlRXJyb3JTdGF0ZSxcclxuICBFcnJvclN0YXRlTWF0Y2hlcixcclxuICBtaXhpbkVycm9yU3RhdGUsXHJcbiAgX0Fic3RyYWN0Q29uc3RydWN0b3IsXHJcbiAgX0NvbnN0cnVjdG9yLFxyXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRNZW51IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb3VudHJ5Q29kZSwgRXhhbXBsZXMgfSBmcm9tICcuLi9iYXNlL2NvbnN0cy9jb3VudHJ5LWNvZGVzJztcclxuaW1wb3J0IHsgcGhvbmVOdW1iZXJWYWxpZGF0b3IgfSBmcm9tICcuLi9iYXNlL3ZhbGlkYXRvcnMvcGhvbmUtbnVtYmVyLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IENvdW50cnksIFBob25lTnVtYmVyRm9ybWF0IH0gZnJvbSAnLi4vYmFzZS9tb2RlbHMvcGhvbmUubW9kZWxzJztcclxuXHJcbmNsYXNzIE5neE1hdEludGxUZWxJbnB1dEJhc2Uge1xyXG4gIHJlYWRvbmx5IHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIF9kZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyLFxyXG4gICAgcHVibGljIF9wYXJlbnRGb3JtOiBOZ0Zvcm0sXHJcbiAgICBwdWJsaWMgX3BhcmVudEZvcm1Hcm91cDogRm9ybUdyb3VwRGlyZWN0aXZlLFxyXG4gICAgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLFxyXG4gICkge31cclxufVxyXG5cclxuZGVjbGFyZSB0eXBlIENhblVwZGF0ZUVycm9yU3RhdGVDdG9yID0gX0NvbnN0cnVjdG9yPENhblVwZGF0ZUVycm9yU3RhdGU+ICZcclxuICBfQWJzdHJhY3RDb25zdHJ1Y3RvcjxDYW5VcGRhdGVFcnJvclN0YXRlPjtcclxuXHJcbmNvbnN0IF9OZ3hNYXRJbnRsVGVsSW5wdXRNaXhpbkJhc2U6IENhblVwZGF0ZUVycm9yU3RhdGVDdG9yICZcclxuICB0eXBlb2YgTmd4TWF0SW50bFRlbElucHV0QmFzZSA9IG1peGluRXJyb3JTdGF0ZShOZ3hNYXRJbnRsVGVsSW5wdXRCYXNlKTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWNhYnMtYmFzZS1waG9uZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VjYWJzLWJhc2UtcGhvbmUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2VjYWJzLWJhc2UtcGhvbmUuY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiBmYWxzZSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIENvdW50cnlDb2RlLFxyXG4gICAgeyBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogRWNhYnNCYXNlUGhvbmVDb21wb25lbnQgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgdXNlVmFsdWU6IHBob25lTnVtYmVyVmFsaWRhdG9yLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVjYWJzQmFzZVBob25lQ29tcG9uZW50XHJcbiAgZXh0ZW5kcyBfTmd4TWF0SW50bFRlbElucHV0TWl4aW5CYXNlXHJcbiAgaW1wbGVtZW50c1xyXG4gICAgT25Jbml0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgRG9DaGVjayxcclxuICAgIENhblVwZGF0ZUVycm9yU3RhdGUsXHJcbiAgICBNYXRGb3JtRmllbGRDb250cm9sPGFueT5cclxue1xyXG4gIEBJbnB1dCgpIHByZWZlcnJlZENvdW50cmllczogc3RyaW5nW10gPSBbXTtcclxuICBASW5wdXQoKSBlbmFibGVQbGFjZWhvbGRlciA9IHRydWU7XHJcbiAgQElucHV0KCkgaW5wdXRQbGFjZWhvbGRlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGNzc0NsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIG9ubHlDb3VudHJpZXM6IHN0cmluZ1tdID0gW107XHJcbiAgQElucHV0KCkgb3ZlcnJpZGUgZXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyID1cclxuICAgIG5ldyBFcnJvclN0YXRlTWF0Y2hlcigpO1xyXG4gIEBJbnB1dCgpIGVuYWJsZVNlYXJjaCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNlYXJjaFBsYWNlaG9sZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgZGVzY3JpYmVkQnkgPSAnJztcclxuICBASW5wdXQoKSBkZWJvdW5jZVRpbWVNcztcclxuICBASW5wdXQoKVxyXG4gIGdldCBmb3JtYXQoKTogUGhvbmVOdW1iZXJGb3JtYXQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1hdDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXIgfHwgJyc7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpIGNvdW50cnlDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDb3VudHJ5PigpO1xyXG5cclxuICBAVmlld0NoaWxkKE1hdE1lbnUpIG1hdE1lbnU6IE1hdE1lbnUgfCB1bmRlZmluZWQ7XHJcbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBzZWFyY2hJbnB1dDogRWxlbWVudFJlZjtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKClcclxuICBpZCA9IGBlY2Ficy1pbnRsLXRlbC1pbnB1dC0ke0VjYWJzQmFzZVBob25lQ29tcG9uZW50Lm5leHRJZCsrfWA7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3Mubmd4LWZsb2F0aW5nJylcclxuICBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmZvY3VzZWQgfHwgIXRoaXMuZW1wdHk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgbmV4dElkID0gMDtcclxuXHJcbiAgcHJpdmF0ZSBfY2hhbmdlU3ViamVjdCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfcHJldmlvdXNGb3JtYXR0ZWROdW1iZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIF9mb3JtYXQ6IFBob25lTnVtYmVyRm9ybWF0ID0gJ2RlZmF1bHQnO1xyXG4gIG92ZXJyaWRlIHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGZvY3VzZWQgPSBmYWxzZTtcclxuICBwaG9uZU51bWJlcjogTmF0aW9uYWxOdW1iZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgYWxsQ291bnRyaWVzOiBDb3VudHJ5W10gPSBbXTtcclxuICBwcmVmZXJyZWRDb3VudHJpZXNJbkRyb3BEb3duOiBDb3VudHJ5W10gPSBbXTtcclxuICBzZWxlY3RlZENvdW50cnk6IENvdW50cnkgfCB1bmRlZmluZWQ7XHJcbiAgbnVtYmVySW5zdGFuY2U6IFBob25lTnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gIHZhbHVlOiBFMTY0TnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIHNlYXJjaENyaXRlcmlhOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcblxyXG4gIGdldCBlbXB0eSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5waG9uZU51bWJlcjtcclxuICB9XHJcblxyXG4gIHNldCBmb3JtYXQodmFsdWU6IFBob25lTnVtYmVyRm9ybWF0KSB7XHJcbiAgICB0aGlzLl9mb3JtYXQgPSB2YWx1ZTtcclxuICAgIHRoaXMucGhvbmVOdW1iZXIgPSB0aGlzLmZvcm1hdHRlZFBob25lTnVtYmVyO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCh1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gdmFsdWU7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQodW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCh1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldFBob25lTnVtYmVyUGxhY2VIb2xkZXIoY291bnRyeUlTT0NvZGU6IENDKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIGNvbnN0IHJlc3VsdCA9IGdldEV4YW1wbGVOdW1iZXIoY291bnRyeUlTT0NvZGUsIEV4YW1wbGVzKTtcclxuXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZXh0cmEtYm9vbGVhbi1jYXN0XHJcbiAgICByZXR1cm4gISFyZXN1bHQgPyByZXN1bHQubnVtYmVyLnRvU3RyaW5nKCkgOiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBvblRvdWNoZWQgPSAoKSA9PiB7fTtcclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xyXG4gIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiB1bmtub3duKSA9PiB7fTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgY291bnRyeUNvZGVEYXRhOiBDb3VudHJ5Q29kZSxcclxuICAgIHByaXZhdGUgZm06IEZvY3VzTW9uaXRvcixcclxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgb3ZlcnJpZGUgbmdDb250cm9sOiBOZ0NvbnRyb2wsXHJcbiAgICBAT3B0aW9uYWwoKSBwYXJlbnRGb3JtOiBOZ0Zvcm0sXHJcbiAgICBAT3B0aW9uYWwoKSBwYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuICAgIGRlZmF1bHRFcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXIsXHJcbiAgKSB7XHJcbiAgICBzdXBlcihkZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXIsIHBhcmVudEZvcm0sIHBhcmVudEZvcm1Hcm91cCwgbmdDb250cm9sKTtcclxuXHJcbiAgICBmbS5tb25pdG9yKGVsUmVmLCB0cnVlKS5zdWJzY3JpYmUoKG9yaWdpbikgPT4ge1xyXG4gICAgICBpZiAodGhpcy5mb2N1c2VkICYmICFvcmlnaW4pIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZm9jdXNlZCA9ICEhb3JpZ2luO1xyXG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZmV0Y2hDb3VudHJ5RGF0YSgpO1xyXG4gICAgaWYgKHRoaXMubmdDb250cm9sICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5zZWFyY2hQbGFjZWhvbGRlcikge1xyXG4gICAgICB0aGlzLnNlYXJjaFBsYWNlaG9sZGVyID0gJ1NlYXJjaCAuLi4nO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucHJlZmVycmVkQ291bnRyaWVzLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLnByZWZlcnJlZENvdW50cmllcy5mb3JFYWNoKChpc28yKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcHJlZmVycmVkQ291bnRyeSA9IHRoaXMuYWxsQ291bnRyaWVzXHJcbiAgICAgICAgICAuZmlsdGVyKChjKSA9PiBjLmlzbzIgPT09IGlzbzIpXHJcbiAgICAgICAgICAuc2hpZnQoKTtcclxuICAgICAgICBpZiAocHJlZmVycmVkQ291bnRyeSkge1xyXG4gICAgICAgICAgdGhpcy5wcmVmZXJyZWRDb3VudHJpZXNJbkRyb3BEb3duLnB1c2gocHJlZmVycmVkQ291bnRyeSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm9ubHlDb3VudHJpZXMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuYWxsQ291bnRyaWVzID0gdGhpcy5hbGxDb3VudHJpZXMuZmlsdGVyKChjKSA9PlxyXG4gICAgICAgIHRoaXMub25seUNvdW50cmllcy5pbmNsdWRlcyhjLmlzbzIpLFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubnVtYmVySW5zdGFuY2UgJiYgdGhpcy5udW1iZXJJbnN0YW5jZS5jb3VudHJ5KSB7XHJcbiAgICAgIC8vIElmIGFuIGV4aXN0aW5nIG51bWJlciBpcyBwcmVzZW50LCB3ZSB1c2UgaXQgdG8gZGV0ZXJtaW5lIHNlbGVjdGVkQ291bnRyeVxyXG4gICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuZ2V0Q291bnRyeSh0aGlzLm51bWJlckluc3RhbmNlLmNvdW50cnkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMucHJlZmVycmVkQ291bnRyaWVzSW5Ecm9wRG93bi5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMucHJlZmVycmVkQ291bnRyaWVzSW5Ecm9wRG93blswXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuYWxsQ291bnRyaWVzWzBdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLl9jaGFuZ2VTdWJqZWN0XHJcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZU1zKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5vblBob25lTnVtYmVyQ2hhbmdlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5jb3VudHJ5Q2hhbmdlZC5lbWl0KHRoaXMuc2VsZWN0ZWRDb3VudHJ5KTtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBuZ0RvQ2hlY2soKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgdGhpcy51cGRhdGVFcnJvclN0YXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLmZtLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxSZWYpO1xyXG4gICAgdGhpcy5fY2hhbmdlU3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgb25QaG9uZU51bWJlckNoYW5nZURlYm91bmNlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY2hhbmdlU3ViamVjdC5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBvblBob25lTnVtYmVyQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgdHJ5IHtcclxuICAgICAgdGhpcy5udW1iZXJJbnN0YW5jZSA9IHBhcnNlUGhvbmVOdW1iZXJGcm9tU3RyaW5nKFxyXG4gICAgICAgIHRoaXMucGhvbmVOdW1iZXI/LnRvU3RyaW5nKCkgfHwgJycsXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnk/LmlzbzIudG9VcHBlckNhc2UoKSBhcyBDQyxcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5mb3JtYXRBc1lvdVR5cGVJZkVuYWJsZWQoKTtcclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubnVtYmVySW5zdGFuY2U/Lm51bWJlcjtcclxuICAgICAgaWYgKHRoaXMubnVtYmVySW5zdGFuY2UgJiYgdGhpcy5udW1iZXJJbnN0YW5jZS5pc1ZhbGlkKCkpIHtcclxuICAgICAgICBpZiAodGhpcy5waG9uZU51bWJlciAhPT0gdGhpcy5mb3JtYXR0ZWRQaG9uZU51bWJlcikge1xyXG4gICAgICAgICAgdGhpcy5waG9uZU51bWJlciA9IHRoaXMuZm9ybWF0dGVkUGhvbmVOdW1iZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5Py5pc28yICE9PSB0aGlzLm51bWJlckluc3RhbmNlLmNvdW50cnkgJiZcclxuICAgICAgICAgICEhdGhpcy5udW1iZXJJbnN0YW5jZS5jb3VudHJ5XHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuZ2V0Q291bnRyeSh0aGlzLm51bWJlckluc3RhbmNlLmNvdW50cnkpO1xyXG4gICAgICAgICAgdGhpcy5jb3VudHJ5Q2hhbmdlZC5lbWl0KHRoaXMuc2VsZWN0ZWRDb3VudHJ5KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2gge1xyXG4gICAgICAvLyBpZiBubyBwb3NzaWJsZSBudW1iZXJzIGFyZSB0aGVyZSxcclxuICAgICAgLy8gdGhlbiB0aGUgZnVsbCBudW1iZXIgaXMgcGFzc2VkIHNvIHRoYXQgdmFsaWRhdG9yIGNvdWxkIGJlIHRyaWdnZXJlZCBhbmQgcHJvcGVyIGVycm9yIGNvdWxkIGJlIHNob3duXHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnBob25lTnVtYmVyPy50b1N0cmluZygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgb25Db3VudHJ5U2VsZWN0KGNvdW50cnk6IENvdW50cnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnBob25lTnVtYmVyKSB7XHJcbiAgICAgIHRoaXMucGhvbmVOdW1iZXIgPSB0aGlzLm51bWJlckluc3RhbmNlPy5uYXRpb25hbE51bWJlcjtcclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gY291bnRyeTtcclxuICAgIHRoaXMuY291bnRyeUNoYW5nZWQuZW1pdCh0aGlzLnNlbGVjdGVkQ291bnRyeSk7XHJcbiAgICB0aGlzLm9uUGhvbmVOdW1iZXJDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIGdldENvdW50cnkoY29kZTogc3RyaW5nKTogQ291bnRyeSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmFsbENvdW50cmllcy5maW5kKChjKSA9PiBjLmlzbzIgPT09IGNvZGUudG9Mb3dlckNhc2UoKSkgfHwge1xyXG4gICAgICAgIG5hbWU6ICdVTicsXHJcbiAgICAgICAgaXNvMjogJ1VOJyxcclxuICAgICAgICBkaWFsQ29kZTogJycsXHJcbiAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgYXJlYUNvZGVzOiB1bmRlZmluZWQsXHJcbiAgICAgICAgZmxhZ0NsYXNzOiAnVU4nLFxyXG4gICAgICAgIHBsYWNlSG9sZGVyOiAnJyxcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG9uSW5wdXRLZXlQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgcGF0dGVybiA9IC9bMC05K1xcLSBdLztcclxuICAgIGlmICghcGF0dGVybi50ZXN0KGV2ZW50LmtleSkpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZsYWdDbGFzcyhsYW5nOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGBmaSBmaS0ke2xhbmc/LnNsaWNlKC0yKS50b0xvd2VyQ2FzZSgpfWA7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLm51bWJlckluc3RhbmNlID0gcGFyc2VQaG9uZU51bWJlckZyb21TdHJpbmcodmFsdWUpO1xyXG4gICAgICBpZiAodGhpcy5udW1iZXJJbnN0YW5jZSkge1xyXG4gICAgICAgIGNvbnN0IGNvdW50cnlDb2RlID0gdGhpcy5udW1iZXJJbnN0YW5jZS5jb3VudHJ5O1xyXG4gICAgICAgIHRoaXMucGhvbmVOdW1iZXIgPSB0aGlzLmZvcm1hdHRlZFBob25lTnVtYmVyO1xyXG4gICAgICAgIGlmICghY291bnRyeUNvZGUpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuZ2V0Q291bnRyeShjb3VudHJ5Q29kZSk7XHJcbiAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5LmRpYWxDb2RlICYmXHJcbiAgICAgICAgICAgICF0aGlzLnByZWZlcnJlZENvdW50cmllcy5pbmNsdWRlcyh0aGlzLnNlbGVjdGVkQ291bnRyeS5pc28yKVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMucHJlZmVycmVkQ291bnRyaWVzSW5Ecm9wRG93bi5wdXNoKHRoaXMuc2VsZWN0ZWRDb3VudHJ5KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuY291bnRyeUNoYW5nZWQuZW1pdCh0aGlzLnNlbGVjdGVkQ291bnRyeSk7XHJcblxyXG4gICAgICAgICAgLy8gSW5pdGlhbCB2YWx1ZSBpcyBzZXRcclxuICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgICAgICAgfSwgMSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5waG9uZU51bWJlciA9IHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVmFsdWUgaXMgc2V0IGZyb20gb3V0c2lkZSB1c2luZyBzZXRWYWx1ZSgpXHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCh1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGVzY3JpYmVkQnlJZHMoaWRzOiBzdHJpbmdbXSkge1xyXG4gICAgdGhpcy5kZXNjcmliZWRCeSA9IGlkcy5qb2luKCcgJyk7XHJcbiAgfVxyXG5cclxuICBvbkNvbnRhaW5lckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICdpbnB1dCcpIHtcclxuICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykhLmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldCgpOiB2b2lkIHtcclxuICAgIHRoaXMucGhvbmVOdW1iZXIgPSAnJztcclxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKG51bGwpO1xyXG5cclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBvblNlYXJjaElucHV0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XHJcbiAgICB9LCAyMDApO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGZldGNoQ291bnRyeURhdGEoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvdW50cnlDb2RlRGF0YS5hbGxDb3VudHJpZXMuZm9yRWFjaCgoYykgPT4ge1xyXG4gICAgICBjb25zdCBjb3VudHJ5OiBDb3VudHJ5ID0ge1xyXG4gICAgICAgIG5hbWU6IGNbMF0udG9TdHJpbmcoKSxcclxuICAgICAgICBpc28yOiBjWzFdLnRvU3RyaW5nKCksXHJcbiAgICAgICAgZGlhbENvZGU6IGNbMl0udG9TdHJpbmcoKSxcclxuICAgICAgICBwcmlvcml0eTogK2NbM10gfHwgMCxcclxuICAgICAgICBhcmVhQ29kZXM6IChjWzRdIGFzIHN0cmluZ1tdKSB8fCB1bmRlZmluZWQsXHJcbiAgICAgICAgZmxhZ0NsYXNzOiBjWzFdLnRvU3RyaW5nKCkudG9VcHBlckNhc2UoKSxcclxuICAgICAgICBwbGFjZUhvbGRlcjogJycsXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBpZiAodGhpcy5lbmFibGVQbGFjZWhvbGRlcikge1xyXG4gICAgICAgIGNvdW50cnkucGxhY2VIb2xkZXIgPSBFY2Fic0Jhc2VQaG9uZUNvbXBvbmVudC5nZXRQaG9uZU51bWJlclBsYWNlSG9sZGVyKFxyXG4gICAgICAgICAgY291bnRyeS5pc28yLnRvVXBwZXJDYXNlKCkgYXMgQ0MsXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5hbGxDb3VudHJpZXMucHVzaChjb3VudHJ5KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgZm9ybWF0dGVkUGhvbmVOdW1iZXIoKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5udW1iZXJJbnN0YW5jZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5waG9uZU51bWJlcj8udG9TdHJpbmcoKSB8fCAnJztcclxuICAgIH1cclxuICAgIHN3aXRjaCAodGhpcy5mb3JtYXQpIHtcclxuICAgICAgY2FzZSAnbmF0aW9uYWwnOlxyXG4gICAgICAgIHJldHVybiB0aGlzLm51bWJlckluc3RhbmNlLmZvcm1hdE5hdGlvbmFsKCk7XHJcblxyXG4gICAgICBjYXNlICdpbnRlcm5hdGlvbmFsJzpcclxuICAgICAgICByZXR1cm4gdGhpcy5udW1iZXJJbnN0YW5jZS5mb3JtYXRJbnRlcm5hdGlvbmFsKCk7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiB0aGlzLm51bWJlckluc3RhbmNlLm5hdGlvbmFsTnVtYmVyLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdEFzWW91VHlwZUlmRW5hYmxlZCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2RlZmF1bHQnKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGFzWW91VHlwZTogQXNZb3VUeXBlID0gbmV3IEFzWW91VHlwZShcclxuICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnk/LmlzbzIudG9VcHBlckNhc2UoKSBhcyBDQyxcclxuICAgICk7XHJcbiAgICAvLyBUbyBhdm9pZCBjYXJldCBwb3NpdGlvbmluZyB3ZSBhcHBseSBmb3JtYXR0aW5nIG9ubHkgaWYgdGhlIGNhcmV0IGlzIGF0IHRoZSBlbmQ6XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucGhvbmVOdW1iZXJcclxuICAgICAgICA/LnRvU3RyaW5nKClcclxuICAgICAgICAuc3RhcnRzV2l0aCh0aGlzLl9wcmV2aW91c0Zvcm1hdHRlZE51bWJlciB8fCAnJylcclxuICAgICkge1xyXG4gICAgICB0aGlzLnBob25lTnVtYmVyID0gYXNZb3VUeXBlLmlucHV0KHRoaXMucGhvbmVOdW1iZXIudG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9wcmV2aW91c0Zvcm1hdHRlZE51bWJlciA9IHRoaXMucGhvbmVOdW1iZXI/LnRvU3RyaW5nKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJlY2Ficy10ZWwtaW5wdXQtY29udGFpbmVyXCI+XHJcbiAgPGJ1dHRvblxyXG4gICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICBtYXQtYnV0dG9uXHJcbiAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiXHJcbiAgICBjbGFzcz1cImNvdW50cnktc2VsZWN0b3JcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICA+XHJcbiAgICA8c3BhblxyXG4gICAgICBjbGFzcz1cImNvdW50cnktc2VsZWN0b3ItZmxhZyBmbGFnXCJcclxuICAgICAgW25nQ2xhc3NdPVwiZmxhZ0NsYXNzKHNlbGVjdGVkQ291bnRyeT8uZmxhZ0NsYXNzKVwiXHJcbiAgICA+PC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJjb3VudHJ5LXNlbGVjdG9yLWNvZGVcIiAqbmdJZj1cInNlbGVjdGVkQ291bnRyeT8uZGlhbENvZGVcIlxyXG4gICAgPit7eyBzZWxlY3RlZENvdW50cnkuZGlhbENvZGUgfX08L3NwYW5cclxuICAgID5cclxuICA8L2J1dHRvbj5cclxuICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCJcclxuICAgICAgICAgICAgY2xhc3M9XCJlY2Ficy10ZWwtaW5wdXQtbWF0LW1lbnUtcGFuZWxcIlxyXG4gICAgICAgICAgICBiYWNrZHJvcENsYXNzPVwiZWNhYnMtdGVsLWlucHV0LW92ZXJsYXktYmFja2Ryb3BcIlxyXG4gICAgICAgICAgICBvdmVybGF5UGFuZWxDbGFzcz1cImVjYWJzLXRlbC1pbnB1dC1vdmVybGF5LXBhbmVcIj5cclxuICAgIDxpbnB1dFxyXG4gICAgICAjc2VhcmNoSW5wdXRcclxuICAgICAgKm5nSWY9XCJlbmFibGVTZWFyY2hcIlxyXG4gICAgICBjbGFzcz1cImNvdW50cnktc2VhcmNoXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hDcml0ZXJpYVwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uU2VhcmNoSW5wdXQoKVwiXHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyXCJcclxuICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAvPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzZWFyY2hDcml0ZXJpYVwiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgbWF0LW1lbnUtaXRlbVxyXG4gICAgICAgIGNsYXNzPVwiY291bnRyeS1saXN0LWJ1dHRvblwiXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGNvdW50cnkgb2YgcHJlZmVycmVkQ291bnRyaWVzSW5Ecm9wRG93blwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ291bnRyeVNlbGVjdChjb3VudHJ5KVwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxhZ1wiICAgIFxyXG4gICAgICAgICAgW25nQ2xhc3NdPVwiZmxhZ0NsYXNzKGNvdW50cnkuZmxhZ0NsYXNzKVwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbC13cmFwcGVyXCI+XHJcbiAgICAgICAgICB7eyBjb3VudHJ5Lm5hbWUgfX1cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291bnRyeT8uZGlhbENvZGVcIj4re3sgY291bnRyeS5kaWFsQ29kZSB9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxtYXQtZGl2aWRlciAqbmdJZj1cInByZWZlcnJlZENvdW50cmllc0luRHJvcERvd24/Lmxlbmd0aFwiPjwvbWF0LWRpdmlkZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvdW50cnkgb2YgYWxsQ291bnRyaWVzXCI+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBtYXQtbWVudS1pdGVtXHJcbiAgICAgICAgY2xhc3M9XCJjb3VudHJ5LWxpc3QtYnV0dG9uXCJcclxuICAgICAgICAqbmdJZj1cImNvdW50cnkgfCBzZWFyY2g6IHNlYXJjaENyaXRlcmlhXCJcclxuICAgICAgICAoY2xpY2spPVwib25Db3VudHJ5U2VsZWN0KGNvdW50cnkpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGFnXCIgW25nQ2xhc3NdPVwiZmxhZ0NsYXNzKGNvdW50cnkuZmxhZ0NsYXNzKVwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbC13cmFwcGVyXCI+XHJcbiAgICAgICAgICB7eyBjb3VudHJ5Lm5hbWUgfX0gK3t7IGNvdW50cnkuZGlhbENvZGUgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L21hdC1tZW51PlxyXG5cclxuICA8aW5wdXRcclxuICAgIG1hdElucHV0XHJcbiAgICB0eXBlPVwidGVsXCJcclxuICAgIGF1dG9jb21wbGV0ZT1cInRlbFwiXHJcbiAgICBbbmdDbGFzc109XCJjc3NDbGFzc1wiXHJcbiAgICAoYmx1cik9XCJvblRvdWNoZWQoKVwiXHJcbiAgICAoa2V5cHJlc3MpPVwib25JbnB1dEtleVByZXNzKCRldmVudClcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJwaG9uZU51bWJlclwiXHJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvblBob25lTnVtYmVyQ2hhbmdlRGVib3VuY2UoKVwiXHJcbiAgICBbZXJyb3JTdGF0ZU1hdGNoZXJdPVwiZXJyb3JTdGF0ZU1hdGNoZXJcIlxyXG4gICAgW3BsYWNlaG9sZGVyXT1cImlucHV0UGxhY2Vob2xkZXJcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgIFthcmlhLWRlc2NyaWJlZGJ5XT1cImRlc2NyaWJlZEJ5XCJcclxuICAvPlxyXG48L2Rpdj4iXX0=
@@ -1,11 +1,9 @@
1
- import { Component, HostBinding, Input, ViewChild, } from '@angular/core';
2
- import { MatButton } from '@angular/material/button';
1
+ import { Component, HostBinding, Input, } from '@angular/core';
3
2
  import * as i0 from "@angular/core";
4
3
  import * as i1 from "@angular/common";
5
4
  import * as i2 from "@angular/material/button";
6
5
  import * as i3 from "../ecabs-loading/spinner/spinner.component";
7
6
  export class ButtonsComponent {
8
- matButton;
9
7
  disabled;
10
8
  loading;
11
9
  size = 'default';
@@ -35,15 +33,12 @@ export class ButtonsComponent {
35
33
  }
36
34
  }
37
35
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ButtonsComponent, selector: "ecabs-buttons", inputs: { disabled: "disabled", loading: "loading", size: "size", type: "type", style: "style", full: "full", color: "color" }, host: { properties: { "style.width": "this.borderWidth", "class": "this.classAttr" } }, viewQueries: [{ propertyName: "matButton", first: true, predicate: MatButton, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"style\">\r\n <button\r\n mat-flat-button\r\n [ngClass]=\"{\r\n '!w-full': full,\r\n 'loading !leading-none': loading\r\n }\"\r\n [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n [type]=\"type\"\r\n *ngSwitchCase=\"'flat'\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n\r\n <button\r\n mat-stroked-button\r\n [ngClass]=\"{\r\n '!w-full': full,\r\n 'loading !leading-none': loading\r\n }\"\r\n [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n [type]=\"type\"\r\n *ngSwitchCase=\"'stroked'\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n\r\n <button\r\n mat-raised-button\r\n [ngClass]=\"{\r\n '!w-full': full,\r\n 'loading !leading-none': loading\r\n }\"\r\n [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n [type]=\"type\"\r\n *ngSwitchCase=\"'raised'\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n\r\n <button\r\n mat-button\r\n [ngClass]=\"{\r\n '!w-full': full,\r\n 'loading !leading-none': loading\r\n }\"\r\n [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n [type]=\"type\"\r\n *ngSwitchDefault\r\n >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n</ng-container>\r\n\r\n<ng-template #content>\r\n <ecabs-loading-spinner size=\"tiny\" *ngIf=\"loading\"></ecabs-loading-spinner>\r\n <ng-container *ngIf=\"!loading\">\r\n <ng-content select=\"mat-icon\"></ng-content>\r\n <ng-content></ng-content>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3.EcabsSpinnerComponent, selector: "ecabs-loading-spinner", inputs: ["size"] }] });
36
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ButtonsComponent, selector: "ecabs-buttons", inputs: { disabled: "disabled", loading: "loading", size: "size", type: "type", style: "style", full: "full", color: "color" }, host: { properties: { "style.width": "this.borderWidth", "class": "this.classAttr" } }, usesOnChanges: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"style\">\r\n <button\r\n mat-flat-button\r\n [ngClass]=\"{\r\n '!w-full': full,\r\n 'loading !leading-none': loading\r\n }\"\r\n [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n [type]=\"type\"\r\n *ngSwitchCase=\"'flat'\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n\r\n <button\r\n mat-stroked-button\r\n [ngClass]=\"{\r\n '!w-full': full,\r\n 'loading !leading-none': loading\r\n }\"\r\n [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n [type]=\"type\"\r\n *ngSwitchCase=\"'stroked'\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n\r\n <button\r\n mat-raised-button\r\n [ngClass]=\"{\r\n '!w-full': full,\r\n 'loading !leading-none': loading\r\n }\"\r\n [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n [type]=\"type\"\r\n *ngSwitchCase=\"'raised'\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n\r\n <button\r\n mat-button\r\n [ngClass]=\"{\r\n '!w-full': full,\r\n 'loading !leading-none': loading\r\n }\"\r\n [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n [type]=\"type\"\r\n *ngSwitchDefault\r\n >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n</ng-container>\r\n\r\n<ng-template #content>\r\n <ecabs-loading-spinner size=\"tiny\" *ngIf=\"loading\"></ecabs-loading-spinner>\r\n <ng-container *ngIf=\"!loading\">\r\n <ng-content select=\"mat-icon\"></ng-content>\r\n <ng-content></ng-content>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3.EcabsSpinnerComponent, selector: "ecabs-loading-spinner", inputs: ["size"] }] });
39
37
  }
40
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ButtonsComponent, decorators: [{
41
39
  type: Component,
42
40
  args: [{ selector: 'ecabs-buttons', template: "<ng-container [ngSwitch]=\"style\">\r\n <button\r\n mat-flat-button\r\n [ngClass]=\"{\r\n '!w-full': full,\r\n 'loading !leading-none': loading\r\n }\"\r\n [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n [type]=\"type\"\r\n *ngSwitchCase=\"'flat'\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n\r\n <button\r\n mat-stroked-button\r\n [ngClass]=\"{\r\n '!w-full': full,\r\n 'loading !leading-none': loading\r\n }\"\r\n [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n [type]=\"type\"\r\n *ngSwitchCase=\"'stroked'\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n\r\n <button\r\n mat-raised-button\r\n [ngClass]=\"{\r\n '!w-full': full,\r\n 'loading !leading-none': loading\r\n }\"\r\n [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n [type]=\"type\"\r\n *ngSwitchCase=\"'raised'\"\r\n >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n\r\n <button\r\n mat-button\r\n [ngClass]=\"{\r\n '!w-full': full,\r\n 'loading !leading-none': loading\r\n }\"\r\n [color]=\"color\"\r\n [disabled]=\"disabled\"\r\n [type]=\"type\"\r\n *ngSwitchDefault\r\n >\r\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\r\n </button>\r\n</ng-container>\r\n\r\n<ng-template #content>\r\n <ecabs-loading-spinner size=\"tiny\" *ngIf=\"loading\"></ecabs-loading-spinner>\r\n <ng-container *ngIf=\"!loading\">\r\n <ng-content select=\"mat-icon\"></ng-content>\r\n <ng-content></ng-content>\r\n </ng-container>\r\n</ng-template>\r\n" }]
43
- }], propDecorators: { matButton: [{
44
- type: ViewChild,
45
- args: [MatButton, { static: false }]
46
- }], disabled: [{
41
+ }], propDecorators: { disabled: [{
47
42
  type: Input
48
43
  }], loading: [{
49
44
  type: Input
@@ -64,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
64
59
  type: HostBinding,
65
60
  args: ['class']
66
61
  }] } });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtYnV0dG9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtYnV0dG9ucy9lY2Ficy1idXR0b25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1idXR0b25zL2VjYWJzLWJ1dHRvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxFQUlMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBT3JELE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsU0FBUyxDQUFZO0lBR3JCLFFBQVEsQ0FBVztJQUduQixPQUFPLENBQVc7SUFHbEIsSUFBSSxHQUF3QixTQUFTLENBQUM7SUFHdEMsSUFBSSxHQUF3QixRQUFRLENBQUM7SUFHckMsS0FBSyxHQUFnQixNQUFNLENBQUM7SUFHNUIsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUdiLEtBQUssR0FBb0MsU0FBUyxDQUFDO0lBR25ELFdBQVcsR0FBRyxFQUFFLENBQUM7SUFHakIsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUVmLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSxRQUFRLEdBQ1osT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLFlBQVksS0FBSyxTQUFTO1lBQzdDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsWUFBWTtZQUNsQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNwQixNQUFNLE9BQU8sR0FDWCxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsWUFBWSxLQUFLLFNBQVM7WUFDNUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFZO1lBQ2pDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRW5CLElBQUksUUFBUSxJQUFJLE9BQU8sRUFBRTtZQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDO1NBQ3hDO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztTQUNyQjtJQUNILENBQUM7d0dBcERVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLHdUQUNoQixTQUFTLHFFQ25CdEIsd29EQWlFQTs7NEZEL0NhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxlQUFlOzhCQU16QixTQUFTO3NCQURSLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJdkMsUUFBUTtzQkFEUCxLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsV0FBVzt1QkFBQyxhQUFhO2dCQUkxQixTQUFTO3NCQURSLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBCdXR0b25TdHlsZSB9IGZyb20gJy4uL2Jhc2UvY29uc3RzL2J1dHRvbnMuY29uc3RzJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWNhYnMtYnV0dG9ucycsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZWNhYnMtYnV0dG9ucy5jb21wb25lbnQuc2NzcyddLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lY2Ficy1idXR0b25zLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJ1dHRvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQFZpZXdDaGlsZChNYXRCdXR0b24sIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIG1hdEJ1dHRvbjogTWF0QnV0dG9uO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGRpc2FibGVkITogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBsb2FkaW5nITogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBzaXplOiAnZGVmYXVsdCcgfCAnbGFyZ2UnID0gJ2RlZmF1bHQnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHR5cGU6ICdidXR0b24nIHwgJ3N1Ym1pdCcgPSAnYnV0dG9uJztcclxuXHJcbiAgQElucHV0KClcclxuICBzdHlsZTogQnV0dG9uU3R5bGUgPSAnZmxhdCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZnVsbCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGNvbG9yOiBUaGVtZVBhbGV0dGUgfCAnc3VjY2VzcycgfCBudWxsID0gJ3ByaW1hcnknO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoJylcclxuICBib3JkZXJXaWR0aCA9ICcnO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcclxuICBjbGFzc0F0dHIgPSAnJztcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5mdWxsKSB7XHJcbiAgICAgIHRoaXMuYm9yZGVyV2lkdGggPSAnMTAwJSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCBkaXNhYmxlZCA9XHJcbiAgICAgIGNoYW5nZXNbJ2Rpc2FibGVkJ10/LmN1cnJlbnRWYWx1ZSAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgPyBjaGFuZ2VzWydkaXNhYmxlZCddLmN1cnJlbnRWYWx1ZVxyXG4gICAgICAgIDogdGhpcy5kaXNhYmxlZDtcclxuICAgIGNvbnN0IGxvYWRpbmcgPVxyXG4gICAgICBjaGFuZ2VzWydsb2FkaW5nJ10/LmN1cnJlbnRWYWx1ZSAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgPyBjaGFuZ2VzWydsb2FkaW5nJ10uY3VycmVudFZhbHVlXHJcbiAgICAgICAgOiB0aGlzLmxvYWRpbmc7XHJcblxyXG4gICAgaWYgKGRpc2FibGVkIHx8IGxvYWRpbmcpIHtcclxuICAgICAgdGhpcy5jbGFzc0F0dHIgPSAncG9pbnRlci1ldmVudHMtbm9uZSc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNsYXNzQXR0ciA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJzdHlsZVwiPlxyXG4gIDxidXR0b25cclxuICAgIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgW25nQ2xhc3NdPVwie1xyXG4gICAgJyF3LWZ1bGwnOiBmdWxsLFxyXG4gICAgJ2xvYWRpbmcgIWxlYWRpbmctbm9uZSc6IGxvYWRpbmdcclxuICB9XCJcclxuICAgIFtjb2xvcl09XCJjb2xvclwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgW3R5cGVdPVwidHlwZVwiXHJcbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2ZsYXQnXCJcclxuICA+XHJcbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2J1dHRvbj5cclxuXHJcbiAgPGJ1dHRvblxyXG4gICAgbWF0LXN0cm9rZWQtYnV0dG9uXHJcbiAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAnIXctZnVsbCc6IGZ1bGwsXHJcbiAgICAnbG9hZGluZyAhbGVhZGluZy1ub25lJzogbG9hZGluZ1xyXG4gIH1cIlxyXG4gICAgW2NvbG9yXT1cImNvbG9yXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICBbdHlwZV09XCJ0eXBlXCJcclxuICAgICpuZ1N3aXRjaENhc2U9XCInc3Ryb2tlZCdcIlxyXG4gID5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvYnV0dG9uPlxyXG5cclxuICA8YnV0dG9uXHJcbiAgICBtYXQtcmFpc2VkLWJ1dHRvblxyXG4gICAgW25nQ2xhc3NdPVwie1xyXG4gICAgJyF3LWZ1bGwnOiBmdWxsLFxyXG4gICAgJ2xvYWRpbmcgIWxlYWRpbmctbm9uZSc6IGxvYWRpbmdcclxuICB9XCJcclxuICAgIFtjb2xvcl09XCJjb2xvclwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgW3R5cGVdPVwidHlwZVwiXHJcbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ3JhaXNlZCdcIlxyXG4gID5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvYnV0dG9uPlxyXG5cclxuICA8YnV0dG9uXHJcbiAgICBtYXQtYnV0dG9uXHJcbiAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAnIXctZnVsbCc6IGZ1bGwsXHJcbiAgICAnbG9hZGluZyAhbGVhZGluZy1ub25lJzogbG9hZGluZ1xyXG4gIH1cIlxyXG4gICAgW2NvbG9yXT1cImNvbG9yXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICBbdHlwZV09XCJ0eXBlXCJcclxuICAgICpuZ1N3aXRjaERlZmF1bHRcclxuICA+XHJcbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2J1dHRvbj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XHJcbiAgPGVjYWJzLWxvYWRpbmctc3Bpbm5lciBzaXplPVwidGlueVwiICpuZ0lmPVwibG9hZGluZ1wiPjwvZWNhYnMtbG9hZGluZy1zcGlubmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZ1wiPlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibWF0LWljb25cIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtYnV0dG9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lY2Ficy1jb21wb25lbnRzL3NyYy9saWIvZWNhYnMtYnV0dG9ucy9lY2Ficy1idXR0b25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1idXR0b25zL2VjYWJzLWJ1dHRvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxHQUlOLE1BQU0sZUFBZSxDQUFDOzs7OztBQVN2QixNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFFBQVEsQ0FBVztJQUduQixPQUFPLENBQVc7SUFHbEIsSUFBSSxHQUF3QixTQUFTLENBQUM7SUFHdEMsSUFBSSxHQUF3QixRQUFRLENBQUM7SUFHckMsS0FBSyxHQUFnQixNQUFNLENBQUM7SUFHNUIsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUdiLEtBQUssR0FBb0MsU0FBUyxDQUFDO0lBR25ELFdBQVcsR0FBRyxFQUFFLENBQUM7SUFHakIsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUVmLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSxRQUFRLEdBQ1osT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLFlBQVksS0FBSyxTQUFTO1lBQzdDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsWUFBWTtZQUNsQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNwQixNQUFNLE9BQU8sR0FDWCxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsWUFBWSxLQUFLLFNBQVM7WUFDNUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFZO1lBQ2pDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRW5CLElBQUksUUFBUSxJQUFJLE9BQU8sRUFBRTtZQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDO1NBQ3hDO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztTQUNyQjtJQUNILENBQUM7d0dBakRVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLGtTQ2hCN0Isd29EQWlFQTs7NEZEakRhLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxlQUFlOzhCQU16QixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixXQUFXO3VCQUFDLGFBQWE7Z0JBSTFCLFNBQVM7c0JBRFIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uSW5pdCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgQnV0dG9uU3R5bGUgfSBmcm9tICcuLi9iYXNlL2NvbnN0cy9idXR0b25zLmNvbnN0cyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjYWJzLWJ1dHRvbnMnLFxyXG4gIHN0eWxlVXJsczogWycuL2VjYWJzLWJ1dHRvbnMuY29tcG9uZW50LnNjc3MnXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWNhYnMtYnV0dG9ucy5jb21wb25lbnQuaHRtbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCdXR0b25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpXHJcbiAgZGlzYWJsZWQhOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGxvYWRpbmchOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNpemU6ICdkZWZhdWx0JyB8ICdsYXJnZScgPSAnZGVmYXVsdCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdHlwZTogJ2J1dHRvbicgfCAnc3VibWl0JyA9ICdidXR0b24nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHN0eWxlOiBCdXR0b25TdHlsZSA9ICdmbGF0JztcclxuXHJcbiAgQElucHV0KClcclxuICBmdWxsID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY29sb3I6IFRoZW1lUGFsZXR0ZSB8ICdzdWNjZXNzJyB8IG51bGwgPSAncHJpbWFyeSc7XHJcblxyXG4gIEBIb3N0QmluZGluZygnc3R5bGUud2lkdGgnKVxyXG4gIGJvcmRlcldpZHRoID0gJyc7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxyXG4gIGNsYXNzQXR0ciA9ICcnO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZ1bGwpIHtcclxuICAgICAgdGhpcy5ib3JkZXJXaWR0aCA9ICcxMDAlJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRpc2FibGVkID1cclxuICAgICAgY2hhbmdlc1snZGlzYWJsZWQnXT8uY3VycmVudFZhbHVlICE9PSB1bmRlZmluZWRcclxuICAgICAgICA/IGNoYW5nZXNbJ2Rpc2FibGVkJ10uY3VycmVudFZhbHVlXHJcbiAgICAgICAgOiB0aGlzLmRpc2FibGVkO1xyXG4gICAgY29uc3QgbG9hZGluZyA9XHJcbiAgICAgIGNoYW5nZXNbJ2xvYWRpbmcnXT8uY3VycmVudFZhbHVlICE9PSB1bmRlZmluZWRcclxuICAgICAgICA/IGNoYW5nZXNbJ2xvYWRpbmcnXS5jdXJyZW50VmFsdWVcclxuICAgICAgICA6IHRoaXMubG9hZGluZztcclxuXHJcbiAgICBpZiAoZGlzYWJsZWQgfHwgbG9hZGluZykge1xyXG4gICAgICB0aGlzLmNsYXNzQXR0ciA9ICdwb2ludGVyLWV2ZW50cy1ub25lJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2xhc3NBdHRyID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInN0eWxlXCI+XHJcbiAgPGJ1dHRvblxyXG4gICAgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAnIXctZnVsbCc6IGZ1bGwsXHJcbiAgICAnbG9hZGluZyAhbGVhZGluZy1ub25lJzogbG9hZGluZ1xyXG4gIH1cIlxyXG4gICAgW2NvbG9yXT1cImNvbG9yXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICBbdHlwZV09XCJ0eXBlXCJcclxuICAgICpuZ1N3aXRjaENhc2U9XCInZmxhdCdcIlxyXG4gID5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvYnV0dG9uPlxyXG5cclxuICA8YnV0dG9uXHJcbiAgICBtYXQtc3Ryb2tlZC1idXR0b25cclxuICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICchdy1mdWxsJzogZnVsbCxcclxuICAgICdsb2FkaW5nICFsZWFkaW5nLW5vbmUnOiBsb2FkaW5nXHJcbiAgfVwiXHJcbiAgICBbY29sb3JdPVwiY29sb3JcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgIFt0eXBlXT1cInR5cGVcIlxyXG4gICAgKm5nU3dpdGNoQ2FzZT1cIidzdHJva2VkJ1wiXHJcbiAgPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9idXR0b24+XHJcblxyXG4gIDxidXR0b25cclxuICAgIG1hdC1yYWlzZWQtYnV0dG9uXHJcbiAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAnIXctZnVsbCc6IGZ1bGwsXHJcbiAgICAnbG9hZGluZyAhbGVhZGluZy1ub25lJzogbG9hZGluZ1xyXG4gIH1cIlxyXG4gICAgW2NvbG9yXT1cImNvbG9yXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICBbdHlwZV09XCJ0eXBlXCJcclxuICAgICpuZ1N3aXRjaENhc2U9XCIncmFpc2VkJ1wiXHJcbiAgPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9idXR0b24+XHJcblxyXG4gIDxidXR0b25cclxuICAgIG1hdC1idXR0b25cclxuICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICchdy1mdWxsJzogZnVsbCxcclxuICAgICdsb2FkaW5nICFsZWFkaW5nLW5vbmUnOiBsb2FkaW5nXHJcbiAgfVwiXHJcbiAgICBbY29sb3JdPVwiY29sb3JcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgIFt0eXBlXT1cInR5cGVcIlxyXG4gICAgKm5nU3dpdGNoRGVmYXVsdFxyXG4gID5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvYnV0dG9uPlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY29udGVudD5cclxuICA8ZWNhYnMtbG9hZGluZy1zcGlubmVyIHNpemU9XCJ0aW55XCIgKm5nSWY9XCJsb2FkaW5nXCI+PC9lY2Ficy1sb2FkaW5nLXNwaW5uZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2FkaW5nXCI+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtYXQtaWNvblwiPjwvbmctY29udGVudD5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19