igniteui-angular 12.3.27 → 12.3.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/bundles/igniteui-angular.umd.js +146 -148
  2. package/bundles/igniteui-angular.umd.js.map +1 -1
  3. package/esm2015/lib/grids/api.service.js +2 -2
  4. package/esm2015/lib/grids/columns/column.component.js +5 -5
  5. package/esm2015/lib/grids/grid/grid.component.js +11 -11
  6. package/esm2015/lib/grids/grid-base.directive.js +72 -76
  7. package/esm2015/lib/grids/grid-mrl-navigation.service.js +2 -2
  8. package/esm2015/lib/grids/grid-public-row.js +3 -3
  9. package/esm2015/lib/grids/grouping/group-by-area.directive.js +1 -1
  10. package/esm2015/lib/grids/grouping/tree-grid-group-by-area.component.js +6 -6
  11. package/esm2015/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.js +4 -5
  12. package/esm2015/lib/grids/hierarchical-grid/hierarchical-grid.component.js +23 -14
  13. package/esm2015/lib/grids/hierarchical-grid/row-island.component.js +7 -11
  14. package/esm2015/lib/grids/state.directive.js +12 -9
  15. package/esm2015/lib/grids/summaries/grid-summary.service.js +5 -5
  16. package/esm2015/lib/grids/tree-grid/tree-grid.component.js +7 -7
  17. package/esm2015/lib/services/exporter-common/base-export-service.js +3 -3
  18. package/fesm2015/igniteui-angular.js +148 -144
  19. package/fesm2015/igniteui-angular.js.map +1 -1
  20. package/igniteui-angular.metadata.json +1 -1
  21. package/lib/grids/grid-base.directive.d.ts +9 -13
  22. package/lib/grids/hierarchical-grid/hierarchical-grid.component.d.ts +2 -1
  23. package/lib/grids/hierarchical-grid/row-island.component.d.ts +1 -0
  24. package/lib/grids/tree-grid/tree-grid.component.d.ts +2 -2
  25. package/package.json +1 -1
