@acorex/components 3.0.20 → 3.0.24

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 (34) hide show
  1. package/acorex-components.metadata.json +1 -1
  2. package/bundles/acorex-components.umd.js +13 -13
  3. package/bundles/acorex-components.umd.js.map +1 -1
  4. package/bundles/acorex-components.umd.min.js +1 -1
  5. package/bundles/acorex-components.umd.min.js.map +1 -1
  6. package/esm2015/lib/color-picker/color-picker.component.js +2 -2
  7. package/esm2015/lib/date-picker/date-picker.component.js +2 -2
  8. package/esm2015/lib/form-group/form-group.component.js +2 -2
  9. package/esm2015/lib/number-box/number-box.component.js +2 -2
  10. package/esm2015/lib/password-box/password-box.component.js +2 -2
  11. package/esm2015/lib/searchbox/searchbox.component.js +2 -2
  12. package/esm2015/lib/selectbox/selectbox.component.js +2 -2
  13. package/esm2015/lib/selectbox/selectbox2.component.js +2 -2
  14. package/esm2015/lib/textarea/textarea.component.js +2 -2
  15. package/esm2015/lib/textbox/textbox.component.js +2 -2
  16. package/esm2015/lib/time-picker/time-picker.component.js +2 -2
  17. package/esm2015/lib/tooltip/tooltip.directive.js +3 -3
  18. package/esm5/lib/color-picker/color-picker.component.js +2 -2
  19. package/esm5/lib/date-picker/date-picker.component.js +2 -2
  20. package/esm5/lib/form-group/form-group.component.js +2 -2
  21. package/esm5/lib/number-box/number-box.component.js +2 -2
  22. package/esm5/lib/password-box/password-box.component.js +2 -2
  23. package/esm5/lib/searchbox/searchbox.component.js +2 -2
  24. package/esm5/lib/selectbox/selectbox.component.js +2 -2
  25. package/esm5/lib/selectbox/selectbox2.component.js +2 -2
  26. package/esm5/lib/textarea/textarea.component.js +2 -2
  27. package/esm5/lib/textbox/textbox.component.js +2 -2
  28. package/esm5/lib/time-picker/time-picker.component.js +2 -2
  29. package/esm5/lib/tooltip/tooltip.directive.js +3 -3
  30. package/fesm2015/acorex-components.js +13 -13
  31. package/fesm2015/acorex-components.js.map +1 -1
  32. package/fesm5/acorex-components.js +13 -13
  33. package/fesm5/acorex-components.js.map +1 -1
  34. package/package.json +1 -1
@@ -621,7 +621,7 @@ var AXNumberBoxComponent = /** @class */ (function (_super) {
621
621
  selector: 'ax-number-box',
622
622
  template: "<div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\" #fc>\r\n <div class=\"ax items-wrapper\">\r\n <ng-content select=\"[start]\">\r\n </ng-content>\r\n <ax-button icon=\"far fa-plus\" type=\"success blank\" (click)=\"upStepHandel()\" [disabled]=\"disabled\" *ngIf=\"showDoubleCounter\"></ax-button>\r\n </div>\r\n <div class=\"content\" #content>\r\n <div class=\"ax form-control input {{size}}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\"\r\n [class.icon]=\"icon\">\r\n <input #input type=\"text\" class=\"ax {{size}}\" [(ngModel)]=\"textValue\" placeholder=\"{{placeholder}}\"\r\n [readonly]=\"readonly\" [disabled]=\"disabled\" [ngClass]=\"setTextAlign()\"\r\n [class.clear]=\"value && allowClear\" (focus)=\"handleInputFocus($event)\" (blur)=\"handleInputBlur($event)\"\r\n (keypress)=\"handleKeyPress($event)\" (ngModelChange)=\"this.userQuestionUpdate.next($event)\"\r\n (keydown)=\"handleKeyDown($event)\" (click)=\"handleClick()\" (keyup)=\"handleKeyUp($event)\">\r\n <i class=\"{{icon}}\" *ngIf=\"icon\"></i>\r\n </div>\r\n </div>\r\n <div class=\"ax items-wrapper\">\r\n <ax-button *ngIf=\"value && allowClear\" [disabled]=\"disabled\" icon=\"far fa-times\" type=\"danger blank\"\r\n (click)=\"clear()\"></ax-button>\r\n <ax-button icon=\"far fa-minus\" type=\"danger blank\" (click)=\"downStepHandel()\" [disabled]=\"disabled\" *ngIf=\"showDoubleCounter\"></ax-button>\r\n <ng-content select=\"[end]\">\r\n </ng-content>\r\n <div class=\"arrow-number\" *ngIf=\"showCounter && !showDoubleCounter\" >\r\n <ax-button type=\"light blank\" [disabled]=\"disabled\" icon=\"fas fa-angle-up\" [size]=\"size\"\r\n (mousedown)=\"upStepHandel()\" (mouseup)=\"delaySearch()\" [tabIndex]=\"-1\"></ax-button>\r\n <ax-button type=\"light blank\" [disabled]=\"disabled\" icon=\"fas fa-angle-down\" [size]=\"size\"\r\n (mousedown)=\"downStepHandel()\" (mouseup)=\"delaySearch()\" [tabIndex]=\"-1\"></ax-button>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n",
623
623
  changeDetection: ChangeDetectionStrategy.OnPush,
624
- host: { style: 'display: contents;' },
624
+ host: {},
625
625
  providers: [{ provide: AXValidatableComponent, useExisting: AXNumberBoxComponent_1 }]
626
626
  }),
627
627
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef])
@@ -629,4 +629,4 @@ var AXNumberBoxComponent = /** @class */ (function (_super) {
629
629
  return AXNumberBoxComponent;
630
630
  }(AXBaseTextComponent));
631
631
  export { AXNumberBoxComponent };
