@po-ui/ng-components 15.8.0 → 15.8.2

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.
@@ -92,6 +92,7 @@ export class PoLookupModalComponent extends PoLookupModalBaseComponent {
92
92
  this.keyUpObservable = fromEvent(this.inputSearchEl.nativeElement, 'keyup').pipe(filter((e) => this.validateEnterPressed(e)), debounceTime(400));
93
93
  this.keyUpObservable.subscribe(() => {
94
94
  this.search();
95
+ this.changeDetector.detectChanges();
95
96
  });
96
97
  }
97
98
  openModal() {
@@ -214,4 +215,4 @@ PoLookupModalComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoLo
214
215
  type: ViewChild,
215
216
  args: ['container', { read: ViewContainerRef }]
216
217
  }] }); })();
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbG9va3VwLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1sb29rdXAvcG8tbG9va3VwLW1vZGFsL3BvLWxvb2t1cC1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tZmllbGQvcG8tbG9va3VwL3BvLWxvb2t1cC1tb2RhbC9wby1sb29rdXAtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBS1QsU0FBUyxFQUNULGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUUvRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7OztJQ0t0RCwrQkFBNkYsZUFBQTtJQUl6RixpS0FBUyxlQUFBLHlCQUFrQixDQUFBLElBQUMsb0tBQ1gsZUFBQSx5QkFBa0IsQ0FBQSxJQURQO0lBSTVCLFlBQ0Y7SUFBQSxpQkFBTyxFQUFBOzs7SUFETCxlQUNGO0lBREUsb0VBQ0Y7Ozs7SUFLSiwrQ0FNQztJQURDLHlNQUFZLGVBQUEsaUNBQXlCLENBQUEs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QSxpQ0FBQSw0QkFBQSxzQ0FBQSx5Q0FBQTtRQXlCdEIsZUFBYztRQUFkLG1DQUFjO1FBUWQsZUFBNEI7UUFBNUIsOENBQTRCOzt1RkRyRHRCLHNCQUFzQjtjQUxsQyxTQUFTOzJCQUNFLGlCQUFpQixtQkFFVix1QkFBdUIsQ0FBQyxNQUFNOzJJQUdBLE9BQU87a0JBQXJELFNBQVM7bUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBQ3JCLGFBQWE7a0JBQXBDLFNBQVM7bUJBQUMsV0FBVztZQUM4QixTQUFTO2tCQUE1RCxTQUFTO21CQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gIENvbXBvbmVudFJlZixcclxuICBFbGVtZW50UmVmLFxyXG4gIE9uSW5pdCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGZyb21FdmVudCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFBvVGFibGVDb2x1bW5Tb3J0IH0gZnJvbSAnLi4vLi4vLi4vcG8tdGFibGUvaW50ZXJmYWNlcy9wby10YWJsZS1jb2x1bW4tc29ydC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBQb0xvb2t1cE1vZGFsQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL3BvLWxvb2t1cC1tb2RhbC9wby1sb29rdXAtbW9kYWwtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQb0xhbmd1YWdlU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vLi4vc2VydmljZXMvcG8tbGFuZ3VhZ2UvcG8tbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFBvRHluYW1pY0Zvcm1Db21wb25lbnQgfSBmcm9tICcuLy4uLy4uLy4uL3BvLWR5bmFtaWMvcG8tZHluYW1pYy1mb3JtL3BvLWR5bmFtaWMtZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQb1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi8uLi8uLi8uLi9wby10YWJsZS9wby10YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBzb3J0QXJyYXlPZk9iamVjdHMgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscy91dGlsJztcclxuXHJcbi8qKlxyXG4gKiBAZG9jc1ByaXZhdGVcclxuICpcclxuICogQGRvY3NFeHRlbmRzIFBvTG9va3VwTW9kYWxCYXNlQ29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3BvLWxvb2t1cC1tb2RhbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLWxvb2t1cC1tb2RhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFBvTG9va3VwTW9kYWxDb21wb25lbnQgZXh0ZW5kcyBQb0xvb2t1cE1vZGFsQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQFZpZXdDaGlsZChQb1RhYmxlQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBwb1RhYmxlOiBQb1RhYmxlQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHNlYXJjaCcpIGlucHV0U2VhcmNoRWw6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIGNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAga2V5VXBPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT4gPSBudWxsO1xyXG5cclxuICBjb250YWluZXJIZWlnaHQ6IG51bWJlciA9IDM3NTtcclxuICB0YWJsZUhlaWdodDogbnVtYmVyO1xyXG5cclxuICBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxQb0R5bmFtaWNGb3JtQ29tcG9uZW50PjtcclxuICBkeW5hbWljRm9ybTogTmdGb3JtO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgcG9MYW5ndWFnZTogUG9MYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHtcclxuICAgIHN1cGVyKHBvTGFuZ3VhZ2UsIGNoYW5nZURldGVjdG9yKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIHRoaXMuc2V0VGFibGVIZWlnaHQoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZUV2ZW50SW5wdXQoKTtcclxuICB9XHJcblxyXG4gIC8vIFNlbGVjaW9uYSB1bSBpdGVtIG5hIHRhYmVsYVxyXG4gIG9uU2VsZWN0KGl0ZW0pIHtcclxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRzID0gWy4uLnRoaXMuc2VsZWN0ZWRzLCB7IHZhbHVlOiBpdGVtW3RoaXMuZmllbGRWYWx1ZV0sIGxhYmVsOiBpdGVtW3RoaXMuZmllbGRMYWJlbF0sIC4uLml0ZW0gfV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkcyA9IFt7IHZhbHVlOiBpdGVtW3RoaXMuZmllbGRWYWx1ZV0sIGxhYmVsOiBpdGVtW3RoaXMuZmllbGRMYWJlbF0sIC4uLml0ZW0gfV07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBSZW1vdmUgYSBzZWxlw6fDo28gZGUgdW0gaXRlbSBuYSB0YWJlbGFcclxuICBvblVuc2VsZWN0KHVuc2VsZWN0ZWRJdGVtKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkcyA9IHRoaXMuc2VsZWN0ZWRzLmZpbHRlcihpdGVtU2VsZWN0ZWQgPT4gaXRlbVNlbGVjdGVkLnZhbHVlICE9PSB1bnNlbGVjdGVkSXRlbVt0aGlzLmZpZWxkVmFsdWVdKTtcclxuICB9XHJcblxyXG4gIG9uVW5zZWxlY3RGcm9tRGlzY2xhaW1lcihyZW1vdmVkRGlzY2xhaW1lcikge1xyXG4gICAgdGhpcy5wb1RhYmxlLnVuc2VsZWN0Um93SXRlbShpdGVtID0+IGl0ZW1bdGhpcy5maWVsZFZhbHVlXSA9PT0gcmVtb3ZlZERpc2NsYWltZXIudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLy8gU2VsZWNpb25hIHRvZG9zIG9zIGl0ZW5zIHZpc8OtdmVpcyBuYSB0YWJlbGFcclxuICBvbkFsbFNlbGVjdGVkKGl0ZW1zKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkcyA9IGl0ZW1zLm1hcChpdGVtID0+ICh7IHZhbHVlOiBpdGVtW3RoaXMuZmllbGRWYWx1ZV0sIGxhYmVsOiBpdGVtW3RoaXMuZmllbGRMYWJlbF0sIC4uLml0ZW0gfSkpO1xyXG4gIH1cclxuXHJcbiAgLy8gUmVtb3ZlIGEgc2VsZcOnw6NvIGRlIHRvZG9zIG9zIGl0ZW5zIHZpc8OtdmVpcyBuYSB0YWJlbGFcclxuICBvbkFsbFVuc2VsZWN0ZWQoaXRlbXMpIHtcclxuICAgIHRoaXMucG9UYWJsZS51bnNlbGVjdFJvd3MoKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRzID0gW107XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplRXZlbnRJbnB1dCgpOiB2b2lkIHtcclxuICAgIHRoaXMua2V5VXBPYnNlcnZhYmxlID0gZnJvbUV2ZW50KHRoaXMuaW5wdXRTZWFyY2hFbC5uYXRpdmVFbGVtZW50LCAna2V5dXAnKS5waXBlKFxyXG4gICAgICBmaWx0ZXIoKGU6IGFueSkgPT4gdGhpcy52YWxpZGF0ZUVudGVyUHJlc3NlZChlKSksXHJcbiAgICAgIGRlYm91bmNlVGltZSg0MDApXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMua2V5VXBPYnNlcnZhYmxlLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2VhcmNoKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5Nb2RhbCgpIHtcclxuICAgIHRoaXMucG9Nb2RhbC5vcGVuKCk7XHJcbiAgfVxyXG5cclxuICBzb3J0Qnkoc29ydDogUG9UYWJsZUNvbHVtblNvcnQpIHtcclxuICAgIGNvbnN0IG9yZGVyID0gc29ydC50eXBlID09PSAnYXNjZW5kaW5nJyA/IHRydWUgOiBmYWxzZTtcclxuICAgIHNvcnRBcnJheU9mT2JqZWN0cyh0aGlzLml0ZW1zLCBzb3J0LmNvbHVtbi5wcm9wZXJ0eSwgb3JkZXIpO1xyXG5cclxuICAgIHRoaXMuc29ydCA9IHNvcnQ7XHJcbiAgfVxyXG5cclxuICBkZXN0cm95RHluYW1pY0Zvcm0oKSB7XHJcbiAgICBpZiAodGhpcy5jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25BZHZhbmNlZEZpbHRlcigpIHtcclxuICAgIHRoaXMuc2V0dXBNb2RhbEFkdmFuY2VkRmlsdGVyKCk7XHJcbiAgICB0aGlzLmNyZWF0ZUR5bmFtaWNGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFRhYmxlSGVpZ2h0KCkge1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRzPy5sZW5ndGggIT09IDApIHtcclxuICAgICAgICB0aGlzLnRhYmxlSGVpZ2h0ID0gMzAwO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudGFibGVIZWlnaHQgPSAzNzA7XHJcbiAgICAgICAgdGhpcy5jb250YWluZXJIZWlnaHQgPSAzNzU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBwcmVjaXNhIHNlciAzMTUgcG9yIGFzIGxpbmhhcyB0ZXJlbSBhbHR1cmEgZGUgMzJweCAocXVhbmRvIHRlbGEgbWVub3IgcXVlIDEzNjZweCkuXHJcbiAgICAvLyBPIHJldG9ybm8gcGFkcsOjbyDDqSAxMCBpdGVucyBmYXplbmRvIGNvbSBxdWUgZ2VyZSBzY3JvbGwgY2FzbyBob3V2ZXIgcGFnaW5hw6fDo28sIDM3MCBuw6NvIGdlcmF2YS5cclxuICAgIHRoaXMudGFibGVIZWlnaHQgPSB0aGlzLmluZmluaXRlU2Nyb2xsID8gMzE1IDogMzcwO1xyXG4gICAgaWYgKHdpbmRvdy5pbm5lckhlaWdodCA8IDYxNSkge1xyXG4gICAgICB0aGlzLnRhYmxlSGVpZ2h0IC09IDUwO1xyXG4gICAgICB0aGlzLmNvbnRhaW5lckhlaWdodCAtPSA1MDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdmFsaWRhdGVFbnRlclByZXNzZWQoZTogYW55KSB7XHJcbiAgICByZXR1cm4gZS5rZXlDb2RlID09PSAxMztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBNb2RhbEFkdmFuY2VkRmlsdGVyKCkge1xyXG4gICAgdGhpcy5keW5hbWljRm9ybVZhbHVlID0ge307XHJcbiAgICB0aGlzLmlzQWR2YW5jZWRGaWx0ZXIgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVEeW5hbWljRm9ybSgpIHtcclxuICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuY29tcG9uZW50RmFjdG9yeS5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShQb0R5bmFtaWNGb3JtQ29tcG9uZW50KTtcclxuXHJcbiAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMuY29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudDxQb0R5bmFtaWNGb3JtQ29tcG9uZW50Pihjb21wb25lbnQpO1xyXG4gICAgdGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UuZmllbGRzID0gdGhpcy5hZHZhbmNlZEZpbHRlcnM7XHJcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS52YWx1ZSA9IHRoaXMuZHluYW1pY0Zvcm1WYWx1ZTtcclxuXHJcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5mb3JtT3V0cHV0XHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRhcChmb3JtID0+IHtcclxuICAgICAgICAgIHRoaXMuZHluYW1pY0Zvcm0gPSBmb3JtO1xyXG4gICAgICAgICAgdGhpcy5wcmltYXJ5QWN0aW9uQWR2YW5jZWRGaWx0ZXIuZGlzYWJsZWQgPSB0aGlzLmR5bmFtaWNGb3JtLmludmFsaWQ7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgc3dpdGNoTWFwKGZvcm0gPT4gZm9ybS52YWx1ZUNoYW5nZXMpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5wcmltYXJ5QWN0aW9uQWR2YW5jZWRGaWx0ZXIuZGlzYWJsZWQgPSB0aGlzLmR5bmFtaWNGb3JtLmludmFsaWQ7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcbn1cclxuIiwiPHBvLW1vZGFsXHJcbiAgcC1jbGljay1vdXQ9XCJmYWxzZVwiXHJcbiAgcC1oaWRlLWNsb3NlPVwiZmFsc2VcIlxyXG4gIHAtc2l6ZT1cImxnXCJcclxuICBbcC1wcmltYXJ5LWFjdGlvbl09XCJpc0FkdmFuY2VkRmlsdGVyID8gcHJpbWFyeUFjdGlvbkFkdmFuY2VkRmlsdGVyIDogcHJpbWFyeUFjdGlvblwiXHJcbiAgW3Atc2Vjb25kYXJ5LWFjdGlvbl09XCJpc0FkdmFuY2VkRmlsdGVyID8gc2Vjb25kYXJ5QWN0aW9uQWR2YW5jZWRGaWx0ZXIgOiBzZWNvbmRhcnlBY3Rpb25cIlxyXG4gIFtwLXRpdGxlXT1cImlzQWR2YW5jZWRGaWx0ZXIgPyBhZHZhbmNlZEZpbHRlck1vZGFsVGl0bGUgOiB0aXRsZVwiXHJcbj5cclxuICA8ZGl2IFtoaWRkZW5dPVwiaXNBZHZhbmNlZEZpbHRlclwiPlxyXG4gICAgPHBvLWZpZWxkLWNvbnRhaW5lciBjbGFzcz1cInBvLWxvb2t1cC1oZWFkZXIgcG8tcHVsbC1yaWdodFwiIFtwLW9wdGlvbmFsXT1cImZhbHNlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwby1sb29rdXAtZmlsdGVyLWNvbnRlbnRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicG8tZmllbGQtaWNvbi1jb250YWluZXItcmlnaHRcIj5cclxuICAgICAgICAgIDxzcGFuICNpY29uTG9va3VwIGNsYXNzPVwicG8taWNvbiBwby1maWVsZC1pY29uIHBvLWljb24tc2VhcmNoIHBvLWljb24taW5wdXRcIiAoY2xpY2spPVwic2VhcmNoKClcIj4gPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICNpbnBzZWFyY2hcclxuICAgICAgICAgIGNsYXNzPVwicG8taW5wdXQgcG8taW5wdXQtaWNvbi1yaWdodFwiXHJcbiAgICAgICAgICBuYW1lPVwiY29udGVudFNlYXJjaFwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFZhbHVlXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJsaXRlcmFscy5tb2RhbFBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgKm5nSWY9XCJhZHZhbmNlZEZpbHRlcnMgJiYgYWR2YW5jZWRGaWx0ZXJzLmxlbmd0aCA+IDBcIiBjbGFzcz1cInBvLWxvb2t1cC1hZHZhbmNlZC1zZWFyY2hcIj5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgY2xhc3M9XCJwby1sb29rdXAtYWR2YW5jZWQtc2VhcmNoLWxpbmsgcG8taWNvbi1pbnB1dFwiXHJcbiAgICAgICAgICB0YWJpbmRleD1cIjBcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQWR2YW5jZWRGaWx0ZXIoKVwiXHJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkFkdmFuY2VkRmlsdGVyKClcIlxyXG4gICAgICAgICAgdGFiaW5kZXg9XCIwXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBsaXRlcmFscy5tb2RhbEFkdmFuY2VkU2VhcmNoIH19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvcG8tZmllbGQtY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gRElTQ0xBSU1FUiAtLT5cclxuICAgIDxwby1kaXNjbGFpbWVyLWdyb3VwXHJcbiAgICAgICpuZ0lmPVwiISFkaXNjbGFpbWVyR3JvdXBcIlxyXG4gICAgICBjbGFzcz1cInBvLW1kLTEyXCJcclxuICAgICAgW3AtZGlzY2xhaW1lcnNdPVwiZGlzY2xhaW1lckdyb3VwPy5kaXNjbGFpbWVyc1wiXHJcbiAgICAgIFtwLXRpdGxlXT1cImRpc2NsYWltZXJHcm91cD8udGl0bGVcIlxyXG4gICAgICAocC1jaGFuZ2UpPVwib25DaGFuZ2VEaXNjbGFpbWVyR3JvdXAoKVwiXHJcbiAgICA+XHJcbiAgICA8L3BvLWRpc2NsYWltZXItZ3JvdXA+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInBvLXJvdyBwby1sb29rdXAtY29udGFpbmVyLXRhYmxlXCIgW3N0eWxlLmhlaWdodC5weF09XCJjb250YWluZXJIZWlnaHRcIj5cclxuICAgICAgPHBvLXRhYmxlXHJcbiAgICAgICAgI3BvVGFibGVcclxuICAgICAgICBjbGFzcz1cInBvLW1kLTEyXCJcclxuICAgICAgICBbcC1zZWxlY3RhYmxlXT1cInRydWVcIlxyXG4gICAgICAgIFtwLWhpZGUtZGV0YWlsXT1cInRydWVcIlxyXG4gICAgICAgIFtwLXNpbmdsZS1zZWxlY3RdPVwiIW11bHRpcGxlXCJcclxuICAgICAgICBbcC1zb3J0XT1cInRydWVcIlxyXG4gICAgICAgIFtwLWNvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICAgICAgW3AtaGVpZ2h0XT1cInRhYmxlSGVpZ2h0XCJcclxuICAgICAgICBbcC1pdGVtc109XCJpdGVtc1wiXHJcbiAgICAgICAgW3AtbGl0ZXJhbHNdPVwidGFibGVMaXRlcmFsc1wiXHJcbiAgICAgICAgW3AtbG9hZGluZ109XCJpc0xvYWRpbmdcIlxyXG4gICAgICAgIFtwLXNob3ctbW9yZS1kaXNhYmxlZF09XCIhaGFzTmV4dFwiXHJcbiAgICAgICAgW3AtaW5maW5pdGUtc2Nyb2xsXT1cImluZmluaXRlU2Nyb2xsXCJcclxuICAgICAgICAocC1zZWxlY3RlZCk9XCJvblNlbGVjdCgkZXZlbnQpXCJcclxuICAgICAgICAocC11bnNlbGVjdGVkKT1cIm9uVW5zZWxlY3QoJGV2ZW50KVwiXHJcbiAgICAgICAgKHAtYWxsLXNlbGVjdGVkKT1cIm9uQWxsU2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHAtYWxsLXVuc2VsZWN0ZWQpPVwib25BbGxVbnNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgIChwLXNob3ctbW9yZSk9XCJzaG93TW9yZUV2ZW50KClcIlxyXG4gICAgICAgIChwLXNvcnQtYnkpPVwic29ydEJ5KCRldmVudClcIlxyXG4gICAgICAgIChwLWNoYW5nZS12aXNpYmxlLWNvbHVtbnMpPVwiY2hhbmdlVmlzaWJsZUNvbHVtbnMuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAocC1yZXN0b3JlLWNvbHVtbi1tYW5hZ2VyKT1cImNvbHVtblJlc3RvcmVNYW5hZ2VyLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgID5cclxuICAgICAgPC9wby10YWJsZT5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gRElTQ0xBSU1FUiAtLT5cclxuICAgIDxwby1kaXNjbGFpbWVyLWdyb3VwXHJcbiAgICAgICpuZ0lmPVwibXVsdGlwbGVcIlxyXG4gICAgICBjbGFzcz1cInBvLW1kLTEyXCJcclxuICAgICAgW3AtZGlzY2xhaW1lcnNdPVwic2VsZWN0ZWRzXCJcclxuICAgICAgKHAtcmVtb3ZlKT1cIm9uVW5zZWxlY3RGcm9tRGlzY2xhaW1lcigkZXZlbnQucmVtb3ZlZERpc2NsYWltZXIpXCJcclxuICAgICAgKHAtcmVtb3ZlLWFsbCk9XCJvbkFsbFVuc2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICA8L3BvLWRpc2NsYWltZXItZ3JvdXA+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBbaGlkZGVuXT1cIiFpc0FkdmFuY2VkRmlsdGVyXCI+XHJcbiAgICA8bmctY29udGFpbmVyICNjb250YWluZXI+IDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG48L3BvLW1vZGFsPlxyXG4iXX0=
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbG9va3VwLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC9wby1sb29rdXAvcG8tbG9va3VwLW1vZGFsL3BvLWxvb2t1cC1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tZmllbGQvcG8tbG9va3VwL3BvLWxvb2t1cC1tb2RhbC9wby1sb29rdXAtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBS1QsU0FBUyxFQUNULGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUUvRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7OztJQ0t0RCwrQkFBNkYsZUFBQTtJQUl6RixpS0FBUyxlQUFBLHlCQUFrQixDQUFBLElBQUMsb0tBQ1gsZUFBQSx5QkFBa0IsQ0FBQSxJQURQO0lBSTVCLFlBQ0Y7SUFBQSxpQkFBTyxFQUFBOzs7SUFETCxlQUNGO0lBREUsb0VBQ0Y7Ozs7SUFLSiwrQ0FNQztJQURDLHlNQUFZLGVBQUEsaUNBQXlCLENBQUEs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Q0FBcUIsdUJBQUEsa0NBQUEsZ0JBQUEsMEJBQUEsNkJBQUEsc0JBQUEsaUNBQUEsNEJBQUEsc0NBQUEseUNBQUE7UUF5QnRCLGVBQWM7UUFBZCxtQ0FBYztRQVFkLGVBQTRCO1FBQTVCLDhDQUE0Qjs7dUZEckR0QixzQkFBc0I7Y0FMbEMsU0FBUzsyQkFDRSxpQkFBaUIsbUJBRVYsdUJBQXVCLENBQUMsTUFBTTsySUFHQSxPQUFPO2tCQUFyRCxTQUFTO21CQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUNyQixhQUFhO2tCQUFwQyxTQUFTO21CQUFDLFdBQVc7WUFDOEIsU0FBUztrQkFBNUQsU0FBUzttQkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICBDb21wb25lbnRSZWYsXHJcbiAgRWxlbWVudFJlZixcclxuICBPbkluaXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBmcm9tRXZlbnQsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBQb1RhYmxlQ29sdW1uU29ydCB9IGZyb20gJy4uLy4uLy4uL3BvLXRhYmxlL2ludGVyZmFjZXMvcG8tdGFibGUtY29sdW1uLXNvcnQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgUG9Mb29rdXBNb2RhbEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9wby1sb29rdXAtbW9kYWwvcG8tbG9va3VwLW1vZGFsLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLy4uLy4uLy4uLy4uL3NlcnZpY2VzL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQb0R5bmFtaWNGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi8uLi8uLi8uLi9wby1keW5hbWljL3BvLWR5bmFtaWMtZm9ybS9wby1keW5hbWljLWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUG9UYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vLi4vLi4vLi4vcG8tdGFibGUvcG8tdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgc29ydEFycmF5T2ZPYmplY3RzIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvdXRpbCc7XHJcblxyXG4vKipcclxuICogQGRvY3NQcml2YXRlXHJcbiAqXHJcbiAqIEBkb2NzRXh0ZW5kcyBQb0xvb2t1cE1vZGFsQmFzZUNvbXBvbmVudFxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdwby1sb29rdXAtbW9kYWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wby1sb29rdXAtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQb0xvb2t1cE1vZGFsQ29tcG9uZW50IGV4dGVuZHMgUG9Mb29rdXBNb2RhbEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIEBWaWV3Q2hpbGQoUG9UYWJsZUNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgcG9UYWJsZTogUG9UYWJsZUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdpbnBzZWFyY2gnKSBpbnB1dFNlYXJjaEVsOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBjb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XHJcblxyXG4gIGtleVVwT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxhbnk+ID0gbnVsbDtcclxuXHJcbiAgY29udGFpbmVySGVpZ2h0OiBudW1iZXIgPSAzNzU7XHJcbiAgdGFibGVIZWlnaHQ6IG51bWJlcjtcclxuXHJcbiAgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8UG9EeW5hbWljRm9ybUNvbXBvbmVudD47XHJcbiAgZHluYW1pY0Zvcm06IE5nRm9ybTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNvbXBvbmVudEZhY3Rvcnk6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHBvTGFuZ3VhZ2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICBzdXBlcihwb0xhbmd1YWdlLCBjaGFuZ2VEZXRlY3Rvcik7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLnNldFRhYmxlSGVpZ2h0KCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmluaXRpYWxpemVFdmVudElucHV0KCk7XHJcbiAgfVxyXG5cclxuICAvLyBTZWxlY2lvbmEgdW0gaXRlbSBuYSB0YWJlbGFcclxuICBvblNlbGVjdChpdGVtKSB7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkcyA9IFsuLi50aGlzLnNlbGVjdGVkcywgeyB2YWx1ZTogaXRlbVt0aGlzLmZpZWxkVmFsdWVdLCBsYWJlbDogaXRlbVt0aGlzLmZpZWxkTGFiZWxdLCAuLi5pdGVtIH1dO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZHMgPSBbeyB2YWx1ZTogaXRlbVt0aGlzLmZpZWxkVmFsdWVdLCBsYWJlbDogaXRlbVt0aGlzLmZpZWxkTGFiZWxdLCAuLi5pdGVtIH1dO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gUmVtb3ZlIGEgc2VsZcOnw6NvIGRlIHVtIGl0ZW0gbmEgdGFiZWxhXHJcbiAgb25VbnNlbGVjdCh1bnNlbGVjdGVkSXRlbSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZHMgPSB0aGlzLnNlbGVjdGVkcy5maWx0ZXIoaXRlbVNlbGVjdGVkID0+IGl0ZW1TZWxlY3RlZC52YWx1ZSAhPT0gdW5zZWxlY3RlZEl0ZW1bdGhpcy5maWVsZFZhbHVlXSk7XHJcbiAgfVxyXG5cclxuICBvblVuc2VsZWN0RnJvbURpc2NsYWltZXIocmVtb3ZlZERpc2NsYWltZXIpIHtcclxuICAgIHRoaXMucG9UYWJsZS51bnNlbGVjdFJvd0l0ZW0oaXRlbSA9PiBpdGVtW3RoaXMuZmllbGRWYWx1ZV0gPT09IHJlbW92ZWREaXNjbGFpbWVyLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8vIFNlbGVjaW9uYSB0b2RvcyBvcyBpdGVucyB2aXPDrXZlaXMgbmEgdGFiZWxhXHJcbiAgb25BbGxTZWxlY3RlZChpdGVtcykge1xyXG4gICAgdGhpcy5zZWxlY3RlZHMgPSBpdGVtcy5tYXAoaXRlbSA9PiAoeyB2YWx1ZTogaXRlbVt0aGlzLmZpZWxkVmFsdWVdLCBsYWJlbDogaXRlbVt0aGlzLmZpZWxkTGFiZWxdLCAuLi5pdGVtIH0pKTtcclxuICB9XHJcblxyXG4gIC8vIFJlbW92ZSBhIHNlbGXDp8OjbyBkZSB0b2RvcyBvcyBpdGVucyB2aXPDrXZlaXMgbmEgdGFiZWxhXHJcbiAgb25BbGxVbnNlbGVjdGVkKGl0ZW1zKSB7XHJcbiAgICB0aGlzLnBvVGFibGUudW5zZWxlY3RSb3dzKCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkcyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZUV2ZW50SW5wdXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmtleVVwT2JzZXJ2YWJsZSA9IGZyb21FdmVudCh0aGlzLmlucHV0U2VhcmNoRWwubmF0aXZlRWxlbWVudCwgJ2tleXVwJykucGlwZShcclxuICAgICAgZmlsdGVyKChlOiBhbnkpID0+IHRoaXMudmFsaWRhdGVFbnRlclByZXNzZWQoZSkpLFxyXG4gICAgICBkZWJvdW5jZVRpbWUoNDAwKVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmtleVVwT2JzZXJ2YWJsZS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnNlYXJjaCgpO1xyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3Blbk1vZGFsKCkge1xyXG4gICAgdGhpcy5wb01vZGFsLm9wZW4oKTtcclxuICB9XHJcblxyXG4gIHNvcnRCeShzb3J0OiBQb1RhYmxlQ29sdW1uU29ydCkge1xyXG4gICAgY29uc3Qgb3JkZXIgPSBzb3J0LnR5cGUgPT09ICdhc2NlbmRpbmcnID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgc29ydEFycmF5T2ZPYmplY3RzKHRoaXMuaXRlbXMsIHNvcnQuY29sdW1uLnByb3BlcnR5LCBvcmRlcik7XHJcblxyXG4gICAgdGhpcy5zb3J0ID0gc29ydDtcclxuICB9XHJcblxyXG4gIGRlc3Ryb3lEeW5hbWljRm9ybSgpIHtcclxuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZikge1xyXG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkFkdmFuY2VkRmlsdGVyKCkge1xyXG4gICAgdGhpcy5zZXR1cE1vZGFsQWR2YW5jZWRGaWx0ZXIoKTtcclxuICAgIHRoaXMuY3JlYXRlRHluYW1pY0Zvcm0oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VGFibGVIZWlnaHQoKSB7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZHM/Lmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgIHRoaXMudGFibGVIZWlnaHQgPSAzMDA7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy50YWJsZUhlaWdodCA9IDM3MDtcclxuICAgICAgICB0aGlzLmNvbnRhaW5lckhlaWdodCA9IDM3NTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHByZWNpc2Egc2VyIDMxNSBwb3IgYXMgbGluaGFzIHRlcmVtIGFsdHVyYSBkZSAzMnB4IChxdWFuZG8gdGVsYSBtZW5vciBxdWUgMTM2NnB4KS5cclxuICAgIC8vIE8gcmV0b3JubyBwYWRyw6NvIMOpIDEwIGl0ZW5zIGZhemVuZG8gY29tIHF1ZSBnZXJlIHNjcm9sbCBjYXNvIGhvdXZlciBwYWdpbmHDp8OjbywgMzcwIG7Do28gZ2VyYXZhLlxyXG4gICAgdGhpcy50YWJsZUhlaWdodCA9IHRoaXMuaW5maW5pdGVTY3JvbGwgPyAzMTUgOiAzNzA7XHJcbiAgICBpZiAod2luZG93LmlubmVySGVpZ2h0IDwgNjE1KSB7XHJcbiAgICAgIHRoaXMudGFibGVIZWlnaHQgLT0gNTA7XHJcbiAgICAgIHRoaXMuY29udGFpbmVySGVpZ2h0IC09IDUwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB2YWxpZGF0ZUVudGVyUHJlc3NlZChlOiBhbnkpIHtcclxuICAgIHJldHVybiBlLmtleUNvZGUgPT09IDEzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXR1cE1vZGFsQWR2YW5jZWRGaWx0ZXIoKSB7XHJcbiAgICB0aGlzLmR5bmFtaWNGb3JtVmFsdWUgPSB7fTtcclxuICAgIHRoaXMuaXNBZHZhbmNlZEZpbHRlciA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUR5bmFtaWNGb3JtKCkge1xyXG4gICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5LnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFBvRHluYW1pY0Zvcm1Db21wb25lbnQpO1xyXG5cclxuICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50PFBvRHluYW1pY0Zvcm1Db21wb25lbnQ+KGNvbXBvbmVudCk7XHJcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5maWVsZHMgPSB0aGlzLmFkdmFuY2VkRmlsdGVycztcclxuICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLnZhbHVlID0gdGhpcy5keW5hbWljRm9ybVZhbHVlO1xyXG5cclxuICAgIHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlLmZvcm1PdXRwdXRcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFwKGZvcm0gPT4ge1xyXG4gICAgICAgICAgdGhpcy5keW5hbWljRm9ybSA9IGZvcm07XHJcbiAgICAgICAgICB0aGlzLnByaW1hcnlBY3Rpb25BZHZhbmNlZEZpbHRlci5kaXNhYmxlZCA9IHRoaXMuZHluYW1pY0Zvcm0uaW52YWxpZDtcclxuICAgICAgICB9KSxcclxuICAgICAgICBzd2l0Y2hNYXAoZm9ybSA9PiBmb3JtLnZhbHVlQ2hhbmdlcylcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLnByaW1hcnlBY3Rpb25BZHZhbmNlZEZpbHRlci5kaXNhYmxlZCA9IHRoaXMuZHluYW1pY0Zvcm0uaW52YWxpZDtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxufVxyXG4iLCI8cG8tbW9kYWxcclxuICBwLWNsaWNrLW91dD1cImZhbHNlXCJcclxuICBwLWhpZGUtY2xvc2U9XCJmYWxzZVwiXHJcbiAgcC1zaXplPVwibGdcIlxyXG4gIFtwLXByaW1hcnktYWN0aW9uXT1cImlzQWR2YW5jZWRGaWx0ZXIgPyBwcmltYXJ5QWN0aW9uQWR2YW5jZWRGaWx0ZXIgOiBwcmltYXJ5QWN0aW9uXCJcclxuICBbcC1zZWNvbmRhcnktYWN0aW9uXT1cImlzQWR2YW5jZWRGaWx0ZXIgPyBzZWNvbmRhcnlBY3Rpb25BZHZhbmNlZEZpbHRlciA6IHNlY29uZGFyeUFjdGlvblwiXHJcbiAgW3AtdGl0bGVdPVwiaXNBZHZhbmNlZEZpbHRlciA/IGFkdmFuY2VkRmlsdGVyTW9kYWxUaXRsZSA6IHRpdGxlXCJcclxuPlxyXG4gIDxkaXYgW2hpZGRlbl09XCJpc0FkdmFuY2VkRmlsdGVyXCI+XHJcbiAgICA8cG8tZmllbGQtY29udGFpbmVyIGNsYXNzPVwicG8tbG9va3VwLWhlYWRlciBwby1wdWxsLXJpZ2h0XCIgW3Atb3B0aW9uYWxdPVwiZmFsc2VcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBvLWxvb2t1cC1maWx0ZXItY29udGVudFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwby1maWVsZC1pY29uLWNvbnRhaW5lci1yaWdodFwiPlxyXG4gICAgICAgICAgPHNwYW4gI2ljb25Mb29rdXAgY2xhc3M9XCJwby1pY29uIHBvLWZpZWxkLWljb24gcG8taWNvbi1zZWFyY2ggcG8taWNvbi1pbnB1dFwiIChjbGljayk9XCJzZWFyY2goKVwiPiA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgI2lucHNlYXJjaFxyXG4gICAgICAgICAgY2xhc3M9XCJwby1pbnB1dCBwby1pbnB1dC1pY29uLXJpZ2h0XCJcclxuICAgICAgICAgIG5hbWU9XCJjb250ZW50U2VhcmNoXCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVmFsdWVcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImxpdGVyYWxzLm1vZGFsUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiAqbmdJZj1cImFkdmFuY2VkRmlsdGVycyAmJiBhZHZhbmNlZEZpbHRlcnMubGVuZ3RoID4gMFwiIGNsYXNzPVwicG8tbG9va3VwLWFkdmFuY2VkLXNlYXJjaFwiPlxyXG4gICAgICAgIDxzcGFuXHJcbiAgICAgICAgICBjbGFzcz1cInBvLWxvb2t1cC1hZHZhbmNlZC1zZWFyY2gtbGluayBwby1pY29uLWlucHV0XCJcclxuICAgICAgICAgIHRhYmluZGV4PVwiMFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25BZHZhbmNlZEZpbHRlcigpXCJcclxuICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uQWR2YW5jZWRGaWx0ZXIoKVwiXHJcbiAgICAgICAgICB0YWJpbmRleD1cIjBcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGxpdGVyYWxzLm1vZGFsQWR2YW5jZWRTZWFyY2ggfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9wby1maWVsZC1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBESVNDTEFJTUVSIC0tPlxyXG4gICAgPHBvLWRpc2NsYWltZXItZ3JvdXBcclxuICAgICAgKm5nSWY9XCIhIWRpc2NsYWltZXJHcm91cFwiXHJcbiAgICAgIGNsYXNzPVwicG8tbWQtMTJcIlxyXG4gICAgICBbcC1kaXNjbGFpbWVyc109XCJkaXNjbGFpbWVyR3JvdXA/LmRpc2NsYWltZXJzXCJcclxuICAgICAgW3AtdGl0bGVdPVwiZGlzY2xhaW1lckdyb3VwPy50aXRsZVwiXHJcbiAgICAgIChwLWNoYW5nZSk9XCJvbkNoYW5nZURpc2NsYWltZXJHcm91cCgpXCJcclxuICAgID5cclxuICAgIDwvcG8tZGlzY2xhaW1lci1ncm91cD5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicG8tcm93IHBvLWxvb2t1cC1jb250YWluZXItdGFibGVcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImNvbnRhaW5lckhlaWdodFwiPlxyXG4gICAgICA8cG8tdGFibGVcclxuICAgICAgICAjcG9UYWJsZVxyXG4gICAgICAgIGNsYXNzPVwicG8tbWQtMTJcIlxyXG4gICAgICAgIFtwLXNlbGVjdGFibGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3AtaGlkZS1kZXRhaWxdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3Atc2luZ2xlLXNlbGVjdF09XCIhbXVsdGlwbGVcIlxyXG4gICAgICAgIFtwLXNvcnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3AtY29sdW1uc109XCJjb2x1bW5zXCJcclxuICAgICAgICBbcC1oZWlnaHRdPVwidGFibGVIZWlnaHRcIlxyXG4gICAgICAgIFtwLWl0ZW1zXT1cIml0ZW1zXCJcclxuICAgICAgICBbcC1saXRlcmFsc109XCJ0YWJsZUxpdGVyYWxzXCJcclxuICAgICAgICBbcC1sb2FkaW5nXT1cImlzTG9hZGluZ1wiXHJcbiAgICAgICAgW3Atc2hvdy1tb3JlLWRpc2FibGVkXT1cIiFoYXNOZXh0XCJcclxuICAgICAgICBbcC1pbmZpbml0ZS1zY3JvbGxdPVwiaW5maW5pdGVTY3JvbGxcIlxyXG4gICAgICAgIChwLXNlbGVjdGVkKT1cIm9uU2VsZWN0KCRldmVudClcIlxyXG4gICAgICAgIChwLXVuc2VsZWN0ZWQpPVwib25VbnNlbGVjdCgkZXZlbnQpXCJcclxuICAgICAgICAocC1hbGwtc2VsZWN0ZWQpPVwib25BbGxTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAocC1hbGwtdW5zZWxlY3RlZCk9XCJvbkFsbFVuc2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHAtc2hvdy1tb3JlKT1cInNob3dNb3JlRXZlbnQoKVwiXHJcbiAgICAgICAgKHAtc29ydC1ieSk9XCJzb3J0QnkoJGV2ZW50KVwiXHJcbiAgICAgICAgKHAtY2hhbmdlLXZpc2libGUtY29sdW1ucyk9XCJjaGFuZ2VWaXNpYmxlQ29sdW1ucy5lbWl0KCRldmVudClcIlxyXG4gICAgICAgIChwLXJlc3RvcmUtY29sdW1uLW1hbmFnZXIpPVwiY29sdW1uUmVzdG9yZU1hbmFnZXIuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgPlxyXG4gICAgICA8L3BvLXRhYmxlPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBESVNDTEFJTUVSIC0tPlxyXG4gICAgPHBvLWRpc2NsYWltZXItZ3JvdXBcclxuICAgICAgKm5nSWY9XCJtdWx0aXBsZVwiXHJcbiAgICAgIGNsYXNzPVwicG8tbWQtMTJcIlxyXG4gICAgICBbcC1kaXNjbGFpbWVyc109XCJzZWxlY3RlZHNcIlxyXG4gICAgICAocC1yZW1vdmUpPVwib25VbnNlbGVjdEZyb21EaXNjbGFpbWVyKCRldmVudC5yZW1vdmVkRGlzY2xhaW1lcilcIlxyXG4gICAgICAocC1yZW1vdmUtYWxsKT1cIm9uQWxsVW5zZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgID5cclxuICAgIDwvcG8tZGlzY2xhaW1lci1ncm91cD5cclxuICA8L2Rpdj5cclxuICA8ZGl2IFtoaWRkZW5dPVwiIWlzQWR2YW5jZWRGaWx0ZXJcIj5cclxuICAgIDxuZy1jb250YWluZXIgI2NvbnRhaW5lcj4gPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvcG8tbW9kYWw+XHJcbiJdfQ==
@@ -1,6 +1,13 @@
1
1
  import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- import * as i1 from "../../po-tag/po-tag.component";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "../../po-tag/po-tag.component";
