@fundamental-ngx/platform 0.46.0-rc.67 → 0.46.0-rc.68

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,14 +236,23 @@ export class TableColumnResizeService {
236
236
  }
237
237
  }
238
238
  }
239
- if (diffX > 0 && this._tableRef._freezableColumns.has(this._resizedColumn)) {
240
- const freezeToNextColumnName = this._visibleColumnNames[this._tableRef._freezableColumns.size];
241
- const actualWidth = this.getPrevColumnsWidth(freezeToNextColumnName);
239
+ /**
240
+ * In case "_resizedColumn" is freezable, make sure the overall width of freezable columns does not exceed the width of the table.
241
+ * If it does, columns will be made unfrozen.
242
+ */
243
+ if (diffX > 0 &&
244
+ (this._tableRef._freezableColumns.has(this._resizedColumn) ||
245
+ this._tableRef._freezableEndColumns?.has(this._resizedColumn))) {
246
+ let actualWidth = this.getPrevColumnsWidth(this._resizedColumn) + columnWidth;
247
+ if (this._tableRef._freezableEndColumns?.has(this._resizedColumn)) {
248
+ actualWidth = this.getNextColumnsWidth(this._resizedColumn) + columnWidth;
249
+ }
242
250
  const newWidth = actualWidth + diffX;
243
251
  const maxWidth = this._tableRef.getMaxAllowedFreezableColumnsWidth();
244
- // in case "_resizedColumn" is freezable, make sure the overall width of freezable columns does not exceed the width of the table
245
252
  if (newWidth >= maxWidth) {
246
- diffX = maxWidth - actualWidth;
253
+ this._tableRef._freezableColumns.forEach((column) => {
254
+ this._tableRef.unfreeze(column.toString());
255
+ });
247
256
  }
248
257
  }
249
258
  const updatedWidth = columnWidth + diffX;
@@ -291,4 +300,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
291
300
  }], ctorParameters: function () { return [{ type: i1.TableScrollDispatcherService }, { type: i2.RtlService, decorators: [{
292
301
  type: Optional
293
302
  }] }]; } });
