axidio-styleguide-library1-v2 0.4.75 → 0.4.76

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.
@@ -236,7 +236,7 @@ export class AxTableComponent {
236
236
  const isNumber = !isNaN(Number(strValue));
237
237
  const isDate = !isNaN(Date.parse(strValue));
238
238
  const isAlphaNumericWithTrailingNumber = /^[A-Za-z]*\d+[A-Za-z0-9]*$/.test(strValue);
239
- if (isNumber || isDate || isAlphaNumericWithTrailingNumber) {
239
+ if (isNumber || isDate) {
240
240
  return 'textalign-right';
241
241
  }
242
242
  // Default: last column right, others left
@@ -260,4 +260,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
260
260
  }], clickEvent: [{
261
261
  type: Output
262
262
  }] } });
263
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXgtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXhpZGlvLXN0eWxlZ3VpZGUtbGlicmFyeS9zcmMvbGliL2F4LXRhYmxlL2F4LXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F4aWRpby1zdHlsZWd1aWRlLWxpYnJhcnkvc3JjL2xpYi9heC10YWJsZS9heC10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sV0FBVyxNQUFNLGlCQUFpQixDQUFDOzs7OztBQTZCMUMsTUFBTSxPQUFPLGdCQUFnQjtJQTZCM0I7UUExQlUsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFL0Msb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixrQkFBYSxHQUFhLEVBQUUsQ0FBQztRQUM3QixhQUFRLEdBQVUsRUFBRSxDQUFDO1FBQ3JCLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFDdkIsZ0JBQVcsR0FBVSxFQUFFLENBQUM7UUFFZixzQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDdkIsc0JBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBRS9CLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDbEMsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNuQixnQkFBVyxHQUFhLEVBQUUsQ0FBQztRQUUzQixrQkFBYSxHQUFrQixLQUFLLENBQUM7UUFDckMsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUVoQix1QkFB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QU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV0Qyw0REFBNEQ7UUFDNUQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sZ0NBQWdDLEdBQUcsNEJBQTRCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXJGLElBQUksUUFBUSxJQUFJLE1BQU0sSUFBSSxnQ0FBZ0MsRUFBRSxDQUFDO1lBQzNELE9BQU8saUJBQWlCLENBQUM7UUFDM0IsQ0FBQztRQUVELDBDQUEwQztRQUMxQyxPQUFPLEtBQUssS0FBSyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQzVDLENBQUMsQ0FBQyxtQ0FBbUM7WUFDckMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDO0lBQ3ZCLENBQUM7SUFHRyxvQkFBb0I7UUFDcEIsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixDQUFDO0lBQ3ZELENBQUM7K0dBdlRVLGdCQUFnQjttR0FBaEIsZ0JBQWdCLHFMQzlCN0IsZy9IQW9GTTs7NEZEdERPLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxjQUFjO3dEQUtmLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBDaGFydEhlbHBlciBmcm9tICcuLi9jaGFydC1oZWxwZXInO1xyXG5cclxuaW50ZXJmYWNlIFRhYmxlTWV0YURhdGEge1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGlzUGFnaW5hdGlvbkhpZGRlbj86IGJvb2xlYW47XHJcbiAgaXNIZWFkZXJWaXNpYmxlPzogYm9vbGVhbjtcclxuICBpc1NlYXJjaEhpZGRlbj86IGJvb2xlYW47XHJcbiAgaXNIZWFkZXJBbGlnbmVkVG9DZW50ZXI/OiBib29sZWFuO1xyXG4gIGlzSGVhZGVyU29ydEhpZGRlbj86IGJvb2xlYW47XHJcbiAgaXNGaXJzdENvbHVtbkhlYWRlckhpZGRlbj86IGJvb2xlYW47XHJcbiAgaXNBbGxBbGlnbmVkVG9SaWdodD86IGJvb2xlYW47XHJcbiAgaGFzRHJpbGxEb3duPzogYm9vbGVhbjtcclxuICBoZWFkZXJDb2xvcj86IHN0cmluZztcclxuICBoZWFkZXJUZXh0Q29sb3I/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBUYWJsZURhdGEge1xyXG4gIGRhdGE6IGFueVtdO1xyXG4gIG1ldGFEYXRhOiBUYWJsZU1ldGFEYXRhO1xyXG4gIGhpZ2hsaWdodGVkVGV4dHM/OiBzdHJpbmdbXTtcclxufVxyXG5cclxudHlwZSBTb3J0RGlyZWN0aW9uID0gJ2FzYycgfCAnZGVzYyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1heC10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F4LXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9heC10YWJsZS5jb21wb25lbnQubGVzcycsICcuLi9jb21tb24tc3R5bGVzLmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF4VGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHRhYmxlRGF0YSE6IFRhYmxlRGF0YTtcclxuICBASW5wdXQoKSBjdXN0b21DaGFydENvbmZpZ3VyYXRpb246IGFueTtcclxuICBAT3V0cHV0KCkgY2xpY2tFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBpc0hlYWRlclZpc2libGUgPSB0cnVlO1xyXG4gIGlzVXNlclNvcnQgPSBmYWxzZTtcclxuXHJcbiAgdGFibGVIZWFkTGlzdDogc3RyaW5nW10gPSBbXTtcclxuICBpdGVtTGlzdDogYW55W10gPSBbXTtcclxuICBtYXN0ZXJMaXN0OiBhbnlbXSA9IFtdO1xyXG4gIGN1cnJlbnRMaXN0OiBhbnlbXSA9IFtdO1xyXG5cclxuICByZWFkb25seSBERUZBVUxUX1BBR0VfU0laRSA9IDEwO1xyXG4gIHJlYWRvbmx5IE1BWF9QQUdFU19UT19TSE9XID0gNTtcclxuICBcclxuICBjdXJyZW50UGFnZSA9IDE7XHJcbiAgcGFnZVNpemUgPSB0aGlzLkRFRkFVTFRfUEFHRV9TSVpFO1xyXG4gIHRvdGFsSXRlbXMgPSAwO1xyXG4gIHRvdGFsUGFnZXMgPSAxO1xyXG4gIGdvVG9QYWdlTnVtYmVyID0gMTtcclxuICBwYWdlc1RvU2hvdzogbnVtYmVyW10gPSBbXTtcclxuXHJcbiAgc29ydERpcmVjdGlvbjogU29ydERpcmVjdGlvbiA9ICdhc2MnO1xyXG4gIHNvcnRDb2x1bW4gPSAnJztcclxuXHJcbiAgY2hhcnRDb25maWd1cmF0aW9uOiBhbnkgPSB7fTtcclxuICBkZWZhdWx0Q29uZmlndXJhdGlvbjogYW55ID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRpYWxpemVDb21wb25lbnQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUNvbXBvbmVudCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZXh0cmFjdFRhYmxlSGVhZGVycygpO1xyXG4gICAgdGhpcy5tZXJnZUNvbmZpZ3VyYXRpb25zKCk7XHJcbiAgICB0aGlzLmluaXRpYWxpemVEYXRhKCk7XHJcbiAgICB0aGlzLnVwZGF0ZUhlYWRlclZpc2liaWxpdHkoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZXh0cmFjdFRhYmxlSGVhZGVycygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnRhYmxlRGF0YT8uZGF0YT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnRhYmxlSGVhZExpc3QgPSBPYmplY3Qua2V5cyh0aGlzLnRhYmxlRGF0YS5kYXRhWzBdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbWVyZ2VDb25maWd1cmF0aW9ucygpOiB2b2lkIHtcclxuICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuZGVmYXVsdENvbmZpZ3VyYXRpb24pIHtcclxuICAgICAgdGhpcy5jaGFydENvbmZpZ3VyYXRpb25ba2V5XSA9IENoYXJ0SGVscGVyLmdldFZhbHVlQnlDb25maWd1cmF0aW9uVHlwZShcclxuICAgICAgICBrZXksXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0Q29uZmlndXJhdGlvbixcclxuICAgICAgICB0aGlzLmN1c3RvbUNoYXJ0Q29uZmlndXJhdGlvblxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplRGF0YSgpOiB2b2lkIHtcclxuICAgIHRoaXMubWFzdGVyTGlzdCA9IFsuLi50aGlzLnRhYmxlRGF0YS5kYXRhXTtcclxuICAgIHRoaXMuaXRlbUxpc3QgPSBbLi4udGhpcy5tYXN0ZXJMaXN0XTtcclxuICAgIHRoaXMudG90YWxJdGVtcyA9IHRoaXMuaXRlbUxpc3QubGVuZ3RoO1xyXG4gICAgdGhpcy5jYWxjdWxhdGVUb3RhbFBhZ2VzKCk7XHJcbiAgICB0aGlzLmdlbmVyYXRlUGFnZXNUb1Nob3coKTtcclxuXHJcbiAgICBpZiAodGhpcy50YWJsZURhdGEubWV0YURhdGEuaXNQYWdpbmF0aW9uSGlkZGVuKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudExpc3QgPSB0aGlzLml0ZW1MaXN0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5sb2FkUGFnZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVIZWFkZXJWaXNpYmlsaXR5KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudGFibGVEYXRhLm1ldGFEYXRhLmlzSGVhZGVyVmlzaWJsZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuaXNIZWFkZXJWaXNpYmxlID0gdGhpcy50YWJsZURhdGEubWV0YURhdGEuaXNIZWFkZXJWaXNpYmxlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkUGFnZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSAodGhpcy5jdXJyZW50UGFnZSAtIDEpICogdGhpcy5wYWdlU2l6ZTtcclxuICAgIGNvbnN0IGVuZEluZGV4ID0gc3RhcnRJbmRleCArIHRoaXMucGFnZVNpemU7XHJcbiAgICB0aGlzLmN1cnJlbnRMaXN0ID0gdGhpcy5pdGVtTGlzdC5zbGljZShzdGFydEluZGV4LCBlbmRJbmRleCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNhbGN1bGF0ZVRvdGFsUGFnZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRvdGFsUGFnZXMgPSBNYXRoLmNlaWwodGhpcy50b3RhbEl0ZW1zIC8gdGhpcy5wYWdlU2l6ZSk7XHJcbiAgICB0aGlzLmdvVG9QYWdlTnVtYmVyID0gdGhpcy5jdXJyZW50UGFnZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2VuZXJhdGVQYWdlc1RvU2hvdygpOiB2b2lkIHtcclxuICAgIHRoaXMucGFnZXNUb1Nob3cgPSBbXTtcclxuICAgIFxyXG4gICAgbGV0IHN0YXJ0UGFnZSA9IE1hdGgubWF4KFxyXG4gICAgICAxLFxyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlIC0gTWF0aC5mbG9vcih0aGlzLk1BWF9QQUdFU19UT19TSE9XIC8gMilcclxuICAgICk7XHJcbiAgICBsZXQgZW5kUGFnZSA9IE1hdGgubWluKFxyXG4gICAgICB0aGlzLnRvdGFsUGFnZXMsXHJcbiAgICAgIHN0YXJ0UGFnZSArIHRoaXMuTUFYX1BBR0VTX1RPX1NIT1cgLSAxXHJcbiAgICApO1xyXG5cclxuICAgIGlmIChlbmRQYWdlIC0gc3RhcnRQYWdlICsgMSA8IHRoaXMuTUFYX1BBR0VTX1RPX1NIT1cpIHtcclxuICAgICAgc3RhcnRQYWdlID0gTWF0aC5tYXgoMSwgZW5kUGFnZSAtIHRoaXMuTUFYX1BBR0VTX1RPX1NIT1cgKyAxKTtcclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGxldCBpID0gc3RhcnRQYWdlOyBpIDw9IGVuZFBhZ2U7IGkrKykge1xyXG4gICAgICB0aGlzLnBhZ2VzVG9TaG93LnB1c2goaSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uUGFnaW5hdGlvbkNoYW5nZSgpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZFBhZ2UoKTtcclxuICAgIHRoaXMuZ29Ub1BhZ2VOdW1iZXIgPSB0aGlzLmN1cnJlbnRQYWdlO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVBhZ2VzVG9TaG93KCk7XHJcbiAgfVxyXG5cclxuICBnb1RvRmlyc3RQYWdlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgIT09IDEpIHtcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XHJcbiAgICAgIHRoaXMub25QYWdpbmF0aW9uQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnb1RvUHJldmlvdXNQYWdlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgPiAxKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UtLTtcclxuICAgICAgdGhpcy5vblBhZ2luYXRpb25DaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdvVG9OZXh0UGFnZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlIDwgdGhpcy50b3RhbFBhZ2VzKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UrKztcclxuICAgICAgdGhpcy5vblBhZ2luYXRpb25DaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdvVG9MYXN0UGFnZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlICE9PSB0aGlzLnRvdGFsUGFnZXMpIHtcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHRoaXMudG90YWxQYWdlcztcclxuICAgICAgdGhpcy5vblBhZ2luYXRpb25DaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdvVG9QYWdlKHBhZ2U6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKHBhZ2UgPj0gMSAmJiBwYWdlIDw9IHRoaXMudG90YWxQYWdlcyAmJiBwYWdlICE9PSB0aGlzLmN1cnJlbnRQYWdlKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSBwYWdlO1xyXG4gICAgICB0aGlzLm9uUGFnaW5hdGlvbkNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ29Ub1NwZWNpZmljUGFnZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmdvVG9QYWdlTnVtYmVyID09IG51bGwpIHtcclxuICAgICAgdGhpcy5nb1RvUGFnZU51bWJlciA9IHRoaXMuY3VycmVudFBhZ2U7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwYWdlTnVtID0gcGFyc2VJbnQodGhpcy5nb1RvUGFnZU51bWJlci50b1N0cmluZygpLCAxMCk7XHJcblxyXG4gICAgaWYgKGlzTmFOKHBhZ2VOdW0pIHx8IHBhZ2VOdW0gPCAxKSB7XHJcbiAgICAgIHRoaXMuZ29Ub1BhZ2VOdW1iZXIgPSAxO1xyXG4gICAgfSBlbHNlIGlmIChwYWdlTnVtID4gdGhpcy50b3RhbFBhZ2VzKSB7XHJcbiAgICAgIHRoaXMuZ29Ub1BhZ2VOdW1iZXIgPSB0aGlzLnRvdGFsUGFnZXM7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IHRoaXMuZ29Ub1BhZ2VOdW1iZXI7XHJcbiAgICB0aGlzLm9uUGFnaW5hdGlvbkNoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgc29ydEJ5Q29sdW1uKGNvbHVtbklkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmIChjb2x1bW5JZCA9PT0gJ3ZpZXdEZXRhaWxzJyB8fCB0aGlzLnRhYmxlRGF0YS5tZXRhRGF0YS5pc0hlYWRlclNvcnRIaWRkZW4pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXNVc2VyU29ydCA9IHRydWU7XHJcblxyXG4gICAgaWYgKGNvbHVtbklkICE9PSB0aGlzLnNvcnRDb2x1bW4pIHtcclxuICAgICAgdGhpcy5zb3J0Q29sdW1uID0gY29sdW1uSWQ7XHJcbiAgICAgIHRoaXMuc29ydERpcmVjdGlvbiA9ICdhc2MnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zb3J0RGlyZWN0aW9uID0gdGhpcy5zb3J0RGlyZWN0aW9uID09PSAnYXNjJyA/ICdkZXNjJyA6ICdhc2MnO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucGVyZm9ybVNvcnQoY29sdW1uSWQpO1xyXG4gICAgdGhpcy5yZXNldFBhZ2luYXRpb25BZnRlclNvcnQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGVyZm9ybVNvcnQoY29sdW1uSWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5pdGVtTGlzdC5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbXBhcmlzb24gPSB0aGlzLmNvbXBhcmVWYWx1ZXMoYVtjb2x1bW5JZF0sIGJbY29sdW1uSWRdKTtcclxuICAgICAgcmV0dXJuIHRoaXMuc29ydERpcmVjdGlvbiA9PT0gJ2FzYycgPyBjb21wYXJpc29uIDogLWNvbXBhcmlzb247XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29tcGFyZVZhbHVlcyh2MTogYW55LCB2MjogYW55KTogbnVtYmVyIHtcclxuICAgIGNvbnN0IG51bTEgPSBwYXJzZUZsb2F0KHYxKTtcclxuICAgIGNvbnN0IG51bTIgPSBwYXJzZUZsb2F0KHYyKTtcclxuXHJcbiAgICBpZiAoIWlzTmFOKG51bTEpICYmICFpc05hTihudW0yKSkge1xyXG4gICAgICByZXR1cm4gbnVtMSAtIG51bTI7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHYxIDwgdjIgPyAtMSA6IHYxID4gdjIgPyAxIDogMDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzZXRQYWdpbmF0aW9uQWZ0ZXJTb3J0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XHJcbiAgICB0aGlzLnRvdGFsSXRlbXMgPSB0aGlzLml0ZW1MaXN0Lmxlbmd0aDtcclxuICAgIHRoaXMuY2FsY3VsYXRlVG90YWxQYWdlcygpO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVBhZ2VzVG9TaG93KCk7XHJcbiAgICB0aGlzLmxvYWRQYWdlKCk7XHJcbiAgfVxyXG5cclxuICBjaGVja0lmQ29sdW1uQ3VycmVudGx5QmVpbmdTb3J0ZWQoY29sdW1uSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc29ydENvbHVtbiA9PT0gY29sdW1uSWQ7XHJcbiAgfVxyXG5cclxuICBnZXRTb3J0RGlyZWN0aW9uKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5zb3J0RGlyZWN0aW9uID09PSAnYXNjJyA/ICdhcnJvdy11cCcgOiAnYXJyb3ctZG93bic7XHJcbiAgfVxyXG5cclxuICBvbkVudGVyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2VhcmNoVGV4dCA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XHJcbiAgICBcclxuICAgIHRoaXMuaXRlbUxpc3QgPSB0aGlzLmZpbHRlckl0ZW1zKHNlYXJjaFRleHQpO1xyXG4gICAgdGhpcy5yZXNldFBhZ2luYXRpb25BZnRlclNlYXJjaCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWx0ZXJJdGVtcyhzZWFyY2hUZXh0OiBzdHJpbmcpOiBhbnlbXSB7XHJcbiAgICBpZiAoIXNlYXJjaFRleHQpIHtcclxuICAgICAgcmV0dXJuIFsuLi50aGlzLm1hc3Rlckxpc3RdO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGxvd2VyU2VhcmNoVGV4dCA9IHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5tYXN0ZXJMaXN0LmZpbHRlcihpdGVtID0+IFxyXG4gICAgICB0aGlzLnRhYmxlSGVhZExpc3Quc29tZShoZWFkZXIgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gaXRlbVtoZWFkZXJdO1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgXHJcbiAgICAgICAgY29uc3Qgc2VhcmNoYWJsZVN0cmluZyA9IFN0cmluZyh2YWx1ZSkudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICByZXR1cm4gc2VhcmNoYWJsZVN0cmluZy5pbmNsdWRlcyhsb3dlclNlYXJjaFRleHQpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzZXRQYWdpbmF0aW9uQWZ0ZXJTZWFyY2goKTogdm9pZCB7XHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcclxuICAgIHRoaXMudG90YWxJdGVtcyA9IHRoaXMuaXRlbUxpc3QubGVuZ3RoO1xyXG4gICAgdGhpcy5jYWxjdWxhdGVUb3RhbFBhZ2VzKCk7XHJcbiAgICB0aGlzLmdlbmVyYXRlUGFnZXNUb1Nob3coKTtcclxuICAgIHRoaXMubG9hZFBhZ2UoKTtcclxuICB9XHJcblxyXG4gIGdldFdpZHRoQnlJZChjb2x1bW5JZDogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLnRhYmxlSGVhZExpc3QubGVuZ3RoID09PSAzKSB7XHJcbiAgICAgIHJldHVybiBpbmRleCA9PT0gMSA/ICc2MCUnIDogJzIwJSc7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNvbnN0IHdpZHRoID0gMTAwIC8gdGhpcy50YWJsZUhlYWRMaXN0Lmxlbmd0aDtcclxuICAgIHJldHVybiBgJHt3aWR0aH0lYDtcclxuICB9XHJcblxyXG4gIHByZXZlbnROZWdhdGl2ZShldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgaW52YWxpZEtleXMgPSBbJy0nLCAnKycsICdlJywgJ0UnXTtcclxuICAgIGlmIChpbnZhbGlkS2V5cy5pbmNsdWRlcyhldmVudC5rZXkpKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZU51bWJlcklucHV0KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjaGFyQ29kZSA9IGV2ZW50LndoaWNoIHx8IGV2ZW50LmtleUNvZGU7XHJcbiAgICBpZiAoY2hhckNvZGUgPiAzMSAmJiAoY2hhckNvZGUgPCA0OCB8fCBjaGFyQ29kZSA+IDU3KSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUNsaWNrKGRhdGE6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5jbGlja0V2ZW50LmVtaXQoZGF0YSk7XHJcbiAgfVxyXG5nZXRDZWxsQWxpZ25tZW50KHZhbHVlOiBhbnksIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gIC8vIElmIGFsbCBjb2x1bW5zIHNob3VsZCBiZSByaWdodCBhbGlnbmVkIGdsb2JhbGx5XHJcbiAgaWYgKHRoaXMudGFibGVEYXRhLm1ldGFEYXRhLmlzQWxsQWxpZ25lZFRvUmlnaHQpIHtcclxuICAgIHJldHVybiAndGV4dGFsaWduLXJpZ2h0JztcclxuICB9XHJcblxyXG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICByZXR1cm4gJ3RleHRhbGlnbi1sZWZ0JztcclxuICB9XHJcblxyXG4gIGNvbnN0IHN0clZhbHVlID0gU3RyaW5nKHZhbHVlKS50cmltKCk7XHJcblxyXG4gIC8vIERldGVjdCBudW1lcmljLCBkYXRlLCBvciBhbHBoYW51bWVyaWMgZW5kaW5nIHdpdGggbnVtYmVyc1xyXG4gIGNvbnN0IGlzTnVtYmVyID0gIWlzTmFOKE51bWJlcihzdHJWYWx1ZSkpO1xyXG4gIGNvbnN0IGlzRGF0ZSA9ICFpc05hTihEYXRlLnBhcnNlKHN0clZhbHVlKSk7XHJcbiAgY29uc3QgaXNBbHBoYU51bWVyaWNXaXRoVHJhaWxpbmdOdW1iZXIgPSAvXltBLVphLXpdKlxcZCtbQS1aYS16MC05XSokLy50ZXN0KHN0clZhbHVlKTtcclxuXHJcbiAgaWYgKGlzTnVtYmVyIHx8IGlzRGF0ZSB8fCBpc0FscGhhTnVtZXJpY1dpdGhUcmFpbGluZ051bWJlcikge1xyXG4gICAgcmV0dXJuICd0ZXh0YWxpZ24tcmlnaHQnO1xyXG4gIH1cclxuXHJcbiAgLy8gRGVmYXVsdDogbGFzdCBjb2x1bW4gcmlnaHQsIG90aGVycyBsZWZ0XHJcbiAgcmV0dXJuIGluZGV4ID09PSB0aGlzLnRhYmxlSGVhZExpc3QubGVuZ3RoIC0gMVxyXG4gICAgPyAndGV4dGFsaWduLXJpZ2h0IGxhc3QtY29sdW1uLWNvbG9yJ1xyXG4gICAgOiAndGV4dGFsaWduLWxlZnQnO1xyXG59XHJcblxyXG5cclxuICAgIHNob3VsZFNob3dQYWdpbmF0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLnRhYmxlRGF0YT8ubWV0YURhdGE/LmlzUGFnaW5hdGlvbkhpZGRlbjtcclxuICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiB3LTEwMFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XHJcbiAgICA8bGliLWhlYWRlci1hbHQgW3RpdGxlXT1cInRhYmxlRGF0YS5tZXRhRGF0YS50aXRsZVwiICpuZ0lmPVwiIWlzSGVhZGVyVmlzaWJsZVwiPjwvbGliLWhlYWRlci1hbHQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwiIXRhYmxlRGF0YS5tZXRhRGF0YS5pc1NlYXJjaEhpZGRlblwiXHJcbiAgICBjbGFzcz1cImZvcm0tY29udHJvbCBjdXN0b20taW5wdXQgbWVkaXVtLWZvbnQtc2l6ZSB0ZXh0Ym94LWF4LWNvbW1vblwiIGlkPVwiZXhhbXBsZUlucHV0RW1haWwxXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgIHBsYWNlaG9sZGVyPVwiICBTZWFyY2ggIFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJlbWFpbEhlbHBcIiAoa2V5dXApPVwib25FbnRlcigkZXZlbnQpXCIgLz5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwicG9wdXAtYm9keS1mb3Itc2Nyb2xsXCI+XHJcbiAgPGRpdiBjbGFzcz1cInRhYmxlLXdyYXBwZXJcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZSBib3JkZXJcIj5cclxuICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtYm9yZGVyZWQgdGFibGUtaG92ZXIgYWxpZ24tbWlkZGxlIG1iLTBcIj5cclxuICAgICAgICA8dGhlYWQgY2xhc3M9XCJ0YWJsZS1kYXJrXCI+XHJcbiAgICAgICAgICA8dHIgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cclxuICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgdGFibGVIZWFkTGlzdDsgaW5kZXggYXMgaVwiICBbbmdDbGFzc109XCJnZXRDZWxsQWxpZ25tZW50KGksIGhlYWRlcilcIiBbc3R5bGUud2lkdGhdPVwiZ2V0V2lkdGhCeUlkKGhlYWRlciwgaSlcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cInRhYmxlRGF0YS5tZXRhRGF0YS5oZWFkZXJDb2xvclwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cInRhYmxlRGF0YS5tZXRhRGF0YS5oZWFkZXJUZXh0Q29sb3JcIiAoY2xpY2spPVwic29ydEJ5Q29sdW1uKGhlYWRlcilcIj5cclxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICghdGFibGVEYXRhLm1ldGFEYXRhLmlzRmlyc3RDb2x1bW5IZWFkZXJIaWRkZW4gJiYgaSA9PSAwKSB8fCBpID4gMFxyXG4gICAgICAgICAgICBcIiBbbmdDbGFzc109XCJcclxuICAgICAgICAgICAgICAhdGFibGVEYXRhLm1ldGFEYXRhLmlzSGVhZGVyU29ydEhpZGRlblxyXG4gICAgICAgICAgICAgICAgPyAnY3Vyc29yLXBvaW50ZXInXHJcbiAgICAgICAgICAgICAgICA6ICdjdXJzb3ItZGVmYXVsdCdcclxuICAgICAgICAgICAgXCI+e3sgaGVhZGVyIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgKCFpc1VzZXJTb3J0IHx8IGNoZWNrSWZDb2x1bW5DdXJyZW50bHlCZWluZ1NvcnRlZChoZWFkZXIpKSAmJlxyXG4gICAgICAgICAgICAgICF0YWJsZURhdGEubWV0YURhdGEuaXNIZWFkZXJTb3J0SGlkZGVuXHJcbiAgICAgICAgICAgIFwiIGNsYXNzPVwic29ydC1pY29ucyBmYVwiIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgICAgICFpc1VzZXJTb3J0XHJcbiAgICAgICAgICAgICAgICA/ICdmYS1zb3J0J1xyXG4gICAgICAgICAgICAgICAgOiBzb3J0RGlyZWN0aW9uID09ICdhc2MnXHJcbiAgICAgICAgICAgICAgICA/ICdmYS1zb3J0LWFzYydcclxuICAgICAgICAgICAgICAgIDogJ2ZhLXNvcnQtZGVzYydcclxuICAgICAgICAgICAgXCI+PC9pPlxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICA8L3RoZWFkPlxyXG5cclxuICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHN0b3JlIG9mIGN1cnJlbnRMaXN0XCIgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICB0YWJsZURhdGE/LmhpZ2hsaWdodGVkVGV4dHM/LmluY2x1ZGVzKHN0b3JlW3RhYmxlSGVhZExpc3RbMF1dKVxyXG4gICAgICAgICAgICA/ICdmb250LXdlaWdodC1ib2xkJ1xyXG4gICAgICAgICAgICA6ICcnXHJcbiAgICAgICAgXCI+XHJcbiAgICAgICAgICAgIDx0ZCAoY2xpY2spPVwiaGFuZGxlQ2xpY2soc3RvcmUpXCIgY2xhc3M9XCJ0YWJsZS1jZWxsXCIgKm5nRm9yPVwibGV0IGhlYWRlciBvZiB0YWJsZUhlYWRMaXN0OyBpbmRleCBhcyBpXCJcclxuICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiZ2V0V2lkdGhCeUlkKGhlYWRlciwgaSlcIiBcclxuICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZ2V0Q2VsbEFsaWdubWVudChzdG9yZVtoZWFkZXJdLCBpKVwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmN1cnNvcl09XCJcclxuICAgICAgICAgICAgdGFibGVEYXRhLm1ldGFEYXRhLmhhc0RyaWxsRG93biA/ICdwb2ludGVyJyA6ICdkZWZhdWx0J1xyXG4gICAgICAgICAgXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4+e3sgc3RvcmVbaGVhZGVyXSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcblxyXG4gICAgICAgIDwvdGJvZHk+XHJcbiAgICAgIDwvdGFibGU+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLWJhciBtdC0wXCIgKm5nSWY9XCJzaG91bGRTaG93UGFnaW5hdGlvbigpXCI+XHJcbiAgICAgIDxzcGFuPkdvIFRvPC9zcGFuPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIGNsYXNzPVwicGFnZS1pbnB1dFwiIG1pbj1cIjFcIiBbbWF4XT1cInRvdGFsUGFnZXNcIiAoa2V5dXAuZW50ZXIpPVwiZ29Ub1NwZWNpZmljUGFnZSgpXCIgWyhuZ01vZGVsKV09XCJnb1RvUGFnZU51bWJlclwiXHJcbiAgICAgICAgKGtleXByZXNzKT1cInByZXZlbnROZWdhdGl2ZSgkZXZlbnQpXCJcclxuICAgICAgPlxyXG5cclxuICAgICAgPHNwYW4+IHt7IChjdXJyZW50TGlzdC5sZW5ndGggPiAwID8gKChjdXJyZW50UGFnZSAtIDEpICogcGFnZVNpemUgKyAxKSA6IDApIH19IC1cclxuICAgICAgICB7eyAoKGN1cnJlbnRQYWdlIC0gMSkgKiBwYWdlU2l6ZSArIGN1cnJlbnRMaXN0Lmxlbmd0aCkgfX0gb2ZcclxuICAgICAgICB7eyB0b3RhbEl0ZW1zIHwgbnVtYmVyIH19PC9zcGFuPlxyXG5cclxuICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IDFcIiAoY2xpY2spPVwiZ29Ub0ZpcnN0UGFnZSgpXCIgY2xhc3M9XCJwYWdpbmF0aW9uLWJ0blwiIHRpdGxlPVwiRmlyc3QgUGFnZVwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2hldnJvbi1kb3VibGUtbGVmdFwiPjwvaT5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlID09PSAxXCIgKGNsaWNrKT1cImdvVG9QcmV2aW91c1BhZ2UoKVwiIGNsYXNzPVwicGFnaW5hdGlvbi1idG5cIiB0aXRsZT1cIlByZXZpb3VzIFBhZ2VcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWNoZXZyb24tbGVmdFwiPjwvaT5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImN1cnJlbnRQYWdlID09PSB0b3RhbFBhZ2VzXCIgKGNsaWNrKT1cImdvVG9OZXh0UGFnZSgpXCIgY2xhc3M9XCJwYWdpbmF0aW9uLWJ0blwiIHRpdGxlPVwiTmV4dCBQYWdlXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1jaGV2cm9uLXJpZ2h0XCI+PC9pPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IHRvdGFsUGFnZXNcIiAoY2xpY2spPVwiZ29Ub0xhc3RQYWdlKClcIiBjbGFzcz1cInBhZ2luYXRpb24tYnRuXCIgdGl0bGU9XCJMYXN0IFBhZ2VcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWNoZXZyb24tZG91YmxlLXJpZ2h0XCI+PC9pPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
263
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXgtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXhpZGlvLXN0eWxlZ3VpZGUtbGlicmFyeS9zcmMvbGliL2F4LXRhYmxlL2F4LXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F4aWRpby1zdHlsZWd1aWRlLWxpYnJhcnkvc3JjL2xpYi9heC10YWJsZS9heC10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sV0FBVyxNQUFNLGlCQUFpQixDQUFDOzs7OztBQTZCMUMsTUFBTSxPQUFPLGdCQUFnQjtJQTZCM0I7UUExQlUsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFL0Msb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixrQkFBYSxHQUFhLEVBQUUsQ0FBQztRQUM3QixhQUFRLEdBQVUsRUFBRSxDQUFDO1FBQ3JCLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFDdkIsZ0JBQVcsR0FBVSxFQUFFLENBQUM7UUFFZixzQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDdkIsc0JBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBRS9CLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDbEMsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNuQixnQkFBVyxHQUFhLEVBQUUsQ0FBQztRQUUzQixrQkFBYSxHQUFrQixLQUFLLENBQUM7UUFDckMsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUVoQix1QkFB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QU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV0Qyw0REFBNEQ7UUFDNUQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sZ0NBQWdDLEdBQUcsNEJBQTRCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXJGLElBQUksUUFBUSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3ZCLE9BQU8saUJBQWlCLENBQUM7UUFDM0IsQ0FBQztRQUVELDBDQUEwQztRQUMxQyxPQUFPLEtBQUssS0FBSyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQzVDLENBQUMsQ0FBQyxtQ0FBbUM7WUFDckMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDO0lBQ3ZCLENBQUM7SUFFRyxvQkFBb0I7UUFDcEIsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixDQUFDO0lBQ3ZELENBQUM7K0dBdFRVLGdCQUFnQjttR0FBaEIsZ0JBQWdCLHFMQzlCN0IsZy9IQW9GTTs7NEZEdERPLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxjQUFjO3dEQUtmLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBDaGFydEhlbHBlciBmcm9tICcuLi9jaGFydC1oZWxwZXInO1xyXG5cclxuaW50ZXJmYWNlIFRhYmxlTWV0YURhdGEge1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGlzUGFnaW5hdGlvbkhpZGRlbj86IGJvb2xlYW47XHJcbiAgaXNIZWFkZXJWaXNpYmxlPzogYm9vbGVhbjtcclxuICBpc1NlYXJjaEhpZGRlbj86IGJvb2xlYW47XHJcbiAgaXNIZWFkZXJBbGlnbmVkVG9DZW50ZXI/OiBib29sZWFuO1xyXG4gIGlzSGVhZGVyU29ydEhpZGRlbj86IGJvb2xlYW47XHJcbiAgaXNGaXJzdENvbHVtbkhlYWRlckhpZGRlbj86IGJvb2xlYW47XHJcbiAgaXNBbGxBbGlnbmVkVG9SaWdodD86IGJvb2xlYW47XHJcbiAgaGFzRHJpbGxEb3duPzogYm9vbGVhbjtcclxuICBoZWFkZXJDb2xvcj86IHN0cmluZztcclxuICBoZWFkZXJUZXh0Q29sb3I/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBUYWJsZURhdGEge1xyXG4gIGRhdGE6IGFueVtdO1xyXG4gIG1ldGFEYXRhOiBUYWJsZU1ldGFEYXRhO1xyXG4gIGhpZ2hsaWdodGVkVGV4dHM/OiBzdHJpbmdbXTtcclxufVxyXG5cclxudHlwZSBTb3J0RGlyZWN0aW9uID0gJ2FzYycgfCAnZGVzYyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1heC10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F4LXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9heC10YWJsZS5jb21wb25lbnQubGVzcycsICcuLi9jb21tb24tc3R5bGVzLmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF4VGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHRhYmxlRGF0YSE6IFRhYmxlRGF0YTtcclxuICBASW5wdXQoKSBjdXN0b21DaGFydENvbmZpZ3VyYXRpb246IGFueTtcclxuICBAT3V0cHV0KCkgY2xpY2tFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBpc0hlYWRlclZpc2libGUgPSB0cnVlO1xyXG4gIGlzVXNlclNvcnQgPSBmYWxzZTtcclxuXHJcbiAgdGFibGVIZWFkTGlzdDogc3RyaW5nW10gPSBbXTtcclxuICBpdGVtTGlzdDogYW55W10gPSBbXTtcclxuICBtYXN0ZXJMaXN0OiBhbnlbXSA9IFtdO1xyXG4gIGN1cnJlbnRMaXN0OiBhbnlbXSA9IFtdO1xyXG5cclxuICByZWFkb25seSBERUZBVUxUX1BBR0VfU0laRSA9IDEwO1xyXG4gIHJlYWRvbmx5IE1BWF9QQUdFU19UT19TSE9XID0gNTtcclxuICBcclxuICBjdXJyZW50UGFnZSA9IDE7XHJcbiAgcGFnZVNpemUgPSB0aGlzLkRFRkFVTFRfUEFHRV9TSVpFO1xyXG4gIHRvdGFsSXRlbXMgPSAwO1xyXG4gIHRvdGFsUGFnZXMgPSAxO1xyXG4gIGdvVG9QYWdlTnVtYmVyID0gMTtcclxuICBwYWdlc1RvU2hvdzogbnVtYmVyW10gPSBbXTtcclxuXHJcbiAgc29ydERpcmVjdGlvbjogU29ydERpcmVjdGlvbiA9ICdhc2MnO1xyXG4gIHNvcnRDb2x1bW4gPSAnJztcclxuXHJcbiAgY2hhcnRDb25maWd1cmF0aW9uOiBhbnkgPSB7fTtcclxuICBkZWZhdWx0Q29uZmlndXJhdGlvbjogYW55ID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRpYWxpemVDb21wb25lbnQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUNvbXBvbmVudCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZXh0cmFjdFRhYmxlSGVhZGVycygpO1xyXG4gICAgdGhpcy5tZXJnZUNvbmZpZ3VyYXRpb25zKCk7XHJcbiAgICB0aGlzLmluaXRpYWxpemVEYXRhKCk7XHJcbiAgICB0aGlzLnVwZGF0ZUhlYWRlclZpc2liaWxpdHkoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZXh0cmFjdFRhYmxlSGVhZGVycygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnRhYmxlRGF0YT8uZGF0YT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnRhYmxlSGVhZExpc3QgPSBPYmplY3Qua2V5cyh0aGlzLnRhYmxlRGF0YS5kYXRhWzBdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbWVyZ2VDb25maWd1cmF0aW9ucygpOiB2b2lkIHtcclxuICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuZGVmYXVsdENvbmZpZ3VyYXRpb24pIHtcclxuICAgICAgdGhpcy5jaGFydENvbmZpZ3VyYXRpb25ba2V5XSA9IENoYXJ0SGVscGVyLmdldFZhbHVlQnlDb25maWd1cmF0aW9uVHlwZShcclxuICAgICAgICBrZXksXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0Q29uZmlndXJhdGlvbixcclxuICAgICAgICB0aGlzLmN1c3RvbUNoYXJ0Q29uZmlndXJhdGlvblxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplRGF0YSgpOiB2b2lkIHtcclxuICAgIHRoaXMubWFzdGVyTGlzdCA9IFsuLi50aGlzLnRhYmxlRGF0YS5kYXRhXTtcclxuICAgIHRoaXMuaXRlbUxpc3QgPSBbLi4udGhpcy5tYXN0ZXJMaXN0XTtcclxuICAgIHRoaXMudG90YWxJdGVtcyA9IHRoaXMuaXRlbUxpc3QubGVuZ3RoO1xyXG4gICAgdGhpcy5jYWxjdWxhdGVUb3RhbFBhZ2VzKCk7XHJcbiAgICB0aGlzLmdlbmVyYXRlUGFnZXNUb1Nob3coKTtcclxuXHJcbiAgICBpZiAodGhpcy50YWJsZURhdGEubWV0YURhdGEuaXNQYWdpbmF0aW9uSGlkZGVuKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudExpc3QgPSB0aGlzLml0ZW1MaXN0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5sb2FkUGFnZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVIZWFkZXJWaXNpYmlsaXR5KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudGFibGVEYXRhLm1ldGFEYXRhLmlzSGVhZGVyVmlzaWJsZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuaXNIZWFkZXJWaXNpYmxlID0gdGhpcy50YWJsZURhdGEubWV0YURhdGEuaXNIZWFkZXJWaXNpYmxlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkUGFnZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSAodGhpcy5jdXJyZW50UGFnZSAtIDEpICogdGhpcy5wYWdlU2l6ZTtcclxuICAgIGNvbnN0IGVuZEluZGV4ID0gc3RhcnRJbmRleCArIHRoaXMucGFnZVNpemU7XHJcbiAgICB0aGlzLmN1cnJlbnRMaXN0ID0gdGhpcy5pdGVtTGlzdC5zbGljZShzdGFydEluZGV4LCBlbmRJbmRleCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNhbGN1bGF0ZVRvdGFsUGFnZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRvdGFsUGFnZXMgPSBNYXRoLmNlaWwodGhpcy50b3RhbEl0ZW1zIC8gdGhpcy5wYWdlU2l6ZSk7XHJcbiAgICB0aGlzLmdvVG9QYWdlTnVtYmVyID0gdGhpcy5jdXJyZW50UGFnZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2VuZXJhdGVQYWdlc1RvU2hvdygpOiB2b2lkIHtcclxuICAgIHRoaXMucGFnZXNUb1Nob3cgPSBbXTtcclxuICAgIFxyXG4gICAgbGV0IHN0YXJ0UGFnZSA9IE1hdGgubWF4KFxyXG4gICAgICAxLFxyXG4gICAgICB0aGlzLmN1cnJlbnRQYWdlIC0gTWF0aC5mbG9vcih0aGlzLk1BWF9QQUdFU19UT19TSE9XIC8gMilcclxuICAgICk7XHJcbiAgICBsZXQgZW5kUGFnZSA9IE1hdGgubWluKFxyXG4gICAgICB0aGlzLnRvdGFsUGFnZXMsXHJcbiAgICAgIHN0YXJ0UGFnZSArIHRoaXMuTUFYX1BBR0VTX1RPX1NIT1cgLSAxXHJcbiAgICApO1xyXG5cclxuICAgIGlmIChlbmRQYWdlIC0gc3RhcnRQYWdlICsgMSA8IHRoaXMuTUFYX1BBR0VTX1RPX1NIT1cpIHtcclxuICAgICAgc3RhcnRQYWdlID0gTWF0aC5tYXgoMSwgZW5kUGFnZSAtIHRoaXMuTUFYX1BBR0VTX1RPX1NIT1cgKyAxKTtcclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGxldCBpID0gc3RhcnRQYWdlOyBpIDw9IGVuZFBhZ2U7IGkrKykge1xyXG4gICAgICB0aGlzLnBhZ2VzVG9TaG93LnB1c2goaSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uUGFnaW5hdGlvbkNoYW5nZSgpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZFBhZ2UoKTtcclxuICAgIHRoaXMuZ29Ub1BhZ2VOdW1iZXIgPSB0aGlzLmN1cnJlbnRQYWdlO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVBhZ2VzVG9TaG93KCk7XHJcbiAgfVxyXG5cclxuICBnb1RvRmlyc3RQYWdlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgIT09IDEpIHtcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XHJcbiAgICAgIHRoaXMub25QYWdpbmF0aW9uQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnb1RvUHJldmlvdXNQYWdlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFBhZ2UgPiAxKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UtLTtcclxuICAgICAgdGhpcy5vblBhZ2luYXRpb25DaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdvVG9OZXh0UGFnZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlIDwgdGhpcy50b3RhbFBhZ2VzKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UrKztcclxuICAgICAgdGhpcy5vblBhZ2luYXRpb25DaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdvVG9MYXN0UGFnZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlICE9PSB0aGlzLnRvdGFsUGFnZXMpIHtcclxuICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHRoaXMudG90YWxQYWdlcztcclxuICAgICAgdGhpcy5vblBhZ2luYXRpb25DaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdvVG9QYWdlKHBhZ2U6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKHBhZ2UgPj0gMSAmJiBwYWdlIDw9IHRoaXMudG90YWxQYWdlcyAmJiBwYWdlICE9PSB0aGlzLmN1cnJlbnRQYWdlKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UgPSBwYWdlO1xyXG4gICAgICB0aGlzLm9uUGFnaW5hdGlvbkNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ29Ub1NwZWNpZmljUGFnZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmdvVG9QYWdlTnVtYmVyID09IG51bGwpIHtcclxuICAgICAgdGhpcy5nb1RvUGFnZU51bWJlciA9IHRoaXMuY3VycmVudFBhZ2U7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwYWdlTnVtID0gcGFyc2VJbnQodGhpcy5nb1RvUGFnZU51bWJlci50b1N0cmluZygpLCAxMCk7XHJcblxyXG4gICAgaWYgKGlzTmFOKHBhZ2VOdW0pIHx8IHBhZ2VOdW0gPCAxKSB7XHJcbiAgICAgIHRoaXMuZ29Ub1BhZ2VOdW1iZXIgPSAxO1xyXG4gICAgfSBlbHNlIGlmIChwYWdlTnVtID4gdGhpcy50b3RhbFBhZ2VzKSB7XHJcbiAgICAgIHRoaXMuZ29Ub1BhZ2VOdW1iZXIgPSB0aGlzLnRvdGFsUGFnZXM7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IHRoaXMuZ29Ub1BhZ2VOdW1iZXI7XHJcbiAgICB0aGlzLm9uUGFnaW5hdGlvbkNoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgc29ydEJ5Q29sdW1uKGNvbHVtbklkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmIChjb2x1bW5JZCA9PT0gJ3ZpZXdEZXRhaWxzJyB8fCB0aGlzLnRhYmxlRGF0YS5tZXRhRGF0YS5pc0hlYWRlclNvcnRIaWRkZW4pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXNVc2VyU29ydCA9IHRydWU7XHJcblxyXG4gICAgaWYgKGNvbHVtbklkICE9PSB0aGlzLnNvcnRDb2x1bW4pIHtcclxuICAgICAgdGhpcy5zb3J0Q29sdW1uID0gY29sdW1uSWQ7XHJcbiAgICAgIHRoaXMuc29ydERpcmVjdGlvbiA9ICdhc2MnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zb3J0RGlyZWN0aW9uID0gdGhpcy5zb3J0RGlyZWN0aW9uID09PSAnYXNjJyA/ICdkZXNjJyA6ICdhc2MnO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucGVyZm9ybVNvcnQoY29sdW1uSWQpO1xyXG4gICAgdGhpcy5yZXNldFBhZ2luYXRpb25BZnRlclNvcnQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGVyZm9ybVNvcnQoY29sdW1uSWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5pdGVtTGlzdC5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbXBhcmlzb24gPSB0aGlzLmNvbXBhcmVWYWx1ZXMoYVtjb2x1bW5JZF0sIGJbY29sdW1uSWRdKTtcclxuICAgICAgcmV0dXJuIHRoaXMuc29ydERpcmVjdGlvbiA9PT0gJ2FzYycgPyBjb21wYXJpc29uIDogLWNvbXBhcmlzb247XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29tcGFyZVZhbHVlcyh2MTogYW55LCB2MjogYW55KTogbnVtYmVyIHtcclxuICAgIGNvbnN0IG51bTEgPSBwYXJzZUZsb2F0KHYxKTtcclxuICAgIGNvbnN0IG51bTIgPSBwYXJzZUZsb2F0KHYyKTtcclxuXHJcbiAgICBpZiAoIWlzTmFOKG51bTEpICYmICFpc05hTihudW0yKSkge1xyXG4gICAgICByZXR1cm4gbnVtMSAtIG51bTI7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHYxIDwgdjIgPyAtMSA6IHYxID4gdjIgPyAxIDogMDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzZXRQYWdpbmF0aW9uQWZ0ZXJTb3J0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XHJcbiAgICB0aGlzLnRvdGFsSXRlbXMgPSB0aGlzLml0ZW1MaXN0Lmxlbmd0aDtcclxuICAgIHRoaXMuY2FsY3VsYXRlVG90YWxQYWdlcygpO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVBhZ2VzVG9TaG93KCk7XHJcbiAgICB0aGlzLmxvYWRQYWdlKCk7XHJcbiAgfVxyXG5cclxuICBjaGVja0lmQ29sdW1uQ3VycmVudGx5QmVpbmdTb3J0ZWQoY29sdW1uSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc29ydENvbHVtbiA9PT0gY29sdW1uSWQ7XHJcbiAgfVxyXG5cclxuICBnZXRTb3J0RGlyZWN0aW9uKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5zb3J0RGlyZWN0aW9uID09PSAnYXNjJyA/ICdhcnJvdy11cCcgOiAnYXJyb3ctZG93bic7XHJcbiAgfVxyXG5cclxuICBvbkVudGVyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2VhcmNoVGV4dCA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XHJcbiAgICBcclxuICAgIHRoaXMuaXRlbUxpc3QgPSB0aGlzLmZpbHRlckl0ZW1zKHNlYXJjaFRleHQpO1xyXG4gICAgdGhpcy5yZXNldFBhZ2luYXRpb25BZnRlclNlYXJjaCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWx0ZXJJdGVtcyhzZWFyY2hUZXh0OiBzdHJpbmcpOiBhbnlbXSB7XHJcbiAgICBpZiAoIXNlYXJjaFRleHQpIHtcclxuICAgICAgcmV0dXJuIFsuLi50aGlzLm1hc3Rlckxpc3RdO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGxvd2VyU2VhcmNoVGV4dCA9IHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5tYXN0ZXJMaXN0LmZpbHRlcihpdGVtID0+IFxyXG4gICAgICB0aGlzLnRhYmxlSGVhZExpc3Quc29tZShoZWFkZXIgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gaXRlbVtoZWFkZXJdO1xyXG4gICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgXHJcbiAgICAgICAgY29uc3Qgc2VhcmNoYWJsZVN0cmluZyA9IFN0cmluZyh2YWx1ZSkudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICByZXR1cm4gc2VhcmNoYWJsZVN0cmluZy5pbmNsdWRlcyhsb3dlclNlYXJjaFRleHQpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzZXRQYWdpbmF0aW9uQWZ0ZXJTZWFyY2goKTogdm9pZCB7XHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcclxuICAgIHRoaXMudG90YWxJdGVtcyA9IHRoaXMuaXRlbUxpc3QubGVuZ3RoO1xyXG4gICAgdGhpcy5jYWxjdWxhdGVUb3RhbFBhZ2VzKCk7XHJcbiAgICB0aGlzLmdlbmVyYXRlUGFnZXNUb1Nob3coKTtcclxuICAgIHRoaXMubG9hZFBhZ2UoKTtcclxuICB9XHJcblxyXG4gIGdldFdpZHRoQnlJZChjb2x1bW5JZDogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLnRhYmxlSGVhZExpc3QubGVuZ3RoID09PSAzKSB7XHJcbiAgICAgIHJldHVybiBpbmRleCA9PT0gMSA/ICc2MCUnIDogJzIwJSc7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNvbnN0IHdpZHRoID0gMTAwIC8gdGhpcy50YWJsZUhlYWRMaXN0Lmxlbmd0aDtcclxuICAgIHJldHVybiBgJHt3aWR0aH0lYDtcclxuICB9XHJcblxyXG4gIHByZXZlbnROZWdhdGl2ZShldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgaW52YWxpZEtleXMgPSBbJy0nLCAnKycsICdlJywgJ0UnXTtcclxuICAgIGlmIChpbnZhbGlkS2V5cy5pbmNsdWRlcyhldmVudC5rZXkpKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZU51bWJlcklucHV0KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjaGFyQ29kZSA9IGV2ZW50LndoaWNoIHx8IGV2ZW50LmtleUNvZGU7XHJcbiAgICBpZiAoY2hhckNvZGUgPiAzMSAmJiAoY2hhckNvZGUgPCA0OCB8fCBjaGFyQ29kZSA+IDU3KSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUNsaWNrKGRhdGE6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5jbGlja0V2ZW50LmVtaXQoZGF0YSk7XHJcbiAgfVxyXG5nZXRDZWxsQWxpZ25tZW50KHZhbHVlOiBhbnksIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gIC8vIElmIGFsbCBjb2x1bW5zIHNob3VsZCBiZSByaWdodCBhbGlnbmVkIGdsb2JhbGx5XHJcbiAgaWYgKHRoaXMudGFibGVEYXRhLm1ldGFEYXRhLmlzQWxsQWxpZ25lZFRvUmlnaHQpIHtcclxuICAgIHJldHVybiAndGV4dGFsaWduLXJpZ2h0JztcclxuICB9XHJcblxyXG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICByZXR1cm4gJ3RleHRhbGlnbi1sZWZ0JztcclxuICB9XHJcblxyXG4gIGNvbnN0IHN0clZhbHVlID0gU3RyaW5nKHZhbHVlKS50cmltKCk7XHJcblxyXG4gIC8vIERldGVjdCBudW1lcmljLCBkYXRlLCBvciBhbHBoYW51bWVyaWMgZW5kaW5nIHdpdGggbnVtYmVyc1xyXG4gIGNvbnN0IGlzTnVtYmVyID0gIWlzTmFOKE51bWJlcihzdHJWYWx1ZSkpO1xyXG4gIGNvbnN0IGlzRGF0ZSA9ICFpc05hTihEYXRlLnBhcnNlKHN0clZhbHVlKSk7XHJcbiAgY29uc3QgaXNBbHBoYU51bWVyaWNXaXRoVHJhaWxpbmdOdW1iZXIgPSAvXltBLVphLXpdKlxcZCtbQS1aYS16MC05XSokLy50ZXN0KHN0clZhbHVlKTtcclxuXHJcbiAgaWYgKGlzTnVtYmVyIHx8IGlzRGF0ZSkge1xyXG4gICAgcmV0dXJuICd0ZXh0YWxpZ24tcmlnaHQnO1xyXG4gIH1cclxuXHJcbiAgLy8gRGVmYXVsdDogbGFzdCBjb2x1bW4gcmlnaHQsIG90aGVycyBsZWZ0XHJcbiAgcmV0dXJuIGluZGV4ID09PSB0aGlzLnRhYmxlSGVhZExpc3QubGVuZ3RoIC0gMVxyXG4gICAgPyAndGV4dGFsaWduLXJpZ2h0IGxhc3QtY29sdW1uLWNvbG9yJ1xyXG4gICAgOiAndGV4dGFsaWduLWxlZnQnO1xyXG59XHJcblxyXG4gICAgc2hvdWxkU2hvd1BhZ2luYXRpb24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMudGFibGVEYXRhPy5tZXRhRGF0YT8uaXNQYWdpbmF0aW9uSGlkZGVuO1xyXG4gIH1cclxufSIsIjxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHctMTAwXCI+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgIDxsaWItaGVhZGVyLWFsdCBbdGl0bGVdPVwidGFibGVEYXRhLm1ldGFEYXRhLnRpdGxlXCIgKm5nSWY9XCIhaXNIZWFkZXJWaXNpYmxlXCI+PC9saWItaGVhZGVyLWFsdD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCIhdGFibGVEYXRhLm1ldGFEYXRhLmlzU2VhcmNoSGlkZGVuXCJcclxuICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGN1c3RvbS1pbnB1dCBtZWRpdW0tZm9udC1zaXplIHRleHRib3gtYXgtY29tbW9uXCIgaWQ9XCJleGFtcGxlSW5wdXRFbWFpbDFcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgcGxhY2Vob2xkZXI9XCIgIFNlYXJjaCAgXCIgYXJpYS1kZXNjcmliZWRieT1cImVtYWlsSGVscFwiIChrZXl1cCk9XCJvbkVudGVyKCRldmVudClcIiAvPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJwb3B1cC1ib2R5LWZvci1zY3JvbGxcIj5cclxuICA8ZGl2IGNsYXNzPVwidGFibGUtd3JhcHBlclwiPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlIGJvcmRlclwiPlxyXG4gICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1ib3JkZXJlZCB0YWJsZS1ob3ZlciBhbGlnbi1taWRkbGUgbWItMFwiPlxyXG4gICAgICAgIDx0aGVhZCBjbGFzcz1cInRhYmxlLWRhcmtcIj5cclxuICAgICAgICAgIDx0ciBjbGFzcz1cInRhYmxlLWhlYWRlclwiPlxyXG4gICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IGhlYWRlciBvZiB0YWJsZUhlYWRMaXN0OyBpbmRleCBhcyBpXCIgIFtuZ0NsYXNzXT1cImdldENlbGxBbGlnbm1lbnQoaSwgaGVhZGVyKVwiIFtzdHlsZS53aWR0aF09XCJnZXRXaWR0aEJ5SWQoaGVhZGVyLCBpKVwiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwidGFibGVEYXRhLm1ldGFEYXRhLmhlYWRlckNvbG9yXCJcclxuICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwidGFibGVEYXRhLm1ldGFEYXRhLmhlYWRlclRleHRDb2xvclwiIChjbGljayk9XCJzb3J0QnlDb2x1bW4oaGVhZGVyKVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgKCF0YWJsZURhdGEubWV0YURhdGEuaXNGaXJzdENvbHVtbkhlYWRlckhpZGRlbiAmJiBpID09IDApIHx8IGkgPiAwXHJcbiAgICAgICAgICAgIFwiIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICAgICAgICF0YWJsZURhdGEubWV0YURhdGEuaXNIZWFkZXJTb3J0SGlkZGVuXHJcbiAgICAgICAgICAgICAgICA/ICdjdXJzb3ItcG9pbnRlcidcclxuICAgICAgICAgICAgICAgIDogJ2N1cnNvci1kZWZhdWx0J1xyXG4gICAgICAgICAgICBcIj57eyBoZWFkZXIgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGkgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAoIWlzVXNlclNvcnQgfHwgY2hlY2tJZkNvbHVtbkN1cnJlbnRseUJlaW5nU29ydGVkKGhlYWRlcikpICYmXHJcbiAgICAgICAgICAgICAgIXRhYmxlRGF0YS5tZXRhRGF0YS5pc0hlYWRlclNvcnRIaWRkZW5cclxuICAgICAgICAgICAgXCIgY2xhc3M9XCJzb3J0LWljb25zIGZhXCIgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICAgICAgIWlzVXNlclNvcnRcclxuICAgICAgICAgICAgICAgID8gJ2ZhLXNvcnQnXHJcbiAgICAgICAgICAgICAgICA6IHNvcnREaXJlY3Rpb24gPT0gJ2FzYydcclxuICAgICAgICAgICAgICAgID8gJ2ZhLXNvcnQtYXNjJ1xyXG4gICAgICAgICAgICAgICAgOiAnZmEtc29ydC1kZXNjJ1xyXG4gICAgICAgICAgICBcIj48L2k+XHJcbiAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvdGhlYWQ+XHJcblxyXG4gICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgc3RvcmUgb2YgY3VycmVudExpc3RcIiBbbmdDbGFzc109XCJcclxuICAgICAgICAgIHRhYmxlRGF0YT8uaGlnaGxpZ2h0ZWRUZXh0cz8uaW5jbHVkZXMoc3RvcmVbdGFibGVIZWFkTGlzdFswXV0pXHJcbiAgICAgICAgICAgID8gJ2ZvbnQtd2VpZ2h0LWJvbGQnXHJcbiAgICAgICAgICAgIDogJydcclxuICAgICAgICBcIj5cclxuICAgICAgICAgICAgPHRkIChjbGljayk9XCJoYW5kbGVDbGljayhzdG9yZSlcIiBjbGFzcz1cInRhYmxlLWNlbGxcIiAqbmdGb3I9XCJsZXQgaGVhZGVyIG9mIHRhYmxlSGVhZExpc3Q7IGluZGV4IGFzIGlcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJnZXRXaWR0aEJ5SWQoaGVhZGVyLCBpKVwiIFxyXG4gICAgICAgICAgICAgICBbbmdDbGFzc109XCJnZXRDZWxsQWxpZ25tZW50KHN0b3JlW2hlYWRlcl0sIGkpXCJcclxuICAgICAgICAgICAgICBbc3R5bGUuY3Vyc29yXT1cIlxyXG4gICAgICAgICAgICB0YWJsZURhdGEubWV0YURhdGEuaGFzRHJpbGxEb3duID8gJ3BvaW50ZXInIDogJ2RlZmF1bHQnXHJcbiAgICAgICAgICBcIj5cclxuICAgICAgICAgICAgICA8c3Bhbj57eyBzdG9yZVtoZWFkZXJdIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuXHJcbiAgICAgICAgPC90Ym9keT5cclxuICAgICAgPC90YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInBhZ2luYXRpb24tYmFyIG10LTBcIiAqbmdJZj1cInNob3VsZFNob3dQYWdpbmF0aW9uKClcIj5cclxuICAgICAgPHNwYW4+R28gVG88L3NwYW4+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgY2xhc3M9XCJwYWdlLWlucHV0XCIgbWluPVwiMVwiIFttYXhdPVwidG90YWxQYWdlc1wiIChrZXl1cC5lbnRlcik9XCJnb1RvU3BlY2lmaWNQYWdlKClcIiBbKG5nTW9kZWwpXT1cImdvVG9QYWdlTnVtYmVyXCJcclxuICAgICAgICAoa2V5cHJlc3MpPVwicHJldmVudE5lZ2F0aXZlKCRldmVudClcIlxyXG4gICAgICA+XHJcblxyXG4gICAgICA8c3Bhbj4ge3sgKGN1cnJlbnRMaXN0Lmxlbmd0aCA+IDAgPyAoKGN1cnJlbnRQYWdlIC0gMSkgKiBwYWdlU2l6ZSArIDEpIDogMCkgfX0gLVxyXG4gICAgICAgIHt7ICgoY3VycmVudFBhZ2UgLSAxKSAqIHBhZ2VTaXplICsgY3VycmVudExpc3QubGVuZ3RoKSB9fSBvZlxyXG4gICAgICAgIHt7IHRvdGFsSXRlbXMgfCBudW1iZXIgfX08L3NwYW4+XHJcblxyXG4gICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gMVwiIChjbGljayk9XCJnb1RvRmlyc3RQYWdlKClcIiBjbGFzcz1cInBhZ2luYXRpb24tYnRuXCIgdGl0bGU9XCJGaXJzdCBQYWdlXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1jaGV2cm9uLWRvdWJsZS1sZWZ0XCI+PC9pPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IDFcIiAoY2xpY2spPVwiZ29Ub1ByZXZpb3VzUGFnZSgpXCIgY2xhc3M9XCJwYWdpbmF0aW9uLWJ0blwiIHRpdGxlPVwiUHJldmlvdXMgUGFnZVwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2hldnJvbi1sZWZ0XCI+PC9pPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiY3VycmVudFBhZ2UgPT09IHRvdGFsUGFnZXNcIiAoY2xpY2spPVwiZ29Ub05leHRQYWdlKClcIiBjbGFzcz1cInBhZ2luYXRpb24tYnRuXCIgdGl0bGU9XCJOZXh0IFBhZ2VcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWNoZXZyb24tcmlnaHRcIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJjdXJyZW50UGFnZSA9PT0gdG90YWxQYWdlc1wiIChjbGljayk9XCJnb1RvTGFzdFBhZ2UoKVwiIGNsYXNzPVwicGFnaW5hdGlvbi1idG5cIiB0aXRsZT1cIkxhc3QgUGFnZVwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2hldnJvbi1kb3VibGUtcmlnaHRcIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -4559,7 +4559,7 @@ class AxTableComponent {
4559
4559
  const isNumber = !isNaN(Number(strValue));
4560
4560
  const isDate = !isNaN(Date.parse(strValue));
4561
4561
  const isAlphaNumericWithTrailingNumber = /^[A-Za-z]*\d+[A-Za-z0-9]*$/.test(strValue);
4562
- if (isNumber || isDate || isAlphaNumericWithTrailingNumber) {
4562
+ if (isNumber || isDate) {
4563
4563
  return 'textalign-right';
4564
4564
  }
4565
4565
  // Default: last column right, others left