5
+ function PoTableColumnLabelComponent_po_tag_0_Template(rf, ctx) { if (rf & 1) {
6
+ i0.ɵɵelement(0, "po-tag", 1);
7
+ } if (rf & 2) {
8
+ const ctx_r0 = i0.ɵɵnextContext();
9
+ i0.ɵɵproperty("p-color", ctx_r0.value == null ? null : ctx_r0.value.color)("p-value", ctx_r0.value == null ? null : ctx_r0.value.label)("p-text-color", ctx_r0.value == null ? null : ctx_r0.value.textColor)("p-icon", ctx_r0.value == null ? null : ctx_r0.value.icon)("p-type", ctx_r0.value == null ? null : ctx_r0.value.type);
10
+ } }
4
11
  /**
5
12
  * @docsPrivate
6
13
  *
@@ -9,18 +16,27 @@ import * as i1 from "../../po-tag/po-tag.component";
9
16
  * Componente para a criação da representação da legenda, em formato de texto .
10
17
  */
11
18
  export class PoTableColumnLabelComponent {
19
+ constructor() {
20
+ this.hasLabel = false;
21
+ }
22
+ ngOnInit() {
23
+ this.checkValueHasLabel();
24
+ }
25
+ checkValueHasLabel() {
26
+ this.hasLabel = this.value?.label?.trim() ? true : false;
27
+ }
12
28
  }
13
29
  PoTableColumnLabelComponent.ɵfac = function PoTableColumnLabelComponent_Factory(t) { return new (t || PoTableColumnLabelComponent)(); };
14
- PoTableColumnLabelComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoTableColumnLabelComponent, selectors: [["po-table-column-label"]], inputs: { value: ["p-value", "value"] }, decls: 1, vars: 5, consts: [[3, "p-color", "p-value", "p-text-color", "p-icon", "p-type"]], template: function PoTableColumnLabelComponent_Template(rf, ctx) { if (rf & 1) {
15
- i0.ɵɵelement(0, "po-tag", 0);
30
+ PoTableColumnLabelComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoTableColumnLabelComponent, selectors: [["po-table-column-label"]], inputs: { value: ["p-value", "value"] }, decls: 1, vars: 1, consts: [[3, "p-color", "p-value", "p-text-color", "p-icon", "p-type", 4, "ngIf"], [3, "p-color", "p-value", "p-text-color", "p-icon", "p-type"]], template: function PoTableColumnLabelComponent_Template(rf, ctx) { if (rf & 1) {
31
+ i0.ɵɵtemplate(0, PoTableColumnLabelComponent_po_tag_0_Template, 1, 5, "po-tag", 0);
16
32
  } if (rf & 2) {
17
- i0.ɵɵproperty("p-color", ctx.value == null ? null : ctx.value.color)("p-value", ctx.value == null ? null : ctx.value.label)("p-text-color", ctx.value == null ? null : ctx.value.textColor)("p-icon", ctx.value == null ? null : ctx.value.icon)("p-type", ctx.value == null ? null : ctx.value.type);
18
- } }, dependencies: [i1.PoTagComponent], encapsulation: 2, changeDetection: 0 });
33
+ i0.ɵɵproperty("ngIf", ctx.hasLabel);
34
+ } }, dependencies: [i1.NgIf, i2.PoTagComponent], encapsulation: 2, changeDetection: 0 });
19
35
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoTableColumnLabelComponent, [{
20
36
  type: Component,
21
- args: [{ selector: 'po-table-column-label', changeDetection: ChangeDetectionStrategy.OnPush, template: "<po-tag\r\n [p-color]=\"value?.color\"\r\n [p-value]=\"value?.label\"\r\n [p-text-color]=\"value?.textColor\"\r\n [p-icon]=\"value?.icon\"\r\n [p-type]=\"value?.type\"\r\n>\r\n</po-tag>\r\n" }]
37
+ args: [{ selector: 'po-table-column-label', changeDetection: ChangeDetectionStrategy.OnPush, template: "<po-tag\r\n *ngIf=\"hasLabel\"\r\n [p-color]=\"value?.color\"\r\n [p-value]=\"value?.label\"\r\n [p-text-color]=\"value?.textColor\"\r\n [p-icon]=\"value?.icon\"\r\n [p-type]=\"value?.type\"\r\n>\r\n</po-tag>\r\n" }]
22
38
  }], null, { value: [{
23
39
  type: Input,
24
40
  args: ['p-value']
25
41
  }] }); })();
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdGFibGUtY29sdW1uLWxhYmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby10YWJsZS9wby10YWJsZS1jb2x1bW4tbGFiZWwvcG8tdGFibGUtY29sdW1uLWxhYmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby10YWJsZS9wby10YWJsZS1jb2x1bW4tbGFiZWwvcG8tdGFibGUtY29sdW1uLWxhYmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFJMUU7Ozs7OztHQU1HO0FBT0gsTUFBTSxPQUFPLDJCQUEyQjs7c0dBQTNCLDJCQUEyQjs4RUFBM0IsMkJBQTJCO1FDakJ4Qyw0QkFPUzs7UUFOUCxvRUFBd0IsdURBQUEsZ0VBQUEscURBQUEscURBQUE7O3VGRGdCYiwyQkFBMkI7Y0FMdkMsU0FBUzsyQkFDRSx1QkFBdUIsbUJBRWhCLHVCQUF1QixDQUFDLE1BQU07Z0JBRzdCLEtBQUs7a0JBQXRCLEtBQUs7bUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBQb1RhYmxlQ29sdW1uTGFiZWwgfSBmcm9tICcuL3BvLXRhYmxlLWNvbHVtbi1sYWJlbC5pbnRlcmZhY2UnO1xyXG5cclxuLyoqXHJcbiAqIEBkb2NzUHJpdmF0ZVxyXG4gKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICpcclxuICogQ29tcG9uZW50ZSBwYXJhIGEgY3JpYcOnw6NvIGRhIHJlcHJlc2VudGHDp8OjbyBkYSBsZWdlbmRhLCBlbSBmb3JtYXRvIGRlIHRleHRvIC5cclxuICovXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3BvLXRhYmxlLWNvbHVtbi1sYWJlbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLXRhYmxlLWNvbHVtbi1sYWJlbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFBvVGFibGVDb2x1bW5MYWJlbENvbXBvbmVudCB7XHJcbiAgQElucHV0KCdwLXZhbHVlJykgdmFsdWU6IFBvVGFibGVDb2x1bW5MYWJlbDtcclxufVxyXG4iLCI8cG8tdGFnXHJcbiAgW3AtY29sb3JdPVwidmFsdWU/LmNvbG9yXCJcclxuICBbcC12YWx1ZV09XCJ2YWx1ZT8ubGFiZWxcIlxyXG4gIFtwLXRleHQtY29sb3JdPVwidmFsdWU/LnRleHRDb2xvclwiXHJcbiAgW3AtaWNvbl09XCJ2YWx1ZT8uaWNvblwiXHJcbiAgW3AtdHlwZV09XCJ2YWx1ZT8udHlwZVwiXHJcbj5cclxuPC9wby10YWc+XHJcbiJdfQ==
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdGFibGUtY29sdW1uLWxhYmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby10YWJsZS9wby10YWJsZS1jb2x1bW4tbGFiZWwvcG8tdGFibGUtY29sdW1uLWxhYmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby10YWJsZS9wby10YWJsZS1jb2x1bW4tbGFiZWwvcG8tdGFibGUtY29sdW1uLWxhYmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7OztJQ0FsRiw0QkFRUzs7O0lBTlAsMEVBQXdCLDZEQUFBLHNFQUFBLDJEQUFBLDJEQUFBOztBREUxQjs7Ozs7O0dBTUc7QUFPSCxNQUFNLE9BQU8sMkJBQTJCO0lBTHhDO1FBTUUsYUFBUSxHQUFZLEtBQUssQ0FBQztLQVczQjtJQVBDLFFBQVE7UUFDTixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzNELENBQUM7O3NHQVhVLDJCQUEyQjs4RUFBM0IsMkJBQTJCO1FDakJ4QyxrRkFRUzs7UUFQTixtQ0FBYzs7dUZEZ0JKLDJCQUEyQjtjQUx2QyxTQUFTOzJCQUNFLHVCQUF1QixtQkFFaEIsdUJBQXVCLENBQUMsTUFBTTtnQkFLN0IsS0FBSztrQkFBdEIsS0FBSzttQkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgUG9UYWJsZUNvbHVtbkxhYmVsIH0gZnJvbSAnLi9wby10YWJsZS1jb2x1bW4tbGFiZWwuaW50ZXJmYWNlJztcclxuXHJcbi8qKlxyXG4gKiBAZG9jc1ByaXZhdGVcclxuICpcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqXHJcbiAqIENvbXBvbmVudGUgcGFyYSBhIGNyaWHDp8OjbyBkYSByZXByZXNlbnRhw6fDo28gZGEgbGVnZW5kYSwgZW0gZm9ybWF0byBkZSB0ZXh0byAuXHJcbiAqL1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdwby10YWJsZS1jb2x1bW4tbGFiZWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wby10YWJsZS1jb2x1bW4tbGFiZWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQb1RhYmxlQ29sdW1uTGFiZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGhhc0xhYmVsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgncC12YWx1ZScpIHZhbHVlOiBQb1RhYmxlQ29sdW1uTGFiZWw7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGVja1ZhbHVlSGFzTGFiZWwoKTtcclxuICB9XHJcblxyXG4gIGNoZWNrVmFsdWVIYXNMYWJlbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaGFzTGFiZWwgPSB0aGlzLnZhbHVlPy5sYWJlbD8udHJpbSgpID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIH1cclxufVxyXG4iLCI8cG8tdGFnXHJcbiAgKm5nSWY9XCJoYXNMYWJlbFwiXHJcbiAgW3AtY29sb3JdPVwidmFsdWU/LmNvbG9yXCJcclxuICBbcC12YWx1ZV09XCJ2YWx1ZT8ubGFiZWxcIlxyXG4gIFtwLXRleHQtY29sb3JdPVwidmFsdWU/LnRleHRDb2xvclwiXHJcbiAgW3AtaWNvbl09XCJ2YWx1ZT8uaWNvblwiXHJcbiAgW3AtdHlwZV09XCJ2YWx1ZT8udHlwZVwiXHJcbj5cclxuPC9wby10YWc+XHJcbiJdfQ==
@@ -9,20 +9,22 @@ function PoTableDetailComponent_thead_1_th_2_Template(rf, ctx) { if (rf & 1) {
9
9
  i0.ɵɵelement(0, "th", 6);
10
10
  } }