632
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNvcmV4L2NvbXBvbmVudHMvIiwic291cmNlcyI6WyJsaWIvbnVtYmVyLWJveC9udW1iZXItYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlJLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVFwRjtJQUEwQyx3Q0FBbUI7SUEwSjNELDhCQUFzQixHQUFzQixFQUFFLEdBQWU7UUFBN0QsWUFDRSxrQkFBTSxHQUFHLEVBQUUsR0FBRyxDQUFDLFNBRWhCO1FBSHFCLFNBQUcsR0FBSCxHQUFHLENBQW1CO1FBekpuQyxTQUFHLEdBQVcsSUFBSSxDQUFDO1FBQ25CLFNBQUcsR0FBVyxJQUFJLENBQUM7UUFHNUIsbUJBQWEsR0FBWSxLQUFLLENBQUM7UUFFL0Isa0JBQVksR0FBWSxLQUFLLENBQUM7UUFHOUIsaUJBQVcsR0FBWSxJQUFJLENBQUM7UUFHNUIsZ0JBQVUsR0FBWSxJQUFJLENBQUM7UUFHM0IsdUJBQWlCLEdBQVksS0FBSyxDQUFDO1FBRW5DLHdCQUFrQixHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFFM0MsZUFBUyxHQUFZLEtBQUssQ0FBQztRQUkzQixjQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGVBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0Isb0JBQWMsR0FBVyxDQUFDLENBQUM7UUFHM0IscUJBQWUsR0FBVyxHQUFHLENBQUM7UUFDOUIsY0FBUSxHQUFXLElBQUksQ0FBQztRQUVmLGFBQU8sR0FBVyxDQUFDLENBQUM7UUFDcEIsbUJBQWEsR0FBVyxJQUFJLENBQUM7UUFDN0IsZ0JBQVUsR0FBVyxJQUFJLENBQUM7UUEwSGpDLEtBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDOztJQUMxQixDQUFDOzZCQTdKVSxvQkFBb0I7SUFxQy9CLHNCQUFXLHVDQUFLO2FBQWhCO1lBQ0UsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3RCLENBQUM7YUFDRCxVQUFpQixDQUFTO1lBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRTtnQkFDYixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztnQkFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7YUFDcEI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUU7b0JBQzdHLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUU7d0JBQzVDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO3dCQUNwQixJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO3dCQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQzt3QkFFcEIsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRTs0QkFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7NEJBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO2dDQUN2QixZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0NBQzVCLFNBQVMsRUFBRSxJQUFJO2dDQUNmLEtBQUssRUFBRSxJQUFJO2dDQUNYLFFBQVEsRUFDTixJQUFJLENBQUMsYUFBYSxJQUFJLEdBQUc7b0NBQ3ZCLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRzt3Q0FDWCxDQUFDLENBQUMsSUFBSTt3Q0FDTixDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO29DQUNqQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssU0FBUzt3Q0FDbkMsQ0FBQyxDQUFDLElBQUk7d0NBQ04sQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHOzRDQUNiLENBQUMsQ0FBQyxJQUFJOzRDQUNOLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO2dDQUNqQixXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhOzZCQUNwQyxDQUFDLENBQUM7NEJBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7NEJBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7NEJBQ3pCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO3lCQUNyRDtxQkFDRjt5QkFBTTt3QkFDTCxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUVqQixnQ0FBZ0M7d0JBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFFNUUsNENBQTRDO3dCQUM1Qyw0RUFBNEU7d0JBQzVFLHdGQUF3Rjt3QkFDeEYsZ0dBQWdHO3dCQUNoRyxxQkFBcUI7d0JBQ3JCLDZDQUE2Qzt3QkFDN0MsTUFBTTt3QkFDTixJQUFJO3dCQUVKLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTs0QkFDaEIsSUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQzs0QkFDekIsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0NBQy9ELElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO29DQUM1QyxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7aUNBQ3ZDO3FDQUFNO29DQUNMLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztpQ0FDaEM7NkJBQ0Y7eUJBQ0Y7d0JBQ0QsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRTs0QkFDdEIsSUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQzs0QkFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7NEJBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQ3pGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO2dDQUN2QixZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0NBQzVCLFNBQVMsRUFBRSxJQUFJO2dDQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0NBQ3hFLFFBQVEsRUFDTixJQUFJLENBQUMsYUFBYSxJQUFJLEdBQUc7b0NBQ3ZCLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRzt3Q0FDWCxDQUFDLENBQUMsSUFBSTt3Q0FDTixDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO29DQUNqQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssU0FBUzt3Q0FDbkMsQ0FBQyxDQUFDLElBQUk7d0NBQ04sQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHOzRDQUNiLENBQUMsQ0FBQyxJQUFJOzRDQUNOLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO2dDQUNqQixXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhOzZCQUNwQyxDQUFDLENBQUM7NEJBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7NEJBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7NEJBQ3pCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO3lCQUNyRDtxQkFDRjtpQkFDRjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztvQkFDcEIsQ0FBQyxHQUFHLElBQUksQ0FBQztvQkFDVCxJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO29CQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztvQkFFcEIsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLEdBQUcsRUFBRTt3QkFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDOzRCQUN2QixZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVM7NEJBQzVCLFNBQVMsRUFBRSxJQUFJOzRCQUNmLEtBQUssRUFBRSxJQUFJOzRCQUNYLFFBQVEsRUFDTixJQUFJLENBQUMsYUFBYSxJQUFJLEdBQUc7Z0NBQ3ZCLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRztvQ0FDWCxDQUFDLENBQUMsSUFBSTtvQ0FDTixDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dDQUNqQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssU0FBUztvQ0FDbkMsQ0FBQyxDQUFDLElBQUk7b0NBQ04sQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHO3dDQUNiLENBQUMsQ0FBQyxJQUFJO3dDQUNOLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDOzRCQUNqQixXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhO3lCQUNwQyxDQUFDLENBQUM7d0JBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7d0JBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7d0JBQ3pCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO3FCQUNyRDtpQkFDRjthQUNGO1FBQ0gsQ0FBQzs7O09BbEhBO0lBd0hELHlDQUFVLEdBQVYsVUFBVyxDQUFDO1FBQ1YsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCx3Q0FBUyxHQUFULFVBQVUsSUFBSTtRQUNaLElBQUksSUFBSSxFQUFFLENBQUM7UUFDWCxJQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNkLElBQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDMUMsSUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDO1FBQzNCLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNuQixFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztTQUN6QztRQUNELE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsdUNBQVEsR0FBUjtRQUFBLGlCQVlDO1FBWEMsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEtBQUssRUFBRTtZQUMzQixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFO2dCQUM1QixVQUFVLENBQUM7b0JBQ1QsS0FBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFVBQUMsQ0FBQzt3QkFDbkQsS0FBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDdEIsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2FBQ1Q7U0FDRjtRQUVELG9DQUFvQztJQUN0QyxDQUFDO0lBRUQsMENBQVcsR0FBWCxVQUFZLEtBQUs7UUFBakIsaUJBeUJDO1FBeEJDLElBQUssS0FBYSxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUU7WUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUM7WUFFMUQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUVuQixVQUFVLENBQUM7Z0JBQ1QsS0FBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNoQixLQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztZQUNyRCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDUDtRQUNELElBQUssS0FBYSxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUU7WUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUM7WUFFMUQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUVuQixVQUFVLENBQUM7Z0JBQ1QsS0FBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNoQixLQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztZQUNyRCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDUDtRQUNELEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELDZDQUFjLEdBQWQsVUFBZSxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQU0sZ0JBQWdCLEdBQUcsVUFBVSxDQUFDO1FBQ3BDLElBQU0sa0JBQWtCLEdBQUcsVUFBVSxDQUFDO1FBRXRDLElBQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXRELElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDN0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDdkI7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQzVELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1NBQ3hCO1FBRUQscUNBQXFDO1FBQ3JDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGNBQWMsS0FBSyxDQUFDLEVBQUU7WUFDNUYsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUM7WUFDOUQsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUM7U0FDMUI7UUFFRCxxQ0FBcUM7UUFDckMsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsRUFBRTtZQUM1QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUN2QyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7YUFDeEI7WUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3pDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUN4QjtTQUNGO1FBQ0QsdUNBQXVDO1FBQ3ZDLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxDQUFDLEVBQUU7WUFDN0IsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDNUQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQ3hCO2lCQUFNO2dCQUNMLHVDQUF1QztnQkFDdkMsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLENBQUMsRUFBRTtvQkFDM0QsSUFBSSxTQUFTLEtBQUssR0FBRyxFQUFFO3dCQUNyQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7cUJBQ3hCO2lCQUNGO2dCQUNELDRDQUE0QztnQkFDNUMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUNwRCxJQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDbkUsSUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3pDLElBQUksUUFBUSxHQUFHLENBQUMsR0FBRyxRQUFRLEdBQUcsY0FBYyxHQUFHLFFBQVEsR0FBRyxDQUFDLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLEdBQUcsUUFBUSxFQUFFO3dCQUNqSSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7cUJBQ3hCO2lCQUNGO2dCQUNELG9CQUFvQjtnQkFDcEIsSUFBSSxTQUFTLEtBQUssR0FBRyxFQUFFO29CQUNyQixJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDckUsZ0NBQWdDO29CQUNoQyxJQUFJLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQ3BDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztxQkFDeEI7b0JBQ0QsZ0NBQWdDO29CQUNoQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7d0JBQ2pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztxQkFDeEI7b0JBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2lCQUN2QjthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsMENBQVcsR0FBWCxVQUFZLEtBQW9CO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxXQUFXLEVBQUU7WUFDeEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7WUFDbkQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUN6QjtRQUVELElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2pCO1FBRUQsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRTtZQUM3QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDakI7UUFFRCxzQkFBc0I7UUFDdEIsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFdBQVcsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFlBQVksRUFBRTtZQUMzRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxjQUFjLEtBQUssQ0FBQyxFQUFFO2dCQUM1RixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQzthQUMvRDtTQUNGO1FBRUQsY0FBYztRQUNkLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxNQUFNLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7U0FDekI7UUFFRCxhQUFhO1FBQ2IsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLEtBQUssRUFBRTtZQUN2QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1NBQ3pDO1FBRUQsc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVuQixvQkFBb0I7UUFDcEIsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRTtZQUM3QixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtnQkFDakQsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7YUFDekI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUM7YUFDMUI7U0FDRjtJQUNILENBQUM7SUFFRCw0Q0FBYSxHQUFiLFVBQWMsS0FBb0I7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRTtZQUN4RCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEtBQUssRUFBRTtZQUMzQixJQUFNLGFBQWEsR0FDakIsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTO2dCQUNsRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFDdkUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNSLElBQU0sV0FBVyxHQUNmLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDMUksdUNBQXVDO1lBQ3ZDLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDcEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7b0JBQzNDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxXQUFXLEVBQUU7d0JBQzdCLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO3dCQUNwRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO3dCQUN0QyxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTs0QkFDL0QsdURBQXVEOzRCQUN2RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQzt5QkFDMUc7cUJBQ0Y7b0JBRUQsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFNBQVMsRUFBRTt3QkFDM0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7d0JBQ3BELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7d0JBQ3RDLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFOzRCQUMvRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQzt5QkFDMUc7cUJBQ0Y7aUJBQ0Y7cUJBQU07b0JBQ0wsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRTt3QkFDN0IsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7NEJBQzlELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLEVBQUU7Z0NBQzVCLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dDQUNwRCxJQUFJLENBQUMsUUFBUTtvQ0FDWCxVQUFVLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7d0NBQ3hHLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7d0NBQzVHLFVBQVUsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO2dDQUMzRyxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztnQ0FDbEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7NkJBQzFHO2lDQUFNO2dDQUNMLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dDQUNwRCxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDO2dDQUNoRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQzs2QkFDMUc7eUJBQ0Y7cUJBQ0Y7b0JBRUQsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFNBQVMsRUFBRTt3QkFDM0IsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7NEJBQzlELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLEVBQUU7Z0NBQzVCLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dDQUNwRCxJQUFJLENBQUMsUUFBUTtvQ0FDWCxVQUFVLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7d0NBQ3hHLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7d0NBQzVHLFVBQVUsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO2dDQUMzRyxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztnQ0FDbEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7NkJBQzFHO2lDQUFNO2dDQUNMLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dDQUNwRCxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDO2dDQUNoRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQzs2QkFDMUc7eUJBQ0Y7cUJBQ0Y7aUJBQ0Y7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssV0FBVyxFQUFFO29CQUM3QixJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO3dCQUMxQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7cUJBQ2xDO3lCQUFNO3dCQUNMLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFOzRCQUMzRSxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO2dDQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQzs2QkFDbEI7aUNBQU07Z0NBQ0wsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztnQ0FDcEQsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2dDQUN2QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQzs2QkFDdEQ7eUJBQ0Y7cUJBQ0Y7aUJBQ0Y7Z0JBQ0QsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFNBQVMsRUFBRTtvQkFDM0IsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTt3QkFDMUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO3FCQUNsQzt5QkFBTTt3QkFDTCxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRTs0QkFDM0UsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtnQ0FDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7NkJBQ2xCO2lDQUFNO2dDQUNMLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dDQUNuRCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7Z0NBQ3ZDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDOzZCQUN0RDt5QkFDRjtxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7UUFFRCxvQkFBb0I7UUFDcEIsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRTtZQUN4RCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQztZQUMxRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQsMENBQVcsR0FBWDtRQUNFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGNBQWMsS0FBSyxDQUFDLEVBQUU7WUFDNUYsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUM7U0FDL0Q7SUFDSCxDQUFDO0lBRUQsMENBQVcsR0FBWDtRQUFBLGlCQVNDO1FBUkMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFDLFFBQVE7WUFDekIsS0FBSSxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsVUFBQyxJQUFZLElBQUssT0FBQSxLQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUF0QixDQUFzQixDQUFDLENBQUM7UUFDN0gseURBQXlEO1FBQ3pELFVBQVUsQ0FBQztZQUNULEtBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0QsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVELDBDQUFXLEdBQVgsVUFBWSxJQUFJO1FBQ2QsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksRUFBRTtZQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2FBQ2pCO1NBQ0Y7UUFDRCxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7YUFDakI7U0FDRjtJQUNILENBQUM7SUFFRCxpREFBa0IsR0FBbEIsVUFBbUIsSUFBSTtRQUNyQixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDakIsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssQ0FBQyxFQUFFO1lBQ3BELFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQy9CLE9BQU8sUUFBUSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztJQUVELCtDQUFnQixHQUFoQixVQUFpQixJQUFJLEVBQUUsR0FBRztRQUN4QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ2xDO2FBQU0sSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQy9CLElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNyQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JCLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2hDLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2xDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNoQjtJQUNILENBQUM7SUFFRCx1Q0FBUSxHQUFSO1FBQ0UsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsMkNBQVksR0FBWjtRQUNFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUU7WUFDMUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2xDO2FBQU07WUFDTCxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssS0FBSyxFQUFFO2dCQUMzQixJQUFNLGFBQWEsR0FDakIsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTO29CQUNsRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztvQkFDdkUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDUixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO29CQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztpQkFDbEI7cUJBQU07b0JBQ0wsSUFBTSxXQUFXLEdBQ2YsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQztvQkFDMUksSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzFELElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTt3QkFDcEQsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUU7NEJBQzFDLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDOzRCQUNwRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDOzRCQUN0QyxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtnQ0FDdkQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7NkJBQzFHO3lCQUNGOzZCQUFNOzRCQUNMLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dDQUM5RCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFO29DQUM1QixJQUFJLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztvQ0FDcEQsSUFBSSxDQUFDLFFBQVE7d0NBQ1gsVUFBVSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDOzRDQUN4RyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDOzRDQUM1RyxVQUFVLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztvQ0FDM0csSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7b0NBQ2xELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7aUNBQzVIO3FDQUFNO29DQUNMLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO29DQUNwRCxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDO29DQUNoRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2lDQUM1SDs2QkFDRjt5QkFDRjtxQkFDRjt5QkFBTTt3QkFDTCxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRTs0QkFDM0UsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7NEJBQ25ELElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzs0QkFFdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7eUJBQ3REO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFRCw2Q0FBYyxHQUFkO1FBQ0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtZQUMxQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDbEM7YUFBTTtZQUNMLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxLQUFLLEVBQUU7Z0JBQzNCLElBQU0sYUFBYSxHQUNqQixJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVM7b0JBQ2xFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO29CQUN2RSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNSLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUU7b0JBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO2lCQUNsQjtxQkFBTTtvQkFDTCxJQUFNLFdBQVcsR0FDZixhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxDQUFDO29CQUMxSSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDMUQsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO3dCQUNwRCxJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRTs0QkFDMUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7NEJBQ3BELElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzs0QkFDdEUsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0NBQ3ZELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7NkJBQzVIO3lCQUNGOzZCQUFNOzRCQUNMLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dDQUM5RCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFO29DQUM1QixJQUFJLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztvQ0FDcEQsSUFBSSxDQUFDLFFBQVE7d0NBQ1gsVUFBVSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDOzRDQUN4RyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDOzRDQUM1RyxVQUFVLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztvQ0FDM0csSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7b0NBQ2xELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2lDQUMxRztxQ0FBTTtvQ0FDTCxJQUFJLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztvQ0FDcEQsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQztvQ0FDaEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7aUNBQzFHOzZCQUNGO3lCQUNGO3FCQUNGO3lCQUFNO3dCQUNMLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFOzRCQUMzRSxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDOzRCQUNwRCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7NEJBQ3ZDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO3lCQUN0RDtxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7SUFDSCxDQUFDOzs7Z0JBN2IwQixpQkFBaUI7Z0JBQU8sVUFBVTs7SUF6SnBEO1FBQVIsS0FBSyxFQUFFOztxREFBb0I7SUFDbkI7UUFBUixLQUFLLEVBQUU7O3FEQUFvQjtJQUc1QjtRQURDLEtBQUssRUFBRTs7K0RBQ3VCO0lBRS9CO1FBREMsS0FBSyxFQUFFOzs4REFDc0I7SUFHOUI7UUFEQyxLQUFLLEVBQUU7OzZEQUNvQjtJQUc1QjtRQURDLEtBQUssRUFBRTs7NERBQ21CO0lBRzNCO1FBREMsS0FBSyxFQUFFOzttRUFDMkI7SUFnQjFCO1FBQVIsS0FBSyxFQUFFOzt5REFBcUI7SUFDcEI7UUFBUixLQUFLLEVBQUU7OytEQUE4QjtJQUM3QjtRQUFSLEtBQUssRUFBRTs7NERBQTJCO0lBbEN4QixvQkFBb0I7UUFQaEMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLGVBQWU7WUFDekIsMnNFQUEwQztZQUMxQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtZQUMvQyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUU7WUFDckMsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLHNCQUFvQixFQUFFLENBQUM7U0FDcEYsQ0FBQzt5Q0EySjJCLGlCQUFpQixFQUFPLFVBQVU7T0ExSmxELG9CQUFvQixDQXdsQmhDO0lBQUQsMkJBQUM7Q0FBQSxBQXhsQkQsQ0FBMEMsbUJBQW1CLEdBd2xCNUQ7U0F4bEJZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBBZnRlclZpZXdJbml0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBWEJhc2VUZXh0Q29tcG9uZW50LCBBWFZhbGlkYXRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9lbGVtZW50LmNsYXNzJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC1udW1iZXItYm94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbnVtYmVyLWJveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgaG9zdDogeyBzdHlsZTogJ2Rpc3BsYXk6IGNvbnRlbnRzOycgfSxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYVmFsaWRhdGFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWE51bWJlckJveENvbXBvbmVudCB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhOdW1iZXJCb3hDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VUZXh0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBtaW46IG51bWJlciA9IG51bGw7XHJcbiAgQElucHV0KCkgbWF4OiBudW1iZXIgPSBudWxsO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNob3dTZXBhcmF0b3I6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHNob3dDdXJyZW5jeTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNob3dDb3VudGVyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBzY3JvbGxXZWVsOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBzaG93RG91YmxlQ291bnRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICB1c2VyUXVlc3Rpb25VcGRhdGUgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XHJcblxyXG4gIHVzZXJFZGl0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICB0bXA6IGFueTtcclxuICBjb3VudDogbnVtYmVyO1xyXG4gIGZpbmREb3RzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZmluZE1pbnVzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY3Vyc29yUG9zaXRpb246IG51bWJlciA9IDA7XHJcbiAgZG90UG9zaXRpb246IG51bWJlcjtcclxuICB0ZXh0VmFsdWU6IHN0cmluZztcclxuICBkZWNpbWFsQ29uc3RhbnQ6IG51bWJlciA9IDAuMTtcclxuICBsYXN0U3RlcDogbnVtYmVyID0gbnVsbDtcclxuXHJcbiAgQElucHV0KCkgaW50U3RlcDogbnVtYmVyID0gMTtcclxuICBASW5wdXQoKSBkZWNpbWFsTnVtYmVyOiBudW1iZXIgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGN1c3RvbVN0ZXA6IG51bWJlciA9IG51bGw7XHJcblxyXG4gIHByaXZhdGUgX3ZhbHVlczogc3RyaW5nO1xyXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZXM7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgdmFsdWUodjogc3RyaW5nKSB7XHJcbiAgICBpZiAodiA9PT0gJy0nKSB7XHJcbiAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0nO1xyXG4gICAgICB0aGlzLl92YWx1ZXMgPSAnLSc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodiA9PT0gJycgfHwgdiA9PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZCA/IHRydWUgOiBpc05hTihOdW1iZXIodi50b1N0cmluZygpLnJlcGxhY2UoLywvZywgJycpKSkgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgaWYgKHYgPT09ICcnIHx8IHYgPT0gbnVsbCB8fCB2ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJyc7XHJcbiAgICAgICAgICBjb25zdCBvbGQgPSB0aGlzLl92YWx1ZXM7XHJcbiAgICAgICAgICB0aGlzLl92YWx1ZXMgPSBudWxsO1xyXG5cclxuICAgICAgICAgIGlmICh0aGlzLl92YWx1ZXMgIT09IG9sZCkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICAgICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZWQuZW1pdCh7XHJcbiAgICAgICAgICAgICAgaXNVc2VyQ2hhbmdlOiB0aGlzLnVzZXJFZGl0ZSxcclxuICAgICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXHJcbiAgICAgICAgICAgICAgb2xkVmFsdWU6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dTZXBhcmF0b3IgJiYgb2xkXHJcbiAgICAgICAgICAgICAgICAgID8gb2xkID09PSAnLSdcclxuICAgICAgICAgICAgICAgICAgICA/IG51bGxcclxuICAgICAgICAgICAgICAgICAgICA6IE51bWJlcihvbGQucmVwbGFjZSgvLC9nLCAnJykpXHJcbiAgICAgICAgICAgICAgICAgIDogb2xkID09PSBudWxsIHx8IG9sZCA9PT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgICAgICAgID8gbnVsbFxyXG4gICAgICAgICAgICAgICAgICA6IG9sZCA9PT0gJy0nXHJcbiAgICAgICAgICAgICAgICAgID8gbnVsbFxyXG4gICAgICAgICAgICAgICAgICA6IE51bWJlcihvbGQpLFxyXG4gICAgICAgICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnVzZXJFZGl0ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIHRoaXMuY2xlYXJWYWxpZGF0aW9uU3R5bGUodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdiA9IHYudG9TdHJpbmcoKTtcclxuXHJcbiAgICAgICAgICAvLyB0aGlzLmFkZENvbW1hcyh2LnRvU3RyaW5nKCkpO1xyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLnNob3dTZXBhcmF0b3IgJiYgdiA/IHRoaXMuYWRkQ29tbWFzKHYudG9TdHJpbmcoKSkgOiB2O1xyXG5cclxuICAgICAgICAgIC8vIGlmICh0aGlzLnRleHRWYWx1ZS5pbmRleE9mKCcuJykgIT09IC0xKSB7XHJcbiAgICAgICAgICAvLyAgIC8vIGNvbnN0IGRvdHR0PSAodGhpcy50ZXh0VmFsdWUubGVuZ3RoLTEpIC0gdGhpcy50ZXh0VmFsdWUuaW5kZXhPZignLicpXHJcbiAgICAgICAgICAvLyAgIGlmICh0aGlzLnRleHRWYWx1ZS5sZW5ndGggLSAxIC0gdGhpcy50ZXh0VmFsdWUuaW5kZXhPZignLicpIDwgdGhpcy5kZWNpbWFsTnVtYmVyKSB7XHJcbiAgICAgICAgICAvLyAgICAgY29uc3QgYSA9IHRoaXMuZGVjaW1hbE51bWJlciAtICh0aGlzLnRleHRWYWx1ZS5sZW5ndGggLSAxIC0gdGhpcy50ZXh0VmFsdWUuaW5kZXhPZignLicpKTtcclxuICAgICAgICAgIC8vICAgICBjb25zdCB6ID0gJzAnO1xyXG4gICAgICAgICAgLy8gICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy50ZXh0VmFsdWUgKyAnMCc7XHJcbiAgICAgICAgICAvLyAgIH1cclxuICAgICAgICAgIC8vIH1cclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5fdmFsdWVzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG9sZCA9IHRoaXMuX3ZhbHVlcztcclxuICAgICAgICAgICAgaWYgKG9sZC50b1N0cmluZygpLnNlYXJjaCgvXFwuL2cpICE9PSB2LnRvU3RyaW5nKCkuc2VhcmNoKC9cXC4vZykpIHtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA8PSBvbGQuc2VhcmNoKC9cXC4vZykpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSB2LnNlYXJjaCgvXFwuL2cpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gdi5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodiAhPT0gdGhpcy5fdmFsdWVzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG9sZCA9IHRoaXMuX3ZhbHVlcztcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWVzID0gdjtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMuc2hvd1NlcGFyYXRvciAmJiB2ID8gTnVtYmVyKHYucmVwbGFjZSgvLC9nLCAnJykpIDogTnVtYmVyKHYpKTtcclxuICAgICAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5lbWl0KHtcclxuICAgICAgICAgICAgICBpc1VzZXJDaGFuZ2U6IHRoaXMudXNlckVkaXRlLFxyXG4gICAgICAgICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5zaG93U2VwYXJhdG9yICYmIHYgPyBOdW1iZXIodi5yZXBsYWNlKC8sL2csICcnKSkgOiBOdW1iZXIodiksXHJcbiAgICAgICAgICAgICAgb2xkVmFsdWU6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dTZXBhcmF0b3IgJiYgb2xkXHJcbiAgICAgICAgICAgICAgICAgID8gb2xkID09PSAnLSdcclxuICAgICAgICAgICAgICAgICAgICA/IG51bGxcclxuICAgICAgICAgICAgICAgICAgICA6IE51bWJlcihvbGQucmVwbGFjZSgvLC9nLCAnJykpXHJcbiAgICAgICAgICAgICAgICAgIDogb2xkID09PSBudWxsIHx8IG9sZCA9PT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgICAgICAgID8gbnVsbFxyXG4gICAgICAgICAgICAgICAgICA6IG9sZCA9PT0gJy0nXHJcbiAgICAgICAgICAgICAgICAgID8gbnVsbFxyXG4gICAgICAgICAgICAgICAgICA6IE51bWJlcihvbGQpLFxyXG4gICAgICAgICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLnVzZXJFZGl0ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIHRoaXMuY2xlYXJWYWxpZGF0aW9uU3R5bGUodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnJztcclxuICAgICAgICB2ID0gbnVsbDtcclxuICAgICAgICBjb25zdCBvbGQgPSB0aGlzLl92YWx1ZXM7XHJcbiAgICAgICAgdGhpcy5fdmFsdWVzID0gbnVsbDtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX3ZhbHVlcyAhPT0gb2xkKSB7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkLmVtaXQoe1xyXG4gICAgICAgICAgICBpc1VzZXJDaGFuZ2U6IHRoaXMudXNlckVkaXRlLFxyXG4gICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgICAgIHZhbHVlOiBudWxsLFxyXG4gICAgICAgICAgICBvbGRWYWx1ZTpcclxuICAgICAgICAgICAgICB0aGlzLnNob3dTZXBhcmF0b3IgJiYgb2xkXHJcbiAgICAgICAgICAgICAgICA/IG9sZCA9PT0gJy0nXHJcbiAgICAgICAgICAgICAgICAgID8gbnVsbFxyXG4gICAgICAgICAgICAgICAgICA6IE51bWJlcihvbGQucmVwbGFjZSgvLC9nLCAnJykpXHJcbiAgICAgICAgICAgICAgICA6IG9sZCA9PT0gbnVsbCB8fCBvbGQgPT09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICAgICAgPyBudWxsXHJcbiAgICAgICAgICAgICAgICA6IG9sZCA9PT0gJy0nXHJcbiAgICAgICAgICAgICAgICA/IG51bGxcclxuICAgICAgICAgICAgICAgIDogTnVtYmVyKG9sZCksXHJcbiAgICAgICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMudXNlckVkaXRlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyVmFsaWRhdGlvblN0eWxlKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLCByZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIHN1cGVyKGNkciwgcmVmKTtcclxuICAgIHRoaXMudGV4dEFsaWduID0gJ2xlZnQnO1xyXG4gIH1cclxuXHJcbiAgYWRkQ29tbWFzMih4KSB7XHJcbiAgICByZXR1cm4geC50b1N0cmluZygpLnJlcGxhY2UoL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2csICcsJyk7XHJcbiAgfVxyXG5cclxuICBhZGRDb21tYXMoblN0cikge1xyXG4gICAgblN0ciArPSAnJztcclxuICAgIGNvbnN0IHggPSBuU3RyLnNwbGl0KCcuJyk7XHJcbiAgICBsZXQgeDEgPSB4WzBdO1xyXG4gICAgY29uc3QgeDIgPSB4Lmxlbmd0aCA+IDEgPyAnLicgKyB4WzFdIDogJyc7XHJcbiAgICBjb25zdCByZ3ggPSAvKFxcZCspKFxcZHszfSkvO1xyXG4gICAgd2hpbGUgKHJneC50ZXN0KHgxKSkge1xyXG4gICAgICB4MSA9IHgxLnJlcGxhY2Uocmd4LCAnJDEnICsgJywnICsgJyQyJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4geDEgKyB4MjtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgPT09IGZhbHNlKSB7XHJcbiAgICAgIGlmICh0aGlzLnNjcm9sbFdlZWwgPT09IHRydWUpIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIChlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlV2hlZWwoZSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9LCA1MDApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdGhpcy52YWx1ZSA9IHRoaXMubWluLnRvU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVXaGVlbChldmVudCkge1xyXG4gICAgaWYgKChldmVudCBhcyBhbnkpLndoZWVsRGVsdGEgPiAwKSB7XHJcbiAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ3RyYW5zcGFyZW50JztcclxuXHJcbiAgICAgIHRoaXMudXBTdGVwSGFuZGVsKCk7XHJcbiAgICAgIHRoaXMuZGVsYXlTZWFyY2goKTtcclxuXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0Q2FyZXQoKTtcclxuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICdhdXRvJztcclxuICAgICAgfSwgMCk7XHJcbiAgICB9XHJcbiAgICBpZiAoKGV2ZW50IGFzIGFueSkud2hlZWxEZWx0YSA8IDApIHtcclxuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAndHJhbnNwYXJlbnQnO1xyXG5cclxuICAgICAgdGhpcy5kb3duU3RlcEhhbmRlbCgpO1xyXG4gICAgICB0aGlzLmRlbGF5U2VhcmNoKCk7XHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnNldENhcmV0KCk7XHJcbiAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAnYXV0byc7XHJcbiAgICAgIH0sIDApO1xyXG4gICAgfVxyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlS2V5UHJlc3MoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy51c2VyRWRpdGUgPSB0cnVlO1xyXG4gICAgY29uc3QgTnVtYmVyRG90cGF0dGVybiA9IC9bMC05XFwuXS9nO1xyXG4gICAgY29uc3QgTnVtYmVyTWludXNQYXR0ZXJuID0gL1swLTlcXC1dL2c7XHJcblxyXG4gICAgY29uc3QgaW5wdXRDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShldmVudC5jaGFyQ29kZSk7XHJcblxyXG4gICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS50b1N0cmluZygpLm1hdGNoKC9cXC4vZykgPT09IG51bGwpIHtcclxuICAgICAgdGhpcy5maW5kRG90cyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS50b1N0cmluZygpLnNlYXJjaCgnLScpID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuZmluZE1pbnVzID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZ2V0IGN1cnN1ciBwb3NpdGlvbiB3aGVuIGtleSBwcmVzc1xyXG4gICAgaWYgKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCB8fCB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT09IDApIHtcclxuICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcclxuICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiArPSAxO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGNvbnRyb2wgY3Vyc29yIHdoZW4gaW4gZmlyc3QgSW5kZXhcclxuICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uIDw9IDEpIHtcclxuICAgICAgaWYgKCFOdW1iZXJNaW51c1BhdHRlcm4udGVzdChpbnB1dENoYXIpKSB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLm1hdGNoKC9cXC0vZykpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBjb250cm9sIGN1cnNvciB3aGVuIGluIGFub3RoZXIgaW5kZXhcclxuICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uICE9PSAxKSB7XHJcbiAgICAgIGlmIChldmVudC5rZXlDb2RlICE9PSA4ICYmICFOdW1iZXJEb3RwYXR0ZXJuLnRlc3QoaW5wdXRDaGFyKSkge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gZm9yIGNvbnRvciBkZWNpbWFsIGZpZ3VyID0gMCBvciBudWxsXHJcbiAgICAgICAgaWYgKHRoaXMuZGVjaW1hbE51bWJlciA9PT0gbnVsbCB8fCB0aGlzLmRlY2ltYWxOdW1iZXIgPT09IDApIHtcclxuICAgICAgICAgIGlmIChpbnB1dENoYXIgPT09ICcuJykge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjb250cm9sIGRlY2ltYWwgbnVtYmVyIChmaWd1ciBvZiBkZWNpbWFsKVxyXG4gICAgICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUudG9TdHJpbmcoKS5tYXRjaCgvXFwuL2cpKSB7XHJcbiAgICAgICAgICBjb25zdCBmaWd1cmVBZnRlckRvdCA9IHRoaXMudmFsdWUubGVuZ3RoIC0gdGhpcy52YWx1ZS5pbmRleE9mKCcuJyk7XHJcbiAgICAgICAgICBjb25zdCBkb3RJbmRleCA9IHRoaXMudmFsdWUuaW5kZXhPZignLicpO1xyXG4gICAgICAgICAgaWYgKGRvdEluZGV4IC0gMSArIGRvdEluZGV4ICsgZmlndXJlQWZ0ZXJEb3QgPiBkb3RJbmRleCAtIDEgKyBkb3RJbmRleCArIHRoaXMuZGVjaW1hbE51bWJlciAmJiB0aGlzLmN1cnNvclBvc2l0aW9uIC0gMSA+IGRvdEluZGV4KSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGNvbnRyb2wgJy4nIGlucHV0XHJcbiAgICAgICAgaWYgKGlucHV0Q2hhciA9PT0gJy4nKSB7XHJcbiAgICAgICAgICBjb25zdCBsYXN0Q2hhciA9IHRoaXMudmFsdWUudG9TdHJpbmcoKS5jaGFyQXQodGhpcy52YWx1ZS5sZW5ndGggLSAxKTtcclxuICAgICAgICAgIC8vIGNvbnRyb2wgLiB3aGVuIGxhc3QgY2hhciBpcyAtXHJcbiAgICAgICAgICBpZiAobGFzdENoYXIudG9TdHJpbmcoKS5tYXRjaCgvXFwtL2cpKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyBjb250cm9sIC4gd2hlbiBmaW5kIGZpcnN0IGRvdFxyXG4gICAgICAgICAgaWYgKHRoaXMuZmluZERvdHMpIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuZmluZERvdHMgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5maW5kTWludXMgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlS2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIHRoaXMudXNlckVkaXRlID0gdHJ1ZTtcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJyB8fCBldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ2F1dG8nO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcclxuICAgICAgdGhpcy5zZXRDYXJldCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgIHRoaXMuc2V0Q2FyZXQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBsZWZ0ICYgcmlnaHQgQnV0dG9uXHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dMZWZ0JyB8fCBldmVudC5rZXkgPT09ICdBcnJvd1JpZ2h0Jykge1xyXG4gICAgICBpZiAodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0IHx8IHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBob21lIGJ1dHRvblxyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0hvbWUnKSB7XHJcbiAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGVuZCBidXR0b25cclxuICAgIGlmIChldmVudC5rZXkgPT09ICdFbmQnKSB7XHJcbiAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSB0aGlzLnZhbHVlLmxlbmd0aDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBzZXQgZGVsYXkgd2l0aCByeGpzXHJcbiAgICB0aGlzLmRlbGF5U2VhcmNoKCk7XHJcblxyXG4gICAgLy8gYmFja3NwYWNlIENvbnRyb2xcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnKSB7XHJcbiAgICAgIGlmICh0aGlzLnZhbHVlID09PSBudWxsIHx8IHRoaXMudmFsdWUubGVuZ3RoIDw9IDApIHtcclxuICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gMDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uIC09IDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIHRoaXMudXNlckVkaXRlID0gdHJ1ZTtcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJyB8fCBldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucmVhZG9ubHkgPT09IGZhbHNlKSB7XHJcbiAgICAgIGNvbnN0IGNvdW50QWZ0ZXJEb3QgPVxyXG4gICAgICAgIHRoaXMudmFsdWUgIT09IG51bGwgJiYgdGhpcy52YWx1ZSAhPT0gJycgJiYgdGhpcy52YWx1ZSAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICA/IHRoaXMudmFsdWUudG9TdHJpbmcoKS5sZW5ndGggLSAxIC0gdGhpcy52YWx1ZS50b1N0cmluZygpLmluZGV4T2YoJy4nKVxyXG4gICAgICAgICAgOiAwO1xyXG4gICAgICBjb25zdCBkZWZhdWx0U3RlcDogbnVtYmVyID1cclxuICAgICAgICBjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gTWF0aC5wb3codGhpcy5kZWNpbWFsQ29uc3RhbnQsIHRoaXMuZGVjaW1hbE51bWJlcikgOiBNYXRoLnBvdyh0aGlzLmRlY2ltYWxDb25zdGFudCwgY291bnRBZnRlckRvdCk7XHJcbiAgICAgIC8vIHN0ZXAgYW5kICstIHdpdGggdXAga2V5IGFuZCBkb3duIGtleVxyXG4gICAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLnRvU3RyaW5nKCkubWF0Y2goL1xcLi9nKSkge1xyXG4gICAgICAgIHRoaXMuZG90UG9zaXRpb24gPSB0aGlzLnZhbHVlLmluZGV4T2YoJy4nKTtcclxuICAgICAgICBpZiAodGhpcy5kb3RQb3NpdGlvbiA+PSB0aGlzLmN1cnNvclBvc2l0aW9uKSB7XHJcbiAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICAgICAgICB0aGlzLnRtcCA9IHBhcnNlRmxvYXQodGhpcy52YWx1ZS5yZXBsYWNlKC8sL2csICcnKSk7XHJcbiAgICAgICAgICAgIHRoaXMuY291bnQgPSB0aGlzLnRtcCAtICt0aGlzLmludFN0ZXA7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1pbiA9PT0gbnVsbCB8fCBOdW1iZXIodGhpcy5jb3VudCkgPj0gTnVtYmVyKHRoaXMubWluKSkge1xyXG4gICAgICAgICAgICAgIC8vIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQodGhpcy5kZWNpbWFsTnVtYmVyKTtcclxuICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5jb3VudC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xyXG4gICAgICAgICAgICB0aGlzLnRtcCA9IHBhcnNlRmxvYXQodGhpcy52YWx1ZS5yZXBsYWNlKC8sL2csICcnKSk7XHJcbiAgICAgICAgICAgIHRoaXMuY291bnQgPSB0aGlzLnRtcCArICt0aGlzLmludFN0ZXA7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1heCA9PT0gbnVsbCB8fCBOdW1iZXIodGhpcy5jb3VudCkgPD0gTnVtYmVyKHRoaXMubWF4KSkge1xyXG4gICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1pbiA9PT0gbnVsbCB8fCBOdW1iZXIodGhpcy52YWx1ZSkgPiBOdW1iZXIodGhpcy5taW4pKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuY3VzdG9tU3RlcCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50bXAgPSBwYXJzZUZsb2F0KHRoaXMudmFsdWUucmVwbGFjZSgvLC9nLCAnJykpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0U3RlcCA9XHJcbiAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQoZGVmYXVsdFN0ZXAudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkpICtcclxuICAgICAgICAgICAgICAgICAgcGFyc2VGbG9hdCh0aGlzLmN1c3RvbVN0ZXAudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkpIC1cclxuICAgICAgICAgICAgICAgICAgcGFyc2VGbG9hdChkZWZhdWx0U3RlcC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gcGFyc2VGbG9hdCh0aGlzLnRtcCkgLSB0aGlzLmxhc3RTdGVwO1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY291bnQudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY291bnQgPSBwYXJzZUZsb2F0KHRoaXMudG1wKSAtIGRlZmF1bHRTdGVwO1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY291bnQudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1heCA9PT0gbnVsbCB8fCBOdW1iZXIodGhpcy52YWx1ZSkgPCBOdW1iZXIodGhpcy5tYXgpKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuY3VzdG9tU3RlcCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50bXAgPSBwYXJzZUZsb2F0KHRoaXMudmFsdWUucmVwbGFjZSgvLC9nLCAnJykpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0U3RlcCA9XHJcbiAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQoZGVmYXVsdFN0ZXAudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkpICtcclxuICAgICAgICAgICAgICAgICAgcGFyc2VGbG9hdCh0aGlzLmN1c3RvbVN0ZXAudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkpIC1cclxuICAgICAgICAgICAgICAgICAgcGFyc2VGbG9hdChkZWZhdWx0U3RlcC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gcGFyc2VGbG9hdCh0aGlzLnRtcCkgKyB0aGlzLmxhc3RTdGVwO1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY291bnQudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY291bnQgPSBwYXJzZUZsb2F0KHRoaXMudG1wKSArIGRlZmF1bHRTdGVwO1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY291bnQudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5taW4gIT0gbnVsbCAmJiB0aGlzLnZhbHVlID09IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubWluLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5taW4gPT09IG51bGwgfHwgTnVtYmVyKHRoaXMudmFsdWUpID4gcGFyc2VJbnQodGhpcy5taW4udG9TdHJpbmcoKSkpIHtcclxuICAgICAgICAgICAgICBpZiAodGhpcy52YWx1ZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gJzAnO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRtcCA9ICt0aGlzLnZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gK3RoaXMudG1wIC0gK3RoaXMuaW50U3RlcDtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnJyk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xyXG4gICAgICAgICAgaWYgKHRoaXMubWluICE9IG51bGwgJiYgdGhpcy52YWx1ZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm1pbi50b1N0cmluZygpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWF4ID09PSBudWxsIHx8IE51bWJlcih0aGlzLnZhbHVlKSA8IHBhcnNlSW50KHRoaXMubWF4LnRvU3RyaW5nKCkpKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMudmFsdWUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9ICcwJztcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50bXAgPSB0aGlzLnZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gK3RoaXMudG1wICsgK3RoaXMuaW50U3RlcDtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnJyk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gc3RvcCB3aGVuIGtleWRvd25cclxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJyB8fCBldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ3RyYW5zcGFyZW50JztcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUNsaWNrKCkge1xyXG4gICAgaWYgKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCB8fCB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT09IDApIHtcclxuICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRlbGF5U2VhcmNoKCkge1xyXG4gICAgT2JzZXJ2YWJsZS5jcmVhdGUoKG9ic2VydmVyKSA9PiB7XHJcbiAgICAgIHRoaXMudXNlclF1ZXN0aW9uVXBkYXRlID0gb2JzZXJ2ZXI7XHJcbiAgICB9KTtcclxuICAgIHRoaXMudXNlclF1ZXN0aW9uVXBkYXRlLnBpcGUoZGVib3VuY2VUaW1lKDEwMDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUoKHRleHQ6IHN0cmluZykgPT4gdGhpcy5jaGVja01pbk1heCh0ZXh0KSk7XHJcbiAgICAvLyB0aGlzLnVzZXJRdWVzdGlvblVwZGF0ZS5uZXh0KChlLnRhcmdldCBhcyBhbnkpLnZhbHVlKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnVzZXJRdWVzdGlvblVwZGF0ZS5uZXh0KHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSk7XHJcbiAgICB9LCA1MCk7XHJcbiAgfVxyXG5cclxuICBjaGVja01pbk1heCh0ZXh0KSB7XHJcbiAgICBpZiAodGhpcy5taW4gIT09IG51bGwpIHtcclxuICAgICAgaWYgKCt0ZXh0IDwgdGhpcy5taW4pIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gJyc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1heCAhPT0gbnVsbCkge1xyXG4gICAgICBpZiAoK3RleHQgPiB0aGlzLm1heCkge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSAnJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZG9HZXRDYXJldFBvc2l0aW9uKGN0cmwpIHtcclxuICAgIGxldCBDYXJldFBvcyA9IDA7XHJcbiAgICBpZiAoY3RybC5zZWxlY3Rpb25TdGFydCB8fCBjdHJsLnNlbGVjdGlvblN0YXJ0ID09PSAwKSB7XHJcbiAgICAgIENhcmV0UG9zID0gY3RybC5zZWxlY3Rpb25TdGFydDtcclxuICAgICAgcmV0dXJuIENhcmV0UG9zO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Q2FyZXRQb3NpdGlvbihjdHJsLCBwb3MpIHtcclxuICAgIGlmIChjdHJsLnNldFNlbGVjdGlvblJhbmdlKSB7XHJcbiAgICAgIGN0cmwuZm9jdXMoKTtcclxuICAgICAgY3RybC5zZXRTZWxlY3Rpb25SYW5nZShwb3MsIHBvcyk7XHJcbiAgICB9IGVsc2UgaWYgKGN0cmwuY3JlYXRlVGV4dFJhbmdlKSB7XHJcbiAgICAgIGNvbnN0IHJhbmdlID0gY3RybC5jcmVhdGVUZXh0UmFuZ2UoKTtcclxuICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSk7XHJcbiAgICAgIHJhbmdlLm1vdmVFbmQoJ2NoYXJhY3RlcicsIHBvcyk7XHJcbiAgICAgIHJhbmdlLm1vdmVTdGFydCgnY2hhcmFjdGVyJywgcG9zKTtcclxuICAgICAgcmFuZ2Uuc2VsZWN0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDYXJldCgpIHtcclxuICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIHRoaXMuY3Vyc29yUG9zaXRpb24pO1xyXG4gIH1cclxuXHJcbiAgdXBTdGVwSGFuZGVsKCkge1xyXG4gICAgdGhpcy51c2VyRWRpdGUgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMubWluICE9IG51bGwgJiYgdGhpcy52YWx1ZSA9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm1pbi50b1N0cmluZygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMucmVhZG9ubHkgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgY29uc3QgY291bnRBZnRlckRvdCA9XHJcbiAgICAgICAgICB0aGlzLnZhbHVlICE9PSBudWxsICYmIHRoaXMudmFsdWUgIT09ICcnICYmIHRoaXMudmFsdWUgIT09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICA/IHRoaXMudmFsdWUudG9TdHJpbmcoKS5sZW5ndGggLSAxIC0gdGhpcy52YWx1ZS50b1N0cmluZygpLmluZGV4T2YoJy4nKVxyXG4gICAgICAgICAgICA6IDA7XHJcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgdGhpcy52YWx1ZSA9ICcwJztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgZGVmYXVsdFN0ZXA6IG51bWJlciA9XHJcbiAgICAgICAgICAgIGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyBNYXRoLnBvdyh0aGlzLmRlY2ltYWxDb25zdGFudCwgdGhpcy5kZWNpbWFsTnVtYmVyKSA6IE1hdGgucG93KHRoaXMuZGVjaW1hbENvbnN0YW50LCBjb3VudEFmdGVyRG90KTtcclxuICAgICAgICAgIHRoaXMuZG90UG9zaXRpb24gPSB0aGlzLnZhbHVlLnRvU3RyaW5nKCkuaW5kZXhPZignLicpICsgMTtcclxuICAgICAgICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUudG9TdHJpbmcoKS5tYXRjaCgvXFwuL2cpKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmRvdFBvc2l0aW9uID4gdGhpcy5jdXJzb3JQb3NpdGlvbikge1xyXG4gICAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcclxuICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gdGhpcy50bXAgKyArdGhpcy5pbnRTdGVwO1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLm1heCA9PT0gbnVsbCB8fCBOdW1iZXIodGhpcy5jb3VudCkgPD0gdGhpcy5tYXgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5tYXggPT09IG51bGwgfHwgTnVtYmVyKHRoaXMudmFsdWUpIDwgTnVtYmVyKHRoaXMubWF4KSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VzdG9tU3RlcCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnRtcCA9IHBhcnNlRmxvYXQodGhpcy52YWx1ZS5yZXBsYWNlKC8sL2csICcnKSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMubGFzdFN0ZXAgPVxyXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQoZGVmYXVsdFN0ZXAudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkpICtcclxuICAgICAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KHRoaXMuY3VzdG9tU3RlcC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KSkgLVxyXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQoZGVmYXVsdFN0ZXAudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gcGFyc2VGbG9hdCh0aGlzLnRtcCkgKyB0aGlzLmxhc3RTdGVwO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5jb3VudC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KS5yZXBsYWNlKC8sL2csICcnKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jb3VudCA9IHBhcnNlRmxvYXQodGhpcy50bXApICsgZGVmYXVsdFN0ZXA7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpLnJlcGxhY2UoLywvZywgJycpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWF4ID09PSBudWxsIHx8IE51bWJlcih0aGlzLnZhbHVlKSA8IHBhcnNlSW50KHRoaXMubWF4LnRvU3RyaW5nKCkpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50bXAgPSB0aGlzLnZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnJyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb3VudCA9ICt0aGlzLnRtcCArICt0aGlzLmludFN0ZXA7XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRvd25TdGVwSGFuZGVsKCkge1xyXG4gICAgdGhpcy51c2VyRWRpdGUgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMubWluICE9IG51bGwgJiYgdGhpcy52YWx1ZSA9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm1pbi50b1N0cmluZygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMucmVhZG9ubHkgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgY29uc3QgY291bnRBZnRlckRvdCA9XHJcbiAgICAgICAgICB0aGlzLnZhbHVlICE9PSBudWxsICYmIHRoaXMudmFsdWUgIT09ICcnICYmIHRoaXMudmFsdWUgIT09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICA/IHRoaXMudmFsdWUudG9TdHJpbmcoKS5sZW5ndGggLSAxIC0gdGhpcy52YWx1ZS50b1N0cmluZygpLmluZGV4T2YoJy4nKVxyXG4gICAgICAgICAgICA6IDA7XHJcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgdGhpcy52YWx1ZSA9ICcwJztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgZGVmYXVsdFN0ZXA6IG51bWJlciA9XHJcbiAgICAgICAgICAgIGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyBNYXRoLnBvdyh0aGlzLmRlY2ltYWxDb25zdGFudCwgdGhpcy5kZWNpbWFsTnVtYmVyKSA6IE1hdGgucG93KHRoaXMuZGVjaW1hbENvbnN0YW50LCBjb3VudEFmdGVyRG90KTtcclxuICAgICAgICAgIHRoaXMuZG90UG9zaXRpb24gPSB0aGlzLnZhbHVlLnRvU3RyaW5nKCkuaW5kZXhPZignLicpICsgMTtcclxuICAgICAgICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUudG9TdHJpbmcoKS5tYXRjaCgvXFwuL2cpKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmRvdFBvc2l0aW9uID4gdGhpcy5jdXJzb3JQb3NpdGlvbikge1xyXG4gICAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcclxuICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKSAtICt0aGlzLmludFN0ZXA7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMubWluID09PSBudWxsIHx8IE51bWJlcih0aGlzLmNvdW50KSA+PSB0aGlzLm1pbikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY291bnQudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkucmVwbGFjZSgvLC9nLCAnJyk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLm1pbiA9PT0gbnVsbCB8fCBOdW1iZXIodGhpcy52YWx1ZSkgPiBOdW1iZXIodGhpcy5taW4pKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXN0b21TdGVwICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5sYXN0U3RlcCA9XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VGbG9hdChkZWZhdWx0U3RlcC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KSkgK1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQodGhpcy5jdXN0b21TdGVwLnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpKSAtXHJcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VGbG9hdChkZWZhdWx0U3RlcC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY291bnQgPSBwYXJzZUZsb2F0KHRoaXMudG1wKSAtIHRoaXMubGFzdFN0ZXA7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy50bXAgPSBwYXJzZUZsb2F0KHRoaXMudmFsdWUucmVwbGFjZSgvLC9nLCAnJykpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gcGFyc2VGbG9hdCh0aGlzLnRtcCkgLSBkZWZhdWx0U3RlcDtcclxuICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY291bnQudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5taW4gPT09IG51bGwgfHwgTnVtYmVyKHRoaXMudmFsdWUpID4gcGFyc2VJbnQodGhpcy5taW4udG9TdHJpbmcoKSkpIHtcclxuICAgICAgICAgICAgICB0aGlzLnRtcCA9ICt0aGlzLnZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnJyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb3VudCA9ICt0aGlzLnRtcCAtICt0aGlzLmludFN0ZXA7XHJcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY291bnQudG9TdHJpbmcoKS5yZXBsYWNlKC8sL2csICcnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
632
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNvcmV4L2NvbXBvbmVudHMvIiwic291cmNlcyI6WyJsaWIvbnVtYmVyLWJveC9udW1iZXItYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlJLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVFwRjtJQUEwQyx3Q0FBbUI7SUEwSjNELDhCQUFzQixHQUFzQixFQUFFLEdBQWU7UUFBN0QsWUFDRSxrQkFBTSxHQUFHLEVBQUUsR0FBRyxDQUFDLFNBRWhCO1FBSHFCLFNBQUcsR0FBSCxHQUFHLENBQW1CO1FBekpuQyxTQUFHLEdBQVcsSUFBSSxDQUFDO1FBQ25CLFNBQUcsR0FBVyxJQUFJLENBQUM7UUFHNUIsbUJBQWEsR0FBWSxLQUFLLENBQUM7UUFFL0Isa0JBQVksR0FBWSxLQUFLLENBQUM7UUFHOUIsaUJBQVcsR0FBWSxJQUFJLENBQUM7UUFHNUIsZ0JBQVUsR0FBWSxJQUFJLENBQUM7UUFHM0IsdUJBQWlCLEdBQVksS0FBSyxDQUFDO1FBRW5DLHdCQUFrQixHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFFM0MsZUFBUyxHQUFZLEtBQUssQ0FBQztRQUkzQixjQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGVBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0Isb0JBQWMsR0FBVyxDQUFDLENBQUM7UUFHM0IscUJB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Q0Y7SUFDSCxDQUFDOzs7Z0JBN2IwQixpQkFBaUI7Z0JBQU8sVUFBVTs7SUF6SnBEO1FBQVIsS0FBSyxFQUFFOztxREFBb0I7SUFDbkI7UUFBUixLQUFLLEVBQUU7O3FEQUFvQjtJQUc1QjtRQURDLEtBQUssRUFBRTs7K0RBQ3VCO0lBRS9CO1FBREMsS0FBSyxFQUFFOzs4REFDc0I7SUFHOUI7UUFEQyxLQUFLLEVBQUU7OzZEQUNvQjtJQUc1QjtRQURDLEtBQUssRUFBRTs7NERBQ21CO0lBRzNCO1FBREMsS0FBSyxFQUFFOzttRUFDMkI7SUFnQjFCO1FBQVIsS0FBSyxFQUFFOzt5REFBcUI7SUFDcEI7UUFBUixLQUFLLEVBQUU7OytEQUE4QjtJQUM3QjtRQUFSLEtBQUssRUFBRTs7NERBQTJCO0lBbEN4QixvQkFBb0I7UUFQaEMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLGVBQWU7WUFDekIsMnNFQUEwQztZQUMxQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtZQUMvQyxJQUFJLEVBQUUsRUFBSTtZQUNWLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxzQkFBb0IsRUFBRSxDQUFDO1NBQ3BGLENBQUM7eUNBMkoyQixpQkFBaUIsRUFBTyxVQUFVO09BMUpsRCxvQkFBb0IsQ0F3bEJoQztJQUFELDJCQUFDO0NBQUEsQUF4bEJELENBQTBDLG1CQUFtQixHQXdsQjVEO1NBeGxCWSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIENoYW5nZURldGVjdG9yUmVmLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQVhCYXNlVGV4dENvbXBvbmVudCwgQVhWYWxpZGF0YWJsZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXgtbnVtYmVyLWJveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL251bWJlci1ib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGhvc3Q6IHsgIH0sXHJcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWFZhbGlkYXRhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhOdW1iZXJCb3hDb21wb25lbnQgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFYTnVtYmVyQm94Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlVGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgbWluOiBudW1iZXIgPSBudWxsO1xyXG4gIEBJbnB1dCgpIG1heDogbnVtYmVyID0gbnVsbDtcclxuXHJcbiAgQElucHV0KClcclxuICBzaG93U2VwYXJhdG9yOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBzaG93Q3VycmVuY3k6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBzaG93Q291bnRlcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2Nyb2xsV2VlbDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd0RvdWJsZUNvdW50ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgdXNlclF1ZXN0aW9uVXBkYXRlID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xyXG5cclxuICB1c2VyRWRpdGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgdG1wOiBhbnk7XHJcbiAgY291bnQ6IG51bWJlcjtcclxuICBmaW5kRG90czogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGZpbmRNaW51czogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGN1cnNvclBvc2l0aW9uOiBudW1iZXIgPSAwO1xyXG4gIGRvdFBvc2l0aW9uOiBudW1iZXI7XHJcbiAgdGV4dFZhbHVlOiBzdHJpbmc7XHJcbiAgZGVjaW1hbENvbnN0YW50OiBudW1iZXIgPSAwLjE7XHJcbiAgbGFzdFN0ZXA6IG51bWJlciA9IG51bGw7XHJcblxyXG4gIEBJbnB1dCgpIGludFN0ZXA6IG51bWJlciA9IDE7XHJcbiAgQElucHV0KCkgZGVjaW1hbE51bWJlcjogbnVtYmVyID0gbnVsbDtcclxuICBASW5wdXQoKSBjdXN0b21TdGVwOiBudW1iZXIgPSBudWxsO1xyXG5cclxuICBwcml2YXRlIF92YWx1ZXM6IHN0cmluZztcclxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWVzO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHZhbHVlKHY6IHN0cmluZykge1xyXG4gICAgaWYgKHYgPT09ICctJykge1xyXG4gICAgICB0aGlzLnRleHRWYWx1ZSA9ICctJztcclxuICAgICAgdGhpcy5fdmFsdWVzID0gJy0nO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHYgPT09ICcnIHx8IHYgPT0gbnVsbCB8fCB2ID09PSB1bmRlZmluZWQgPyB0cnVlIDogaXNOYU4oTnVtYmVyKHYudG9TdHJpbmcoKS5yZXBsYWNlKC8sL2csICcnKSkpID09PSBmYWxzZSkge1xyXG4gICAgICAgIGlmICh2ID09PSAnJyB8fCB2ID09IG51bGwgfHwgdiA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICcnO1xyXG4gICAgICAgICAgY29uc3Qgb2xkID0gdGhpcy5fdmFsdWVzO1xyXG4gICAgICAgICAgdGhpcy5fdmFsdWVzID0gbnVsbDtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5fdmFsdWVzICE9PSBvbGQpIHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkLmVtaXQoe1xyXG4gICAgICAgICAgICAgIGlzVXNlckNoYW5nZTogdGhpcy51c2VyRWRpdGUsXHJcbiAgICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiBudWxsLFxyXG4gICAgICAgICAgICAgIG9sZFZhbHVlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zaG93U2VwYXJhdG9yICYmIG9sZFxyXG4gICAgICAgICAgICAgICAgICA/IG9sZCA9PT0gJy0nXHJcbiAgICAgICAgICAgICAgICAgICAgPyBudWxsXHJcbiAgICAgICAgICAgICAgICAgICAgOiBOdW1iZXIob2xkLnJlcGxhY2UoLywvZywgJycpKVxyXG4gICAgICAgICAgICAgICAgICA6IG9sZCA9PT0gbnVsbCB8fCBvbGQgPT09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICAgICAgICA/IG51bGxcclxuICAgICAgICAgICAgICAgICAgOiBvbGQgPT09ICctJ1xyXG4gICAgICAgICAgICAgICAgICA/IG51bGxcclxuICAgICAgICAgICAgICAgICAgOiBOdW1iZXIob2xkKSxcclxuICAgICAgICAgICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy51c2VyRWRpdGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICB0aGlzLmNsZWFyVmFsaWRhdGlvblN0eWxlKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHYgPSB2LnRvU3RyaW5nKCk7XHJcblxyXG4gICAgICAgICAgLy8gdGhpcy5hZGRDb21tYXModi50b1N0cmluZygpKTtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy5zaG93U2VwYXJhdG9yICYmIHYgPyB0aGlzLmFkZENvbW1hcyh2LnRvU3RyaW5nKCkpIDogdjtcclxuXHJcbiAgICAgICAgICAvLyBpZiAodGhpcy50ZXh0VmFsdWUuaW5kZXhPZignLicpICE9PSAtMSkge1xyXG4gICAgICAgICAgLy8gICAvLyBjb25zdCBkb3R0dD0gKHRoaXMudGV4dFZhbHVlLmxlbmd0aC0xKSAtIHRoaXMudGV4dFZhbHVlLmluZGV4T2YoJy4nKVxyXG4gICAgICAgICAgLy8gICBpZiAodGhpcy50ZXh0VmFsdWUubGVuZ3RoIC0gMSAtIHRoaXMudGV4dFZhbHVlLmluZGV4T2YoJy4nKSA8IHRoaXMuZGVjaW1hbE51bWJlcikge1xyXG4gICAgICAgICAgLy8gICAgIGNvbnN0IGEgPSB0aGlzLmRlY2ltYWxOdW1iZXIgLSAodGhpcy50ZXh0VmFsdWUubGVuZ3RoIC0gMSAtIHRoaXMudGV4dFZhbHVlLmluZGV4T2YoJy4nKSk7XHJcbiAgICAgICAgICAvLyAgICAgY29uc3QgeiA9ICcwJztcclxuICAgICAgICAgIC8vICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudGV4dFZhbHVlICsgJzAnO1xyXG4gICAgICAgICAgLy8gICB9XHJcbiAgICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuX3ZhbHVlcykge1xyXG4gICAgICAgICAgICBjb25zdCBvbGQgPSB0aGlzLl92YWx1ZXM7XHJcbiAgICAgICAgICAgIGlmIChvbGQudG9TdHJpbmcoKS5zZWFyY2goL1xcLi9nKSAhPT0gdi50b1N0cmluZygpLnNlYXJjaCgvXFwuL2cpKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPD0gb2xkLnNlYXJjaCgvXFwuL2cpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gdi5zZWFyY2goL1xcLi9nKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IHYubGVuZ3RoO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHYgIT09IHRoaXMuX3ZhbHVlcykge1xyXG4gICAgICAgICAgICBjb25zdCBvbGQgPSB0aGlzLl92YWx1ZXM7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlcyA9IHY7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnNob3dTZXBhcmF0b3IgJiYgdiA/IE51bWJlcih2LnJlcGxhY2UoLywvZywgJycpKSA6IE51bWJlcih2KSk7XHJcbiAgICAgICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZWQuZW1pdCh7XHJcbiAgICAgICAgICAgICAgaXNVc2VyQ2hhbmdlOiB0aGlzLnVzZXJFZGl0ZSxcclxuICAgICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuc2hvd1NlcGFyYXRvciAmJiB2ID8gTnVtYmVyKHYucmVwbGFjZSgvLC9nLCAnJykpIDogTnVtYmVyKHYpLFxyXG4gICAgICAgICAgICAgIG9sZFZhbHVlOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zaG93U2VwYXJhdG9yICYmIG9sZFxyXG4gICAgICAgICAgICAgICAgICA/IG9sZCA9PT0gJy0nXHJcbiAgICAgICAgICAgICAgICAgICAgPyBudWxsXHJcbiAgICAgICAgICAgICAgICAgICAgOiBOdW1iZXIob2xkLnJlcGxhY2UoLywvZywgJycpKVxyXG4gICAgICAgICAgICAgICAgICA6IG9sZCA9PT0gbnVsbCB8fCBvbGQgPT09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICAgICAgICA/IG51bGxcclxuICAgICAgICAgICAgICAgICAgOiBvbGQgPT09ICctJ1xyXG4gICAgICAgICAgICAgICAgICA/IG51bGxcclxuICAgICAgICAgICAgICAgICAgOiBOdW1iZXIob2xkKSxcclxuICAgICAgICAgICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy51c2VyRWRpdGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICB0aGlzLmNsZWFyVmFsaWRhdGlvblN0eWxlKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gJyc7XHJcbiAgICAgICAgdiA9IG51bGw7XHJcbiAgICAgICAgY29uc3Qgb2xkID0gdGhpcy5fdmFsdWVzO1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlcyA9IG51bGw7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl92YWx1ZXMgIT09IG9sZCkge1xyXG4gICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5lbWl0KHtcclxuICAgICAgICAgICAgaXNVc2VyQ2hhbmdlOiB0aGlzLnVzZXJFZGl0ZSxcclxuICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgICAgICB2YWx1ZTogbnVsbCxcclxuICAgICAgICAgICAgb2xkVmFsdWU6XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93U2VwYXJhdG9yICYmIG9sZFxyXG4gICAgICAgICAgICAgICAgPyBvbGQgPT09ICctJ1xyXG4gICAgICAgICAgICAgICAgICA/IG51bGxcclxuICAgICAgICAgICAgICAgICAgOiBOdW1iZXIob2xkLnJlcGxhY2UoLywvZywgJycpKVxyXG4gICAgICAgICAgICAgICAgOiBvbGQgPT09IG51bGwgfHwgb2xkID09PSB1bmRlZmluZWRcclxuICAgICAgICAgICAgICAgID8gbnVsbFxyXG4gICAgICAgICAgICAgICAgOiBvbGQgPT09ICctJ1xyXG4gICAgICAgICAgICAgICAgPyBudWxsXHJcbiAgICAgICAgICAgICAgICA6IE51bWJlcihvbGQpLFxyXG4gICAgICAgICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnVzZXJFZGl0ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgdGhpcy5jbGVhclZhbGlkYXRpb25TdHlsZSh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgICBzdXBlcihjZHIsIHJlZik7XHJcbiAgICB0aGlzLnRleHRBbGlnbiA9ICdsZWZ0JztcclxuICB9XHJcblxyXG4gIGFkZENvbW1hczIoeCkge1xyXG4gICAgcmV0dXJuIHgudG9TdHJpbmcoKS5yZXBsYWNlKC9cXEIoPz0oXFxkezN9KSsoPyFcXGQpKS9nLCAnLCcpO1xyXG4gIH1cclxuXHJcbiAgYWRkQ29tbWFzKG5TdHIpIHtcclxuICAgIG5TdHIgKz0gJyc7XHJcbiAgICBjb25zdCB4ID0gblN0ci5zcGxpdCgnLicpO1xyXG4gICAgbGV0IHgxID0geFswXTtcclxuICAgIGNvbnN0IHgyID0geC5sZW5ndGggPiAxID8gJy4nICsgeFsxXSA6ICcnO1xyXG4gICAgY29uc3Qgcmd4ID0gLyhcXGQrKShcXGR7M30pLztcclxuICAgIHdoaWxlIChyZ3gudGVzdCh4MSkpIHtcclxuICAgICAgeDEgPSB4MS5yZXBsYWNlKHJneCwgJyQxJyArICcsJyArICckMicpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHgxICsgeDI7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkID09PSBmYWxzZSkge1xyXG4gICAgICBpZiAodGhpcy5zY3JvbGxXZWVsID09PSB0cnVlKSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignd2hlZWwnLCAoZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZVdoZWVsKGUpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgNTAwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHRoaXMudmFsdWUgPSB0aGlzLm1pbi50b1N0cmluZygpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlV2hlZWwoZXZlbnQpIHtcclxuICAgIGlmICgoZXZlbnQgYXMgYW55KS53aGVlbERlbHRhID4gMCkge1xyXG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICd0cmFuc3BhcmVudCc7XHJcblxyXG4gICAgICB0aGlzLnVwU3RlcEhhbmRlbCgpO1xyXG4gICAgICB0aGlzLmRlbGF5U2VhcmNoKCk7XHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLnNldENhcmV0KCk7XHJcbiAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAnYXV0byc7XHJcbiAgICAgIH0sIDApO1xyXG4gICAgfVxyXG4gICAgaWYgKChldmVudCBhcyBhbnkpLndoZWVsRGVsdGEgPCAwKSB7XHJcbiAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ3RyYW5zcGFyZW50JztcclxuXHJcbiAgICAgIHRoaXMuZG93blN0ZXBIYW5kZWwoKTtcclxuICAgICAgdGhpcy5kZWxheVNlYXJjaCgpO1xyXG5cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRDYXJldCgpO1xyXG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ2F1dG8nO1xyXG4gICAgICB9LCAwKTtcclxuICAgIH1cclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUtleVByZXNzKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMudXNlckVkaXRlID0gdHJ1ZTtcclxuICAgIGNvbnN0IE51bWJlckRvdHBhdHRlcm4gPSAvWzAtOVxcLl0vZztcclxuICAgIGNvbnN0IE51bWJlck1pbnVzUGF0dGVybiA9IC9bMC05XFwtXS9nO1xyXG5cclxuICAgIGNvbnN0IGlucHV0Q2hhciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoZXZlbnQuY2hhckNvZGUpO1xyXG5cclxuICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUudG9TdHJpbmcoKS5tYXRjaCgvXFwuL2cpID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuZmluZERvdHMgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUudG9TdHJpbmcoKS5zZWFyY2goJy0nKSA9PT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmZpbmRNaW51cyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGdldCBjdXJzdXIgcG9zaXRpb24gd2hlbiBrZXkgcHJlc3NcclxuICAgIGlmICh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgfHwgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID09PSAwKSB7XHJcbiAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gKz0gMTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBjb250cm9sIGN1cnNvciB3aGVuIGluIGZpcnN0IEluZGV4XHJcbiAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA8PSAxKSB7XHJcbiAgICAgIGlmICghTnVtYmVyTWludXNQYXR0ZXJuLnRlc3QoaW5wdXRDaGFyKSkge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS5tYXRjaCgvXFwtL2cpKSB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gY29udHJvbCBjdXJzb3Igd2hlbiBpbiBhbm90aGVyIGluZGV4XHJcbiAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiAhPT0gMSkge1xyXG4gICAgICBpZiAoZXZlbnQua2V5Q29kZSAhPT0gOCAmJiAhTnVtYmVyRG90cGF0dGVybi50ZXN0KGlucHV0Q2hhcikpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIGZvciBjb250b3IgZGVjaW1hbCBmaWd1ciA9IDAgb3IgbnVsbFxyXG4gICAgICAgIGlmICh0aGlzLmRlY2ltYWxOdW1iZXIgPT09IG51bGwgfHwgdGhpcy5kZWNpbWFsTnVtYmVyID09PSAwKSB7XHJcbiAgICAgICAgICBpZiAoaW5wdXRDaGFyID09PSAnLicpIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY29udHJvbCBkZWNpbWFsIG51bWJlciAoZmlndXIgb2YgZGVjaW1hbClcclxuICAgICAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLnRvU3RyaW5nKCkubWF0Y2goL1xcLi9nKSkge1xyXG4gICAgICAgICAgY29uc3QgZmlndXJlQWZ0ZXJEb3QgPSB0aGlzLnZhbHVlLmxlbmd0aCAtIHRoaXMudmFsdWUuaW5kZXhPZignLicpO1xyXG4gICAgICAgICAgY29uc3QgZG90SW5kZXggPSB0aGlzLnZhbHVlLmluZGV4T2YoJy4nKTtcclxuICAgICAgICAgIGlmIChkb3RJbmRleCAtIDEgKyBkb3RJbmRleCArIGZpZ3VyZUFmdGVyRG90ID4gZG90SW5kZXggLSAxICsgZG90SW5kZXggKyB0aGlzLmRlY2ltYWxOdW1iZXIgJiYgdGhpcy5jdXJzb3JQb3NpdGlvbiAtIDEgPiBkb3RJbmRleCkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBjb250cm9sICcuJyBpbnB1dFxyXG4gICAgICAgIGlmIChpbnB1dENoYXIgPT09ICcuJykge1xyXG4gICAgICAgICAgY29uc3QgbGFzdENoYXIgPSB0aGlzLnZhbHVlLnRvU3RyaW5nKCkuY2hhckF0KHRoaXMudmFsdWUubGVuZ3RoIC0gMSk7XHJcbiAgICAgICAgICAvLyBjb250cm9sIC4gd2hlbiBsYXN0IGNoYXIgaXMgLVxyXG4gICAgICAgICAgaWYgKGxhc3RDaGFyLnRvU3RyaW5nKCkubWF0Y2goL1xcLS9nKSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gY29udHJvbCAuIHdoZW4gZmluZCBmaXJzdCBkb3RcclxuICAgICAgICAgIGlmICh0aGlzLmZpbmREb3RzKSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmZpbmREb3RzID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuZmluZE1pbnVzID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUtleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICB0aGlzLnVzZXJFZGl0ZSA9IHRydWU7XHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICdhdXRvJztcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XHJcbiAgICAgIHRoaXMuc2V0Q2FyZXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICB0aGlzLnNldENhcmV0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gbGVmdCAmIHJpZ2h0IEJ1dHRvblxyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93TGVmdCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dSaWdodCcpIHtcclxuICAgICAgaWYgKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCB8fCB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT09IDApIHtcclxuICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gaG9tZSBidXR0b25cclxuICAgIGlmIChldmVudC5rZXkgPT09ICdIb21lJykge1xyXG4gICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gMDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBlbmQgYnV0dG9uXHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW5kJykge1xyXG4gICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gdGhpcy52YWx1ZS5sZW5ndGg7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gc2V0IGRlbGF5IHdpdGggcnhqc1xyXG4gICAgdGhpcy5kZWxheVNlYXJjaCgpO1xyXG5cclxuICAgIC8vIGJhY2tzcGFjZSBDb250cm9sXHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJykge1xyXG4gICAgICBpZiAodGhpcy52YWx1ZSA9PT0gbnVsbCB8fCB0aGlzLnZhbHVlLmxlbmd0aCA8PSAwKSB7XHJcbiAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDA7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiAtPSAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICB0aGlzLnVzZXJFZGl0ZSA9IHRydWU7XHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnJlYWRvbmx5ID09PSBmYWxzZSkge1xyXG4gICAgICBjb25zdCBjb3VudEFmdGVyRG90ID1cclxuICAgICAgICB0aGlzLnZhbHVlICE9PSBudWxsICYmIHRoaXMudmFsdWUgIT09ICcnICYmIHRoaXMudmFsdWUgIT09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgPyB0aGlzLnZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoIC0gMSAtIHRoaXMudmFsdWUudG9TdHJpbmcoKS5pbmRleE9mKCcuJylcclxuICAgICAgICAgIDogMDtcclxuICAgICAgY29uc3QgZGVmYXVsdFN0ZXA6IG51bWJlciA9XHJcbiAgICAgICAgY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IE1hdGgucG93KHRoaXMuZGVjaW1hbENvbnN0YW50LCB0aGlzLmRlY2ltYWxOdW1iZXIpIDogTWF0aC5wb3codGhpcy5kZWNpbWFsQ29uc3RhbnQsIGNvdW50QWZ0ZXJEb3QpO1xyXG4gICAgICAvLyBzdGVwIGFuZCArLSB3aXRoIHVwIGtleSBhbmQgZG93biBrZXlcclxuICAgICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS50b1N0cmluZygpLm1hdGNoKC9cXC4vZykpIHtcclxuICAgICAgICB0aGlzLmRvdFBvc2l0aW9uID0gdGhpcy52YWx1ZS5pbmRleE9mKCcuJyk7XHJcbiAgICAgICAgaWYgKHRoaXMuZG90UG9zaXRpb24gPj0gdGhpcy5jdXJzb3JQb3NpdGlvbikge1xyXG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcclxuICAgICAgICAgICAgdGhpcy50bXAgPSBwYXJzZUZsb2F0KHRoaXMudmFsdWUucmVwbGFjZSgvLC9nLCAnJykpO1xyXG4gICAgICAgICAgICB0aGlzLmNvdW50ID0gdGhpcy50bXAgLSArdGhpcy5pbnRTdGVwO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5taW4gPT09IG51bGwgfHwgTnVtYmVyKHRoaXMuY291bnQpID49IE51bWJlcih0aGlzLm1pbikpIHtcclxuICAgICAgICAgICAgICAvLyB0aGlzLnZhbHVlID0gdGhpcy5jb3VudC50b0ZpeGVkKHRoaXMuZGVjaW1hbE51bWJlcik7XHJcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY291bnQudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcclxuICAgICAgICAgICAgdGhpcy50bXAgPSBwYXJzZUZsb2F0KHRoaXMudmFsdWUucmVwbGFjZSgvLC9nLCAnJykpO1xyXG4gICAgICAgICAgICB0aGlzLmNvdW50ID0gdGhpcy50bXAgKyArdGhpcy5pbnRTdGVwO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXggPT09IG51bGwgfHwgTnVtYmVyKHRoaXMuY291bnQpIDw9IE51bWJlcih0aGlzLm1heCkpIHtcclxuICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5jb3VudC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5taW4gPT09IG51bGwgfHwgTnVtYmVyKHRoaXMudmFsdWUpID4gTnVtYmVyKHRoaXMubWluKSkge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmN1c3RvbVN0ZXAgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGFzdFN0ZXAgPVxyXG4gICAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KGRlZmF1bHRTdGVwLnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpKSArXHJcbiAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQodGhpcy5jdXN0b21TdGVwLnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpKSAtXHJcbiAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQoZGVmYXVsdFN0ZXAudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb3VudCA9IHBhcnNlRmxvYXQodGhpcy50bXApIC0gdGhpcy5sYXN0U3RlcDtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRtcCA9IHBhcnNlRmxvYXQodGhpcy52YWx1ZS5yZXBsYWNlKC8sL2csICcnKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gcGFyc2VGbG9hdCh0aGlzLnRtcCkgLSBkZWZhdWx0U3RlcDtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXggPT09IG51bGwgfHwgTnVtYmVyKHRoaXMudmFsdWUpIDwgTnVtYmVyKHRoaXMubWF4KSkge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmN1c3RvbVN0ZXAgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGFzdFN0ZXAgPVxyXG4gICAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KGRlZmF1bHRTdGVwLnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpKSArXHJcbiAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQodGhpcy5jdXN0b21TdGVwLnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpKSAtXHJcbiAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQoZGVmYXVsdFN0ZXAudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb3VudCA9IHBhcnNlRmxvYXQodGhpcy50bXApICsgdGhpcy5sYXN0U3RlcDtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRtcCA9IHBhcnNlRmxvYXQodGhpcy52YWx1ZS5yZXBsYWNlKC8sL2csICcnKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gcGFyc2VGbG9hdCh0aGlzLnRtcCkgKyBkZWZhdWx0U3RlcDtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICAgICAgaWYgKHRoaXMubWluICE9IG51bGwgJiYgdGhpcy52YWx1ZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm1pbi50b1N0cmluZygpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWluID09PSBudWxsIHx8IE51bWJlcih0aGlzLnZhbHVlKSA+IHBhcnNlSW50KHRoaXMubWluLnRvU3RyaW5nKCkpKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMudmFsdWUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9ICcwJztcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50bXAgPSArdGhpcy52YWx1ZS50b1N0cmluZygpLnJlcGxhY2UoLywvZywgJycpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb3VudCA9ICt0aGlzLnRtcCAtICt0aGlzLmludFN0ZXA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5jb3VudC50b1N0cmluZygpLnJlcGxhY2UoLywvZywgJycpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcclxuICAgICAgICAgIGlmICh0aGlzLm1pbiAhPSBudWxsICYmIHRoaXMudmFsdWUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5taW4udG9TdHJpbmcoKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1heCA9PT0gbnVsbCB8fCBOdW1iZXIodGhpcy52YWx1ZSkgPCBwYXJzZUludCh0aGlzLm1heC50b1N0cmluZygpKSkge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLnZhbHVlID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSAnMCc7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudG1wID0gdGhpcy52YWx1ZS50b1N0cmluZygpLnJlcGxhY2UoLywvZywgJycpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb3VudCA9ICt0aGlzLnRtcCArICt0aGlzLmludFN0ZXA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5jb3VudC50b1N0cmluZygpLnJlcGxhY2UoLywvZywgJycpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHN0b3Agd2hlbiBrZXlkb3duXHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICd0cmFuc3BhcmVudCc7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDbGljaygpIHtcclxuICAgIGlmICh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgfHwgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID09PSAwKSB7XHJcbiAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkZWxheVNlYXJjaCgpIHtcclxuICAgIE9ic2VydmFibGUuY3JlYXRlKChvYnNlcnZlcikgPT4ge1xyXG4gICAgICB0aGlzLnVzZXJRdWVzdGlvblVwZGF0ZSA9IG9ic2VydmVyO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnVzZXJRdWVzdGlvblVwZGF0ZS5waXBlKGRlYm91bmNlVGltZSgxMDAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKCh0ZXh0OiBzdHJpbmcpID0+IHRoaXMuY2hlY2tNaW5NYXgodGV4dCkpO1xyXG4gICAgLy8gdGhpcy51c2VyUXVlc3Rpb25VcGRhdGUubmV4dCgoZS50YXJnZXQgYXMgYW55KS52YWx1ZSk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy51c2VyUXVlc3Rpb25VcGRhdGUubmV4dCh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xyXG4gICAgfSwgNTApO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tNaW5NYXgodGV4dCkge1xyXG4gICAgaWYgKHRoaXMubWluICE9PSBudWxsKSB7XHJcbiAgICAgIGlmICgrdGV4dCA8IHRoaXMubWluKSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9ICcnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tYXggIT09IG51bGwpIHtcclxuICAgICAgaWYgKCt0ZXh0ID4gdGhpcy5tYXgpIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gJyc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRvR2V0Q2FyZXRQb3NpdGlvbihjdHJsKSB7XHJcbiAgICBsZXQgQ2FyZXRQb3MgPSAwO1xyXG4gICAgaWYgKGN0cmwuc2VsZWN0aW9uU3RhcnQgfHwgY3RybC5zZWxlY3Rpb25TdGFydCA9PT0gMCkge1xyXG4gICAgICBDYXJldFBvcyA9IGN0cmwuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICAgIHJldHVybiBDYXJldFBvcztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldENhcmV0UG9zaXRpb24oY3RybCwgcG9zKSB7XHJcbiAgICBpZiAoY3RybC5zZXRTZWxlY3Rpb25SYW5nZSkge1xyXG4gICAgICBjdHJsLmZvY3VzKCk7XHJcbiAgICAgIGN0cmwuc2V0U2VsZWN0aW9uUmFuZ2UocG9zLCBwb3MpO1xyXG4gICAgfSBlbHNlIGlmIChjdHJsLmNyZWF0ZVRleHRSYW5nZSkge1xyXG4gICAgICBjb25zdCByYW5nZSA9IGN0cmwuY3JlYXRlVGV4dFJhbmdlKCk7XHJcbiAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xyXG4gICAgICByYW5nZS5tb3ZlRW5kKCdjaGFyYWN0ZXInLCBwb3MpO1xyXG4gICAgICByYW5nZS5tb3ZlU3RhcnQoJ2NoYXJhY3RlcicsIHBvcyk7XHJcbiAgICAgIHJhbmdlLnNlbGVjdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Q2FyZXQoKSB7XHJcbiAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCB0aGlzLmN1cnNvclBvc2l0aW9uKTtcclxuICB9XHJcblxyXG4gIHVwU3RlcEhhbmRlbCgpIHtcclxuICAgIHRoaXMudXNlckVkaXRlID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLm1pbiAhPSBudWxsICYmIHRoaXMudmFsdWUgPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5taW4udG9TdHJpbmcoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLnJlYWRvbmx5ID09PSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnN0IGNvdW50QWZ0ZXJEb3QgPVxyXG4gICAgICAgICAgdGhpcy52YWx1ZSAhPT0gbnVsbCAmJiB0aGlzLnZhbHVlICE9PSAnJyAmJiB0aGlzLnZhbHVlICE9PSB1bmRlZmluZWRcclxuICAgICAgICAgICAgPyB0aGlzLnZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoIC0gMSAtIHRoaXMudmFsdWUudG9TdHJpbmcoKS5pbmRleE9mKCcuJylcclxuICAgICAgICAgICAgOiAwO1xyXG4gICAgICAgIGlmICh0aGlzLnZhbHVlID09IG51bGwpIHtcclxuICAgICAgICAgIHRoaXMudmFsdWUgPSAnMCc7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IGRlZmF1bHRTdGVwOiBudW1iZXIgPVxyXG4gICAgICAgICAgICBjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gTWF0aC5wb3codGhpcy5kZWNpbWFsQ29uc3RhbnQsIHRoaXMuZGVjaW1hbE51bWJlcikgOiBNYXRoLnBvdyh0aGlzLmRlY2ltYWxDb25zdGFudCwgY291bnRBZnRlckRvdCk7XHJcbiAgICAgICAgICB0aGlzLmRvdFBvc2l0aW9uID0gdGhpcy52YWx1ZS50b1N0cmluZygpLmluZGV4T2YoJy4nKSArIDE7XHJcbiAgICAgICAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLnRvU3RyaW5nKCkubWF0Y2goL1xcLi9nKSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5kb3RQb3NpdGlvbiA+IHRoaXMuY3Vyc29yUG9zaXRpb24pIHtcclxuICAgICAgICAgICAgICB0aGlzLnRtcCA9IHBhcnNlRmxvYXQodGhpcy52YWx1ZS5yZXBsYWNlKC8sL2csICcnKSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb3VudCA9IHRoaXMudG1wICsgK3RoaXMuaW50U3RlcDtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5tYXggPT09IG51bGwgfHwgTnVtYmVyKHRoaXMuY291bnQpIDw9IHRoaXMubWF4KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5jb3VudC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMubWF4ID09PSBudWxsIHx8IE51bWJlcih0aGlzLnZhbHVlKSA8IE51bWJlcih0aGlzLm1heCkpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1c3RvbVN0ZXAgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy50bXAgPSBwYXJzZUZsb2F0KHRoaXMudmFsdWUucmVwbGFjZSgvLC9nLCAnJykpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmxhc3RTdGVwID1cclxuICAgICAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KGRlZmF1bHRTdGVwLnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpKSArXHJcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VGbG9hdCh0aGlzLmN1c3RvbVN0ZXAudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkpIC1cclxuICAgICAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KGRlZmF1bHRTdGVwLnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jb3VudCA9IHBhcnNlRmxvYXQodGhpcy50bXApICsgdGhpcy5sYXN0U3RlcDtcclxuICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuY291bnQudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkucmVwbGFjZSgvLC9nLCAnJyk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnRtcCA9IHBhcnNlRmxvYXQodGhpcy52YWx1ZS5yZXBsYWNlKC8sL2csICcnKSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY291bnQgPSBwYXJzZUZsb2F0KHRoaXMudG1wKSArIGRlZmF1bHRTdGVwO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5jb3VudC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KS5yZXBsYWNlKC8sL2csICcnKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1heCA9PT0gbnVsbCB8fCBOdW1iZXIodGhpcy52YWx1ZSkgPCBwYXJzZUludCh0aGlzLm1heC50b1N0cmluZygpKSkge1xyXG4gICAgICAgICAgICAgIHRoaXMudG1wID0gdGhpcy52YWx1ZS50b1N0cmluZygpLnJlcGxhY2UoLywvZywgJycpO1xyXG4gICAgICAgICAgICAgIHRoaXMuY291bnQgPSArdGhpcy50bXAgKyArdGhpcy5pbnRTdGVwO1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5jb3VudC50b1N0cmluZygpLnJlcGxhY2UoLywvZywgJycpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkb3duU3RlcEhhbmRlbCgpIHtcclxuICAgIHRoaXMudXNlckVkaXRlID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLm1pbiAhPSBudWxsICYmIHRoaXMudmFsdWUgPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5taW4udG9TdHJpbmcoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLnJlYWRvbmx5ID09PSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnN0IGNvdW50QWZ0ZXJEb3QgPVxyXG4gICAgICAgICAgdGhpcy52YWx1ZSAhPT0gbnVsbCAmJiB0aGlzLnZhbHVlICE9PSAnJyAmJiB0aGlzLnZhbHVlICE9PSB1bmRlZmluZWRcclxuICAgICAgICAgICAgPyB0aGlzLnZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoIC0gMSAtIHRoaXMudmFsdWUudG9TdHJpbmcoKS5pbmRleE9mKCcuJylcclxuICAgICAgICAgICAgOiAwO1xyXG4gICAgICAgIGlmICh0aGlzLnZhbHVlID09IG51bGwpIHtcclxuICAgICAgICAgIHRoaXMudmFsdWUgPSAnMCc7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IGRlZmF1bHRTdGVwOiBudW1iZXIgPVxyXG4gICAgICAgICAgICBjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gTWF0aC5wb3codGhpcy5kZWNpbWFsQ29uc3RhbnQsIHRoaXMuZGVjaW1hbE51bWJlcikgOiBNYXRoLnBvdyh0aGlzLmRlY2ltYWxDb25zdGFudCwgY291bnRBZnRlckRvdCk7XHJcbiAgICAgICAgICB0aGlzLmRvdFBvc2l0aW9uID0gdGhpcy52YWx1ZS50b1N0cmluZygpLmluZGV4T2YoJy4nKSArIDE7XHJcbiAgICAgICAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLnRvU3RyaW5nKCkubWF0Y2goL1xcLi9nKSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5kb3RQb3NpdGlvbiA+IHRoaXMuY3Vyc29yUG9zaXRpb24pIHtcclxuICAgICAgICAgICAgICB0aGlzLnRtcCA9IHBhcnNlRmxvYXQodGhpcy52YWx1ZS5yZXBsYWNlKC8sL2csICcnKSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb3VudCA9IHBhcnNlRmxvYXQodGhpcy52YWx1ZS5yZXBsYWNlKC8sL2csICcnKSkgLSArdGhpcy5pbnRTdGVwO1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLm1pbiA9PT0gbnVsbCB8fCBOdW1iZXIodGhpcy5jb3VudCkgPj0gdGhpcy5taW4pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpLnJlcGxhY2UoLywvZywgJycpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5taW4gPT09IG51bGwgfHwgTnVtYmVyKHRoaXMudmFsdWUpID4gTnVtYmVyKHRoaXMubWluKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VzdG9tU3RlcCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnRtcCA9IHBhcnNlRmxvYXQodGhpcy52YWx1ZS5yZXBsYWNlKC8sL2csICcnKSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMubGFzdFN0ZXAgPVxyXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQoZGVmYXVsdFN0ZXAudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkpICtcclxuICAgICAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KHRoaXMuY3VzdG9tU3RlcC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KSkgLVxyXG4gICAgICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQoZGVmYXVsdFN0ZXAudG9GaXhlZChjb3VudEFmdGVyRG90ID4gdGhpcy5kZWNpbWFsTnVtYmVyID8gdGhpcy5kZWNpbWFsTnVtYmVyIDogY291bnRBZnRlckRvdCkpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gcGFyc2VGbG9hdCh0aGlzLnRtcCkgLSB0aGlzLmxhc3RTdGVwO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5jb3VudC50b0ZpeGVkKGNvdW50QWZ0ZXJEb3QgPiB0aGlzLmRlY2ltYWxOdW1iZXIgPyB0aGlzLmRlY2ltYWxOdW1iZXIgOiBjb3VudEFmdGVyRG90KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudG1wID0gcGFyc2VGbG9hdCh0aGlzLnZhbHVlLnJlcGxhY2UoLywvZywgJycpKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jb3VudCA9IHBhcnNlRmxvYXQodGhpcy50bXApIC0gZGVmYXVsdFN0ZXA7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvRml4ZWQoY291bnRBZnRlckRvdCA+IHRoaXMuZGVjaW1hbE51bWJlciA/IHRoaXMuZGVjaW1hbE51bWJlciA6IGNvdW50QWZ0ZXJEb3QpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWluID09PSBudWxsIHx8IE51bWJlcih0aGlzLnZhbHVlKSA+IHBhcnNlSW50KHRoaXMubWluLnRvU3RyaW5nKCkpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50bXAgPSArdGhpcy52YWx1ZS50b1N0cmluZygpLnJlcGxhY2UoLywvZywgJycpO1xyXG4gICAgICAgICAgICAgIHRoaXMuY291bnQgPSArdGhpcy50bXAgLSArdGhpcy5pbnRTdGVwO1xyXG4gICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmNvdW50LnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -33,7 +33,7 @@ var AXPasswordBoxComponent = /** @class */ (function (_super) {
33
33
  template: "<div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\">\r\n <div class=\"ax items-wrapper\">\r\n <ng-content select=\"[start]\">\r\n </ng-content>\r\n </div>\r\n <div class=\"content\" #content>\r\n <div class=\"ax input form-control {{size}}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\" [class.icon]=\"icon\">\r\n <input #input [type]=\"type\" class=\"ax {{size}}\" value=\"{{value}}\" placeholder=\"{{placeholder}}\"\r\n [readonly]=\"readonly\" [disabled]=\"disabled\"\r\n [ngClass]=\"setTextAlign()\" [class.clear]=\"value && allowClear\">\r\n <i class=\"{{icon}}\" *ngIf=\"icon\"></i>\r\n </div>\r\n </div>\r\n <div class=\"ax items-wrapper\">\r\n <ax-button *ngIf=\"value && allowClear\" icon=\"fas fa-times\" type=\"danger blank\" (click)=\"clear()\" [tabIndex]=\"-1\"></ax-button>\r\n <ax-button [disabled]=\"disabled\" [icon]=\"eyeIcon\" type=\"light blank\" size=\"{{size}}\" (click)=\"handleShowPassword()\" [tabIndex]=\"-1\">\r\n <!-- <i class=\"\" [ngClass]=\"{'fa-eye': type === 'password','fa-eye-slash':type === 'text'}\"></i> -->\r\n </ax-button>\r\n <ng-content select=\"[end]\">\r\n </ng-content>\r\n </div>\r\n</div>\r\n",
34
34
  encapsulation: ViewEncapsulation.None,
35
35
  changeDetection: ChangeDetectionStrategy.OnPush,
36
- host: { style: 'display: contents;' },
36
+ host: {},
37
37
  providers: [{ provide: AXValidatableComponent, useExisting: AXPasswordBoxComponent_1 }]
38
38
  }),