294
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLXJlc2l6ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlLWhlbHBlcnMvc2VydmljZXMvdGFibGUtY29sdW1uLXJlc2l6ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQWEsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3RELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7O0FBRWpGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQUMsQ0FBQztBQUU1Qzs7Ozs7R0FLRztBQUVILE1BQU0sT0FBTyx3QkFBd0I7SUFvRGpDLGdEQUFnRDtJQUNoRCxJQUFJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNsQyxDQUFDO0lBUUQsdUNBQXVDO0lBQ3ZDLElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBS0QscUNBQXFDO0lBQ3JDLElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsNkRBQTZEO0lBQzdELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksS0FBSyxJ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ZWN0YWJsZSwgT25EZXN0cm95LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFJ0bFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBUQUJMRV9DT0xVTU5fTUlOX1dJRFRIIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuaW1wb3J0IHsgVGFibGUgfSBmcm9tICcuLi90YWJsZSc7XG5pbXBvcnQgeyBUYWJsZVNjcm9sbERpc3BhdGNoZXJTZXJ2aWNlIH0gZnJvbSAnLi90YWJsZS1zY3JvbGwtZGlzcGF0Y2hlci5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IFRBQkxFX1JFU0laRVJfQk9SREVSX1dJRFRIID0gMztcblxuLyoqXG4gKiBTZXJ2aWNlIHRvIGhhbmRsZSBhbGwgdGhpbmdzIHJlbGF0ZWQgdG8gY29sdW1uIHJlc2l6aW5nOlxuICogLSBTZXR0aW5nIHJlc2l6ZXJcbiAqIC0gUHJvY2Vzc2luZyByZXNpemVcbiAqIC0gQ2FsY3VsYXRpbmcgdGhlIHJlYWwgY29sdW1ucyB3aWR0aFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5SZXNpemVTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ZpeGVkQ29sdW1uc1dpZHRoTWFwID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY29sdW1uc0NlbGxNYXAgPSBuZXcgTWFwPHN0cmluZywgRWxlbWVudFJlZjxIVE1MVGFibGVEYXRhQ2VsbEVsZW1lbnQ+W10+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Zpc2libGVDb2x1bW5OYW1lczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdmlzaWJsZUNvbHVtbkxlZnROZWlnaGJvdXJNYXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF92aXNpYmxlQ29sdW1uUmlnaHROZWlnaGJvdXJNYXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF92aXNpYmxlQ29sdW1uTGVmdE9mZnNldFB4TWFwID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdmlzaWJsZUNvbHVtblJpZ2h0T2Zmc2V0UHhNYXAgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdGFydFg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jbGllbnRTdGFydFg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yZXNpemVJblByb2dyZXNzID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Jlc2l6ZWRDb2x1bW46IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVzaXplclBvc2l0aW9uOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2Nyb2xsTGVmdCA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX21hcmtGb3JDaGVjayA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2Rlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Jlc2l6ZXJNb3ZlU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90YWJsZVJlZjogVGFibGU7XG5cbiAgICAvKiogSW5kaWNhdGUgaWYgcmVzaXppbmcgcHJvY2VzcyBpbiBwcm9ncmVzcy4gKi9cbiAgICBnZXQgcmVzaXplSW5Qcm9ncmVzcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc2l6ZUluUHJvZ3Jlc3M7XG4gICAgfVxuXG4gICAgLyoqIFJlc2l6ZSBwcm9ncmVzcyBzdHJlYW0uICovXG4gICAgcmVhZG9ubHkgcmVzaXplSW5Qcm9ncmVzcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRoaXMuX3Jlc2l6ZUluUHJvZ3Jlc3MpO1xuXG4gICAgLyoqIFdoZXRoZXIgY2VsbCBtb2NrIHNob3VsZCBiZSB2aXNpYmxlLiAqL1xuICAgIHJlYWRvbmx5IGNlbGxNb2NrVmlzaWJsZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIC8qKiBDdXJyZW50IGNvbHVtbiByZXNpemVyIHBvc2l0aW9uLiAqL1xuICAgIGdldCByZXNpemVyUG9zaXRpb24oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc2l6ZXJQb3NpdGlvbiA/PyAwO1xuICAgIH1cblxuICAgIC8qKiBSZXNpemVyIHBvc2l0aW9uIHN0cmVhbS4gKi9cbiAgICByZWFkb25seSByZXNpemVyUG9zaXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuXG4gICAgLyoqIE9ic2VydmFibGUgdG8gbm90aWZ5IHRvIHJ1biBDRCAqL1xuICAgIGdldCBtYXJrRm9yQ2hlY2soKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXJrRm9yQ2hlY2suYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqIHRhYmxlIGhhcyBmaXhlZCB3aWR0aCBpZiBhbGwgb2YgaXQncyBjb2x1bW5zIGFyZSBmaXhlZCAqL1xuICAgIGdldCBmaXhlZFdpZHRoKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZml4ZWRDb2x1bW5zV2lkdGhNYXAuc2l6ZSA9PT0gdGhpcy5fdmlzaWJsZUNvbHVtbk5hbWVzLmxlbmd0aDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgZ2V0IF9ydGwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ydGxTZXJ2aWNlPy5ydGwuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF90YWJsZVNjcm9sbERpc3BhdGNoZXJTZXJ2aWNlOiBUYWJsZVNjcm9sbERpc3BhdGNoZXJTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9ydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuX3RhYmxlU2Nyb2xsRGlzcGF0Y2hlclNlcnZpY2VcbiAgICAgICAgICAgID8uaG9yaXpvbnRhbGx5U2Nyb2xsZWQoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChzY3JvbGxhYmxlKSA9PiAodGhpcy5fc2Nyb2xsTGVmdCA9IHNjcm9sbGFibGUuZ2V0U2Nyb2xsTGVmdCgpKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVzaXplSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJlc2l6ZUluUHJvZ3Jlc3MkLm5leHQoZmFsc2UpO1xuXG4gICAgICAgIHRoaXMuX2Rlc3Ryb3llZC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpO1xuXG4gICAgICAgIHRoaXMuX3Jlc2l6ZXJNb3ZlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXRUYWJsZVJlZihyZWY6IFRhYmxlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlUmVmID0gcmVmO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIGluaXRpYWxpemVzIHNlcnZpY2Ugd2l0aCBkYXRhLCB0cmlnZ2VyIGNvbHVtbnMgd2lkdGggY2FsY3VsYXRpb24uICovXG4gICAgc2V0Q29sdW1uTmFtZXModmlzaWJsZUNvbHVtbk5hbWVzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl92aXNpYmxlQ29sdW1uTGVmdE5laWdoYm91ck1hcC5jbGVhcigpO1xuICAgICAgICB0aGlzLl92aXNpYmxlQ29sdW1uUmlnaHROZWlnaGJvdXJNYXAuY2xlYXIoKTtcbiAgICAgICAgdmlzaWJsZUNvbHVtbk5hbWVzLmZvckVhY2goKGNvbHVtbiwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3Zpc2libGVDb2x1bW5MZWZ0TmVpZ2hib3VyTWFwLnNldChjb2x1bW4sIHZpc2libGVDb2x1bW5OYW1lc1tpbmRleCAtIDFdKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZpc2libGVDb2x1bW5OYW1lcy5yZXZlcnNlKCkuZm9yRWFjaCgoY29sdW1uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdmlzaWJsZUNvbHVtblJpZ2h0TmVpZ2hib3VyTWFwLnNldChjb2x1bW4sIHZpc2libGVDb2x1bW5OYW1lc1tpbmRleCAtIDFdKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX3Zpc2libGVDb2x1bW5OYW1lcyA9IFsuLi52aXNpYmxlQ29sdW1uTmFtZXNdO1xuICAgICAgICB0aGlzLnVwZGF0ZUZyb3plbkNvbHVtbnNXaWR0aCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdXBkYXRlRnJvemVuQ29sdW1uc1dpZHRoKCk6IHZvaWQge1xuICAgICAgICBsZXQgYWxsUHJldmlvdXNXaWR0aHMgPSAwLFxuICAgICAgICAgICAgYWxsTmV4dFdpZHRocyA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgW2NvbHVtbiwgcHJldkNvbHVtbl0gb2YgdGhpcy5fdmlzaWJsZUNvbHVtbkxlZnROZWlnaGJvdXJNYXAuZW50cmllcygpKSB7XG4gICAgICAgICAgICBhbGxQcmV2aW91c1dpZHRocyArPVxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbHVtbnNDZWxsTWFwLmdldChwcmV2Q29sdW1uIGFzIHN0cmluZyk/LlswXT8ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCA/PyAwO1xuICAgICAgICAgICAgdGhpcy5fdmlzaWJsZUNvbHVtbkxlZnRPZmZzZXRQeE1hcC5zZXQoY29sdW1uLCBhbGxQcmV2aW91c1dpZHRocyk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBbY29sdW1uLCBuZXh0Q29sdW1uXSBvZiB0aGlzLl92aXNpYmxlQ29sdW1uUmlnaHROZWlnaGJvdXJNYXAuZW50cmllcygpKSB7XG4gICAgICAgICAgICBhbGxOZXh0V2lkdGhzICs9XG4gICAgICAgICAgICAgICAgdGhpcy5fY29sdW1uc0NlbGxNYXAuZ2V0KG5leHRDb2x1bW4gYXMgc3RyaW5nKT8uWzBdPy5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoID8/IDA7XG4gICAgICAgICAgICB0aGlzLl92aXNpYmxlQ29sdW1uUmlnaHRPZmZzZXRQeE1hcC5zZXQoY29sdW1uLCBhbGxOZXh0V2lkdGhzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdXBkYXRlRnJvemVuQ29sdW1uc1dpZHRoQWZ0ZXJSZXNpemUoY29sdW1uTmFtZTogc3RyaW5nLCBkaWZmWDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGxldCBmb3VuZCA9IGZhbHNlO1xuICAgICAgICBmb3IgKGNvbnN0IFtjb2x1bW4sIHdpZHRoXSBvZiB0aGlzLl92aXNpYmxlQ29sdW1uTGVmdE9mZnNldFB4TWFwLmVudHJpZXMoKSkge1xuICAgICAgICAgICAgaWYgKGNvbHVtbiA9PT0gY29sdW1uTmFtZSkge1xuICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZm91bmQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92aXNpYmxlQ29sdW1uTGVmdE9mZnNldFB4TWFwLnNldChjb2x1bW4sIHdpZHRoICsgZGlmZlgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFJldHJpZXZlcyBjdXN0b20gY29sdW1uIHZhbHVlIG9yIHJldHVybnMgYHVuc2V0YCAqL1xuICAgIGdldENvbHVtbldpZHRoU3R5bGUoY29sdW1uTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgY2FsY3VsYXRlZFdpZHRoID0gdGhpcy5fZml4ZWRDb2x1bW5zV2lkdGhNYXAuZ2V0KGNvbHVtbk5hbWUpO1xuICAgICAgICByZXR1cm4gY2FsY3VsYXRlZFdpZHRoIHx8ICd1bnNldCc7XG4gICAgfVxuXG4gICAgLyoqIFByZXZpb3VzIGNvbHVtbiBuYW1lICovXG4gICAgZ2V0UHJldmlvdXNDb2x1bW5OYW1lKGNvbHVtbk5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlQ29sdW1uTGVmdE5laWdoYm91ck1hcC5nZXQoY29sdW1uTmFtZSk7XG4gICAgfVxuXG4gICAgLyoqIFByZXZpb3VzIGNvbHVtbiBuYW1lICovXG4gICAgZ2V0TmV4dENvbHVtbk5hbWUoY29sdW1uTmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2libGVDb2x1bW5SaWdodE5laWdoYm91ck1hcC5nZXQoY29sdW1uTmFtZSk7XG4gICAgfVxuXG4gICAgLyoqIE92ZXJhbGwgcHJldmlvdXMgY29sdW1ucyB3aWR0aC4gVXNlZCB0byBjYWxjdWxhdGUgb2Zmc2V0IGZvciB0aGUgYWJzb2x1dGUgcG9zaXRpb25lZCBjZWxscy4gKi9cbiAgICBnZXRQcmV2Q29sdW1uc1dpZHRoKGNvbHVtbk5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlQ29sdW1uTGVmdE9mZnNldFB4TWFwLmdldChjb2x1bW5OYW1lKSA/PyAwO1xuICAgIH1cblxuICAgIC8qKiBPdmVyYWxsIG5leHQgY29sdW1ucyB3aWR0aC4gVXNlZCB0byBjYWxjdWxhdGUgb2Zmc2V0IGZvciB0aGUgYWJzb2x1dGUgcG9zaXRpb25lZCBjZWxscy4gKi9cbiAgICBnZXROZXh0Q29sdW1uc1dpZHRoKGNvbHVtbk5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlQ29sdW1uUmlnaHRPZmZzZXRQeE1hcC5nZXQoY29sdW1uTmFtZSkgPz8gMDtcbiAgICB9XG5cbiAgICAvKiogUmVnaXN0ZXIgY29sdW1uJ3MgY2VsbCB0byBnZXQgaXRzIGRpbWVuc2lvbnMgaW4gZnVydGhlci4gKi9cbiAgICByZWdpc3RlckNvbHVtbkNlbGwoY29sdW1uTmFtZTogc3RyaW5nLCBjZWxsRWxSZWY6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29sdW1uQ2VsbHMgPSB0aGlzLl9jb2x1bW5zQ2VsbE1hcC5nZXQoY29sdW1uTmFtZSkgfHwgW107XG4gICAgICAgIHRoaXMuX2NvbHVtbnNDZWxsTWFwLnNldChjb2x1bW5OYW1lLCBbY2VsbEVsUmVmLCAuLi5jb2x1bW5DZWxsc10pO1xuICAgIH1cblxuICAgIC8qKiBVbnJlZ2lzdGVyIGNvbHVtbidzIGNlbGwuICovXG4gICAgdW5yZWdpc3RlckNvbHVtbkNlbGwoY29sdW1uTmFtZTogc3RyaW5nLCBjZWxsRWxSZWY6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29sdW1uQ2VsbHMgPSB0aGlzLl9jb2x1bW5zQ2VsbE1hcC5nZXQoY29sdW1uTmFtZSkgfHwgW107XG4gICAgICAgIGNvbnN0IGVsbUluZGV4ID0gY29sdW1uQ2VsbHMuZmluZEluZGV4KChlKSA9PiBlLm5hdGl2ZUVsZW1lbnQgPT09IGNlbGxFbFJlZi5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICBpZiAoZWxtSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb2x1bW5DZWxscy5zcGxpY2UoZWxtSW5kZXgsIDEpO1xuXG4gICAgICAgIHRoaXMuX2NvbHVtbnNDZWxsTWFwLnNldChjb2x1bW5OYW1lLCBjb2x1bW5DZWxscyk7XG4gICAgfVxuXG4gICAgLyoqIFJlZ2lzdGVyIHRoZSB2YWx1ZSBvZiBjb2x1bW4gd2lkdGggdGhhdCBjaGFuZ2VkIGZyb20gIGlucHV0ICovXG4gICAgc2V0Q3VzdG9tV2lkdGgoY29sdW1uTmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ZpeGVkQ29sdW1uc1dpZHRoTWFwLnNldChjb2x1bW5OYW1lLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqIFNldCB0aGUgYXBwcm9wcmlhdGUgY29sdW1uIHJlc2l6ZXIgcG9zaXRpb24uICovXG4gICAgc2V0SW5pdGlhbFJlc2l6ZXJQb3NpdGlvbihyZXNpemVyUG9zaXRpb246IG51bWJlciwgcmVzaXplZENvbHVtbjogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJlc2l6ZUluUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3Jlc2l6ZWRDb2x1bW4gPSByZXNpemVkQ29sdW1uO1xuICAgICAgICB0aGlzLl9yZXNpemVyUG9zaXRpb24gPSBudWxsO1xuICAgICAgICB0aGlzLnJlc2l6ZXJQb3NpdGlvbiQubmV4dCh0aGlzLnJlc2l6ZXJQb3NpdGlvbik7XG5cbiAgICAgICAgaWYgKHJlc2l6ZXJQb3NpdGlvbiAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBzY3JvbGxMZWZ0T2Zmc2V0ID0gdGhpcy5fc2Nyb2xsTGVmdCAqICh0aGlzLl9ydGwgPyAxIDogLTEpO1xuICAgICAgICAgICAgdGhpcy5fcmVzaXplclBvc2l0aW9uID0gcmVzaXplclBvc2l0aW9uIC0gVEFCTEVfUkVTSVpFUl9CT1JERVJfV0lEVEggKyBzY3JvbGxMZWZ0T2Zmc2V0O1xuICAgICAgICAgICAgdGhpcy5yZXNpemVyUG9zaXRpb24kLm5leHQodGhpcy5yZXNpemVyUG9zaXRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fbWFya0ZvckNoZWNrLm5leHQoKTtcbiAgICB9XG5cbiAgICAvKiogSGlkZSB0aGUgY29sdW1uIHJlc2l6ZXIuICovXG4gICAgaGlkZVJlc2l6ZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9yZXNpemVJblByb2dyZXNzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9yZXNpemVyUG9zaXRpb24gPSBudWxsO1xuICAgICAgICB0aGlzLnJlc2l6ZXJQb3NpdGlvbiQubmV4dCh0aGlzLnJlc2l6ZXJQb3NpdGlvbik7XG4gICAgICAgIHRoaXMuX21hcmtGb3JDaGVjay5uZXh0KCk7XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZSBzdGFydCByZXNpemluZy4gKi9cbiAgICBzdGFydFJlc2l6ZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdGFydFggPSB0aGlzLnJlc2l6ZXJQb3NpdGlvbjtcbiAgICAgICAgdGhpcy5fY2xpZW50U3RhcnRYID0gZXZlbnQuY2xpZW50WDtcblxuICAgICAgICB0aGlzLl91cGRhdGVSZXNpemVyUG9zaXRpb25Pbk1vdXNlTW92ZSgpO1xuXG4gICAgICAgIHRoaXMuX3Jlc2l6ZUluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgICAgICB0aGlzLnJlc2l6ZUluUHJvZ3Jlc3MkLm5leHQodHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZSBlbmQgcmVzaXppbmcuICovXG4gICAgZmluaXNoUmVzaXplKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Jlc2l6ZXJNb3ZlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgdGhpcy5fcmVzaXplSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJlc2l6ZUluUHJvZ3Jlc3MkLm5leHQoZmFsc2UpO1xuICAgICAgICB0aGlzLl9yZXNpemVyUG9zaXRpb24gPSBudWxsO1xuICAgICAgICB0aGlzLnJlc2l6ZXJQb3NpdGlvbiQubmV4dCh0aGlzLnJlc2l6ZXJQb3NpdGlvbik7XG5cbiAgICAgICAgaWYgKHRoaXMuX3N0YXJ0WCAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBjbGllbnRTdGFydFggPSB0aGlzLl9jbGllbnRTdGFydFggPz8gMDtcbiAgICAgICAgICAgIGNvbnN0IGRpZmZYID0gdGhpcy5fcnRsID8gY2xpZW50U3RhcnRYIC0gZXZlbnQuY2xpZW50WCA6IGV2ZW50LmNsaWVudFggLSBjbGllbnRTdGFydFg7XG5cbiAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NSZXNpemUoZGlmZlgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc3RhcnRYID0gbnVsbDtcbiAgICAgICAgdGhpcy5fY2xpZW50U3RhcnRYID0gbnVsbDtcblxuICAgICAgICB0aGlzLl9tYXJrRm9yQ2hlY2submV4dCgpO1xuICAgIH1cblxuICAgIC8qKiBVcGRhdGUgY29sdW1ucyB3aWR0aCBhZnRlciByZXNpemluZywgcHJldmVudCBmcm9tIGhhdmluZyB0b28gc21hbGwgY29sdW1ucy4gKi9cbiAgICBfcHJvY2Vzc1Jlc2l6ZShkaWZmWDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlc2l6ZWRFbGVtZW50ID0gdGhpcy5fY29sdW1uc0NlbGxNYXAuZ2V0KHRoaXMuX3Jlc2l6ZWRDb2x1bW4pPy5bMF0/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGNvbHVtbldpZHRoID0gcmVzaXplZEVsZW1lbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuXG4gICAgICAgIGlmICghY29sdW1uV2lkdGggfHwgIXJlc2l6ZWRFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZGlmZlggPCAwICYmIGNvbHVtbldpZHRoICsgZGlmZlggPCBUQUJMRV9DT0xVTU5fTUlOX1dJRFRIKSB7XG4gICAgICAgICAgICBkaWZmWCA9IFRBQkxFX0NPTFVNTl9NSU5fV0lEVEggLSBjb2x1bW5XaWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5maXhlZFdpZHRoKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtjb2x1bW5OYW1lLCBjZWxsc10gb2YgdGhpcy5fY29sdW1uc0NlbGxNYXAuZW50cmllcygpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNlbGxzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9maXhlZENvbHVtbnNXaWR0aE1hcC5zZXQoXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5OYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2VsbHNbMF0ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCArICdweCdcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZGlmZlggPiAwICYmIHRoaXMuX3RhYmxlUmVmLl9mcmVlemFibGVDb2x1bW5zLmhhcyh0aGlzLl9yZXNpemVkQ29sdW1uKSkge1xuICAgICAgICAgICAgY29uc3QgZnJlZXplVG9OZXh0Q29sdW1uTmFtZSA9IHRoaXMuX3Zpc2libGVDb2x1bW5OYW1lc1t0aGlzLl90YWJsZVJlZi5fZnJlZXphYmxlQ29sdW1ucy5zaXplXTtcbiAgICAgICAgICAgIGNvbnN0IGFjdHVhbFdpZHRoID0gdGhpcy5nZXRQcmV2Q29sdW1uc1dpZHRoKGZyZWV6ZVRvTmV4dENvbHVtbk5hbWUpO1xuICAgICAgICAgICAgY29uc3QgbmV3V2lkdGggPSBhY3R1YWxXaWR0aCArIGRpZmZYO1xuICAgICAgICAgICAgY29uc3QgbWF4V2lkdGggPSB0aGlzLl90YWJsZVJlZi5nZXRNYXhBbGxvd2VkRnJlZXphYmxlQ29sdW1uc1dpZHRoKCk7XG4gICAgICAgICAgICAvLyBpbiBjYXNlIFwiX3Jlc2l6ZWRDb2x1bW5cIiBpcyBmcmVlemFibGUsIG1ha2Ugc3VyZSB0aGUgb3ZlcmFsbCB3aWR0aCBvZiBmcmVlemFibGUgY29sdW1ucyBkb2VzIG5vdCBleGNlZWQgdGhlIHdpZHRoIG9mIHRoZSB0YWJsZVxuICAgICAgICAgICAgaWYgKG5ld1dpZHRoID49IG1heFdpZHRoKSB7XG4gICAgICAgICAgICAgICAgZGlmZlggPSBtYXhXaWR0aCAtIGFjdHVhbFdpZHRoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdXBkYXRlZFdpZHRoID0gY29sdW1uV2lkdGggKyBkaWZmWDtcbiAgICAgICAgdGhpcy5fZml4ZWRDb2x1bW5zV2lkdGhNYXAuc2V0KHRoaXMuX3Jlc2l6ZWRDb2x1bW4sIHVwZGF0ZWRXaWR0aCArICdweCcpO1xuICAgICAgICB0aGlzLnVwZGF0ZUZyb3plbkNvbHVtbnNXaWR0aEFmdGVyUmVzaXplKHRoaXMuX3Jlc2l6ZWRDb2x1bW4sIGRpZmZYKTtcblxuICAgICAgICBjb25zdCBjb21wdXRlZCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHJlc2l6ZWRFbGVtZW50KTtcbiAgICAgICAgY29uc3QgcGFkZGluZyA9IHBhcnNlSW50KGNvbXB1dGVkLnBhZGRpbmdMZWZ0LCAxMCkgKyBwYXJzZUludChjb21wdXRlZC5wYWRkaW5nUmlnaHQsIDEwKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlSGVhZGVyT3ZlcmZsb3dTdGF0ZSh1cGRhdGVkV2lkdGggLSBwYWRkaW5nKTtcbiAgICAgICAgdGhpcy5fbWFya0ZvckNoZWNrLm5leHQoKTtcbiAgICB9XG5cbiAgICAvKiogVXBkYXRlIGNvbHVtbiByZXNpemVyIHBvc2l0aW9uLiAqL1xuICAgIHByaXZhdGUgX3VwZGF0ZVJlc2l6ZXJQb3NpdGlvbk9uTW91c2VNb3ZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZXNpemVyTW92ZVN1YnNjcmlwdGlvbiA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pihkb2N1bWVudCwgJ21vdXNlbW92ZScpXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTApKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjbGllbnRTdGFydFggPSB0aGlzLl9jbGllbnRTdGFydFggPz8gMDtcbiAgICAgICAgICAgICAgICBjb25zdCBkaWZmWCA9IHRoaXMuX3J0bCA/IGNsaWVudFN0YXJ0WCAtIGV2ZW50LmNsaWVudFggOiBldmVudC5jbGllbnRYIC0gY2xpZW50U3RhcnRYO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fcmVzaXplclBvc2l0aW9uID0gKHRoaXMuX3N0YXJ0WCA/PyAwKSArIGRpZmZYO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzaXplclBvc2l0aW9uJC5uZXh0KHRoaXMucmVzaXplclBvc2l0aW9uKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX21hcmtGb3JDaGVjay5uZXh0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiB0aGUgaGVhZGVyIHRleHQgbGVuZ3RoIGdvZXMgb3ZlciB0aGUgY29sdW1uIHdpZHRoLiBJbiBzdWNoIGNhc2UgYXBwbGllcyB0ZXh0IHRydW5jYXRpb24gd2l0aFxuICAgICAqIGVsbGlwc2lzIGFuZCBtYWtlIHN1cmUgd2UgYWxzbyBzaG93IGEgdG9vbHRpcC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBfdXBkYXRlSGVhZGVyT3ZlcmZsb3dTdGF0ZSh1cGRhdGVkV2lkdGg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5fY29sdW1uc0NlbGxNYXBcbiAgICAgICAgICAgIC5nZXQodGhpcy5fcmVzaXplZENvbHVtbilcbiAgICAgICAgICAgID8uZmluZCgoYykgPT4gYz8ubmF0aXZlRWxlbWVudC50YWdOYW1lID09PSAnVEgnKT8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgdmlzaWJsZUNvbHVtbiA9IHRoaXMuX3RhYmxlUmVmLmdldFZpc2libGVUYWJsZUNvbHVtbnMoKS5maW5kKChjKSA9PiBjLm5hbWUgPT09IHRoaXMuX3Jlc2l6ZWRDb2x1bW4pO1xuICAgICAgICBjb25zdCBoZWFkZXJUZXh0RWxlbSA9IGVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoYCMke3RoaXMuX3RhYmxlUmVmLmlkfS1oZWFkZXItY2VsbC0ke3RoaXMuX3Jlc2l6ZWRDb2x1bW59YCk7XG5cbiAgICAgICAgaWYgKCFoZWFkZXJUZXh0RWxlbSB8fCAhdmlzaWJsZUNvbHVtbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZpc2libGVDb2x1bW4uaGVhZGVyT3ZlcmZsb3dzID0gaGVhZGVyVGV4dEVsZW0uc2Nyb2xsV2lkdGggPiB1cGRhdGVkV2lkdGg7XG4gICAgfVxufVxuIl19
303
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLXJlc2l6ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlLWhlbHBlcnMvc2VydmljZXMvdGFibGUtY29sdW1uLXJlc2l6ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQWEsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3RELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7O0FBRWpGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQUMsQ0FBQztBQUU1Qzs7Ozs7R0FLRztBQUVILE1BQU0sT0FBTyx3QkFBd0I7SUFvRGpDLGdEQUFnRDtJQUNoRCxJQUFJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNsQyxDQUFDO0lBUUQsdUNBQXVDO0lBQ3ZDLElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBS0QscUNBQXFDO0lBQ3JDLElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsNkRBQTZEO0lBQzdELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksS0FBSyxJ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QUFDLEVBQUUsZ0JBQWdCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBRTFHLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDbkMsT0FBTztTQUNWO1FBQ0QsYUFBYSxDQUFDLGVBQWUsR0FBRyxjQUFjLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQztJQUM5RSxDQUFDOzhHQXJXUSx3QkFBd0I7a0hBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVTs7MEJBMEZGLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgUnRsU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IFRBQkxFX0NPTFVNTl9NSU5fV0lEVEggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJy4uL3RhYmxlJztcbmltcG9ydCB7IFRhYmxlU2Nyb2xsRGlzcGF0Y2hlclNlcnZpY2UgfSBmcm9tICcuL3RhYmxlLXNjcm9sbC1kaXNwYXRjaGVyLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgVEFCTEVfUkVTSVpFUl9CT1JERVJfV0lEVEggPSAzO1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gaGFuZGxlIGFsbCB0aGluZ3MgcmVsYXRlZCB0byBjb2x1bW4gcmVzaXppbmc6XG4gKiAtIFNldHRpbmcgcmVzaXplclxuICogLSBQcm9jZXNzaW5nIHJlc2l6ZVxuICogLSBDYWxjdWxhdGluZyB0aGUgcmVhbCBjb2x1bW5zIHdpZHRoXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbHVtblJlc2l6ZVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZml4ZWRDb2x1bW5zV2lkdGhNYXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jb2x1bW5zQ2VsbE1hcCA9IG5ldyBNYXA8c3RyaW5nLCBFbGVtZW50UmVmPEhUTUxUYWJsZURhdGFDZWxsRWxlbWVudD5bXT4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdmlzaWJsZUNvbHVtbk5hbWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF92aXNpYmxlQ29sdW1uTGVmdE5laWdoYm91ck1hcCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Zpc2libGVDb2x1bW5SaWdodE5laWdoYm91ck1hcCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Zpc2libGVDb2x1bW5MZWZ0T2Zmc2V0UHhNYXAgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF92aXNpYmxlQ29sdW1uUmlnaHRPZmZzZXRQeE1hcCA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N0YXJ0WDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NsaWVudFN0YXJ0WDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Jlc2l6ZUluUHJvZ3Jlc3MgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVzaXplZENvbHVtbjogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yZXNpemVyUG9zaXRpb246IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zY3JvbGxMZWZ0ID0gMDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbWFya0ZvckNoZWNrID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcmVzaXplck1vdmVTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RhYmxlUmVmOiBUYWJsZTtcblxuICAgIC8qKiBJbmRpY2F0ZSBpZiByZXNpemluZyBwcm9jZXNzIGluIHByb2dyZXNzLiAqL1xuICAgIGdldCByZXNpemVJblByb2dyZXNzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzaXplSW5Qcm9ncmVzcztcbiAgICB9XG5cbiAgICAvKiogUmVzaXplIHByb2dyZXNzIHN0cmVhbS4gKi9cbiAgICByZWFkb25seSByZXNpemVJblByb2dyZXNzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odGhpcy5fcmVzaXplSW5Qcm9ncmVzcyk7XG5cbiAgICAvKiogV2hldGhlciBjZWxsIG1vY2sgc2hvdWxkIGJlIHZpc2libGUuICovXG4gICAgcmVhZG9ubHkgY2VsbE1vY2tWaXNpYmxlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgLyoqIEN1cnJlbnQgY29sdW1uIHJlc2l6ZXIgcG9zaXRpb24uICovXG4gICAgZ2V0IHJlc2l6ZXJQb3NpdGlvbigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzaXplclBvc2l0aW9uID8/IDA7XG4gICAgfVxuXG4gICAgLyoqIFJlc2l6ZXIgcG9zaXRpb24gc3RyZWFtLiAqL1xuICAgIHJlYWRvbmx5IHJlc2l6ZXJQb3NpdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG5cbiAgICAvKiogT2JzZXJ2YWJsZSB0byBub3RpZnkgdG8gcnVuIENEICovXG4gICAgZ2V0IG1hcmtGb3JDaGVjaygpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21hcmtGb3JDaGVjay5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvKiogdGFibGUgaGFzIGZpeGVkIHdpZHRoIGlmIGFsbCBvZiBpdCdzIGNvbHVtbnMgYXJlIGZpeGVkICovXG4gICAgZ2V0IGZpeGVkV2lkdGgoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maXhlZENvbHVtbnNXaWR0aE1hcC5zaXplID09PSB0aGlzLl92aXNpYmxlQ29sdW1uTmFtZXMubGVuZ3RoO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXQgX3J0bCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3J0bFNlcnZpY2U/LnJ0bC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3RhYmxlU2Nyb2xsRGlzcGF0Y2hlclNlcnZpY2U6IFRhYmxlU2Nyb2xsRGlzcGF0Y2hlclNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgX3J0bFNlcnZpY2U6IFJ0bFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5fdGFibGVTY3JvbGxEaXNwYXRjaGVyU2VydmljZVxuICAgICAgICAgICAgPy5ob3Jpem9udGFsbHlTY3JvbGxlZCgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHNjcm9sbGFibGUpID0+ICh0aGlzLl9zY3JvbGxMZWZ0ID0gc2Nyb2xsYWJsZS5nZXRTY3JvbGxMZWZ0KCkpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZXNpemVJblByb2dyZXNzID0gZmFsc2U7XG4gICAgICAgIHRoaXMucmVzaXplSW5Qcm9ncmVzcyQubmV4dChmYWxzZSk7XG5cbiAgICAgICAgdGhpcy5fZGVzdHJveWVkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveWVkLmNvbXBsZXRlKCk7XG5cbiAgICAgICAgdGhpcy5fcmVzaXplck1vdmVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldFRhYmxlUmVmKHJlZjogVGFibGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGVSZWYgPSByZWY7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gaW5pdGlhbGl6ZXMgc2VydmljZSB3aXRoIGRhdGEsIHRyaWdnZXIgY29sdW1ucyB3aWR0aCBjYWxjdWxhdGlvbi4gKi9cbiAgICBzZXRDb2x1bW5OYW1lcyh2aXNpYmxlQ29sdW1uTmFtZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Zpc2libGVDb2x1bW5MZWZ0TmVpZ2hib3VyTWFwLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuX3Zpc2libGVDb2x1bW5SaWdodE5laWdoYm91ck1hcC5jbGVhcigpO1xuICAgICAgICB2aXNpYmxlQ29sdW1uTmFtZXMuZm9yRWFjaCgoY29sdW1uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdmlzaWJsZUNvbHVtbkxlZnROZWlnaGJvdXJNYXAuc2V0KGNvbHVtbiwgdmlzaWJsZUNvbHVtbk5hbWVzW2luZGV4IC0gMV0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdmlzaWJsZUNvbHVtbk5hbWVzLnJldmVyc2UoKS5mb3JFYWNoKChjb2x1bW4sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICB0aGlzLl92aXNpYmxlQ29sdW1uUmlnaHROZWlnaGJvdXJNYXAuc2V0KGNvbHVtbiwgdmlzaWJsZUNvbHVtbk5hbWVzW2luZGV4IC0gMV0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fdmlzaWJsZUNvbHVtbk5hbWVzID0gWy4uLnZpc2libGVDb2x1bW5OYW1lc107XG4gICAgICAgIHRoaXMudXBkYXRlRnJvemVuQ29sdW1uc1dpZHRoKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB1cGRhdGVGcm96ZW5Db2x1bW5zV2lkdGgoKTogdm9pZCB7XG4gICAgICAgIGxldCBhbGxQcmV2aW91c1dpZHRocyA9IDAsXG4gICAgICAgICAgICBhbGxOZXh0V2lkdGhzID0gMDtcbiAgICAgICAgZm9yIChjb25zdCBbY29sdW1uLCBwcmV2Q29sdW1uXSBvZiB0aGlzLl92aXNpYmxlQ29sdW1uTGVmdE5laWdoYm91ck1hcC5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgIGFsbFByZXZpb3VzV2lkdGhzICs9XG4gICAgICAgICAgICAgICAgdGhpcy5fY29sdW1uc0NlbGxNYXAuZ2V0KHByZXZDb2x1bW4gYXMgc3RyaW5nKT8uWzBdPy5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoID8/IDA7XG4gICAgICAgICAgICB0aGlzLl92aXNpYmxlQ29sdW1uTGVmdE9mZnNldFB4TWFwLnNldChjb2x1bW4sIGFsbFByZXZpb3VzV2lkdGhzKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IFtjb2x1bW4sIG5leHRDb2x1bW5dIG9mIHRoaXMuX3Zpc2libGVDb2x1bW5SaWdodE5laWdoYm91ck1hcC5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgIGFsbE5leHRXaWR0aHMgKz1cbiAgICAgICAgICAgICAgICB0aGlzLl9jb2x1bW5zQ2VsbE1hcC5nZXQobmV4dENvbHVtbiBhcyBzdHJpbmcpPy5bMF0/Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggPz8gMDtcbiAgICAgICAgICAgIHRoaXMuX3Zpc2libGVDb2x1bW5SaWdodE9mZnNldFB4TWFwLnNldChjb2x1bW4sIGFsbE5leHRXaWR0aHMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB1cGRhdGVGcm96ZW5Db2x1bW5zV2lkdGhBZnRlclJlc2l6ZShjb2x1bW5OYW1lOiBzdHJpbmcsIGRpZmZYOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgbGV0IGZvdW5kID0gZmFsc2U7XG4gICAgICAgIGZvciAoY29uc3QgW2NvbHVtbiwgd2lkdGhdIG9mIHRoaXMuX3Zpc2libGVDb2x1bW5MZWZ0T2Zmc2V0UHhNYXAuZW50cmllcygpKSB7XG4gICAgICAgICAgICBpZiAoY29sdW1uID09PSBjb2x1bW5OYW1lKSB7XG4gICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmb3VuZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Zpc2libGVDb2x1bW5MZWZ0T2Zmc2V0UHhNYXAuc2V0KGNvbHVtbiwgd2lkdGggKyBkaWZmWCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogUmV0cmlldmVzIGN1c3RvbSBjb2x1bW4gdmFsdWUgb3IgcmV0dXJucyBgdW5zZXRgICovXG4gICAgZ2V0Q29sdW1uV2lkdGhTdHlsZShjb2x1bW5OYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBjYWxjdWxhdGVkV2lkdGggPSB0aGlzLl9maXhlZENvbHVtbnNXaWR0aE1hcC5nZXQoY29sdW1uTmFtZSk7XG4gICAgICAgIHJldHVybiBjYWxjdWxhdGVkV2lkdGggfHwgJ3Vuc2V0JztcbiAgICB9XG5cbiAgICAvKiogUHJldmlvdXMgY29sdW1uIG5hbWUgKi9cbiAgICBnZXRQcmV2aW91c0NvbHVtbk5hbWUoY29sdW1uTmFtZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2libGVDb2x1bW5MZWZ0TmVpZ2hib3VyTWFwLmdldChjb2x1bW5OYW1lKTtcbiAgICB9XG5cbiAgICAvKiogUHJldmlvdXMgY29sdW1uIG5hbWUgKi9cbiAgICBnZXROZXh0Q29sdW1uTmFtZShjb2x1bW5OYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZUNvbHVtblJpZ2h0TmVpZ2hib3VyTWFwLmdldChjb2x1bW5OYW1lKTtcbiAgICB9XG5cbiAgICAvKiogT3ZlcmFsbCBwcmV2aW91cyBjb2x1bW5zIHdpZHRoLiBVc2VkIHRvIGNhbGN1bGF0ZSBvZmZzZXQgZm9yIHRoZSBhYnNvbHV0ZSBwb3NpdGlvbmVkIGNlbGxzLiAqL1xuICAgIGdldFByZXZDb2x1bW5zV2lkdGgoY29sdW1uTmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2libGVDb2x1bW5MZWZ0T2Zmc2V0UHhNYXAuZ2V0KGNvbHVtbk5hbWUpID8/IDA7XG4gICAgfVxuXG4gICAgLyoqIE92ZXJhbGwgbmV4dCBjb2x1bW5zIHdpZHRoLiBVc2VkIHRvIGNhbGN1bGF0ZSBvZmZzZXQgZm9yIHRoZSBhYnNvbHV0ZSBwb3NpdGlvbmVkIGNlbGxzLiAqL1xuICAgIGdldE5leHRDb2x1bW5zV2lkdGgoY29sdW1uTmFtZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2libGVDb2x1bW5SaWdodE9mZnNldFB4TWFwLmdldChjb2x1bW5OYW1lKSA/PyAwO1xuICAgIH1cblxuICAgIC8qKiBSZWdpc3RlciBjb2x1bW4ncyBjZWxsIHRvIGdldCBpdHMgZGltZW5zaW9ucyBpbiBmdXJ0aGVyLiAqL1xuICAgIHJlZ2lzdGVyQ29sdW1uQ2VsbChjb2x1bW5OYW1lOiBzdHJpbmcsIGNlbGxFbFJlZjogRWxlbWVudFJlZik6IHZvaWQge1xuICAgICAgICBjb25zdCBjb2x1bW5DZWxscyA9IHRoaXMuX2NvbHVtbnNDZWxsTWFwLmdldChjb2x1bW5OYW1lKSB8fCBbXTtcbiAgICAgICAgdGhpcy5fY29sdW1uc0NlbGxNYXAuc2V0KGNvbHVtbk5hbWUsIFtjZWxsRWxSZWYsIC4uLmNvbHVtbkNlbGxzXSk7XG4gICAgfVxuXG4gICAgLyoqIFVucmVnaXN0ZXIgY29sdW1uJ3MgY2VsbC4gKi9cbiAgICB1bnJlZ2lzdGVyQ29sdW1uQ2VsbChjb2x1bW5OYW1lOiBzdHJpbmcsIGNlbGxFbFJlZjogRWxlbWVudFJlZik6IHZvaWQge1xuICAgICAgICBjb25zdCBjb2x1bW5DZWxscyA9IHRoaXMuX2NvbHVtbnNDZWxsTWFwLmdldChjb2x1bW5OYW1lKSB8fCBbXTtcbiAgICAgICAgY29uc3QgZWxtSW5kZXggPSBjb2x1bW5DZWxscy5maW5kSW5kZXgoKGUpID0+IGUubmF0aXZlRWxlbWVudCA9PT0gY2VsbEVsUmVmLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICAgIGlmIChlbG1JbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbHVtbkNlbGxzLnNwbGljZShlbG1JbmRleCwgMSk7XG5cbiAgICAgICAgdGhpcy5fY29sdW1uc0NlbGxNYXAuc2V0KGNvbHVtbk5hbWUsIGNvbHVtbkNlbGxzKTtcbiAgICB9XG5cbiAgICAvKiogUmVnaXN0ZXIgdGhlIHZhbHVlIG9mIGNvbHVtbiB3aWR0aCB0aGF0IGNoYW5nZWQgZnJvbSAgaW5wdXQgKi9cbiAgICBzZXRDdXN0b21XaWR0aChjb2x1bW5OYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZml4ZWRDb2x1bW5zV2lkdGhNYXAuc2V0KGNvbHVtbk5hbWUsIHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKiogU2V0IHRoZSBhcHByb3ByaWF0ZSBjb2x1bW4gcmVzaXplciBwb3NpdGlvbi4gKi9cbiAgICBzZXRJbml0aWFsUmVzaXplclBvc2l0aW9uKHJlc2l6ZXJQb3NpdGlvbjogbnVtYmVyLCByZXNpemVkQ29sdW1uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmVzaXplSW5Qcm9ncmVzcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcmVzaXplZENvbHVtbiA9IHJlc2l6ZWRDb2x1bW47XG4gICAgICAgIHRoaXMuX3Jlc2l6ZXJQb3NpdGlvbiA9IG51bGw7XG4gICAgICAgIHRoaXMucmVzaXplclBvc2l0aW9uJC5uZXh0KHRoaXMucmVzaXplclBvc2l0aW9uKTtcblxuICAgICAgICBpZiAocmVzaXplclBvc2l0aW9uICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IHNjcm9sbExlZnRPZmZzZXQgPSB0aGlzLl9zY3JvbGxMZWZ0ICogKHRoaXMuX3J0bCA/IDEgOiAtMSk7XG4gICAgICAgICAgICB0aGlzLl9yZXNpemVyUG9zaXRpb24gPSByZXNpemVyUG9zaXRpb24gLSBUQUJMRV9SRVNJWkVSX0JPUkRFUl9XSURUSCArIHNjcm9sbExlZnRPZmZzZXQ7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZXJQb3NpdGlvbiQubmV4dCh0aGlzLnJlc2l6ZXJQb3NpdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9tYXJrRm9yQ2hlY2submV4dCgpO1xuICAgIH1cblxuICAgIC8qKiBIaWRlIHRoZSBjb2x1bW4gcmVzaXplci4gKi9cbiAgICBoaWRlUmVzaXplcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3Jlc2l6ZUluUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3Jlc2l6ZXJQb3NpdGlvbiA9IG51bGw7XG4gICAgICAgIHRoaXMucmVzaXplclBvc2l0aW9uJC5uZXh0KHRoaXMucmVzaXplclBvc2l0aW9uKTtcbiAgICAgICAgdGhpcy5fbWFya0ZvckNoZWNrLm5leHQoKTtcbiAgICB9XG5cbiAgICAvKiogSGFuZGxlIHN0YXJ0IHJlc2l6aW5nLiAqL1xuICAgIHN0YXJ0UmVzaXplKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N0YXJ0WCA9IHRoaXMucmVzaXplclBvc2l0aW9uO1xuICAgICAgICB0aGlzLl9jbGllbnRTdGFydFggPSBldmVudC5jbGllbnRYO1xuXG4gICAgICAgIHRoaXMuX3VwZGF0ZVJlc2l6ZXJQb3NpdGlvbk9uTW91c2VNb3ZlKCk7XG5cbiAgICAgICAgdGhpcy5fcmVzaXplSW5Qcm9ncmVzcyA9IHRydWU7XG4gICAgICAgIHRoaXMucmVzaXplSW5Qcm9ncmVzcyQubmV4dCh0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogSGFuZGxlIGVuZCByZXNpemluZy4gKi9cbiAgICBmaW5pc2hSZXNpemUoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVzaXplck1vdmVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcblxuICAgICAgICB0aGlzLl9yZXNpemVJblByb2dyZXNzID0gZmFsc2U7XG4gICAgICAgIHRoaXMucmVzaXplSW5Qcm9ncmVzcyQubmV4dChmYWxzZSk7XG4gICAgICAgIHRoaXMuX3Jlc2l6ZXJQb3NpdGlvbiA9IG51bGw7XG4gICAgICAgIHRoaXMucmVzaXplclBvc2l0aW9uJC5uZXh0KHRoaXMucmVzaXplclBvc2l0aW9uKTtcblxuICAgICAgICBpZiAodGhpcy5fc3RhcnRYICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IGNsaWVudFN0YXJ0WCA9IHRoaXMuX2NsaWVudFN0YXJ0WCA/PyAwO1xuICAgICAgICAgICAgY29uc3QgZGlmZlggPSB0aGlzLl9ydGwgPyBjbGllbnRTdGFydFggLSBldmVudC5jbGllbnRYIDogZXZlbnQuY2xpZW50WCAtIGNsaWVudFN0YXJ0WDtcblxuICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc1Jlc2l6ZShkaWZmWCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zdGFydFggPSBudWxsO1xuICAgICAgICB0aGlzLl9jbGllbnRTdGFydFggPSBudWxsO1xuXG4gICAgICAgIHRoaXMuX21hcmtGb3JDaGVjay5uZXh0KCk7XG4gICAgfVxuXG4gICAgLyoqIFVwZGF0ZSBjb2x1bW5zIHdpZHRoIGFmdGVyIHJlc2l6aW5nLCBwcmV2ZW50IGZyb20gaGF2aW5nIHRvbyBzbWFsbCBjb2x1bW5zLiAqL1xuICAgIF9wcm9jZXNzUmVzaXplKGRpZmZYOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVzaXplZEVsZW1lbnQgPSB0aGlzLl9jb2x1bW5zQ2VsbE1hcC5nZXQodGhpcy5fcmVzaXplZENvbHVtbik/LlswXT8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgY29sdW1uV2lkdGggPSByZXNpemVkRWxlbWVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG5cbiAgICAgICAgaWYgKCFjb2x1bW5XaWR0aCB8fCAhcmVzaXplZEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkaWZmWCA8IDAgJiYgY29sdW1uV2lkdGggKyBkaWZmWCA8IFRBQkxFX0NPTFVNTl9NSU5fV0lEVEgpIHtcbiAgICAgICAgICAgIGRpZmZYID0gVEFCTEVfQ09MVU1OX01JTl9XSURUSCAtIGNvbHVtbldpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmZpeGVkV2lkdGgpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2NvbHVtbk5hbWUsIGNlbGxzXSBvZiB0aGlzLl9jb2x1bW5zQ2VsbE1hcC5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2VsbHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ZpeGVkQ29sdW1uc1dpZHRoTWFwLnNldChcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbk5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBjZWxsc1swXS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoICsgJ3B4J1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJbiBjYXNlIFwiX3Jlc2l6ZWRDb2x1bW5cIiBpcyBmcmVlemFibGUsIG1ha2Ugc3VyZSB0aGUgb3ZlcmFsbCB3aWR0aCBvZiBmcmVlemFibGUgY29sdW1ucyBkb2VzIG5vdCBleGNlZWQgdGhlIHdpZHRoIG9mIHRoZSB0YWJsZS5cbiAgICAgICAgICogSWYgaXQgZG9lcywgY29sdW1ucyB3aWxsIGJlIG1hZGUgdW5mcm96ZW4uXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBkaWZmWCA+IDAgJiZcbiAgICAgICAgICAgICh0aGlzLl90YWJsZVJlZi5fZnJlZXphYmxlQ29sdW1ucy5oYXModGhpcy5fcmVzaXplZENvbHVtbikgfHxcbiAgICAgICAgICAgICAgICB0aGlzLl90YWJsZVJlZi5fZnJlZXphYmxlRW5kQ29sdW1ucz8uaGFzKHRoaXMuX3Jlc2l6ZWRDb2x1bW4pKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGxldCBhY3R1YWxXaWR0aCA9IHRoaXMuZ2V0UHJldkNvbHVtbnNXaWR0aCh0aGlzLl9yZXNpemVkQ29sdW1uKSArIGNvbHVtbldpZHRoO1xuICAgICAgICAgICAgaWYgKHRoaXMuX3RhYmxlUmVmLl9mcmVlemFibGVFbmRDb2x1bW5zPy5oYXModGhpcy5fcmVzaXplZENvbHVtbikpIHtcbiAgICAgICAgICAgICAgICBhY3R1YWxXaWR0aCA9IHRoaXMuZ2V0TmV4dENvbHVtbnNXaWR0aCh0aGlzLl9yZXNpemVkQ29sdW1uKSArIGNvbHVtbldpZHRoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbmV3V2lkdGggPSBhY3R1YWxXaWR0aCArIGRpZmZYO1xuICAgICAgICAgICAgY29uc3QgbWF4V2lkdGggPSB0aGlzLl90YWJsZVJlZi5nZXRNYXhBbGxvd2VkRnJlZXphYmxlQ29sdW1uc1dpZHRoKCk7XG4gICAgICAgICAgICBpZiAobmV3V2lkdGggPj0gbWF4V2lkdGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90YWJsZVJlZi5fZnJlZXphYmxlQ29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGFibGVSZWYudW5mcmVlemUoY29sdW1uLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdXBkYXRlZFdpZHRoID0gY29sdW1uV2lkdGggKyBkaWZmWDtcbiAgICAgICAgdGhpcy5fZml4ZWRDb2x1bW5zV2lkdGhNYXAuc2V0KHRoaXMuX3Jlc2l6ZWRDb2x1bW4sIHVwZGF0ZWRXaWR0aCArICdweCcpO1xuICAgICAgICB0aGlzLnVwZGF0ZUZyb3plbkNvbHVtbnNXaWR0aEFmdGVyUmVzaXplKHRoaXMuX3Jlc2l6ZWRDb2x1bW4sIGRpZmZYKTtcblxuICAgICAgICBjb25zdCBjb21wdXRlZCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHJlc2l6ZWRFbGVtZW50KTtcbiAgICAgICAgY29uc3QgcGFkZGluZyA9IHBhcnNlSW50KGNvbXB1dGVkLnBhZGRpbmdMZWZ0LCAxMCkgKyBwYXJzZUludChjb21wdXRlZC5wYWRkaW5nUmlnaHQsIDEwKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlSGVhZGVyT3ZlcmZsb3dTdGF0ZSh1cGRhdGVkV2lkdGggLSBwYWRkaW5nKTtcbiAgICAgICAgdGhpcy5fbWFya0ZvckNoZWNrLm5leHQoKTtcbiAgICB9XG5cbiAgICAvKiogVXBkYXRlIGNvbHVtbiByZXNpemVyIHBvc2l0aW9uLiAqL1xuICAgIHByaXZhdGUgX3VwZGF0ZVJlc2l6ZXJQb3NpdGlvbk9uTW91c2VNb3ZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZXNpemVyTW92ZVN1YnNjcmlwdGlvbiA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pihkb2N1bWVudCwgJ21vdXNlbW92ZScpXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTApKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjbGllbnRTdGFydFggPSB0aGlzLl9jbGllbnRTdGFydFggPz8gMDtcbiAgICAgICAgICAgICAgICBjb25zdCBkaWZmWCA9IHRoaXMuX3J0bCA/IGNsaWVudFN0YXJ0WCAtIGV2ZW50LmNsaWVudFggOiBldmVudC5jbGllbnRYIC0gY2xpZW50U3RhcnRYO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5fcmVzaXplclBvc2l0aW9uID0gKHRoaXMuX3N0YXJ0WCA/PyAwKSArIGRpZmZYO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzaXplclBvc2l0aW9uJC5uZXh0KHRoaXMucmVzaXplclBvc2l0aW9uKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX21hcmtGb3JDaGVjay5uZXh0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiB0aGUgaGVhZGVyIHRleHQgbGVuZ3RoIGdvZXMgb3ZlciB0aGUgY29sdW1uIHdpZHRoLiBJbiBzdWNoIGNhc2UgYXBwbGllcyB0ZXh0IHRydW5jYXRpb24gd2l0aFxuICAgICAqIGVsbGlwc2lzIGFuZCBtYWtlIHN1cmUgd2UgYWxzbyBzaG93IGEgdG9vbHRpcC5cbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBfdXBkYXRlSGVhZGVyT3ZlcmZsb3dTdGF0ZSh1cGRhdGVkV2lkdGg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5fY29sdW1uc0NlbGxNYXBcbiAgICAgICAgICAgIC5nZXQodGhpcy5fcmVzaXplZENvbHVtbilcbiAgICAgICAgICAgID8uZmluZCgoYykgPT4gYz8ubmF0aXZlRWxlbWVudC50YWdOYW1lID09PSAnVEgnKT8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgdmlzaWJsZUNvbHVtbiA9IHRoaXMuX3RhYmxlUmVmLmdldFZpc2libGVUYWJsZUNvbHVtbnMoKS5maW5kKChjKSA9PiBjLm5hbWUgPT09IHRoaXMuX3Jlc2l6ZWRDb2x1bW4pO1xuICAgICAgICBjb25zdCBoZWFkZXJUZXh0RWxlbSA9IGVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoYCMke3RoaXMuX3RhYmxlUmVmLmlkfS1oZWFkZXItY2VsbC0ke3RoaXMuX3Jlc2l6ZWRDb2x1bW59YCk7XG5cbiAgICAgICAgaWYgKCFoZWFkZXJUZXh0RWxlbSB8fCAhdmlzaWJsZUNvbHVtbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZpc2libGVDb2x1bW4uaGVhZGVyT3ZlcmZsb3dzID0gaGVhZGVyVGV4dEVsZW0uc2Nyb2xsV2lkdGggPiB1cGRhdGVkV2lkdGg7XG4gICAgfVxufVxuIl19
@@ -11,4 +11,4 @@ export class Table {
11
11
  this.openTableColumnSettings = new EventEmitter();
12
12
  }