@@ -143,4 +143,4 @@ export class IgxGroupByMetaPipe {
143
143
  IgxGroupByMetaPipe.decorators = [
144
144
  { type: Pipe, args: [{ name: 'igxGroupByMeta' },] }
145
145
  ];
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtYnktYXJlYS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvZ3JvdXBpbmcvZ3JvdXAtYnktYXJlYS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBQ0wsTUFBTSxFQUNOLElBQUksRUFJSixZQUFZLEVBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUE4QixnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFHdEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFL0U7Ozs7R0FJRztBQUVILE1BQU0sT0FBZ0IsdUJBQXVCO0lBd0V6QyxZQUFvQixHQUE0QixFQUFZLFFBQXNCO1FBQTlELFFBQUcsR0FBSCxHQUFHLENBQXlCO1FBQVksYUFBUSxHQUFSLFFBQVEsQ0FBYztRQS9EM0UsWUFBTyxHQUFtQixjQUFjLENBQUMsV0FBVyxDQUFDO1FBR3JELGlCQUFZLEdBQUksSUFBSSxDQUFDO1FBNkNyQixzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBeUIsQ0FBQztRQVk3RCxpQkFBWSxHQUEwQixFQUFFLENBQUM7SUFHcUMsQ0FBQztJQTFEdkYsSUFDVyxTQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxNQUFNLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQ1csWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxPQUFP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MEJBQTBCO3dCQUd0QyxXQUFXLFNBQUMsZ0NBQWdDOzJCQUs1QyxXQUFXLFNBQUMsbUNBQW1DO21CQU0vQyxLQUFLOzBCQU1MLEtBQUs7OEJBZ0JMLEtBQUs7Z0NBU0wsTUFBTTtvQkFHTixZQUFZLFNBQUMsZ0JBQWdCOztBQTZGbEM7Ozs7OztHQU1HO0FBRUgsTUFBTSxPQUFPLGtCQUFrQjtJQUVwQixTQUFTLENBQUMsR0FBVyxFQUFFLElBQWM7UUFDeEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxTQUFTLENBQUEsRUFBRSxLQUFLLEVBQUUsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsTUFBTSxLQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzVFLENBQUM7OztZQU5KLElBQUksU0FBQyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBQaXBlLFxuICAgIFBpcGVUcmFuc2Zvcm0sXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElDaGlwc0FyZWFSZW9yZGVyRXZlbnRBcmdzLCBJZ3hDaGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2hpcHMvcHVibGljX2FwaSc7XG5pbXBvcnQgeyBEaXNwbGF5RGVuc2l0eSB9IGZyb20gJy4uLy4uL2NvcmUvZGlzcGxheURlbnNpdHknO1xuaW1wb3J0IHsgUGxhdGZvcm1VdGlsIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBJR3JvdXBpbmdFeHByZXNzaW9uIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2dyb3VwaW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFNvcnRpbmdEaXJlY3Rpb24gfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvc29ydGluZy1leHByZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJZ3hDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi9jb2x1bW5zL2NvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3JpZFR5cGUgfSBmcm9tICcuLi9jb21tb24vZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWd4Q29sdW1uTW92aW5nRHJhZ0RpcmVjdGl2ZSB9IGZyb20gJy4uL21vdmluZy9tb3ZpbmcuZHJhZy5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIEFuIGludGVybmFsIGNvbXBvbmVudCByZXByZXNlbnRpbmcgYSBiYXNlIGdyb3VwLWJ5IGRyb3AgYXJlYS5cbiAqXG4gKiBAaGlkZGVuIEBpbnRlcm5hbFxuICovXG4gQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSWd4R3JvdXBCeUFyZWFEaXJlY3RpdmUge1xuICAgIC8qKlxuICAgICAqIFRoZSBkcm9wIGFyZWEgdGVtcGxhdGUgaWYgcHJvdmlkZWQgYnkgdGhlIHBhcmVudCBncmlkLlxuICAgICAqIE90aGVyd2lzZSwgdXNlcyB0aGUgZGVmYXVsdCBpbnRlcm5hbCBvbmUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZHJvcEFyZWFUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dm9pZD47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkZW5zaXR5OiBEaXNwbGF5RGVuc2l0eSA9IERpc3BsYXlEZW5zaXR5LmNvbWZvcnRhYmxlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtZ3JpZC1ncm91cGFyZWEnKVxuICAgIHB1YmxpYyBkZWZhdWx0Q2xhc3MgPSAgdHJ1ZTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWdyaWQtZ3JvdXBhcmVhLS1jb3N5JylcbiAgICBwdWJsaWMgZ2V0IGNvc3lTdHlsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVuc2l0eSA9PT0gJ2Nvc3knO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWdyaWQtZ3JvdXBhcmVhLS1jb21wYWN0JylcbiAgICBwdWJsaWMgZ2V0IGNvbXBhY3RTdHlsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVuc2l0eSA9PT0gJ2NvbXBhY3QnO1xuICAgIH1cblxuICAgIC8qKiBUaGUgcGFyZW50IGdyaWQgY29udGFpbmluZyB0aGUgY29tcG9uZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdyaWQ6IEdyaWRUeXBlO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGdyb3VwLWJ5IGV4cHJlc3Npb25zIHByb3ZpZGVkIGJ5IHRoZSBwYXJlbnQgZ3JpZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgZXhwcmVzc2lvbnMoKTogSUdyb3VwaW5nRXhwcmVzc2lvbltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V4cHJlc3Npb25zO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgZXhwcmVzc2lvbnModmFsdWU6IElHcm91cGluZ0V4cHJlc3Npb25bXSkge1xuICAgICAgICB0aGlzLl9leHByZXNzaW9ucyA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNoaXBFeHByZXNzaW9ucyA9IHRoaXMuX2V4cHJlc3Npb25zO1xuICAgICAgICB0aGlzLmV4cHJlc3Npb25zQ2hhbmdlZCgpO1xuICAgICAgICB0aGlzLmV4cHJlc3Npb25zQ2hhbmdlLmVtaXQodGhpcy5fZXhwcmVzc2lvbnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBkZWZhdWx0IG1lc3NhZ2UgZm9yIHRoZSBkZWZhdWx0IGRyb3AgYXJlYSB0ZW1wbGF0ZS5cbiAgICAgKiBPYnZpb3VzbHksIGlmIGFub3RoZXIgdGVtcGxhdGUgaXMgcHJvdmlkZWQsIHRoaXMgaXMgaWdub3JlZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgZHJvcEFyZWFNZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kcm9wQXJlYU1lc3NhZ2UgPz8gdGhpcy5ncmlkLnJlc291cmNlU3RyaW5ncy5pZ3hfZ3JpZF9ncm91cEJ5QXJlYV9tZXNzYWdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgZHJvcEFyZWFNZXNzYWdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fZHJvcEFyZWFNZXNzYWdlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGV4cHJlc3Npb25zQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJR3JvdXBpbmdFeHByZXNzaW9uW10+KCk7XG5cbiAgICBAVmlld0NoaWxkcmVuKElneENoaXBDb21wb25lbnQpXG4gICAgcHVibGljIGNoaXBzOiBRdWVyeUxpc3Q8SWd4Q2hpcENvbXBvbmVudD47XG5cbiAgICBwdWJsaWMgY2hpcEV4cHJlc3Npb25zOiBJR3JvdXBpbmdFeHByZXNzaW9uW107XG5cbiAgICAvKiogVGhlIG5hdGl2ZSBET00gZWxlbWVudC4gVXNlZCBpbiBzaXppbmcgY2FsY3VsYXRpb25zLiAqL1xuICAgIHB1YmxpYyBnZXQgbmF0aXZlRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZXhwcmVzc2lvbnM6IElHcm91cGluZ0V4cHJlc3Npb25bXSA9IFtdO1xuICAgIHByaXZhdGUgX2Ryb3BBcmVhTWVzc2FnZTogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBwcm90ZWN0ZWQgcGxhdGZvcm06IFBsYXRmb3JtVXRpbCkgeyB9XG5cblxuICAgIHB1YmxpYyBnZXQgZHJvcEFyZWFWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKHRoaXMuZ3JpZC5jb2x1bW5JbkRyYWcgJiYgdGhpcy5ncmlkLmNvbHVtbkluRHJhZy5ncm91cGFibGUpIHx8XG4gICAgICAgICAgICAhdGhpcy5leHByZXNzaW9ucy5sZW5ndGg7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUtleURvd24oaWQ6IHN0cmluZywgZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMucGxhdGZvcm0uaXNBY3RpdmF0aW9uS2V5KGV2ZW50KSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTb3J0aW5nKGlkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVDbGljayhpZDogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5ncmlkLmdldENvbHVtbkJ5TmFtZShpZCkuZ3JvdXBhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGRhdGVTb3J0aW5nKGlkKTtcbiAgICB9XG5cbiAgICAgcHVibGljIG9uRHJhZ0Ryb3AoZXZlbnQpIHtcbiAgICAgICAgY29uc3QgZHJhZzogSWd4Q29sdW1uTW92aW5nRHJhZ0RpcmVjdGl2ZSA9IGV2ZW50LmRldGFpbC5vd25lcjtcbiAgICAgICAgaWYgKGRyYWcgaW5zdGFuY2VvZiBJZ3hDb2x1bW5Nb3ZpbmdEcmFnRGlyZWN0aXZlKSB7XG4gICAgICAgICAgICBjb25zdCBjb2x1bW46IElneENvbHVtbkNvbXBvbmVudCA9IGRyYWcuY29sdW1uO1xuICAgICAgICAgICAgaWYgKHRoaXMuZ3JpZC5jb2x1bW5zLmluZGV4T2YoY29sdW1uKSA8IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGlzR3JvdXBlZCA9IHRoaXMuZXhwcmVzc2lvbnMuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLmZpZWxkTmFtZSA9PT0gY29sdW1uLmZpZWxkKSAhPT0gLTE7XG4gICAgICAgICAgICBpZiAoY29sdW1uLmdyb3VwYWJsZSAmJiAhaXNHcm91cGVkICYmICFjb2x1bW4uY29sdW1uR3JvdXAgJiYgISFjb2x1bW4uZmllbGQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBncm91cGluZ0V4cHJlc3Npb24gPSB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkTmFtZTogY29sdW1uLmZpZWxkLFxuICAgICAgICAgICAgICAgICAgICBkaXI6IHRoaXMuZ3JpZC5zb3J0aW5nRXhwcmVzc2lvbnMuZmluZChleHByID0+IGV4cHIuZmllbGROYW1lID09PSBjb2x1bW4uZmllbGQpPy5kaXIgfHwgU29ydGluZ0RpcmVjdGlvbi5Bc2MsXG4gICAgICAgICAgICAgICAgICAgIGlnbm9yZUNhc2U6IGNvbHVtbi5zb3J0aW5nSWdub3JlQ2FzZSxcbiAgICAgICAgICAgICAgICAgICAgc3RyYXRlZ3k6IGNvbHVtbi5zb3J0U3RyYXRlZ3ksXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwaW5nQ29tcGFyZXI6IGNvbHVtbi5ncm91cGluZ0NvbXBhcmVyXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBCeShncm91cGluZ0V4cHJlc3Npb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldFJlb3JkZXJlZEV4cHJlc3Npb25zKGNoaXBzQXJyYXk6IElneENoaXBDb21wb25lbnRbXSkge1xuICAgICAgICBjb25zdCBuZXdFeHByZXNzaW9ucyA9IFtdO1xuXG4gICAgICAgIGNoaXBzQXJyYXkuZm9yRWFjaChjaGlwID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGV4cHIgPSB0aGlzLmV4cHJlc3Npb25zLmZpbmQoaXRlbSA9PiBpdGVtLmZpZWxkTmFtZSA9PT0gY2hpcC5pZCk7XG5cbiAgICAgICAgICAgIC8vIGRpc2FsbG93IGNoYW5naW5nIG9yZGVyIGlmIHRoZXJlIGFyZSBjb2x1bW5zIHdpdGggZ3JvdXBhYmxlOiBmYWxzZVxuICAgICAgICAgICAgaWYgKCF0aGlzLmdyaWQuZ2V0Q29sdW1uQnlOYW1lKGV4cHIuZmllbGROYW1lKT8uZ3JvdXBhYmxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBuZXdFeHByZXNzaW9ucy5wdXNoKGV4cHIpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gbmV3RXhwcmVzc2lvbnM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZVNvcnRpbmcoaWQ6IHN0cmluZykge1xuICAgICAgICBjb25zdCBleHByID0gdGhpcy5ncmlkLnNvcnRpbmdFeHByZXNzaW9ucy5maW5kKGUgPT4gZS5maWVsZE5hbWUgPT09IGlkKTtcbiAgICAgICAgZXhwci5kaXIgPSAzIC0gZXhwci5kaXI7XG4gICAgICAgIHRoaXMuZ3JpZC5zb3J0KGV4cHIpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBleHByZXNzaW9uc0NoYW5nZWQoKSB7XG4gICAgfVxuXG4gICAgcHVibGljIGFic3RyYWN0IGhhbmRsZVJlb3JkZXIoZXZlbnQ6IElDaGlwc0FyZWFSZW9yZGVyRXZlbnRBcmdzKTtcblxuICAgIHB1YmxpYyBhYnN0cmFjdCBoYW5kbGVNb3ZlRW5kKCk7XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ3JvdXBCeShleHByZXNzaW9uOiBJR3JvdXBpbmdFeHByZXNzaW9uKTtcblxuICAgIHB1YmxpYyBhYnN0cmFjdCBjbGVhckdyb3VwaW5nKG5hbWU6IHN0cmluZyk7XG5cbn1cblxuLyoqXG4gKiBBIHBpcGUgdG8gY2lyY3VtdmVudCB0aGUgdXNlIG9mIGdldHRlcnMvbWV0aG9kcyBqdXN0IHRvIGdldCBzb21lIGFkZGl0aW9uYWxcbiAqIGluZm9ybWF0aW9uIGZyb20gdGhlIGdyb3VwaW5nIGV4cHJlc3Npb24gYW5kIHBhc3MgaXQgdG8gdGhlIGNoaXAgcmVwcmVzZW50aW5nXG4gKiB0aGF0IGV4cHJlc3Npb24uXG4gKlxuICogQGhpZGRlbiBAaW50ZXJuYWxcbiAqL1xuQFBpcGUoeyBuYW1lOiAnaWd4R3JvdXBCeU1ldGEnIH0pXG5leHBvcnQgY2xhc3MgSWd4R3JvdXBCeU1ldGFQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtKGtleTogc3RyaW5nLCBncmlkOiBHcmlkVHlwZSkge1xuICAgICAgICBjb25zdCBjb2x1bW4gPSBncmlkLmdldENvbHVtbkJ5TmFtZShrZXkpO1xuICAgICAgICByZXR1cm4geyBncm91cGFibGU6ICEhY29sdW1uPy5ncm91cGFibGUsIHRpdGxlOiBjb2x1bW4/LmhlYWRlciB8fCBrZXkgfTtcbiAgICB9XG59XG4iXX0=
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtYnktYXJlYS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvZ3JvdXBpbmcvZ3JvdXAtYnktYXJlYS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBQ0wsTUFBTSxFQUNOLElBQUksRUFJSixZQUFZLEVBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUE4QixnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFHdEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFL0U7Ozs7R0FJRztBQUVILE1BQU0sT0FBZ0IsdUJBQXVCO0lBd0V6QyxZQUFvQixHQUE0QixFQUFZLFFBQXNCO1FBQTlELFFBQUcsR0FBSCxHQUFHLENBQXlCO1FBQVksYUFBUSxHQUFSLFFBQVEsQ0FBYztRQS9EM0UsWUFBTyxHQUFtQixjQUFjLENBQUMsV0FBVyxDQUFDO1FBR3JELGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBNkNwQixzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBeUIsQ0FBQztRQVk3RCxpQkFBWSxHQUEwQixFQUFFLENBQUM7SUFHcUMsQ0FBQztJQTFEdkYsSUFDVyxTQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxNQUFNLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQ1csWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO0lBQ3RDLENBQUM7SUFNRDs7T0FFRztJQUNILElBQ1csV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQVcsV0FBVyxDQUFDLEtBQTRCO1FBQy9DLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN6QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFDVyxlQUFlOztRQUN0QixPQUFPLE1BQUEsSUFBSSxDQUFDLGdCQUFnQixtQ0FBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyw0QkFBNEIsQ0FBQztJQUMzRixDQUFDO0lBRUQsSUFBVyxlQUFlLENBQUMsS0FBYTtRQUNwQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFVRCwyREFBMkQ7SUFDM0QsSUFBVyxhQUFhO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7SUFDbEMsQ0FBQztJQVFELElBQVcsZUFBZTtRQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDO1lBQy9ELENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDakMsQ0FBQztJQUVNLGFBQWEsQ0FBQyxFQUFVLEVBQUUsS0FBb0I7UUFDakQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzFCO0lBQ0wsQ0FBQztJQUVNLFdBQVcsQ0FBQyxFQUFVO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUU7WUFDMUMsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQUs7O1FBQ25CLE1BQU0sSUFBSSxHQUFpQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUM5RCxJQUFJLElBQUksWUFBWSw0QkFBNEIsRUFBRTtZQUM5QyxNQUFNLE1BQU0sR0FBdUIsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUMvQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3ZDLE9BQU87YUFDVjtZQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUMvRixJQUFJLE1BQU0sQ0FBQyxTQUFTLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO2dCQUN6RSxNQUFNLGtCQUFrQixHQUFHO29CQUN2QixTQUFTLEVBQUUsTUFBTSxDQUFDLEtBQUs7b0JBQ3ZCLEdBQUcsRUFBRSxDQUFBLE1BQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsMENBQUUsR0FBRyxLQUFJLGdCQUFnQixDQUFDLEdBQUc7b0JBQzVHLFVBQVUsRUFBRSxNQUFNLENBQUMsaUJBQWlCO29CQUNwQyxRQUFRLEVBQUUsTUFBTSxDQUFDLFlBQVk7b0JBQzdCLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0I7aUJBQzVDLENBQUM7Z0JBRUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2FBQ3BDO1NBQ0o7SUFDTCxDQUFDO0lBRVMsdUJBQXVCLENBQUMsVUFBOEI7UUFDNUQsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBRTFCLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7O1lBQ3RCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFdkUscUVBQXFFO1lBQ3JFLElBQUksQ0FBQyxDQUFBLE1BQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQywwQ0FBRSxTQUFTLENBQUEsRUFBRTtnQkFDdkQsT0FBTzthQUNWO1lBRUQsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sY0FBYyxDQUFDO0lBQzFCLENBQUM7SUFFUyxhQUFhLENBQUMsRUFBVTtRQUM5QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRVMsa0JBQWtCO0lBQzVCLENBQUM7OztZQTdJSixTQUFTOzs7WUF6Qk4sVUFBVTtZQWFMLFlBQVk7OzsrQkFrQmhCLEtBQUs7c0JBR0wsS0FBSzsyQkFHTCxXQUFXLFNBQUMsMEJBQTBCO3dCQUd0QyxXQUFXLFNBQUMsZ0NBQWdDOzJCQUs1QyxXQUFXLFNBQUMsbUNBQW1DO21CQU0vQyxLQUFLOzBCQU1MLEtBQUs7OEJBZ0JMLEtBQUs7Z0NBU0wsTUFBTTtvQkFHTixZQUFZLFNBQUMsZ0JBQWdCOztBQTZGbEM7Ozs7OztHQU1HO0FBRUgsTUFBTSxPQUFPLGtCQUFrQjtJQUVwQixTQUFTLENBQUMsR0FBVyxFQUFFLElBQWM7UUFDeEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxTQUFTLENBQUEsRUFBRSxLQUFLLEVBQUUsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsTUFBTSxLQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzVFLENBQUM7OztZQU5KLElBQUksU0FBQyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBQaXBlLFxuICAgIFBpcGVUcmFuc2Zvcm0sXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElDaGlwc0FyZWFSZW9yZGVyRXZlbnRBcmdzLCBJZ3hDaGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2hpcHMvcHVibGljX2FwaSc7XG5pbXBvcnQgeyBEaXNwbGF5RGVuc2l0eSB9IGZyb20gJy4uLy4uL2NvcmUvZGlzcGxheURlbnNpdHknO1xuaW1wb3J0IHsgUGxhdGZvcm1VdGlsIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBJR3JvdXBpbmdFeHByZXNzaW9uIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2dyb3VwaW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFNvcnRpbmdEaXJlY3Rpb24gfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvc29ydGluZy1leHByZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJZ3hDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi9jb2x1bW5zL2NvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3JpZFR5cGUgfSBmcm9tICcuLi9jb21tb24vZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWd4Q29sdW1uTW92aW5nRHJhZ0RpcmVjdGl2ZSB9IGZyb20gJy4uL21vdmluZy9tb3ZpbmcuZHJhZy5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIEFuIGludGVybmFsIGNvbXBvbmVudCByZXByZXNlbnRpbmcgYSBiYXNlIGdyb3VwLWJ5IGRyb3AgYXJlYS5cbiAqXG4gKiBAaGlkZGVuIEBpbnRlcm5hbFxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBJZ3hHcm91cEJ5QXJlYURpcmVjdGl2ZSB7XG4gICAgLyoqXG4gICAgICogVGhlIGRyb3AgYXJlYSB0ZW1wbGF0ZSBpZiBwcm92aWRlZCBieSB0aGUgcGFyZW50IGdyaWQuXG4gICAgICogT3RoZXJ3aXNlLCB1c2VzIHRoZSBkZWZhdWx0IGludGVybmFsIG9uZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkcm9wQXJlYVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx2b2lkPjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRlbnNpdHk6IERpc3BsYXlEZW5zaXR5ID0gRGlzcGxheURlbnNpdHkuY29tZm9ydGFibGU7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1ncmlkLWdyb3VwYXJlYScpXG4gICAgcHVibGljIGRlZmF1bHRDbGFzcyA9IHRydWU7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1ncmlkLWdyb3VwYXJlYS0tY29zeScpXG4gICAgcHVibGljIGdldCBjb3N5U3R5bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlbnNpdHkgPT09ICdjb3N5JztcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1ncmlkLWdyb3VwYXJlYS0tY29tcGFjdCcpXG4gICAgcHVibGljIGdldCBjb21wYWN0U3R5bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlbnNpdHkgPT09ICdjb21wYWN0JztcbiAgICB9XG5cbiAgICAvKiogVGhlIHBhcmVudCBncmlkIGNvbnRhaW5pbmcgdGhlIGNvbXBvbmVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBncmlkOiBHcmlkVHlwZTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBncm91cC1ieSBleHByZXNzaW9ucyBwcm92aWRlZCBieSB0aGUgcGFyZW50IGdyaWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGV4cHJlc3Npb25zKCk6IElHcm91cGluZ0V4cHJlc3Npb25bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9leHByZXNzaW9ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGV4cHJlc3Npb25zKHZhbHVlOiBJR3JvdXBpbmdFeHByZXNzaW9uW10pIHtcbiAgICAgICAgdGhpcy5fZXhwcmVzc2lvbnMgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5jaGlwRXhwcmVzc2lvbnMgPSB0aGlzLl9leHByZXNzaW9ucztcbiAgICAgICAgdGhpcy5leHByZXNzaW9uc0NoYW5nZWQoKTtcbiAgICAgICAgdGhpcy5leHByZXNzaW9uc0NoYW5nZS5lbWl0KHRoaXMuX2V4cHJlc3Npb25zKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZGVmYXVsdCBtZXNzYWdlIGZvciB0aGUgZGVmYXVsdCBkcm9wIGFyZWEgdGVtcGxhdGUuXG4gICAgICogT2J2aW91c2x5LCBpZiBhbm90aGVyIHRlbXBsYXRlIGlzIHByb3ZpZGVkLCB0aGlzIGlzIGlnbm9yZWQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGRyb3BBcmVhTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fZHJvcEFyZWFNZXNzYWdlID8/IHRoaXMuZ3JpZC5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfZ3JvdXBCeUFyZWFfbWVzc2FnZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGRyb3BBcmVhTWVzc2FnZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2Ryb3BBcmVhTWVzc2FnZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBleHByZXNzaW9uc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SUdyb3VwaW5nRXhwcmVzc2lvbltdPigpO1xuXG4gICAgQFZpZXdDaGlsZHJlbihJZ3hDaGlwQ29tcG9uZW50KVxuICAgIHB1YmxpYyBjaGlwczogUXVlcnlMaXN0PElneENoaXBDb21wb25lbnQ+O1xuXG4gICAgcHVibGljIGNoaXBFeHByZXNzaW9uczogSUdyb3VwaW5nRXhwcmVzc2lvbltdO1xuXG4gICAgLyoqIFRoZSBuYXRpdmUgRE9NIGVsZW1lbnQuIFVzZWQgaW4gc2l6aW5nIGNhbGN1bGF0aW9ucy4gKi9cbiAgICBwdWJsaWMgZ2V0IG5hdGl2ZUVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgX2V4cHJlc3Npb25zOiBJR3JvdXBpbmdFeHByZXNzaW9uW10gPSBbXTtcbiAgICBwcml2YXRlIF9kcm9wQXJlYU1lc3NhZ2U6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiwgcHJvdGVjdGVkIHBsYXRmb3JtOiBQbGF0Zm9ybVV0aWwpIHsgfVxuXG5cbiAgICBwdWJsaWMgZ2V0IGRyb3BBcmVhVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmdyaWQuY29sdW1uSW5EcmFnICYmIHRoaXMuZ3JpZC5jb2x1bW5JbkRyYWcuZ3JvdXBhYmxlKSB8fFxuICAgICAgICAgICAgIXRoaXMuZXhwcmVzc2lvbnMubGVuZ3RoO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVLZXlEb3duKGlkOiBzdHJpbmcsIGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLnBsYXRmb3JtLmlzQWN0aXZhdGlvbktleShldmVudCkpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU29ydGluZyhpZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlQ2xpY2soaWQ6IHN0cmluZykge1xuICAgICAgICBpZiAoIXRoaXMuZ3JpZC5nZXRDb2x1bW5CeU5hbWUoaWQpLmdyb3VwYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlU29ydGluZyhpZCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRHJhZ0Ryb3AoZXZlbnQpIHtcbiAgICAgICAgY29uc3QgZHJhZzogSWd4Q29sdW1uTW92aW5nRHJhZ0RpcmVjdGl2ZSA9IGV2ZW50LmRldGFpbC5vd25lcjtcbiAgICAgICAgaWYgKGRyYWcgaW5zdGFuY2VvZiBJZ3hDb2x1bW5Nb3ZpbmdEcmFnRGlyZWN0aXZlKSB7XG4gICAgICAgICAgICBjb25zdCBjb2x1bW46IElneENvbHVtbkNvbXBvbmVudCA9IGRyYWcuY29sdW1uO1xuICAgICAgICAgICAgaWYgKHRoaXMuZ3JpZC5jb2x1bW5zLmluZGV4T2YoY29sdW1uKSA8IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGlzR3JvdXBlZCA9IHRoaXMuZXhwcmVzc2lvbnMuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLmZpZWxkTmFtZSA9PT0gY29sdW1uLmZpZWxkKSAhPT0gLTE7XG4gICAgICAgICAgICBpZiAoY29sdW1uLmdyb3VwYWJsZSAmJiAhaXNHcm91cGVkICYmICFjb2x1bW4uY29sdW1uR3JvdXAgJiYgISFjb2x1bW4uZmllbGQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBncm91cGluZ0V4cHJlc3Npb24gPSB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkTmFtZTogY29sdW1uLmZpZWxkLFxuICAgICAgICAgICAgICAgICAgICBkaXI6IHRoaXMuZ3JpZC5zb3J0aW5nRXhwcmVzc2lvbnMuZmluZChleHByID0+IGV4cHIuZmllbGROYW1lID09PSBjb2x1bW4uZmllbGQpPy5kaXIgfHwgU29ydGluZ0RpcmVjdGlvbi5Bc2MsXG4gICAgICAgICAgICAgICAgICAgIGlnbm9yZUNhc2U6IGNvbHVtbi5zb3J0aW5nSWdub3JlQ2FzZSxcbiAgICAgICAgICAgICAgICAgICAgc3RyYXRlZ3k6IGNvbHVtbi5zb3J0U3RyYXRlZ3ksXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwaW5nQ29tcGFyZXI6IGNvbHVtbi5ncm91cGluZ0NvbXBhcmVyXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBCeShncm91cGluZ0V4cHJlc3Npb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldFJlb3JkZXJlZEV4cHJlc3Npb25zKGNoaXBzQXJyYXk6IElneENoaXBDb21wb25lbnRbXSkge1xuICAgICAgICBjb25zdCBuZXdFeHByZXNzaW9ucyA9IFtdO1xuXG4gICAgICAgIGNoaXBzQXJyYXkuZm9yRWFjaChjaGlwID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGV4cHIgPSB0aGlzLmV4cHJlc3Npb25zLmZpbmQoaXRlbSA9PiBpdGVtLmZpZWxkTmFtZSA9PT0gY2hpcC5pZCk7XG5cbiAgICAgICAgICAgIC8vIGRpc2FsbG93IGNoYW5naW5nIG9yZGVyIGlmIHRoZXJlIGFyZSBjb2x1bW5zIHdpdGggZ3JvdXBhYmxlOiBmYWxzZVxuICAgICAgICAgICAgaWYgKCF0aGlzLmdyaWQuZ2V0Q29sdW1uQnlOYW1lKGV4cHIuZmllbGROYW1lKT8uZ3JvdXBhYmxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBuZXdFeHByZXNzaW9ucy5wdXNoKGV4cHIpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gbmV3RXhwcmVzc2lvbnM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZVNvcnRpbmcoaWQ6IHN0cmluZykge1xuICAgICAgICBjb25zdCBleHByID0gdGhpcy5ncmlkLnNvcnRpbmdFeHByZXNzaW9ucy5maW5kKGUgPT4gZS5maWVsZE5hbWUgPT09IGlkKTtcbiAgICAgICAgZXhwci5kaXIgPSAzIC0gZXhwci5kaXI7XG4gICAgICAgIHRoaXMuZ3JpZC5zb3J0KGV4cHIpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBleHByZXNzaW9uc0NoYW5nZWQoKSB7XG4gICAgfVxuXG4gICAgcHVibGljIGFic3RyYWN0IGhhbmRsZVJlb3JkZXIoZXZlbnQ6IElDaGlwc0FyZWFSZW9yZGVyRXZlbnRBcmdzKTtcblxuICAgIHB1YmxpYyBhYnN0cmFjdCBoYW5kbGVNb3ZlRW5kKCk7XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ3JvdXBCeShleHByZXNzaW9uOiBJR3JvdXBpbmdFeHByZXNzaW9uKTtcblxuICAgIHB1YmxpYyBhYnN0cmFjdCBjbGVhckdyb3VwaW5nKG5hbWU6IHN0cmluZyk7XG5cbn1cblxuLyoqXG4gKiBBIHBpcGUgdG8gY2lyY3VtdmVudCB0aGUgdXNlIG9mIGdldHRlcnMvbWV0aG9kcyBqdXN0IHRvIGdldCBzb21lIGFkZGl0aW9uYWxcbiAqIGluZm9ybWF0aW9uIGZyb20gdGhlIGdyb3VwaW5nIGV4cHJlc3Npb24gYW5kIHBhc3MgaXQgdG8gdGhlIGNoaXAgcmVwcmVzZW50aW5nXG4gKiB0aGF0IGV4cHJlc3Npb24uXG4gKlxuICogQGhpZGRlbiBAaW50ZXJuYWxcbiAqL1xuQFBpcGUoeyBuYW1lOiAnaWd4R3JvdXBCeU1ldGEnIH0pXG5leHBvcnQgY2xhc3MgSWd4R3JvdXBCeU1ldGFQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtKGtleTogc3RyaW5nLCBncmlkOiBHcmlkVHlwZSkge1xuICAgICAgICBjb25zdCBjb2x1bW4gPSBncmlkLmdldENvbHVtbkJ5TmFtZShrZXkpO1xuICAgICAgICByZXR1cm4geyBncm91cGFibGU6ICEhY29sdW1uPy5ncm91cGFibGUsIHRpdGxlOiBjb2x1bW4/LmhlYWRlciB8fCBrZXkgfTtcbiAgICB9XG59XG4iXX0=
@@ -19,13 +19,13 @@ export class IgxTreeGridGroupByAreaComponent extends IgxGroupByAreaDirective {
19
19
  return this._hideGroupedColumns;
20
20
  }
21
21
  set hideGroupedColumns(value) {
22
- if (this.grid.columnList && this.expressions) {
22
+ if (this.grid.columns && this.expressions) {
23
23
  this.setColumnsVisibility(value);
24
24
  }
25
25
  this._hideGroupedColumns = value;
26
26
  }
27
27
  ngAfterContentInit() {
28
- if (this.grid.columnList && this.expressions) {
28
+ if (this.grid.columns && this.expressions) {
29
29
  this.groupingDiffer = this.differs.find(this.expressions).create();
30
30
  this.updateColumnsVisibility();
31
31
  }
@@ -104,9 +104,9 @@ export class IgxTreeGridGroupByAreaComponent extends IgxGroupByAreaDirective {
104
104
  }
105
105
  }
106
106
  updateColumnsVisibility() {
107
- if (this.groupingDiffer && this.grid.columnList && !this.grid.hasColumnLayouts) {
107
+ if (this.groupingDiffer && this.grid.columns && !this.grid.hasColumnLayouts) {
108
108
  const changes = this.groupingDiffer.diff(this.expressions);
109
- if (changes && this.grid.columnList.length > 0) {
109
+ if (changes && this.grid.columns.length > 0) {
110
110
  changes.forEachAddedItem((rec) => {
111
111
  const col = this.grid.getColumnByName(rec.item.fieldName);
112
112
  col.hidden = this.hideGroupedColumns;
@@ -119,7 +119,7 @@ export class IgxTreeGridGroupByAreaComponent extends IgxGroupByAreaDirective {
119
119
  }
120
120
  }
121
121
  setColumnsVisibility(value) {
122
- if (this.grid.columnList.length > 0 && !this.grid.hasColumnLayouts) {
122
+ if (this.grid.columns.length > 0 && !this.grid.hasColumnLayouts) {
123
123
  this.expressions.forEach((expr) => {
124
124
  const col = this.grid.getColumnByName(expr.fieldName);
125
125
  col.hidden = value;
@@ -142,4 +142,4 @@ IgxTreeGridGroupByAreaComponent.ctorParameters = () => [
142
142
  IgxTreeGridGroupByAreaComponent.propDecorators = {
143
143
  hideGroupedColumns: [{ type: Input }]
144
144
  };
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ncmlkLWdyb3VwLWJ5LWFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL2dyb3VwaW5nL3RyZWUtZ3JpZC1ncm91cC1ieS1hcmVhLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUwsZUFBZSxHQUVsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFcEU7Ozs7R0FJRztBQU1ILE1BQU0sT0FBTywrQkFBZ0MsU0FBUSx1QkFBdUI7SUFrQnhFLFlBQW9CLE9BQXdCLEVBQUUsR0FBNEIsRUFBRSxRQUFzQjtRQUM5RixLQUFLLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBREwsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFKcEMsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBRTVCLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO0lBSXRDLENBQUM7SUFuQkQsSUFDVyxrQkFBa0I7UUFDekIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQVcsa0JBQWtCLENBQUMsS0FBYztRQUN4QyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDMUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BDO1FBRUQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBVU0sa0JBQWtCO1FBQ3JCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUMxQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuRSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztTQUNsQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxrQkFBd0MsRUFBRSxFQUFFO1lBQ3JILElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUU7Z0JBQy9DLE9BQU87YUFDVjtZQUVELElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztZQUVwQixrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUE0QixFQUFFLEVBQUU7Z0JBQ3hELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7Z0JBQ3JDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQztnQkFDN0UsSUFBSSxZQUFZLElBQUksWUFBWSxDQUFDLEdBQUcsS0FBSyxRQUFRLENBQUMsR0FBRyxFQUFFO29CQUNuRCxZQUFZLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7b0JBQ2hDLE9BQU8sR0FBRyxJQUFJLENBQUM7aUJBQ2xCO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLE9BQU8sRUFBRTtnQkFDVCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDNUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sYUFBYSxDQUFDLEtBQWlDO1FBQ2xELE1BQU0sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQzVDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVoRSxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztRQUV0Qyw2RUFBNkU7UUFDN0UsSUFBSSxhQUFhLFlBQVksYUFBYSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsY0FBYyxDQUFDO1NBQ3JDO0lBQ0wsQ0FBQztJQUVNLGFBQWE7UUFDaEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzVDLENBQUM7SUFFTSxPQUFPLENBQUMsVUFBK0I7UUFDMUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTSxhQUFhLENBQUMsSUFBWTtRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNwRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRVMsa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFTyx3QkFBd0I7UUFDNUIsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQ3hELElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztRQUVwQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNyQyxNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUV2RixJQUFJLFlBQVksR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDbkIsSUFBSSxZQUFZLEtBQUssS0FBSyxFQUFFO29CQUN4QixNQUFNLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUMvRCxRQUFRLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7b0JBQ3hCLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO29CQUM5QyxPQUFPLEdBQUcsSUFBSSxDQUFDO2lCQUNsQjtxQkFBTSxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsR0FBRyxFQUFFO29CQUMxRCxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztvQkFDaEQsT0FBTyxHQUFHLElBQUksQ0FBQztpQkFDbEI7YUFDSjtpQkFBTTtnQkFDSCxNQUFNLFFBQVEscUJBQVEsSUFBSSxDQUFFLENBQUM7Z0JBQzdCLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUM5QyxPQUFPLEdBQUcsSUFBSSxDQUFDO2FBQ2xCO1FBRUwsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLE9BQU8sRUFBRTtZQUNULElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLENBQUM7U0FDMUQ7SUFDTCxDQUFDO0lBRU8sdUJBQXVCO1FBQzNCLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDNUUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNELElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzVDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUM3QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUMxRCxHQUFHLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztnQkFDekMsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQy9CLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQzFELEdBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixDQUFDLENBQUMsQ0FBQzthQUNOO1NBQ0o7SUFDTCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsS0FBSztRQUM5QixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ2hFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQzlCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDdEQsR0FBRyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDdkIsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7OztZQWpKSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDZCQUE2QjtnQkFDdkMsMHREQUEyQztnQkFDM0MsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLCtCQUErQixFQUFFLENBQUM7YUFDbEc7OztZQXBCRyxlQUFlO1lBSGYsVUFBVTtZQVNMLFlBQVk7OztpQ0FnQmhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgSXRlcmFibGVEaWZmZXIsXG4gICAgSXRlcmFibGVEaWZmZXJzLFxuICAgIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJQ2hpcHNBcmVhUmVvcmRlckV2ZW50QXJncyB9IGZyb20gJy4uLy4uL2NoaXBzL3B1YmxpY19hcGknO1xuaW1wb3J0IHsgUGxhdGZvcm1VdGlsIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBJR3JvdXBpbmdFeHByZXNzaW9uIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2dyb3VwaW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElTb3J0aW5nRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9zb3J0aW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElneEdyb3VwQnlBcmVhRGlyZWN0aXZlIH0gZnJvbSAnLi9ncm91cC1ieS1hcmVhLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogQW4gaW50ZXJuYWwgY29tcG9uZW50IHJlcHJlc2VudGluZyB0aGUgZ3JvdXAtYnkgZHJvcCBhcmVhIGZvciB0aGUgaWd4LWdyaWQgY29tcG9uZW50LlxuICpcbiAqIEBoaWRkZW4gQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnaWd4LXRyZWUtZ3JpZC1ncm91cC1ieS1hcmVhJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2dyb3VwLWJ5LWFyZWEuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogSWd4R3JvdXBCeUFyZWFEaXJlY3RpdmUsIHVzZUV4aXN0aW5nOiBJZ3hUcmVlR3JpZEdyb3VwQnlBcmVhQ29tcG9uZW50IH1dXG59KVxuZXhwb3J0IGNsYXNzIElneFRyZWVHcmlkR3JvdXBCeUFyZWFDb21wb25lbnQgZXh0ZW5kcyBJZ3hHcm91cEJ5QXJlYURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGhpZGVHcm91cGVkQ29sdW1ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hpZGVHcm91cGVkQ29sdW1ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGhpZGVHcm91cGVkQ29sdW1ucyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy5ncmlkLmNvbHVtbkxpc3QgJiYgdGhpcy5leHByZXNzaW9ucykge1xuICAgICAgICAgICAgdGhpcy5zZXRDb2x1bW5zVmlzaWJpbGl0eSh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9oaWRlR3JvdXBlZENvbHVtbnMgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9oaWRlR3JvdXBlZENvbHVtbnMgPSBmYWxzZTtcbiAgICBwcml2YXRlIGdyb3VwaW5nRGlmZmVyOiBJdGVyYWJsZURpZmZlcjxJR3JvdXBpbmdFeHByZXNzaW9uPjtcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWZmZXJzOiBJdGVyYWJsZURpZmZlcnMsIHJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sIHBsYXRmb3JtOiBQbGF0Zm9ybVV0aWwpIHtcbiAgICAgICAgc3VwZXIocmVmLCBwbGF0Zm9ybSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZ3JpZC5jb2x1bW5MaXN0ICYmIHRoaXMuZXhwcmVzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBpbmdEaWZmZXIgPSB0aGlzLmRpZmZlcnMuZmluZCh0aGlzLmV4cHJlc3Npb25zKS5jcmVhdGUoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ29sdW1uc1Zpc2liaWxpdHkoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ3JpZC5zb3J0aW5nRXhwcmVzc2lvbnNDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoc29ydGluZ0V4cHJlc3Npb25zOiBJU29ydGluZ0V4cHJlc3Npb25bXSkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmV4cHJlc3Npb25zIHx8ICF0aGlzLmV4cHJlc3Npb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IGNoYW5nZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgc29ydGluZ0V4cHJlc3Npb25zLmZvckVhY2goKHNvcnRFeHByOiBJU29ydGluZ0V4cHJlc3Npb24pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSBzb3J0RXhwci5maWVsZE5hbWU7XG4gICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBpbmdFeHByID0gdGhpcy5leHByZXNzaW9ucy5maW5kKGV4ID0+IGV4LmZpZWxkTmFtZSA9PT0gZmllbGROYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAoZ3JvdXBpbmdFeHByICYmIGdyb3VwaW5nRXhwci5kaXIgIT09IHNvcnRFeHByLmRpcikge1xuICAgICAgICAgICAgICAgICAgICBncm91cGluZ0V4cHIuZGlyID0gc29ydEV4cHIuZGlyO1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV4cHJlc3Npb25zID0gWy4uLnRoaXMuZXhwcmVzc2lvbnNdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVSZW9yZGVyKGV2ZW50OiBJQ2hpcHNBcmVhUmVvcmRlckV2ZW50QXJncykge1xuICAgICAgICBjb25zdCB7IGNoaXBzQXJyYXksIG9yaWdpbmFsRXZlbnQgfSA9IGV2ZW50O1xuICAgICAgICBjb25zdCBuZXdFeHByZXNzaW9ucyA9IHRoaXMuZ2V0UmVvcmRlcmVkRXhwcmVzc2lvbnMoY2hpcHNBcnJheSk7XG5cbiAgICAgICAgdGhpcy5jaGlwRXhwcmVzc2lvbnMgPSBuZXdFeHByZXNzaW9ucztcblxuICAgICAgICAvLyBXaGVuIHJlb3JkZXJlZCB1c2luZyBrZXlib2FyZCBuYXZpZ2F0aW9uLCB3ZSBkb24ndCBoYXZlIGBvbk1vdmVFbmRgIGV2ZW50LlxuICAgICAgICBpZiAob3JpZ2luYWxFdmVudCBpbnN0YW5jZW9mIEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnMgPSBuZXdFeHByZXNzaW9ucztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVNb3ZlRW5kKCkge1xuICAgICAgICB0aGlzLmV4cHJlc3Npb25zID0gdGhpcy5jaGlwRXhwcmVzc2lvbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGdyb3VwQnkoZXhwcmVzc2lvbjogSUdyb3VwaW5nRXhwcmVzc2lvbikge1xuICAgICAgICB0aGlzLmV4cHJlc3Npb25zLnB1c2goZXhwcmVzc2lvbik7XG4gICAgICAgIHRoaXMuZXhwcmVzc2lvbnMgPSBbLi4udGhpcy5leHByZXNzaW9uc107XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyR3JvdXBpbmcobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZXhwcmVzc2lvbnMgPSB0aGlzLmV4cHJlc3Npb25zLmZpbHRlcihpdGVtID0+IGl0ZW0uZmllbGROYW1lICE9PSBuYW1lKTtcbiAgICAgICAgdGhpcy5ncmlkLnNvcnRpbmdFeHByZXNzaW9ucyA9IHRoaXMuZ3JpZC5zb3J0aW5nRXhwcmVzc2lvbnMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5maWVsZE5hbWUgIT09IG5hbWUpO1xuICAgICAgICB0aGlzLmdyaWQubm90aWZ5Q2hhbmdlcyh0cnVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZXhwcmVzc2lvbnNDaGFuZ2VkKCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVNvcnRpbmdFeHByZXNzaW9ucygpO1xuICAgICAgICB0aGlzLnVwZGF0ZUNvbHVtbnNWaXNpYmlsaXR5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVTb3J0aW5nRXhwcmVzc2lvbnMoKSB7XG4gICAgICAgIGNvbnN0IHNvcnRpbmdFeHByZXNzaW9ucyA9IHRoaXMuZ3JpZC5zb3J0aW5nRXhwcmVzc2lvbnM7XG4gICAgICAgIGxldCBjaGFuZ2VkID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5leHByZXNzaW9ucy5mb3JFYWNoKChleHByLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc29ydGluZ0luZGV4ID0gc29ydGluZ0V4cHJlc3Npb25zLmZpbmRJbmRleChzID0+IHMuZmllbGROYW1lID09PSBleHByLmZpZWxkTmFtZSk7XG5cbiAgICAgICAgICAgIGlmIChzb3J0aW5nSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgIGlmIChzb3J0aW5nSW5kZXggIT09IGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvcnRFeHByID0gc29ydGluZ0V4cHJlc3Npb25zLnNwbGljZShzb3J0aW5nSW5kZXgsIDEpWzBdO1xuICAgICAgICAgICAgICAgICAgICBzb3J0RXhwci5kaXIgPSBleHByLmRpcjtcbiAgICAgICAgICAgICAgICAgICAgc29ydGluZ0V4cHJlc3Npb25zLnNwbGljZShpbmRleCwgMCwgc29ydEV4cHIpO1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNvcnRpbmdFeHByZXNzaW9uc1tzb3J0aW5nSW5kZXhdLmRpciAhPT0gZXhwci5kaXIpIHtcbiAgICAgICAgICAgICAgICAgICAgc29ydGluZ0V4cHJlc3Npb25zW3NvcnRpbmdJbmRleF0uZGlyID0gZXhwci5kaXI7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhwckNvcHkgPSB7IC4uLmV4cHIgfTtcbiAgICAgICAgICAgICAgICBzb3J0aW5nRXhwcmVzc2lvbnMuc3BsaWNlKGluZGV4LCAwLCBleHByQ29weSk7XG4gICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZ3JpZC5zb3J0aW5nRXhwcmVzc2lvbnMgPSBbLi4uc29ydGluZ0V4cHJlc3Npb25zXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQ29sdW1uc1Zpc2liaWxpdHkoKSB7XG4gICAgICAgIGlmICh0aGlzLmdyb3VwaW5nRGlmZmVyICYmIHRoaXMuZ3JpZC5jb2x1bW5MaXN0ICYmICF0aGlzLmdyaWQuaGFzQ29sdW1uTGF5b3V0cykge1xuICAgICAgICAgICAgY29uc3QgY2hhbmdlcyA9IHRoaXMuZ3JvdXBpbmdEaWZmZXIuZGlmZih0aGlzLmV4cHJlc3Npb25zKTtcbiAgICAgICAgICAgIGlmIChjaGFuZ2VzICYmIHRoaXMuZ3JpZC5jb2x1bW5MaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBjaGFuZ2VzLmZvckVhY2hBZGRlZEl0ZW0oKHJlYykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2wgPSB0aGlzLmdyaWQuZ2V0Q29sdW1uQnlOYW1lKHJlYy5pdGVtLmZpZWxkTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbC5oaWRkZW4gPSB0aGlzLmhpZGVHcm91cGVkQ29sdW1ucztcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjaGFuZ2VzLmZvckVhY2hSZW1vdmVkSXRlbSgocmVjKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbCA9IHRoaXMuZ3JpZC5nZXRDb2x1bW5CeU5hbWUocmVjLml0ZW0uZmllbGROYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgY29sLmhpZGRlbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRDb2x1bW5zVmlzaWJpbGl0eSh2YWx1ZSkge1xuICAgICAgICBpZiAodGhpcy5ncmlkLmNvbHVtbkxpc3QubGVuZ3RoID4gMCAmJiAhdGhpcy5ncmlkLmhhc0NvbHVtbkxheW91dHMpIHtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnMuZm9yRWFjaCgoZXhwcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbCA9IHRoaXMuZ3JpZC5nZXRDb2x1bW5CeU5hbWUoZXhwci5maWVsZE5hbWUpO1xuICAgICAgICAgICAgICAgIGNvbC5oaWRkZW4gPSB2YWx1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iXX0=
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ncmlkLWdyb3VwLWJ5LWFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL2dyb3VwaW5nL3RyZWUtZ3JpZC1ncm91cC1ieS1hcmVhLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUwsZUFBZSxHQUVsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFcEU7Ozs7R0FJRztBQU1ILE1BQU0sT0FBTywrQkFBZ0MsU0FBUSx1QkFBdUI7SUFrQnhFLFlBQW9CLE9BQXdCLEVBQUUsR0FBNEIsRUFBRSxRQUFzQjtRQUM5RixLQUFLLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBREwsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFKcEMsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBRTVCLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO0lBSXRDLENBQUM7SUFuQkQsSUFDVyxrQkFBa0I7UUFDekIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQVcsa0JBQWtCLENBQUMsS0FBYztRQUN4QyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDdkMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BDO1FBRUQsSUFBSSxD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QUN2QixDQUFDLENBQUMsQ0FBQzthQUNOO1NBQ0o7SUFDTCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsS0FBSztRQUM5QixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQzdELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQzlCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDdEQsR0FBRyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDdkIsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7OztZQWpKSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDZCQUE2QjtnQkFDdkMsMHREQUEyQztnQkFDM0MsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLCtCQUErQixFQUFFLENBQUM7YUFDbEc7OztZQXBCRyxlQUFlO1lBSGYsVUFBVTtZQVNMLFlBQVk7OztpQ0FnQmhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgSXRlcmFibGVEaWZmZXIsXG4gICAgSXRlcmFibGVEaWZmZXJzLFxuICAgIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJQ2hpcHNBcmVhUmVvcmRlckV2ZW50QXJncyB9IGZyb20gJy4uLy4uL2NoaXBzL3B1YmxpY19hcGknO1xuaW1wb3J0IHsgUGxhdGZvcm1VdGlsIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBJR3JvdXBpbmdFeHByZXNzaW9uIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2dyb3VwaW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElTb3J0aW5nRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9zb3J0aW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElneEdyb3VwQnlBcmVhRGlyZWN0aXZlIH0gZnJvbSAnLi9ncm91cC1ieS1hcmVhLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogQW4gaW50ZXJuYWwgY29tcG9uZW50IHJlcHJlc2VudGluZyB0aGUgZ3JvdXAtYnkgZHJvcCBhcmVhIGZvciB0aGUgaWd4LWdyaWQgY29tcG9uZW50LlxuICpcbiAqIEBoaWRkZW4gQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnaWd4LXRyZWUtZ3JpZC1ncm91cC1ieS1hcmVhJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2dyb3VwLWJ5LWFyZWEuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogSWd4R3JvdXBCeUFyZWFEaXJlY3RpdmUsIHVzZUV4aXN0aW5nOiBJZ3hUcmVlR3JpZEdyb3VwQnlBcmVhQ29tcG9uZW50IH1dXG59KVxuZXhwb3J0IGNsYXNzIElneFRyZWVHcmlkR3JvdXBCeUFyZWFDb21wb25lbnQgZXh0ZW5kcyBJZ3hHcm91cEJ5QXJlYURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGhpZGVHcm91cGVkQ29sdW1ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hpZGVHcm91cGVkQ29sdW1ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGhpZGVHcm91cGVkQ29sdW1ucyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy5ncmlkLmNvbHVtbnMgJiYgdGhpcy5leHByZXNzaW9ucykge1xuICAgICAgICAgICAgdGhpcy5zZXRDb2x1bW5zVmlzaWJpbGl0eSh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9oaWRlR3JvdXBlZENvbHVtbnMgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9oaWRlR3JvdXBlZENvbHVtbnMgPSBmYWxzZTtcbiAgICBwcml2YXRlIGdyb3VwaW5nRGlmZmVyOiBJdGVyYWJsZURpZmZlcjxJR3JvdXBpbmdFeHByZXNzaW9uPjtcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWZmZXJzOiBJdGVyYWJsZURpZmZlcnMsIHJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sIHBsYXRmb3JtOiBQbGF0Zm9ybVV0aWwpIHtcbiAgICAgICAgc3VwZXIocmVmLCBwbGF0Zm9ybSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZ3JpZC5jb2x1bW5zICYmIHRoaXMuZXhwcmVzc2lvbnMpIHtcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBpbmdEaWZmZXIgPSB0aGlzLmRpZmZlcnMuZmluZCh0aGlzLmV4cHJlc3Npb25zKS5jcmVhdGUoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ29sdW1uc1Zpc2liaWxpdHkoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ3JpZC5zb3J0aW5nRXhwcmVzc2lvbnNDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoc29ydGluZ0V4cHJlc3Npb25zOiBJU29ydGluZ0V4cHJlc3Npb25bXSkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmV4cHJlc3Npb25zIHx8ICF0aGlzLmV4cHJlc3Npb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IGNoYW5nZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgc29ydGluZ0V4cHJlc3Npb25zLmZvckVhY2goKHNvcnRFeHByOiBJU29ydGluZ0V4cHJlc3Npb24pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSBzb3J0RXhwci5maWVsZE5hbWU7XG4gICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBpbmdFeHByID0gdGhpcy5leHByZXNzaW9ucy5maW5kKGV4ID0+IGV4LmZpZWxkTmFtZSA9PT0gZmllbGROYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAoZ3JvdXBpbmdFeHByICYmIGdyb3VwaW5nRXhwci5kaXIgIT09IHNvcnRFeHByLmRpcikge1xuICAgICAgICAgICAgICAgICAgICBncm91cGluZ0V4cHIuZGlyID0gc29ydEV4cHIuZGlyO1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV4cHJlc3Npb25zID0gWy4uLnRoaXMuZXhwcmVzc2lvbnNdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVSZW9yZGVyKGV2ZW50OiBJQ2hpcHNBcmVhUmVvcmRlckV2ZW50QXJncykge1xuICAgICAgICBjb25zdCB7IGNoaXBzQXJyYXksIG9yaWdpbmFsRXZlbnQgfSA9IGV2ZW50O1xuICAgICAgICBjb25zdCBuZXdFeHByZXNzaW9ucyA9IHRoaXMuZ2V0UmVvcmRlcmVkRXhwcmVzc2lvbnMoY2hpcHNBcnJheSk7XG5cbiAgICAgICAgdGhpcy5jaGlwRXhwcmVzc2lvbnMgPSBuZXdFeHByZXNzaW9ucztcblxuICAgICAgICAvLyBXaGVuIHJlb3JkZXJlZCB1c2luZyBrZXlib2FyZCBuYXZpZ2F0aW9uLCB3ZSBkb24ndCBoYXZlIGBvbk1vdmVFbmRgIGV2ZW50LlxuICAgICAgICBpZiAob3JpZ2luYWxFdmVudCBpbnN0YW5jZW9mIEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnMgPSBuZXdFeHByZXNzaW9ucztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVNb3ZlRW5kKCkge1xuICAgICAgICB0aGlzLmV4cHJlc3Npb25zID0gdGhpcy5jaGlwRXhwcmVzc2lvbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGdyb3VwQnkoZXhwcmVzc2lvbjogSUdyb3VwaW5nRXhwcmVzc2lvbikge1xuICAgICAgICB0aGlzLmV4cHJlc3Npb25zLnB1c2goZXhwcmVzc2lvbik7XG4gICAgICAgIHRoaXMuZXhwcmVzc2lvbnMgPSBbLi4udGhpcy5leHByZXNzaW9uc107XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyR3JvdXBpbmcobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZXhwcmVzc2lvbnMgPSB0aGlzLmV4cHJlc3Npb25zLmZpbHRlcihpdGVtID0+IGl0ZW0uZmllbGROYW1lICE9PSBuYW1lKTtcbiAgICAgICAgdGhpcy5ncmlkLnNvcnRpbmdFeHByZXNzaW9ucyA9IHRoaXMuZ3JpZC5zb3J0aW5nRXhwcmVzc2lvbnMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5maWVsZE5hbWUgIT09IG5hbWUpO1xuICAgICAgICB0aGlzLmdyaWQubm90aWZ5Q2hhbmdlcyh0cnVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZXhwcmVzc2lvbnNDaGFuZ2VkKCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVNvcnRpbmdFeHByZXNzaW9ucygpO1xuICAgICAgICB0aGlzLnVwZGF0ZUNvbHVtbnNWaXNpYmlsaXR5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVTb3J0aW5nRXhwcmVzc2lvbnMoKSB7XG4gICAgICAgIGNvbnN0IHNvcnRpbmdFeHByZXNzaW9ucyA9IHRoaXMuZ3JpZC5zb3J0aW5nRXhwcmVzc2lvbnM7XG4gICAgICAgIGxldCBjaGFuZ2VkID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5leHByZXNzaW9ucy5mb3JFYWNoKChleHByLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc29ydGluZ0luZGV4ID0gc29ydGluZ0V4cHJlc3Npb25zLmZpbmRJbmRleChzID0+IHMuZmllbGROYW1lID09PSBleHByLmZpZWxkTmFtZSk7XG5cbiAgICAgICAgICAgIGlmIChzb3J0aW5nSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgIGlmIChzb3J0aW5nSW5kZXggIT09IGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvcnRFeHByID0gc29ydGluZ0V4cHJlc3Npb25zLnNwbGljZShzb3J0aW5nSW5kZXgsIDEpWzBdO1xuICAgICAgICAgICAgICAgICAgICBzb3J0RXhwci5kaXIgPSBleHByLmRpcjtcbiAgICAgICAgICAgICAgICAgICAgc29ydGluZ0V4cHJlc3Npb25zLnNwbGljZShpbmRleCwgMCwgc29ydEV4cHIpO1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNvcnRpbmdFeHByZXNzaW9uc1tzb3J0aW5nSW5kZXhdLmRpciAhPT0gZXhwci5kaXIpIHtcbiAgICAgICAgICAgICAgICAgICAgc29ydGluZ0V4cHJlc3Npb25zW3NvcnRpbmdJbmRleF0uZGlyID0gZXhwci5kaXI7XG4gICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhwckNvcHkgPSB7IC4uLmV4cHIgfTtcbiAgICAgICAgICAgICAgICBzb3J0aW5nRXhwcmVzc2lvbnMuc3BsaWNlKGluZGV4LCAwLCBleHByQ29weSk7XG4gICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZ3JpZC5zb3J0aW5nRXhwcmVzc2lvbnMgPSBbLi4uc29ydGluZ0V4cHJlc3Npb25zXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQ29sdW1uc1Zpc2liaWxpdHkoKSB7XG4gICAgICAgIGlmICh0aGlzLmdyb3VwaW5nRGlmZmVyICYmIHRoaXMuZ3JpZC5jb2x1bW5zICYmICF0aGlzLmdyaWQuaGFzQ29sdW1uTGF5b3V0cykge1xuICAgICAgICAgICAgY29uc3QgY2hhbmdlcyA9IHRoaXMuZ3JvdXBpbmdEaWZmZXIuZGlmZih0aGlzLmV4cHJlc3Npb25zKTtcbiAgICAgICAgICAgIGlmIChjaGFuZ2VzICYmIHRoaXMuZ3JpZC5jb2x1bW5zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBjaGFuZ2VzLmZvckVhY2hBZGRlZEl0ZW0oKHJlYykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2wgPSB0aGlzLmdyaWQuZ2V0Q29sdW1uQnlOYW1lKHJlYy5pdGVtLmZpZWxkTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbC5oaWRkZW4gPSB0aGlzLmhpZGVHcm91cGVkQ29sdW1ucztcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjaGFuZ2VzLmZvckVhY2hSZW1vdmVkSXRlbSgocmVjKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbCA9IHRoaXMuZ3JpZC5nZXRDb2x1bW5CeU5hbWUocmVjLml0ZW0uZmllbGROYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgY29sLmhpZGRlbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRDb2x1bW5zVmlzaWJpbGl0eSh2YWx1ZSkge1xuICAgICAgICBpZiAodGhpcy5ncmlkLmNvbHVtbnMubGVuZ3RoID4gMCAmJiAhdGhpcy5ncmlkLmhhc0NvbHVtbkxheW91dHMpIHtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnMuZm9yRWFjaCgoZXhwcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbCA9IHRoaXMuZ3JpZC5nZXRDb2x1bW5CeU5hbWUoZXhwci5maWVsZE5hbWUpO1xuICAgICAgICAgICAgICAgIGNvbC5oaWRkZW4gPSB2YWx1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iXX0=
@@ -63,7 +63,7 @@ export class IgxHierarchicalGridBaseDirective extends IgxGridBaseDirective {
63
63
  */
64
64
  get maxLevelHeaderDepth() {
65
65
  if (this._maxLevelHeaderDepth === null) {
66
- this._maxLevelHeaderDepth = this.columnList.reduce((acc, col) => Math.max(acc, col.level), 0);
66
+ this._maxLevelHeaderDepth = this.columns.reduce((acc, col) => Math.max(acc, col.level), 0);
67
67
  }
68
68
  return this._maxLevelHeaderDepth;
69
69
  }
@@ -106,13 +106,12 @@ export class IgxHierarchicalGridBaseDirective extends IgxGridBaseDirective {
106
106
  columns.push(ref.instance);
107
107
  });
108
108
  const result = flatten(columns);
109
- this.columnList.reset(result);
110
- this.columnList.notifyOnChanges();
109
+ this.updateColumns(result);
111
110
  this.initPinning();
112
111
  const factoryColumn = this.resolver.resolveComponentFactory(IgxColumnComponent);
113
112
  const outputs = factoryColumn.outputs.filter(o => o.propName !== 'columnChange');
114
113
  outputs.forEach(output => {
115
- this.columnList.forEach(column => {
114
+ this.columns.forEach(column => {
116
115
  if (column[output.propName]) {
117
116
  column[output.propName].pipe(takeUntil(column.destroy$)).subscribe((args) => {
118
117
  const rowIslandColumn = this.parentIsland.childColumns.find(col => col.field === column.field);
@@ -218,4 +217,4 @@ const flatten = (arr) => {
218
217
  };
219
218
  const ɵ0 = flatten;
220
219
  export { ɵ0 };
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGllcmFyY2hpY2FsLWdyaWQtYmFzZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvaGllcmFyY2hpY2FsLWdyaWQvaGllcmFyY2hpY2FsLWdyaWQtYmFzZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFVBQVUsRUFDVixNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLHdCQUF3QixFQUN4QixRQUFRLEVBQ1IsS0FBSyxFQUNMLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBQ1osU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBMEIsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQTBDLE1BQU0sMkJBQTJCLENBQUM7QUFDN0gsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXpFLE9BQU8sRUFB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WUE1T0osU0FBUzs7O1lBdkJELHVCQUF1QjtZQUV2Qix3QkFBd0I7WUFaeEIsa0JBQWtCO1lBbUJsQix5QkFBeUI7WUFwQzlCLFVBQVU7WUFDVixNQUFNOzRDQXNLRCxNQUFNLFNBQUMsUUFBUTtZQXJLcEIsaUJBQWlCO1lBSWpCLHdCQUF3QjtZQUh4QixlQUFlO1lBQ2YsZ0JBQWdCO1lBcUJYLG9DQUFvQztZQUxwQyxtQkFBbUI7WUFHbkIsaUJBQWlCLHVCQXVKakIsTUFBTSxTQUFDLGlCQUFpQjtZQXBKeEIscUJBQXFCOzRDQXNKckIsUUFBUSxZQUFJLE1BQU0sU0FBQyxtQkFBbUI7eUNBQ3RDLE1BQU0sU0FBQyxTQUFTO1lBOUloQixZQUFZOzRDQWdKWixRQUFRLFlBQUksTUFBTSxTQUFDLGtCQUFrQjs7OzZCQXRIekMsS0FBSzs0QkFjTCxLQUFLOzBCQVlMLE1BQU07b0NBT04sU0FBUyxTQUFDLHVCQUF1QixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOztBQW1NM0UsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFVLEVBQUUsRUFBRTtJQUMzQixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFFaEIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEIsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO1lBQ2IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzFEO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEVsZW1lbnRSZWYsXG4gICAgTmdab25lLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIEl0ZXJhYmxlRGlmZmVycyxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIEluamVjdCxcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgT3B0aW9uYWwsXG4gICAgSW5wdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIExPQ0FMRV9JRFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneEdyaWRCYXNlRGlyZWN0aXZlLCBJZ3hHcmlkVHJhbnNhY3Rpb24gfSBmcm9tICcuLi9ncmlkLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEdyaWRCYXNlQVBJU2VydmljZSB9IGZyb20gJy4uL2FwaS5zZXJ2aWNlJztcbmltcG9ydCB7IElneEhpZXJhcmNoaWNhbEdyaWRBUElTZXJ2aWNlIH0gZnJvbSAnLi9oaWVyYXJjaGljYWwtZ3JpZC1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBJZ3hSb3dJc2xhbmRDb21wb25lbnQgfSBmcm9tICcuL3Jvdy1pc2xhbmQuY29tcG9uZW50JztcbmltcG9ydCB7IElneEZpbHRlcmluZ1NlcnZpY2UgfSBmcm9tICcuLi9maWx0ZXJpbmcvZ3JpZC1maWx0ZXJpbmcuc2VydmljZSc7XG5pbXBvcnQgeyBJRGlzcGxheURlbnNpdHlPcHRpb25zLCBEaXNwbGF5RGVuc2l0eVRva2VuIH0gZnJvbSAnLi4vLi4vY29yZS9kaXNwbGF5RGVuc2l0eSc7XG5pbXBvcnQgeyBJZ3hTdW1tYXJ5T3BlcmFuZCB9IGZyb20gJy4uL3N1bW1hcmllcy9ncmlkLXN1bW1hcnknO1xuaW1wb3J0IHsgSWd4T3ZlcmxheVNlcnZpY2UsIElneFRyYW5zYWN0aW9uU2VydmljZSwgU3RhdGUsIFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wdWJsaWNfYXBpJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElneEhpZXJhcmNoaWNhbEdyaWROYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4vaGllcmFyY2hpY2FsLWdyaWQtbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IElneEdyaWRTdW1tYXJ5U2VydmljZSB9IGZyb20gJy4uL3N1bW1hcmllcy9ncmlkLXN1bW1hcnkuc2VydmljZSc7XG5pbXBvcnQgeyBJZ3hHcmlkU2VsZWN0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlbGVjdGlvbi9zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBJZ3hDaGlsZEdyaWRSb3dDb21wb25lbnQgfSBmcm9tICcuL2NoaWxkLWdyaWQtcm93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hDb2x1bW5SZXNpemluZ1NlcnZpY2UgfSBmcm9tICcuLi9yZXNpemluZy9yZXNpemluZy5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRUeXBlIH0gZnJvbSAnLi4vY29tbW9uL2dyaWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElneENvbHVtbkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi4vY29sdW1ucy9jb2x1bW4tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IElneENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbHVtbnMvY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJRm9yT2ZTdGF0ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZm9yLW9mL2Zvcl9vZi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUGxhdGZvcm1VdGlsIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBJZ3hGbGF0VHJhbnNhY3Rpb25GYWN0b3J5IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24tZmFjdG9yeS5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IGhpZXJhcmNoaWNhbFRyYW5zYWN0aW9uU2VydmljZUZhY3RvcnkgPSAoKSA9PiBuZXcgSWd4VHJhbnNhY3Rpb25TZXJ2aWNlKCk7XG5cbmV4cG9ydCBjb25zdCBJZ3hIaWVyYXJjaGljYWxUcmFuc2FjdGlvblNlcnZpY2VGYWN0b3J5ID0ge1xuICAgIHByb3ZpZGU6IElneEdyaWRUcmFuc2FjdGlvbixcbiAgICB1c2VGYWN0b3J5OiBoaWVyYXJjaGljYWxUcmFuc2FjdGlvblNlcnZpY2VGYWN0b3J5XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElQYXRoU2VnbWVudCB7XG4gICAgcm93SUQ6IGFueTtcbiAgICByb3dJc2xhbmRLZXk6IHN0cmluZztcbn1cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSWd4SGllcmFyY2hpY2FsR3JpZEJhc2VEaXJlY3RpdmUgZXh0ZW5kcyBJZ3hHcmlkQmFzZURpcmVjdGl2ZSB7XG4gICAgLyoqXG4gICAgICogR2V0cy9TZXRzIHRoZSBrZXkgaW5kaWNhdGluZyB3aGV0aGVyIGEgcm93IGhhcyBjaGlsZHJlbi4gSWYgcm93IGhhcyBubyBjaGlsZHJlbiBpdCBkb2VzIG5vdCByZW5kZXIgYW4gZXhwYW5kIGluZGljYXRvci5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtaGllcmFyY2hpY2FsLWdyaWQgI2dyaWQgW2RhdGFdPVwibG9jYWxEYXRhXCIgW2hhc0NoaWxkcmVuS2V5XT1cIidoYXNFbXBsb3llZXMnXCI+XG4gICAgICogPC9pZ3gtaGllcmFyY2hpY2FsLWdyaWQ+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaGFzQ2hpbGRyZW5LZXk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEdldHMvU2V0cyB3aGV0aGVyIHRoZSBleHBhbmQvY29sbGFwc2UgYWxsIGJ1dHRvbiBpbiB0aGUgaGVhZGVyIHNob3VsZCBiZSByZW5kZXJlZC5cbiAgICAgKlxuICAgICAqIEByZW1hcmtcbiAgICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBmYWxzZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWhpZXJhcmNoaWNhbC1ncmlkICNncmlkIFtkYXRhXT1cImxvY2FsRGF0YVwiIFtzaG93RXhwYW5kQWxsXT1cInRydWVcIj5cbiAgICAgKiA8L2lneC1oaWVyYXJjaGljYWwtZ3JpZD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93RXhwYW5kQWxsID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIHdoZW4gYSBuZXcgY2h1bmsgb2YgZGF0YSBpcyBsb2FkZWQgZnJvbSB2aXJ0dWFsaXphdGlvbi5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqICA8aWd4LWhpZXJhcmNoaWNhbC1ncmlkIFtpZF09XCInaWd4LWdyaWQtMSdcIiBbZGF0YV09XCJEYXRhXCIgW2F1dG9HZW5lcmF0ZV09XCJ0cnVlXCIgKGRhdGFQcmVMb2FkKT1cImhhbmRsZUV2ZW50KClcIj5cbiAgICAgKiAgPC9pZ3gtaGllcmFyY2hpY2FsLWdyaWQ+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGRhdGFQcmVMb2FkID0gbmV3IEV2ZW50RW1pdHRlcjxJRm9yT2ZTdGF0ZT4oKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdkcmFnSW5kaWNhdG9ySWNvbkJhc2UnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgZHJhZ0luZGljYXRvckljb25CYXNlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgbWF4TGV2ZWxIZWFkZXJEZXB0aCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX21heExldmVsSGVhZGVyRGVwdGggPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX21heExldmVsSGVhZGVyRGVwdGggPSB0aGlzLmNvbHVtbkxpc3QucmVkdWNlKChhY2MsIGNvbCkgPT4gTWF0aC5tYXgoYWNjLCBjb2wubGV2ZWwpLCAwKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fbWF4TGV2ZWxIZWFkZXJEZXB0aDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBvdXRsZXQgdXNlZCB0byBhdHRhY2ggdGhlIGdyaWQncyBvdmVybGF5cyB0by5cbiAgICAgKlxuICAgICAqIEByZW1hcmtcbiAgICAgKiBJZiBzZXQsIHJldHVybnMgdGhlIG91dGxldCBkZWZpbmVkIG91dHNpZGUgdGhlIGdyaWQuIE90aGVyd2lzZSByZXR1cm5zIHRoZSBncmlkJ3MgaW50ZXJuYWwgb3V0bGV0IGRpcmVjdGl2ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IG91dGxldCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm9vdEdyaWQgPyB0aGlzLnJvb3RHcmlkLnJlc29sdmVPdXRsZXQoKSA6IHRoaXMucmVzb2x2ZU91dGxldCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIG91dGxldCB1c2VkIHRvIGF0dGFjaCB0aGUgZ3JpZCdzIG92ZXJsYXlzIHRvLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgb3V0bGV0KHZhbDogYW55KSB7XG4gICAgICAgIHRoaXMuX3VzZXJPdXRsZXREaXJlY3RpdmUgPSB2YWw7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIGJhdGNoRWRpdGluZ0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgcHVibGljIGdldCBiYXRjaEVkaXRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9iYXRjaEVkaXRpbmc7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBiYXRjaEVkaXRpbmcodmFsOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWwgIT09IHRoaXMuX2JhdGNoRWRpdGluZykge1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3RyYW5zYWN0aW9ucztcbiAgICAgICAgICAgIHRoaXMuc3dpdGNoVHJhbnNhY3Rpb25TZXJ2aWNlKHZhbCk7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmliZVRvVHJhbnNhY3Rpb25zKCk7XG4gICAgICAgICAgICB0aGlzLmJhdGNoRWRpdGluZ0NoYW5nZS5lbWl0KHZhbCk7XG4gICAgICAgICAgICB0aGlzLl9iYXRjaEVkaXRpbmcgPSB2YWw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGhncmlkQVBJOiBJZ3hIaWVyYXJjaGljYWxHcmlkQVBJU2VydmljZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgcGFyZW50SXNsYW5kOiBJZ3hSb3dJc2xhbmRDb21wb25lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGNoaWxkUm93OiBJZ3hDaGlsZEdyaWRSb3dDb21wb25lbnQ7XG5cbiAgICBwdWJsaWMgYWJzdHJhY3Qgcm9vdEdyaWQ7XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgZXhwYW5kQ2hpbGRyZW46IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHNlbGVjdGlvblNlcnZpY2U6IElneEdyaWRTZWxlY3Rpb25TZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgY29sUmVzaXppbmdTZXJ2aWNlOiBJZ3hDb2x1bW5SZXNpemluZ1NlcnZpY2UsXG4gICAgICAgIGdyaWRBUEk6IEdyaWRCYXNlQVBJU2VydmljZTxJZ3hHcmlkQmFzZURpcmVjdGl2ZSAmIEdyaWRUeXBlPixcbiAgICAgICAgcHJvdGVjdGVkIHRyYW5zYWN0aW9uRmFjdG9yeTogSWd4RmxhdFRyYW5zYWN0aW9uRmFjdG9yeSxcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgem9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwdWJsaWMgZG9jdW1lbnQsXG4gICAgICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIGRpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycyxcbiAgICAgICAgdmlld1JlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgbmF2aWdhdGlvbjogSWd4SGllcmFyY2hpY2FsR3JpZE5hdmlnYXRpb25TZXJ2aWNlLFxuICAgICAgICBmaWx0ZXJpbmdTZXJ2aWNlOiBJZ3hGaWx0ZXJpbmdTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KElneE92ZXJsYXlTZXJ2aWNlKSBwcm90ZWN0ZWQgb3ZlcmxheVNlcnZpY2U6IElneE92ZXJsYXlTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgc3VtbWFyeVNlcnZpY2U6IElneEdyaWRTdW1tYXJ5U2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChEaXNwbGF5RGVuc2l0eVRva2VuKSBwcm90ZWN0ZWQgX2Rpc3BsYXlEZW5zaXR5T3B0aW9uczogSURpc3BsYXlEZW5zaXR5T3B0aW9ucyxcbiAgICAgICAgQEluamVjdChMT0NBTEVfSUQpIGxvY2FsZUlkOiBzdHJpbmcsXG4gICAgICAgIHByb3RlY3RlZCBwbGF0Zm9ybTogUGxhdGZvcm1VdGlsLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KElneEdyaWRUcmFuc2FjdGlvbikgcHJvdGVjdGVkIF9kaVRyYW5zYWN0aW9ucz86IFRyYW5zYWN0aW9uU2VydmljZTxUcmFuc2FjdGlvbiwgU3RhdGU+KSB7XG4gICAgICAgIHN1cGVyKFxuICAgICAgICAgICAgc2VsZWN0aW9uU2VydmljZSxcbiAgICAgICAgICAgIGNvbFJlc2l6aW5nU2VydmljZSxcbiAgICAgICAgICAgIGdyaWRBUEksXG4gICAgICAgICAgICB0cmFuc2FjdGlvbkZhY3RvcnksXG4gICAgICAgICAgICBlbGVtZW50UmVmLFxuICAgICAgICAgICAgem9uZSxcbiAgICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgICAgY2RyLFxuICAgICAgICAgICAgcmVzb2x2ZXIsXG4gICAgICAgICAgICBkaWZmZXJzLFxuICAgICAgICAgICAgdmlld1JlZixcbiAgICAgICAgICAgIG5hdmlnYXRpb24sXG4gICAgICAgICAgICBmaWx0ZXJpbmdTZXJ2aWNlLFxuICAgICAgICAgICAgb3ZlcmxheVNlcnZpY2UsXG4gICAgICAgICAgICBzdW1tYXJ5U2VydmljZSxcbiAgICAgICAgICAgIF9kaXNwbGF5RGVuc2l0eU9wdGlvbnMsXG4gICAgICAgICAgICBsb2NhbGVJZCxcbiAgICAgICAgICAgIHBsYXRmb3JtKTtcbiAgICAgICAgdGhpcy5oZ3JpZEFQSSA9IGdyaWRBUEkgYXMgSWd4SGllcmFyY2hpY2FsR3JpZEFQSVNlcnZpY2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBjcmVhdGVDb2x1bW5zTGlzdChjb2xzOiBBcnJheTxhbnk+KSB7XG4gICAgICAgIGNvbnN0IGNvbHVtbnMgPSBbXTtcbiAgICAgICAgY29uc3QgdG9wTGV2ZWxDb2xzID0gY29scy5maWx0ZXIoYyA9PiBjLmxldmVsID09PSAwKTtcbiAgICAgICAgdG9wTGV2ZWxDb2xzLmZvckVhY2goKGNvbCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVmID0gdGhpcy5fY3JlYXRlQ29sdW1uKGNvbCk7XG4gICAgICAgICAgICByZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgY29sdW1ucy5wdXNoKHJlZi5pbnN0YW5jZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBmbGF0dGVuKGNvbHVtbnMpO1xuICAgICAgICB0aGlzLmNvbHVtbkxpc3QucmVzZXQocmVzdWx0KTtcbiAgICAgICAgdGhpcy5jb2x1bW5MaXN0Lm5vdGlmeU9uQ2hhbmdlcygpO1xuICAgICAgICB0aGlzLmluaXRQaW5uaW5nKCk7XG5cbiAgICAgICAgY29uc3QgZmFjdG9yeUNvbHVtbiA9IHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoSWd4Q29sdW1uQ29tcG9uZW50KTtcbiAgICAgICAgY29uc3Qgb3V0cHV0cyA9IGZhY3RvcnlDb2x1bW4ub3V0cHV0cy5maWx0ZXIobyA9PiBvLnByb3BOYW1lICE9PSAnY29sdW1uQ2hhbmdlJyk7XG4gICAgICAgIG91dHB1dHMuZm9yRWFjaChvdXRwdXQgPT4ge1xuICAgICAgICAgICAgdGhpcy5jb2x1bW5MaXN0LmZvckVhY2goY29sdW1uID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY29sdW1uW291dHB1dC5wcm9wTmFtZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uW291dHB1dC5wcm9wTmFtZV0ucGlwZSh0YWtlVW50aWwoY29sdW1uLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChhcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByb3dJc2xhbmRDb2x1bW4gPSB0aGlzLnBhcmVudElzbGFuZC5jaGlsZENvbHVtbnMuZmluZChjb2wgPT4gY29sLmZpZWxkID09PSBjb2x1bW4uZmllbGQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcm93SXNsYW5kQ29sdW1uW291dHB1dC5wcm9wTmFtZV0uZW1pdCh7IGFyZ3MsIG93bmVyOiB0aGlzIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9jcmVhdGVDb2x1bW4oY29sKSB7XG4gICAgICAgIGxldCByZWY7XG4gICAgICAgIGlmIChjb2wgaW5zdGFuY2VvZiBJZ3hDb2x1bW5Hcm91cENvbXBvbmVudCkge1xuICAgICAgICAgICAgcmVmID0gdGhpcy5fY3JlYXRlQ29sR3JvdXBDb21wb25lbnQoY29sKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlZiA9IHRoaXMuX2NyZWF0ZUNvbENvbXBvbmVudChjb2wpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZWY7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9jcmVhdGVDb2xHcm91cENvbXBvbmVudChjb2w6IElneENvbHVtbkdyb3VwQ29tcG9uZW50KSB7XG4gICAgICAgIGNvbnN0IGZhY3RvcnlHcm91cCA9IHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoSWd4Q29sdW1uR3JvdXBDb21wb25lbnQpO1xuICAgICAgICBjb25zdCByZWYgPSB0aGlzLnZpZXdSZWYuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnlHcm91cCwgbnVsbCwgdGhpcy52aWV3UmVmLmluamVjdG9yKTtcbiAgICAgICAgcmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgZmFjdG9yeUdyb3VwLmlucHV0cy5mb3JFYWNoKChpbnB1dCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvcE5hbWUgPSBpbnB1dC5wcm9wTmFtZTtcbiAgICAgICAgICAgIHJlZi5pbnN0YW5jZVtwcm9wTmFtZV0gPSBjb2xbcHJvcE5hbWVdO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGNvbC5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdDaGlsZHJlbiA9IFtdO1xuICAgICAgICAgICAgY29sLmNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0NvbCA9IHRoaXMuX2NyZWF0ZUNvbHVtbihjaGlsZCkuaW5zdGFuY2U7XG4gICAgICAgICAgICAgICAgbmV3Q29sLnBhcmVudCA9IHJlZi5pbnN0YW5jZTtcbiAgICAgICAgICAgICAgICBuZXdDaGlsZHJlbi5wdXNoKG5ld0NvbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJlZi5pbnN0YW5jZS5jaGlsZHJlbi5yZXNldChuZXdDaGlsZHJlbik7XG4gICAgICAgICAgICByZWYuaW5zdGFuY2UuY2hpbGRyZW4ubm90aWZ5T25DaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlZjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2NyZWF0ZUNvbENvbXBvbmVudChjb2wpIHtcbiAgICAgICAgY29uc3QgZmFjdG9yeUNvbHVtbiA9IHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoSWd4Q29sdW1uQ29tcG9uZW50KTtcbiAgICAgICAgY29uc3QgcmVmID0gdGhpcy52aWV3UmVmLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5Q29sdW1uLCBudWxsLCB0aGlzLnZpZXdSZWYuaW5qZWN0b3IpO1xuICAgICAgICBmYWN0b3J5Q29sdW1uLmlucHV0cy5mb3JFYWNoKChpbnB1dCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvcE5hbWUgPSBpbnB1dC5wcm9wTmFtZTtcbiAgICAgICAgICAgIGlmICghKGNvbFtwcm9wTmFtZV0gaW5zdGFuY2VvZiBJZ3hTdW1tYXJ5T3BlcmFuZCkpIHtcbiAgICAgICAgICAgICAgICByZWYuaW5zdGFuY2VbcHJvcE5hbWVdID0gY29sW3Byb3BOYW1lXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVmLmluc3RhbmNlW3Byb3BOYW1lXSA9IGNvbFtwcm9wTmFtZV0uY29uc3RydWN0b3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVmO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRHcmlkc0ZvcklzbGFuZChyb3dJc2xhbmRJRDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhncmlkQVBJLmdldENoaWxkR3JpZHNGb3JSb3dJc2xhbmQocm93SXNsYW5kSUQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRDaGlsZEdyaWQocGF0aDogQXJyYXk8SVBhdGhTZWdtZW50Pikge1xuICAgICAgICBpZiAoIXBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5oZ3JpZEFQSS5nZXRDaGlsZEdyaWQocGF0aCk7XG4gICAgfVxufVxuXG5jb25zdCBmbGF0dGVuID0gKGFycjogYW55W10pID0+IHtcbiAgICBsZXQgcmVzdWx0ID0gW107XG5cbiAgICBhcnIuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGVsKTtcbiAgICAgICAgaWYgKGVsLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KGZsYXR0ZW4oZWwuY2hpbGRyZW4udG9BcnJheSgpKSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbiJdfQ==
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGllcmFyY2hpY2FsLWdyaWQtYmFzZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvaGllcmFyY2hpY2FsLWdyaWQvaGllcmFyY2hpY2FsLWdyaWQtYmFzZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFVBQVUsRUFDVixNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLHdCQUF3QixFQUN4QixRQUFRLEVBQ1IsS0FBSyxFQUNMLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBQ1osU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBMEIsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQTBDLE1BQU0sMkJBQTJCLENBQUM7QUFDN0gsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXpFLE9BQU8sRUFB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O1lBbUJsQix5QkFBeUI7WUFwQzlCLFVBQVU7WUFDVixNQUFNOzRDQXNLRCxNQUFNLFNBQUMsUUFBUTtZQXJLcEIsaUJBQWlCO1lBSWpCLHdCQUF3QjtZQUh4QixlQUFlO1lBQ2YsZ0JBQWdCO1lBcUJYLG9DQUFvQztZQUxwQyxtQkFBbUI7WUFHbkIsaUJBQWlCLHVCQXVKakIsTUFBTSxTQUFDLGlCQUFpQjtZQXBKeEIscUJBQXFCOzRDQXNKckIsUUFBUSxZQUFJLE1BQU0sU0FBQyxtQkFBbUI7eUNBQ3RDLE1BQU0sU0FBQyxTQUFTO1lBOUloQixZQUFZOzRDQWdKWixRQUFRLFlBQUksTUFBTSxTQUFDLGtCQUFrQjs7OzZCQXRIekMsS0FBSzs0QkFjTCxLQUFLOzBCQVlMLE1BQU07b0NBT04sU0FBUyxTQUFDLHVCQUF1QixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOztBQWtNM0UsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFVLEVBQUUsRUFBRTtJQUMzQixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFFaEIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEIsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO1lBQ2IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzFEO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEVsZW1lbnRSZWYsXG4gICAgTmdab25lLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIEl0ZXJhYmxlRGlmZmVycyxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIEluamVjdCxcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgT3B0aW9uYWwsXG4gICAgSW5wdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIExPQ0FMRV9JRFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneEdyaWRCYXNlRGlyZWN0aXZlLCBJZ3hHcmlkVHJhbnNhY3Rpb24gfSBmcm9tICcuLi9ncmlkLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEdyaWRCYXNlQVBJU2VydmljZSB9IGZyb20gJy4uL2FwaS5zZXJ2aWNlJztcbmltcG9ydCB7IElneEhpZXJhcmNoaWNhbEdyaWRBUElTZXJ2aWNlIH0gZnJvbSAnLi9oaWVyYXJjaGljYWwtZ3JpZC1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBJZ3hSb3dJc2xhbmRDb21wb25lbnQgfSBmcm9tICcuL3Jvdy1pc2xhbmQuY29tcG9uZW50JztcbmltcG9ydCB7IElneEZpbHRlcmluZ1NlcnZpY2UgfSBmcm9tICcuLi9maWx0ZXJpbmcvZ3JpZC1maWx0ZXJpbmcuc2VydmljZSc7XG5pbXBvcnQgeyBJRGlzcGxheURlbnNpdHlPcHRpb25zLCBEaXNwbGF5RGVuc2l0eVRva2VuIH0gZnJvbSAnLi4vLi4vY29yZS9kaXNwbGF5RGVuc2l0eSc7XG5pbXBvcnQgeyBJZ3hTdW1tYXJ5T3BlcmFuZCB9IGZyb20gJy4uL3N1bW1hcmllcy9ncmlkLXN1bW1hcnknO1xuaW1wb3J0IHsgSWd4T3ZlcmxheVNlcnZpY2UsIElneFRyYW5zYWN0aW9uU2VydmljZSwgU3RhdGUsIFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wdWJsaWNfYXBpJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElneEhpZXJhcmNoaWNhbEdyaWROYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4vaGllcmFyY2hpY2FsLWdyaWQtbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IElneEdyaWRTdW1tYXJ5U2VydmljZSB9IGZyb20gJy4uL3N1bW1hcmllcy9ncmlkLXN1bW1hcnkuc2VydmljZSc7XG5pbXBvcnQgeyBJZ3hHcmlkU2VsZWN0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlbGVjdGlvbi9zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBJZ3hDaGlsZEdyaWRSb3dDb21wb25lbnQgfSBmcm9tICcuL2NoaWxkLWdyaWQtcm93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hDb2x1bW5SZXNpemluZ1NlcnZpY2UgfSBmcm9tICcuLi9yZXNpemluZy9yZXNpemluZy5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRUeXBlIH0gZnJvbSAnLi4vY29tbW9uL2dyaWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElneENvbHVtbkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi4vY29sdW1ucy9jb2x1bW4tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IElneENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbHVtbnMvY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJRm9yT2ZTdGF0ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZm9yLW9mL2Zvcl9vZi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUGxhdGZvcm1VdGlsIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBJZ3hGbGF0VHJhbnNhY3Rpb25GYWN0b3J5IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24tZmFjdG9yeS5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IGhpZXJhcmNoaWNhbFRyYW5zYWN0aW9uU2VydmljZUZhY3RvcnkgPSAoKSA9PiBuZXcgSWd4VHJhbnNhY3Rpb25TZXJ2aWNlKCk7XG5cbmV4cG9ydCBjb25zdCBJZ3hIaWVyYXJjaGljYWxUcmFuc2FjdGlvblNlcnZpY2VGYWN0b3J5ID0ge1xuICAgIHByb3ZpZGU6IElneEdyaWRUcmFuc2FjdGlvbixcbiAgICB1c2VGYWN0b3J5OiBoaWVyYXJjaGljYWxUcmFuc2FjdGlvblNlcnZpY2VGYWN0b3J5XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIElQYXRoU2VnbWVudCB7XG4gICAgcm93SUQ6IGFueTtcbiAgICByb3dJc2xhbmRLZXk6IHN0cmluZztcbn1cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSWd4SGllcmFyY2hpY2FsR3JpZEJhc2VEaXJlY3RpdmUgZXh0ZW5kcyBJZ3hHcmlkQmFzZURpcmVjdGl2ZSB7XG4gICAgLyoqXG4gICAgICogR2V0cy9TZXRzIHRoZSBrZXkgaW5kaWNhdGluZyB3aGV0aGVyIGEgcm93IGhhcyBjaGlsZHJlbi4gSWYgcm93IGhhcyBubyBjaGlsZHJlbiBpdCBkb2VzIG5vdCByZW5kZXIgYW4gZXhwYW5kIGluZGljYXRvci5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtaGllcmFyY2hpY2FsLWdyaWQgI2dyaWQgW2RhdGFdPVwibG9jYWxEYXRhXCIgW2hhc0NoaWxkcmVuS2V5XT1cIidoYXNFbXBsb3llZXMnXCI+XG4gICAgICogPC9pZ3gtaGllcmFyY2hpY2FsLWdyaWQ+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaGFzQ2hpbGRyZW5LZXk6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEdldHMvU2V0cyB3aGV0aGVyIHRoZSBleHBhbmQvY29sbGFwc2UgYWxsIGJ1dHRvbiBpbiB0aGUgaGVhZGVyIHNob3VsZCBiZSByZW5kZXJlZC5cbiAgICAgKlxuICAgICAqIEByZW1hcmtcbiAgICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBmYWxzZS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWhpZXJhcmNoaWNhbC1ncmlkICNncmlkIFtkYXRhXT1cImxvY2FsRGF0YVwiIFtzaG93RXhwYW5kQWxsXT1cInRydWVcIj5cbiAgICAgKiA8L2lneC1oaWVyYXJjaGljYWwtZ3JpZD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93RXhwYW5kQWxsID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIHdoZW4gYSBuZXcgY2h1bmsgb2YgZGF0YSBpcyBsb2FkZWQgZnJvbSB2aXJ0dWFsaXphdGlvbi5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqICA8aWd4LWhpZXJhcmNoaWNhbC1ncmlkIFtpZF09XCInaWd4LWdyaWQtMSdcIiBbZGF0YV09XCJEYXRhXCIgW2F1dG9HZW5lcmF0ZV09XCJ0cnVlXCIgKGRhdGFQcmVMb2FkKT1cImhhbmRsZUV2ZW50KClcIj5cbiAgICAgKiAgPC9pZ3gtaGllcmFyY2hpY2FsLWdyaWQ+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGRhdGFQcmVMb2FkID0gbmV3IEV2ZW50RW1pdHRlcjxJRm9yT2ZTdGF0ZT4oKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdkcmFnSW5kaWNhdG9ySWNvbkJhc2UnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgZHJhZ0luZGljYXRvckljb25CYXNlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgbWF4TGV2ZWxIZWFkZXJEZXB0aCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX21heExldmVsSGVhZGVyRGVwdGggPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX21heExldmVsSGVhZGVyRGVwdGggPSB0aGlzLmNvbHVtbnMucmVkdWNlKChhY2MsIGNvbCkgPT4gTWF0aC5tYXgoYWNjLCBjb2wubGV2ZWwpLCAwKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fbWF4TGV2ZWxIZWFkZXJEZXB0aDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBvdXRsZXQgdXNlZCB0byBhdHRhY2ggdGhlIGdyaWQncyBvdmVybGF5cyB0by5cbiAgICAgKlxuICAgICAqIEByZW1hcmtcbiAgICAgKiBJZiBzZXQsIHJldHVybnMgdGhlIG91dGxldCBkZWZpbmVkIG91dHNpZGUgdGhlIGdyaWQuIE90aGVyd2lzZSByZXR1cm5zIHRoZSBncmlkJ3MgaW50ZXJuYWwgb3V0bGV0IGRpcmVjdGl2ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IG91dGxldCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm9vdEdyaWQgPyB0aGlzLnJvb3RHcmlkLnJlc29sdmVPdXRsZXQoKSA6IHRoaXMucmVzb2x2ZU91dGxldCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIG91dGxldCB1c2VkIHRvIGF0dGFjaCB0aGUgZ3JpZCdzIG92ZXJsYXlzIHRvLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgb3V0bGV0KHZhbDogYW55KSB7XG4gICAgICAgIHRoaXMuX3VzZXJPdXRsZXREaXJlY3RpdmUgPSB2YWw7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIGJhdGNoRWRpdGluZ0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgcHVibGljIGdldCBiYXRjaEVkaXRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9iYXRjaEVkaXRpbmc7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBiYXRjaEVkaXRpbmcodmFsOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWwgIT09IHRoaXMuX2JhdGNoRWRpdGluZykge1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3RyYW5zYWN0aW9ucztcbiAgICAgICAgICAgIHRoaXMuc3dpdGNoVHJhbnNhY3Rpb25TZXJ2aWNlKHZhbCk7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmliZVRvVHJhbnNhY3Rpb25zKCk7XG4gICAgICAgICAgICB0aGlzLmJhdGNoRWRpdGluZ0NoYW5nZS5lbWl0KHZhbCk7XG4gICAgICAgICAgICB0aGlzLl9iYXRjaEVkaXRpbmcgPSB2YWw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGhncmlkQVBJOiBJZ3hIaWVyYXJjaGljYWxHcmlkQVBJU2VydmljZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgcGFyZW50SXNsYW5kOiBJZ3hSb3dJc2xhbmRDb21wb25lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGNoaWxkUm93OiBJZ3hDaGlsZEdyaWRSb3dDb21wb25lbnQ7XG5cbiAgICBwdWJsaWMgYWJzdHJhY3Qgcm9vdEdyaWQ7XG5cbiAgICBwdWJsaWMgYWJzdHJhY3QgZXhwYW5kQ2hpbGRyZW46IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHNlbGVjdGlvblNlcnZpY2U6IElneEdyaWRTZWxlY3Rpb25TZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgY29sUmVzaXppbmdTZXJ2aWNlOiBJZ3hDb2x1bW5SZXNpemluZ1NlcnZpY2UsXG4gICAgICAgIGdyaWRBUEk6IEdyaWRCYXNlQVBJU2VydmljZTxJZ3hHcmlkQmFzZURpcmVjdGl2ZSAmIEdyaWRUeXBlPixcbiAgICAgICAgcHJvdGVjdGVkIHRyYW5zYWN0aW9uRmFjdG9yeTogSWd4RmxhdFRyYW5zYWN0aW9uRmFjdG9yeSxcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgem9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwdWJsaWMgZG9jdW1lbnQsXG4gICAgICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIGRpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycyxcbiAgICAgICAgdmlld1JlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgbmF2aWdhdGlvbjogSWd4SGllcmFyY2hpY2FsR3JpZE5hdmlnYXRpb25TZXJ2aWNlLFxuICAgICAgICBmaWx0ZXJpbmdTZXJ2aWNlOiBJZ3hGaWx0ZXJpbmdTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KElneE92ZXJsYXlTZXJ2aWNlKSBwcm90ZWN0ZWQgb3ZlcmxheVNlcnZpY2U6IElneE92ZXJsYXlTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgc3VtbWFyeVNlcnZpY2U6IElneEdyaWRTdW1tYXJ5U2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChEaXNwbGF5RGVuc2l0eVRva2VuKSBwcm90ZWN0ZWQgX2Rpc3BsYXlEZW5zaXR5T3B0aW9uczogSURpc3BsYXlEZW5zaXR5T3B0aW9ucyxcbiAgICAgICAgQEluamVjdChMT0NBTEVfSUQpIGxvY2FsZUlkOiBzdHJpbmcsXG4gICAgICAgIHByb3RlY3RlZCBwbGF0Zm9ybTogUGxhdGZvcm1VdGlsLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KElneEdyaWRUcmFuc2FjdGlvbikgcHJvdGVjdGVkIF9kaVRyYW5zYWN0aW9ucz86IFRyYW5zYWN0aW9uU2VydmljZTxUcmFuc2FjdGlvbiwgU3RhdGU+KSB7XG4gICAgICAgIHN1cGVyKFxuICAgICAgICAgICAgc2VsZWN0aW9uU2VydmljZSxcbiAgICAgICAgICAgIGNvbFJlc2l6aW5nU2VydmljZSxcbiAgICAgICAgICAgIGdyaWRBUEksXG4gICAgICAgICAgICB0cmFuc2FjdGlvbkZhY3RvcnksXG4gICAgICAgICAgICBlbGVtZW50UmVmLFxuICAgICAgICAgICAgem9uZSxcbiAgICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgICAgY2RyLFxuICAgICAgICAgICAgcmVzb2x2ZXIsXG4gICAgICAgICAgICBkaWZmZXJzLFxuICAgICAgICAgICAgdmlld1JlZixcbiAgICAgICAgICAgIG5hdmlnYXRpb24sXG4gICAgICAgICAgICBmaWx0ZXJpbmdTZXJ2aWNlLFxuICAgICAgICAgICAgb3ZlcmxheVNlcnZpY2UsXG4gICAgICAgICAgICBzdW1tYXJ5U2VydmljZSxcbiAgICAgICAgICAgIF9kaXNwbGF5RGVuc2l0eU9wdGlvbnMsXG4gICAgICAgICAgICBsb2NhbGVJZCxcbiAgICAgICAgICAgIHBsYXRmb3JtKTtcbiAgICAgICAgdGhpcy5oZ3JpZEFQSSA9IGdyaWRBUEkgYXMgSWd4SGllcmFyY2hpY2FsR3JpZEFQSVNlcnZpY2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBjcmVhdGVDb2x1bW5zTGlzdChjb2xzOiBBcnJheTxhbnk+KSB7XG4gICAgICAgIGNvbnN0IGNvbHVtbnMgPSBbXTtcbiAgICAgICAgY29uc3QgdG9wTGV2ZWxDb2xzID0gY29scy5maWx0ZXIoYyA9PiBjLmxldmVsID09PSAwKTtcbiAgICAgICAgdG9wTGV2ZWxDb2xzLmZvckVhY2goKGNvbCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVmID0gdGhpcy5fY3JlYXRlQ29sdW1uKGNvbCk7XG4gICAgICAgICAgICByZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgY29sdW1ucy5wdXNoKHJlZi5pbnN0YW5jZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBmbGF0dGVuKGNvbHVtbnMpO1xuICAgICAgICB0aGlzLnVwZGF0ZUNvbHVtbnMocmVzdWx0KTtcbiAgICAgICAgdGhpcy5pbml0UGlubmluZygpO1xuXG4gICAgICAgIGNvbnN0IGZhY3RvcnlDb2x1bW4gPSB0aGlzLnJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KElneENvbHVtbkNvbXBvbmVudCk7XG4gICAgICAgIGNvbnN0IG91dHB1dHMgPSBmYWN0b3J5Q29sdW1uLm91dHB1dHMuZmlsdGVyKG8gPT4gby5wcm9wTmFtZSAhPT0gJ2NvbHVtbkNoYW5nZScpO1xuICAgICAgICBvdXRwdXRzLmZvckVhY2gob3V0cHV0ID0+IHtcbiAgICAgICAgICAgIHRoaXMuY29sdW1ucy5mb3JFYWNoKGNvbHVtbiA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbHVtbltvdXRwdXQucHJvcE5hbWVdKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbltvdXRwdXQucHJvcE5hbWVdLnBpcGUodGFrZVVudGlsKGNvbHVtbi5kZXN0cm95JCkpLnN1YnNjcmliZSgoYXJncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm93SXNsYW5kQ29sdW1uID0gdGhpcy5wYXJlbnRJc2xhbmQuY2hpbGRDb2x1bW5zLmZpbmQoY29sID0+IGNvbC5maWVsZCA9PT0gY29sdW1uLmZpZWxkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd0lzbGFuZENvbHVtbltvdXRwdXQucHJvcE5hbWVdLmVtaXQoeyBhcmdzLCBvd25lcjogdGhpcyB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfY3JlYXRlQ29sdW1uKGNvbCkge1xuICAgICAgICBsZXQgcmVmO1xuICAgICAgICBpZiAoY29sIGluc3RhbmNlb2YgSWd4Q29sdW1uR3JvdXBDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHJlZiA9IHRoaXMuX2NyZWF0ZUNvbEdyb3VwQ29tcG9uZW50KGNvbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWYgPSB0aGlzLl9jcmVhdGVDb2xDb21wb25lbnQoY29sKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVmO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfY3JlYXRlQ29sR3JvdXBDb21wb25lbnQoY29sOiBJZ3hDb2x1bW5Hcm91cENvbXBvbmVudCkge1xuICAgICAgICBjb25zdCBmYWN0b3J5R3JvdXAgPSB0aGlzLnJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KElneENvbHVtbkdyb3VwQ29tcG9uZW50KTtcbiAgICAgICAgY29uc3QgcmVmID0gdGhpcy52aWV3UmVmLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5R3JvdXAsIG51bGwsIHRoaXMudmlld1JlZi5pbmplY3Rvcik7XG4gICAgICAgIHJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIGZhY3RvcnlHcm91cC5pbnB1dHMuZm9yRWFjaCgoaW5wdXQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb3BOYW1lID0gaW5wdXQucHJvcE5hbWU7XG4gICAgICAgICAgICByZWYuaW5zdGFuY2VbcHJvcE5hbWVdID0gY29sW3Byb3BOYW1lXTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChjb2wuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgbmV3Q2hpbGRyZW4gPSBbXTtcbiAgICAgICAgICAgIGNvbC5jaGlsZHJlbi5mb3JFYWNoKGNoaWxkID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdDb2wgPSB0aGlzLl9jcmVhdGVDb2x1bW4oY2hpbGQpLmluc3RhbmNlO1xuICAgICAgICAgICAgICAgIG5ld0NvbC5wYXJlbnQgPSByZWYuaW5zdGFuY2U7XG4gICAgICAgICAgICAgICAgbmV3Q2hpbGRyZW4ucHVzaChuZXdDb2wpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZWYuaW5zdGFuY2UuY2hpbGRyZW4ucmVzZXQobmV3Q2hpbGRyZW4pO1xuICAgICAgICAgICAgcmVmLmluc3RhbmNlLmNoaWxkcmVuLm5vdGlmeU9uQ2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZWY7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9jcmVhdGVDb2xDb21wb25lbnQoY29sKSB7XG4gICAgICAgIGNvbnN0IGZhY3RvcnlDb2x1bW4gPSB0aGlzLnJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KElneENvbHVtbkNvbXBvbmVudCk7XG4gICAgICAgIGNvbnN0IHJlZiA9IHRoaXMudmlld1JlZi5jcmVhdGVDb21wb25lbnQoZmFjdG9yeUNvbHVtbiwgbnVsbCwgdGhpcy52aWV3UmVmLmluamVjdG9yKTtcbiAgICAgICAgZmFjdG9yeUNvbHVtbi5pbnB1dHMuZm9yRWFjaCgoaW5wdXQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb3BOYW1lID0gaW5wdXQucHJvcE5hbWU7XG4gICAgICAgICAgICBpZiAoIShjb2xbcHJvcE5hbWVdIGluc3RhbmNlb2YgSWd4U3VtbWFyeU9wZXJhbmQpKSB7XG4gICAgICAgICAgICAgICAgcmVmLmluc3RhbmNlW3Byb3BOYW1lXSA9IGNvbFtwcm9wTmFtZV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlZi5pbnN0YW5jZVtwcm9wTmFtZV0gPSBjb2xbcHJvcE5hbWVdLmNvbnN0cnVjdG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlZjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0R3JpZHNGb3JJc2xhbmQocm93SXNsYW5kSUQ6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5oZ3JpZEFQSS5nZXRDaGlsZEdyaWRzRm9yUm93SXNsYW5kKHJvd0lzbGFuZElEKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0Q2hpbGRHcmlkKHBhdGg6IEFycmF5PElQYXRoU2VnbWVudD4pIHtcbiAgICAgICAgaWYgKCFwYXRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuaGdyaWRBUEkuZ2V0Q2hpbGRHcmlkKHBhdGgpO1xuICAgIH1cbn1cblxuY29uc3QgZmxhdHRlbiA9IChhcnI6IGFueVtdKSA9PiB7XG4gICAgbGV0IHJlc3VsdCA9IFtdO1xuXG4gICAgYXJyLmZvckVhY2goZWwgPT4ge1xuICAgICAgICByZXN1bHQucHVzaChlbCk7XG4gICAgICAgIGlmIChlbC5jaGlsZHJlbikge1xuICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmNvbmNhdChmbGF0dGVuKGVsLmNoaWxkcmVuLnRvQXJyYXkoKSkpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG4iXX0=