39
39
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef])
@@ -41,4 +41,4 @@ var AXPasswordBoxComponent = /** @class */ (function (_super) {
41
41
  return AXPasswordBoxComponent;
42
42
  }(AXBaseTextComponent));
43
43
  export { AXPasswordBoxComponent };
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9wYXNzd29yZC1ib3gvcGFzc3dvcmQtYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBVXBGO0lBQTRDLDBDQUFtQjtJQUM3RCxnQ0FBc0IsR0FBc0IsRUFBRSxHQUFlO1FBQTdELFlBQ0Usa0JBQU0sR0FBRyxFQUFFLEdBQUcsQ0FBQyxTQUNoQjtRQUZxQixTQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUk1QyxVQUFJLEdBQXdCLFVBQVUsQ0FBQztRQUN2QyxhQUFPLEdBQVcsWUFBWSxDQUFDOztJQUgvQixDQUFDOytCQUhVLHNCQUFzQjtJQVFqQyxtREFBa0IsR0FBbEI7UUFDRSxJQUFJLENBQUMsT0FBTyxHQUFHLGtCQUFrQixDQUFDO1FBQ2xDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUU7WUFDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7WUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQztTQUNuQzthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUM7WUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLENBQUM7U0FDN0I7SUFDSCxDQUFDOzs7Z0JBaEIwQixpQkFBaUI7Z0JBQU8sVUFBVTs7SUFEbEQsc0JBQXNCO1FBUmxDLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxpQkFBaUI7WUFDM0IsdXpDQUE0QztZQUM1QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtZQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtZQUMvQyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUU7WUFDckMsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLHdCQUFzQixFQUFFLENBQUM7U0FDdEYsQ0FBQzt5Q0FFMkIsaUJBQWlCLEVBQU8sVUFBVTtPQURsRCxzQkFBc0IsQ0FrQmxDO0lBQUQsNkJBQUM7Q0FBQSxBQWxCRCxDQUE0QyxtQkFBbUIsR0FrQjlEO1NBbEJZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFZpZXdFbmNhcHN1bGF0aW9uLCBDaGFuZ2VEZXRlY3RvclJlZiwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYQmFzZVRleHRDb21wb25lbnQsIEFYVmFsaWRhdGFibGVDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlL2VsZW1lbnQuY2xhc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC1wYXNzd29yZC1ib3gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wYXNzd29yZC1ib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgaG9zdDogeyBzdHlsZTogJ2Rpc3BsYXk6IGNvbnRlbnRzOycgfSxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYVmFsaWRhdGFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFBhc3N3b3JkQm94Q29tcG9uZW50IH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFBhc3N3b3JkQm94Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlVGV4dENvbXBvbmVudCB7XHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHJlZjogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIoY2RyLCByZWYpO1xyXG4gIH1cclxuXHJcbiAgdHlwZTogJ3RleHQnIHwgJ3Bhc3N3b3JkJyA9ICdwYXNzd29yZCc7XHJcbiAgZXllSWNvbjogc3RyaW5nID0gJ2ZhciBmYS1leWUnO1xyXG5cclxuICBoYW5kbGVTaG93UGFzc3dvcmQoKSB7XHJcbiAgICB0aGlzLmV5ZUljb24gPSAnZmFyIGZhLWV5ZS1zbGFzaCc7XHJcbiAgICBpZiAodGhpcy50eXBlID09PSAncGFzc3dvcmQnKSB7XHJcbiAgICAgIHRoaXMudHlwZSA9ICd0ZXh0JztcclxuICAgICAgdGhpcy5leWVJY29uID0gJ2ZhciBmYS1leWUtc2xhc2gnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50eXBlID0gJ3Bhc3N3b3JkJztcclxuICAgICAgdGhpcy5leWVJY29uID0gJ2ZhciBmYS1leWUnO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9wYXNzd29yZC1ib3gvcGFzc3dvcmQtYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBVXBGO0lBQTRDLDBDQUFtQjtJQUM3RCxnQ0FBc0IsR0FBc0IsRUFBRSxHQUFlO1FBQTdELFlBQ0Usa0JBQU0sR0FBRyxFQUFFLEdBQUcsQ0FBQyxTQUNoQjtRQUZxQixTQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUk1QyxVQUFJLEdBQXdCLFVBQVUsQ0FBQztRQUN2QyxhQUFPLEdBQVcsWUFBWSxDQUFDOztJQUgvQixDQUFDOytCQUhVLHNCQUFzQjtJQVFqQyxtREFBa0IsR0FBbEI7UUFDRSxJQUFJLENBQUMsT0FBTyxHQUFHLGtCQUFrQixDQUFDO1FBQ2xDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUU7WUFDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7WUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQztTQUNuQzthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUM7WUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLENBQUM7U0FDN0I7SUFDSCxDQUFDOzs7Z0JBaEIwQixpQkFBaUI7Z0JBQU8sVUFBVTs7SUFEbEQsc0JBQXNCO1FBUmxDLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxpQkFBaUI7WUFDM0IsdXpDQUE0QztZQUM1QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtZQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtZQUMvQyxJQUFJLEVBQUUsRUFBSTtZQUNWLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFdBQVcsRUFBRSx3QkFBc0IsRUFBRSxDQUFDO1NBQ3RGLENBQUM7eUNBRTJCLGlCQUFpQixFQUFPLFVBQVU7T0FEbEQsc0JBQXNCLENBa0JsQztJQUFELDZCQUFDO0NBQUEsQUFsQkQsQ0FBNEMsbUJBQW1CLEdBa0I5RDtTQWxCWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBWaWV3RW5jYXBzdWxhdGlvbiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWEJhc2VUZXh0Q29tcG9uZW50LCBBWFZhbGlkYXRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9lbGVtZW50LmNsYXNzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXgtcGFzc3dvcmQtYm94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcGFzc3dvcmQtYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGhvc3Q6IHsgIH0sXHJcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWFZhbGlkYXRhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhQYXNzd29yZEJveENvbXBvbmVudCB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhQYXNzd29yZEJveENvbXBvbmVudCBleHRlbmRzIEFYQmFzZVRleHRDb21wb25lbnQge1xyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLCByZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIHN1cGVyKGNkciwgcmVmKTtcclxuICB9XHJcblxyXG4gIHR5cGU6ICd0ZXh0JyB8ICdwYXNzd29yZCcgPSAncGFzc3dvcmQnO1xyXG4gIGV5ZUljb246IHN0cmluZyA9ICdmYXIgZmEtZXllJztcclxuXHJcbiAgaGFuZGxlU2hvd1Bhc3N3b3JkKCkge1xyXG4gICAgdGhpcy5leWVJY29uID0gJ2ZhciBmYS1leWUtc2xhc2gnO1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3Bhc3N3b3JkJykge1xyXG4gICAgICB0aGlzLnR5cGUgPSAndGV4dCc7XHJcbiAgICAgIHRoaXMuZXllSWNvbiA9ICdmYXIgZmEtZXllLXNsYXNoJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudHlwZSA9ICdwYXNzd29yZCc7XHJcbiAgICAgIHRoaXMuZXllSWNvbiA9ICdmYXIgZmEtZXllJztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -92,7 +92,7 @@ var AXSearchBoxComponent = /** @class */ (function (_super) {
92
92
  Component({
93
93
  selector: 'ax-search-box',
94
94
  template: "<div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\">\r\n <div class=\"ax items-wrapper\">\r\n <ng-content select=\"[start]\">\r\n </ng-content>\r\n </div>\r\n <div class=\"content\" #content>\r\n <div class=\"ax input form-control {{size}}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\"\r\n [class.icon]=\"icon\">\r\n <input #input type=\"text\" class=\"ax {{size}}\" [(ngModel)]=\"value\"\r\n (input)=\"onSearchChanged($event.target.value)\" [placeholder]=\"placeholder\" [readonly]=\"readonly\"\r\n [disabled]=\"disabled\" [ngClass]=\"setTextAlign()\" [class.clear]=\"value && allowClear\"\r\n (focus)=\"handleInputFocus($event)\" (blur)=\"handleInputBlur($event)\" (keyup)=\"handleKeyEvent($event)\"\r\n (keydown)=\"handleKeyEvent($event)\">\r\n <i class=\"{{icon}}\" *ngIf=\"icon\"></i>\r\n </div>\r\n </div>\r\n <div class=\"ax items-wrapper\">\r\n <ax-button [size]=\"size\" *ngIf=\"value && allowClear\" icon=\"far fa-times\" type=\"danger blank\" (click)=\"clear()\" [tabIndex]=\"-1\">\r\n </ax-button>\r\n <ax-button [size]=\"size\" type=\"light blank\" icon=\"far fa-search\" end (click)=\"click($event)\" [tabIndex]=\"-1\">\r\n </ax-button>\r\n <ng-content select=\"[end]\">\r\n </ng-content>\r\n </div>\r\n</div>",
95
- host: { style: 'display: contents;' },
95
+ host: {},
96
96
  changeDetection: ChangeDetectionStrategy.OnPush
97
97
  }),
98
98
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef])
@@ -100,4 +100,4 @@ var AXSearchBoxComponent = /** @class */ (function (_super) {
100
100
  return AXSearchBoxComponent;
101
101
  }(AXBaseTextComponent));