13
13
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUtaGVscGVycy90YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsWUFBWSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBZW5FLE1BQU0sT0FBZ0IsS0FBSztJQUEzQjtRQTBKSSwrQ0FBK0M7UUFDdEMsMEJBQXFCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFOUUsaURBQWlEO1FBQ3hDLDRCQUF1QixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRWhGLGdEQUFnRDtRQUN2QywyQkFBc0IsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUUvRSxpREFBaUQ7UUFDeEMsNEJBQXVCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7SUFVcEYsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VhcmNoSW5wdXQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NlYXJjaC1maWVsZCc7XG5pbXBvcnQgeyBQcmVzZXRNYW5hZ2VkQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJy4vZG9tYWluJztcbmltcG9ydCB7IENvbGxlY3Rpb25GaWx0ZXIgfSBmcm9tICcuL2ludGVyZmFjZXMvY29sbGVjdGlvbi1maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbGxlY3Rpb25Hcm91cCB9IGZyb20gJy4vaW50ZXJmYWNlcy9jb2xsZWN0aW9uLWdyb3VwLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uU29ydCB9IGZyb20gJy4vaW50ZXJmYWNlcy9jb2xsZWN0aW9uLXNvcnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRhYmxlU3RhdGUgfSBmcm9tICcuL2ludGVyZmFjZXMvdGFibGUtc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBsYXRmb3JtVGFibGVNYW5hZ2VkUHJlc2V0LCBTYXZlUm93c0V2ZW50LCBUYWJsZUluaXRpYWxTdGF0ZSwgVGFibGVSb3cgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBUYWJsZVNjcm9sbGFibGUgfSBmcm9tICcuL3NlcnZpY2VzL3RhYmxlLXNjcm9sbC1kaXNwYXRjaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tICcuL3RhYmxlLWNvbHVtbic7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUYWJsZTxUID0gYW55PiBpbXBsZW1lbnRzIFByZXNldE1hbmFnZWRDb21wb25lbnQ8UGxhdGZvcm1UYWJsZU1hbmFnZWRQcmVzZXQ+IHtcbiAgICBhYnN0cmFjdCByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgICBhYnN0cmFjdCByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gICAgYWJzdHJhY3QgX2xvYWRQcmV2aW91c1BhZ2VzOiBib29sZWFuO1xuXG4gICAgYWJzdHJhY3QgcGFnZVNjcm9sbGluZzogYm9vbGVhbjtcblxuICAgIGFic3RyYWN0IGxvYWRQYWdlc0JlZm9yZTogYm9vbGVhbjtcblxuICAgIGFic3RyYWN0IHBhZ2VTaXplOiBOdWxsYWJsZTxudW1iZXI+O1xuXG4gICAgYWJzdHJhY3QgZnJlZXplQ29sdW1uc1RvOiBzdHJpbmc7XG5cbiAgICBhYnN0cmFjdCBmcmVlemVFbmRDb2x1bW5zVG86IHN0cmluZztcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gY3VycmVudCBwcmVzZXQgY29uZmlndXJhdGlvbiBoYXMgYmVlbiBjaGFuZ2VkLiAqL1xuICAgIGFic3RyYWN0IHByZXNldENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxQbGF0Zm9ybVRhYmxlTWFuYWdlZFByZXNldD47XG5cbiAgICAvKiogU3VtIG9mIHdpZHRocyBvZiBmaXhlZCBjb2x1bW5zIChzZW1hbnRpYyBoaWdobGlnaHRpbmcsIHNlbGVjdGlvbikgKi9cbiAgICBhYnN0cmFjdCBnZXQgX2ZpeGVkQ29sdW1uc1BhZGRpbmcoKTogbnVtYmVyO1xuXG4gICAgLyoqIEZyZWV6YWJsZSBjb2x1bW4gbmFtZXMgYW5kIHRoZWlyIHJlc3BlY3RpdmUgaW5kZXhlcyAqL1xuICAgIGFic3RyYWN0IGdldCBfZnJlZXphYmxlQ29sdW1ucygpOiBSZWFkb25seU1hcDxzdHJpbmcsIG51bWJlcj47XG5cbiAgICAvKiogV2lkdGggb2YgdGhlIHRhYmxlIGVsZW1lbnQgaW4gcHggKi9cbiAgICBhYnN0cmFjdCBnZXQgX3RhYmxlV2lkdGhQeCgpOiBudW1iZXI7XG5cbiAgICBhYnN0cmFjdCBnZXQgbG9hZGluZ1N0YXRlKCk6IGJvb2xlYW47XG5cbiAgICBhYnN0cmFjdCBpbml0aWFsU3RhdGU6IFRhYmxlSW5pdGlhbFN0YXRlIHwgbnVsbDtcblxuICAgIC8qKiBUYWJsZSBjb2x1bW5zIGRlZmluaXRpb24gbGlzdCAqL1xuICAgIGFic3RyYWN0IHJlYWRvbmx5IHRhYmxlQ29sdW1uc1N0cmVhbTogT2JzZXJ2YWJsZTxUYWJsZUNvbHVtbltdPjtcblxuICAgIGFic3RyYWN0IHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcjtcblxuICAgIGFic3RyYWN0IHJlYWRvbmx5IHRhYmxlQ29udGFpbmVyOiBFbGVtZW50UmVmO1xuXG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgdGFibGVTY3JvbGxhYmxlOiBUYWJsZVNjcm9sbGFibGU7XG5cbiAgICBhYnN0cmFjdCBfdGFibGVSb3dzVmlzaWJsZTogVGFibGVSb3c8VD5bXTtcblxuICAgIGFic3RyYWN0IF90YWJsZVJvd3M6IFRhYmxlUm93PFQ+W107XG5cbiAgICBhYnN0cmFjdCBfdGFibGVSb3dzSW5WaWV3UG9ydFBsYWNlaG9sZGVyOiBudW1iZXJbXTtcblxuICAgIC8qKiBHZXQgdGFibGUgc3RhdGUgKi9cbiAgICBhYnN0cmFjdCBnZXRUYWJsZVN0YXRlKCk6IFRhYmxlU3RhdGU7XG5cbiAgICAvKiogU2V0IHRhYmxlIHN0YXRlICovXG4gICAgYWJzdHJhY3Qgc2V0VGFibGVTdGF0ZSh0YWJsZVN0YXRlOiBUYWJsZVN0YXRlKTogdm9pZDtcblxuICAgIC8qKiBHZXQgdGFibGUgY29sdW1ucyBkZWZpbml0aW9uIGxpc3QgKi9cbiAgICBhYnN0cmFjdCBnZXRUYWJsZUNvbHVtbnMoKTogVGFibGVDb2x1bW5bXTtcblxuICAgIC8qKiBHZXQgYSBsaXN0IG9mIHZpc2libGUgdGFibGUgY29sdW1ucy4gKi9cbiAgICBhYnN0cmFjdCBnZXRWaXNpYmxlVGFibGVDb2x1bW5zKCk6IFRhYmxlQ29sdW1uW107XG5cbiAgICAvKiogU2V0IFNvcnRpbmcgcnVsZXMgKi9cbiAgICBhYnN0cmFjdCBzb3J0KHNvcnRSdWxlczogQ29sbGVjdGlvblNvcnRbXSk6IHZvaWQ7XG5cbiAgICAvKiogQWRkIFNvcnRpbmcgcnVsZXMgdG8gdGhlIGV4aXN0aW5nIG9uZXMgKi9cbiAgICBhYnN0cmFjdCBhZGRTb3J0KHNvcnRSdWxlczogQ29sbGVjdGlvblNvcnRbXSk6IHZvaWQ7XG5cbiAgICAvKiogU2V0IEZpbHRlcmluZyBydWxlcyAqL1xuICAgIGFic3RyYWN0IGZpbHRlcihmaWx0ZXJSdWxlczogQ29sbGVjdGlvbkZpbHRlcltdKTogdm9pZDtcblxuICAgIC8qKiBBZGQgRmlsdGVyIHJ1bGVzIHRvIHRoZSBleGlzdGluZyBvbmVzICovXG4gICAgYWJzdHJhY3QgYWRkRmlsdGVyKGZpbHRlclJ1bGVzOiBDb2xsZWN0aW9uRmlsdGVyW10pOiB2b2lkO1xuXG4gICAgLyoqIFNldCBncm91cGluZyBydWxlcyAqL1xuICAgIGFic3RyYWN0IGdyb3VwKGdyb3VwUnVsZXM6IENvbGxlY3Rpb25Hcm91cFtdKTogdm9pZDtcblxuICAgIC8qKiBBZGQgR3JvdXAgcnVsZXMgdG8gdGhlIGV4aXN0aW5nIG9uZXMgKi9cbiAgICBhYnN0cmFjdCBhZGRHcm91cChncm91cFJ1bGVzOiBDb2xsZWN0aW9uR3JvdXBbXSk6IHZvaWQ7XG5cbiAgICAvKiogU2V0IHRhYmxlIGNvbHVtbnMgKi9cbiAgICBhYnN0cmFjdCBzZXRDb2x1bW5zKGNvbHVtbnM6IHN0cmluZ1tdKTogdm9pZDtcblxuICAgIC8qKiBUb2dnbGUgcm93IGNoZWNrZWQgc3RhdGUuICovXG4gICAgYWJzdHJhY3QgdG9nZ2xlU2VsZWN0YWJsZVJvdyhyb3dJbmRleDogbnVtYmVyKTogdm9pZDtcblxuICAgIC8qKiBGcmVlemUgdGFibGUgY29sdW1ucyB0byBpbmNsdWRpbmcgKi9cbiAgICBhYnN0cmFjdCBmcmVlemVUb0NvbHVtbihjb2x1bW5LZXk6IHN0cmluZywgZW5kPzogYm9vbGVhbik6IHZvaWQ7XG5cbiAgICAvKiogVW5mcmVlemUgY29sdW1uICovXG4gICAgYWJzdHJhY3QgdW5mcmVlemUoY29sdW1uS2V5OiBzdHJpbmcsIGVuZD86IGJvb2xlYW4pOiB2b2lkO1xuXG4gICAgLyoqIFNlYXJjaCBpbiBhbGwgdGFibGUgY29sdW1ucyAqL1xuICAgIGFic3RyYWN0IHNlYXJjaChzZWFyY2hJbnB1dDogU2VhcmNoSW5wdXQpOiB2b2lkO1xuXG4gICAgLyoqIFRvb2xiYXIgU29ydCBTZXR0aW5ncyBidXR0b24gdmlzaWJpbGl0eSAqL1xuICAgIGFic3RyYWN0IHNob3dTb3J0U2V0dGluZ3NJblRvb2xiYXIoc2hvd1NvcnRTZXR0aW5nczogYm9vbGVhbik6IHZvaWQ7XG5cbiAgICAvKiogVG9vbGJhciBGaWx0ZXIgU2V0dGluZ3MgYnV0dG9uIHZpc2liaWxpdHkgKi9cbiAgICBhYnN0cmFjdCBzaG93RmlsdGVyU2V0dGluZ3NJblRvb2xiYXIoc2hvd0ZpbHRlclNldHRpbmdzOiBib29sZWFuKTogdm9pZDtcblxuICAgIC8qKiBUb29sYmFyIEdyb3VwIFNldHRpbmdzIGJ1dHRvbiB2aXNpYmlsaXR5ICovXG4gICAgYWJzdHJhY3Qgc2hvd0dyb3VwU2V0dGluZ3NJblRvb2xiYXIoc2hvd0dyb3VwU2V0dGluZ3M6IGJvb2xlYW4pOiB2b2lkO1xuXG4gICAgLyoqIFRvb2xiYXIgQ29sdW1ucyBTZXR0aW5ncyBidXR0b24gdmlzaWJpbGl0eSAqL1xuICAgIGFic3RyYWN0IHNob3dDb2x1bW5TZXR0aW5nc0luVG9vbGJhcihzaG93Q29sdW1uU2V0dGluZ3M6IGJvb2xlYW4pOiB2b2lkO1xuXG4gICAgLyoqIERpc2FibGUgZmlsdGVyaW5nIGJ5IGhlYWRlciBjb2x1bW4gbWVudSAqL1xuICAgIGFic3RyYWN0IHNldEhlYWRlckNvbHVtbkZpbHRlcmluZ0Rpc2FibGVkKGRpc2FibGVkOiBib29sZWFuKTogdm9pZDtcblxuICAgIC8qKiBTZXQgY3VycmVudCBwYWdlICovXG4gICAgYWJzdHJhY3Qgc2V0Q3VycmVudFBhZ2UoY3VycmVudFBhZ2U6IG51bWJlcik6IHZvaWQ7XG5cbiAgICAvKiogR2V0cyB0aGUgbWF4IGFsbG93ZWQgd2lkdGggZm9yIGFsbCBmcmVlemFibGUgY29sdW1ucyAqL1xuICAgIGFic3RyYWN0IGdldE1heEFsbG93ZWRGcmVlemFibGVDb2x1bW5zV2lkdGgoKTogbnVtYmVyO1xuXG4gICAgLyoqIEdldCB0YWJsZSBkYXRhIHNvdXJjZSAqL1xuICAgIGFic3RyYWN0IGdldERhdGFTb3VyY2UoKTogVGFibGVEYXRhU291cmNlPFQ+O1xuXG4gICAgLyoqIE1hbnVhbGx5IHRyaWdnZXJzIGNvbHVtbnMgd2lkdGggcmVjYWxjdWxhdGlvbiAqL1xuICAgIGFic3RyYWN0IHJlY2FsY3VsYXRlVGFibGVDb2x1bW5XaWR0aCgpOiB2b2lkO1xuXG4gICAgLyoqIEZldGNoIGRhdGEgc291cmNlIGRhdGEuICovXG4gICAgYWJzdHJhY3QgZmV0Y2goKTogdm9pZDtcblxuICAgIC8qKiBBZGRzIGVtcHR5IHJvdyBmb3IgZWRpdGluZyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSByb3dzIGFycmF5LiAqL1xuICAgIGFic3RyYWN0IGFkZFJvdygpOiB2b2lkO1xuXG4gICAgLyoqIEVtaXRzIHNhdmUgZXZlbnQgYW5kIHJlc2V0cyBlZGl0YWJsZSByb3dzIGFycmF5LiAqL1xuICAgIGFic3RyYWN0IHNhdmVSb3dzKCk6IHZvaWQ7XG5cbiAgICAvKiogQ2FuY2VscyBlZGl0aW5nIGFuZCBkaXNjYXJkcyBuZXdseSBhZGRlZCByb3dzICovXG4gICAgYWJzdHJhY3QgY2FuY2VsRWRpdGluZygpOiB2b2lkO1xuXG4gICAgLyoqIEV4cGFuZCBhbGwgdGhlIHJvd3Mgb2YgdGhlIHRhYmxlICovXG4gICAgYWJzdHJhY3QgZXhwYW5kQWxsKCk6IHZvaWQ7XG5cbiAgICAvKiogQ29sbGFwc2UgYWxsIHRoZSByb3dzIG9mIHRoZSB0YWJsZSAqL1xuICAgIGFic3RyYWN0IGNvbGxhcHNlQWxsKCk6IHZvaWQ7XG5cbiAgICAvKiogU2V0cyBzZWxlY3RlZCBwcmVzZXQuICovXG4gICAgYWJzdHJhY3Qgc2V0UHJlc2V0KGRhdGE6IFBsYXRmb3JtVGFibGVNYW5hZ2VkUHJlc2V0KTogdm9pZDtcblxuICAgIC8qKiBSZXR1cm5zIGN1cnJlbnQgcHJlc2V0LiAqL1xuICAgIGFic3RyYWN0IGdldEN1cnJlbnRQcmVzZXQoKTogUGxhdGZvcm1UYWJsZU1hbmFnZWRQcmVzZXQ7XG5cbiAgICBhYnN0cmFjdCBnZXRSb3dzSW5WaWV3cG9ydCgpOiBudW1iZXJbXTtcblxuICAgIGFic3RyYWN0IHNldFJvd3NJblZpZXdwb3J0KHN0YXJ0SW5kZXg6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpOiB2b2lkO1xuXG4gICAgYWJzdHJhY3QgdG9nZ2xlRXhwYW5kYWJsZVRhYmxlUm93KHJvdzogVGFibGVSb3c8VD4sIGZvcmNlRmV0Y2g/OiBib29sZWFuKTtcblxuICAgIGFic3RyYWN0IG9uVGFibGVSb3dzQ2hhbmdlZCgpOiB2b2lkO1xuXG4gICAgYWJzdHJhY3QgcmVmcmVzaERuZExpc3QoKTogdm9pZDtcblxuICAgIC8qKiBUb29sYmFyIFNvcnQgU2V0dGluZ3MgYnV0dG9uIGNsaWNrIGV2ZW50ICovXG4gICAgcmVhZG9ubHkgb3BlblRhYmxlU29ydFNldHRpbmdzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogVG9vbGJhciBGaWx0ZXIgU2V0dGluZ3MgYnV0dG9uIGNsaWNrIGV2ZW50ICovXG4gICAgcmVhZG9ubHkgb3BlblRhYmxlRmlsdGVyU2V0dGluZ3M6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBUb29sYmFyIEdyb3VwIFNldHRpbmdzIGJ1dHRvbiBjbGljayBldmVudCAqL1xuICAgIHJlYWRvbmx5IG9wZW5UYWJsZUdyb3VwU2V0dGluZ3M6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBUb29sYmFyIENvbHVtbiBTZXR0aW5ncyBidXR0b24gY2xpY2sgZXZlbnQgKi9cbiAgICByZWFkb25seSBvcGVuVGFibGVDb2x1bW5TZXR0aW5nczogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIEV2ZW50IGZpcmVkIHdoZW4gZW1wdHkgcm93IGFkZGVkLiAqL1xuICAgIHJlYWRvbmx5IGVtcHR5Um93QWRkZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPjtcblxuICAgIC8qKiBFdmVudCBmaXJlZCB3aGVuIHNhdmUgYnV0dG9uIHByZXNzZWQuICovXG4gICAgcmVhZG9ubHkgc2F2ZTogRXZlbnRFbWl0dGVyPFNhdmVSb3dzRXZlbnQ8VD4+O1xuXG4gICAgLyoqIEV2ZW50IGZpcmVkIHdoZW4gY2FuY2VsIGJ1dHRvbiBwcmVzc2VkLiAqL1xuICAgIHJlYWRvbmx5IGNhbmNlbDogRXZlbnRFbWl0dGVyPHZvaWQ+O1xufVxuIl19
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUtaGVscGVycy90YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsWUFBWSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBZW5FLE1BQU0sT0FBZ0IsS0FBSztJQUEzQjtRQTZKSSwrQ0FBK0M7UUFDdEMsMEJBQXFCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFOUUsaURBQWlEO1FBQ3hDLDRCQUF1QixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRWhGLGdEQUFnRDtRQUN2QywyQkFBc0IsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUUvRSxpREFBaUQ7UUFDeEMsNEJBQXVCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7SUFVcEYsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VhcmNoSW5wdXQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3NlYXJjaC1maWVsZCc7XG5pbXBvcnQgeyBQcmVzZXRNYW5hZ2VkQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJy4vZG9tYWluJztcbmltcG9ydCB7IENvbGxlY3Rpb25GaWx0ZXIgfSBmcm9tICcuL2ludGVyZmFjZXMvY29sbGVjdGlvbi1maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbGxlY3Rpb25Hcm91cCB9IGZyb20gJy4vaW50ZXJmYWNlcy9jb2xsZWN0aW9uLWdyb3VwLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uU29ydCB9IGZyb20gJy4vaW50ZXJmYWNlcy9jb2xsZWN0aW9uLXNvcnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRhYmxlU3RhdGUgfSBmcm9tICcuL2ludGVyZmFjZXMvdGFibGUtc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBsYXRmb3JtVGFibGVNYW5hZ2VkUHJlc2V0LCBTYXZlUm93c0V2ZW50LCBUYWJsZUluaXRpYWxTdGF0ZSwgVGFibGVSb3cgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBUYWJsZVNjcm9sbGFibGUgfSBmcm9tICcuL3NlcnZpY2VzL3RhYmxlLXNjcm9sbC1kaXNwYXRjaGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tICcuL3RhYmxlLWNvbHVtbic7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUYWJsZTxUID0gYW55PiBpbXBsZW1lbnRzIFByZXNldE1hbmFnZWRDb21wb25lbnQ8UGxhdGZvcm1UYWJsZU1hbmFnZWRQcmVzZXQ+IHtcbiAgICBhYnN0cmFjdCByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgICBhYnN0cmFjdCByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gICAgYWJzdHJhY3QgX2xvYWRQcmV2aW91c1BhZ2VzOiBib29sZWFuO1xuXG4gICAgYWJzdHJhY3QgcGFnZVNjcm9sbGluZzogYm9vbGVhbjtcblxuICAgIGFic3RyYWN0IGxvYWRQYWdlc0JlZm9yZTogYm9vbGVhbjtcblxuICAgIGFic3RyYWN0IHBhZ2VTaXplOiBOdWxsYWJsZTxudW1iZXI+O1xuXG4gICAgYWJzdHJhY3QgZnJlZXplQ29sdW1uc1RvOiBzdHJpbmc7XG5cbiAgICBhYnN0cmFjdCBmcmVlemVFbmRDb2x1bW5zVG86IHN0cmluZztcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gY3VycmVudCBwcmVzZXQgY29uZmlndXJhdGlvbiBoYXMgYmVlbiBjaGFuZ2VkLiAqL1xuICAgIGFic3RyYWN0IHByZXNldENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxQbGF0Zm9ybVRhYmxlTWFuYWdlZFByZXNldD47XG5cbiAgICAvKiogU3VtIG9mIHdpZHRocyBvZiBmaXhlZCBjb2x1bW5zIChzZW1hbnRpYyBoaWdobGlnaHRpbmcsIHNlbGVjdGlvbikgKi9cbiAgICBhYnN0cmFjdCBnZXQgX2ZpeGVkQ29sdW1uc1BhZGRpbmcoKTogbnVtYmVyO1xuXG4gICAgLyoqIEZyZWV6YWJsZSBjb2x1bW4gbmFtZXMgYW5kIHRoZWlyIHJlc3BlY3RpdmUgaW5kZXhlcyAqL1xuICAgIGFic3RyYWN0IGdldCBfZnJlZXphYmxlQ29sdW1ucygpOiBSZWFkb25seU1hcDxzdHJpbmcsIG51bWJlcj47XG5cbiAgICAvKiogRnJlZXphYmxlIGNvbHVtbiBuYW1lcyBhbmQgdGhlaXIgcmVzcGVjdGl2ZSBpbmRleGVzICovXG4gICAgYWJzdHJhY3QgZ2V0IF9mcmVlemFibGVFbmRDb2x1bW5zKCk6IFJlYWRvbmx5TWFwPHN0cmluZywgbnVtYmVyPjtcblxuICAgIC8qKiBXaWR0aCBvZiB0aGUgdGFibGUgZWxlbWVudCBpbiBweCAqL1xuICAgIGFic3RyYWN0IGdldCBfdGFibGVXaWR0aFB4KCk6IG51bWJlcjtcblxuICAgIGFic3RyYWN0IGdldCBsb2FkaW5nU3RhdGUoKTogYm9vbGVhbjtcblxuICAgIGFic3RyYWN0IGluaXRpYWxTdGF0ZTogVGFibGVJbml0aWFsU3RhdGUgfCBudWxsO1xuXG4gICAgLyoqIFRhYmxlIGNvbHVtbnMgZGVmaW5pdGlvbiBsaXN0ICovXG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgdGFibGVDb2x1bW5zU3RyZWFtOiBPYnNlcnZhYmxlPFRhYmxlQ29sdW1uW10+O1xuXG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yO1xuXG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgdGFibGVDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBhYnN0cmFjdCByZWFkb25seSB0YWJsZVNjcm9sbGFibGU6IFRhYmxlU2Nyb2xsYWJsZTtcblxuICAgIGFic3RyYWN0IF90YWJsZVJvd3NWaXNpYmxlOiBUYWJsZVJvdzxUPltdO1xuXG4gICAgYWJzdHJhY3QgX3RhYmxlUm93czogVGFibGVSb3c8VD5bXTtcblxuICAgIGFic3RyYWN0IF90YWJsZVJvd3NJblZpZXdQb3J0UGxhY2Vob2xkZXI6IG51bWJlcltdO1xuXG4gICAgLyoqIEdldCB0YWJsZSBzdGF0ZSAqL1xuICAgIGFic3RyYWN0IGdldFRhYmxlU3RhdGUoKTogVGFibGVTdGF0ZTtcblxuICAgIC8qKiBTZXQgdGFibGUgc3RhdGUgKi9cbiAgICBhYnN0cmFjdCBzZXRUYWJsZVN0YXRlKHRhYmxlU3RhdGU6IFRhYmxlU3RhdGUpOiB2b2lkO1xuXG4gICAgLyoqIEdldCB0YWJsZSBjb2x1bW5zIGRlZmluaXRpb24gbGlzdCAqL1xuICAgIGFic3RyYWN0IGdldFRhYmxlQ29sdW1ucygpOiBUYWJsZUNvbHVtbltdO1xuXG4gICAgLyoqIEdldCBhIGxpc3Qgb2YgdmlzaWJsZSB0YWJsZSBjb2x1bW5zLiAqL1xuICAgIGFic3RyYWN0IGdldFZpc2libGVUYWJsZUNvbHVtbnMoKTogVGFibGVDb2x1bW5bXTtcblxuICAgIC8qKiBTZXQgU29ydGluZyBydWxlcyAqL1xuICAgIGFic3RyYWN0IHNvcnQoc29ydFJ1bGVzOiBDb2xsZWN0aW9uU29ydFtdKTogdm9pZDtcblxuICAgIC8qKiBBZGQgU29ydGluZyBydWxlcyB0byB0aGUgZXhpc3Rpbmcgb25lcyAqL1xuICAgIGFic3RyYWN0IGFkZFNvcnQoc29ydFJ1bGVzOiBDb2xsZWN0aW9uU29ydFtdKTogdm9pZDtcblxuICAgIC8qKiBTZXQgRmlsdGVyaW5nIHJ1bGVzICovXG4gICAgYWJzdHJhY3QgZmlsdGVyKGZpbHRlclJ1bGVzOiBDb2xsZWN0aW9uRmlsdGVyW10pOiB2b2lkO1xuXG4gICAgLyoqIEFkZCBGaWx0ZXIgcnVsZXMgdG8gdGhlIGV4aXN0aW5nIG9uZXMgKi9cbiAgICBhYnN0cmFjdCBhZGRGaWx0ZXIoZmlsdGVyUnVsZXM6IENvbGxlY3Rpb25GaWx0ZXJbXSk6IHZvaWQ7XG5cbiAgICAvKiogU2V0IGdyb3VwaW5nIHJ1bGVzICovXG4gICAgYWJzdHJhY3QgZ3JvdXAoZ3JvdXBSdWxlczogQ29sbGVjdGlvbkdyb3VwW10pOiB2b2lkO1xuXG4gICAgLyoqIEFkZCBHcm91cCBydWxlcyB0byB0aGUgZXhpc3Rpbmcgb25lcyAqL1xuICAgIGFic3RyYWN0IGFkZEdyb3VwKGdyb3VwUnVsZXM6IENvbGxlY3Rpb25Hcm91cFtdKTogdm9pZDtcblxuICAgIC8qKiBTZXQgdGFibGUgY29sdW1ucyAqL1xuICAgIGFic3RyYWN0IHNldENvbHVtbnMoY29sdW1uczogc3RyaW5nW10pOiB2b2lkO1xuXG4gICAgLyoqIFRvZ2dsZSByb3cgY2hlY2tlZCBzdGF0ZS4gKi9cbiAgICBhYnN0cmFjdCB0b2dnbGVTZWxlY3RhYmxlUm93KHJvd0luZGV4OiBudW1iZXIpOiB2b2lkO1xuXG4gICAgLyoqIEZyZWV6ZSB0YWJsZSBjb2x1bW5zIHRvIGluY2x1ZGluZyAqL1xuICAgIGFic3RyYWN0IGZyZWV6ZVRvQ29sdW1uKGNvbHVtbktleTogc3RyaW5nLCBlbmQ/OiBib29sZWFuKTogdm9pZDtcblxuICAgIC8qKiBVbmZyZWV6ZSBjb2x1bW4gKi9cbiAgICBhYnN0cmFjdCB1bmZyZWV6ZShjb2x1bW5LZXk6IHN0cmluZywgZW5kPzogYm9vbGVhbik6IHZvaWQ7XG5cbiAgICAvKiogU2VhcmNoIGluIGFsbCB0YWJsZSBjb2x1bW5zICovXG4gICAgYWJzdHJhY3Qgc2VhcmNoKHNlYXJjaElucHV0OiBTZWFyY2hJbnB1dCk6IHZvaWQ7XG5cbiAgICAvKiogVG9vbGJhciBTb3J0IFNldHRpbmdzIGJ1dHRvbiB2aXNpYmlsaXR5ICovXG4gICAgYWJzdHJhY3Qgc2hvd1NvcnRTZXR0aW5nc0luVG9vbGJhcihzaG93U29ydFNldHRpbmdzOiBib29sZWFuKTogdm9pZDtcblxuICAgIC8qKiBUb29sYmFyIEZpbHRlciBTZXR0aW5ncyBidXR0b24gdmlzaWJpbGl0eSAqL1xuICAgIGFic3RyYWN0IHNob3dGaWx0ZXJTZXR0aW5nc0luVG9vbGJhcihzaG93RmlsdGVyU2V0dGluZ3M6IGJvb2xlYW4pOiB2b2lkO1xuXG4gICAgLyoqIFRvb2xiYXIgR3JvdXAgU2V0dGluZ3MgYnV0dG9uIHZpc2liaWxpdHkgKi9cbiAgICBhYnN0cmFjdCBzaG93R3JvdXBTZXR0aW5nc0luVG9vbGJhcihzaG93R3JvdXBTZXR0aW5nczogYm9vbGVhbik6IHZvaWQ7XG5cbiAgICAvKiogVG9vbGJhciBDb2x1bW5zIFNldHRpbmdzIGJ1dHRvbiB2aXNpYmlsaXR5ICovXG4gICAgYWJzdHJhY3Qgc2hvd0NvbHVtblNldHRpbmdzSW5Ub29sYmFyKHNob3dDb2x1bW5TZXR0aW5nczogYm9vbGVhbik6IHZvaWQ7XG5cbiAgICAvKiogRGlzYWJsZSBmaWx0ZXJpbmcgYnkgaGVhZGVyIGNvbHVtbiBtZW51ICovXG4gICAgYWJzdHJhY3Qgc2V0SGVhZGVyQ29sdW1uRmlsdGVyaW5nRGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkO1xuXG4gICAgLyoqIFNldCBjdXJyZW50IHBhZ2UgKi9cbiAgICBhYnN0cmFjdCBzZXRDdXJyZW50UGFnZShjdXJyZW50UGFnZTogbnVtYmVyKTogdm9pZDtcblxuICAgIC8qKiBHZXRzIHRoZSBtYXggYWxsb3dlZCB3aWR0aCBmb3IgYWxsIGZyZWV6YWJsZSBjb2x1bW5zICovXG4gICAgYWJzdHJhY3QgZ2V0TWF4QWxsb3dlZEZyZWV6YWJsZUNvbHVtbnNXaWR0aCgpOiBudW1iZXI7XG5cbiAgICAvKiogR2V0IHRhYmxlIGRhdGEgc291cmNlICovXG4gICAgYWJzdHJhY3QgZ2V0RGF0YVNvdXJjZSgpOiBUYWJsZURhdGFTb3VyY2U8VD47XG5cbiAgICAvKiogTWFudWFsbHkgdHJpZ2dlcnMgY29sdW1ucyB3aWR0aCByZWNhbGN1bGF0aW9uICovXG4gICAgYWJzdHJhY3QgcmVjYWxjdWxhdGVUYWJsZUNvbHVtbldpZHRoKCk6IHZvaWQ7XG5cbiAgICAvKiogRmV0Y2ggZGF0YSBzb3VyY2UgZGF0YS4gKi9cbiAgICBhYnN0cmFjdCBmZXRjaCgpOiB2b2lkO1xuXG4gICAgLyoqIEFkZHMgZW1wdHkgcm93IGZvciBlZGl0aW5nIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHJvd3MgYXJyYXkuICovXG4gICAgYWJzdHJhY3QgYWRkUm93KCk6IHZvaWQ7XG5cbiAgICAvKiogRW1pdHMgc2F2ZSBldmVudCBhbmQgcmVzZXRzIGVkaXRhYmxlIHJvd3MgYXJyYXkuICovXG4gICAgYWJzdHJhY3Qgc2F2ZVJvd3MoKTogdm9pZDtcblxuICAgIC8qKiBDYW5jZWxzIGVkaXRpbmcgYW5kIGRpc2NhcmRzIG5ld2x5IGFkZGVkIHJvd3MgKi9cbiAgICBhYnN0cmFjdCBjYW5jZWxFZGl0aW5nKCk6IHZvaWQ7XG5cbiAgICAvKiogRXhwYW5kIGFsbCB0aGUgcm93cyBvZiB0aGUgdGFibGUgKi9cbiAgICBhYnN0cmFjdCBleHBhbmRBbGwoKTogdm9pZDtcblxuICAgIC8qKiBDb2xsYXBzZSBhbGwgdGhlIHJvd3Mgb2YgdGhlIHRhYmxlICovXG4gICAgYWJzdHJhY3QgY29sbGFwc2VBbGwoKTogdm9pZDtcblxuICAgIC8qKiBTZXRzIHNlbGVjdGVkIHByZXNldC4gKi9cbiAgICBhYnN0cmFjdCBzZXRQcmVzZXQoZGF0YTogUGxhdGZvcm1UYWJsZU1hbmFnZWRQcmVzZXQpOiB2b2lkO1xuXG4gICAgLyoqIFJldHVybnMgY3VycmVudCBwcmVzZXQuICovXG4gICAgYWJzdHJhY3QgZ2V0Q3VycmVudFByZXNldCgpOiBQbGF0Zm9ybVRhYmxlTWFuYWdlZFByZXNldDtcblxuICAgIGFic3RyYWN0IGdldFJvd3NJblZpZXdwb3J0KCk6IG51bWJlcltdO1xuXG4gICAgYWJzdHJhY3Qgc2V0Um93c0luVmlld3BvcnQoc3RhcnRJbmRleDogbnVtYmVyLCBsZW5ndGg6IG51bWJlcik6IHZvaWQ7XG5cbiAgICBhYnN0cmFjdCB0b2dnbGVFeHBhbmRhYmxlVGFibGVSb3cocm93OiBUYWJsZVJvdzxUPiwgZm9yY2VGZXRjaD86IGJvb2xlYW4pO1xuXG4gICAgYWJzdHJhY3Qgb25UYWJsZVJvd3NDaGFuZ2VkKCk6IHZvaWQ7XG5cbiAgICBhYnN0cmFjdCByZWZyZXNoRG5kTGlzdCgpOiB2b2lkO1xuXG4gICAgLyoqIFRvb2xiYXIgU29ydCBTZXR0aW5ncyBidXR0b24gY2xpY2sgZXZlbnQgKi9cbiAgICByZWFkb25seSBvcGVuVGFibGVTb3J0U2V0dGluZ3M6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBUb29sYmFyIEZpbHRlciBTZXR0aW5ncyBidXR0b24gY2xpY2sgZXZlbnQgKi9cbiAgICByZWFkb25seSBvcGVuVGFibGVGaWx0ZXJTZXR0aW5nczogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIFRvb2xiYXIgR3JvdXAgU2V0dGluZ3MgYnV0dG9uIGNsaWNrIGV2ZW50ICovXG4gICAgcmVhZG9ubHkgb3BlblRhYmxlR3JvdXBTZXR0aW5nczogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIFRvb2xiYXIgQ29sdW1uIFNldHRpbmdzIGJ1dHRvbiBjbGljayBldmVudCAqL1xuICAgIHJlYWRvbmx5IG9wZW5UYWJsZUNvbHVtblNldHRpbmdzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRXZlbnQgZmlyZWQgd2hlbiBlbXB0eSByb3cgYWRkZWQuICovXG4gICAgcmVhZG9ubHkgZW1wdHlSb3dBZGRlZDogRXZlbnRFbWl0dGVyPHZvaWQ+O1xuXG4gICAgLyoqIEV2ZW50IGZpcmVkIHdoZW4gc2F2ZSBidXR0b24gcHJlc3NlZC4gKi9cbiAgICByZWFkb25seSBzYXZlOiBFdmVudEVtaXR0ZXI8U2F2ZVJvd3NFdmVudDxUPj47XG5cbiAgICAvKiogRXZlbnQgZmlyZWQgd2hlbiBjYW5jZWwgYnV0dG9uIHByZXNzZWQuICovXG4gICAgcmVhZG9ubHkgY2FuY2VsOiBFdmVudEVtaXR0ZXI8dm9pZD47XG59XG4iXX0=
@@ -2742,14 +2742,23 @@ class TableColumnResizeService {
2742
2742
  }