11
11
  function PoTableDetailComponent_thead_1_th_4_Template(rf, ctx) { if (rf & 1) {
12
- i0.ɵɵelementStart(0, "th", 7);
13
- i0.ɵɵtext(1);
14
- i0.ɵɵelementEnd();
12
+ i0.ɵɵelementStart(0, "th", 7)(1, "div", 8);
13
+ i0.ɵɵtext(2);
14
+ i0.ɵɵelementEnd()();
15
15
  } if (rf & 2) {
16
16
  const detail_r4 = ctx.$implicit;
17
17
  const ctx_r3 = i0.ɵɵnextContext(2);
18
18
  i0.ɵɵadvance(1);
19
+ i0.ɵɵclassProp("po-table-header-flex-right", detail_r4.type === "currency" || detail_r4.type === "number");
20
+ i0.ɵɵadvance(1);
19
21
  i0.ɵɵtextInterpolate1(" ", ctx_r3.getColumnTitleLabel(detail_r4), " ");
20
22
  } }
21
23
  function PoTableDetailComponent_thead_1_Template(rf, ctx) { if (rf & 1) {
22
24
  i0.ɵɵelementStart(0, "thead")(1, "tr");
23
25
  i0.ɵɵtemplate(2, PoTableDetailComponent_thead_1_th_2_Template, 1, 0, "th", 3);
24
26
  i0.ɵɵelement(3, "th", 4);
25
- i0.ɵɵtemplate(4, PoTableDetailComponent_thead_1_th_4_Template, 2, 1, "th", 5);
27
+ i0.ɵɵtemplate(4, PoTableDetailComponent_thead_1_th_4_Template, 3, 3, "th", 5);
26
28
  i0.ɵɵelementEnd()();
27
29
  } if (rf & 2) {
28
30
  const ctx_r0 = i0.ɵɵnextContext();
@@ -34,8 +36,8 @@ function PoTableDetailComponent_thead_1_Template(rf, ctx) { if (rf & 1) {
34
36
  function PoTableDetailComponent_tr_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {
35
37
  const _r12 = i0.ɵɵgetCurrentView();
36
38
  i0.ɵɵelementContainerStart(0);
37
- i0.ɵɵelement(1, "td", 12);
38
- i0.ɵɵelementStart(2, "td", 13)(3, "po-checkbox", 14);
39
+ i0.ɵɵelement(1, "td", 13);
40
+ i0.ɵɵelementStart(2, "td", 14)(3, "po-checkbox", 15);
39
41
  i0.ɵɵlistener("click", function PoTableDetailComponent_tr_3_ng_container_1_Template_po_checkbox_click_3_listener() { i0.ɵɵrestoreView(_r12); const item_r5 = i0.ɵɵnextContext().$implicit; const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r10.onSelectRow(item_r5)); })("p-change", function PoTableDetailComponent_tr_3_ng_container_1_Template_po_checkbox_p_change_3_listener() { i0.ɵɵrestoreView(_r12); const item_r5 = i0.ɵɵnextContext().$implicit; const ctx_r13 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r13.onSelectRow(item_r5)); })("ngModelChange", function PoTableDetailComponent_tr_3_ng_container_1_Template_po_checkbox_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r12); const item_r5 = i0.ɵɵnextContext().$implicit; return i0.ɵɵresetView(item_r5.$selected = $event); });
40
42
  i0.ɵɵelementEnd()();
41
43
  i0.ɵɵelementContainerEnd();
@@ -45,7 +47,7 @@ function PoTableDetailComponent_tr_3_ng_container_1_Template(rf, ctx) { if (rf &
45
47
  i0.ɵɵproperty("ngModel", item_r5.$selected);
46
48
  } }
47
49
  function PoTableDetailComponent_tr_3_ng_template_2_Template(rf, ctx) { if (rf & 1) {
48
- i0.ɵɵelement(0, "td", 15);
50
+ i0.ɵɵelement(0, "td", 16);
49
51
  } }
50
52
  function PoTableDetailComponent_tr_3_td_4_strong_1_Template(rf, ctx) { if (rf & 1) {
51
53
  i0.ɵɵelementStart(0, "strong");
@@ -129,21 +131,22 @@ function PoTableDetailComponent_tr_3_td_4_span_8_Template(rf, ctx) { if (rf & 1)
129
131
  } }
130
132
  function PoTableDetailComponent_tr_3_td_4_Template(rf, ctx) { if (rf & 1) {
131
133
  const _r40 = i0.ɵɵgetCurrentView();
132
- i0.ɵɵelementStart(0, "td", 16);
134
+ i0.ɵɵelementStart(0, "td", 17);
133
135
  i0.ɵɵlistener("click", function PoTableDetailComponent_tr_3_td_4_Template_td_click_0_listener() { i0.ɵɵrestoreView(_r40); const item_r5 = i0.ɵɵnextContext().$implicit; const ctx_r39 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r39.isSelectable ? ctx_r39.onSelectRow(item_r5) : "javascript:;"); });
134
136
  i0.ɵɵtemplate(1, PoTableDetailComponent_tr_3_td_4_strong_1_Template, 2, 1, "strong", 1);
135
- i0.ɵɵelementContainerStart(2, 17);
136
- i0.ɵɵtemplate(3, PoTableDetailComponent_tr_3_td_4_span_3_Template, 3, 6, "span", 18);
137
- i0.ɵɵtemplate(4, PoTableDetailComponent_tr_3_td_4_span_4_Template, 3, 4, "span", 18);
138
- i0.ɵɵtemplate(5, PoTableDetailComponent_tr_3_td_4_span_5_Template, 3, 4, "span", 18);
139
- i0.ɵɵtemplate(6, PoTableDetailComponent_tr_3_td_4_span_6_Template, 3, 4, "span", 18);
140
- i0.ɵɵtemplate(7, PoTableDetailComponent_tr_3_td_4_span_7_Template, 2, 1, "span", 18);
141
- i0.ɵɵtemplate(8, PoTableDetailComponent_tr_3_td_4_span_8_Template, 2, 1, "span", 19);
137
+ i0.ɵɵelementContainerStart(2, 18);
138
+ i0.ɵɵtemplate(3, PoTableDetailComponent_tr_3_td_4_span_3_Template, 3, 6, "span", 19);
139
+ i0.ɵɵtemplate(4, PoTableDetailComponent_tr_3_td_4_span_4_Template, 3, 4, "span", 19);
140
+ i0.ɵɵtemplate(5, PoTableDetailComponent_tr_3_td_4_span_5_Template, 3, 4, "span", 19);
141
+ i0.ɵɵtemplate(6, PoTableDetailComponent_tr_3_td_4_span_6_Template, 3, 4, "span", 19);
142
+ i0.ɵɵtemplate(7, PoTableDetailComponent_tr_3_td_4_span_7_Template, 2, 1, "span", 19);
143
+ i0.ɵɵtemplate(8, PoTableDetailComponent_tr_3_td_4_span_8_Template, 2, 1, "span", 20);
142
144
  i0.ɵɵelementContainerEnd();
143
145
  i0.ɵɵelementEnd();
144
146
  } if (rf & 2) {
145
147
  const detail_r18 = ctx.$implicit;
146
148
  const ctx_r9 = i0.ɵɵnextContext(2);
149
+ i0.ɵɵclassProp("po-table-column-right", ctx_r9.typeHeaderTop && (detail_r18.type === "currency" || detail_r18.type === "number"));
147
150
  i0.ɵɵadvance(1);
148
151
  i0.ɵɵproperty("ngIf", ctx_r9.typeHeaderInline);
149
152
  i0.ɵɵadvance(1);
@@ -160,10 +163,10 @@ function PoTableDetailComponent_tr_3_td_4_Template(rf, ctx) { if (rf & 1) {
160
163
  i0.ɵɵproperty("ngSwitchCase", "number");
161
164
  } }
162
165
  function PoTableDetailComponent_tr_3_Template(rf, ctx) { if (rf & 1) {
163
- i0.ɵɵelementStart(0, "tr", 8);
164
- i0.ɵɵtemplate(1, PoTableDetailComponent_tr_3_ng_container_1_Template, 4, 1, "ng-container", 9);
165
- i0.ɵɵtemplate(2, PoTableDetailComponent_tr_3_ng_template_2_Template, 1, 0, "ng-template", null, 10, i0.ɵɵtemplateRefExtractor);
166
- i0.ɵɵtemplate(4, PoTableDetailComponent_tr_3_td_4_Template, 9, 7, "td", 11);
166
+ i0.ɵɵelementStart(0, "tr", 9);
167
+ i0.ɵɵtemplate(1, PoTableDetailComponent_tr_3_ng_container_1_Template, 4, 1, "ng-container", 10);
168
+ i0.ɵɵtemplate(2, PoTableDetailComponent_tr_3_ng_template_2_Template, 1, 0, "ng-template", null, 11, i0.ɵɵtemplateRefExtractor);
169
+ i0.ɵɵtemplate(4, PoTableDetailComponent_tr_3_td_4_Template, 9, 9, "td", 12);
167
170
  i0.ɵɵelementEnd();
168
171
  } if (rf & 2) {
169
172
  const item_r5 = ctx.$implicit;
@@ -258,7 +261,7 @@ export class PoTableDetailComponent {
258
261
  }
259
262
  }
260
263
  PoTableDetailComponent.ɵfac = function PoTableDetailComponent_Factory(t) { return new (t || PoTableDetailComponent)(i0.ɵɵdirectiveInject(i1.DecimalPipe)); };
261
- PoTableDetailComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoTableDetailComponent, selectors: [["po-table-detail"]], inputs: { items: ["p-items", "items"], isSelectable: ["p-selectable", "isSelectable"], detail: ["p-detail", "detail"] }, outputs: { selectRow: "p-select-row" }, decls: 4, vars: 2, consts: [[1, "po-table-master-detail"], [4, "ngIf"], ["class", "po-table-detail-row", 3, "po-table-row-active", 4, "ngFor", "ngForOf"], ["class", "po-table-header po-table-column-selectable", 4, "ngIf"], [1, "po-table-header", "po-table-header-column", "po-table-header-master-detail"], ["class", "po-table-header po-table-header-ellipsis", 4, "ngFor", "ngForOf"], [1, "po-table-header", "po-table-column-selectable"], [1, "po-table-header", "po-table-header-ellipsis"], [1, "po-table-detail-row"], [4, "ngIf", "ngIfElse"], ["masterDetailSpace", ""], ["class", "po-table-column-master-detail po-table-master-detail-label", 3, "click", 4, "ngFor", "ngForOf"], [1, "po-table-column-master-detail-space-checkbox"], [1, "po-table-column", "po-table-column-selectable"], ["name", "checkbox", 3, "ngModel", "click", "p-change", "ngModelChange"], [1, "po-table-column-master-detail-space"], [1, "po-table-column-master-detail", "po-table-master-detail-label", 3, "click"], [3, "ngSwitch"], [4, "ngSwitchCase"], [4, "ngSwitchDefault"]], template: function PoTableDetailComponent_Template(rf, ctx) { if (rf & 1) {
264
+ PoTableDetailComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoTableDetailComponent, selectors: [["po-table-detail"]], inputs: { items: ["p-items", "items"], isSelectable: ["p-selectable", "isSelectable"], detail: ["p-detail", "detail"] }, outputs: { selectRow: "p-select-row" }, decls: 4, vars: 2, consts: [[1, "po-table-master-detail"], [4, "ngIf"], ["class", "po-table-detail-row", 3, "po-table-row-active", 4, "ngFor", "ngForOf"], ["class", "po-table-header po-table-column-selectable", 4, "ngIf"], [1, "po-table-header", "po-table-header-column", "po-table-header-master-detail"], ["class", "po-table-header po-table-header-ellipsis", 4, "ngFor", "ngForOf"], [1, "po-table-header", "po-table-column-selectable"], [1, "po-table-header", "po-table-header-ellipsis"], [1, "po-table-header-flex"], [1, "po-table-detail-row"], [4, "ngIf", "ngIfElse"], ["masterDetailSpace", ""], ["class", "po-table-column-master-detail po-table-master-detail-label", 3, "po-table-column-right", "click", 4, "ngFor", "ngForOf"], [1, "po-table-column-master-detail-space-checkbox"], [1, "po-table-column", "po-table-column-selectable"], ["name", "checkbox", 3, "ngModel", "click", "p-change", "ngModelChange"], [1, "po-table-column-master-detail-space"], [1, "po-table-column-master-detail", "po-table-master-detail-label", 3, "click"], [3, "ngSwitch"], [4, "ngSwitchCase"], [4, "ngSwitchDefault"]], template: function PoTableDetailComponent_Template(rf, ctx) { if (rf & 1) {
262
265
  i0.ɵɵelementStart(0, "table", 0);
263
266
  i0.ɵɵtemplate(1, PoTableDetailComponent_thead_1_Template, 5, 2, "thead", 1);
264
267
  i0.ɵɵelementStart(2, "tbody");
@@ -272,7 +275,7 @@ PoTableDetailComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoTa
272
275
  } }, dependencies: [i1.NgForOf, i1.NgIf, i1.NgSwitch, i1.NgSwitchCase, i1.NgSwitchDefault, i2.NgControlStatus, i2.NgModel, i3.PoCheckboxComponent, i1.CurrencyPipe, i1.DatePipe, i4.PoTimePipe], encapsulation: 2 });
273
276
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoTableDetailComponent, [{
274
277
  type: Component,
275
- args: [{ selector: 'po-table-detail', template: "<table class=\"po-table-master-detail\">\r\n <thead *ngIf=\"typeHeaderTop\">\r\n <tr>\r\n <th class=\"po-table-header po-table-column-selectable\" *ngIf=\"isSelectable\"></th>\r\n <th class=\"po-table-header po-table-header-column po-table-header-master-detail\"></th>\r\n <th class=\"po-table-header po-table-header-ellipsis\" *ngFor=\"let detail of detail.columns\">\r\n {{ getColumnTitleLabel(detail) }}\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n class=\"po-table-detail-row\"\r\n [class.po-table-row-active]=\"item.$selected && isSelectable\"\r\n *ngFor=\"let item of items\"\r\n >\r\n <ng-container *ngIf=\"isSelectable; else masterDetailSpace\">\r\n <td class=\"po-table-column-master-detail-space-checkbox\"></td>\r\n <td class=\"po-table-column po-table-column-selectable\">\r\n <po-checkbox\r\n name=\"checkbox\"\r\n (click)=\"onSelectRow(item)\"\r\n (p-change)=\"onSelectRow(item)\"\r\n [(ngModel)]=\"item.$selected\"\r\n ></po-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-template #masterDetailSpace>\r\n <td class=\"po-table-column-master-detail-space\"></td>\r\n </ng-template>\r\n\r\n <td\r\n class=\"po-table-column-master-detail po-table-master-detail-label\"\r\n (click)=\"isSelectable ? onSelectRow(item) : 'javascript:;'\"\r\n *ngFor=\"let detail of detailColumns\"\r\n >\r\n <strong *ngIf=\"typeHeaderInline\"> {{ getColumnTitleLabel(detail) }}: </strong>\r\n\r\n <ng-container [ngSwitch]=\"detail.type\">\r\n <span *ngSwitchCase=\"'currency'\">{{\r\n getDetailData(item, detail) | currency: detail.format:'symbol':'1.2-2'\r\n }}</span>\r\n <span *ngSwitchCase=\"'date'\">{{ getDetailData(item, detail) | date: detail.format || 'dd/MM/yyyy' }}</span>\r\n <span *ngSwitchCase=\"'time'\">{{\r\n getDetailData(item, detail) | po_time: detail.format || 'HH:mm:ss.ffffff'\r\n }}</span>\r\n <span *ngSwitchCase=\"'dateTime'\">\r\n {{ getDetailData(item, detail) | date: detail.format || 'dd/MM/yyyy HH:mm:ss' }}\r\n </span>\r\n <span *ngSwitchCase=\"'number'\">{{ formatNumberDetail(getDetailData(item, detail), detail.format) }}</span>\r\n <span *ngSwitchDefault>{{ getDetailData(item, detail) }}</span>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n" }]
278
+ args: [{ selector: 'po-table-detail', template: "<table class=\"po-table-master-detail\">\r\n <thead *ngIf=\"typeHeaderTop\">\r\n <tr>\r\n <th class=\"po-table-header po-table-column-selectable\" *ngIf=\"isSelectable\"></th>\r\n <th class=\"po-table-header po-table-header-column po-table-header-master-detail\"></th>\r\n <th class=\"po-table-header po-table-header-ellipsis\" *ngFor=\"let detail of detail.columns\">\r\n <div\r\n class=\"po-table-header-flex\"\r\n [class.po-table-header-flex-right]=\"detail.type === 'currency' || detail.type === 'number'\"\r\n >\r\n {{ getColumnTitleLabel(detail) }}\r\n </div>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr\r\n class=\"po-table-detail-row\"\r\n [class.po-table-row-active]=\"item.$selected && isSelectable\"\r\n *ngFor=\"let item of items\"\r\n >\r\n <ng-container *ngIf=\"isSelectable; else masterDetailSpace\">\r\n <td class=\"po-table-column-master-detail-space-checkbox\"></td>\r\n <td class=\"po-table-column po-table-column-selectable\">\r\n <po-checkbox\r\n name=\"checkbox\"\r\n (click)=\"onSelectRow(item)\"\r\n (p-change)=\"onSelectRow(item)\"\r\n [(ngModel)]=\"item.$selected\"\r\n ></po-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-template #masterDetailSpace>\r\n <td class=\"po-table-column-master-detail-space\"></td>\r\n </ng-template>\r\n\r\n <td\r\n class=\"po-table-column-master-detail po-table-master-detail-label\"\r\n (click)=\"isSelectable ? onSelectRow(item) : 'javascript:;'\"\r\n *ngFor=\"let detail of detailColumns\"\r\n [class.po-table-column-right]=\"typeHeaderTop && (detail.type === 'currency' || detail.type === 'number')\"\r\n >\r\n <strong *ngIf=\"typeHeaderInline\"> {{ getColumnTitleLabel(detail) }}: </strong>\r\n\r\n <ng-container [ngSwitch]=\"detail.type\">\r\n <span *ngSwitchCase=\"'currency'\">{{\r\n getDetailData(item, detail) | currency: detail.format:'symbol':'1.2-2'\r\n }}</span>\r\n <span *ngSwitchCase=\"'date'\">{{ getDetailData(item, detail) | date: detail.format || 'dd/MM/yyyy' }}</span>\r\n <span *ngSwitchCase=\"'time'\">{{\r\n getDetailData(item, detail) | po_time: detail.format || 'HH:mm:ss.ffffff'\r\n }}</span>\r\n <span *ngSwitchCase=\"'dateTime'\">\r\n {{ getDetailData(item, detail) | date: detail.format || 'dd/MM/yyyy HH:mm:ss' }}\r\n </span>\r\n <span *ngSwitchCase=\"'number'\">{{ formatNumberDetail(getDetailData(item, detail), detail.format) }}</span>\r\n <span *ngSwitchDefault>{{ getDetailData(item, detail) }}</span>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n" }]
276
279
  }], function () { return [{ type: i1.DecimalPipe }]; }, { items: [{
277
280
  type: Input,
278
281
  args: ['p-items']
@@ -286,4 +289,4 @@ PoTableDetailComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoTa
286
289
  type: Input,
287
290
  args: ['p-detail']
288
291
  }] }); })();
289
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdGFibGUtZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby10YWJsZS9wby10YWJsZS1kZXRhaWwvcG8tdGFibGUtZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby10YWJsZS9wby10YWJsZS1kZXRhaWwvcG8tdGFibGUtZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0lDQWhFLHdCQUFpRjs7O0lBRWpGLDZCQUEyRjtJQUN6RixZQUNGO0lBQUEsaUJBQUs7Ozs7SUFESCxlQUNGO0lBREUsc0VBQ0Y7OztJQU5KLDZCQUE2QixTQUFBO0lBRXpCLDZFQUFpRjtJQUNqRix3QkFBc0Y7SUFDdEYsNkVBRUs7SUFDUCxpQkFBSyxFQUFBOzs7SUFMcUQsZUFBa0I7SUFBbEIsMENBQWtCO0lBRUYsZUFBaUI7SUFBakIsK0NBQWlCOzs7O0lBV3pGLDZCQUEyRDtJQUN6RCx5QkFBOEQ7SUFDOUQsOEJBQXVELHNCQUFBO0lBR25ELHNPQUFTLGVBQUEsNEJBQWlCLENBQUEsSUFBQywrTkFDZixlQUFBLDRCQUFpQixDQUFBLElBREYsMk1BRWQsMENBQ3BCLElBSGtDO0lBRzVCLGlCQUFjLEVBQUE7SUFFbkIsMEJBQWU7OztJQUhULGVBQTRCO0lBQTVCLDJDQUE0Qjs7O0lBTWhDLHlCQUFxRDs7O0lBUXJELDhCQUFpQztJQUFDLFlBQW1DO0lBQUEsaUJBQVM7Ozs7SUFBNUMsZUFBbUM7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RUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN4QixPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO2FBQzNCO1lBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO2dCQUNqQixPQUFPLEtBQUssQ0FBQzthQUNkO1NBQ0Y7SUFDSCxDQUFDOzs0RkE1RlUsc0JBQXNCO3lFQUF0QixzQkFBc0I7UUNuQm5DLGdDQUFzQztRQUNwQywyRUFRUTtRQUNSLDZCQUFPO1FBQ0wscUVBMkNLO1FBQ1AsaUJBQVEsRUFBQTs7UUF0REEsZUFBbUI7UUFBbkIsd0NBQW1CO1FBYU4sZUFBUTtRQUFSLG1DQUFROzt1RkRLbEIsc0JBQXNCO2NBSmxDLFNBQVM7MkJBQ0UsaUJBQWlCOzhEQU9ULEtBQUs7a0JBQXRCLEtBQUs7bUJBQUMsU0FBUztZQUtPLFlBQVk7a0JBQWxDLEtBQUs7bUJBQUMsY0FBYztZQVNHLFNBQVM7a0JBQWhDLE1BQU07bUJBQUMsY0FBYztZQU9DLE1BQU07a0JBQTVCLEtBQUs7bUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERlY2ltYWxQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmltcG9ydCB7IGNhcGl0YWxpemVGaXJzdExldHRlciwgaXNUeXBlb2YgfSBmcm9tICcuLi8uLi8uLi91dGlscy91dGlsJztcclxuXHJcbmltcG9ydCB7IFBvVGFibGVEZXRhaWwgfSBmcm9tICcuL3BvLXRhYmxlLWRldGFpbC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBQb1RhYmxlRGV0YWlsQ29sdW1uIH0gZnJvbSAnLi9wby10YWJsZS1kZXRhaWwtY29sdW1uLmludGVyZmFjZSc7XHJcblxyXG4vKipcclxuICogQGRvY3NQcml2YXRlXHJcbiAqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKlxyXG4gKiBDb21wb25lbnRlIHJlc3BvbnPDoXZlbCBwb3IgYXByZXNlbnRhciBvIGRldGFsaGUgZGUgY2FkYSBsaW5oYSBkYSB0YWJlbGEuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3BvLXRhYmxlLWRldGFpbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLXRhYmxlLWRldGFpbC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFBvVGFibGVEZXRhaWxDb21wb25lbnQge1xyXG4gIC8qKlxyXG4gICAqIExpc3RhIGRlIGl0ZW5zIGRvIF9kZXRhaWxfIGRhIHRhYmVsYS5cclxuICAgKi9cclxuICBASW5wdXQoJ3AtaXRlbXMnKSBpdGVtczogQXJyYXk8YW55PjtcclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5lIHNlIGEgdGFiZWxhIHBvc3N1aSBhIG9ww6fDo28gZGUgYHNlbGVjdGFibGVgIGhhYmlsaXRhZGEuXHJcbiAgICovXHJcbiAgQElucHV0KCdwLXNlbGVjdGFibGUnKSBpc1NlbGVjdGFibGU/OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBvcHRpb25hbFxyXG4gICAqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICpcclxuICAgKiBBw6fDo28gZXhlY3V0YWRhIGFvIHNlbGVjaW9uYXIgb3UgZGVzbWFyY2FyIGEgc2VsZcOnw6NvIGRlIHVtYSBsaW5oYSBkZSBkZXRhbGhlIGRvIGBwby10YWJsZWAuXHJcbiAgICovXHJcbiAgQE91dHB1dCgncC1zZWxlY3Qtcm93Jykgc2VsZWN0Um93OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBwcml2YXRlIF9kZXRhaWw6IFBvVGFibGVEZXRhaWw7XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbmZpZ3VyYcOnw6NvIGRhIGxpbmhhIGRlIGRldGFsaGVzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgncC1kZXRhaWwnKSBzZXQgZGV0YWlsKHZhbHVlOiBQb1RhYmxlRGV0YWlsKSB7XHJcbiAgICB0aGlzLl9kZXRhaWwgPSB0aGlzLnJldHVyblBvVGFibGVEZXRhaWxPYmplY3QodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRldGFpbCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9kZXRhaWw7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRlY2ltYWxQaXBlOiBEZWNpbWFsUGlwZSkge31cclxuXHJcbiAgZ2V0IGRldGFpbENvbHVtbnMoKTogQXJyYXk8UG9UYWJsZURldGFpbENvbHVtbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGV0YWlsPy5jb2x1bW5zIHx8IFtdO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHR5cGVIZWFkZXJJbmxpbmUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKHRoaXMuZGV0YWlsICYmICF0aGlzLmRldGFpbFsndHlwZUhlYWRlciddKSB8fCB0aGlzLmRldGFpbFsndHlwZUhlYWRlciddID09PSAnaW5saW5lJztcclxuICB9XHJcblxyXG4gIGdldCB0eXBlSGVhZGVyVG9wKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGV0YWlsICYmIHRoaXMuZGV0YWlsWyd0eXBlSGVhZGVyJ10gPT09ICd0b3AnO1xyXG4gIH1cclxuXHJcbiAgZm9ybWF0TnVtYmVyRGV0YWlsKHZhbHVlOiBhbnksIGZvcm1hdDogc3RyaW5nKSB7XHJcbiAgICBpZiAoIWZvcm1hdCkge1xyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZGVjaW1hbFBpcGUudHJhbnNmb3JtKHZhbHVlLCBmb3JtYXQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29sdW1uVGl0bGVMYWJlbChkZXRhaWw6IFBvVGFibGVEZXRhaWxDb2x1bW4pIHtcclxuICAgIHJldHVybiBkZXRhaWwubGFiZWwgfHwgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGRldGFpbC5wcm9wZXJ0eSk7XHJcbiAgfVxyXG5cclxuICBnZXREZXRhaWxEYXRhKGl0ZW06IGFueSwgZGV0YWlsOiBQb1RhYmxlRGV0YWlsQ29sdW1uKSB7XHJcbiAgICBjb25zdCBhcnJheVByb3BlcnR5ID0gZGV0YWlsLnByb3BlcnR5LnNwbGl0KCcuJyk7XHJcbiAgICBpZiAoYXJyYXlQcm9wZXJ0eS5sZW5ndGggPiAxKSB7XHJcbiAgICAgIGNvbnN0IG5lc3RlZFByb3BlcnRpZXMgPSBhcnJheVByb3BlcnR5O1xyXG4gICAgICBsZXQgdmFsdWU6IGFueSA9IGl0ZW07XHJcbiAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgbmVzdGVkUHJvcGVydGllcykge1xyXG4gICAgICAgIHZhbHVlID0gdmFsdWVbcHJvcGVydHldIHx8IHZhbHVlW3Byb3BlcnR5XSA9PT0gMCA/IHZhbHVlW3Byb3BlcnR5XSA6ICcnO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBpdGVtW2RldGFpbC5wcm9wZXJ0eV07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdFJvdyhpdGVtKSB7XHJcbiAgICBpdGVtLiRzZWxlY3RlZCA9ICFpdGVtLiRzZWxlY3RlZDtcclxuICAgIHRoaXMuc2VsZWN0Um93LmVtaXQoaXRlbSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJldHVyblBvVGFibGVEZXRhaWxPYmplY3QodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlICYmIGlzVHlwZW9mKHZhbHVlLCAnb2JqZWN0JykpIHtcclxuICAgICAgaWYgKHZhbHVlLmNvbHVtbnMpIHtcclxuICAgICAgICB2YWx1ZS5jb2x1bW5zLmZvckVhY2goY29sdW1uID0+IChjb2x1bW4ucHJvcGVydHkgPSBjb2x1bW4ucHJvcGVydHkgfHwgY29sdW1uLmNvbHVtbikpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICByZXR1cm4geyBjb2x1bW5zOiB2YWx1ZSB9O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodmFsdWUuY29sdW1ucykge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8dGFibGUgY2xhc3M9XCJwby10YWJsZS1tYXN0ZXItZGV0YWlsXCI+XHJcbiAgPHRoZWFkICpuZ0lmPVwidHlwZUhlYWRlclRvcFwiPlxyXG4gICAgPHRyPlxyXG4gICAgICA8dGggY2xhc3M9XCJwby10YWJsZS1oZWFkZXIgcG8tdGFibGUtY29sdW1uLXNlbGVjdGFibGVcIiAqbmdJZj1cImlzU2VsZWN0YWJsZVwiPjwvdGg+XHJcbiAgICAgIDx0aCBjbGFzcz1cInBvLXRhYmxlLWhlYWRlciBwby10YWJsZS1oZWFkZXItY29sdW1uIHBvLXRhYmxlLWhlYWRlci1tYXN0ZXItZGV0YWlsXCI+PC90aD5cclxuICAgICAgPHRoIGNsYXNzPVwicG8tdGFibGUtaGVhZGVyIHBvLXRhYmxlLWhlYWRlci1lbGxpcHNpc1wiICpuZ0Zvcj1cImxldCBkZXRhaWwgb2YgZGV0YWlsLmNvbHVtbnNcIj5cclxuICAgICAgICB7eyBnZXRDb2x1bW5UaXRsZUxhYmVsKGRldGFpbCkgfX1cclxuICAgICAgPC90aD5cclxuICAgIDwvdHI+XHJcbiAgPC90aGVhZD5cclxuICA8dGJvZHk+XHJcbiAgICA8dHJcclxuICAgICAgY2xhc3M9XCJwby10YWJsZS1kZXRhaWwtcm93XCJcclxuICAgICAgW2NsYXNzLnBvLXRhYmxlLXJvdy1hY3RpdmVdPVwiaXRlbS4kc2VsZWN0ZWQgJiYgaXNTZWxlY3RhYmxlXCJcclxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIlxyXG4gICAgPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTZWxlY3RhYmxlOyBlbHNlIG1hc3RlckRldGFpbFNwYWNlXCI+XHJcbiAgICAgICAgPHRkIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLW1hc3Rlci1kZXRhaWwtc3BhY2UtY2hlY2tib3hcIj48L3RkPlxyXG4gICAgICAgIDx0ZCBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbiBwby10YWJsZS1jb2x1bW4tc2VsZWN0YWJsZVwiPlxyXG4gICAgICAgICAgPHBvLWNoZWNrYm94XHJcbiAgICAgICAgICAgIG5hbWU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdFJvdyhpdGVtKVwiXHJcbiAgICAgICAgICAgIChwLWNoYW5nZSk9XCJvblNlbGVjdFJvdyhpdGVtKVwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaXRlbS4kc2VsZWN0ZWRcIlxyXG4gICAgICAgICAgPjwvcG8tY2hlY2tib3g+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctdGVtcGxhdGUgI21hc3RlckRldGFpbFNwYWNlPlxyXG4gICAgICAgIDx0ZCBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1tYXN0ZXItZGV0YWlsLXNwYWNlXCI+PC90ZD5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgIDx0ZFxyXG4gICAgICAgIGNsYXNzPVwicG8tdGFibGUtY29sdW1uLW1hc3Rlci1kZXRhaWwgcG8tdGFibGUtbWFzdGVyLWRldGFpbC1sYWJlbFwiXHJcbiAgICAgICAgKGNsaWNrKT1cImlzU2VsZWN0YWJsZSA/IG9uU2VsZWN0Um93KGl0ZW0pIDogJ2phdmFzY3JpcHQ6OydcIlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBkZXRhaWwgb2YgZGV0YWlsQ29sdW1uc1wiXHJcbiAgICAgID5cclxuICAgICAgICA8c3Ryb25nICpuZ0lmPVwidHlwZUhlYWRlcklubGluZVwiPiB7eyBnZXRDb2x1bW5UaXRsZUxhYmVsKGRldGFpbCkgfX06IDwvc3Ryb25nPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJkZXRhaWwudHlwZVwiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidjdXJyZW5jeSdcIj57e1xyXG4gICAgICAgICAgICBnZXREZXRhaWxEYXRhKGl0ZW0sIGRldGFpbCkgfCBjdXJyZW5jeTogZGV0YWlsLmZvcm1hdDonc3ltYm9sJzonMS4yLTInXHJcbiAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIj57eyBnZXREZXRhaWxEYXRhKGl0ZW0sIGRldGFpbCkgfCBkYXRlOiBkZXRhaWwuZm9ybWF0IHx8ICdkZC9NTS95eXl5JyB9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCIndGltZSdcIj57e1xyXG4gICAgICAgICAgICBnZXREZXRhaWxEYXRhKGl0ZW0sIGRldGFpbCkgfCBwb190aW1lOiBkZXRhaWwuZm9ybWF0IHx8ICdISDptbTpzcy5mZmZmZmYnXHJcbiAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInZGF0ZVRpbWUnXCI+XHJcbiAgICAgICAgICAgIHt7IGdldERldGFpbERhdGEoaXRlbSwgZGV0YWlsKSB8IGRhdGU6IGRldGFpbC5mb3JtYXQgfHwgJ2RkL01NL3l5eXkgSEg6bW06c3MnIH19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlcidcIj57eyBmb3JtYXROdW1iZXJEZXRhaWwoZ2V0RGV0YWlsRGF0YShpdGVtLCBkZXRhaWwpLCBkZXRhaWwuZm9ybWF0KSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaERlZmF1bHQ+e3sgZ2V0RGV0YWlsRGF0YShpdGVtLCBkZXRhaWwpIH19PC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L3RkPlxyXG4gICAgPC90cj5cclxuICA8L3Rib2R5PlxyXG48L3RhYmxlPlxyXG4iXX0=
292
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdGFibGUtZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby10YWJsZS9wby10YWJsZS1kZXRhaWwvcG8tdGFibGUtZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby10YWJsZS9wby10YWJsZS1kZXRhaWwvcG8tdGFibGUtZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0lDQWhFLHdCQUFpRjs7O0lBRWpGLDZCQUEyRixhQUFBO0lBS3ZGLFlBQ0Y7SUFBQSxpQkFBTSxFQUFBOzs7O0lBSEosZUFBMkY7SUFBM0YsMEdBQTJGO0lBRTNGLGVBQ0Y7SUFERSxzRUFDRjs7O0lBVk4sNkJBQTZCLFNBQUE7SUFFekIsNkVBQWlGO0lBQ2pGLHdCQUFzRjtJQUN0Riw2RUFPSztJQUNQLGlCQUFLLEVBQUE7OztJQVZxRCxlQUFrQjtJQUFsQiwwQ0FBa0I7SUFFRixlQUFpQjtJQUFqQiwrQ0FBaUI7Ozs7SUFnQnpGLDZCQUEyRDtJQUN6RCx5QkFBOEQ7SUFDOUQsOEJBQXVELHNCQUFBO0lBR25ELHNPQUFTLGVBQUEsNEJBQWlCLENBQUEsSUFBQywrTkFDZixlQUFBLDRCQUFpQixDQUFBLElBREYsMk1BRWQsMENBQ3BCLElBSGtDO0lBRzVCLGlCQUFjLEVBQUE7SUFFbkIsMEJBQWU7OztJQUhULGVBQTRCO0lBQTVCLDJDQUE0Qjs7O0lBTWhDLHlCQUFxRDs7O0lBU3JELDhCQUFpQztJ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LFFBQVEsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQzthQUN2RjtZQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDeEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQzthQUMzQjtZQUVELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtnQkFDakIsT0FBTyxLQUFLLENBQUM7YUFDZDtTQUNGO0lBQ0gsQ0FBQzs7NEZBNUZVLHNCQUFzQjt5RUFBdEIsc0JBQXNCO1FDbkJuQyxnQ0FBc0M7UUFDcEMsMkVBYVE7UUFDUiw2QkFBTztRQUNMLHFFQTRDSztRQUNQLGlCQUFRLEVBQUE7O1FBNURBLGVBQW1CO1FBQW5CLHdDQUFtQjtRQWtCTixlQUFRO1FBQVIsbUNBQVE7O3VGREFsQixzQkFBc0I7Y0FKbEMsU0FBUzsyQkFDRSxpQkFBaUI7OERBT1QsS0FBSztrQkFBdEIsS0FBSzttQkFBQyxTQUFTO1lBS08sWUFBWTtrQkFBbEMsS0FBSzttQkFBQyxjQUFjO1lBU0csU0FBUztrQkFBaEMsTUFBTTttQkFBQyxjQUFjO1lBT0MsTUFBTTtrQkFBNUIsS0FBSzttQkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGVjaW1hbFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyLCBpc1R5cGVvZiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3V0aWwnO1xyXG5cclxuaW1wb3J0IHsgUG9UYWJsZURldGFpbCB9IGZyb20gJy4vcG8tdGFibGUtZGV0YWlsLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFBvVGFibGVEZXRhaWxDb2x1bW4gfSBmcm9tICcuL3BvLXRhYmxlLWRldGFpbC1jb2x1bW4uaW50ZXJmYWNlJztcclxuXHJcbi8qKlxyXG4gKiBAZG9jc1ByaXZhdGVcclxuICpcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqXHJcbiAqIENvbXBvbmVudGUgcmVzcG9uc8OhdmVsIHBvciBhcHJlc2VudGFyIG8gZGV0YWxoZSBkZSBjYWRhIGxpbmhhIGRhIHRhYmVsYS5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncG8tdGFibGUtZGV0YWlsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcG8tdGFibGUtZGV0YWlsLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUG9UYWJsZURldGFpbENvbXBvbmVudCB7XHJcbiAgLyoqXHJcbiAgICogTGlzdGEgZGUgaXRlbnMgZG8gX2RldGFpbF8gZGEgdGFiZWxhLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgncC1pdGVtcycpIGl0ZW1zOiBBcnJheTxhbnk+O1xyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmUgc2UgYSB0YWJlbGEgcG9zc3VpIGEgb3DDp8OjbyBkZSBgc2VsZWN0YWJsZWAgaGFiaWxpdGFkYS5cclxuICAgKi9cclxuICBASW5wdXQoJ3Atc2VsZWN0YWJsZScpIGlzU2VsZWN0YWJsZT86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIEHDp8OjbyBleGVjdXRhZGEgYW8gc2VsZWNpb25hciBvdSBkZXNtYXJjYXIgYSBzZWxlw6fDo28gZGUgdW1hIGxpbmhhIGRlIGRldGFsaGUgZG8gYHBvLXRhYmxlYC5cclxuICAgKi9cclxuICBAT3V0cHV0KCdwLXNlbGVjdC1yb3cnKSBzZWxlY3RSb3c6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIHByaXZhdGUgX2RldGFpbDogUG9UYWJsZURldGFpbDtcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uZmlndXJhw6fDo28gZGEgbGluaGEgZGUgZGV0YWxoZXMuXHJcbiAgICovXHJcbiAgQElucHV0KCdwLWRldGFpbCcpIHNldCBkZXRhaWwodmFsdWU6IFBvVGFibGVEZXRhaWwpIHtcclxuICAgIHRoaXMuX2RldGFpbCA9IHRoaXMucmV0dXJuUG9UYWJsZURldGFpbE9iamVjdCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgZGV0YWlsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RldGFpbDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGVjaW1hbFBpcGU6IERlY2ltYWxQaXBlKSB7fVxyXG5cclxuICBnZXQgZGV0YWlsQ29sdW1ucygpOiBBcnJheTxQb1RhYmxlRGV0YWlsQ29sdW1uPiB7XHJcbiAgICByZXR1cm4gdGhpcy5kZXRhaWw/LmNvbHVtbnMgfHwgW107XHJcbiAgfVxyXG5cclxuICBnZXQgdHlwZUhlYWRlcklubGluZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAodGhpcy5kZXRhaWwgJiYgIXRoaXMuZGV0YWlsWyd0eXBlSGVhZGVyJ10pIHx8IHRoaXMuZGV0YWlsWyd0eXBlSGVhZGVyJ10gPT09ICdpbmxpbmUnO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHR5cGVIZWFkZXJUb3AoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5kZXRhaWwgJiYgdGhpcy5kZXRhaWxbJ3R5cGVIZWFkZXInXSA9PT0gJ3RvcCc7XHJcbiAgfVxyXG5cclxuICBmb3JtYXROdW1iZXJEZXRhaWwodmFsdWU6IGFueSwgZm9ybWF0OiBzdHJpbmcpIHtcclxuICAgIGlmICghZm9ybWF0KSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5kZWNpbWFsUGlwZS50cmFuc2Zvcm0odmFsdWUsIGZvcm1hdCk7XHJcbiAgfVxyXG5cclxuICBnZXRDb2x1bW5UaXRsZUxhYmVsKGRldGFpbDogUG9UYWJsZURldGFpbENvbHVtbikge1xyXG4gICAgcmV0dXJuIGRldGFpbC5sYWJlbCB8fCBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoZGV0YWlsLnByb3BlcnR5KTtcclxuICB9XHJcblxyXG4gIGdldERldGFpbERhdGEoaXRlbTogYW55LCBkZXRhaWw6IFBvVGFibGVEZXRhaWxDb2x1bW4pIHtcclxuICAgIGNvbnN0IGFycmF5UHJvcGVydHkgPSBkZXRhaWwucHJvcGVydHkuc3BsaXQoJy4nKTtcclxuICAgIGlmIChhcnJheVByb3BlcnR5Lmxlbmd0aCA+IDEpIHtcclxuICAgICAgY29uc3QgbmVzdGVkUHJvcGVydGllcyA9IGFycmF5UHJvcGVydHk7XHJcbiAgICAgIGxldCB2YWx1ZTogYW55ID0gaXRlbTtcclxuICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBuZXN0ZWRQcm9wZXJ0aWVzKSB7XHJcbiAgICAgICAgdmFsdWUgPSB2YWx1ZVtwcm9wZXJ0eV0gfHwgdmFsdWVbcHJvcGVydHldID09PSAwID8gdmFsdWVbcHJvcGVydHldIDogJyc7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGl0ZW1bZGV0YWlsLnByb3BlcnR5XTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VsZWN0Um93KGl0ZW0pIHtcclxuICAgIGl0ZW0uJHNlbGVjdGVkID0gIWl0ZW0uJHNlbGVjdGVkO1xyXG4gICAgdGhpcy5zZWxlY3RSb3cuZW1pdChpdGVtKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmV0dXJuUG9UYWJsZURldGFpbE9iamVjdCh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodmFsdWUgJiYgaXNUeXBlb2YodmFsdWUsICdvYmplY3QnKSkge1xyXG4gICAgICBpZiAodmFsdWUuY29sdW1ucykge1xyXG4gICAgICAgIHZhbHVlLmNvbHVtbnMuZm9yRWFjaChjb2x1bW4gPT4gKGNvbHVtbi5wcm9wZXJ0eSA9IGNvbHVtbi5wcm9wZXJ0eSB8fCBjb2x1bW4uY29sdW1uKSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgIHJldHVybiB7IGNvbHVtbnM6IHZhbHVlIH07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh2YWx1ZS5jb2x1bW5zKSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjx0YWJsZSBjbGFzcz1cInBvLXRhYmxlLW1hc3Rlci1kZXRhaWxcIj5cclxuICA8dGhlYWQgKm5nSWY9XCJ0eXBlSGVhZGVyVG9wXCI+XHJcbiAgICA8dHI+XHJcbiAgICAgIDx0aCBjbGFzcz1cInBvLXRhYmxlLWhlYWRlciBwby10YWJsZS1jb2x1bW4tc2VsZWN0YWJsZVwiICpuZ0lmPVwiaXNTZWxlY3RhYmxlXCI+PC90aD5cclxuICAgICAgPHRoIGNsYXNzPVwicG8tdGFibGUtaGVhZGVyIHBvLXRhYmxlLWhlYWRlci1jb2x1bW4gcG8tdGFibGUtaGVhZGVyLW1hc3Rlci1kZXRhaWxcIj48L3RoPlxyXG4gICAgICA8dGggY2xhc3M9XCJwby10YWJsZS1oZWFkZXIgcG8tdGFibGUtaGVhZGVyLWVsbGlwc2lzXCIgKm5nRm9yPVwibGV0IGRldGFpbCBvZiBkZXRhaWwuY29sdW1uc1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwicG8tdGFibGUtaGVhZGVyLWZsZXhcIlxyXG4gICAgICAgICAgW2NsYXNzLnBvLXRhYmxlLWhlYWRlci1mbGV4LXJpZ2h0XT1cImRldGFpbC50eXBlID09PSAnY3VycmVuY3knIHx8IGRldGFpbC50eXBlID09PSAnbnVtYmVyJ1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgZ2V0Q29sdW1uVGl0bGVMYWJlbChkZXRhaWwpIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvdGg+XHJcbiAgICA8L3RyPlxyXG4gIDwvdGhlYWQ+XHJcbiAgPHRib2R5PlxyXG4gICAgPHRyXHJcbiAgICAgIGNsYXNzPVwicG8tdGFibGUtZGV0YWlsLXJvd1wiXHJcbiAgICAgIFtjbGFzcy5wby10YWJsZS1yb3ctYWN0aXZlXT1cIml0ZW0uJHNlbGVjdGVkICYmIGlzU2VsZWN0YWJsZVwiXHJcbiAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2VsZWN0YWJsZTsgZWxzZSBtYXN0ZXJEZXRhaWxTcGFjZVwiPlxyXG4gICAgICAgIDx0ZCBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1tYXN0ZXItZGV0YWlsLXNwYWNlLWNoZWNrYm94XCI+PC90ZD5cclxuICAgICAgICA8dGQgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4gcG8tdGFibGUtY29sdW1uLXNlbGVjdGFibGVcIj5cclxuICAgICAgICAgIDxwby1jaGVja2JveFxyXG4gICAgICAgICAgICBuYW1lPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3RSb3coaXRlbSlcIlxyXG4gICAgICAgICAgICAocC1jaGFuZ2UpPVwib25TZWxlY3RSb3coaXRlbSlcIlxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cIml0ZW0uJHNlbGVjdGVkXCJcclxuICAgICAgICAgID48L3BvLWNoZWNrYm94PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNtYXN0ZXJEZXRhaWxTcGFjZT5cclxuICAgICAgICA8dGQgY2xhc3M9XCJwby10YWJsZS1jb2x1bW4tbWFzdGVyLWRldGFpbC1zcGFjZVwiPjwvdGQ+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICA8dGRcclxuICAgICAgICBjbGFzcz1cInBvLXRhYmxlLWNvbHVtbi1tYXN0ZXItZGV0YWlsIHBvLXRhYmxlLW1hc3Rlci1kZXRhaWwtbGFiZWxcIlxyXG4gICAgICAgIChjbGljayk9XCJpc1NlbGVjdGFibGUgPyBvblNlbGVjdFJvdyhpdGVtKSA6ICdqYXZhc2NyaXB0OjsnXCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgZGV0YWlsIG9mIGRldGFpbENvbHVtbnNcIlxyXG4gICAgICAgIFtjbGFzcy5wby10YWJsZS1jb2x1bW4tcmlnaHRdPVwidHlwZUhlYWRlclRvcCAmJiAoZGV0YWlsLnR5cGUgPT09ICdjdXJyZW5jeScgfHwgZGV0YWlsLnR5cGUgPT09ICdudW1iZXInKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8c3Ryb25nICpuZ0lmPVwidHlwZUhlYWRlcklubGluZVwiPiB7eyBnZXRDb2x1bW5UaXRsZUxhYmVsKGRldGFpbCkgfX06IDwvc3Ryb25nPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJkZXRhaWwudHlwZVwiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidjdXJyZW5jeSdcIj57e1xyXG4gICAgICAgICAgICBnZXREZXRhaWxEYXRhKGl0ZW0sIGRldGFpbCkgfCBjdXJyZW5jeTogZGV0YWlsLmZvcm1hdDonc3ltYm9sJzonMS4yLTInXHJcbiAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIj57eyBnZXREZXRhaWxEYXRhKGl0ZW0sIGRldGFpbCkgfCBkYXRlOiBkZXRhaWwuZm9ybWF0IHx8ICdkZC9NTS95eXl5JyB9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCIndGltZSdcIj57e1xyXG4gICAgICAgICAgICBnZXREZXRhaWxEYXRhKGl0ZW0sIGRldGFpbCkgfCBwb190aW1lOiBkZXRhaWwuZm9ybWF0IHx8ICdISDptbTpzcy5mZmZmZmYnXHJcbiAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInZGF0ZVRpbWUnXCI+XHJcbiAgICAgICAgICAgIHt7IGdldERldGFpbERhdGEoaXRlbSwgZGV0YWlsKSB8IGRhdGU6IGRldGFpbC5mb3JtYXQgfHwgJ2RkL01NL3l5eXkgSEg6bW06c3MnIH19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlcidcIj57eyBmb3JtYXROdW1iZXJEZXRhaWwoZ2V0RGV0YWlsRGF0YShpdGVtLCBkZXRhaWwpLCBkZXRhaWwuZm9ybWF0KSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaERlZmF1bHQ+e3sgZ2V0RGV0YWlsRGF0YShpdGVtLCBkZXRhaWwpIH19PC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L3RkPlxyXG4gICAgPC90cj5cclxuICA8L3Rib2R5PlxyXG48L3RhYmxlPlxyXG4iXX0=
@@ -170,7 +170,7 @@ export class PoI18nBaseService {
170
170
  * @returns {string} sigla do idioma padrão.
171
171
  */
172
172
  getLanguage() {
173
- return this.languageService?.getLanguage();
173
+ return this.languageService.getLanguage();
174
174
  }
175
175
  getLiterals(options = {}) {
176
176
  const language = options['language'] ? options['language'].toLowerCase() : this.getLanguage();
@@ -196,7 +196,7 @@ export class PoI18nBaseService {
196
196
  * @returns {string} sigla do idioma padrão.
197
197
  */
198
198
  getShortLanguage() {
199
- return this.languageService?.getShortLanguage();
199
+ return this.languageService.getShortLanguage();
200
200
  }
201
201
  /**
202
202
  * <a id="setLanguage"></a>
@@ -221,7 +221,7 @@ export class PoI18nBaseService {
221
221
  if (!isLanguage(language)) {
222
222
  return;
223
223
  }
224
- this.languageService?.setLanguage(language);
224
+ this.languageService.setLanguage(language);
225
225
  if (reload) {
226
226
  reloadCurrentPage();
227
227
  }
@@ -229,7 +229,7 @@ export class PoI18nBaseService {
229
229
  setConfig(config) {
230
230
  // Seta as configurações padrões definidas no importação do módulo
231
231
  if (config['default']) {
232
- this.languageService?.setLanguageDefault(config['default']['language']);
232
+ this.languageService.setLanguageDefault(config['default']['language']);
233
233
  this.contextDefault = config['default']['context'] ? config['default']['context'] : '';
234
234
  this.useCache = config['default']['cache'] ? config['default']['cache'] : false;
235
235
  }
@@ -444,4 +444,4 @@ PoI18nBaseService.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoI18nBas
444
444
  type: Inject,
445
445
  args: [HttpClient]
446
446
  }] }, { type: i1.PoLanguageService }]; }, null); })();
447
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8taTE4bi1iYXNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3NlcnZpY2VzL3BvLWkxOG4vcG8taTE4bi1iYXNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBS2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQUUvRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUlHO0FBR0gsTUFBTSxPQUFPLGlCQUFpQjtJQVM1QixZQUMrQixNQUFxQixFQUN0QixJQUFpQixFQUNyQyxlQUFtQztRQUZkLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDdEIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNyQyxvQkFBZSxHQUFmLGVBQWUsQ0FBb0I7UUFYckMsWUFBTyxHQUFRLEVBQUUsQ0FBQztRQUlsQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFCLG9CQUFlLEdBQVEsRUFBRSxDQUFDO1FBT2hDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0gsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxX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QUNqQyxDQUFDO0lBRUQsd0ZBQXdGO0lBQ2hGLFdBQVcsQ0FBQyxZQUFpQixFQUFFLEdBQVE7UUFDN0MsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsWUFBWSxFQUFFLENBQUM7SUFDckMsQ0FBQzs7a0ZBaldVLGlCQUFpQix1QkFVbEIsV0FBVyx3QkFDWCxVQUFVO29FQVhULGlCQUFpQjt1RkFBakIsaUJBQWlCO2NBRDdCLFNBQVM7O3NCQVdMLE1BQU07dUJBQUMsV0FBVzs7c0JBQ2xCLE1BQU07dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBpc0xhbmd1YWdlLCByZWxvYWRDdXJyZW50UGFnZSB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWwnO1xyXG5pbXBvcnQgeyBQb0xhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgUG9JMThuQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWkxOG4tY29uZmlnLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFBvSTE4bkxpdGVyYWxzIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWkxOG4tbGl0ZXJhbHMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgSTE4Tl9DT05GSUcgfSBmcm9tICcuL3BvLWkxOG4tY29uZmlnLWluamVjdGlvbi10b2tlbic7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqXHJcbiAqIE8gc2VydmnDp28gYFBvSTE4blNlcnZpY2VgIHBvc3NpYmlsaXRhIHV0aWxpemFyIG3Dumx0aXBsb3MgaWRpb21hcyBlIGNvbnRleHRvcyBuYSBhcGxpY2HDp8Ojby5cclxuICpcclxuICogPiBBbnRlcyBkYSB1dGlsaXphw6fDo28gZG8gc2VydmnDp28sIMOpIG5lY2Vzc8OhcmlvIHJlYWxpemFyIGFcclxuICogW2ltcG9ydGHDp8OjbyBlIGNvbmZpZ3VyYcOnw6NvIGRvIG3Ds2R1bG8gYFBvSTE4bk1vZHVsZWBdKC9kb2N1bWVudGF0aW9uL3BvLWkxOG4jaTE4bi1jb25maWcpLlxyXG4gKlxyXG4gKiAqKlV0aWxpemHDp8OjbyBkbyBzZXJ2acOnbyBgUG9JMThuU2VydmljZWA6KipcclxuICpcclxuICogUGFyYSB1dGlsaXphciBvIHNlcnZpw6dvIGJhc3RhIGltcG9ydMOhLWxvIG5vcyBjb21wb25lbnRlcyBxdWUgbmVjZXNzaXRhcmVtIGRlIGxpdGVyYWlzIGUgZmF6ZXIgYSBpbmplw6fDo28gZGVcclxuICogZGVwZW5kw6puY2lhIG5vIGNvbnN0cnV0b3I6XHJcbiAqIGBgYFxyXG4gKiAgaW1wb3J0IHsgUG9JMThuU2VydmljZSB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcclxuICogIC4uLlxyXG4gKiAgY29uc3RydWN0b3IocHJpdmF0ZSBwb0kxOG5TZXJ2aWNlOiBQb0kxOG5TZXJ2aWNlKSB7IH1cclxuICogIC4uLlxyXG4gKiBgYGBcclxuICpcclxuICogUG9yIGZpbSByZWFsaXphciBhIGJ1c2NhIHBlbGFzIGxpdGVyYWlzLCBpbnNjcmV2ZW5kby1zZSBubyBbT2JzZXJ2YWJsZV0oaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL29ic2VydmFibGVzKSBwZWxvXHJcbiAqIG3DqXRvZG8gYGdldExpdGVyYWxzKClgLlxyXG4gKlxyXG4gKiA+IE8gbcOpdG9kbyBgZ2V0TGl0ZXJhbHMoKWAgcG9kZSByZWNlYmVyIHVtIG9iamV0byBkbyB0aXBvIGRhIGludGVyZmFjZSBgUG9JMThuTGl0ZXJhbHNgIGNvbW8gcGFyw6JtZXRybyxcclxuICogcG9yw6ltLCBuZW5odW1hIGRhcyBwcm9wcmllZGFkZXMgc8OjbyBvYnJpZ2F0w7NyaWFzLiBDYXNvIG5lbmh1bSBwYXLDom1ldHJvIHNlamEgcGFzc2Fkbywgc2Vyw6NvIGJ1c2NhZGFzXHJcbiAqIHRvZGFzIGFzIGxpdGVyYWlzIGRvIGNvbnRleHRvIGRlZmluaWRvIGNvbSBwYWRyw6NvLCBubyBpZGlvbWEgZGVmaW5pZG8gY29tbyBwYWRyw6NvLlxyXG4gKlxyXG4gKiBFeGVtcGxvcyBkZSByZXF1aXNpw6fDo286XHJcbiAqIGBgYFxyXG4gKiBsaXRlcmFscyA9IHt9O1xyXG4gKiBsaXRlcmFsc0VuID0ge307XHJcbiAqIGxpdGVyYWxzQ3JtID0ge307XHJcbiAqXHJcbiAqIGNvbnN0cnVjdG9yKHByaXZhdGUgcG9JMThuU2VydmljZTogUG9JMThuU2VydmljZSkge1xyXG4gKiAgIHBvSTE4blNlcnZpY2UuZ2V0TGl0ZXJhbHMoKVxyXG4gKiAgICAgLnN1YnNjcmliZSgobGl0ZXJhbHMpID0+IHtcclxuICogICAgICAgdGhpcy5saXRlcmFscyA9IGxpdGVyYWxzO1xyXG4gKiAgICAgfSk7XHJcbiAqXHJcbiAqICAgcG9JMThuU2VydmljZS5nZXRMaXRlcmFscyh7Y29udGV4dDogJ2NybScsIGxpdGVyYWxzOiBbJ2FkZCcsICdyZW1vdmUnXX0pXHJcbiAqICAgICAuc3Vic2NyaWJlKChsaXRlcmFscykgPT4ge1xyXG4gKiAgICAgICB0aGlzLmxpdGVyYWxzQ3JtID0gbGl0ZXJhbHM7XHJcbiAqICAgICB9KTtcclxuICpcclxuICogICBwb0kxOG5TZXJ2aWNlLmdldExpdGVyYWxzKHtsYW5ndWFnZTogJ2VuLXVzJ30pXHJcbiAqICAgICAuc3Vic2NyaWJlKChsaXRlcmFscykgPT4ge1xyXG4gKiAgICAgICB0aGlzLmxpdGVyYWxzRW4gPSBsaXRlcmFscztcclxuICogICAgIH0pO1xyXG4gKiB9XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBQYXJhIGFwcmVzZW50YXIgYXMgbGl0ZXJhaXMgY2FwdHVyYWRhcyBhY2ltYSBubyBIVE1MIGRvIGNvbXBvbmVudGUsIGRldmUtc2UgdXRpbGl6YXIgb1xyXG4gKiBzZWd1aW50ZSBjw7NkaWdvOlxyXG4gKlxyXG4gKiA8cHJlIG5nTm9uQmluZGFibGU+XHJcbiAqIHt7IGxpdGVyYWxzPy5hZGQgfX1cclxuICoge3sgbGl0ZXJhbHM/LnJlbW92ZSB9fVxyXG4gKiA8L3ByZT5cclxuICpcclxuICogQ2FzbyBhcyBsaXRlcmFpcyBjb250ZW5oYW0gdmFyacOhdmVpcyBxdWUgcHJlY2lzZW0gc2VyIHN1YnN0aXR1w61kYXMsIHBvZGUtc2UgdXRpbGl6YXIgbyAqcGlwZSogYHBvSTE4bmAuXHJcbiAqIMOJIHBvc3PDrXZlbCBpbmZvcm1hciBwcm9wcmllZGFkZXMgZG8gY29tcG9uZW50ZSBjb21vIGBuYW1lYCBlIGBuaWNrbmFtZWAgb3VcclxuICogaW5mb3JtYXIgbyB2YWxvciBkaXJldGFtZW50ZSBjb20gXCJcIiBvdSBuw7ptZXJvLCBjb25mb3JtZSBvIGV4ZW1wbG8gYWJhaXhvOlxyXG4gKlxyXG4gKiA8cHJlIG5nTm9uQmluZGFibGU+XHJcbiAqIHt7IGxpdGVyYWxzPy5wZW9wbGUgfCBwb0kxOG46WzEyMF0gfX1cclxuICoge3sgbGl0ZXJhbHM/LmdyZWV0aW5nIHwgcG9JMThuOltuYW1lLCBuaWNrbmFtZV0gfX1cclxuICoge3sgbGl0ZXJhbHM/LmdyZWV0aW5nIHwgcG9JMThuOltcIkJyYWRcIiwgXCJHcmVlblwiXSB9fVxyXG4gKiA8L3ByZT5cclxuICpcclxuICogPiDDiSBpbXBvcnRhbnRlIG8gdXNvIGRvIG9wZXJhZG9yIGA/YCAoRWx2aXMpIHBhcmEgZXZpdGFyIGVycm9zIGVucXVhbnRvIGFzIGxpdGVyYWlzIG7Do28gZm9yZW0gY2FycmVnYWRhcy5cclxuICpcclxuICogIyMjIFRlc3RlIHVuaXTDoXJpb1xyXG4gKlxyXG4gKiBBYmFpeG8gc2VndWUgdW0gZXhlbXBsbyBkZSAqc2V0dXAqIGluaWNpYWwgZGUgdGVzdGUgdW5pdMOhcmlvIGRvICpBcHBDb21wb25lbnQqIHF1ZSB1dGlsaXphIG8gYFBvSTE4blNlcnZpY2VgOlxyXG4gKlxyXG4gKiA+IEF0ZW7Dp8OjbzogbsOjbyBkZWNsYXJhciBvIGBQb0kxOG5TZXJ2aWNlYCBubyBwcm92aWRlcnMgZG8gVGVzdEJlZCBwb2lzIGEgYmlibGlvdGVjYSByZWFsaXphIGEgaW5qZcOnw6NvIGRlIGRlcGVuZMOqbmNpYSBkZSBmb3JtYSBkaW7Dom1pY2EuXHJcbiAqID4gU2UgbyBzZXJ2acOnbyBmb3IgZGVjbGFyYWRvIG8gdGVzdGUgbsOjbyBmYXLDoSBhIGluamXDp8OjbyBlIG8gdGVzdGUgYXByZXNlbnRhcsOhIGVycm9zLlxyXG4gKlxyXG4gKiBgYGBcclxuICogaW1wb3J0IHsgYXN5bmMsIFRlc3RCZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xyXG4gKiBpbXBvcnQgeyBIdHRwQ2xpZW50VGVzdGluZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwL3Rlc3RpbmcnO1xyXG4gKlxyXG4gKiBpbXBvcnQgeyBQb0kxOG5Nb2R1bGUgfSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XHJcbiAqXHJcbiAqIGltcG9ydCB7IEFwcENvbXBvbmVudCB9IGZyb20gJy4vYXBwLmNvbXBvbmVudCc7XHJcbiAqXHJcbiAqIGRlc2NyaWJlKCdBcHBDb21wb25lbnQnLCAoKSA9PiB7XHJcbiAqICAgY29uc3QgYW5vdGhlclBUID0ge1xyXG4gKiAgICAgdGV4dDogJ3RleHRvJyxcclxuICogICAgIGFkZDogJ2FkaWNpb25hcicsXHJcbiAqICAgICByZW1vdmU6ICdyZW1vdmVyJ1xyXG4gKiAgIH07XHJcbiAqXHJcbiAqICAgY29uc3QgZ2VuZXJhbFBUID0ge1xyXG4gKiAgICAgdGV4dDogJ3RleHRvJyxcclxuICogICAgIGFkZDogJ2FkaWNpb25hcicsXHJcbiAqICAgICByZW1vdmU6ICdyZW1vdmVyJ1xyXG4gKiAgIH07XHJcbiAqXHJcbiAqICAgY29uc3QgY29uZmlnID0ge1xyXG4gKiAgICAgZGVmYXVsdDoge1xyXG4gKiAgICAgICBsYW5ndWFnZTogJ3B0LUJSJyxcclxuICogICAgICAgY29udGV4dDogJ2dlbmVyYWwnLFxyXG4gKiAgICAgICBjYWNoZTogZmFsc2VcclxuICogICAgIH0sXHJcbiAqICAgICBjb250ZXh0czoge1xyXG4gKiAgICAgICBnZW5lcmFsOiB7XHJcbiAqICAgICAgICAgJ3B0LWJyJzogZ2VuZXJhbFBUXHJcbiAqICAgICAgIH0sXHJcbiAqICAgICAgIGFub3RoZXI6IHtcclxuICogICAgICAgICAncHQtYnInOiBhbm90aGVyUFRcclxuICogICAgICAgfVxyXG4gKiAgICAgfVxyXG4gKiAgIH07XHJcbiAqXHJcbiAqICAgYmVmb3JlRWFjaChhc3luYygoKSA9PiB7XHJcbiAqICAgICBUZXN0QmVkLmNvbmZpZ3VyZVRlc3RpbmdNb2R1bGUoe1xyXG4gKiAgICAgICBkZWNsYXJhdGlvbnM6IFtcclxuICogICAgICAgICBBcHBDb21wb25lbnRcclxuICogICAgICAgXSxcclxuICogICAgICAgaW1wb3J0czogW1xyXG4gKiAgICAgICAgIEh0dHBDbGllbnRUZXN0aW5nTW9kdWxlLFxyXG4gKiAgICAgICAgIFBvSTE4bk1vZHVsZS5jb25maWcoY29uZmlnKVxyXG4gKiAgICAgICBdXHJcbiAqICAgICB9KS5jb21waWxlQ29tcG9uZW50cygpO1xyXG4gKiAgIH0pKTtcclxuICpcclxuICogICBpdCgnc2hvdWxkIGNyZWF0ZSB0aGUgYXBwJywgYXN5bmMoKCkgPT4ge1xyXG4gKiAgICAgY29uc3QgZml4dHVyZSA9IFRlc3RCZWQuY3JlYXRlQ29tcG9uZW50KEFwcENvbXBvbmVudCk7XHJcbiAqICAgICBjb25zdCBhcHAgPSBmaXh0dXJlLmRlYnVnRWxlbWVudC5jb21wb25lbnRJbnN0YW5jZTtcclxuICpcclxuICogICAgIGV4cGVjdChhcHApLnRvQmVUcnV0aHkoKTtcclxuICogICB9KSk7XHJcbiAqXHJcbiAqIH0pO1xyXG4gKiBgYGBcclxuICovXHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIFBvSTE4bkJhc2VTZXJ2aWNlIHtcclxuICBwcml2YXRlIHZhckkxOG46IGFueSA9IHt9O1xyXG5cclxuICBwcml2YXRlIGNvbnRleHREZWZhdWx0OiBzdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgdXNlQ2FjaGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBzZXJ2aWNlc0NvbnRleHQ6IGFueSA9IHt9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoSTE4Tl9DT05GSUcpIHByaXZhdGUgY29uZmlnPzogUG9JMThuQ29uZmlnLFxyXG4gICAgQEluamVjdChIdHRwQ2xpZW50KSBwcml2YXRlIGh0dHA/OiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U/OiBQb0xhbmd1YWdlU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5zZXRDb25maWcoY29uZmlnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIDxhIGlkPVwiZ2V0LWxhbmd1YWdlXCI+PC9hPlxyXG4gICAqIE3DqXRvZG8gcXVlIHJldG9ybmEgbyBpZGlvbWEgcGFkcsOjbyBhdGl2by5cclxuICAgKlxyXG4gICAqIEEgYnVzY2EgZGVzdGUgaWRpb21hIHBlbG8gbcOpdG9kbyBzZXLDoSBmZWl0YSBuYSBzZWd1aW50ZSBvcmRlbTpcclxuICAgKlxyXG4gICAqICAgMSAtIG8gaWRpb21hIHF1ZSBmb2kgYXJtYXplbmFkbyBubyAqbG9jYWxTdG9yYWdlKiwgYXRyYXbDqXMgZG8gbcOpdG9kbyBbYHNldExhbmd1YWdlKClgXShkb2N1bWVudGF0aW9uL3BvLWkxOG4jc2V0TGFuZ3VhZ2UpLlxyXG4gICAqXHJcbiAgICogICAyIC0gbyB2YWxvciBpbnNlcmlkbyBubyBtw7NkdWxvIGRvIGkxOG4gYXRyYXbDqXMgZG8gcGFyw6JtZXRybyBgY29uZmlnYCwgc2VuZG8gbyBpZGlvbWEgaW5zZXJpZG8gbmEgcHJvcHJpZWRhZGVcclxuICAgKiBgbGFuZ3VhZ2VgIGRhIGludGVyZmFjZSBbYFBvSTE4bkNvbmZpZ0RlZmF1bHRgXShkb2N1bWVudGF0aW9uL3BvLWkxOG4jcG9JMThuQ29uZmlnRGVmYXVsdCkuXHJcbiAgICpcclxuICAgKiAgIDMgLSBvIGlkaW9tYSBkbyBuYXZlZ2Fkb3IgdXRpbGl6YWRvLlxyXG4gICAqXHJcbiAgICogPiBDYXNvIG8gaWRpb21hIGRvIG5hdmVnYWRvciBuw6NvIHNlamEgc3Vwb3J0YWRvIHBlbG8gUE8gKGBwdGAsIGBlbmAsIGBlc2Agb3UgYHJ1YCksIHNlcsOhIHJldG9ybmFkbyB2YWxvciBgcHRgLlxyXG4gICAqXHJcbiAgICogQHJldHVybnMge3N0cmluZ30gc2lnbGEgZG8gaWRpb21hIHBhZHLDo28uXHJcbiAgICovXHJcbiAgZ2V0TGFuZ3VhZ2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmxhbmd1YWdlU2VydmljZT8uZ2V0TGFuZ3VhZ2UoKTtcclxuICB9XHJcblxyXG4gIGdldExpdGVyYWxzKG9wdGlvbnM6IFBvSTE4bkxpdGVyYWxzID0ge30pOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xyXG4gICAgY29uc3QgbGFuZ3VhZ2UgPSBvcHRpb25zWydsYW5ndWFnZSddID8gb3B0aW9uc1snbGFuZ3VhZ2UnXS50b0xvd2VyQ2FzZSgpIDogdGhpcy5nZXRMYW5ndWFnZSgpO1xyXG4gICAgY29uc3QgY29udGV4dCA9IG9wdGlvbnNbJ2NvbnRleHQnXSA/IG9wdGlvbnNbJ2NvbnRleHQnXSA6IHRoaXMuY29udGV4dERlZmF1bHQ7XHJcbiAgICBjb25zdCBsaXRlcmFsczogQXJyYXk8c3RyaW5nPiA9IG9wdGlvbnNbJ2xpdGVyYWxzJ10gPyBvcHRpb25zWydsaXRlcmFscyddIDogW107XHJcblxyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcclxuICAgICAgaWYgKHRoaXMuc2VydmljZXNDb250ZXh0W2NvbnRleHRdKSB7XHJcbiAgICAgICAgLy8gRmF6IG8gcHJvY2Vzc28gZGUgYnVzY2EgZGUgdW0gY29udGV4dG8gcXVlIGNvbnTDqW0gc2VydmnDp29cclxuICAgICAgICB0aGlzLmdldExpdGVyYWxzRnJvbUNvbnRleHRTZXJ2aWNlKGxhbmd1YWdlLCBjb250ZXh0LCBsaXRlcmFscywgb2JzZXJ2ZXIpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIEZheiBvIHByb2Nlc3NvIGRlIGJ1c2NhIGRlIHVtIGNvbnRleHRvIHF1ZSB1dGlsaXphIGNvbnN0YW50ZVxyXG4gICAgICAgIHRoaXMuZ2V0TGl0ZXJhbHNGcm9tQ29udGV4dENvbnN0YW50KGxhbmd1YWdlLCBjb250ZXh0LCBsaXRlcmFscywgb2JzZXJ2ZXIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE3DqXRvZG8gcXVlIHJldG9ybmEgbyBpZGlvbWEgcGFkcsOjbyBhdGl2bywgY29tIHNvbWVudGUgYSBhYnJldmlhw6fDo28gZG8gaWRpb21hIChkdWFzIHByaW1laXJhcyBsZXRyYXMpLlxyXG4gICAqIFBvciBleGVtcGxvOiBcInB0XCIgb3UgXCJlc1wiLlxyXG4gICAqXHJcbiAgICogQSBidXNjYSBkZXN0ZSBpZGlvbWEgw6kgYmFzZWFkYSBubyBtw6l0b2RvIFsqKmdldExhbmd1YWdlKCkqKl0oL2RvY3VtZW50YXRpb24vcG8taTE4biNnZXQtbGFuZ3VhZ2UpLlxyXG4gICAqXHJcbiAgICogQHJldHVybnMge3N0cmluZ30gc2lnbGEgZG8gaWRpb21hIHBhZHLDo28uXHJcbiAgICovXHJcbiAgZ2V0U2hvcnRMYW5ndWFnZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlPy5nZXRTaG9ydExhbmd1YWdlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiA8YSBpZD1cInNldExhbmd1YWdlXCI+PC9hPlxyXG4gICAqIE3DqXRvZG8gcGFyYSBhbHRlcmFyIG8gaWRpb21hIHBhZHLDo28gZG8gbcOzZHVsbyBkbyBpMThuLlxyXG4gICAqXHJcbiAgICogQW8gdXRpbGl6YXIgZXN0ZSBtw6l0b2RvLCBvIGlkaW9tYSBmaWNhcsOhIGdyYXZhZG8gbm8gYXJtYXplbmFtZW50byBsb2NhbCBkbyBuYXZlZ2Fkb3IsIHF1ZSBzZXLDoSB1dGlsaXphZG8gcGVsb1xyXG4gICAqIHNlcnZpw6dvIGRvIGBpMThuYCBwYXJhIGJ1c2NhciBhcyBsaXRlcmFpcyBubyBpZGlvbWEgcGFkcsOjby5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBsYW5ndWFnZSBTaWdsYSBkbyBpZGlvbWEuXHJcbiAgICpcclxuICAgKiBFc3RhIHNpZ2xhIGRldmUgc2VyIGNvbXBvc3RhIHBvciBkdWFzIGxldHJhcyByZXByZXNlbnRhbmRvIG8gaWRpb21hLFxyXG4gICAqIHBvZGVuZG8gc2VyIGFkaWNpb25hZG8gb3V0cmFzIGR1YXMgbGV0cmFzIHJlcHJlc2VudGFuZG8gbyBwYcOtcywgcG9yIGV4ZW1wbG86IGBwdGAsIGBwdC1CUmAsIGBwdC1icmAsIGBlbmAgb3UgYGVuLVVTYC5cclxuICAgKlxyXG4gICAqID4gQ2FzbyBzZWphIGluZm9ybWFkbyB1bSB2YWxvciBkaWZlcmVudGUgZGVzdGUgcGFkcsOjbywgbyBtZXNtbyBzZXLDoSBpZ25vcmFkby5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gcmVsb2FkIEluZGljYSBzZSBhIHDDoWdpbmEgYXR1YWwgcG9kZXLDoSBzZXIgcmVjYXJyZWdhZGEgYXDDs3MgYSBhbHRlcmHDp8OjbyBkbyBpZGlvbWEuXHJcbiAgICpcclxuICAgKiBFc3RlIHJlY3Vyc28gcG9kZSBzZXIgw7p0aWwgcGFyYSBvcyB1c3XDoXJpb3MgcXVlIHV0aWxpemFtIG8gbcOpdG9kbyBgZ2V0TGl0ZXJhbHMoKWAgZG8gc2VydmnDp28gZG8gaTE4biBwYXJhIHBvZGVyXHJcbiAgICogYnVzY2FyIG5vdmFtZW50ZSBhcyBsaXRlcmFpcyBubyBub3ZvIGlkaW9tYSBjb25maWd1cmFkby5cclxuICAgKi9cclxuICBzZXRMYW5ndWFnZShsYW5ndWFnZTogc3RyaW5nLCByZWxvYWQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgaWYgKCFpc0xhbmd1YWdlKGxhbmd1YWdlKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5sYW5ndWFnZVNlcnZpY2U/LnNldExhbmd1YWdlKGxhbmd1YWdlKTtcclxuXHJcbiAgICBpZiAocmVsb2FkKSB7XHJcbiAgICAgIHJlbG9hZEN1cnJlbnRQYWdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENvbmZpZyhjb25maWc6IFBvSTE4bkNvbmZpZykge1xyXG4gICAgLy8gU2V0YSBhcyBjb25maWd1cmHDp8O1ZXMgcGFkcsO1ZXMgZGVmaW5pZGFzIG5vIGltcG9ydGHDp8OjbyBkbyBtw7NkdWxvXHJcbiAgICBpZiAoY29uZmlnWydkZWZhdWx0J10pIHtcclxuICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2U/LnNldExhbmd1YWdlRGVmYXVsdChjb25maWdbJ2RlZmF1bHQnXVsnbGFuZ3VhZ2UnXSk7XHJcblxyXG4gICAgICB0aGlzLmNvbnRleHREZWZhdWx0ID0gY29uZmlnWydkZWZhdWx0J11bJ2NvbnRleHQnXSA/IGNvbmZpZ1snZGVmYXVsdCddWydjb250ZXh0J10gOiAnJztcclxuICAgICAgdGhpcy51c2VDYWNoZSA9IGNvbmZpZ1snZGVmYXVsdCddWydjYWNoZSddID8gY29uZmlnWydkZWZhdWx0J11bJ2NhY2hlJ10gOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBDYXJyZWdhIGEgbGlzdGEgZG9zIGNvbnRleHRvcyBlIGFzIGNvbnRhbnRlcyBpbmZvcm1hZGFzXHJcbiAgICBpZiAoY29uZmlnWydjb250ZXh0cyddKSB7XHJcbiAgICAgIHRoaXMuc2V0VmFySTE4bihjb25maWdbJ2NvbnRleHRzJ10pO1xyXG5cclxuICAgICAgLy8gU2UgbmVuaHVtIGNvbnRleHRvIGZvaSBkZWZpbmlkbyBjb21vIHBhZHLDo28sXHJcbiAgICAgIC8vIGVudMOjbyBkZWZpbmUgbyBwcmltZWlybyBjb250ZXh0b1xyXG4gICAgICBpZiAoIXRoaXMuY29udGV4dERlZmF1bHQpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IGNvbnRleHQgaW4gY29uZmlnWydjb250ZXh0cyddKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5jb25maWdbJ2NvbnRleHRzJ10uaGFzT3duUHJvcGVydHkoY29udGV4dCkpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250ZXh0RGVmYXVsdCA9IGNvbnRleHQ7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gUHJvY2Vzc28gZGUgYnVzY2EgZGUgdW0gY29udGV4dG8gcXVlIGNvbnTDqW0gc2VydmnDp28uXHJcbiAgLy8gICAgMSAtIFByb2N1cmEgbmEgdmFyacOhdmVsIEkxOG4gZGVzdGUgc2VydmnDp29cclxuICAvLyAgICAyIC0gUHJvY3VyYSBubyBsb2NhbCBzdG9yYWdlIChTZSBvIGNhY2hlIGVzdGl2ZXIgZGVmaW5pZG8gY29tbyB0cnVlIG5hIGNvbmZpZ3VyYcOnw6NvIGRvIG3Ds2R1bG8pXHJcbiAgLy8gICAgMyAtIERpc3BhcmEgbyBzZXJ2acOnbywgbWVzbW8gcXVlIGrDoSB0ZW5oYSBlbmNvbnRyYWRvIG5vIGxvY2FsIHN0b3JhZ2UsIHBhcmEgZ2FyYW50aXIgYSBhdHVhbGl6YcOnw6NvXHJcbiAgLy8gICAgNCAtIFNlIG5lbmh1bWEgbGl0ZXJhbCBmb3IgZW5jb250cmFkYSwgZW50w6NvIGJ1c2NhIGVtIHB0LWJyXHJcbiAgcHJpdmF0ZSBnZXRMaXRlcmFsc0Zyb21Db250ZXh0U2VydmljZShcclxuICAgIGxhbmd1YWdlOiBzdHJpbmcsXHJcbiAgICBjb250ZXh0OiBzdHJpbmcsXHJcbiAgICBsaXRlcmFsczogQXJyYXk8c3RyaW5nPixcclxuICAgIG9ic2VydmVyOiBhbnksXHJcbiAgICB0cmFuc2xhdGlvbnM6IGFueSA9IHt9LFxyXG4gICAgbGFuZ3VhZ2VBbHRlcm5hdGl2ZTogc3RyaW5nID0gbnVsbFxyXG4gICkge1xyXG4gICAgLy8gSWRpb21hIHVzYWRvIHBhcmEgdGVudGFyIGJ1c2NhciBhcyBsaXRlcmFpcyBmYWx0YW50ZXNcclxuICAgIGNvbnN0IGxhbmd1YWdlU2VhcmNoID0gbGFuZ3VhZ2VBbHRlcm5hdGl2ZSA/IGxhbmd1YWdlQWx0ZXJuYXRpdmUgOiBsYW5ndWFnZTtcclxuXHJcbiAgICB0cmFuc2xhdGlvbnMgPSB0aGlzLm1lcmdlT2JqZWN0KHRyYW5zbGF0aW9ucywgdGhpcy5zZWFyY2hJblZhckkxOG4obGFuZ3VhZ2VTZWFyY2gsIGNvbnRleHQsIGxpdGVyYWxzKSk7XHJcblxyXG4gICAgaWYgKHRoaXMuY291bnRPYmplY3QodHJhbnNsYXRpb25zKSA+IDApIHtcclxuICAgICAgb2JzZXJ2ZXIubmV4dCh0cmFuc2xhdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHJlYWxpemEgYSBidXNjYSBubyBsb2NhbFN0b3JhZ2UgZSBlbSBzZWd1aWRhIG5vIHNlcnZpw6dvXHJcbiAgICB0aGlzLmdldExpdGVyYWxzTG9jYWxTdG9yYWdlQW5kQ2FjaGUoXHJcbiAgICAgIGxhbmd1YWdlU2VhcmNoLFxyXG4gICAgICBjb250ZXh0LFxyXG4gICAgICBsaXRlcmFscyxcclxuICAgICAgb2JzZXJ2ZXIsXHJcbiAgICAgIHRyYW5zbGF0aW9ucyxcclxuICAgICAgbGFuZ3VhZ2VBbHRlcm5hdGl2ZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIFByb2N1cmEgbm8gbG9jYWwgc3RvcmFnZSBlIGVtIHNlZ3VpZGEgbm8gc2VydmnDp29cclxuICAvLyBDYXNvIG7Do28gZW5jb250cmUgbmVtIG5vIHNlcnZpw6dvLCByZWNvbWXDp2EgYSBidXNjYSBlbSBwdC1iclxyXG4gIHByaXZhdGUgZ2V0TGl0ZXJhbHNMb2NhbFN0b3JhZ2VBbmRDYWNoZShcclxuICAgIGxhbmd1YWdlOiBzdHJpbmcsXHJcbiAgICBjb250ZXh0OiBzdHJpbmcsXHJcbiAgICBsaXRlcmFsczogQXJyYXk8c3RyaW5nPixcclxuICAgIG9ic2VydmVyOiBhbnksXHJcbiAgICB0cmFuc2xhdGlvbnM6IGFueSxcclxuICAgIGxhbmd1YWdlQWx0ZXJuYXRpdmU6IHN0cmluZyA9IG51bGxcclxuICApIHtcclxuICAgIGNvbnN0IGxhbmd1YWdlU2VhcmNoID0gbGFuZ3VhZ2VBbHRlcm5hdGl2ZSA/IGxhbmd1YWdlQWx0ZXJuYXRpdmUgOiBsYW5ndWFnZTtcclxuICAgIGxldCB0cmFuc2xhdGlvblRlbXA7XHJcbiAgICAvLyBWZXJpZmljYSBzZSB1c2EgY2FjaGVcclxuICAgIGlmICh0aGlzLnVzZUNhY2hlKSB7XHJcbiAgICAgIHRyYW5zbGF0aW9uVGVtcCA9IHRoaXMuc2VhcmNoSW5Mb2NhbFN0b3JhZ2UobGFuZ3VhZ2VTZWFyY2gsIGNvbnRleHQsIGxpdGVyYWxzKTtcclxuICAgICAgaWYgKHRoaXMuY291bnRPYmplY3QodHJhbnNsYXRpb25UZW1wKSA+IDApIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZVZhckkxOG4obGFuZ3VhZ2UsIGNvbnRleHQsIHRyYW5zbGF0aW9uVGVtcCk7XHJcbiAgICAgICAgdHJhbnNsYXRpb25zID0gdGhpcy5tZXJnZU9iamVjdCh0cmFuc2xhdGlvblRlbXAsIHRyYW5zbGF0aW9ucyk7XHJcbiAgICAgICAgb2JzZXJ2ZXIubmV4dCh0cmFuc2xhdGlvbnMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQnVzY2EgZG8gU2VydmnDp29cclxuICAgIHRoaXMuZ2V0SHR0cFNlcnZpY2UodGhpcy5zZXJ2aWNlc0NvbnRleHRbY29udGV4dF0sIGxhbmd1YWdlU2VhcmNoLCBsaXRlcmFscykuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVMb2NhbFN0b3JhZ2UobGFuZ3VhZ2UsIGNvbnRleHQsIHJlc3BvbnNlKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZVZhckkxOG4obGFuZ3VhZ2UsIGNvbnRleHQsIHJlc3BvbnNlKTtcclxuICAgICAgICB0cmFuc2xhdGlvblRlbXAgPSB0aGlzLnNlYXJjaEluVmFySTE4bihsYW5ndWFnZSwgY29udGV4dCwgbGl0ZXJhbHMpO1xyXG4gICAgICAgIHRyYW5zbGF0aW9ucyA9IHRoaXMubWVyZ2VPYmplY3QodHJhbnNsYXRpb25UZW1wLCB0cmFuc2xhdGlvbnMpO1xyXG4gICAgICAgIG9ic2VydmVyLm5leHQodHJhbnNsYXRpb25zKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gU2UgbsOjbyBlbmNvbnRyb3UgdG9kYXMgYXMgbGl0ZXJhaXMgcGVzcXVpc2FkYXMgbm8gaWRpb21hXHJcbiAgICAgIC8vIEVudMOjbyByZWZheiBvIHByb2Nlc3NvIHByb2N1cmFuZG8gZW0gcG9ydHVndcOqc1xyXG4gICAgICBpZiAobGl0ZXJhbHMubGVuZ3RoID4gdGhpcy5jb3VudE9iamVjdCh0cmFuc2xhdGlvbnMpKSB7XHJcbiAgICAgICAgaWYgKGxhbmd1YWdlQWx0ZXJuYXRpdmUgPT09ICdwdC1icicpIHtcclxuICAgICAgICAgIC8vIFNlIG7Do28gZW5jb250cm91IG5lbSBlbSBwb3J0dWd1w6pzLCBlbnTDo28gcmV0b3JuYSBvIG5vbWUgZGFzIGxpdGVyYWlzXHJcbiAgICAgICAgICB0cmFuc2xhdGlvbnMgPSB0aGlzLmNvbXBsZXRlRmF1bHRMaXRlcmFscyhsYW5ndWFnZSwgY29udGV4dCwgbGl0ZXJhbHMsIHRyYW5zbGF0aW9ucyk7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZUxvY2FsU3RvcmFnZShsYW5ndWFnZSwgY29udGV4dCwgdHJhbnNsYXRpb25zKTtcclxuICAgICAgICAgIHRoaXMudXBkYXRlVmFySTE4bihsYW5ndWFnZSwgY29udGV4dCwgdHJhbnNsYXRpb25zKTtcclxuICAgICAgICAgIG9ic2VydmVyLm5leHQodHJhbnNsYXRpb25zKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5nZXRMaXRlcmFsc0Zyb21Db250ZXh0U2VydmljZShsYW5ndWFnZSwgY29udGV4dCwgbGl0ZXJhbHMsIG9ic2VydmVyLCB0cmFuc2xhdGlvbnMsICdwdC1icicpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBQcm9jdXJhIHBlbGEgbGlzdGEgZGUgbGl0ZXJhaXNcclxuICAvLyBTZSBuw6NvIGVuY29udHJhciB0b2RhcywgcHJvY3VyYSBlbSBwdC1iclxyXG4gIHByaXZhdGUgZ2V0TGl0ZXJhbHNGcm9tQ29udGV4dENvbnN0YW50KFxyXG4gICAgbGFuZ3VhZ2U6IHN0cmluZyxcclxuICAgIGNvbnRleHQ6IHN0cmluZyxcclxuICAgIGxpdGVyYWxzOiBBcnJheTxzdHJpbmc+LFxyXG4gICAgb2JzZXJ2ZXI6IGFueSxcclxuICAgIHRyYW5zbGF0aW9uczogYW55ID0ge31cclxuICApIHtcclxuICAgIHRyYW5zbGF0aW9ucyA9IHRoaXMubWVyZ2VPYmplY3QodHJhbnNsYXRpb25zLCB0aGlzLnNlYXJjaEluVmFySTE4bihsYW5ndWFnZSwgY29udGV4dCwgbGl0ZXJhbHMpKTtcclxuICAgIGlmICh0aGlzLmNvdW50T2JqZWN0KHRyYW5zbGF0aW9ucykgPiAwKSB7XHJcbiAgICAgIG9ic2VydmVyLm5leHQodHJhbnNsYXRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBTZSBmb2kgcGVzcXVpc2FkbyBwb3IgbGl0ZXJhaXNcclxuICAgIGlmIChsaXRlcmFscy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIC8vIFNlIG7Do28gZW5jb250cm91IHRvZGFzIGFzIGxpdGVyYWlzIHBlc3F1aXNhZGFzIG5vIGlkaW9tYSwgcHJvY3VyYSBlbSBwb3J0dWd1w6pzXHJcbiAgICAgIGlmIChsaXRlcmFscy5sZW5ndGggPiB0aGlzLmNvdW50T2JqZWN0KHRyYW5zbGF0aW9ucykpIHtcclxuICAgICAgICBpZiAobGFuZ3VhZ2UgPT09ICdwdC1icicpIHtcclxuICAgICAgICAgIC8vIFNlIG7Do28gZW5jb250cm91IG5lbSBlbSBwb3J0dWd1w6pzLCBlbnTDo28gcmV0b3JuYSBvIG5vbWUgZGFzIGxpdGVyYWlzXHJcbiAgICAgICAgICB0cmFuc2xhdGlvbnMgPSB0aGlzLmNvbXBsZXRlRmF1bHRMaXRlcmFscyhsYW5ndWFnZSwgY29udGV4dCwgbGl0ZXJhbHMsIHRyYW5zbGF0aW9ucyk7XHJcbiAgICAgICAgICBvYnNlcnZlci5uZXh0KHRyYW5zbGF0aW9ucyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZ2V0TGl0ZXJhbHNGcm9tQ29udGV4dENvbnN0YW50KCdwdC1icicsIGNvbnRleHQsIGxpdGVyYWxzLCBvYnNlcnZlciwgdHJhbnNsYXRpb25zKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIFNlIG7Do28gZW5jb250cmFyIG5lbmh1bWEgbGl0ZXJhbCwgcHJvY3VyYSBlbSBwb3J0dWd1w6pzXHJcbiAgICAgIGlmICh0aGlzLmNvdW50T2JqZWN0KHRyYW5zbGF0aW9ucykgPT09IDAgJiYgbGFuZ3VhZ2UgIT09ICdwdC1icicpIHtcclxuICAgICAgICB0aGlzLmdldExpdGVyYWxzRnJvbUNvbnRleHRDb25zdGFudCgncHQtYnInLCBjb250ZXh0LCBsaXRlcmFscywgb2JzZXJ2ZXIsIHRyYW5zbGF0aW9ucyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGNhc28gbsOjbyBpbmZvcm1hciBsaXRlcmFpcyBlIG7Do28gaG91dmVyIHRyYWR1w6fDo29cclxuICAgICAgb2JzZXJ2ZXIubmV4dCh0cmFuc2xhdGlvbnMpO1xyXG4gICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gQnVzY2EgcGVsYXMgbGl0ZXJhaXMgbm8gbG9jYWwgc3RvcmFnZVxyXG4gIHByaXZhdGUgc2VhcmNoSW5Mb2NhbFN0b3JhZ2UobGFuZ3VhZ2U6IHN0cmluZywgY29udGV4dDogc3RyaW5nLCBsaXRlcmFsczogQXJyYXk8c3RyaW5nPik6IGFueSB7XHJcbiAgICBjb25zdCB0cmFuc2xhdGlvbnM6IGFueSA9IHt9O1xyXG5cclxuICAgIGlmIChsaXRlcmFscy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGl0ZXJhbHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBsaXRlcmFsID0gbGl0ZXJhbHNbaV07XHJcbiAgICAgICAgY29uc3QgdHJhbnNsYXRpb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShsYW5ndWFnZSArICctJyArIGNvbnRleHQgKyAnLScgKyBsaXRlcmFsKTtcclxuICAgICAgICBpZiAodHJhbnNsYXRpb24pIHtcclxuICAgICAgICAgIHRyYW5zbGF0aW9uc1tsaXRlcmFsXSA9IHRyYW5zbGF0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRyYW5zbGF0aW9ucztcclxuICB9XHJcblxyXG4gIC8vIEJ1c2NhIHBlbGFzIGxpdGVyYWlzIG5hIHZhcmnDoXZlbCBkbyBzZXJ2acOnb1xyXG4gIHByaXZhdGUgc2VhcmNoSW5WYXJJMThuKGxhbmd1YWdlOiBzdHJpbmcsIGNvbnRleHQ6IHN0cmluZywgbGl0ZXJhbHM6IEFycmF5PHN0cmluZz4pOiBhbnkge1xyXG4gICAgbGV0IHRyYW5zbGF0aW9uczogYW55ID0ge307XHJcblxyXG4gICAgaWYgKHRoaXMudmFySTE4bltsYW5ndWFnZV0gJiYgdGhpcy52YXJJMThuW2xhbmd1YWdlXVtjb250ZXh0XSkge1xyXG4gICAgICBjb25zdCBjb250ZW50ID0gdGhpcy52YXJJMThuW2xhbmd1YWdlXVtjb250ZXh0XTtcclxuXHJcbiAgICAgIGlmIChsaXRlcmFscy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgLy8gQnVzY2EgYXMgbGl0ZXJhaXMgZGVzZWphZGFzXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXRlcmFscy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgY29uc3QgbGl0ZXJhbCA9IGxpdGVyYWxzW2ldO1xyXG4gICAgICAgICAgaWYgKGNvbnRlbnQuaGFzT3duUHJvcGVydHkobGl0ZXJhbCkpIHtcclxuICAgICAgICAgICAgdHJhbnNsYXRpb25zW2xpdGVyYWxdID0gY29udGVudFtsaXRlcmFsXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gQXRyaWJ1aSB0b2RhcyBhcyBsaXRlcmFpc1xyXG4gICAgICAgIHRyYW5zbGF0aW9ucyA9IHsgLi4uY29udGVudCB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJhbnNsYXRpb25zO1xyXG4gIH1cclxuXHJcbiAgLy8gQXR1YWxpemEgbyBsb2NhbCBzdG9yYWdlXHJcbiAgcHJpdmF0ZSB1cGRhdGVMb2NhbFN0b3JhZ2UobGFuZ3VhZ2U6IHN0cmluZywgY29udGV4dDogc3RyaW5nLCBkYXRhOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLnVzZUNhY2hlKSB7XHJcbiAgICAgIGZvciAoY29uc3QgbGl0ZXJhbCBvZiBPYmplY3Qua2V5cyhkYXRhKSkge1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGxhbmd1YWdlICsgJy0nICsgY29udGV4dCArICctJyArIGxpdGVyYWwsIGRhdGFbbGl0ZXJhbF0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBBdHVhbGl6YSBhIHZhcmnDoXZlbCBsb2NhbCBjb20gYXMgbGl0ZXJhaXMgY29tIG9zIG9iamV0b3MgcGFzc2Fkb3MgbmEgY29uZmlndXJhw6fDo29cclxuICBwcml2YXRlIHNldFZhckkxOG4oY29udGV4dHM6IE9iamVjdCkge1xyXG4gICAgLy8gUGVyY29ycmUgb3MgY29udGV4dG9zXHJcbiAgICBmb3IgKGNvbnN0IGNvbnRleHQgb2YgT2JqZWN0LmtleXMoY29udGV4dHMpKSB7XHJcbiAgICAgIGNvbnN0IGNvbnRleHRDb250ZW50ID0gY29udGV4dHNbY29udGV4dF07XHJcbiAgICAgIC8vIFBlcmNvcnJlIG9zIGlkaW9tYXMgZGVudHJvIGRvIGNvbnRleHRvXHJcbiAgICAgIGZvciAoY29uc3QgbGFuZ3VhZ2Ugb2YgT2JqZWN0LmtleXMoY29udGV4dENvbnRlbnQpKSB7XHJcbiAgICAgICAgY29uc3QgbGFuZ3VhZ2VDb250ZW50ID0gY29udGV4dENvbnRlbnRbbGFuZ3VhZ2VdO1xyXG4gICAgICAgIGlmIChsYW5ndWFnZSA9PT0gJ3VybCcpIHtcclxuICAgICAgICAgIHRoaXMuc2VydmljZXNDb250ZXh0W2NvbnRleHRdID0gbGFuZ3VhZ2VDb250ZW50O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZVZhckkxOG4obGFuZ3VhZ2UsIGNvbnRleHQsIGxhbmd1YWdlQ29udGVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBBdHVhbGl6YSBhIHZhcmnDoXZlbCBsb2NhbCBjb20gYXMgbGl0ZXJhaXMgaWRpb21hIGUgY29udGV4dG9cclxuICBwcml2YXRlIHVwZGF0ZVZhckkxOG4obGFuZ3VhZ2U6IHN0cmluZywgY29udGV4dDogc3RyaW5nLCBkYXRhOiBhbnkpIHtcclxuICAgIGxhbmd1YWdlID0gbGFuZ3VhZ2UudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICBpZiAoIXRoaXMudmFySTE4bltsYW5ndWFnZV0pIHtcclxuICAgICAgdGhpcy52YXJJMThuW2xhbmd1YWdlXSA9IHsgW2NvbnRleHRdOiB7fSB9O1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnZhckkxOG5bbGFuZ3VhZ2VdW2NvbnRleHRdKSB7XHJcbiAgICAgIHRoaXMudmFySTE4bltsYW5ndWFnZV1bY29udGV4dF0gPSB7fTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBDcmlhIG91IGF0dWFsaXphIG8gY29udGV4dG8gZGVudHJvIGRvIHN0b3JhZ2VcclxuICAgIHRoaXMudmFySTE4bltsYW5ndWFnZV1bY29udGV4dF0gPSB0aGlzLm1lcmdlT2JqZWN0KGRhdGEsIHRoaXMudmFySTE4bltsYW5ndWFnZV1bY29udGV4dF0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRIdHRwU2VydmljZSh1cmw6IHN0cmluZywgbGFuZ3VhZ2U6IHN0cmluZywgbGl0ZXJhbHM6IEFycmF5PHN0cmluZz4pIHtcclxuICAgIGxldCBwYXJhbSA9ICc/bGFuZ3VhZ2U9JyArIGxhbmd1YWdlO1xyXG4gICAgaWYgKGxpdGVyYWxzLmxlbmd0aCA+IDApIHtcclxuICAgICAgcGFyYW0gKz0gJyZsaXRlcmFscz0nICsgbGl0ZXJhbHMuam9pbigpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFJlbW92ZSBhIGJhcnJhIGZpbmFsIGRvIGVuZGVyZcOnb1xyXG4gICAgdXJsID0gdXJsLnJlcGxhY2UoL1xcLyQvLCAnJyk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dXJsfSR7cGFyYW19YCk7XHJcbiAgfVxyXG5cclxuICAvLyBDb21wbGV0YSBjb20gbyBub21lIGRhIGxpdGVyYWlzLCBhcyBxdWUgbsOjbyBmb3JhbSBlbmNvbnRyYWRhc1xyXG4gIHByaXZhdGUgY29tcGxldGVGYXVsdExpdGVyYWxzKGxhbmd1YWdlOiBzdHJpbmcsIGNvbnRleHQ6IHN0cmluZywgbGl0ZXJhbHM6IEFycmF5PHN0cmluZz4sIHRyYW5zbGF0aW9uczogYW55KSB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpdGVyYWxzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGxpdGVyYWwgPSBsaXRlcmFsc1tpXTtcclxuICAgICAgaWYgKCF0cmFuc2xhdGlvbnNbbGl0ZXJhbF0pIHtcclxuICAgICAgICB0cmFuc2xhdGlvbnNbbGl0ZXJhbF0gPSBsaXRlcmFsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJhbnNsYXRpb25zO1xyXG4gIH1cclxuXHJcbiAgLy8gQ29udGEgb3MgYXRyaWJ1dG9zIGRvIG9iamV0b1xyXG4gIHByaXZhdGUgY291bnRPYmplY3Qob2JqOiBvYmplY3QpIHtcclxuICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmopLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIC8vIEZheiBvIG1lcmdlIGRvcyBvYmpldG9zLCBzZW1wcmUgZGFuZG8gcHJlZmVyw6puY2lhIHBhcmEgbyBwcmltZWlybyBvYmpldG8gZGUgcGFyw6JtZXRyb1xyXG4gIHByaXZhdGUgbWVyZ2VPYmplY3Qob2JqUGVybWFuZW50OiBhbnksIG9iajogYW55KSB7XHJcbiAgICByZXR1cm4geyAuLi5vYmosIC4uLm9ialBlcm1hbmVudCB9O1xyXG4gIH1cclxufVxyXG4iXX0=
447
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8taTE4bi1iYXNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL3NlcnZpY2VzL3BvLWkxOG4vcG8taTE4bi1iYXNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBS2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQUUvRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUlHO0FBR0gsTUFBTSxPQUFPLGlCQUFpQjtJQVM1QixZQUMrQixNQUFxQixFQUN0QixJQUFpQixFQUNyQyxlQUFtQztRQUZkLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDdEIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNyQyxvQkFBZSxHQUFmLGVBQWUsQ0FBb0I7UUFYckMsWUFBTyxHQUFRLEVBQUUsQ0FBQztRQUlsQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRTFCLG9CQUFlLEdBQVEsRUFBRSxDQUFDO1FBT2hDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0gsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxX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QUNqQyxDQUFDO0lBRUQsd0ZBQXdGO0lBQ2hGLFdBQVcsQ0FBQyxZQUFpQixFQUFFLEdBQVE7UUFDN0MsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsWUFBWSxFQUFFLENBQUM7SUFDckMsQ0FBQzs7a0ZBaldVLGlCQUFpQix1QkFVbEIsV0FBVyx3QkFDWCxVQUFVO29FQVhULGlCQUFpQjt1RkFBakIsaUJBQWlCO2NBRDdCLFNBQVM7O3NCQVdMLE1BQU07dUJBQUMsV0FBVzs7c0JBQ2xCLE1BQU07dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBpc0xhbmd1YWdlLCByZWxvYWRDdXJyZW50UGFnZSB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWwnO1xyXG5pbXBvcnQgeyBQb0xhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgUG9JMThuQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWkxOG4tY29uZmlnLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFBvSTE4bkxpdGVyYWxzIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWkxOG4tbGl0ZXJhbHMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgSTE4Tl9DT05GSUcgfSBmcm9tICcuL3BvLWkxOG4tY29uZmlnLWluamVjdGlvbi10b2tlbic7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqXHJcbiAqIE8gc2VydmnDp28gYFBvSTE4blNlcnZpY2VgIHBvc3NpYmlsaXRhIHV0aWxpemFyIG3Dumx0aXBsb3MgaWRpb21hcyBlIGNvbnRleHRvcyBuYSBhcGxpY2HDp8Ojby5cclxuICpcclxuICogPiBBbnRlcyBkYSB1dGlsaXphw6fDo28gZG8gc2VydmnDp28sIMOpIG5lY2Vzc8OhcmlvIHJlYWxpemFyIGFcclxuICogW2ltcG9ydGHDp8OjbyBlIGNvbmZpZ3VyYcOnw6NvIGRvIG3Ds2R1bG8gYFBvSTE4bk1vZHVsZWBdKC9kb2N1bWVudGF0aW9uL3BvLWkxOG4jaTE4bi1jb25maWcpLlxyXG4gKlxyXG4gKiAqKlV0aWxpemHDp8OjbyBkbyBzZXJ2acOnbyBgUG9JMThuU2VydmljZWA6KipcclxuICpcclxuICogUGFyYSB1dGlsaXphciBvIHNlcnZpw6dvIGJhc3RhIGltcG9ydMOhLWxvIG5vcyBjb21wb25lbnRlcyBxdWUgbmVjZXNzaXRhcmVtIGRlIGxpdGVyYWlzIGUgZmF6ZXIgYSBpbmplw6fDo28gZGVcclxuICogZGVwZW5kw6puY2lhIG5vIGNvbnN0cnV0b3I6XHJcbiAqIGBgYFxyXG4gKiAgaW1wb3J0IHsgUG9JMThuU2VydmljZSB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcclxuICogIC4uLlxyXG4gKiAgY29uc3RydWN0b3IocHJpdmF0ZSBwb0kxOG5TZXJ2aWNlOiBQb0kxOG5TZXJ2aWNlKSB7IH1cclxuICogIC4uLlxyXG4gKiBgYGBcclxuICpcclxuICogUG9yIGZpbSByZWFsaXphciBhIGJ1c2NhIHBlbGFzIGxpdGVyYWlzLCBpbnNjcmV2ZW5kby1zZSBubyBbT2JzZXJ2YWJsZV0oaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL29ic2VydmFibGVzKSBwZWxvXHJcbiAqIG3DqXRvZG8gYGdldExpdGVyYWxzKClgLlxyXG4gKlxyXG4gKiA+IE8gbcOpdG9kbyBgZ2V0TGl0ZXJhbHMoKWAgcG9kZSByZWNlYmVyIHVtIG9iamV0byBkbyB0aXBvIGRhIGludGVyZmFjZSBgUG9JMThuTGl0ZXJhbHNgIGNvbW8gcGFyw6JtZXRybyxcclxuICogcG9yw6ltLCBuZW5odW1hIGRhcyBwcm9wcmllZGFkZXMgc8OjbyBvYnJpZ2F0w7NyaWFzLiBDYXNvIG5lbmh1bSBwYXLDom1ldHJvIHNlamEgcGFzc2Fkbywgc2Vyw6NvIGJ1c2NhZGFzXHJcbiAqIHRvZGFzIGFzIGxpdGVyYWlzIGRvIGNvbnRleHRvIGRlZmluaWRvIGNvbSBwYWRyw6NvLCBubyBpZGlvbWEgZGVmaW5pZG8gY29tbyBwYWRyw6NvLlxyXG4gKlxyXG4gKiBFeGVtcGxvcyBkZSByZXF1aXNpw6fDo286XHJcbiAqIGBgYFxyXG4gKiBsaXRlcmFscyA9IHt9O1xyXG4gKiBsaXRlcmFsc0VuID0ge307XHJcbiAqIGxpdGVyYWxzQ3JtID0ge307XHJcbiAqXHJcbiAqIGNvbnN0cnVjdG9yKHByaXZhdGUgcG9JMThuU2VydmljZTogUG9JMThuU2VydmljZSkge1xyXG4gKiAgIHBvSTE4blNlcnZpY2UuZ2V0TGl0ZXJhbHMoKVxyXG4gKiAgICAgLnN1YnNjcmliZSgobGl0ZXJhbHMpID0+IHtcclxuICogICAgICAgdGhpcy5saXRlcmFscyA9IGxpdGVyYWxzO1xyXG4gKiAgICAgfSk7XHJcbiAqXHJcbiAqICAgcG9JMThuU2VydmljZS5nZXRMaXRlcmFscyh7Y29udGV4dDogJ2NybScsIGxpdGVyYWxzOiBbJ2FkZCcsICdyZW1vdmUnXX0pXHJcbiAqICAgICAuc3Vic2NyaWJlKChsaXRlcmFscykgPT4ge1xyXG4gKiAgICAgICB0aGlzLmxpdGVyYWxzQ3JtID0gbGl0ZXJhbHM7XHJcbiAqICAgICB9KTtcclxuICpcclxuICogICBwb0kxOG5TZXJ2aWNlLmdldExpdGVyYWxzKHtsYW5ndWFnZTogJ2VuLXVzJ30pXHJcbiAqICAgICAuc3Vic2NyaWJlKChsaXRlcmFscykgPT4ge1xyXG4gKiAgICAgICB0aGlzLmxpdGVyYWxzRW4gPSBsaXRlcmFscztcclxuICogICAgIH0pO1xyXG4gKiB9XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBQYXJhIGFwcmVzZW50YXIgYXMgbGl0ZXJhaXMgY2FwdHVyYWRhcyBhY2ltYSBubyBIVE1MIGRvIGNvbXBvbmVudGUsIGRldmUtc2UgdXRpbGl6YXIgb1xyXG4gKiBzZWd1aW50ZSBjw7NkaWdvOlxyXG4gKlxyXG4gKiA8cHJlIG5nTm9uQmluZGFibGU+XHJcbiAqIHt7IGxpdGVyYWxzPy5hZGQgfX1cclxuICoge3sgbGl0ZXJhbHM/LnJlbW92ZSB9fVxyXG4gKiA8L3ByZT5cclxuICpcclxuICogQ2FzbyBhcyBsaXRlcmFpcyBjb250ZW5oYW0gdmFyacOhdmVpcyBxdWUgcHJlY2lzZW0gc2VyIHN1YnN0aXR1w61kYXMsIHBvZGUtc2UgdXRpbGl6YXIgbyAqcGlwZSogYHBvSTE4bmAuXHJcbiAqIMOJIHBvc3PDrXZlbCBpbmZvcm1hciBwcm9wcmllZGFkZXMgZG8gY29tcG9uZW50ZSBjb21vIGBuYW1lYCBlIGBuaWNrbmFtZWAgb3VcclxuICogaW5mb3JtYXIgbyB2YWxvciBkaXJldGFtZW50ZSBjb20gXCJcIiBvdSBuw7ptZXJvLCBjb25mb3JtZSBvIGV4ZW1wbG8gYWJhaXhvOlxyXG4gKlxyXG4gKiA8cHJlIG5nTm9uQmluZGFibGU+XHJcbiAqIHt7IGxpdGVyYWxzPy5wZW9wbGUgfCBwb0kxOG46WzEyMF0gfX1cclxuICoge3sgbGl0ZXJhbHM/LmdyZWV0aW5nIHwgcG9JMThuOltuYW1lLCBuaWNrbmFtZV0gfX1cclxuICoge3sgbGl0ZXJhbHM/LmdyZWV0aW5nIHwgcG9JMThuOltcIkJyYWRcIiwgXCJHcmVlblwiXSB9fVxyXG4gKiA8L3ByZT5cclxuICpcclxuICogPiDDiSBpbXBvcnRhbnRlIG8gdXNvIGRvIG9wZXJhZG9yIGA/YCAoRWx2aXMpIHBhcmEgZXZpdGFyIGVycm9zIGVucXVhbnRvIGFzIGxpdGVyYWlzIG7Do28gZm9yZW0gY2FycmVnYWRhcy5cclxuICpcclxuICogIyMjIFRlc3RlIHVuaXTDoXJpb1xyXG4gKlxyXG4gKiBBYmFpeG8gc2VndWUgdW0gZXhlbXBsbyBkZSAqc2V0dXAqIGluaWNpYWwgZGUgdGVzdGUgdW5pdMOhcmlvIGRvICpBcHBDb21wb25lbnQqIHF1ZSB1dGlsaXphIG8gYFBvSTE4blNlcnZpY2VgOlxyXG4gKlxyXG4gKiA+IEF0ZW7Dp8OjbzogbsOjbyBkZWNsYXJhciBvIGBQb0kxOG5TZXJ2aWNlYCBubyBwcm92aWRlcnMgZG8gVGVzdEJlZCBwb2lzIGEgYmlibGlvdGVjYSByZWFsaXphIGEgaW5qZcOnw6NvIGRlIGRlcGVuZMOqbmNpYSBkZSBmb3JtYSBkaW7Dom1pY2EuXHJcbiAqID4gU2UgbyBzZXJ2acOnbyBmb3IgZGVjbGFyYWRvIG8gdGVzdGUgbsOjbyBmYXLDoSBhIGluamXDp8OjbyBlIG8gdGVzdGUgYXByZXNlbnRhcsOhIGVycm9zLlxyXG4gKlxyXG4gKiBgYGBcclxuICogaW1wb3J0IHsgYXN5bmMsIFRlc3RCZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xyXG4gKiBpbXBvcnQgeyBIdHRwQ2xpZW50VGVzdGluZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwL3Rlc3RpbmcnO1xyXG4gKlxyXG4gKiBpbXBvcnQgeyBQb0kxOG5Nb2R1bGUgfSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XHJcbiAqXHJcbiAqIGltcG9ydCB7IEFwcENvbXBvbmVudCB9IGZyb20gJy4vYXBwLmNvbXBvbmVudCc7XHJcbiAqXHJcbiAqIGRlc2NyaWJlKCdBcHBDb21wb25lbnQnLCAoKSA9PiB7XHJcbiAqICAgY29uc3QgYW5vdGhlclBUID0ge1xyXG4gKiAgICAgdGV4dDogJ3RleHRvJyxcclxuICogICAgIGFkZDogJ2FkaWNpb25hcicsXHJcbiAqICAgICByZW1vdmU6ICdyZW1vdmVyJ1xyXG4gKiAgIH07XHJcbiAqXHJcbiAqICAgY29uc3QgZ2VuZXJhbFBUID0ge1xyXG4gKiAgICAgdGV4dDogJ3RleHRvJyxcclxuICogICAgIGFkZDogJ2FkaWNpb25hcicsXHJcbiAqICAgICByZW1vdmU6ICdyZW1vdmVyJ1xyXG4gKiAgIH07XHJcbiAqXHJcbiAqICAgY29uc3QgY29uZmlnID0ge1xyXG4gKiAgICAgZGVmYXVsdDoge1xyXG4gKiAgICAgICBsYW5ndWFnZTogJ3B0LUJSJyxcclxuICogICAgICAgY29udGV4dDogJ2dlbmVyYWwnLFxyXG4gKiAgICAgICBjYWNoZTogZmFsc2VcclxuICogICAgIH0sXHJcbiAqICAgICBjb250ZXh0czoge1xyXG4gKiAgICAgICBnZW5lcmFsOiB7XHJcbiAqICAgICAgICAgJ3B0LWJyJzogZ2VuZXJhbFBUXHJcbiAqICAgICAgIH0sXHJcbiAqICAgICAgIGFub3RoZXI6IHtcclxuICogICAgICAgICAncHQtYnInOiBhbm90aGVyUFRcclxuICogICAgICAgfVxyXG4gKiAgICAgfVxyXG4gKiAgIH07XHJcbiAqXHJcbiAqICAgYmVmb3JlRWFjaChhc3luYygoKSA9PiB7XHJcbiAqICAgICBUZXN0QmVkLmNvbmZpZ3VyZVRlc3RpbmdNb2R1bGUoe1xyXG4gKiAgICAgICBkZWNsYXJhdGlvbnM6IFtcclxuICogICAgICAgICBBcHBDb21wb25lbnRcclxuICogICAgICAgXSxcclxuICogICAgICAgaW1wb3J0czogW1xyXG4gKiAgICAgICAgIEh0dHBDbGllbnRUZXN0aW5nTW9kdWxlLFxyXG4gKiAgICAgICAgIFBvSTE4bk1vZHVsZS5jb25maWcoY29uZmlnKVxyXG4gKiAgICAgICBdXHJcbiAqICAgICB9KS5jb21waWxlQ29tcG9uZW50cygpO1xyXG4gKiAgIH0pKTtcclxuICpcclxuICogICBpdCgnc2hvdWxkIGNyZWF0ZSB0aGUgYXBwJywgYXN5bmMoKCkgPT4ge1xyXG4gKiAgICAgY29uc3QgZml4dHVyZSA9IFRlc3RCZWQuY3JlYXRlQ29tcG9uZW50KEFwcENvbXBvbmVudCk7XHJcbiAqICAgICBjb25zdCBhcHAgPSBmaXh0dXJlLmRlYnVnRWxlbWVudC5jb21wb25lbnRJbnN0YW5jZTtcclxuICpcclxuICogICAgIGV4cGVjdChhcHApLnRvQmVUcnV0aHkoKTtcclxuICogICB9KSk7XHJcbiAqXHJcbiAqIH0pO1xyXG4gKiBgYGBcclxuICovXHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIFBvSTE4bkJhc2VTZXJ2aWNlIHtcclxuICBwcml2YXRlIHZhckkxOG46IGFueSA9IHt9O1xyXG5cclxuICBwcml2YXRlIGNvbnRleHREZWZhdWx0OiBzdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgdXNlQ2FjaGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBzZXJ2aWNlc0NvbnRleHQ6IGFueSA9IHt9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoSTE4Tl9DT05GSUcpIHByaXZhdGUgY29uZmlnPzogUG9JMThuQ29uZmlnLFxyXG4gICAgQEluamVjdChIdHRwQ2xpZW50KSBwcml2YXRlIGh0dHA/OiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U/OiBQb0xhbmd1YWdlU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5zZXRDb25maWcoY29uZmlnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIDxhIGlkPVwiZ2V0LWxhbmd1YWdlXCI+PC9hPlxyXG4gICAqIE3DqXRvZG8gcXVlIHJldG9ybmEgbyBpZGlvbWEgcGFkcsOjbyBhdGl2by5cclxuICAgKlxyXG4gICAqIEEgYnVzY2EgZGVzdGUgaWRpb21hIHBlbG8gbcOpdG9kbyBzZXLDoSBmZWl0YSBuYSBzZWd1aW50ZSBvcmRlbTpcclxuICAgKlxyXG4gICAqICAgMSAtIG8gaWRpb21hIHF1ZSBmb2kgYXJtYXplbmFkbyBubyAqbG9jYWxTdG9yYWdlKiwgYXRyYXbDqXMgZG8gbcOpdG9kbyBbYHNldExhbmd1YWdlKClgXShkb2N1bWVudGF0aW9uL3BvLWkxOG4jc2V0TGFuZ3VhZ2UpLlxyXG4gICAqXHJcbiAgICogICAyIC0gbyB2YWxvciBpbnNlcmlkbyBubyBtw7NkdWxvIGRvIGkxOG4gYXRyYXbDqXMgZG8gcGFyw6JtZXRybyBgY29uZmlnYCwgc2VuZG8gbyBpZGlvbWEgaW5zZXJpZG8gbmEgcHJvcHJpZWRhZGVcclxuICAgKiBgbGFuZ3VhZ2VgIGRhIGludGVyZmFjZSBbYFBvSTE4bkNvbmZpZ0RlZmF1bHRgXShkb2N1bWVudGF0aW9uL3BvLWkxOG4jcG9JMThuQ29uZmlnRGVmYXVsdCkuXHJcbiAgICpcclxuICAgKiAgIDMgLSBvIGlkaW9tYSBkbyBuYXZlZ2Fkb3IgdXRpbGl6YWRvLlxyXG4gICAqXHJcbiAgICogPiBDYXNvIG8gaWRpb21hIGRvIG5hdmVnYWRvciBuw6NvIHNlamEgc3Vwb3J0YWRvIHBlbG8gUE8gKGBwdGAsIGBlbmAsIGBlc2Agb3UgYHJ1YCksIHNlcsOhIHJldG9ybmFkbyB2YWxvciBgcHRgLlxyXG4gICAqXHJcbiAgICogQHJldHVybnMge3N0cmluZ30gc2lnbGEgZG8gaWRpb21hIHBhZHLDo28uXHJcbiAgICovXHJcbiAgZ2V0TGFuZ3VhZ2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmxhbmd1YWdlU2VydmljZS5nZXRMYW5ndWFnZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0TGl0ZXJhbHMob3B0aW9uczogUG9JMThuTGl0ZXJhbHMgPSB7fSk6IE9ic2VydmFibGU8b2JqZWN0PiB7XHJcbiAgICBjb25zdCBsYW5ndWFnZSA9IG9wdGlvbnNbJ2xhbmd1YWdlJ10gPyBvcHRpb25zWydsYW5ndWFnZSddLnRvTG93ZXJDYXNlKCkgOiB0aGlzLmdldExhbmd1YWdlKCk7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gb3B0aW9uc1snY29udGV4dCddID8gb3B0aW9uc1snY29udGV4dCddIDogdGhpcy5jb250ZXh0RGVmYXVsdDtcclxuICAgIGNvbnN0IGxpdGVyYWxzOiBBcnJheTxzdHJpbmc+ID0gb3B0aW9uc1snbGl0ZXJhbHMnXSA/IG9wdGlvbnNbJ2xpdGVyYWxzJ10gOiBbXTtcclxuXHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xyXG4gICAgICBpZiAodGhpcy5zZXJ2aWNlc0NvbnRleHRbY29udGV4dF0pIHtcclxuICAgICAgICAvLyBGYXogbyBwcm9jZXNzbyBkZSBidXNjYSBkZSB1bSBjb250ZXh0byBxdWUgY29udMOpbSBzZXJ2acOnb1xyXG4gICAgICAgIHRoaXMuZ2V0TGl0ZXJhbHNGcm9tQ29udGV4dFNlcnZpY2UobGFuZ3VhZ2UsIGNvbnRleHQsIGxpdGVyYWxzLCBvYnNlcnZlcik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gRmF6IG8gcHJvY2Vzc28gZGUgYnVzY2EgZGUgdW0gY29udGV4dG8gcXVlIHV0aWxpemEgY29uc3RhbnRlXHJcbiAgICAgICAgdGhpcy5nZXRMaXRlcmFsc0Zyb21Db250ZXh0Q29uc3RhbnQobGFuZ3VhZ2UsIGNvbnRleHQsIGxpdGVyYWxzLCBvYnNlcnZlcik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTcOpdG9kbyBxdWUgcmV0b3JuYSBvIGlkaW9tYSBwYWRyw6NvIGF0aXZvLCBjb20gc29tZW50ZSBhIGFicmV2aWHDp8OjbyBkbyBpZGlvbWEgKGR1YXMgcHJpbWVpcmFzIGxldHJhcykuXHJcbiAgICogUG9yIGV4ZW1wbG86IFwicHRcIiBvdSBcImVzXCIuXHJcbiAgICpcclxuICAgKiBBIGJ1c2NhIGRlc3RlIGlkaW9tYSDDqSBiYXNlYWRhIG5vIG3DqXRvZG8gWyoqZ2V0TGFuZ3VhZ2UoKSoqXSgvZG9jdW1lbnRhdGlvbi9wby1pMThuI2dldC1sYW5ndWFnZSkuXHJcbiAgICpcclxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBzaWdsYSBkbyBpZGlvbWEgcGFkcsOjby5cclxuICAgKi9cclxuICBnZXRTaG9ydExhbmd1YWdlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5sYW5ndWFnZVNlcnZpY2UuZ2V0U2hvcnRMYW5ndWFnZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogPGEgaWQ9XCJzZXRMYW5ndWFnZVwiPjwvYT5cclxuICAgKiBNw6l0b2RvIHBhcmEgYWx0ZXJhciBvIGlkaW9tYSBwYWRyw6NvIGRvIG3Ds2R1bG8gZG8gaTE4bi5cclxuICAgKlxyXG4gICAqIEFvIHV0aWxpemFyIGVzdGUgbcOpdG9kbywgbyBpZGlvbWEgZmljYXLDoSBncmF2YWRvIG5vIGFybWF6ZW5hbWVudG8gbG9jYWwgZG8gbmF2ZWdhZG9yLCBxdWUgc2Vyw6EgdXRpbGl6YWRvIHBlbG9cclxuICAgKiBzZXJ2acOnbyBkbyBgaTE4bmAgcGFyYSBidXNjYXIgYXMgbGl0ZXJhaXMgbm8gaWRpb21hIHBhZHLDo28uXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gbGFuZ3VhZ2UgU2lnbGEgZG8gaWRpb21hLlxyXG4gICAqXHJcbiAgICogRXN0YSBzaWdsYSBkZXZlIHNlciBjb21wb3N0YSBwb3IgZHVhcyBsZXRyYXMgcmVwcmVzZW50YW5kbyBvIGlkaW9tYSxcclxuICAgKiBwb2RlbmRvIHNlciBhZGljaW9uYWRvIG91dHJhcyBkdWFzIGxldHJhcyByZXByZXNlbnRhbmRvIG8gcGHDrXMsIHBvciBleGVtcGxvOiBgcHRgLCBgcHQtQlJgLCBgcHQtYnJgLCBgZW5gIG91IGBlbi1VU2AuXHJcbiAgICpcclxuICAgKiA+IENhc28gc2VqYSBpbmZvcm1hZG8gdW0gdmFsb3IgZGlmZXJlbnRlIGRlc3RlIHBhZHLDo28sIG8gbWVzbW8gc2Vyw6EgaWdub3JhZG8uXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHJlbG9hZCBJbmRpY2Egc2UgYSBww6FnaW5hIGF0dWFsIHBvZGVyw6Egc2VyIHJlY2FycmVnYWRhIGFww7NzIGEgYWx0ZXJhw6fDo28gZG8gaWRpb21hLlxyXG4gICAqXHJcbiAgICogRXN0ZSByZWN1cnNvIHBvZGUgc2VyIMO6dGlsIHBhcmEgb3MgdXN1w6FyaW9zIHF1ZSB1dGlsaXphbSBvIG3DqXRvZG8gYGdldExpdGVyYWxzKClgIGRvIHNlcnZpw6dvIGRvIGkxOG4gcGFyYSBwb2RlclxyXG4gICAqIGJ1c2NhciBub3ZhbWVudGUgYXMgbGl0ZXJhaXMgbm8gbm92byBpZGlvbWEgY29uZmlndXJhZG8uXHJcbiAgICovXHJcbiAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZywgcmVsb2FkOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIGlmICghaXNMYW5ndWFnZShsYW5ndWFnZSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnNldExhbmd1YWdlKGxhbmd1YWdlKTtcclxuXHJcbiAgICBpZiAocmVsb2FkKSB7XHJcbiAgICAgIHJlbG9hZEN1cnJlbnRQYWdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldENvbmZpZyhjb25maWc6IFBvSTE4bkNvbmZpZykge1xyXG4gICAgLy8gU2V0YSBhcyBjb25maWd1cmHDp8O1ZXMgcGFkcsO1ZXMgZGVmaW5pZGFzIG5vIGltcG9ydGHDp8OjbyBkbyBtw7NkdWxvXHJcbiAgICBpZiAoY29uZmlnWydkZWZhdWx0J10pIHtcclxuICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2Uuc2V0TGFuZ3VhZ2VEZWZhdWx0KGNvbmZpZ1snZGVmYXVsdCddWydsYW5ndWFnZSddKTtcclxuXHJcbiAgICAgIHRoaXMuY29udGV4dERlZmF1bHQgPSBjb25maWdbJ2RlZmF1bHQnXVsnY29udGV4dCddID8gY29uZmlnWydkZWZhdWx0J11bJ2NvbnRleHQnXSA6ICcnO1xyXG4gICAgICB0aGlzLnVzZUNhY2hlID0gY29uZmlnWydkZWZhdWx0J11bJ2NhY2hlJ10gPyBjb25maWdbJ2RlZmF1bHQnXVsnY2FjaGUnXSA6IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENhcnJlZ2EgYSBsaXN0YSBkb3MgY29udGV4dG9zIGUgYXMgY29udGFudGVzIGluZm9ybWFkYXNcclxuICAgIGlmIChjb25maWdbJ2NvbnRleHRzJ10pIHtcclxuICAgICAgdGhpcy5zZXRWYXJJMThuKGNvbmZpZ1snY29udGV4dHMnXSk7XHJcblxyXG4gICAgICAvLyBTZSBuZW5odW0gY29udGV4dG8gZm9pIGRlZmluaWRvIGNvbW8gcGFkcsOjbyxcclxuICAgICAgLy8gZW50w6NvIGRlZmluZSBvIHByaW1laXJvIGNvbnRleHRvXHJcbiAgICAgIGlmICghdGhpcy5jb250ZXh0RGVmYXVsdCkge1xyXG4gICAgICAgIGZvciAoY29uc3QgY29udGV4dCBpbiBjb25maWdbJ2NvbnRleHRzJ10pIHtcclxuICAgICAgICAgIGlmICh0aGlzLmNvbmZpZ1snY29udGV4dHMnXS5oYXNPd25Qcm9wZXJ0eShjb250ZXh0KSkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRleHREZWZhdWx0ID0gY29udGV4dDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBQcm9jZXNzbyBkZSBidXNjYSBkZSB1bSBjb250ZXh0byBxdWUgY29udMOpbSBzZXJ2acOnby5cclxuICAvLyAgICAxIC0gUHJvY3VyYSBuYSB2YXJpw6F2ZWwgSTE4biBkZXN0ZSBzZXJ2acOnb1xyXG4gIC8vICAgIDIgLSBQcm9jdXJhIG5vIGxvY2FsIHN0b3JhZ2UgKFNlIG8gY2FjaGUgZXN0aXZlciBkZWZpbmlkbyBjb21vIHRydWUgbmEgY29uZmlndXJhw6fDo28gZG8gbcOzZHVsbylcclxuICAvLyAgICAzIC0gRGlzcGFyYSBvIHNlcnZpw6dvLCBtZXNtbyBxdWUgasOhIHRlbmhhIGVuY29udHJhZG8gbm8gbG9jYWwgc3RvcmFnZSwgcGFyYSBnYXJhbnRpciBhIGF0dWFsaXphw6fDo29cclxuICAvLyAgICA0IC0gU2UgbmVuaHVtYSBsaXRlcmFsIGZvciBlbmNvbnRyYWRhLCBlbnTDo28gYnVzY2EgZW0gcHQtYnJcclxuICBwcml2YXRlIGdldExpdGVyYWxzRnJvbUNvbnRleHRTZXJ2aWNlKFxyXG4gICAgbGFuZ3VhZ2U6IHN0cmluZyxcclxuICAgIGNvbnRleHQ6IHN0cmluZyxcclxuICAgIGxpdGVyYWxzOiBBcnJheTxzdHJpbmc+LFxyXG4gICAgb2JzZXJ2ZXI6IGFueSxcclxuICAgIHRyYW5zbGF0aW9uczogYW55ID0ge30sXHJcbiAgICBsYW5ndWFnZUFsdGVybmF0aXZlOiBzdHJpbmcgPSBudWxsXHJcbiAgKSB7XHJcbiAgICAvLyBJZGlvbWEgdXNhZG8gcGFyYSB0ZW50YXIgYnVzY2FyIGFzIGxpdGVyYWlzIGZhbHRhbnRlc1xyXG4gICAgY29uc3QgbGFuZ3VhZ2VTZWFyY2ggPSBsYW5ndWFnZUFsdGVybmF0aXZlID8gbGFuZ3VhZ2VBbHRlcm5hdGl2ZSA6IGxhbmd1YWdlO1xyXG5cclxuICAgIHRyYW5zbGF0aW9ucyA9IHRoaXMubWVyZ2VPYmplY3QodHJhbnNsYXRpb25zLCB0aGlzLnNlYXJjaEluVmFySTE4bihsYW5ndWFnZVNlYXJjaCwgY29udGV4dCwgbGl0ZXJhbHMpKTtcclxuXHJcbiAgICBpZiAodGhpcy5jb3VudE9iamVjdCh0cmFuc2xhdGlvbnMpID4gMCkge1xyXG4gICAgICBvYnNlcnZlci5uZXh0KHRyYW5zbGF0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gcmVhbGl6YSBhIGJ1c2NhIG5vIGxvY2FsU3RvcmFnZSBlIGVtIHNlZ3VpZGEgbm8gc2VydmnDp29cclxuICAgIHRoaXMuZ2V0TGl0ZXJhbHNMb2NhbFN0b3JhZ2VBbmRDYWNoZShcclxuICAgICAgbGFuZ3VhZ2VTZWFyY2gsXHJcbiAgICAgIGNvbnRleHQsXHJcbiAgICAgIGxpdGVyYWxzLFxyXG4gICAgICBvYnNlcnZlcixcclxuICAgICAgdHJhbnNsYXRpb25zLFxyXG4gICAgICBsYW5ndWFnZUFsdGVybmF0aXZlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gUHJvY3VyYSBubyBsb2NhbCBzdG9yYWdlIGUgZW0gc2VndWlkYSBubyBzZXJ2acOnb1xyXG4gIC8vIENhc28gbsOjbyBlbmNvbnRyZSBuZW0gbm8gc2VydmnDp28sIHJlY29tZcOnYSBhIGJ1c2NhIGVtIHB0LWJyXHJcbiAgcHJpdmF0ZSBnZXRMaXRlcmFsc0xvY2FsU3RvcmFnZUFuZENhY2hlKFxyXG4gICAgbGFuZ3VhZ2U6IHN0cmluZyxcclxuICAgIGNvbnRleHQ6IHN0cmluZyxcclxuICAgIGxpdGVyYWxzOiBBcnJheTxzdHJpbmc+LFxyXG4gICAgb2JzZXJ2ZXI6IGFueSxcclxuICAgIHRyYW5zbGF0aW9uczogYW55LFxyXG4gICAgbGFuZ3VhZ2VBbHRlcm5hdGl2ZTogc3RyaW5nID0gbnVsbFxyXG4gICkge1xyXG4gICAgY29uc3QgbGFuZ3VhZ2VTZWFyY2ggPSBsYW5ndWFnZUFsdGVybmF0aXZlID8gbGFuZ3VhZ2VBbHRlcm5hdGl2ZSA6IGxhbmd1YWdlO1xyXG4gICAgbGV0IHRyYW5zbGF0aW9uVGVtcDtcclxuICAgIC8vIFZlcmlmaWNhIHNlIHVzYSBjYWNoZVxyXG4gICAgaWYgKHRoaXMudXNlQ2FjaGUpIHtcclxuICAgICAgdHJhbnNsYXRpb25UZW1wID0gdGhpcy5zZWFyY2hJbkxvY2FsU3RvcmFnZShsYW5ndWFnZVNlYXJjaCwgY29udGV4dCwgbGl0ZXJhbHMpO1xyXG4gICAgICBpZiAodGhpcy5jb3VudE9iamVjdCh0cmFuc2xhdGlvblRlbXApID4gMCkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlVmFySTE4bihsYW5ndWFnZSwgY29udGV4dCwgdHJhbnNsYXRpb25UZW1wKTtcclxuICAgICAgICB0cmFuc2xhdGlvbnMgPSB0aGlzLm1lcmdlT2JqZWN0KHRyYW5zbGF0aW9uVGVtcCwgdHJhbnNsYXRpb25zKTtcclxuICAgICAgICBvYnNlcnZlci5uZXh0KHRyYW5zbGF0aW9ucyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBCdXNjYSBkbyBTZXJ2acOnb1xyXG4gICAgdGhpcy5nZXRIdHRwU2VydmljZSh0aGlzLnNlcnZpY2VzQ29udGV4dFtjb250ZXh0XSwgbGFuZ3VhZ2VTZWFyY2gsIGxpdGVyYWxzKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xyXG4gICAgICBpZiAocmVzcG9uc2UpIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZUxvY2FsU3RvcmFnZShsYW5ndWFnZSwgY29udGV4dCwgcmVzcG9uc2UpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlVmFySTE4bihsYW5ndWFnZSwgY29udGV4dCwgcmVzcG9uc2UpO1xyXG4gICAgICAgIHRyYW5zbGF0aW9uVGVtcCA9IHRoaXMuc2VhcmNoSW5WYXJJMThuKGxhbmd1YWdlLCBjb250ZXh0LCBsaXRlcmFscyk7XHJcbiAgICAgICAgdHJhbnNsYXRpb25zID0gdGhpcy5tZXJnZU9iamVjdCh0cmFuc2xhdGlvblRlbXAsIHRyYW5zbGF0aW9ucyk7XHJcbiAgICAgICAgb2JzZXJ2ZXIubmV4dCh0cmFuc2xhdGlvbnMpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBTZSBuw6NvIGVuY29udHJvdSB0b2RhcyBhcyBsaXRlcmFpcyBwZXNxdWlzYWRhcyBubyBpZGlvbWFcclxuICAgICAgLy8gRW50w6NvIHJlZmF6IG8gcHJvY2Vzc28gcHJvY3VyYW5kbyBlbSBwb3J0dWd1w6pzXHJcbiAgICAgIGlmIChsaXRlcmFscy5sZW5ndGggPiB0aGlzLmNvdW50T2JqZWN0KHRyYW5zbGF0aW9ucykpIHtcclxuICAgICAgICBpZiAobGFuZ3VhZ2VBbHRlcm5hdGl2ZSA9PT0gJ3B0LWJyJykge1xyXG4gICAgICAgICAgLy8gU2UgbsOjbyBlbmNvbnRyb3UgbmVtIGVtIHBvcnR1Z3XDqnMsIGVudMOjbyByZXRvcm5hIG8gbm9tZSBkYXMgbGl0ZXJhaXNcclxuICAgICAgICAgIHRyYW5zbGF0aW9ucyA9IHRoaXMuY29tcGxldGVGYXVsdExpdGVyYWxzKGxhbmd1YWdlLCBjb250ZXh0LCBsaXRlcmFscywgdHJhbnNsYXRpb25zKTtcclxuICAgICAgICAgIHRoaXMudXBkYXRlTG9jYWxTdG9yYWdlKGxhbmd1YWdlLCBjb250ZXh0LCB0cmFuc2xhdGlvbnMpO1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVWYXJJMThuKGxhbmd1YWdlLCBjb250ZXh0LCB0cmFuc2xhdGlvbnMpO1xyXG4gICAgICAgICAgb2JzZXJ2ZXIubmV4dCh0cmFuc2xhdGlvbnMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmdldExpdGVyYWxzRnJvbUNvbnRleHRTZXJ2aWNlKGxhbmd1YWdlLCBjb250ZXh0LCBsaXRlcmFscywgb2JzZXJ2ZXIsIHRyYW5zbGF0aW9ucywgJ3B0LWJyJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIFByb2N1cmEgcGVsYSBsaXN0YSBkZSBsaXRlcmFpc1xyXG4gIC8vIFNlIG7Do28gZW5jb250cmFyIHRvZGFzLCBwcm9jdXJhIGVtIHB0LWJyXHJcbiAgcHJpdmF0ZSBnZXRMaXRlcmFsc0Zyb21Db250ZXh0Q29uc3RhbnQoXHJcbiAgICBsYW5ndWFnZTogc3RyaW5nLFxyXG4gICAgY29udGV4dDogc3RyaW5nLFxyXG4gICAgbGl0ZXJhbHM6IEFycmF5PHN0cmluZz4sXHJcbiAgICBvYnNlcnZlcjogYW55LFxyXG4gICAgdHJhbnNsYXRpb25zOiBhbnkgPSB7fVxyXG4gICkge1xyXG4gICAgdHJhbnNsYXRpb25zID0gdGhpcy5tZXJnZU9iamVjdCh0cmFuc2xhdGlvbnMsIHRoaXMuc2VhcmNoSW5WYXJJMThuKGxhbmd1YWdlLCBjb250ZXh0LCBsaXRlcmFscykpO1xyXG4gICAgaWYgKHRoaXMuY291bnRPYmplY3QodHJhbnNsYXRpb25zKSA+IDApIHtcclxuICAgICAgb2JzZXJ2ZXIubmV4dCh0cmFuc2xhdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFNlIGZvaSBwZXNxdWlzYWRvIHBvciBsaXRlcmFpc1xyXG4gICAgaWYgKGxpdGVyYWxzLmxlbmd0aCA+IDApIHtcclxuICAgICAgLy8gU2UgbsOjbyBlbmNvbnRyb3UgdG9kYXMgYXMgbGl0ZXJhaXMgcGVzcXVpc2FkYXMgbm8gaWRpb21hLCBwcm9jdXJhIGVtIHBvcnR1Z3XDqnNcclxuICAgICAgaWYgKGxpdGVyYWxzLmxlbmd0aCA+IHRoaXMuY291bnRPYmplY3QodHJhbnNsYXRpb25zKSkge1xyXG4gICAgICAgIGlmIChsYW5ndWFnZSA9PT0gJ3B0LWJyJykge1xyXG4gICAgICAgICAgLy8gU2UgbsOjbyBlbmNvbnRyb3UgbmVtIGVtIHBvcnR1Z3XDqnMsIGVudMOjbyByZXRvcm5hIG8gbm9tZSBkYXMgbGl0ZXJhaXNcclxuICAgICAgICAgIHRyYW5zbGF0aW9ucyA9IHRoaXMuY29tcGxldGVGYXVsdExpdGVyYWxzKGxhbmd1YWdlLCBjb250ZXh0LCBsaXRlcmFscywgdHJhbnNsYXRpb25zKTtcclxuICAgICAgICAgIG9ic2VydmVyLm5leHQodHJhbnNsYXRpb25zKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5nZXRMaXRlcmFsc0Zyb21Db250ZXh0Q29uc3RhbnQoJ3B0LWJyJywgY29udGV4dCwgbGl0ZXJhbHMsIG9ic2VydmVyLCB0cmFuc2xhdGlvbnMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gU2UgbsOjbyBlbmNvbnRyYXIgbmVuaHVtYSBsaXRlcmFsLCBwcm9jdXJhIGVtIHBvcnR1Z3XDqnNcclxuICAgICAgaWYgKHRoaXMuY291bnRPYmplY3QodHJhbnNsYXRpb25zKSA9PT0gMCAmJiBsYW5ndWFnZSAhPT0gJ3B0LWJyJykge1xyXG4gICAgICAgIHRoaXMuZ2V0TGl0ZXJhbHNGcm9tQ29udGV4dENvbnN0YW50KCdwdC1icicsIGNvbnRleHQsIGxpdGVyYWxzLCBvYnNlcnZlciwgdHJhbnNsYXRpb25zKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gY2FzbyBuw6NvIGluZm9ybWFyIGxpdGVyYWlzIGUgbsOjbyBob3V2ZXIgdHJhZHXDp8Ojb1xyXG4gICAgICBvYnNlcnZlci5uZXh0KHRyYW5zbGF0aW9ucyk7XHJcbiAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBCdXNjYSBwZWxhcyBsaXRlcmFpcyBubyBsb2NhbCBzdG9yYWdlXHJcbiAgcHJpdmF0ZSBzZWFyY2hJbkxvY2FsU3RvcmFnZShsYW5ndWFnZTogc3RyaW5nLCBjb250ZXh0OiBzdHJpbmcsIGxpdGVyYWxzOiBBcnJheTxzdHJpbmc+KTogYW55IHtcclxuICAgIGNvbnN0IHRyYW5zbGF0aW9uczogYW55ID0ge307XHJcblxyXG4gICAgaWYgKGxpdGVyYWxzLmxlbmd0aCA+IDApIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXRlcmFscy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IGxpdGVyYWwgPSBsaXRlcmFsc1tpXTtcclxuICAgICAgICBjb25zdCB0cmFuc2xhdGlvbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGxhbmd1YWdlICsgJy0nICsgY29udGV4dCArICctJyArIGxpdGVyYWwpO1xyXG4gICAgICAgIGlmICh0cmFuc2xhdGlvbikge1xyXG4gICAgICAgICAgdHJhbnNsYXRpb25zW2xpdGVyYWxdID0gdHJhbnNsYXRpb247XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJhbnNsYXRpb25zO1xyXG4gIH1cclxuXHJcbiAgLy8gQnVzY2EgcGVsYXMgbGl0ZXJhaXMgbmEgdmFyacOhdmVsIGRvIHNlcnZpw6dvXHJcbiAgcHJpdmF0ZSBzZWFyY2hJblZhckkxOG4obGFuZ3VhZ2U6IHN0cmluZywgY29udGV4dDogc3RyaW5nLCBsaXRlcmFsczogQXJyYXk8c3RyaW5nPik6IGFueSB7XHJcbiAgICBsZXQgdHJhbnNsYXRpb25zOiBhbnkgPSB7fTtcclxuXHJcbiAgICBpZiAodGhpcy52YXJJMThuW2xhbmd1YWdlXSAmJiB0aGlzLnZhckkxOG5bbGFuZ3VhZ2VdW2NvbnRleHRdKSB7XHJcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLnZhckkxOG5bbGFuZ3VhZ2VdW2NvbnRleHRdO1xyXG5cclxuICAgICAgaWYgKGxpdGVyYWxzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAvLyBCdXNjYSBhcyBsaXRlcmFpcyBkZXNlamFkYXNcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpdGVyYWxzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBjb25zdCBsaXRlcmFsID0gbGl0ZXJhbHNbaV07XHJcbiAgICAgICAgICBpZiAoY29udGVudC5oYXNPd25Qcm9wZXJ0eShsaXRlcmFsKSkge1xyXG4gICAgICAgICAgICB0cmFuc2xhdGlvbnNbbGl0ZXJhbF0gPSBjb250ZW50W2xpdGVyYWxdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBBdHJpYnVpIHRvZGFzIGFzIGxpdGVyYWlzXHJcbiAgICAgICAgdHJhbnNsYXRpb25zID0geyAuLi5jb250ZW50IH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0cmFuc2xhdGlvbnM7XHJcbiAgfVxyXG5cclxuICAvLyBBdHVhbGl6YSBvIGxvY2FsIHN0b3JhZ2VcclxuICBwcml2YXRlIHVwZGF0ZUxvY2FsU3RvcmFnZShsYW5ndWFnZTogc3RyaW5nLCBjb250ZXh0OiBzdHJpbmcsIGRhdGE6IGFueSkge1xyXG4gICAgaWYgKHRoaXMudXNlQ2FjaGUpIHtcclxuICAgICAgZm9yIChjb25zdCBsaXRlcmFsIG9mIE9iamVjdC5rZXlzKGRhdGEpKSB7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0obGFuZ3VhZ2UgKyAnLScgKyBjb250ZXh0ICsgJy0nICsgbGl0ZXJhbCwgZGF0YVtsaXRlcmFsXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEF0dWFsaXphIGEgdmFyacOhdmVsIGxvY2FsIGNvbSBhcyBsaXRlcmFpcyBjb20gb3Mgb2JqZXRvcyBwYXNzYWRvcyBuYSBjb25maWd1cmHDp8Ojb1xyXG4gIHByaXZhdGUgc2V0VmFySTE4bihjb250ZXh0czogT2JqZWN0KSB7XHJcbiAgICAvLyBQZXJjb3JyZSBvcyBjb250ZXh0b3NcclxuICAgIGZvciAoY29uc3QgY29udGV4dCBvZiBPYmplY3Qua2V5cyhjb250ZXh0cykpIHtcclxuICAgICAgY29uc3QgY29udGV4dENvbnRlbnQgPSBjb250ZXh0c1tjb250ZXh0XTtcclxuICAgICAgLy8gUGVyY29ycmUgb3MgaWRpb21hcyBkZW50cm8gZG8gY29udGV4dG9cclxuICAgICAgZm9yIChjb25zdCBsYW5ndWFnZSBvZiBPYmplY3Qua2V5cyhjb250ZXh0Q29udGVudCkpIHtcclxuICAgICAgICBjb25zdCBsYW5ndWFnZUNvbnRlbnQgPSBjb250ZXh0Q29udGVudFtsYW5ndWFnZV07XHJcbiAgICAgICAgaWYgKGxhbmd1YWdlID09PSAndXJsJykge1xyXG4gICAgICAgICAgdGhpcy5zZXJ2aWNlc0NvbnRleHRbY29udGV4dF0gPSBsYW5ndWFnZUNvbnRlbnQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudXBkYXRlVmFySTE4bihsYW5ndWFnZSwgY29udGV4dCwgbGFuZ3VhZ2VDb250ZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEF0dWFsaXphIGEgdmFyacOhdmVsIGxvY2FsIGNvbSBhcyBsaXRlcmFpcyBpZGlvbWEgZSBjb250ZXh0b1xyXG4gIHByaXZhdGUgdXBkYXRlVmFySTE4bihsYW5ndWFnZTogc3RyaW5nLCBjb250ZXh0OiBzdHJpbmcsIGRhdGE6IGFueSkge1xyXG4gICAgbGFuZ3VhZ2UgPSBsYW5ndWFnZS50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAgIGlmICghdGhpcy52YXJJMThuW2xhbmd1YWdlXSkge1xyXG4gICAgICB0aGlzLnZhckkxOG5bbGFuZ3VhZ2VdID0geyBbY29udGV4dF06IHt9IH07XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMudmFySTE4bltsYW5ndWFnZV1bY29udGV4dF0pIHtcclxuICAgICAgdGhpcy52YXJJMThuW2xhbmd1YWdlXVtjb250ZXh0XSA9IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENyaWEgb3UgYXR1YWxpemEgbyBjb250ZXh0byBkZW50cm8gZG8gc3RvcmFnZVxyXG4gICAgdGhpcy52YXJJMThuW2xhbmd1YWdlXVtjb250ZXh0XSA9IHRoaXMubWVyZ2VPYmplY3QoZGF0YSwgdGhpcy52YXJJMThuW2xhbmd1YWdlXVtjb250ZXh0XSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEh0dHBTZXJ2aWNlKHVybDogc3RyaW5nLCBsYW5ndWFnZTogc3RyaW5nLCBsaXRlcmFsczogQXJyYXk8c3RyaW5nPikge1xyXG4gICAgbGV0IHBhcmFtID0gJz9sYW5ndWFnZT0nICsgbGFuZ3VhZ2U7XHJcbiAgICBpZiAobGl0ZXJhbHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBwYXJhbSArPSAnJmxpdGVyYWxzPScgKyBsaXRlcmFscy5qb2luKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmVtb3ZlIGEgYmFycmEgZmluYWwgZG8gZW5kZXJlw6dvXHJcbiAgICB1cmwgPSB1cmwucmVwbGFjZSgvXFwvJC8sICcnKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt1cmx9JHtwYXJhbX1gKTtcclxuICB9XHJcblxyXG4gIC8vIENvbXBsZXRhIGNvbSBvIG5vbWUgZGEgbGl0ZXJhaXMsIGFzIHF1ZSBuw6NvIGZvcmFtIGVuY29udHJhZGFzXHJcbiAgcHJpdmF0ZSBjb21wbGV0ZUZhdWx0TGl0ZXJhbHMobGFuZ3VhZ2U6IHN0cmluZywgY29udGV4dDogc3RyaW5nLCBsaXRlcmFsczogQXJyYXk8c3RyaW5nPiwgdHJhbnNsYXRpb25zOiBhbnkpIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGl0ZXJhbHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgbGl0ZXJhbCA9IGxpdGVyYWxzW2ldO1xyXG4gICAgICBpZiAoIXRyYW5zbGF0aW9uc1tsaXRlcmFsXSkge1xyXG4gICAgICAgIHRyYW5zbGF0aW9uc1tsaXRlcmFsXSA9IGxpdGVyYWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0cmFuc2xhdGlvbnM7XHJcbiAgfVxyXG5cclxuICAvLyBDb250YSBvcyBhdHJpYnV0b3MgZG8gb2JqZXRvXHJcbiAgcHJpdmF0ZSBjb3VudE9iamVjdChvYmo6IG9iamVjdCkge1xyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgLy8gRmF6IG8gbWVyZ2UgZG9zIG9iamV0b3MsIHNlbXByZSBkYW5kbyBwcmVmZXLDqm5jaWEgcGFyYSBvIHByaW1laXJvIG9iamV0byBkZSBwYXLDom1ldHJvXHJcbiAgcHJpdmF0ZSBtZXJnZU9iamVjdChvYmpQZXJtYW5lbnQ6IGFueSwgb2JqOiBhbnkpIHtcclxuICAgIHJldHVybiB7IC4uLm9iaiwgLi4ub2JqUGVybWFuZW50IH07XHJcbiAgfVxyXG59XHJcbiJdfQ==