102
102
  export { AXSearchBoxComponent };
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9zZWFyY2hib3gvc2VhcmNoYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVU1RDtJQUEwQyx3Q0FBbUI7SUFVM0QsOEJBQXNCLEdBQXNCLEVBQUUsR0FBZTtRQUE3RCxZQUNFLGtCQUFNLEdBQUcsRUFBRSxHQUFHLENBQUMsU0FDaEI7UUFGcUIsU0FBRyxHQUFILEdBQUcsQ0FBbUI7UUFQckMsaUJBQVcsR0FBb0MsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFFNUYsbUJBQWEsR0FBb0MsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFHdkYsaUJBQVcsR0FBVyxXQUFXLENBQUM7UUE4Q2xDLFdBQUssR0FBVyxHQUFHLENBQUM7O0lBMUNwQixDQUFDO0lBSUQsc0JBQVcsc0NBQUk7YUFBZjtZQUNFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNwQixDQUFDO2FBQ0QsVUFBZ0IsQ0FBUztZQUN2QixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNwQixJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztnQkFDZixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztvQkFDcEIsU0FBUyxFQUFFLElBQUk7b0JBQ2YsS0FBSyxFQUFFLENBQUM7b0JBQ1IsUUFBUSxFQUFFLEdBQUc7aUJBQ2QsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDOzs7T0FYQTtJQWFELHVDQUFRLEdBQVI7UUFDRSxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsOENBQWUsR0FBZixVQUFnQixJQUFZO1FBQTVCLGlCQWVDO1FBZEMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUM5QixVQUFVLENBQUMsTUFBTSxDQUFDLFVBQUEsUUFBUTtnQkFFeEIsS0FBSSxDQUFDLG9CQUFvQixHQUFHLFFBQVEsQ0FBQztZQUN2QyxDQUFDLENBQUM7aUJBQ0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQzlCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2lCQUM1QixTQUFTLENBQUMsVUFBQSxDQUFDO2dCQUNWLEtBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO2dCQUNkLEtBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFPRCw2Q0FBYyxHQUFkLFVBQWUsQ0FBZ0I7UUFDN0IsOENBQThDO1FBQzlDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxvQ0FBSyxHQUFMLFVBQU0sQ0FBYTtRQUNqQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztZQUN0QixTQUFTLEVBQUUsSUFBSTtZQUNmLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWE7WUFDbkMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2pCLENBQUMsQ0FBQztRQUNILDZDQUE2QztJQUMvQyxDQUFDOztnQkE1RDBCLGlCQUFpQjtnQkFBTyxVQUFVOztJQVA3RDtRQURDLE1BQU0sRUFBRTtrQ0FDVyxZQUFZOzZEQUE0RDtJQUU1RjtRQURDLE1BQU0sRUFBRTtrQ0FDTSxZQUFZOytEQUE0RDtJQUd2RjtRQURDLEtBQUssRUFBRTs7NkRBQzBCO0lBUWxDO1FBREMsS0FBSyxFQUFFOzs7b0RBR1A7SUFvQ0Q7UUFEQyxLQUFLLEVBQUU7O3VEQUNZO0lBdERULG9CQUFvQjtRQU5oQyxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsZUFBZTtZQUN6QixrN0NBQXlDO1lBQ3pDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRTtZQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtTQUNoRCxDQUFDO3lDQVcyQixpQkFBaUIsRUFBTyxVQUFVO09BVmxELG9CQUFvQixDQXVFaEM7SUFBRCwyQkFBQztDQUFBLEFBdkVELENBQTBDLG1CQUFtQixHQXVFNUQ7U0F2RVksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBWEJhc2VUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9lbGVtZW50LmNsYXNzJztcclxuaW1wb3J0IHsgQVhCYXNlRXZlbnQsIEFYVmFsdWVFdmVudCB9IGZyb20gJy4uL2Jhc2UvZXZlbnRzLmNsYXNzJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LXNlYXJjaC1ib3gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2hib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIGhvc3Q6IHsgc3R5bGU6ICdkaXNwbGF5OiBjb250ZW50czsnIH0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYU2VhcmNoQm94Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlVGV4dENvbXBvbmVudCB7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyB0ZXh0Q2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYVmFsdWVFdmVudDxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhWYWx1ZUV2ZW50PGFueT4+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgb25CdXR0b25DbGljazogRXZlbnRFbWl0dGVyPEFYVmFsdWVFdmVudDxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhWYWx1ZUV2ZW50PGFueT4+KCk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICfYrNiz2KrYrNmIIC4uLic7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLCByZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIHN1cGVyKGNkciwgcmVmKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3RleHQ6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgdGV4dCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RleHQ7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgdGV4dCh2OiBzdHJpbmcpIHtcclxuICAgIGlmICh2ICE9PSB0aGlzLl90ZXh0KSB7XHJcbiAgICAgIGNvbnN0IG9sZCA9IHRoaXMuX3RleHQ7XHJcbiAgICAgIHRoaXMuX3RleHQgPSB2O1xyXG4gICAgICB0aGlzLnRleHRDaGFuZ2VkLmVtaXQoe1xyXG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICB2YWx1ZTogdixcclxuICAgICAgICBvbGRWYWx1ZTogb2xkXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gJyc7XHJcbiAgICB0aGlzLnRleHQgPSAnJztcclxuICB9XHJcblxyXG4gIG9uU2VhcmNoQ2hhbmdlZCh0ZXh0OiBzdHJpbmcpIHtcclxuICAgIGlmICghdGhpcy5zZWFyY2hDaGFuZ2VPYnNlcnZlcikge1xyXG4gICAgICBPYnNlcnZhYmxlLmNyZWF0ZShvYnNlcnZlciA9PiB7XHJcblxyXG4gICAgICAgIHRoaXMuc2VhcmNoQ2hhbmdlT2JzZXJ2ZXIgPSBvYnNlcnZlcjtcclxuICAgICAgfSlcclxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy5kZWxheSkpXHJcbiAgICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcclxuICAgICAgICAuc3Vic2NyaWJlKGMgPT4ge1xyXG4gICAgICAgICAgdGhpcy50ZXh0ID0gYztcclxuICAgICAgICAgIHRoaXMudmFsdWUgPSBjO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VhcmNoQ2hhbmdlT2JzZXJ2ZXIubmV4dCh0ZXh0KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGVsYXk6IG51bWJlciA9IDUwMDtcclxuXHJcbiAgcHJpdmF0ZSBzZWFyY2hDaGFuZ2VPYnNlcnZlcjogYW55O1xyXG5cclxuICBoYW5kbGVLZXlFdmVudChlOiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICAvLyAgdGhpcy5zZWFyY2hDaGFuZ2VPYnNlcnZlci5uZXh0KHRoaXMudGV4dCk7XHJcbiAgICB0aGlzLm9ua2V5LmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICBjbGljayhlOiBNb3VzZUV2ZW50KSB7XHJcbiAgICB0aGlzLm9uQnV0dG9uQ2xpY2suZW1pdCh7XHJcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgIHZhbHVlOiB0aGlzLnRleHRcclxuICAgIH0pO1xyXG4gICAgLy8gdGhpcy5zZWFyY2hDaGFuZ2VPYnNlcnZlci5uZXh0KHRoaXMudGV4dCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9zZWFyY2hib3gvc2VhcmNoYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVU1RDtJQUEwQyx3Q0FBbUI7SUFVM0QsOEJBQXNCLEdBQXNCLEVBQUUsR0FBZTtRQUE3RCxZQUNFLGtCQUFNLEdBQUcsRUFBRSxHQUFHLENBQUMsU0FDaEI7UUFGcUIsU0FBRyxHQUFILEdBQUcsQ0FBbUI7UUFQckMsaUJBQVcsR0FBb0MsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFFNUYsbUJBQWEsR0FBb0MsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFHdkYsaUJBQVcsR0FBVyxXQUFXLENBQUM7UUE4Q2xDLFdBQUssR0FBVyxHQUFHLENBQUM7O0lBMUNwQixDQUFDO0lBSUQsc0JBQVcsc0NBQUk7YUFBZjtZQUNFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNwQixDQUFDO2FBQ0QsVUFBZ0IsQ0FBUztZQUN2QixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNwQixJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztnQkFDZixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztvQkFDcEIsU0FBUyxFQUFFLElBQUk7b0JBQ2YsS0FBSyxFQUFFLENBQUM7b0JBQ1IsUUFBUSxFQUFFLEdBQUc7aUJBQ2QsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDOzs7T0FYQTtJQWFELHVDQUFRLEdBQVI7UUFDRSxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsOENBQWUsR0FBZixVQUFnQixJQUFZO1FBQTVCLGlCQWVDO1FBZEMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUM5QixVQUFVLENBQUMsTUFBTSxDQUFDLFVBQUEsUUFBUTtnQkFFeEIsS0FBSSxDQUFDLG9CQUFvQixHQUFHLFFBQVEsQ0FBQztZQUN2QyxDQUFDLENBQUM7aUJBQ0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQzlCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2lCQUM1QixTQUFTLENBQUMsVUFBQSxDQUFDO2dCQUNWLEtBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO2dCQUNkLEtBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFPRCw2Q0FBYyxHQUFkLFVBQWUsQ0FBZ0I7UUFDN0IsOENBQThDO1FBQzlDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxvQ0FBSyxHQUFMLFVBQU0sQ0FBYTtRQUNqQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztZQUN0QixTQUFTLEVBQUUsSUFBSTtZQUNmLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWE7WUFDbkMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2pCLENBQUMsQ0FBQztRQUNILDZDQUE2QztJQUMvQyxDQUFDOztnQkE1RDBCLGlCQUFpQjtnQkFBTyxVQUFVOztJQVA3RDtRQURDLE1BQU0sRUFBRTtrQ0FDVyxZQUFZOzZEQUE0RDtJQUU1RjtRQURDLE1BQU0sRUFBRTtrQ0FDTSxZQUFZOytEQUE0RDtJQUd2RjtRQURDLEtBQUssRUFBRTs7NkRBQzBCO0lBUWxDO1FBREMsS0FBSyxFQUFFOzs7b0RBR1A7SUFvQ0Q7UUFEQyxLQUFLLEVBQUU7O3VEQUNZO0lBdERULG9CQUFvQjtRQU5oQyxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsZUFBZTtZQUN6QixrN0NBQXlDO1lBQ3pDLElBQUksRUFBRSxFQUFJO1lBQ1YsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07U0FDaEQsQ0FBQzt5Q0FXMkIsaUJBQWlCLEVBQU8sVUFBVTtPQVZsRCxvQkFBb0IsQ0F1RWhDO0lBQUQsMkJBQUM7Q0FBQSxBQXZFRCxDQUEwQyxtQkFBbUIsR0F1RTVEO1NBdkVZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQVhCYXNlVGV4dENvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XHJcbmltcG9ydCB7IEFYQmFzZUV2ZW50LCBBWFZhbHVlRXZlbnQgfSBmcm9tICcuLi9iYXNlL2V2ZW50cy5jbGFzcyc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC1zZWFyY2gtYm94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBob3N0OiB7ICB9LFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFNlYXJjaEJveENvbXBvbmVudCBleHRlbmRzIEFYQmFzZVRleHRDb21wb25lbnQge1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgdGV4dENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWFZhbHVlRXZlbnQ8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYVmFsdWVFdmVudDxhbnk+PigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIG9uQnV0dG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxBWFZhbHVlRXZlbnQ8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYVmFsdWVFdmVudDxhbnk+PigpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAn2KzYs9iq2KzZiCAuLi4nO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgICBzdXBlcihjZHIsIHJlZik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90ZXh0OiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IHRleHQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90ZXh0O1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHRleHQodjogc3RyaW5nKSB7XHJcbiAgICBpZiAodiAhPT0gdGhpcy5fdGV4dCkge1xyXG4gICAgICBjb25zdCBvbGQgPSB0aGlzLl90ZXh0O1xyXG4gICAgICB0aGlzLl90ZXh0ID0gdjtcclxuICAgICAgdGhpcy50ZXh0Q2hhbmdlZC5lbWl0KHtcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgdmFsdWU6IHYsXHJcbiAgICAgICAgb2xkVmFsdWU6IG9sZFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy50ZXh0ID0gJyc7XHJcbiAgfVxyXG5cclxuICBvblNlYXJjaENoYW5nZWQodGV4dDogc3RyaW5nKSB7XHJcbiAgICBpZiAoIXRoaXMuc2VhcmNoQ2hhbmdlT2JzZXJ2ZXIpIHtcclxuICAgICAgT2JzZXJ2YWJsZS5jcmVhdGUob2JzZXJ2ZXIgPT4ge1xyXG5cclxuICAgICAgICB0aGlzLnNlYXJjaENoYW5nZU9ic2VydmVyID0gb2JzZXJ2ZXI7XHJcbiAgICAgIH0pXHJcbiAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuZGVsYXkpKVxyXG4gICAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXHJcbiAgICAgICAgLnN1YnNjcmliZShjID0+IHtcclxuICAgICAgICAgIHRoaXMudGV4dCA9IGM7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlID0gYztcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNlYXJjaENoYW5nZU9ic2VydmVyLm5leHQodGV4dCk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGRlbGF5OiBudW1iZXIgPSA1MDA7XHJcblxyXG4gIHByaXZhdGUgc2VhcmNoQ2hhbmdlT2JzZXJ2ZXI6IGFueTtcclxuXHJcbiAgaGFuZGxlS2V5RXZlbnQoZTogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgLy8gIHRoaXMuc2VhcmNoQ2hhbmdlT2JzZXJ2ZXIubmV4dCh0aGlzLnRleHQpO1xyXG4gICAgdGhpcy5vbmtleS5lbWl0KGUpO1xyXG4gIH1cclxuXHJcbiAgY2xpY2soZTogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5vbkJ1dHRvbkNsaWNrLmVtaXQoe1xyXG4gICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICB2YWx1ZTogdGhpcy50ZXh0XHJcbiAgICB9KTtcclxuICAgIC8vIHRoaXMuc2VhcmNoQ2hhbmdlT2JzZXJ2ZXIubmV4dCh0aGlzLnRleHQpO1xyXG4gIH1cclxufVxyXG4iXX0=