2743
2743
  }
2744
2744
  }
2745
- if (diffX > 0 && this._tableRef._freezableColumns.has(this._resizedColumn)) {
2746
- const freezeToNextColumnName = this._visibleColumnNames[this._tableRef._freezableColumns.size];
2747
- const actualWidth = this.getPrevColumnsWidth(freezeToNextColumnName);
2745
+ /**
2746
+ * In case "_resizedColumn" is freezable, make sure the overall width of freezable columns does not exceed the width of the table.
2747
+ * If it does, columns will be made unfrozen.
2748
+ */
2749
+ if (diffX > 0 &&
2750
+ (this._tableRef._freezableColumns.has(this._resizedColumn) ||
2751
+ this._tableRef._freezableEndColumns?.has(this._resizedColumn))) {
2752
+ let actualWidth = this.getPrevColumnsWidth(this._resizedColumn) + columnWidth;
2753
+ if (this._tableRef._freezableEndColumns?.has(this._resizedColumn)) {
2754
+ actualWidth = this.getNextColumnsWidth(this._resizedColumn) + columnWidth;
2755
+ }
2748
2756
  const newWidth = actualWidth + diffX;
2749
2757
  const maxWidth = this._tableRef.getMaxAllowedFreezableColumnsWidth();
2750
- // in case "_resizedColumn" is freezable, make sure the overall width of freezable columns does not exceed the width of the table
2751
2758
  if (newWidth >= maxWidth) {
2752
- diffX = maxWidth - actualWidth;
2759
+ this._tableRef._freezableColumns.forEach((column) => {
2760
+ this._tableRef.unfreeze(column.toString());
2761
+ });
2753
2762
  }
2754
2763
  }
2755
2764
  const updatedWidth = columnWidth + diffX;