carbon-components-angular 5.42.0 → 5.43.1

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 (79) hide show
  1. package/docs/documentation/components/Pagination.html +22 -16
  2. package/docs/documentation/components/Select.html +281 -76
  3. package/docs/documentation/components/TimePickerSelect.html +180 -27
  4. package/docs/documentation/coverage.html +6 -6
  5. package/docs/documentation/interfaces/PaginationTranslations.html +8 -2
  6. package/docs/documentation/js/search/search_index.js +2 -2
  7. package/docs/documentation/modules/ComboBoxModule/dependencies.svg +4 -4
  8. package/docs/documentation/modules/ComboBoxModule.html +4 -4
  9. package/docs/documentation/modules/ContentSwitcherModule/dependencies.svg +4 -4
  10. package/docs/documentation/modules/ContentSwitcherModule.html +4 -4
  11. package/docs/documentation/modules/DatePickerInputModule/dependencies.svg +37 -41
  12. package/docs/documentation/modules/DatePickerInputModule.html +37 -41
  13. package/docs/documentation/modules/DatePickerModule/dependencies.svg +38 -38
  14. package/docs/documentation/modules/DatePickerModule.html +38 -38
  15. package/docs/documentation/modules/GridModule/dependencies.svg +60 -60
  16. package/docs/documentation/modules/GridModule.html +60 -60
  17. package/docs/documentation/modules/LoadingModule/dependencies.svg +4 -4
  18. package/docs/documentation/modules/LoadingModule.html +4 -4
  19. package/docs/documentation/modules/NFormsModule/dependencies.svg +4 -4
  20. package/docs/documentation/modules/NFormsModule.html +4 -4
  21. package/docs/documentation/modules/NumberModule/dependencies.svg +4 -4
  22. package/docs/documentation/modules/NumberModule.html +4 -4
  23. package/docs/documentation/modules/ProgressIndicatorModule/dependencies.svg +4 -4
  24. package/docs/documentation/modules/ProgressIndicatorModule.html +4 -4
  25. package/docs/documentation/modules/RadioModule/dependencies.svg +4 -4
  26. package/docs/documentation/modules/RadioModule.html +4 -4
  27. package/docs/documentation/modules/SelectModule/dependencies.svg +58 -58
  28. package/docs/documentation/modules/SelectModule.html +58 -58
  29. package/docs/documentation/modules/SliderModule/dependencies.svg +4 -4
  30. package/docs/documentation/modules/SliderModule.html +4 -4
  31. package/docs/documentation/modules/TableModule/dependencies.svg +216 -216
  32. package/docs/documentation/modules/TableModule.html +216 -216
  33. package/docs/documentation/modules/TabsModule/dependencies.svg +69 -69
  34. package/docs/documentation/modules/TabsModule.html +69 -69
  35. package/docs/documentation/modules/TagModule/dependencies.svg +4 -4
  36. package/docs/documentation/modules/TagModule.html +4 -4
  37. package/docs/documentation/modules/ThemeModule/dependencies.svg +4 -4
  38. package/docs/documentation/modules/ThemeModule.html +4 -4
  39. package/docs/documentation/modules/TilesModule/dependencies.svg +102 -102
  40. package/docs/documentation/modules/TilesModule.html +102 -102
  41. package/docs/documentation/modules/TimePickerModule/dependencies.svg +4 -4
  42. package/docs/documentation/modules/TimePickerModule.html +4 -4
  43. package/docs/documentation/modules/TimePickerSelectModule/dependencies.svg +30 -30
  44. package/docs/documentation/modules/TimePickerSelectModule.html +30 -30
  45. package/docs/documentation/modules/ToggleModule/dependencies.svg +4 -4
  46. package/docs/documentation/modules/ToggleModule.html +4 -4
  47. package/docs/documentation/modules/ToggletipModule/dependencies.svg +4 -4
  48. package/docs/documentation/modules/ToggletipModule.html +4 -4
  49. package/docs/documentation/modules/TooltipModule/dependencies.svg +4 -4
  50. package/docs/documentation/modules/TooltipModule.html +4 -4
  51. package/docs/documentation/modules/TreeviewModule/dependencies.svg +8 -8
  52. package/docs/documentation/modules/TreeviewModule.html +8 -8
  53. package/docs/documentation/modules/UIShellModule/dependencies.svg +4 -4
  54. package/docs/documentation/modules/UIShellModule.html +4 -4
  55. package/docs/documentation.json +222 -85
  56. package/docs/storybook/8341.2bf88948.iframe.bundle.js +1 -0
  57. package/docs/storybook/{9672.7b7a4af9.iframe.bundle.js → 9672.84e90325.iframe.bundle.js} +1 -1
  58. package/docs/storybook/iframe.html +2 -2
  59. package/docs/storybook/index.json +1 -1
  60. package/docs/storybook/main.d05d9d76.iframe.bundle.js +1 -0
  61. package/docs/storybook/project.json +1 -1
  62. package/docs/storybook/{runtime~main.f3aed674.iframe.bundle.js → runtime~main.11c14460.iframe.bundle.js} +1 -1
  63. package/docs/storybook/select-select-stories.5ddb23ab.iframe.bundle.js +1 -0
  64. package/docs/storybook/stories.json +1 -1
  65. package/esm2020/pagination/pagination.component.mjs +9 -3
  66. package/esm2020/select/select.component.mjs +102 -32
  67. package/fesm2015/carbon-components-angular-pagination.mjs +8 -2
  68. package/fesm2015/carbon-components-angular-pagination.mjs.map +1 -1
  69. package/fesm2015/carbon-components-angular-select.mjs +101 -31
  70. package/fesm2015/carbon-components-angular-select.mjs.map +1 -1
  71. package/fesm2020/carbon-components-angular-pagination.mjs +8 -2
  72. package/fesm2020/carbon-components-angular-pagination.mjs.map +1 -1
  73. package/fesm2020/carbon-components-angular-select.mjs +101 -31
  74. package/fesm2020/carbon-components-angular-select.mjs.map +1 -1
  75. package/package.json +1 -1
  76. package/select/select.component.d.ts +7 -1
  77. package/docs/storybook/8341.a544f9e9.iframe.bundle.js +0 -1
  78. package/docs/storybook/main.a2b57351.iframe.bundle.js +0 -1
  79. package/docs/storybook/select-select-stories.c1077d92.iframe.bundle.js +0 -1
@@ -162,8 +162,14 @@ export class Pagination {
162
162
  return this.currentPage >= lastPage ? lastPage : this.currentPage + 1;
163
163
  }
164
164
  get pageOptions() {
165
- if (this.totalDataLength && this._pageOptions.length !== this.totalDataLength) {
166
- this._pageOptions = Array(Math.ceil(this.totalDataLength / this.itemsPerPage));
165
+ /**
166
+ * Calculate number of pages based on totalDataLength and itemsPerPage.
167
+ * Even if totalDataLength is 0, numberOfPages should be always at least 1.
168
+ * New array will be constructed only if number of pages changes.
169
+ */
170
+ const numberOfPages = Math.max(Math.ceil(this.totalDataLength / this.itemsPerPage), 1);
171
+ if (this._pageOptions.length !== numberOfPages) {
172
+ this._pageOptions = Array(numberOfPages);
167
173
  }
168
174
  return this._pageOptions;
169
175
  }
@@ -474,4 +480,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
474
480
  }], selectPage: [{
475
481
  type: Output
476
482
  }] } });
477
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7QUFjeEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Qkc7QUErSUgsTUFBTSxPQUFPLFVBQVU7SUF3SnRCLFlBQXNCLElBQVUsRUFBWSxZQUFpQztRQUF2RCxTQUFJLEdBQUosSUFBSSxDQUFNO1FBQVksaUJBQVksR0FBWixZQUFZLENBQXFCO1FBcko3RTs7V0FFRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFLMUI7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCOztXQUVHO1FBQ00sc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQ25DOztXQUVHO1FBQ00sa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFDOUI7O1dBRUc7UUFDTSxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQix3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFpQ3BDOzs7O1dBSUc7UUFDTSx3QkFBbUIsR0FBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU5RDs7Ozs7V0FLRztRQUNPLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBK0RsRCx5QkFBb0IsR0FBRyxvQ0FBb0MsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDMUYsd0JBQW1CLEdBQUcsa0NBQWtDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRXZGLHFCQUFnQixHQUFHLElBQUksQ0FBQyxJ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QUFhO3NCQUFyQixLQUFLO2dCQUlHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQW1CRixZQUFZO3NCQURmLEtBQUs7Z0JBb0JHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFRSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFnaW5hdGlvbk1vZGVsIH0gZnJvbSBcIi4vcGFnaW5hdGlvbi1tb2RlbC5jbGFzc1wiO1xuaW1wb3J0IHtcblx0Q29tcG9uZW50LFxuXHRJbnB1dCxcblx0T3V0cHV0LFxuXHRFdmVudEVtaXR0ZXJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgSTE4biwgT3ZlcnJpZGFibGUgfSBmcm9tIFwiY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhci9pMThuXCI7XG5pbXBvcnQgeyBFeHBlcmltZW50YWxTZXJ2aWNlIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvZXhwZXJpbWVudGFsXCI7XG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gXCJjYXJib24tY29tcG9uZW50cy1hbmd1bGFyL3V0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5hdGlvblRyYW5zbGF0aW9ucyB7XG5cdElURU1TX1BFUl9QQUdFOiBzdHJpbmc7XG5cdE9QRU5fTElTVF9PRl9PUFRJT05TOiBzdHJpbmc7XG5cdEJBQ0tXQVJEOiBzdHJpbmc7XG5cdEZPUldBUkQ6IHN0cmluZztcblx0VE9UQUxfSVRFTVNfVU5LTk9XTjogc3RyaW5nO1xuXHRUT1RBTF9JVEVNUzogc3RyaW5nO1xuXHRUT1RBTF9JVEVNOiBzdHJpbmc7XG5cdE9GX0xBU1RfUEFHRVM6IHN0cmluZztcblx0T0ZfTEFTVF9QQUdFOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVXNlIHBhZ2luYXRpb24gd2hlbiB5b3UgaGF2ZSBtdWx0aXBsZSBwYWdlcyBvZiBkYXRhIHRvIGhhbmRsZS4gR2V0IHN0YXJ0ZWQgd2l0aCBpbXBvcnRpbmcgdGhlIG1vZHVsZTpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBQYWdpbmF0aW9uTW9kdWxlIH0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG4gKiBgYGBcbiAqXG4gKiBgYGBodG1sXG4gKlx0PGNkcy1wYWdpbmF0aW9uIFttb2RlbF09XCJtb2RlbFwiIChzZWxlY3RQYWdlKT1cInNlbGVjdFBhZ2UoJGV2ZW50KVwiPjwvY2RzLXBhZ2luYXRpb24+XG4gKiBgYGBcbiAqXG4gKiBJbiB5b3VyIGBzZWxlY3RQYWdlKClgIG1ldGhvZCBzZXQgdGhlIGBtb2RlbC5jdXJyZW50UGFnZWAgdG8gc2VsZWN0ZWQgcGFnZSwgX2FmdGVyX1xuICogeW91IGxvYWQgdGhlIHBhZ2UuXG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogc2VsZWN0UGFnZShwYWdlKSB7XG4gKiBcdC8vIC4uLiB5b3VyIGNvZGUgdG8gbG9hZCB0aGUgcGFnZSBnb2VzIGhlcmVcbiAqXG4gKiBcdHRoaXMubW9kZWwuY3VycmVudFBhZ2UgPSBwYWdlO1xuICpcbiAqIFx0Ly8gLi4uIGFueXRoaW5nIHlvdSB3YW50IHRvIGRvIGFmdGVyIHBhZ2Ugc2VsZWN0aW9uIGNoYW5nZXMgZ29lcyBoZXJlXG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBbU2VlIGRlbW9dKC4uLy4uLz9wYXRoPS9zdG9yeS9jb21wb25lbnRzLXBhZ2luYXRpb24tLWJhc2ljKVxuICovXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwiY2RzLXBhZ2luYXRpb24sIGlibS1wYWdpbmF0aW9uXCIsXG5cdHRlbXBsYXRlOiBgXG5cdDxkaXZcblx0XHRjbGFzcz1cImNkcy0tcGFnaW5hdGlvblwiXG5cdFx0W25nQ2xhc3NdPVwie1xuXHRcdFx0J2Nkcy0tc2tlbGV0b24nOiBza2VsZXRvblxuXHRcdH1cIj5cblx0XHQ8IS0tIGxlZnQgc2tlbGV0b24gZGl2IC0tPlxuXHRcdDxkaXYgKm5nSWY9XCJza2VsZXRvblwiIGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX19sZWZ0XCI+XG5cdFx0XHQ8cCBjbGFzcz1cImNkcy0tc2tlbGV0b25fX3RleHRcIiBzdHlsZT1cIndpZHRoOiA3MHB4XCI+PC9wPlxuXHRcdFx0PHAgY2xhc3M9XCJjZHMtLXNrZWxldG9uX190ZXh0XCIgc3R5bGU9XCJ3aWR0aDogMzVweFwiPjwvcD5cblx0XHRcdDxwIGNsYXNzPVwiY2RzLS1za2VsZXRvbl9fdGV4dFwiIHN0eWxlPVwid2lkdGg6IDEwNXB4XCI+PC9wPlxuXHRcdDwvZGl2PlxuXG5cdFx0PGRpdiAqbmdJZj1cIiFza2VsZXRvblwiIGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX19sZWZ0XCI+XG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1BhZ2VJbnB1dFwiPlxuXHRcdFx0XHQ8bGFiZWwgY2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX3RleHRcIiBbZm9yXT1cIml0ZW1zUGVyUGFnZVNlbGVjdElkXCI+XG5cdFx0XHRcdFx0e3tpdGVtc1BlclBhZ2VUZXh0LnN1YmplY3QgfCBhc3luY319XG5cdFx0XHRcdDwvbGFiZWw+XG5cdFx0XHRcdDxkaXZcblx0XHRcdFx0XHRjbGFzcz1cImNkcy0tc2VsZWN0IGNkcy0tc2VsZWN0LS1pbmxpbmUgY2RzLS1zZWxlY3RfX2l0ZW0tY291bnRcIlxuXHRcdFx0XHRcdFtjbGFzcy5jZHMtLXNlbGVjdC0tZGlzYWJsZWRdPVwicGFnZUlucHV0RGlzYWJsZWRcIj5cblx0XHRcdFx0XHQ8c2VsZWN0XG5cdFx0XHRcdFx0XHRbaWRdPVwiaXRlbXNQZXJQYWdlU2VsZWN0SWRcIlxuXHRcdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJpdGVtc1BlclBhZ2VcIlxuXHRcdFx0XHRcdFx0W2Rpc2FibGVkXT1cInBhZ2VJbnB1dERpc2FibGVkXCJcblx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1zZWxlY3QtaW5wdXRcIj5cblx0XHRcdFx0XHRcdDxvcHRpb25cblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNlbGVjdC1vcHRpb25cIlxuXHRcdFx0XHRcdFx0XHQqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGl0ZW1zUGVyUGFnZU9wdGlvbnNcIlxuXHRcdFx0XHRcdFx0XHRbdmFsdWVdPVwib3B0aW9uXCI+XG5cdFx0XHRcdFx0XHRcdFx0e3sgb3B0aW9uIH19XG5cdFx0XHRcdFx0XHQ8L29wdGlvbj5cblx0XHRcdFx0XHQ8L3NlbGVjdD5cblx0XHRcdFx0XHQ8c3ZnXG5cdFx0XHRcdFx0XHRjZHNJY29uPVwiY2hldnJvbi0tZG93blwiXG5cdFx0XHRcdFx0XHRzaXplPVwiMTZcIlxuXHRcdFx0XHRcdFx0c3R5bGU9XCJkaXNwbGF5OiBpbmhlcml0XCJcblx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1zZWxlY3RfX2Fycm93XCJcblx0XHRcdFx0XHRcdGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG5cdFx0XHRcdFx0XHRbYXR0ci5hcmlhTGFiZWxdPVwib3B0aW9uc0xpc3RUZXh0LnN1YmplY3QgfCBhc3luY1wiPlxuXHRcdFx0XHRcdDwvc3ZnPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0PHNwYW4gKm5nSWY9XCIhcGFnZXNVbmtub3duICYmIHRvdGFsRGF0YUxlbmd0aCA8PSAxXCIgY2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX3RleHQgY2RzLS1wYWdpbmF0aW9uX19pdGVtcy1jb3VudFwiIFtuZ1N0eWxlXT1cInsnbWFyZ2luLWxlZnQnOiBzaG93UGFnZUlucHV0ID8gbnVsbCA6IDB9XCI+XG5cdFx0XHRcdHt7dG90YWxJdGVtVGV4dC5zdWJqZWN0IHwgaTE4blJlcGxhY2U6e3N0YXJ0OiBzdGFydEl0ZW1JbmRleCwgZW5kOiBlbmRJdGVtSW5kZXgsIHRvdGFsOiB0b3RhbERhdGFMZW5ndGggfSB8IGFzeW5jfX1cblx0XHRcdDwvc3Bhbj5cblx0XHRcdDxzcGFuICpuZ0lmPVwiIXBhZ2VzVW5rbm93biAmJiB0b3RhbERhdGFMZW5ndGggPiAxXCIgY2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX3RleHQgY2RzLS1wYWdpbmF0aW9uX19pdGVtcy1jb3VudFwiIFtuZ1N0eWxlXT1cInsnbWFyZ2luLWxlZnQnOiBzaG93UGFnZUlucHV0ID8gbnVsbCA6IDB9XCI+XG5cdFx0XHRcdHt7dG90YWxJdGVtc1RleHQuc3ViamVjdCB8IGkxOG5SZXBsYWNlOntzdGFydDogc3RhcnRJdGVtSW5kZXgsIGVuZDogZW5kSXRlbUluZGV4LCB0b3RhbDogdG90YWxEYXRhTGVuZ3RoIH0gfCBhc3luY319XG5cdFx0XHQ8L3NwYW4+XG5cdFx0XHQ8c3BhbiAqbmdJZj1cInBhZ2VzVW5rbm93blwiIGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX190ZXh0IGNkcy0tcGFnaW5hdGlvbl9faXRlbXMtY291bnRcIiBbbmdTdHlsZV09XCJ7J21hcmdpbi1sZWZ0Jzogc2hvd1BhZ2VJbnB1dCA/IG51bGwgOiAwfVwiPlxuXHRcdFx0XHR7e3RvdGFsSXRlbXNVbmtub3duVGV4dC5zdWJqZWN0IHwgaTE4blJlcGxhY2U6e3N0YXJ0OiBzdGFydEl0ZW1JbmRleCwgZW5kOiBlbmRJdGVtSW5kZXggfSB8IGFzeW5jfX1cblx0XHRcdDwvc3Bhbj5cblx0XHQ8L2Rpdj5cblxuXHRcdDwhLS0gcmlnaHQgc2tlbGV0b24gZGl2IC0tPlxuXHRcdDxkaXYgKm5nSWY9XCJza2VsZXRvblwiIGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX19yaWdodFwiPlxuXHRcdFx0PHAgY2xhc3M9XCJjZHMtLXNrZWxldG9uX190ZXh0XCIgc3R5bGU9XCJ3aWR0aDogNzBweFwiPjwvcD5cblx0XHQ8L2Rpdj5cblxuXHRcdDxkaXYgKm5nSWY9XCIhc2tlbGV0b25cIiBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fcmlnaHRcIj5cblx0XHRcdDxzcGFuICpuZ0lmPVwicGFnZXNVbmtub3duXCIgY2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX3RleHQgY2RzLS1wYWdpbmF0aW9uX19wYWdlLXRleHRcIj5cblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzaG93UGFnZUlucHV0XCI+e3tjdXJyZW50UGFnZX19PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdHt7cGFnZVRleHQuc3ViamVjdCB8IGFzeW5jfX1cblx0XHRcdDwvc3Bhbj5cblx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93UGFnZUlucHV0XCI+XG5cdFx0XHRcdDxkaXZcblx0XHRcdFx0XHRjbGFzcz1cImNkcy0tc2VsZWN0IGNkcy0tc2VsZWN0LS1pbmxpbmUgY2RzLS1zZWxlY3RfX3BhZ2UtbnVtYmVyXCJcblx0XHRcdFx0XHRbY2xhc3MuY2RzLS1zZWxlY3QtLWRpc2FibGVkXT1cInBhZ2VJbnB1dERpc2FibGVkXCI+XG5cdFx0XHRcdFx0PGxhYmVsIFtmb3JdPVwiY3VycmVudFBhZ2VTZWxlY3RJZFwiIGNsYXNzPVwiY2RzLS1sYWJlbCBjZHMtLXZpc3VhbGx5LWhpZGRlblwiPnt7cGFnZVRleHQuc3ViamVjdCB8IGFzeW5jfX08L2xhYmVsPlxuXHRcdFx0XHRcdDxpbnB1dFxuXHRcdFx0XHRcdFx0Km5nSWY9XCJwYWdlT3B0aW9ucy5sZW5ndGggPiBwYWdlU2VsZWN0VGhyZXNob2xkXCJcblx0XHRcdFx0XHRcdHN0eWxlPVwicGFkZGluZy1yaWdodDogMXJlbTsgbWFyZ2luLXJpZ2h0OiAxcmVtO1wiXG5cdFx0XHRcdFx0XHRbaWRdPVwiY3VycmVudFBhZ2VTZWxlY3RJZFwiXG5cdFx0XHRcdFx0XHR0eXBlPVwibnVtYmVyXCJcblx0XHRcdFx0XHRcdG1pbj1cIjFcIlxuXHRcdFx0XHRcdFx0W21heF09XCJwYWdlT3B0aW9ucy5sZW5ndGhcIlxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNlbGVjdC1pbnB1dFwiXG5cdFx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cImN1cnJlbnRQYWdlXCI+XG5cdFx0XHRcdFx0PHNlbGVjdFxuXHRcdFx0XHRcdFx0Km5nSWY9XCJwYWdlT3B0aW9ucy5sZW5ndGggPD0gcGFnZVNlbGVjdFRocmVzaG9sZFwiXG5cdFx0XHRcdFx0XHRbaWRdPVwiY3VycmVudFBhZ2VTZWxlY3RJZFwiXG5cdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tc2VsZWN0LWlucHV0XCJcblx0XHRcdFx0XHRcdFtkaXNhYmxlZF09XCJwYWdlSW5wdXREaXNhYmxlZFwiXG5cdFx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cImN1cnJlbnRQYWdlXCI+XG5cdFx0XHRcdFx0XHQ8b3B0aW9uICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VPcHRpb25zOyBsZXQgaSA9IGluZGV4O1wiIGNsYXNzPVwiY2RzLS1zZWxlY3Qtb3B0aW9uXCIgW3ZhbHVlXT1cImkgKyAxXCI+e3tpICsgMX19PC9vcHRpb24+XG5cdFx0XHRcdFx0PC9zZWxlY3Q+XG5cdFx0XHRcdFx0PHN2Z1xuXHRcdFx0XHRcdFx0Km5nSWY9XCJwYWdlT3B0aW9ucy5sZW5ndGggPD0gMTAwMFwiXG5cdFx0XHRcdFx0XHRjZHNJY29uPVwiY2hldnJvbi0tZG93blwiXG5cdFx0XHRcdFx0XHRzaXplPVwiMTZcIlxuXHRcdFx0XHRcdFx0c3R5bGU9XCJkaXNwbGF5OiBpbmhlcml0O1wiXG5cdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tc2VsZWN0X19hcnJvd1wiXG5cdFx0XHRcdFx0XHRbYXR0ci5hcmlhTGFiZWxdPVwib3B0aW9uc0xpc3RUZXh0LnN1YmplY3QgfCBhc3luY1wiPlxuXHRcdFx0XHRcdDwvc3ZnPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvbmctY29udGFpbmVyPlxuXG5cdFx0XHQ8c3BhbiAqbmdJZj1cIiFwYWdlc1Vua25vd24gJiYgbGFzdFBhZ2UgPD0gMVwiIGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX190ZXh0XCI+XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2hvd1BhZ2VJbnB1dFwiPnt7Y3VycmVudFBhZ2V9fTwvbmctY29udGFpbmVyPlxuXHRcdFx0XHR7e29mTGFzdFBhZ2VUZXh0LnN1YmplY3QgfCBpMThuUmVwbGFjZToge2xhc3Q6IGxhc3RQYWdlfSB8IGFzeW5jfX1cblx0XHRcdDwvc3Bhbj5cblx0XHRcdDxzcGFuICpuZ0lmPVwiIXBhZ2VzVW5rbm93biAmJiBsYXN0UGFnZSA+IDFcIiBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fdGV4dFwiPlxuXHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIXNob3dQYWdlSW5wdXRcIj57e2N1cnJlbnRQYWdlfX08L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0e3tvZkxhc3RQYWdlc1RleHQuc3ViamVjdCB8IGkxOG5SZXBsYWNlOiB7bGFzdDogbGFzdFBhZ2V9IHwgYXN5bmN9fVxuXHRcdFx0PC9zcGFuPlxuXHRcdFx0PGRpdiBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fY29udHJvbC1idXR0b25zXCI+XG5cdFx0XHRcdDxidXR0b25cblx0XHRcdFx0XHRjZHNCdXR0b249XCJnaG9zdFwiXG5cdFx0XHRcdFx0aWNvbk9ubHk9XCJ0cnVlXCJcblx0XHRcdFx0XHRjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fYnV0dG9uIGNkcy0tcGFnaW5hdGlvbl9fYnV0dG9uLS1iYWNrd2FyZFwiXG5cdFx0XHRcdFx0W25nQ2xhc3NdPVwie1xuXHRcdFx0XHRcdFx0J2Nkcy0tcGFnaW5hdGlvbl9fYnV0dG9uLS1uby1pbmRleCc6IGN1cnJlbnRQYWdlIDw9IDEgfHwgZGlzYWJsZWRcblx0XHRcdFx0XHR9XCJcblx0XHRcdFx0XHR0YWJpbmRleD1cIjBcIlxuXHRcdFx0XHRcdFthdHRyLmFyaWEtbGFiZWxdPVwiYmFja3dhcmRUZXh0LnN1YmplY3QgfCBhc3luY1wiXG5cdFx0XHRcdFx0KGNsaWNrKT1cInNlbGVjdFBhZ2UuZW1pdChwcmV2aW91c1BhZ2UpXCJcblx0XHRcdFx0XHRbZGlzYWJsZWRdPVwiKGN1cnJlbnRQYWdlIDw9IDEgfHwgZGlzYWJsZWQgPyB0cnVlIDogbnVsbClcIj5cblx0XHRcdFx0XHQ8c3ZnIGNkc0ljb249XCJjYXJldC0tbGVmdFwiIHNpemU9XCIxNlwiIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIj48L3N2Zz5cblx0XHRcdFx0PC9idXR0b24+XG5cblx0XHRcdFx0PGJ1dHRvblxuXHRcdFx0XHRcdGNkc0J1dHRvbj1cImdob3N0XCJcblx0XHRcdFx0XHRpY29uT25seT1cInRydWVcIlxuXHRcdFx0XHRcdGNsYXNzPVwiXG5cdFx0XHRcdFx0XHRjZHMtLXBhZ2luYXRpb25fX2J1dHRvblxuXHRcdFx0XHRcdFx0Y2RzLS1wYWdpbmF0aW9uX19idXR0b24tLWZvcndhcmRcIlxuXHRcdFx0XHRcdFtuZ0NsYXNzXT1cIntcblx0XHRcdFx0XHRcdCdjZHMtLXBhZ2luYXRpb25fX2J1dHRvbi0tbm8taW5kZXgnOiBjdXJyZW50UGFnZSA+PSBsYXN0UGFnZSB8fCBkaXNhYmxlZFxuXHRcdFx0XHRcdH1cIlxuXHRcdFx0XHRcdHRhYmluZGV4PVwiMFwiXG5cdFx0XHRcdFx0W2F0dHIuYXJpYS1sYWJlbF09XCJmb3J3YXJkVGV4dC5zdWJqZWN0IHwgYXN5bmNcIlxuXHRcdFx0XHRcdChjbGljayk9XCJzZWxlY3RQYWdlLmVtaXQobmV4dFBhZ2UpXCJcblx0XHRcdFx0XHRbZGlzYWJsZWRdPVwiKGN1cnJlbnRQYWdlID49IGxhc3RQYWdlIHx8IGRpc2FibGVkID8gdHJ1ZSA6IG51bGwpXCI+XG5cdFx0XHRcdFx0PHN2ZyBjZHNJY29uPVwiY2FyZXQtLXJpZ2h0XCIgc2l6ZT1cIjE2XCIgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiPjwvc3ZnPlxuXHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHQ8L2Rpdj5cblx0YFxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uIHtcblx0c3RhdGljIHBhZ2luYXRpb25Db3VudGVyID0gMDtcblxuXHQvKipcblx0ICogU2V0IHRvIGB0cnVlYCBmb3IgYSBsb2FkaW5nIHBhZ2luYXRpb24gY29tcG9uZW50LlxuXHQgKi9cblx0QElucHV0KCkgc2tlbGV0b24gPSBmYWxzZTtcblx0LyoqXG5cdCAqIGBQYWdpbmF0aW9uTW9kZWxgIHdpdGggdGhlIGluZm9ybWF0aW9uIGFib3V0IHBhZ2VzIHlvdSdyZSBjb250cm9sbGluZy5cblx0ICovXG5cdEBJbnB1dCgpIG1vZGVsOiBQYWdpbmF0aW9uTW9kZWw7XG5cdC8qKlxuIFx0ICogU2V0IHRvIGB0cnVlYCB0byBkaXNhYmxlIHRoZSBiYWNrd2FyZC9mb3J3YXJkIGJ1dHRvbnMuXG5cdCAqL1xuXHRASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuXHQvKipcblx0ICogU2V0IHRvIGB0cnVlYCB0byBkaXNhYmxlIHRoZSBzZWxlY3QgYm94IHRoYXQgY2hhbmdlcyB0aGUgcGFnZS5cblx0ICovXG5cdEBJbnB1dCgpIHBhZ2VJbnB1dERpc2FibGVkID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBDb250cm9scyB3ZXRoZXIgb3Igbm90IHRvIHNob3cgdGhlIHBhZ2Ugc2VsZWN0c1xuXHQgKi9cblx0QElucHV0KCkgc2hvd1BhZ2VJbnB1dCA9IHRydWU7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIGlmIHRoZSB0b3RhbCBudW1iZXIgb2YgaXRlbXMgaXMgdW5rbm93bi5cblx0ICovXG5cdEBJbnB1dCgpIHBhZ2VzVW5rbm93biA9IGZhbHNlO1xuXHRASW5wdXQoKSBwYWdlU2VsZWN0VGhyZXNob2xkID0gMTAwMDtcblxuXHQvKipcblx0ICogRXhwZWN0cyBhbiBvYmplY3QgdGhhdCBjb250YWlucyBzb21lIG9yIGFsbCBvZjpcblx0ICogYGBgXG5cdCAqIHtcblx0ICpcdFx0XCJJVEVNU19QRVJfUEFHRVwiOiBcIkl0ZW1zIHBlciBwYWdlOlwiLFxuXHQgKlx0XHRcIk9QRU5fTElTVF9PRl9PUFRJT05TXCI6IFwiT3BlbiBsaXN0IG9mIG9wdGlvbnNcIixcblx0ICpcdFx0XCJCQUNLV0FSRFwiOiBcIkJhY2t3YXJkXCIsXG5cdCAqXHRcdFwiRk9SV0FSRFwiOiBcIkZvcndhcmRcIixcblx0ICpcdFx0XCJUT1RBTF9JVEVNU19VTktOT1dOXCI6IFwie3tzdGFydH19LXt7ZW5kfX0gaXRlbXNcIixcblx0ICpcdFx0XCJUT1RBTF9JVEVNU1wiOiBcInt7c3RhcnR9fS17e2VuZH19IG9mIHt7dG90YWx9fSBpdGVtc1wiLFxuXHQgKlx0XHRcIlRPVEFMX0lURU1cIjogXCJ7e3N0YXJ0fX0te3tlbmR9fSBvZiB7e3RvdGFsfX0gaXRlbVwiLFxuXHQgKlx0XHRcIk9GX0xBU1RfUEFHRVNcIjogXCJvZiB7e2xhc3R9fSBwYWdlc1wiLFxuXHQgKlx0XHRcIk9GX0xBU1RfUEFHRVwiOiBcIm9mIHt7bGFzdH19IHBhZ2VcIlxuXHQgKiB9XG5cdCAqIGBgYFxuXHQgKi9cblx0QElucHV0KClcblx0c2V0IHRyYW5zbGF0aW9ucyAodmFsdWU6IFBhZ2luYXRpb25UcmFuc2xhdGlvbnMpIHtcblx0XHRjb25zdCB2YWx1ZVdpdGhEZWZhdWx0cyA9IG1lcmdlKHRoaXMuaTE4bi5nZXRNdWx0aXBsZShcIlBBR0lOQVRJT05cIiksIHZhbHVlKTtcblx0XHR0aGlzLml0ZW1zUGVyUGFnZVRleHQub3ZlcnJpZGUodmFsdWVXaXRoRGVmYXVsdHMuSVRFTVNfUEVSX1BBR0UpO1xuXHRcdHRoaXMub3B0aW9uc0xpc3RUZXh0Lm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLk9QRU5fTElTVF9PRl9PUFRJT05TKTtcblx0XHR0aGlzLmJhY2t3YXJkVGV4dC5vdmVycmlkZSh2YWx1ZVdpdGhEZWZhdWx0cy5CQUNLV0FSRCk7XG5cdFx0dGhpcy5mb3J3YXJkVGV4dC5vdmVycmlkZSh2YWx1ZVdpdGhEZWZhdWx0cy5GT1JXQVJEKTtcblx0XHR0aGlzLnRvdGFsSXRlbXNUZXh0Lm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLlRPVEFMX0lURU1TKTtcblx0XHR0aGlzLnRvdGFsSXRlbVRleHQub3ZlcnJpZGUodmFsdWVXaXRoRGVmYXVsdHMuVE9UQUxfSVRFTSk7XG5cdFx0dGhpcy50b3RhbEl0ZW1zVW5rbm93blRleHQub3ZlcnJpZGUodmFsdWVXaXRoRGVmYXVsdHMuVE9UQUxfSVRFTVNfVU5LTk9XTik7XG5cdFx0dGhpcy5wYWdlVGV4dC5vdmVycmlkZSh2YWx1ZVdpdGhEZWZhdWx0cy5QQUdFKTtcblx0XHR0aGlzLm9mTGFzdFBhZ2VzVGV4dC5vdmVycmlkZSh2YWx1ZVdpdGhEZWZhdWx0cy5PRl9MQVNUX1BBR0VTKTtcblx0XHR0aGlzLm9mTGFzdFBhZ2VUZXh0Lm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLk9GX0xBU1RfUEFHRSk7XG5cdH1cblxuXHQvKipcblx0ICogT3B0aW9ucyBmb3IgaXRlbXMgcGVyIHBhZ2Ugc2VsZWN0XG5cdCAqXG5cdCAqIEEgZGVmYXVsdCBhcnJheSBvZiBvcHRpb25zIHdpbGwgYmUgZGVmaW5lZDogWzEwLCAyMCwgMzAsIDQwLCA1MF1cblx0ICovXG5cdEBJbnB1dCgpIGl0ZW1zUGVyUGFnZU9wdGlvbnM6IG51bWJlcltdID0gWzEwLCAyMCwgMzAsIDQwLCA1MF07XG5cblx0LyoqXG5cdCAqIEVtaXRzIHRoZSBuZXcgcGFnZSBudW1iZXIuXG5cdCAqXG5cdCAqIFlvdSBzaG91bGQgdGllIGludG8gdGhpcyBhbmQgdXBkYXRlIGBtb2RlbC5jdXJyZW50UGFnZWAgb25jZSB0aGUgZnJlc2hcblx0ICogZGF0YSBpcyBmaW5hbGx5IGxvYWRlZC5cblx0ICovXG5cdEBPdXRwdXQoKSBzZWxlY3RQYWdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cblx0Z2V0IGl0ZW1zUGVyUGFnZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5tb2RlbC5wYWdlTGVuZ3RoO1xuXHR9XG5cdHNldCBpdGVtc1BlclBhZ2UodmFsdWUpIHtcblx0XHR0aGlzLm1vZGVsLnBhZ2VMZW5ndGggPSBOdW1iZXIodmFsdWUpO1xuXHRcdHRoaXMuY3VycmVudFBhZ2UgPSAxOyAvLyByZXNldCBwYWdlXG5cdH1cblxuXHRnZXQgY3VycmVudFBhZ2UoKSB7XG5cdFx0cmV0dXJuIHRoaXMubW9kZWwuY3VycmVudFBhZ2U7XG5cdH1cblx0c2V0IGN1cnJlbnRQYWdlKHZhbHVlKSB7XG5cdFx0dmFsdWUgPSBOdW1iZXIodmFsdWUpO1xuXHRcdC8vIGVtaXRzIHRoZSB2YWx1ZSB0byBhbGxvdyB0aGUgdXNlciB0byB1cGRhdGUgY3VycmVudCBwYWdlXG5cdFx0Ly8gaW4gdGhlIG1vZGVsIG9uY2UgdGhlIHBhZ2UgaXMgbG9hZGVkXG5cdFx0dGhpcy5zZWxlY3RQYWdlLmVtaXQodmFsdWUpO1xuXHR9XG5cblx0Z2V0IHRvdGFsRGF0YUxlbmd0aCgpIHtcblx0XHRyZXR1cm4gdGhpcy5tb2RlbC50b3RhbERhdGFMZW5ndGg7XG5cdH1cblx0LyoqXG5cdCAqIFRoZSBsYXN0IHBhZ2UgbnVtYmVyIHRvIGRpc3BsYXkgaW4gdGhlIHBhZ2luYXRpb24gdmlldy5cblx0ICovXG5cdGdldCBsYXN0UGFnZSgpOiBudW1iZXIge1xuXHRcdGNvbnN0IGxhc3QgPSBNYXRoLmNlaWwodGhpcy50b3RhbERhdGFMZW5ndGggLyB0aGlzLml0ZW1zUGVyUGFnZSk7XG5cdFx0cmV0dXJuIGxhc3QgPiAwID8gbGFzdCA6IDE7XG5cdH1cblxuXHRnZXQgc3RhcnRJdGVtSW5kZXgoKSB7XG5cdFx0cmV0dXJuIHRoaXMuZW5kSXRlbUluZGV4ID4gMCA/ICh0aGlzLmN1cnJlbnRQYWdlIC0gMSkgKiB0aGlzLml0ZW1zUGVyUGFnZSArIDEgOiAwO1xuXHR9XG5cblx0Z2V0IGVuZEl0ZW1JbmRleCgpIHtcblx0XHRjb25zdCBwcm9qZWN0ZWRFbmRJdGVtSW5kZXggPSB0aGlzLmN1cnJlbnRQYWdlICogdGhpcy5pdGVtc1BlclBhZ2U7XG5cblx0XHRyZXR1cm4gcHJvamVjdGVkRW5kSXRlbUluZGV4IDwgdGhpcy50b3RhbERhdGFMZW5ndGggPyBwcm9qZWN0ZWRFbmRJdGVtSW5kZXggOiB0aGlzLnRvdGFsRGF0YUxlbmd0aDtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgcHJldmlvdXMgcGFnZSBudW1iZXIgdG8gbmF2aWdhdGUgdG8sIGZyb20gdGhlIGN1cnJlbnQgcGFnZS5cblx0ICovXG5cdGdldCBwcmV2aW91c1BhZ2UoKTogbnVtYmVyIHtcblx0XHRyZXR1cm4gdGhpcy5jdXJyZW50UGFnZSA8PSAxID8gMSA6IHRoaXMuY3VycmVudFBhZ2UgLSAxO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBuZXh0IHBhZ2UgbnVtYmVyIHRvIG5hdmlnYXRlIHRvLCBmcm9tIHRoZSBjdXJyZW50IHBhZ2UuXG5cdCAqL1xuXHRnZXQgbmV4dFBhZ2UoKTogbnVtYmVyIHtcblx0XHRjb25zdCBsYXN0UGFnZSA9IHRoaXMubGFzdFBhZ2U7XG5cdFx0cmV0dXJuIHRoaXMuY3VycmVudFBhZ2UgPj0gbGFzdFBhZ2UgPyBsYXN0UGFnZSA6IHRoaXMuY3VycmVudFBhZ2UgKyAxO1xuXHR9XG5cblx0Z2V0IHBhZ2VPcHRpb25zKCkge1xuXHRcdGlmICh0aGlzLnRvdGFsRGF0YUxlbmd0aCAmJiB0aGlzLl9wYWdlT3B0aW9ucy5sZW5ndGggIT09IHRoaXMudG90YWxEYXRhTGVuZ3RoKSB7XG5cdFx0XHR0aGlzLl9wYWdlT3B0aW9ucyA9IEFycmF5KE1hdGguY2VpbCh0aGlzLnRvdGFsRGF0YUxlbmd0aCAvIHRoaXMuaXRlbXNQZXJQYWdlKSk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLl9wYWdlT3B0aW9ucztcblx0fVxuXG5cdGl0ZW1zUGVyUGFnZVNlbGVjdElkID0gYHBhZ2luYXRpb24tc2VsZWN0LWl0ZW1zLXBlci1wYWdlLSR7UGFnaW5hdGlvbi5wYWdpbmF0aW9uQ291bnRlcn1gO1xuXHRjdXJyZW50UGFnZVNlbGVjdElkID0gYHBhZ2luYXRpb24tc2VsZWN0LWN1cnJlbnQtcGFnZS0ke1BhZ2luYXRpb24ucGFnaW5hdGlvbkNvdW50ZXJ9YDtcblxuXHRpdGVtc1BlclBhZ2VUZXh0ID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiUEFHSU5BVElPTi5JVEVNU19QRVJfUEFHRVwiKTtcblx0b3B0aW9uc0xpc3RUZXh0ID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiUEFHSU5BVElPTi5PUEVOX0xJU1RfT0ZfT1BUSU9OU1wiKTtcblx0YmFja3dhcmRUZXh0ID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiUEFHSU5BVElPTi5CQUNLV0FSRFwiKTtcblx0Zm9yd2FyZFRleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLkZPUldBUkRcIik7XG5cdHRvdGFsSXRlbXNUZXh0ID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiUEFHSU5BVElPTi5UT1RBTF9JVEVNU1wiKTtcblx0dG90YWxJdGVtVGV4dCA9IHRoaXMuaTE4bi5nZXRPdmVycmlkYWJsZShcIlBBR0lOQVRJT04uVE9UQUxfSVRFTVwiKTtcblx0dG90YWxJdGVtc1Vua25vd25UZXh0ID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiUEFHSU5BVElPTi5UT1RBTF9JVEVNU19VTktOT1dOXCIpO1xuXHRwYWdlVGV4dCA9IHRoaXMuaTE4bi5nZXRPdmVycmlkYWJsZShcIlBBR0lOQVRJT04uUEFHRVwiKTtcblx0b2ZMYXN0UGFnZXNUZXh0ID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiUEFHSU5BVElPTi5PRl9MQVNUX1BBR0VTXCIpO1xuXHRvZkxhc3RQYWdlVGV4dCA9IHRoaXMuaTE4bi5nZXRPdmVycmlkYWJsZShcIlBBR0lOQVRJT04uT0ZfTEFTVF9QQUdFXCIpO1xuXG5cdHByb3RlY3RlZCBfcGFnZU9wdGlvbnMgPSBbXTtcblxuXHRjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaTE4bjogSTE4biwgcHJvdGVjdGVkIGV4cGVyaW1lbnRhbDogRXhwZXJpbWVudGFsU2VydmljZSkge1xuXHRcdFBhZ2luYXRpb24ucGFnaW5hdGlvbkNvdW50ZXIrKztcblx0fVxufVxuIl19
483
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7QUFjeEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Qkc7QUErSUgsTUFBTSxPQUFPLFVBQVU7SUE4SnRCLFlBQXNCLElBQVUsRUFBWSxZQUFpQztRQUF2RCxTQUFJLEdBQUosSUFBSSxDQUFNO1FBQVksaUJBQVksR0FBWixZQUFZLENBQXFCO1FBM0o3RTs7V0FFRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFLMUI7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCOztXQUVHO1FBQ00sc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQ25DOztXQUVHO1FBQ00sa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFDOUI7O1dBRUc7UUFDTSxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQix3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFpQ3BDOzs7O1dBSUc7UUFDTSx3QkFBbUIsR0FBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU5RDs7Ozs7V0FLRztRQUNPLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBcUVsRCx5QkFBb0IsR0FBRyxvQ0FBb0MsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDMUYsd0JBQW1CLEdBQUcsa0NBQWtDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRXZGLHFCQUFnQixHQUFHLElBQUksQ0FBQyxJ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UUFBUTtzQkFBaEIsS0FBSztnQkFJRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBSUcsYUFBYTtzQkFBckIsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFtQkYsWUFBWTtzQkFEZixLQUFLO2dCQW9CRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBUUksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhZ2luYXRpb25Nb2RlbCB9IGZyb20gXCIuL3BhZ2luYXRpb24tbW9kZWwuY2xhc3NcIjtcbmltcG9ydCB7XG5cdENvbXBvbmVudCxcblx0SW5wdXQsXG5cdE91dHB1dCxcblx0RXZlbnRFbWl0dGVyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IEkxOG4sIE92ZXJyaWRhYmxlIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvaTE4blwiO1xuaW1wb3J0IHsgRXhwZXJpbWVudGFsU2VydmljZSB9IGZyb20gXCJjYXJib24tY29tcG9uZW50cy1hbmd1bGFyL2V4cGVyaW1lbnRhbFwiO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tIFwiY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhci91dGlsc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRpb25UcmFuc2xhdGlvbnMge1xuXHRJVEVNU19QRVJfUEFHRTogc3RyaW5nO1xuXHRPUEVOX0xJU1RfT0ZfT1BUSU9OUzogc3RyaW5nO1xuXHRCQUNLV0FSRDogc3RyaW5nO1xuXHRGT1JXQVJEOiBzdHJpbmc7XG5cdFRPVEFMX0lURU1TX1VOS05PV046IHN0cmluZztcblx0VE9UQUxfSVRFTVM6IHN0cmluZztcblx0VE9UQUxfSVRFTTogc3RyaW5nO1xuXHRPRl9MQVNUX1BBR0VTOiBzdHJpbmc7XG5cdE9GX0xBU1RfUEFHRTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFVzZSBwYWdpbmF0aW9uIHdoZW4geW91IGhhdmUgbXVsdGlwbGUgcGFnZXMgb2YgZGF0YSB0byBoYW5kbGUuIEdldCBzdGFydGVkIHdpdGggaW1wb3J0aW5nIHRoZSBtb2R1bGU6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgUGFnaW5hdGlvbk1vZHVsZSB9IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuICogYGBgXG4gKlxuICogYGBgaHRtbFxuICpcdDxjZHMtcGFnaW5hdGlvbiBbbW9kZWxdPVwibW9kZWxcIiAoc2VsZWN0UGFnZSk9XCJzZWxlY3RQYWdlKCRldmVudClcIj48L2Nkcy1wYWdpbmF0aW9uPlxuICogYGBgXG4gKlxuICogSW4geW91ciBgc2VsZWN0UGFnZSgpYCBtZXRob2Qgc2V0IHRoZSBgbW9kZWwuY3VycmVudFBhZ2VgIHRvIHNlbGVjdGVkIHBhZ2UsIF9hZnRlcl9cbiAqIHlvdSBsb2FkIHRoZSBwYWdlLlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHNlbGVjdFBhZ2UocGFnZSkge1xuICogXHQvLyAuLi4geW91ciBjb2RlIHRvIGxvYWQgdGhlIHBhZ2UgZ29lcyBoZXJlXG4gKlxuICogXHR0aGlzLm1vZGVsLmN1cnJlbnRQYWdlID0gcGFnZTtcbiAqXG4gKiBcdC8vIC4uLiBhbnl0aGluZyB5b3Ugd2FudCB0byBkbyBhZnRlciBwYWdlIHNlbGVjdGlvbiBjaGFuZ2VzIGdvZXMgaGVyZVxuICogfVxuICogYGBgXG4gKlxuICogW1NlZSBkZW1vXSguLi8uLi8/cGF0aD0vc3RvcnkvY29tcG9uZW50cy1wYWdpbmF0aW9uLS1iYXNpYylcbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcImNkcy1wYWdpbmF0aW9uLCBpYm0tcGFnaW5hdGlvblwiLFxuXHR0ZW1wbGF0ZTogYFxuXHQ8ZGl2XG5cdFx0Y2xhc3M9XCJjZHMtLXBhZ2luYXRpb25cIlxuXHRcdFtuZ0NsYXNzXT1cIntcblx0XHRcdCdjZHMtLXNrZWxldG9uJzogc2tlbGV0b25cblx0XHR9XCI+XG5cdFx0PCEtLSBsZWZ0IHNrZWxldG9uIGRpdiAtLT5cblx0XHQ8ZGl2ICpuZ0lmPVwic2tlbGV0b25cIiBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fbGVmdFwiPlxuXHRcdFx0PHAgY2xhc3M9XCJjZHMtLXNrZWxldG9uX190ZXh0XCIgc3R5bGU9XCJ3aWR0aDogNzBweFwiPjwvcD5cblx0XHRcdDxwIGNsYXNzPVwiY2RzLS1za2VsZXRvbl9fdGV4dFwiIHN0eWxlPVwid2lkdGg6IDM1cHhcIj48L3A+XG5cdFx0XHQ8cCBjbGFzcz1cImNkcy0tc2tlbGV0b25fX3RleHRcIiBzdHlsZT1cIndpZHRoOiAxMDVweFwiPjwvcD5cblx0XHQ8L2Rpdj5cblxuXHRcdDxkaXYgKm5nSWY9XCIhc2tlbGV0b25cIiBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fbGVmdFwiPlxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dQYWdlSW5wdXRcIj5cblx0XHRcdFx0PGxhYmVsIGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX190ZXh0XCIgW2Zvcl09XCJpdGVtc1BlclBhZ2VTZWxlY3RJZFwiPlxuXHRcdFx0XHRcdHt7aXRlbXNQZXJQYWdlVGV4dC5zdWJqZWN0IHwgYXN5bmN9fVxuXHRcdFx0XHQ8L2xhYmVsPlxuXHRcdFx0XHQ8ZGl2XG5cdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNlbGVjdCBjZHMtLXNlbGVjdC0taW5saW5lIGNkcy0tc2VsZWN0X19pdGVtLWNvdW50XCJcblx0XHRcdFx0XHRbY2xhc3MuY2RzLS1zZWxlY3QtLWRpc2FibGVkXT1cInBhZ2VJbnB1dERpc2FibGVkXCI+XG5cdFx0XHRcdFx0PHNlbGVjdFxuXHRcdFx0XHRcdFx0W2lkXT1cIml0ZW1zUGVyUGFnZVNlbGVjdElkXCJcblx0XHRcdFx0XHRcdFsobmdNb2RlbCldPVwiaXRlbXNQZXJQYWdlXCJcblx0XHRcdFx0XHRcdFtkaXNhYmxlZF09XCJwYWdlSW5wdXREaXNhYmxlZFwiXG5cdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tc2VsZWN0LWlucHV0XCI+XG5cdFx0XHRcdFx0XHQ8b3B0aW9uXG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1zZWxlY3Qtb3B0aW9uXCJcblx0XHRcdFx0XHRcdFx0Km5nRm9yPVwibGV0IG9wdGlvbiBvZiBpdGVtc1BlclBhZ2VPcHRpb25zXCJcblx0XHRcdFx0XHRcdFx0W3ZhbHVlXT1cIm9wdGlvblwiPlxuXHRcdFx0XHRcdFx0XHRcdHt7IG9wdGlvbiB9fVxuXHRcdFx0XHRcdFx0PC9vcHRpb24+XG5cdFx0XHRcdFx0PC9zZWxlY3Q+XG5cdFx0XHRcdFx0PHN2Z1xuXHRcdFx0XHRcdFx0Y2RzSWNvbj1cImNoZXZyb24tLWRvd25cIlxuXHRcdFx0XHRcdFx0c2l6ZT1cIjE2XCJcblx0XHRcdFx0XHRcdHN0eWxlPVwiZGlzcGxheTogaW5oZXJpdFwiXG5cdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tc2VsZWN0X19hcnJvd1wiXG5cdFx0XHRcdFx0XHRhcmlhLWhpZGRlbj1cInRydWVcIlxuXHRcdFx0XHRcdFx0W2F0dHIuYXJpYUxhYmVsXT1cIm9wdGlvbnNMaXN0VGV4dC5zdWJqZWN0IHwgYXN5bmNcIj5cblx0XHRcdFx0XHQ8L3N2Zz5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdDxzcGFuICpuZ0lmPVwiIXBhZ2VzVW5rbm93biAmJiB0b3RhbERhdGFMZW5ndGggPD0gMVwiIGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX190ZXh0IGNkcy0tcGFnaW5hdGlvbl9faXRlbXMtY291bnRcIiBbbmdTdHlsZV09XCJ7J21hcmdpbi1sZWZ0Jzogc2hvd1BhZ2VJbnB1dCA/IG51bGwgOiAwfVwiPlxuXHRcdFx0XHR7e3RvdGFsSXRlbVRleHQuc3ViamVjdCB8IGkxOG5SZXBsYWNlOntzdGFydDogc3RhcnRJdGVtSW5kZXgsIGVuZDogZW5kSXRlbUluZGV4LCB0b3RhbDogdG90YWxEYXRhTGVuZ3RoIH0gfCBhc3luY319XG5cdFx0XHQ8L3NwYW4+XG5cdFx0XHQ8c3BhbiAqbmdJZj1cIiFwYWdlc1Vua25vd24gJiYgdG90YWxEYXRhTGVuZ3RoID4gMVwiIGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX190ZXh0IGNkcy0tcGFnaW5hdGlvbl9faXRlbXMtY291bnRcIiBbbmdTdHlsZV09XCJ7J21hcmdpbi1sZWZ0Jzogc2hvd1BhZ2VJbnB1dCA/IG51bGwgOiAwfVwiPlxuXHRcdFx0XHR7e3RvdGFsSXRlbXNUZXh0LnN1YmplY3QgfCBpMThuUmVwbGFjZTp7c3RhcnQ6IHN0YXJ0SXRlbUluZGV4LCBlbmQ6IGVuZEl0ZW1JbmRleCwgdG90YWw6IHRvdGFsRGF0YUxlbmd0aCB9IHwgYXN5bmN9fVxuXHRcdFx0PC9zcGFuPlxuXHRcdFx0PHNwYW4gKm5nSWY9XCJwYWdlc1Vua25vd25cIiBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fdGV4dCBjZHMtLXBhZ2luYXRpb25fX2l0ZW1zLWNvdW50XCIgW25nU3R5bGVdPVwieydtYXJnaW4tbGVmdCc6IHNob3dQYWdlSW5wdXQgPyBudWxsIDogMH1cIj5cblx0XHRcdFx0e3t0b3RhbEl0ZW1zVW5rbm93blRleHQuc3ViamVjdCB8IGkxOG5SZXBsYWNlOntzdGFydDogc3RhcnRJdGVtSW5kZXgsIGVuZDogZW5kSXRlbUluZGV4IH0gfCBhc3luY319XG5cdFx0XHQ8L3NwYW4+XG5cdFx0PC9kaXY+XG5cblx0XHQ8IS0tIHJpZ2h0IHNrZWxldG9uIGRpdiAtLT5cblx0XHQ8ZGl2ICpuZ0lmPVwic2tlbGV0b25cIiBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fcmlnaHRcIj5cblx0XHRcdDxwIGNsYXNzPVwiY2RzLS1za2VsZXRvbl9fdGV4dFwiIHN0eWxlPVwid2lkdGg6IDcwcHhcIj48L3A+XG5cdFx0PC9kaXY+XG5cblx0XHQ8ZGl2ICpuZ0lmPVwiIXNrZWxldG9uXCIgY2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX3JpZ2h0XCI+XG5cdFx0XHQ8c3BhbiAqbmdJZj1cInBhZ2VzVW5rbm93blwiIGNsYXNzPVwiY2RzLS1wYWdpbmF0aW9uX190ZXh0IGNkcy0tcGFnaW5hdGlvbl9fcGFnZS10ZXh0XCI+XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2hvd1BhZ2VJbnB1dFwiPnt7Y3VycmVudFBhZ2V9fTwvbmctY29udGFpbmVyPlxuXHRcdFx0XHR7e3BhZ2VUZXh0LnN1YmplY3QgfCBhc3luY319XG5cdFx0XHQ8L3NwYW4+XG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1BhZ2VJbnB1dFwiPlxuXHRcdFx0XHQ8ZGl2XG5cdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNlbGVjdCBjZHMtLXNlbGVjdC0taW5saW5lIGNkcy0tc2VsZWN0X19wYWdlLW51bWJlclwiXG5cdFx0XHRcdFx0W2NsYXNzLmNkcy0tc2VsZWN0LS1kaXNhYmxlZF09XCJwYWdlSW5wdXREaXNhYmxlZFwiPlxuXHRcdFx0XHRcdDxsYWJlbCBbZm9yXT1cImN1cnJlbnRQYWdlU2VsZWN0SWRcIiBjbGFzcz1cImNkcy0tbGFiZWwgY2RzLS12aXN1YWxseS1oaWRkZW5cIj57e3BhZ2VUZXh0LnN1YmplY3QgfCBhc3luY319PC9sYWJlbD5cblx0XHRcdFx0XHQ8aW5wdXRcblx0XHRcdFx0XHRcdCpuZ0lmPVwicGFnZU9wdGlvbnMubGVuZ3RoID4gcGFnZVNlbGVjdFRocmVzaG9sZFwiXG5cdFx0XHRcdFx0XHRzdHlsZT1cInBhZGRpbmctcmlnaHQ6IDFyZW07IG1hcmdpbi1yaWdodDogMXJlbTtcIlxuXHRcdFx0XHRcdFx0W2lkXT1cImN1cnJlbnRQYWdlU2VsZWN0SWRcIlxuXHRcdFx0XHRcdFx0dHlwZT1cIm51bWJlclwiXG5cdFx0XHRcdFx0XHRtaW49XCIxXCJcblx0XHRcdFx0XHRcdFttYXhdPVwicGFnZU9wdGlvbnMubGVuZ3RoXCJcblx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1zZWxlY3QtaW5wdXRcIlxuXHRcdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJjdXJyZW50UGFnZVwiPlxuXHRcdFx0XHRcdDxzZWxlY3Rcblx0XHRcdFx0XHRcdCpuZ0lmPVwicGFnZU9wdGlvbnMubGVuZ3RoIDw9IHBhZ2VTZWxlY3RUaHJlc2hvbGRcIlxuXHRcdFx0XHRcdFx0W2lkXT1cImN1cnJlbnRQYWdlU2VsZWN0SWRcIlxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNlbGVjdC1pbnB1dFwiXG5cdFx0XHRcdFx0XHRbZGlzYWJsZWRdPVwicGFnZUlucHV0RGlzYWJsZWRcIlxuXHRcdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJjdXJyZW50UGFnZVwiPlxuXHRcdFx0XHRcdFx0PG9wdGlvbiAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdlT3B0aW9uczsgbGV0IGkgPSBpbmRleDtcIiBjbGFzcz1cImNkcy0tc2VsZWN0LW9wdGlvblwiIFt2YWx1ZV09XCJpICsgMVwiPnt7aSArIDF9fTwvb3B0aW9uPlxuXHRcdFx0XHRcdDwvc2VsZWN0PlxuXHRcdFx0XHRcdDxzdmdcblx0XHRcdFx0XHRcdCpuZ0lmPVwicGFnZU9wdGlvbnMubGVuZ3RoIDw9IDEwMDBcIlxuXHRcdFx0XHRcdFx0Y2RzSWNvbj1cImNoZXZyb24tLWRvd25cIlxuXHRcdFx0XHRcdFx0c2l6ZT1cIjE2XCJcblx0XHRcdFx0XHRcdHN0eWxlPVwiZGlzcGxheTogaW5oZXJpdDtcIlxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNlbGVjdF9fYXJyb3dcIlxuXHRcdFx0XHRcdFx0W2F0dHIuYXJpYUxhYmVsXT1cIm9wdGlvbnNMaXN0VGV4dC5zdWJqZWN0IHwgYXN5bmNcIj5cblx0XHRcdFx0XHQ8L3N2Zz5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cblxuXHRcdFx0PHNwYW4gKm5nSWY9XCIhcGFnZXNVbmtub3duICYmIGxhc3RQYWdlIDw9IDFcIiBjbGFzcz1cImNkcy0tcGFnaW5hdGlvbl9fdGV4dFwiPlxuXHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIXNob3dQYWdlSW5wdXRcIj57e2N1cnJlbnRQYWdlfX08L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0e3tvZkxhc3RQYWdlVGV4dC5zdWJqZWN0IHwgaTE4blJlcGxhY2U6IHtsYXN0OiBsYXN0UGFnZX0gfCBhc3luY319XG5cdFx0XHQ8L3NwYW4+XG5cdFx0XHQ8c3BhbiAqbmdJZj1cIiFwYWdlc1Vua25vd24gJiYgbGFzdFBhZ2UgPiAxXCIgY2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX3RleHRcIj5cblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzaG93UGFnZUlucHV0XCI+e3tjdXJyZW50UGFnZX19PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdHt7b2ZMYXN0UGFnZXNUZXh0LnN1YmplY3QgfCBpMThuUmVwbGFjZToge2xhc3Q6IGxhc3RQYWdlfSB8IGFzeW5jfX1cblx0XHRcdDwvc3Bhbj5cblx0XHRcdDxkaXYgY2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX2NvbnRyb2wtYnV0dG9uc1wiPlxuXHRcdFx0XHQ8YnV0dG9uXG5cdFx0XHRcdFx0Y2RzQnV0dG9uPVwiZ2hvc3RcIlxuXHRcdFx0XHRcdGljb25Pbmx5PVwidHJ1ZVwiXG5cdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXBhZ2luYXRpb25fX2J1dHRvbiBjZHMtLXBhZ2luYXRpb25fX2J1dHRvbi0tYmFja3dhcmRcIlxuXHRcdFx0XHRcdFtuZ0NsYXNzXT1cIntcblx0XHRcdFx0XHRcdCdjZHMtLXBhZ2luYXRpb25fX2J1dHRvbi0tbm8taW5kZXgnOiBjdXJyZW50UGFnZSA8PSAxIHx8IGRpc2FibGVkXG5cdFx0XHRcdFx0fVwiXG5cdFx0XHRcdFx0dGFiaW5kZXg9XCIwXCJcblx0XHRcdFx0XHRbYXR0ci5hcmlhLWxhYmVsXT1cImJhY2t3YXJkVGV4dC5zdWJqZWN0IHwgYXN5bmNcIlxuXHRcdFx0XHRcdChjbGljayk9XCJzZWxlY3RQYWdlLmVtaXQocHJldmlvdXNQYWdlKVwiXG5cdFx0XHRcdFx0W2Rpc2FibGVkXT1cIihjdXJyZW50UGFnZSA8PSAxIHx8IGRpc2FibGVkID8gdHJ1ZSA6IG51bGwpXCI+XG5cdFx0XHRcdFx0PHN2ZyBjZHNJY29uPVwiY2FyZXQtLWxlZnRcIiBzaXplPVwiMTZcIiBjbGFzcz1cImNkcy0tYnRuX19pY29uXCI+PC9zdmc+XG5cdFx0XHRcdDwvYnV0dG9uPlxuXG5cdFx0XHRcdDxidXR0b25cblx0XHRcdFx0XHRjZHNCdXR0b249XCJnaG9zdFwiXG5cdFx0XHRcdFx0aWNvbk9ubHk9XCJ0cnVlXCJcblx0XHRcdFx0XHRjbGFzcz1cIlxuXHRcdFx0XHRcdFx0Y2RzLS1wYWdpbmF0aW9uX19idXR0b25cblx0XHRcdFx0XHRcdGNkcy0tcGFnaW5hdGlvbl9fYnV0dG9uLS1mb3J3YXJkXCJcblx0XHRcdFx0XHRbbmdDbGFzc109XCJ7XG5cdFx0XHRcdFx0XHQnY2RzLS1wYWdpbmF0aW9uX19idXR0b24tLW5vLWluZGV4JzogY3VycmVudFBhZ2UgPj0gbGFzdFBhZ2UgfHwgZGlzYWJsZWRcblx0XHRcdFx0XHR9XCJcblx0XHRcdFx0XHR0YWJpbmRleD1cIjBcIlxuXHRcdFx0XHRcdFthdHRyLmFyaWEtbGFiZWxdPVwiZm9yd2FyZFRleHQuc3ViamVjdCB8IGFzeW5jXCJcblx0XHRcdFx0XHQoY2xpY2spPVwic2VsZWN0UGFnZS5lbWl0KG5leHRQYWdlKVwiXG5cdFx0XHRcdFx0W2Rpc2FibGVkXT1cIihjdXJyZW50UGFnZSA+PSBsYXN0UGFnZSB8fCBkaXNhYmxlZCA/IHRydWUgOiBudWxsKVwiPlxuXHRcdFx0XHRcdDxzdmcgY2RzSWNvbj1cImNhcmV0LS1yaWdodFwiIHNpemU9XCIxNlwiIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIj48L3N2Zz5cblx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG5cdGBcbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbiB7XG5cdHN0YXRpYyBwYWdpbmF0aW9uQ291bnRlciA9IDA7XG5cblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgZm9yIGEgbG9hZGluZyBwYWdpbmF0aW9uIGNvbXBvbmVudC5cblx0ICovXG5cdEBJbnB1dCgpIHNrZWxldG9uID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBgUGFnaW5hdGlvbk1vZGVsYCB3aXRoIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBwYWdlcyB5b3UncmUgY29udHJvbGxpbmcuXG5cdCAqL1xuXHRASW5wdXQoKSBtb2RlbDogUGFnaW5hdGlvbk1vZGVsO1xuXHQvKipcbiBcdCAqIFNldCB0byBgdHJ1ZWAgdG8gZGlzYWJsZSB0aGUgYmFja3dhcmQvZm9yd2FyZCBidXR0b25zLlxuXHQgKi9cblx0QElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgdG8gZGlzYWJsZSB0aGUgc2VsZWN0IGJveCB0aGF0IGNoYW5nZXMgdGhlIHBhZ2UuXG5cdCAqL1xuXHRASW5wdXQoKSBwYWdlSW5wdXREaXNhYmxlZCA9IGZhbHNlO1xuXHQvKipcblx0ICogQ29udHJvbHMgd2V0aGVyIG9yIG5vdCB0byBzaG93IHRoZSBwYWdlIHNlbGVjdHNcblx0ICovXG5cdEBJbnB1dCgpIHNob3dQYWdlSW5wdXQgPSB0cnVlO1xuXHQvKipcblx0ICogU2V0IHRvIGB0cnVlYCBpZiB0aGUgdG90YWwgbnVtYmVyIG9mIGl0ZW1zIGlzIHVua25vd24uXG5cdCAqL1xuXHRASW5wdXQoKSBwYWdlc1Vua25vd24gPSBmYWxzZTtcblx0QElucHV0KCkgcGFnZVNlbGVjdFRocmVzaG9sZCA9IDEwMDA7XG5cblx0LyoqXG5cdCAqIEV4cGVjdHMgYW4gb2JqZWN0IHRoYXQgY29udGFpbnMgc29tZSBvciBhbGwgb2Y6XG5cdCAqIGBgYFxuXHQgKiB7XG5cdCAqXHRcdFwiSVRFTVNfUEVSX1BBR0VcIjogXCJJdGVtcyBwZXIgcGFnZTpcIixcblx0ICpcdFx0XCJPUEVOX0xJU1RfT0ZfT1BUSU9OU1wiOiBcIk9wZW4gbGlzdCBvZiBvcHRpb25zXCIsXG5cdCAqXHRcdFwiQkFDS1dBUkRcIjogXCJCYWNrd2FyZFwiLFxuXHQgKlx0XHRcIkZPUldBUkRcIjogXCJGb3J3YXJkXCIsXG5cdCAqXHRcdFwiVE9UQUxfSVRFTVNfVU5LTk9XTlwiOiBcInt7c3RhcnR9fS17e2VuZH19IGl0ZW1zXCIsXG5cdCAqXHRcdFwiVE9UQUxfSVRFTVNcIjogXCJ7e3N0YXJ0fX0te3tlbmR9fSBvZiB7e3RvdGFsfX0gaXRlbXNcIixcblx0ICpcdFx0XCJUT1RBTF9JVEVNXCI6IFwie3tzdGFydH19LXt7ZW5kfX0gb2Yge3t0b3RhbH19IGl0ZW1cIixcblx0ICpcdFx0XCJPRl9MQVNUX1BBR0VTXCI6IFwib2Yge3tsYXN0fX0gcGFnZXNcIixcblx0ICpcdFx0XCJPRl9MQVNUX1BBR0VcIjogXCJvZiB7e2xhc3R9fSBwYWdlXCJcblx0ICogfVxuXHQgKiBgYGBcblx0ICovXG5cdEBJbnB1dCgpXG5cdHNldCB0cmFuc2xhdGlvbnMgKHZhbHVlOiBQYWdpbmF0aW9uVHJhbnNsYXRpb25zKSB7XG5cdFx0Y29uc3QgdmFsdWVXaXRoRGVmYXVsdHMgPSBtZXJnZSh0aGlzLmkxOG4uZ2V0TXVsdGlwbGUoXCJQQUdJTkFUSU9OXCIpLCB2YWx1ZSk7XG5cdFx0dGhpcy5pdGVtc1BlclBhZ2VUZXh0Lm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLklURU1TX1BFUl9QQUdFKTtcblx0XHR0aGlzLm9wdGlvbnNMaXN0VGV4dC5vdmVycmlkZSh2YWx1ZVdpdGhEZWZhdWx0cy5PUEVOX0xJU1RfT0ZfT1BUSU9OUyk7XG5cdFx0dGhpcy5iYWNrd2FyZFRleHQub3ZlcnJpZGUodmFsdWVXaXRoRGVmYXVsdHMuQkFDS1dBUkQpO1xuXHRcdHRoaXMuZm9yd2FyZFRleHQub3ZlcnJpZGUodmFsdWVXaXRoRGVmYXVsdHMuRk9SV0FSRCk7XG5cdFx0dGhpcy50b3RhbEl0ZW1zVGV4dC5vdmVycmlkZSh2YWx1ZVdpdGhEZWZhdWx0cy5UT1RBTF9JVEVNUyk7XG5cdFx0dGhpcy50b3RhbEl0ZW1UZXh0Lm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLlRPVEFMX0lURU0pO1xuXHRcdHRoaXMudG90YWxJdGVtc1Vua25vd25UZXh0Lm92ZXJyaWRlKHZhbHVlV2l0aERlZmF1bHRzLlRPVEFMX0lURU1TX1VOS05PV04pO1xuXHRcdHRoaXMucGFnZVRleHQub3ZlcnJpZGUodmFsdWVXaXRoRGVmYXVsdHMuUEFHRSk7XG5cdFx0dGhpcy5vZkxhc3RQYWdlc1RleHQub3ZlcnJpZGUodmFsdWVXaXRoRGVmYXVsdHMuT0ZfTEFTVF9QQUdFUyk7XG5cdFx0dGhpcy5vZkxhc3RQYWdlVGV4dC5vdmVycmlkZSh2YWx1ZVdpdGhEZWZhdWx0cy5PRl9MQVNUX1BBR0UpO1xuXHR9XG5cblx0LyoqXG5cdCAqIE9wdGlvbnMgZm9yIGl0ZW1zIHBlciBwYWdlIHNlbGVjdFxuXHQgKlxuXHQgKiBBIGRlZmF1bHQgYXJyYXkgb2Ygb3B0aW9ucyB3aWxsIGJlIGRlZmluZWQ6IFsxMCwgMjAsIDMwLCA0MCwgNTBdXG5cdCAqL1xuXHRASW5wdXQoKSBpdGVtc1BlclBhZ2VPcHRpb25zOiBudW1iZXJbXSA9IFsxMCwgMjAsIDMwLCA0MCwgNTBdO1xuXG5cdC8qKlxuXHQgKiBFbWl0cyB0aGUgbmV3IHBhZ2UgbnVtYmVyLlxuXHQgKlxuXHQgKiBZb3Ugc2hvdWxkIHRpZSBpbnRvIHRoaXMgYW5kIHVwZGF0ZSBgbW9kZWwuY3VycmVudFBhZ2VgIG9uY2UgdGhlIGZyZXNoXG5cdCAqIGRhdGEgaXMgZmluYWxseSBsb2FkZWQuXG5cdCAqL1xuXHRAT3V0cHV0KCkgc2VsZWN0UGFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG5cdGdldCBpdGVtc1BlclBhZ2UoKSB7XG5cdFx0cmV0dXJuIHRoaXMubW9kZWwucGFnZUxlbmd0aDtcblx0fVxuXHRzZXQgaXRlbXNQZXJQYWdlKHZhbHVlKSB7XG5cdFx0dGhpcy5tb2RlbC5wYWdlTGVuZ3RoID0gTnVtYmVyKHZhbHVlKTtcblx0XHR0aGlzLmN1cnJlbnRQYWdlID0gMTsgLy8gcmVzZXQgcGFnZVxuXHR9XG5cblx0Z2V0IGN1cnJlbnRQYWdlKCkge1xuXHRcdHJldHVybiB0aGlzLm1vZGVsLmN1cnJlbnRQYWdlO1xuXHR9XG5cdHNldCBjdXJyZW50UGFnZSh2YWx1ZSkge1xuXHRcdHZhbHVlID0gTnVtYmVyKHZhbHVlKTtcblx0XHQvLyBlbWl0cyB0aGUgdmFsdWUgdG8gYWxsb3cgdGhlIHVzZXIgdG8gdXBkYXRlIGN1cnJlbnQgcGFnZVxuXHRcdC8vIGluIHRoZSBtb2RlbCBvbmNlIHRoZSBwYWdlIGlzIGxvYWRlZFxuXHRcdHRoaXMuc2VsZWN0UGFnZS5lbWl0KHZhbHVlKTtcblx0fVxuXG5cdGdldCB0b3RhbERhdGFMZW5ndGgoKSB7XG5cdFx0cmV0dXJuIHRoaXMubW9kZWwudG90YWxEYXRhTGVuZ3RoO1xuXHR9XG5cdC8qKlxuXHQgKiBUaGUgbGFzdCBwYWdlIG51bWJlciB0byBkaXNwbGF5IGluIHRoZSBwYWdpbmF0aW9uIHZpZXcuXG5cdCAqL1xuXHRnZXQgbGFzdFBhZ2UoKTogbnVtYmVyIHtcblx0XHRjb25zdCBsYXN0ID0gTWF0aC5jZWlsKHRoaXMudG90YWxEYXRhTGVuZ3RoIC8gdGhpcy5pdGVtc1BlclBhZ2UpO1xuXHRcdHJldHVybiBsYXN0ID4gMCA/IGxhc3QgOiAxO1xuXHR9XG5cblx0Z2V0IHN0YXJ0SXRlbUluZGV4KCkge1xuXHRcdHJldHVybiB0aGlzLmVuZEl0ZW1JbmRleCA+IDAgPyAodGhpcy5jdXJyZW50UGFnZSAtIDEpICogdGhpcy5pdGVtc1BlclBhZ2UgKyAxIDogMDtcblx0fVxuXG5cdGdldCBlbmRJdGVtSW5kZXgoKSB7XG5cdFx0Y29uc3QgcHJvamVjdGVkRW5kSXRlbUluZGV4ID0gdGhpcy5jdXJyZW50UGFnZSAqIHRoaXMuaXRlbXNQZXJQYWdlO1xuXG5cdFx0cmV0dXJuIHByb2plY3RlZEVuZEl0ZW1JbmRleCA8IHRoaXMudG90YWxEYXRhTGVuZ3RoID8gcHJvamVjdGVkRW5kSXRlbUluZGV4IDogdGhpcy50b3RhbERhdGFMZW5ndGg7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIHByZXZpb3VzIHBhZ2UgbnVtYmVyIHRvIG5hdmlnYXRlIHRvLCBmcm9tIHRoZSBjdXJyZW50IHBhZ2UuXG5cdCAqL1xuXHRnZXQgcHJldmlvdXNQYWdlKCk6IG51bWJlciB7XG5cdFx0cmV0dXJuIHRoaXMuY3VycmVudFBhZ2UgPD0gMSA/IDEgOiB0aGlzLmN1cnJlbnRQYWdlIC0gMTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGUgbmV4dCBwYWdlIG51bWJlciB0byBuYXZpZ2F0ZSB0bywgZnJvbSB0aGUgY3VycmVudCBwYWdlLlxuXHQgKi9cblx0Z2V0IG5leHRQYWdlKCk6IG51bWJlciB7XG5cdFx0Y29uc3QgbGFzdFBhZ2UgPSB0aGlzLmxhc3RQYWdlO1xuXHRcdHJldHVybiB0aGlzLmN1cnJlbnRQYWdlID49IGxhc3RQYWdlID8gbGFzdFBhZ2UgOiB0aGlzLmN1cnJlbnRQYWdlICsgMTtcblx0fVxuXG5cdGdldCBwYWdlT3B0aW9ucygpIHtcblx0XHQvKipcblx0XHQgKiBDYWxjdWxhdGUgbnVtYmVyIG9mIHBhZ2VzIGJhc2VkIG9uIHRvdGFsRGF0YUxlbmd0aCBhbmQgaXRlbXNQZXJQYWdlLlxuXHRcdCAqIEV2ZW4gaWYgdG90YWxEYXRhTGVuZ3RoIGlzIDAsIG51bWJlck9mUGFnZXMgc2hvdWxkIGJlIGFsd2F5cyBhdCBsZWFzdCAxLlxuXHRcdCAqIE5ldyBhcnJheSB3aWxsIGJlIGNvbnN0cnVjdGVkIG9ubHkgaWYgbnVtYmVyIG9mIHBhZ2VzIGNoYW5nZXMuXG5cdFx0ICovXG5cdFx0Y29uc3QgbnVtYmVyT2ZQYWdlcyA9IE1hdGgubWF4KE1hdGguY2VpbCh0aGlzLnRvdGFsRGF0YUxlbmd0aCAvIHRoaXMuaXRlbXNQZXJQYWdlKSwgMSk7XG5cdFx0aWYgKHRoaXMuX3BhZ2VPcHRpb25zLmxlbmd0aCAhPT0gbnVtYmVyT2ZQYWdlcykge1xuXHRcdFx0dGhpcy5fcGFnZU9wdGlvbnMgPSBBcnJheShudW1iZXJPZlBhZ2VzKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuX3BhZ2VPcHRpb25zO1xuXHR9XG5cblx0aXRlbXNQZXJQYWdlU2VsZWN0SWQgPSBgcGFnaW5hdGlvbi1zZWxlY3QtaXRlbXMtcGVyLXBhZ2UtJHtQYWdpbmF0aW9uLnBhZ2luYXRpb25Db3VudGVyfWA7XG5cdGN1cnJlbnRQYWdlU2VsZWN0SWQgPSBgcGFnaW5hdGlvbi1zZWxlY3QtY3VycmVudC1wYWdlLSR7UGFnaW5hdGlvbi5wYWdpbmF0aW9uQ291bnRlcn1gO1xuXG5cdGl0ZW1zUGVyUGFnZVRleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLklURU1TX1BFUl9QQUdFXCIpO1xuXHRvcHRpb25zTGlzdFRleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLk9QRU5fTElTVF9PRl9PUFRJT05TXCIpO1xuXHRiYWNrd2FyZFRleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLkJBQ0tXQVJEXCIpO1xuXHRmb3J3YXJkVGV4dCA9IHRoaXMuaTE4bi5nZXRPdmVycmlkYWJsZShcIlBBR0lOQVRJT04uRk9SV0FSRFwiKTtcblx0dG90YWxJdGVtc1RleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLlRPVEFMX0lURU1TXCIpO1xuXHR0b3RhbEl0ZW1UZXh0ID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiUEFHSU5BVElPTi5UT1RBTF9JVEVNXCIpO1xuXHR0b3RhbEl0ZW1zVW5rbm93blRleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLlRPVEFMX0lURU1TX1VOS05PV05cIik7XG5cdHBhZ2VUZXh0ID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiUEFHSU5BVElPTi5QQUdFXCIpO1xuXHRvZkxhc3RQYWdlc1RleHQgPSB0aGlzLmkxOG4uZ2V0T3ZlcnJpZGFibGUoXCJQQUdJTkFUSU9OLk9GX0xBU1RfUEFHRVNcIik7XG5cdG9mTGFzdFBhZ2VUZXh0ID0gdGhpcy5pMThuLmdldE92ZXJyaWRhYmxlKFwiUEFHSU5BVElPTi5PRl9MQVNUX1BBR0VcIik7XG5cblx0cHJvdGVjdGVkIF9wYWdlT3B0aW9ucyA9IFtdO1xuXG5cdGNvbnN0cnVjdG9yKHByb3RlY3RlZCBpMThuOiBJMThuLCBwcm90ZWN0ZWQgZXhwZXJpbWVudGFsOiBFeHBlcmltZW50YWxTZXJ2aWNlKSB7XG5cdFx0UGFnaW5hdGlvbi5wYWdpbmF0aW9uQ291bnRlcisrO1xuXHR9XG59XG4iXX0=
@@ -60,7 +60,12 @@ export class Select {
60
60
  * `light` or `dark` select theme
61
61
  */
62
62
  this.theme = "dark";
63
+ /**
64
+ * Experimental: enable fluid state
65
+ */
66
+ this.fluid = false;
63
67
  this.valueChange = new EventEmitter();
68
+ this.focused = false;
64
69
  /**
65
70
  * placeholder declarations. Replaced by the functions provided to `registerOnChange` and `registerOnTouched`
66
71
  */
@@ -144,24 +149,39 @@ export class Select {
144
149
  event.preventDefault();
145
150
  }
146
151
  }
152
+ handleFocus(event) {
153
+ this.focused = event.type === "focus";
154
+ }
147
155
  }
148
156
  /**
149
157
  * Tracks the total number of selects instantiated. Used to generate unique IDs
150
158
  */
151
159
  Select.selectCount = 0;
152
160
  Select.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: Select, deps: [], target: i0.ɵɵFactoryTarget.Component });
153
- Select.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: Select, selector: "cds-select, ibm-select", inputs: { value: "value", display: "display", label: "label", helperText: "helperText", invalidText: "invalidText", warn: "warn", warnText: "warnText", id: "id", size: "size", disabled: "disabled", skeleton: "skeleton", invalid: "invalid", readonly: "readonly", theme: "theme", ariaLabel: "ariaLabel" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "focusout": "focusOut()" } }, providers: [
161
+ Select.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: Select, selector: "cds-select, ibm-select", inputs: { value: "value", display: "display", label: "label", helperText: "helperText", invalidText: "invalidText", warn: "warn", warnText: "warnText", id: "id", size: "size", disabled: "disabled", skeleton: "skeleton", invalid: "invalid", readonly: "readonly", theme: "theme", ariaLabel: "ariaLabel", fluid: "fluid" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "focusout": "focusOut()" } }, providers: [
154
162
  {
155
163
  provide: NG_VALUE_ACCESSOR,
156
164
  useExisting: Select,
157
165
  multi: true
158
166
  }
159
167
  ], viewQueries: [{ propertyName: "select", first: true, predicate: ["select"], descendants: true }], ngImport: i0, template: `
160
- <div class="cds--form-item">
161
- <ng-template [ngIf]="skeleton">
168
+ <div
169
+ [ngClass]="{
170
+ 'cds--form-item': !skeleton,
171
+ 'cds--select--fluid': fluid && !skeleton
172
+ }">
173
+ <ng-container *ngIf="skeleton && !fluid">
162
174
  <div *ngIf="label" class="cds--label cds--skeleton"></div>
163
175
  <div class="cds--select cds--skeleton"></div>
164
- </ng-template>
176
+ </ng-container>
177
+ <ng-container *ngIf="skeleton && fluid">
178
+ <div class="cds--list-box__wrapper--fluid">
179
+ <div class="cds--list-box cds--skeleton">
180
+ <div class="cds--list-box__label"></div>
181
+ <div class="cds--list-box__field"></div>
182
+ </div>
183
+ </div>
184
+ </ng-container>
165
185
  <div
166
186
  *ngIf="!skeleton"
167
187
  class="cds--select"
@@ -171,7 +191,9 @@ Select.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.
171
191
  'cds--select--invalid': invalid,
172
192
  'cds--select--warning': warn,
173
193
  'cds--select--disabled': disabled,
174
- 'cds--select--readonly': readonly
194
+ 'cds--select--readonly': readonly,
195
+ 'cds--select--fluid--invalid': fluid && invalid,
196
+ 'cds--select--fluid--focus': fluid && focused
175
197
  }">
176
198
  <label
177
199
  *ngIf="label"
@@ -185,7 +207,7 @@ Select.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.
185
207
  <ng-container *ngTemplateOutlet="noInline"></ng-container>
186
208
  </div>
187
209
  <div
188
- *ngIf="helperText"
210
+ *ngIf="helperText && !invalid && !warn && !skeleton && !fluid"
189
211
  class="cds--form__helper-text"
190
212
  [ngClass]="{
191
213
  'cds--form__helper-text--disabled': disabled
@@ -214,7 +236,9 @@ Select.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.
214
236
  'cds--select-input--lg': size === 'lg'
215
237
  }"
216
238
  (mousedown)="onMouseDown($event)"
217
- (keydown)="onKeyDown($event)">
239
+ (keydown)="onKeyDown($event)"
240
+ (focus)="fluid ? handleFocus($event) : null"
241
+ (blur)="fluid ? handleFocus($event) : null">
218
242
  <ng-content></ng-content>
219
243
  </select>
220
244
  <svg
@@ -241,16 +265,30 @@ Select.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.
241
265
  size="16"
242
266
  class="cds--select__invalid-icon cds--select__invalid-icon--warning">
243
267
  </svg>
268
+ <ng-container *ngIf="fluid">
269
+ <hr class="cds--select__divider" />
270
+ <div
271
+ *ngIf="invalid && invalidText" role="alert" class="cds--form-requirement" aria-live="polite">
272
+ <ng-container *ngIf="!isTemplate(invalidText)">{{invalidText}}</ng-container>
273
+ <ng-template *ngIf="isTemplate(invalidText)" [ngTemplateOutlet]="invalidText"></ng-template>
274
+ </div>
275
+ <div *ngIf="!invalid && warn" class="cds--form-requirement">
276
+ <ng-container *ngIf="!isTemplate(warnText)">{{warnText}}</ng-container>
277
+ <ng-template *ngIf="isTemplate(warnText)" [ngTemplateOutlet]="warnText"></ng-template>
278
+ </div>
279
+ </ng-container>
244
280
  </div>
245
- <div
246
- *ngIf="invalid && invalidText" role="alert" class="cds--form-requirement" aria-live="polite">
247
- <ng-container *ngIf="!isTemplate(invalidText)">{{invalidText}}</ng-container>
248
- <ng-template *ngIf="isTemplate(invalidText)" [ngTemplateOutlet]="invalidText"></ng-template>
249
- </div>
250
- <div *ngIf="!invalid && warn" class="cds--form-requirement">
251
- <ng-container *ngIf="!isTemplate(warnText)">{{warnText}}</ng-container>
252
- <ng-template *ngIf="isTemplate(warnText)" [ngTemplateOutlet]="warnText"></ng-template>
253
- </div>
281
+ <ng-container *ngIf="!fluid">
282
+ <div
283
+ *ngIf="invalid && invalidText" role="alert" class="cds--form-requirement" aria-live="polite">
284
+ <ng-container *ngIf="!isTemplate(invalidText)">{{invalidText}}</ng-container>
285
+ <ng-template *ngIf="isTemplate(invalidText)" [ngTemplateOutlet]="invalidText"></ng-template>
286
+ </div>
287
+ <div *ngIf="!invalid && warn" class="cds--form-requirement">
288
+ <ng-container *ngIf="!isTemplate(warnText)">{{warnText}}</ng-container>
289
+ <ng-template *ngIf="isTemplate(warnText)" [ngTemplateOutlet]="warnText"></ng-template>
290
+ </div>
291
+ </ng-container>
254
292
  </ng-template>
255
293
  `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }] });
256
294
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: Select, decorators: [{
@@ -258,11 +296,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
258
296
  args: [{
259
297
  selector: "cds-select, ibm-select",
260
298
  template: `
261
- <div class="cds--form-item">
262
- <ng-template [ngIf]="skeleton">
299
+ <div
300
+ [ngClass]="{
301
+ 'cds--form-item': !skeleton,
302
+ 'cds--select--fluid': fluid && !skeleton
303
+ }">
304
+ <ng-container *ngIf="skeleton && !fluid">
263
305
  <div *ngIf="label" class="cds--label cds--skeleton"></div>
264
306
  <div class="cds--select cds--skeleton"></div>
265
- </ng-template>
307
+ </ng-container>
308
+ <ng-container *ngIf="skeleton && fluid">
309
+ <div class="cds--list-box__wrapper--fluid">
310
+ <div class="cds--list-box cds--skeleton">
311
+ <div class="cds--list-box__label"></div>
312
+ <div class="cds--list-box__field"></div>
313
+ </div>
314
+ </div>
315
+ </ng-container>
266
316
  <div
267
317
  *ngIf="!skeleton"
268
318
  class="cds--select"
@@ -272,7 +322,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
272
322
  'cds--select--invalid': invalid,
273
323
  'cds--select--warning': warn,
274
324
  'cds--select--disabled': disabled,
275
- 'cds--select--readonly': readonly
325
+ 'cds--select--readonly': readonly,
326
+ 'cds--select--fluid--invalid': fluid && invalid,
327
+ 'cds--select--fluid--focus': fluid && focused
276
328
  }">
277
329
  <label
278
330
  *ngIf="label"
@@ -286,7 +338,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
286
338
  <ng-container *ngTemplateOutlet="noInline"></ng-container>
287
339
  </div>
288
340
  <div
289
- *ngIf="helperText"
341
+ *ngIf="helperText && !invalid && !warn && !skeleton && !fluid"
290
342
  class="cds--form__helper-text"
291
343
  [ngClass]="{
292
344
  'cds--form__helper-text--disabled': disabled
@@ -315,7 +367,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
315
367
  'cds--select-input--lg': size === 'lg'
316
368
  }"
317
369
  (mousedown)="onMouseDown($event)"
318
- (keydown)="onKeyDown($event)">
370
+ (keydown)="onKeyDown($event)"
371
+ (focus)="fluid ? handleFocus($event) : null"
372
+ (blur)="fluid ? handleFocus($event) : null">
319
373
  <ng-content></ng-content>
320
374
  </select>
321
375
  <svg
@@ -342,16 +396,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
342
396
  size="16"
343
397
  class="cds--select__invalid-icon cds--select__invalid-icon--warning">
344
398
  </svg>
399
+ <ng-container *ngIf="fluid">
400
+ <hr class="cds--select__divider" />
401
+ <div
402
+ *ngIf="invalid && invalidText" role="alert" class="cds--form-requirement" aria-live="polite">
403
+ <ng-container *ngIf="!isTemplate(invalidText)">{{invalidText}}</ng-container>
404
+ <ng-template *ngIf="isTemplate(invalidText)" [ngTemplateOutlet]="invalidText"></ng-template>
405
+ </div>
406
+ <div *ngIf="!invalid && warn" class="cds--form-requirement">
407
+ <ng-container *ngIf="!isTemplate(warnText)">{{warnText}}</ng-container>
408
+ <ng-template *ngIf="isTemplate(warnText)" [ngTemplateOutlet]="warnText"></ng-template>
409
+ </div>
410
+ </ng-container>
345
411
  </div>
346
- <div
347
- *ngIf="invalid && invalidText" role="alert" class="cds--form-requirement" aria-live="polite">
348
- <ng-container *ngIf="!isTemplate(invalidText)">{{invalidText}}</ng-container>
349
- <ng-template *ngIf="isTemplate(invalidText)" [ngTemplateOutlet]="invalidText"></ng-template>
350
- </div>
351
- <div *ngIf="!invalid && warn" class="cds--form-requirement">
352
- <ng-container *ngIf="!isTemplate(warnText)">{{warnText}}</ng-container>
353
- <ng-template *ngIf="isTemplate(warnText)" [ngTemplateOutlet]="warnText"></ng-template>
354
- </div>
412
+ <ng-container *ngIf="!fluid">
413
+ <div
414
+ *ngIf="invalid && invalidText" role="alert" class="cds--form-requirement" aria-live="polite">
415
+ <ng-container *ngIf="!isTemplate(invalidText)">{{invalidText}}</ng-container>
416
+ <ng-template *ngIf="isTemplate(invalidText)" [ngTemplateOutlet]="invalidText"></ng-template>
417
+ </div>
418
+ <div *ngIf="!invalid && warn" class="cds--form-requirement">
419
+ <ng-container *ngIf="!isTemplate(warnText)">{{warnText}}</ng-container>
420
+ <ng-template *ngIf="isTemplate(warnText)" [ngTemplateOutlet]="warnText"></ng-template>
421
+ </div>
422
+ </ng-container>
355
423
  </ng-template>
356
424
  `,
357
425
  providers: [
@@ -392,6 +460,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
392
460
  type: Input
393
461
  }], ariaLabel: [{
394
462
  type: Input
463
+ }], fluid: [{
464
+ type: Input
395
465
  }], valueChange: [{
396
466
  type: Output
397
467
  }], select: [{
@@ -401,4 +471,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
401
471
  type: HostListener,
402
472
  args: ["focusout"]
403
473
  }] } });
404
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRU4sU0FBUyxFQUVULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFlBQVksRUFDWixXQUFXLEVBQ1gsU0FBUyxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUV6RTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUE0R0gsTUFBTSxPQUFPLE1BQU07SUEzR25CO1FBNEhDOztXQUVHO1FBQ00sWUFBTyxHQUF5QixTQUFTLENBQUM7UUFhbkQ7O1lBRUk7UUFDSyxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBS3RCOztXQUVHO1FBQ00sT0FBRSxHQUFHLFVBQVUsTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7UUFDL0M7O1dBRUc7UUFDTSxTQUFJLEdBQXVCLElBQUksQ0FBQztRQUN6Qzs7V0FFRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUI7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCOztXQUVHO1FBQ00sWUFBTyxHQUFHLEtBQUssQ0FBQztRQUN6Qjs7V0FFRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFMUI7OztXQUdHO1FBQ00sVUFBSyxHQUFxQixNQUFNLENBQUM7UUFHaEMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBdUYzQzs7V0FFRztRQUNPLG9CQUFlLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNsQyxxQkFBZ0IsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FDdkM7SUFwS0EsSUFBYSxLQUFLLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNoQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDOUM7SUFDRixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3BCLENBQUM7SUFxRUQsZUFBZTtRQUNkLElBQ0MsSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTO1lBQ3hCLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSTtZQUNuQixJQUFJLENBQUMsTUFBTTtZQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxFQUM3QztZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQzdDO0lBQ0YsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVSxDQUFDLEdBQVE7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxLQUFLO1FBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7O09BRUc7SUFFSCxRQUFRO1FBQ1AsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFLO1FBQ3RCLE9BQU8sS0FBSyxZQUFZLFdBQVcsQ0FBQztJQUNyQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWlCO1FBQzVCOztXQUVHO1FBQ0gsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNULEtBQUssQ0FBQyxNQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDcEM7SUFDRixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQW9CO1FBQzdCLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEY7O1dBRUc7UUFDSCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMxRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdkI7SUFDRixDQUFDOztBQWxKRDs7R0FFRztBQUNJLGtCQUFXLEdBQUcsQ0FBQyxDQUFDO21HQWZYLE1BQU07dUZBQU4sTUFBTSw2YkFSUDtRQUNWO1lBQ0MsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsTUFBTTtZQUNuQixLQUFLLEVBQUUsSUFBSTtTQUNYO0tBQ0QsNEhBdkdTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFnR1Q7MkZBU1csTUFBTTtrQkEzR2xCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFnR1Q7b0JBQ0QsU0FBUyxFQUFFO3dCQUNWOzRCQUNDLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsUUFBUTs0QkFDbkIsS0FBSyxFQUFFLElBQUk7eUJBQ1g7cUJBQ0Q7aUJBQ0Q7OEJBRWEsS0FBSztzQkFBakIsS0FBSztnQkFtQkcsT0FBTztzQkFBZixLQUFLO2dCQUlHLEtBQUs7c0JBQWIsS0FBSztnQkFJRyxVQUFVO3NCQUFsQixLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBSUcsSUFBSTtzQkFBWixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsRUFBRTtzQkFBVixLQUFLO2dCQUlHLElBQUk7c0JBQVosS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsT0FBTztzQkFBZixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBTUcsS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFFYyxNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBeURuQixRQUFRO3NCQURQLFlBQVk7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdEFmdGVyVmlld0luaXQsXG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0SW5wdXQsXG5cdE91dHB1dCxcblx0SG9zdExpc3RlbmVyLFxuXHRFdmVudEVtaXR0ZXIsXG5cdFRlbXBsYXRlUmVmLFxuXHRWaWV3Q2hpbGRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG4vKipcbiAqIGBjZHMtc2VsZWN0YCBwcm92aWRlcyBhIHN0eWxlZCBgc2VsZWN0YCBjb21wb25lbnQuIEdldCBzdGFydGVkIHdpdGggaW1wb3J0aW5nIHRoZSBtb2R1bGU6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgU2VsZWN0TW9kdWxlIH0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG4gKiBgYGBcbiAqXG4gKiBgYGBodG1sXG4gKiA8Y2RzLXNlbGVjdCBbKG5nTW9kZWwpXT1cIm1vZGVsXCI+XG4gKiBcdDxvcHRpb24gdmFsdWU9XCJkZWZhdWx0XCIgZGlzYWJsZWQgc2VsZWN0ZWQgaGlkZGVuPkNob29zZSBhbiBvcHRpb248L29wdGlvbj5cbiAqIFx0PG9wdGlvbiB2YWx1ZT1cIm9wdGlvbjFcIj5PcHRpb24gMTwvb3B0aW9uPlxuICpcdDxvcHRpb24gdmFsdWU9XCJvcHRpb24yXCI+T3B0aW9uIDI8L29wdGlvbj5cbiAqIFx0PG9wdGlvbiB2YWx1ZT1cIm9wdGlvbjNcIj5PcHRpb24gMzwvb3B0aW9uPlxuICogPC9jZHMtc2VsZWN0PlxuICpcdGBgYFxuICpcbiAqIFtTZWUgZGVtb10oLi4vLi4vP3BhdGg9L3N0b3J5L2NvbXBvbmVudHMtc2VsZWN0LS1iYXNpYylcbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcImNkcy1zZWxlY3QsIGlibS1zZWxlY3RcIixcblx0dGVtcGxhdGU6IGBcblx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS1mb3JtLWl0ZW1cIj5cblx0XHRcdDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJza2VsZXRvblwiPlxuXHRcdFx0XHQ8ZGl2ICpuZ0lmPVwibGFiZWxcIiBjbGFzcz1cImNkcy0tbGFiZWwgY2RzLS1za2VsZXRvblwiPjwvZGl2PlxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS1zZWxlY3QgY2RzLS1za2VsZXRvblwiPjwvZGl2PlxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdDxkaXZcblx0XHRcdFx0Km5nSWY9XCIhc2tlbGV0b25cIlxuXHRcdFx0XHRjbGFzcz1cImNkcy0tc2VsZWN0XCJcblx0XHRcdFx0W25nQ2xhc3NdPVwie1xuXHRcdFx0XHRcdCdjZHMtLXNlbGVjdC0taW5saW5lJzogZGlzcGxheSA9PT0gJ2lubGluZScsXG5cdFx0XHRcdFx0J2Nkcy0tc2VsZWN0LS1saWdodCc6IHRoZW1lID09PSAnbGlnaHQnLFxuXHRcdFx0XHRcdCdjZHMtLXNlbGVjdC0taW52YWxpZCc6IGludmFsaWQsXG5cdFx0XHRcdFx0J2Nkcy0tc2VsZWN0LS13YXJuaW5nJzogd2Fybixcblx0XHRcdFx0XHQnY2RzLS1zZWxlY3QtLWRpc2FibGVkJzogZGlzYWJsZWQsXG5cdFx0XHRcdFx0J2Nkcy0tc2VsZWN0LS1yZWFkb25seSc6IHJlYWRvbmx5XG5cdFx0XHRcdH1cIj5cblx0XHRcdFx0PGxhYmVsXG5cdFx0XHRcdFx0Km5nSWY9XCJsYWJlbFwiXG5cdFx0XHRcdFx0W2Zvcl09XCJpZFwiXG5cdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLWxhYmVsXCJcblx0XHRcdFx0XHRbbmdDbGFzc109XCJ7J2Nkcy0tbGFiZWwtLWRpc2FibGVkJzogZGlzYWJsZWR9XCI+XG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlKGxhYmVsKVwiPnt7bGFiZWx9fTwvbmctY29udGFpbmVyPlxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAqbmdJZj1cImlzVGVtcGxhdGUobGFiZWwpXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxcIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8L2xhYmVsPlxuXHRcdFx0XHQ8ZGl2ICpuZ0lmPVwiZGlzcGxheSA9PT0gJ2lubGluZSc7IGVsc2Ugbm9JbmxpbmVcIiBjbGFzcz1cImNkcy0tc2VsZWN0LWlucHV0LS1pbmxpbmVfX3dyYXBwZXJcIj5cblx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9JbmxpbmVcIj48L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDxkaXZcblx0XHRcdFx0XHQqbmdJZj1cImhlbHBlclRleHRcIlxuXHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1mb3JtX19oZWxwZXItdGV4dFwiXG5cdFx0XHRcdFx0W25nQ2xhc3NdPVwie1xuXHRcdFx0XHRcdFx0J2Nkcy0tZm9ybV9faGVscGVyLXRleHQtLWRpc2FibGVkJzogZGlzYWJsZWRcblx0XHRcdFx0XHR9XCI+XG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlKGhlbHBlclRleHQpXCI+e3toZWxwZXJUZXh0fX08L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgKm5nSWY9XCJpc1RlbXBsYXRlKGhlbHBlclRleHQpXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVscGVyVGV4dFwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cblx0XHQ8IS0tIHNlbGVjdCBlbGVtZW50OiBkeW5hbWljYWxseSBwcm9qZWN0ZWQgYmFzZWQgb24gJ2Rpc3BsYXknIHZhcmlhbnQgLS0+XG5cdFx0PG5nLXRlbXBsYXRlICNub0lubGluZT5cblx0XHRcdDxkaXYgY2xhc3M9XCJjZHMtLXNlbGVjdC1pbnB1dF9fd3JhcHBlclwiIFthdHRyLmRhdGEtaW52YWxpZF09XCIoaW52YWxpZCA/IHRydWUgOiBudWxsKVwiPlxuXHRcdFx0XHQ8c2VsZWN0XG5cdFx0XHRcdFx0I3NlbGVjdFxuXHRcdFx0XHRcdFthdHRyLmlkXT1cImlkXCJcblx0XHRcdFx0XHRbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG5cdFx0XHRcdFx0W2Rpc2FibGVkXT1cImRpc2FibGVkXCJcblx0XHRcdFx0XHQoY2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxuXHRcdFx0XHRcdFthdHRyLmFyaWEtaW52YWxpZF09XCJpbnZhbGlkID8gJ3RydWUnIDogbnVsbFwiXG5cdFx0XHRcdFx0W2F0dHIuYXJpYS1yZWFkb25seV09XCJyZWFkb25seSA/ICd0cnVlJyA6IG51bGxcIlxuXHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1zZWxlY3QtaW5wdXRcIlxuXHRcdFx0XHRcdFtuZ0NsYXNzXT1cIntcblx0XHRcdFx0XHRcdCdjZHMtLXNlbGVjdC1pbnB1dC0tc20nOiBzaXplID09PSAnc20nLFxuXHRcdFx0XHRcdFx0J2Nkcy0tc2VsZWN0LWlucHV0LS1tZCc6IHNpemUgPT09ICdtZCcsXG5cdFx0XHRcdFx0XHQnY2RzLS1zZWxlY3QtaW5wdXQtLWxnJzogc2l6ZSA9PT0gJ2xnJ1xuXHRcdFx0XHRcdH1cIlxuXHRcdFx0XHRcdChtb3VzZWRvd24pPVwib25Nb3VzZURvd24oJGV2ZW50KVwiXG5cdFx0XHRcdFx0KGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIj5cblx0XHRcdFx0XHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cdFx0XHRcdDwvc2VsZWN0PlxuXHRcdFx0XHQ8c3ZnXG5cdFx0XHRcdFx0Zm9jdXNhYmxlPVwiZmFsc2VcIlxuXHRcdFx0XHRcdHByZXNlcnZlQXNwZWN0UmF0aW89XCJ4TWlkWU1pZCBtZWV0XCJcblx0XHRcdFx0XHRzdHlsZT1cIndpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XCJcblx0XHRcdFx0XHR4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcblx0XHRcdFx0XHRjbGFzcz1cImNkcy0tc2VsZWN0X19hcnJvd1wiXG5cdFx0XHRcdFx0d2lkdGg9XCIxNlwiXG5cdFx0XHRcdFx0aGVpZ2h0PVwiMTZcIlxuXHRcdFx0XHRcdHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuXHRcdFx0XHRcdGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuXHRcdFx0XHRcdDxwYXRoIGQ9XCJNOCAxMUwzIDYgMy43IDUuMyA4IDkuNiAxMi4zIDUuMyAxMyA2elwiPjwvcGF0aD5cblx0XHRcdFx0PC9zdmc+XG5cdFx0XHRcdDxzdmdcblx0XHRcdFx0XHQqbmdJZj1cImludmFsaWRcIlxuXHRcdFx0XHRcdGNkc0ljb249XCJ3YXJuaW5nLS1maWxsZWRcIlxuXHRcdFx0XHRcdHNpemU9XCIxNlwiXG5cdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNlbGVjdF9faW52YWxpZC1pY29uXCI+XG5cdFx0XHRcdDwvc3ZnPlxuXHRcdFx0XHQ8c3ZnXG5cdFx0XHRcdFx0Km5nSWY9XCIhaW52YWxpZCAmJiB3YXJuXCJcblx0XHRcdFx0XHRjZHNJY29uPVwid2FybmluZy0tYWx0LS1maWxsZWRcIlxuXHRcdFx0XHRcdHNpemU9XCIxNlwiXG5cdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNlbGVjdF9faW52YWxpZC1pY29uIGNkcy0tc2VsZWN0X19pbnZhbGlkLWljb24tLXdhcm5pbmdcIj5cblx0XHRcdFx0PC9zdmc+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXZcblx0XHRcdFx0Km5nSWY9XCJpbnZhbGlkICYmIGludmFsaWRUZXh0XCIgcm9sZT1cImFsZXJ0XCIgY2xhc3M9XCJjZHMtLWZvcm0tcmVxdWlyZW1lbnRcIiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlKGludmFsaWRUZXh0KVwiPnt7aW52YWxpZFRleHR9fTwvbmctY29udGFpbmVyPlxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgKm5nSWY9XCJpc1RlbXBsYXRlKGludmFsaWRUZXh0KVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImludmFsaWRUZXh0XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiAqbmdJZj1cIiFpbnZhbGlkICYmIHdhcm5cIiBjbGFzcz1cImNkcy0tZm9ybS1yZXF1aXJlbWVudFwiPlxuXHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzVGVtcGxhdGUod2FyblRleHQpXCI+e3t3YXJuVGV4dH19PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdDxuZy10ZW1wbGF0ZSAqbmdJZj1cImlzVGVtcGxhdGUod2FyblRleHQpXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwid2FyblRleHRcIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9uZy10ZW1wbGF0ZT5cblx0YCxcblx0cHJvdmlkZXJzOiBbXG5cdFx0e1xuXHRcdFx0cHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG5cdFx0XHR1c2VFeGlzdGluZzogU2VsZWN0LFxuXHRcdFx0bXVsdGk6IHRydWVcblx0XHR9XG5cdF1cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQge1xuXHRASW5wdXQoKSBzZXQgdmFsdWUodikge1xuXHRcdHRoaXMuX3ZhbHVlID0gdjtcblx0XHRpZiAodGhpcy5zZWxlY3QpIHtcblx0XHRcdHRoaXMuc2VsZWN0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLl92YWx1ZTtcblx0XHR9XG5cdH1cblxuXHRnZXQgdmFsdWUoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX3ZhbHVlO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRyYWNrcyB0aGUgdG90YWwgbnVtYmVyIG9mIHNlbGVjdHMgaW5zdGFudGlhdGVkLiBVc2VkIHRvIGdlbmVyYXRlIHVuaXF1ZSBJRHNcblx0ICovXG5cdHN0YXRpYyBzZWxlY3RDb3VudCA9IDA7XG5cblx0LyoqXG5cdCAqIGBpbmxpbmVgIG9yIGBkZWZhdWx0YCBzZWxlY3QgZGlzcGxheXNcblx0ICovXG5cdEBJbnB1dCgpIGRpc3BsYXk6IFwiaW5saW5lXCIgfCBcImRlZmF1bHRcIiA9IFwiZGVmYXVsdFwiO1xuXHQvKipcblx0ICogTGFiZWwgZm9yIHRoZSBzZWxlY3QuIEFwcGVhcnMgYWJvdmUgdGhlIGlucHV0LlxuXHQgKi9cblx0QElucHV0KCkgbGFiZWw6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdC8qKlxuXHQgKiBPcHRpb25hbCBoZWxwZXIgdGV4dCB0aGF0IGFwcGVhcnMgdW5kZXIgdGhlIGxhYmVsLlxuXHQgKi9cblx0QElucHV0KCkgaGVscGVyVGV4dDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pjtcblx0LyoqXG5cdCAqIFNldHMgdGhlIGludmFsaWQgdGV4dC5cblx0ICovXG5cdEBJbnB1dCgpIGludmFsaWRUZXh0OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXHQvKipcblx0ICAqIFNldCB0byBgdHJ1ZWAgdG8gc2hvdyBhIHdhcm5pbmcgKGNvbnRlbnRzIHNldCBieSB3YXJuaW5nVGV4dClcblx0ICAqL1xuXHRASW5wdXQoKSB3YXJuID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTZXRzIHRoZSB3YXJuaW5nIHRleHRcblx0ICovXG5cdEBJbnB1dCgpIHdhcm5UZXh0OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXHQvKipcblx0ICogU2V0cyB0aGUgdW5pcXVlIElELiBEZWZhdWx0cyB0byBgc2VsZWN0LSR7dG90YWwgY291bnQgb2Ygc2VsZWN0cyBpbnN0YW50aWF0ZWR9YFxuXHQgKi9cblx0QElucHV0KCkgaWQgPSBgc2VsZWN0LSR7U2VsZWN0LnNlbGVjdENvdW50Kyt9YDtcblx0LyoqXG5cdCAqIE51bWJlciBpbnB1dCBmaWVsZCByZW5kZXIgc2l6ZVxuXHQgKi9cblx0QElucHV0KCkgc2l6ZTogXCJzbVwiIHwgXCJtZFwiIHwgXCJsZ1wiID0gXCJtZFwiO1xuXHQvKipcblx0ICogU2V0IHRvIHRydWUgdG8gZGlzYWJsZSBjb21wb25lbnQuXG5cdCAqL1xuXHRASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuXHQvKipcblx0ICogU2V0IHRvIHRydWUgZm9yIGEgbG9hZGluZyBzZWxlY3QuXG5cdCAqL1xuXHRASW5wdXQoKSBza2VsZXRvbiA9IGZhbHNlO1xuXHQvKipcblx0ICogU2V0IHRvIGB0cnVlYCBmb3IgYW4gaW52YWxpZCBzZWxlY3QgY29tcG9uZW50LlxuXHQgKi9cblx0QElucHV0KCkgaW52YWxpZCA9IGZhbHNlO1xuXHQvKipcblx0ICogU2V0IHRvIGB0cnVlYCBmb3IgcmVhZG9ubHkgc3RhdGUuXG5cdCAqL1xuXHRASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBAZGVwcmVjYXRlZCBzaW5jZSB2NSAtIFVzZSBgY2RzTGF5ZXJgIGRpcmVjdGl2ZSBpbnN0ZWFkXG5cdCAqIGBsaWdodGAgb3IgYGRhcmtgIHNlbGVjdCB0aGVtZVxuXHQgKi9cblx0QElucHV0KCkgdGhlbWU6IFwibGlnaHRcIiB8IFwiZGFya1wiID0gXCJkYXJrXCI7XG5cdEBJbnB1dCgpIGFyaWFMYWJlbDogc3RyaW5nO1xuXG5cdEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXHRAVmlld0NoaWxkKFwic2VsZWN0XCIpIHNlbGVjdDogRWxlbWVudFJlZjtcblxuXHRwcm90ZWN0ZWQgX3ZhbHVlO1xuXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcblx0XHRpZiAoXG5cdFx0XHR0aGlzLnZhbHVlICE9PSB1bmRlZmluZWQgJiZcblx0XHRcdHRoaXMudmFsdWUgIT09IG51bGwgJiZcblx0XHRcdHRoaXMuc2VsZWN0ICYmXG5cdFx0XHR0aGlzLnNlbGVjdC5uYXRpdmVFbGVtZW50LnZhbHVlICE9PSB0aGlzLnZhbHVlXG5cdFx0KSB7XG5cdFx0XHR0aGlzLnNlbGVjdC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy52YWx1ZTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogUmVjZWl2ZXMgYSB2YWx1ZSBmcm9tIHRoZSBtb2RlbC5cblx0ICovXG5cdHdyaXRlVmFsdWUob2JqOiBhbnkpIHtcblx0XHR0aGlzLnZhbHVlID0gb2JqO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlZ2lzdGVycyBhIGxpc3RlbmVyIHRoYXQgbm90aWZpZXMgdGhlIG1vZGVsIHdoZW4gdGhlIGNvbnRyb2wgdXBkYXRlc1xuXHQgKi9cblx0cmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG5cdFx0dGhpcy5vbkNoYW5nZUhhbmRsZXIgPSBmbjtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZWdpc3RlcnMgYSBsaXN0ZW5lciB0aGF0IG5vdGlmaWVzIHRoZSBtb2RlbCB3aGVuIHRoZSBjb250cm9sIGlzIGJsdXJyZWRcblx0ICovXG5cdHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcblx0XHR0aGlzLm9uVG91Y2hlZEhhbmRsZXIgPSBmbjtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZSB0aHJvdWdoIHRoZSBtb2RlbFxuXHQgKi9cblx0c2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG5cdFx0dGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG5cdH1cblxuXHQvKipcblx0ICogSGFuZGxlcyB0aGUgY2hhbmdlIGV2ZW50IGZyb20gdGhlIGBzZWxlY3RgLlxuXHQgKiBTZW5kcyBldmVudHMgdG8gdGhlIGNoYW5nZSBoYW5kbGVyIGFuZCBlbWl0cyBhIGBzZWxlY3RlZGAgZXZlbnQuXG5cdCAqL1xuXHRvbkNoYW5nZShldmVudCkge1xuXHRcdHRoaXMudmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG5cdFx0dGhpcy5vbkNoYW5nZUhhbmRsZXIoZXZlbnQudGFyZ2V0LnZhbHVlKTtcblx0XHR0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoZXZlbnQudGFyZ2V0LnZhbHVlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBMaXN0ZW5zIGZvciB0aGUgaG9zdCBibHVycmluZywgYW5kIG5vdGlmaWVzIHRoZSBtb2RlbFxuXHQgKi9cblx0QEhvc3RMaXN0ZW5lcihcImZvY3Vzb3V0XCIpXG5cdGZvY3VzT3V0KCkge1xuXHRcdHRoaXMub25Ub3VjaGVkSGFuZGxlcigpO1xuXHR9XG5cblx0cHVibGljIGlzVGVtcGxhdGUodmFsdWUpIHtcblx0XHRyZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZjtcblx0fVxuXG5cdG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG5cdFx0LyoqXG5cdFx0ICogVGhpcyBwcmV2ZW50cyB0aGUgc2VsZWN0IGZyb20gb3BlbmluZyB3aXRoIG1vdXNlXG5cdFx0ICovXG5cdFx0aWYgKHRoaXMucmVhZG9ubHkpIHtcblx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHQoPEhUTUxFbGVtZW50PmV2ZW50LnRhcmdldCkuZm9jdXMoKTtcblx0XHR9XG5cdH1cblxuXHRvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcblx0XHRjb25zdCBzZWxlY3RBY2Nlc3NLZXlzID0gW1wiQXJyb3dEb3duXCIsIFwiQXJyb3dVcFwiLCBcIkFycm93TGVmdFwiLCBcIkFycm93UmlnaHRcIiwgXCIgXCJdO1xuXHRcdC8qKlxuXHRcdCAqIFRoaXMgcHJldmVudHMgdGhlIHNlbGVjdCBmcm9tIG9wZW5pbmcgZm9yIHRoZSBhYm92ZSBrZXlzXG5cdFx0ICovXG5cdFx0aWYgKHRoaXMucmVhZG9ubHkgJiYgc2VsZWN0QWNjZXNzS2V5cy5pbmNsdWRlcyhldmVudC5rZXkpKSB7XG5cdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBwbGFjZWhvbGRlciBkZWNsYXJhdGlvbnMuIFJlcGxhY2VkIGJ5IHRoZSBmdW5jdGlvbnMgcHJvdmlkZWQgdG8gYHJlZ2lzdGVyT25DaGFuZ2VgIGFuZCBgcmVnaXN0ZXJPblRvdWNoZWRgXG5cdCAqL1xuXHRwcm90ZWN0ZWQgb25DaGFuZ2VIYW5kbGVyID0gKF86IGFueSkgPT4geyB9O1xuXHRwcm90ZWN0ZWQgb25Ub3VjaGVkSGFuZGxlciA9ICgpID0+IHsgfTtcbn1cbiJdfQ==
474
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRU4sU0FBUyxFQUVULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFlBQVksRUFDWixXQUFXLEVBQ1gsU0FBUyxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUV6RTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUEwSUgsTUFBTSxPQUFPLE1BQU07SUF6SW5CO1FBMEpDOztXQUVHO1FBQ00sWUFBTyxHQUF5QixTQUFTLENBQUM7UUFhbkQ7O1lBRUk7UUFDSyxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBS3RCOztXQUVHO1FBQ00sT0FBRSxHQUFHLFVBQVUsTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7UUFDL0M7O1dBRUc7UUFDTSxTQUFJLEdBQXVCLElBQUksQ0FBQztRQUN6Qzs7V0FFRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUI7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCOztXQUVHO1FBQ00sWUFBTyxHQUFHLEtBQUssQ0FBQztRQUN6Qjs7V0FFRztRQUNNLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFMUI7OztXQUdHO1FBQ00sVUFBSyxHQUFxQixNQUFNLENBQUM7UUFHMUM7O1dBRUc7UUFDTSxVQUFLLEdBQUcsS0FBSyxDQUFDO1FBRWIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSTNDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUF5RmhCOztXQUVHO1FBQ08sb0JBQWUsR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLHFCQUFnQixHQUFHLEdBQUcsRUFBRSxHQUFHLENB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dCI6WyJpbXBvcnQge1xuXHRBZnRlclZpZXdJbml0LFxuXHRDb21wb25lbnQsXG5cdEVsZW1lbnRSZWYsXG5cdElucHV0LFxuXHRPdXRwdXQsXG5cdEhvc3RMaXN0ZW5lcixcblx0RXZlbnRFbWl0dGVyLFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NoaWxkXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxuLyoqXG4gKiBgY2RzLXNlbGVjdGAgcHJvdmlkZXMgYSBzdHlsZWQgYHNlbGVjdGAgY29tcG9uZW50LiBHZXQgc3RhcnRlZCB3aXRoIGltcG9ydGluZyB0aGUgbW9kdWxlOlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IFNlbGVjdE1vZHVsZSB9IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuICogYGBgXG4gKlxuICogYGBgaHRtbFxuICogPGNkcy1zZWxlY3QgWyhuZ01vZGVsKV09XCJtb2RlbFwiPlxuICogXHQ8b3B0aW9uIHZhbHVlPVwiZGVmYXVsdFwiIGRpc2FibGVkIHNlbGVjdGVkIGhpZGRlbj5DaG9vc2UgYW4gb3B0aW9uPC9vcHRpb24+XG4gKiBcdDxvcHRpb24gdmFsdWU9XCJvcHRpb24xXCI+T3B0aW9uIDE8L29wdGlvbj5cbiAqXHQ8b3B0aW9uIHZhbHVlPVwib3B0aW9uMlwiPk9wdGlvbiAyPC9vcHRpb24+XG4gKiBcdDxvcHRpb24gdmFsdWU9XCJvcHRpb24zXCI+T3B0aW9uIDM8L29wdGlvbj5cbiAqIDwvY2RzLXNlbGVjdD5cbiAqXHRgYGBcbiAqXG4gKiBbU2VlIGRlbW9dKC4uLy4uLz9wYXRoPS9zdG9yeS9jb21wb25lbnRzLXNlbGVjdC0tYmFzaWMpXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJjZHMtc2VsZWN0LCBpYm0tc2VsZWN0XCIsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PGRpdlxuXHRcdFx0W25nQ2xhc3NdPVwie1xuXHRcdFx0XHQnY2RzLS1mb3JtLWl0ZW0nOiAhc2tlbGV0b24sXG5cdFx0XHRcdCdjZHMtLXNlbGVjdC0tZmx1aWQnOiBmbHVpZCAmJiAhc2tlbGV0b25cblx0XHRcdH1cIj5cblx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJza2VsZXRvbiAmJiAhZmx1aWRcIj5cblx0XHRcdFx0PGRpdiAqbmdJZj1cImxhYmVsXCIgY2xhc3M9XCJjZHMtLWxhYmVsIGNkcy0tc2tlbGV0b25cIj48L2Rpdj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cImNkcy0tc2VsZWN0IGNkcy0tc2tlbGV0b25cIj48L2Rpdj5cblx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cInNrZWxldG9uICYmIGZsdWlkXCI+XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJjZHMtLWxpc3QtYm94X193cmFwcGVyLS1mbHVpZFwiPlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjZHMtLWxpc3QtYm94IGNkcy0tc2tlbGV0b25cIj5cblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjZHMtLWxpc3QtYm94X19sYWJlbFwiPjwvZGl2PlxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNkcy0tbGlzdC1ib3hfX2ZpZWxkXCI+PC9kaXY+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHQ8ZGl2XG5cdFx0XHRcdCpuZ0lmPVwiIXNrZWxldG9uXCJcblx0XHRcdFx0Y2xhc3M9XCJjZHMtLXNlbGVjdFwiXG5cdFx0XHRcdFtuZ0NsYXNzXT1cIntcblx0XHRcdFx0XHQnY2RzLS1zZWxlY3QtLWlubGluZSc6IGRpc3BsYXkgPT09ICdpbmxpbmUnLFxuXHRcdFx0XHRcdCdjZHMtLXNlbGVjdC0tbGlnaHQnOiB0aGVtZSA9PT0gJ2xpZ2h0Jyxcblx0XHRcdFx0XHQnY2RzLS1zZWxlY3QtLWludmFsaWQnOiBpbnZhbGlkLFxuXHRcdFx0XHRcdCdjZHMtLXNlbGVjdC0td2FybmluZyc6IHdhcm4sXG5cdFx0XHRcdFx0J2Nkcy0tc2VsZWN0LS1kaXNhYmxlZCc6IGRpc2FibGVkLFxuXHRcdFx0XHRcdCdjZHMtLXNlbGVjdC0tcmVhZG9ubHknOiByZWFkb25seSxcblx0XHRcdFx0XHQnY2RzLS1zZWxlY3QtLWZsdWlkLS1pbnZhbGlkJzogZmx1aWQgJiYgaW52YWxpZCxcblx0XHRcdFx0XHQnY2RzLS1zZWxlY3QtLWZsdWlkLS1mb2N1cyc6IGZsdWlkICYmIGZvY3VzZWRcblx0XHRcdFx0fVwiPlxuXHRcdFx0XHQ8bGFiZWxcblx0XHRcdFx0XHQqbmdJZj1cImxhYmVsXCJcblx0XHRcdFx0XHRbZm9yXT1cImlkXCJcblx0XHRcdFx0XHRjbGFzcz1cImNkcy0tbGFiZWxcIlxuXHRcdFx0XHRcdFtuZ0NsYXNzXT1cInsnY2RzLS1sYWJlbC0tZGlzYWJsZWQnOiBkaXNhYmxlZH1cIj5cblx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzVGVtcGxhdGUobGFiZWwpXCI+e3tsYWJlbH19PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlICpuZ0lmPVwiaXNUZW1wbGF0ZShsYWJlbClcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdDwvbGFiZWw+XG5cdFx0XHRcdDxkaXYgKm5nSWY9XCJkaXNwbGF5ID09PSAnaW5saW5lJzsgZWxzZSBub0lubGluZVwiIGNsYXNzPVwiY2RzLS1zZWxlY3QtaW5wdXQtLWlubGluZV9fd3JhcHBlclwiPlxuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJub0lubGluZVwiPjwvbmctY29udGFpbmVyPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PGRpdlxuXHRcdFx0XHRcdCpuZ0lmPVwiaGVscGVyVGV4dCAmJiAhaW52YWxpZCAmJiAhd2FybiAmJiAhc2tlbGV0b24gJiYgIWZsdWlkXCJcblx0XHRcdFx0XHRjbGFzcz1cImNkcy0tZm9ybV9faGVscGVyLXRleHRcIlxuXHRcdFx0XHRcdFtuZ0NsYXNzXT1cIntcblx0XHRcdFx0XHRcdCdjZHMtLWZvcm1fX2hlbHBlci10ZXh0LS1kaXNhYmxlZCc6IGRpc2FibGVkXG5cdFx0XHRcdFx0fVwiPlxuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUZW1wbGF0ZShoZWxwZXJUZXh0KVwiPnt7aGVscGVyVGV4dH19PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlICpuZ0lmPVwiaXNUZW1wbGF0ZShoZWxwZXJUZXh0KVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlbHBlclRleHRcIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXG5cdFx0PCEtLSBzZWxlY3QgZWxlbWVudDogZHluYW1pY2FsbHkgcHJvamVjdGVkIGJhc2VkIG9uICdkaXNwbGF5JyB2YXJpYW50IC0tPlxuXHRcdDxuZy10ZW1wbGF0ZSAjbm9JbmxpbmU+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiY2RzLS1zZWxlY3QtaW5wdXRfX3dyYXBwZXJcIiBbYXR0ci5kYXRhLWludmFsaWRdPVwiKGludmFsaWQgPyB0cnVlIDogbnVsbClcIj5cblx0XHRcdFx0PHNlbGVjdFxuXHRcdFx0XHRcdCNzZWxlY3Rcblx0XHRcdFx0XHRbYXR0ci5pZF09XCJpZFwiXG5cdFx0XHRcdFx0W2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuXHRcdFx0XHRcdFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG5cdFx0XHRcdFx0KGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcblx0XHRcdFx0XHRbYXR0ci5hcmlhLWludmFsaWRdPVwiaW52YWxpZCA/ICd0cnVlJyA6IG51bGxcIlxuXHRcdFx0XHRcdFthdHRyLmFyaWEtcmVhZG9ubHldPVwicmVhZG9ubHkgPyAndHJ1ZScgOiBudWxsXCJcblx0XHRcdFx0XHRjbGFzcz1cImNkcy0tc2VsZWN0LWlucHV0XCJcblx0XHRcdFx0XHRbbmdDbGFzc109XCJ7XG5cdFx0XHRcdFx0XHQnY2RzLS1zZWxlY3QtaW5wdXQtLXNtJzogc2l6ZSA9PT0gJ3NtJyxcblx0XHRcdFx0XHRcdCdjZHMtLXNlbGVjdC1pbnB1dC0tbWQnOiBzaXplID09PSAnbWQnLFxuXHRcdFx0XHRcdFx0J2Nkcy0tc2VsZWN0LWlucHV0LS1sZyc6IHNpemUgPT09ICdsZydcblx0XHRcdFx0XHR9XCJcblx0XHRcdFx0XHQobW91c2Vkb3duKT1cIm9uTW91c2VEb3duKCRldmVudClcIlxuXHRcdFx0XHRcdChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcblx0XHRcdFx0XHQoZm9jdXMpPVwiZmx1aWQgPyBoYW5kbGVGb2N1cygkZXZlbnQpIDogbnVsbFwiXG5cdFx0XHRcdFx0KGJsdXIpPVwiZmx1aWQgPyBoYW5kbGVGb2N1cygkZXZlbnQpIDogbnVsbFwiPlxuXHRcdFx0XHRcdDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblx0XHRcdFx0PC9zZWxlY3Q+XG5cdFx0XHRcdDxzdmdcblx0XHRcdFx0XHRmb2N1c2FibGU9XCJmYWxzZVwiXG5cdFx0XHRcdFx0cHJlc2VydmVBc3BlY3RSYXRpbz1cInhNaWRZTWlkIG1lZXRcIlxuXHRcdFx0XHRcdHN0eWxlPVwid2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcIlxuXHRcdFx0XHRcdHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuXHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1zZWxlY3RfX2Fycm93XCJcblx0XHRcdFx0XHR3aWR0aD1cIjE2XCJcblx0XHRcdFx0XHRoZWlnaHQ9XCIxNlwiXG5cdFx0XHRcdFx0dmlld0JveD1cIjAgMCAxNiAxNlwiXG5cdFx0XHRcdFx0YXJpYS1oaWRkZW49XCJ0cnVlXCI+XG5cdFx0XHRcdFx0PHBhdGggZD1cIk04IDExTDMgNiAzLjcgNS4zIDggOS42IDEyLjMgNS4zIDEzIDZ6XCI+PC9wYXRoPlxuXHRcdFx0XHQ8L3N2Zz5cblx0XHRcdFx0PHN2Z1xuXHRcdFx0XHRcdCpuZ0lmPVwiaW52YWxpZFwiXG5cdFx0XHRcdFx0Y2RzSWNvbj1cIndhcm5pbmctLWZpbGxlZFwiXG5cdFx0XHRcdFx0c2l6ZT1cIjE2XCJcblx0XHRcdFx0XHRjbGFzcz1cImNkcy0tc2VsZWN0X19pbnZhbGlkLWljb25cIj5cblx0XHRcdFx0PC9zdmc+XG5cdFx0XHRcdDxzdmdcblx0XHRcdFx0XHQqbmdJZj1cIiFpbnZhbGlkICYmIHdhcm5cIlxuXHRcdFx0XHRcdGNkc0ljb249XCJ3YXJuaW5nLS1hbHQtLWZpbGxlZFwiXG5cdFx0XHRcdFx0c2l6ZT1cIjE2XCJcblx0XHRcdFx0XHRjbGFzcz1cImNkcy0tc2VsZWN0X19pbnZhbGlkLWljb24gY2RzLS1zZWxlY3RfX2ludmFsaWQtaWNvbi0td2FybmluZ1wiPlxuXHRcdFx0XHQ8L3N2Zz5cblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImZsdWlkXCI+XG5cdFx0XHRcdFx0PGhyIGNsYXNzPVwiY2RzLS1zZWxlY3RfX2RpdmlkZXJcIiAvPlxuXHRcdFx0XHRcdDxkaXZcblx0XHRcdFx0XHRcdCpuZ0lmPVwiaW52YWxpZCAmJiBpbnZhbGlkVGV4dFwiIHJvbGU9XCJhbGVydFwiIGNsYXNzPVwiY2RzLS1mb3JtLXJlcXVpcmVtZW50XCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG5cdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzVGVtcGxhdGUoaW52YWxpZFRleHQpXCI+e3tpbnZhbGlkVGV4dH19PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgKm5nSWY9XCJpc1RlbXBsYXRlKGludmFsaWRUZXh0KVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImludmFsaWRUZXh0XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHQ8ZGl2ICpuZ0lmPVwiIWludmFsaWQgJiYgd2FyblwiIGNsYXNzPVwiY2RzLS1mb3JtLXJlcXVpcmVtZW50XCI+XG5cdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzVGVtcGxhdGUod2FyblRleHQpXCI+e3t3YXJuVGV4dH19PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgKm5nSWY9XCJpc1RlbXBsYXRlKHdhcm5UZXh0KVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIndhcm5UZXh0XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhZmx1aWRcIj5cblx0XHRcdFx0PGRpdlxuXHRcdFx0XHRcdCpuZ0lmPVwiaW52YWxpZCAmJiBpbnZhbGlkVGV4dFwiIHJvbGU9XCJhbGVydFwiIGNsYXNzPVwiY2RzLS1mb3JtLXJlcXVpcmVtZW50XCIgYXJpYS1saXZlPVwicG9saXRlXCI+XG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlKGludmFsaWRUZXh0KVwiPnt7aW52YWxpZFRleHR9fTwvbmctY29udGFpbmVyPlxuXHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAqbmdJZj1cImlzVGVtcGxhdGUoaW52YWxpZFRleHQpXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW52YWxpZFRleHRcIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PGRpdiAqbmdJZj1cIiFpbnZhbGlkICYmIHdhcm5cIiBjbGFzcz1cImNkcy0tZm9ybS1yZXF1aXJlbWVudFwiPlxuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUZW1wbGF0ZSh3YXJuVGV4dClcIj57e3dhcm5UZXh0fX08L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgKm5nSWY9XCJpc1RlbXBsYXRlKHdhcm5UZXh0KVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIndhcm5UZXh0XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHQ8L25nLXRlbXBsYXRlPlxuXHRgLFxuXHRwcm92aWRlcnM6IFtcblx0XHR7XG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcblx0XHRcdHVzZUV4aXN0aW5nOiBTZWxlY3QsXG5cdFx0XHRtdWx0aTogdHJ1ZVxuXHRcdH1cblx0XVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3QgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJWaWV3SW5pdCB7XG5cdEBJbnB1dCgpIHNldCB2YWx1ZSh2KSB7XG5cdFx0dGhpcy5fdmFsdWUgPSB2O1xuXHRcdGlmICh0aGlzLnNlbGVjdCkge1xuXHRcdFx0dGhpcy5zZWxlY3QubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuX3ZhbHVlO1xuXHRcdH1cblx0fVxuXG5cdGdldCB2YWx1ZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5fdmFsdWU7XG5cdH1cblxuXHQvKipcblx0ICogVHJhY2tzIHRoZSB0b3RhbCBudW1iZXIgb2Ygc2VsZWN0cyBpbnN0YW50aWF0ZWQuIFVzZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIElEc1xuXHQgKi9cblx0c3RhdGljIHNlbGVjdENvdW50ID0gMDtcblxuXHQvKipcblx0ICogYGlubGluZWAgb3IgYGRlZmF1bHRgIHNlbGVjdCBkaXNwbGF5c1xuXHQgKi9cblx0QElucHV0KCkgZGlzcGxheTogXCJpbmxpbmVcIiB8IFwiZGVmYXVsdFwiID0gXCJkZWZhdWx0XCI7XG5cdC8qKlxuXHQgKiBMYWJlbCBmb3IgdGhlIHNlbGVjdC4gQXBwZWFycyBhYm92ZSB0aGUgaW5wdXQuXG5cdCAqL1xuXHRASW5wdXQoKSBsYWJlbDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pjtcblx0LyoqXG5cdCAqIE9wdGlvbmFsIGhlbHBlciB0ZXh0IHRoYXQgYXBwZWFycyB1bmRlciB0aGUgbGFiZWwuXG5cdCAqL1xuXHRASW5wdXQoKSBoZWxwZXJUZXh0OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXHQvKipcblx0ICogU2V0cyB0aGUgaW52YWxpZCB0ZXh0LlxuXHQgKi9cblx0QElucHV0KCkgaW52YWxpZFRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdC8qKlxuXHQgICogU2V0IHRvIGB0cnVlYCB0byBzaG93IGEgd2FybmluZyAoY29udGVudHMgc2V0IGJ5IHdhcm5pbmdUZXh0KVxuXHQgICovXG5cdEBJbnB1dCgpIHdhcm4gPSBmYWxzZTtcblx0LyoqXG5cdCAqIFNldHMgdGhlIHdhcm5pbmcgdGV4dFxuXHQgKi9cblx0QElucHV0KCkgd2FyblRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdC8qKlxuXHQgKiBTZXRzIHRoZSB1bmlxdWUgSUQuIERlZmF1bHRzIHRvIGBzZWxlY3QtJHt0b3RhbCBjb3VudCBvZiBzZWxlY3RzIGluc3RhbnRpYXRlZH1gXG5cdCAqL1xuXHRASW5wdXQoKSBpZCA9IGBzZWxlY3QtJHtTZWxlY3Quc2VsZWN0Q291bnQrK31gO1xuXHQvKipcblx0ICogTnVtYmVyIGlucHV0IGZpZWxkIHJlbmRlciBzaXplXG5cdCAqL1xuXHRASW5wdXQoKSBzaXplOiBcInNtXCIgfCBcIm1kXCIgfCBcImxnXCIgPSBcIm1kXCI7XG5cdC8qKlxuXHQgKiBTZXQgdG8gdHJ1ZSB0byBkaXNhYmxlIGNvbXBvbmVudC5cblx0ICovXG5cdEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTZXQgdG8gdHJ1ZSBmb3IgYSBsb2FkaW5nIHNlbGVjdC5cblx0ICovXG5cdEBJbnB1dCgpIHNrZWxldG9uID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIGZvciBhbiBpbnZhbGlkIHNlbGVjdCBjb21wb25lbnQuXG5cdCAqL1xuXHRASW5wdXQoKSBpbnZhbGlkID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIGZvciByZWFkb25seSBzdGF0ZS5cblx0ICovXG5cdEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIEBkZXByZWNhdGVkIHNpbmNlIHY1IC0gVXNlIGBjZHNMYXllcmAgZGlyZWN0aXZlIGluc3RlYWRcblx0ICogYGxpZ2h0YCBvciBgZGFya2Agc2VsZWN0IHRoZW1lXG5cdCAqL1xuXHRASW5wdXQoKSB0aGVtZTogXCJsaWdodFwiIHwgXCJkYXJrXCIgPSBcImRhcmtcIjtcblx0QElucHV0KCkgYXJpYUxhYmVsOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIEV4cGVyaW1lbnRhbDogZW5hYmxlIGZsdWlkIHN0YXRlXG5cdCAqL1xuXHRASW5wdXQoKSBmbHVpZCA9IGZhbHNlO1xuXG5cdEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXHRAVmlld0NoaWxkKFwic2VsZWN0XCIpIHNlbGVjdDogRWxlbWVudFJlZjtcblxuXHRmb2N1c2VkID0gZmFsc2U7XG5cblx0cHJvdGVjdGVkIF92YWx1ZTtcblxuXHRuZ0FmdGVyVmlld0luaXQoKSB7XG5cdFx0aWYgKFxuXHRcdFx0dGhpcy52YWx1ZSAhPT0gdW5kZWZpbmVkICYmXG5cdFx0XHR0aGlzLnZhbHVlICE9PSBudWxsICYmXG5cdFx0XHR0aGlzLnNlbGVjdCAmJlxuXHRcdFx0dGhpcy5zZWxlY3QubmF0aXZlRWxlbWVudC52YWx1ZSAhPT0gdGhpcy52YWx1ZVxuXHRcdCkge1xuXHRcdFx0dGhpcy5zZWxlY3QubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJlY2VpdmVzIGEgdmFsdWUgZnJvbSB0aGUgbW9kZWwuXG5cdCAqL1xuXHR3cml0ZVZhbHVlKG9iajogYW55KSB7XG5cdFx0dGhpcy52YWx1ZSA9IG9iajtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZWdpc3RlcnMgYSBsaXN0ZW5lciB0aGF0IG5vdGlmaWVzIHRoZSBtb2RlbCB3aGVuIHRoZSBjb250cm9sIHVwZGF0ZXNcblx0ICovXG5cdHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuXHRcdHRoaXMub25DaGFuZ2VIYW5kbGVyID0gZm47XG5cdH1cblxuXHQvKipcblx0ICogUmVnaXN0ZXJzIGEgbGlzdGVuZXIgdGhhdCBub3RpZmllcyB0aGUgbW9kZWwgd2hlbiB0aGUgY29udHJvbCBpcyBibHVycmVkXG5cdCAqL1xuXHRyZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG5cdFx0dGhpcy5vblRvdWNoZWRIYW5kbGVyID0gZm47XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgZGlzYWJsZWQgc3RhdGUgdGhyb3VnaCB0aGUgbW9kZWxcblx0ICovXG5cdHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuXHRcdHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuXHR9XG5cblx0LyoqXG5cdCAqIEhhbmRsZXMgdGhlIGNoYW5nZSBldmVudCBmcm9tIHRoZSBgc2VsZWN0YC5cblx0ICogU2VuZHMgZXZlbnRzIHRvIHRoZSBjaGFuZ2UgaGFuZGxlciBhbmQgZW1pdHMgYSBgc2VsZWN0ZWRgIGV2ZW50LlxuXHQgKi9cblx0b25DaGFuZ2UoZXZlbnQpIHtcblx0XHR0aGlzLnZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuXHRcdHRoaXMub25DaGFuZ2VIYW5kbGVyKGV2ZW50LnRhcmdldC52YWx1ZSk7XG5cdFx0dGhpcy52YWx1ZUNoYW5nZS5lbWl0KGV2ZW50LnRhcmdldC52YWx1ZSk7XG5cdH1cblxuXHQvKipcblx0ICogTGlzdGVucyBmb3IgdGhlIGhvc3QgYmx1cnJpbmcsIGFuZCBub3RpZmllcyB0aGUgbW9kZWxcblx0ICovXG5cdEBIb3N0TGlzdGVuZXIoXCJmb2N1c291dFwiKVxuXHRmb2N1c091dCgpIHtcblx0XHR0aGlzLm9uVG91Y2hlZEhhbmRsZXIoKTtcblx0fVxuXG5cdHB1YmxpYyBpc1RlbXBsYXRlKHZhbHVlKSB7XG5cdFx0cmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWY7XG5cdH1cblxuXHRvbk1vdXNlRG93bihldmVudDogTW91c2VFdmVudCkge1xuXHRcdC8qKlxuXHRcdCAqIFRoaXMgcHJldmVudHMgdGhlIHNlbGVjdCBmcm9tIG9wZW5pbmcgd2l0aCBtb3VzZVxuXHRcdCAqL1xuXHRcdGlmICh0aGlzLnJlYWRvbmx5KSB7XG5cdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0KDxIVE1MRWxlbWVudD5ldmVudC50YXJnZXQpLmZvY3VzKCk7XG5cdFx0fVxuXHR9XG5cblx0b25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG5cdFx0Y29uc3Qgc2VsZWN0QWNjZXNzS2V5cyA9IFtcIkFycm93RG93blwiLCBcIkFycm93VXBcIiwgXCJBcnJvd0xlZnRcIiwgXCJBcnJvd1JpZ2h0XCIsIFwiIFwiXTtcblx0XHQvKipcblx0XHQgKiBUaGlzIHByZXZlbnRzIHRoZSBzZWxlY3QgZnJvbSBvcGVuaW5nIGZvciB0aGUgYWJvdmUga2V5c1xuXHRcdCAqL1xuXHRcdGlmICh0aGlzLnJlYWRvbmx5ICYmIHNlbGVjdEFjY2Vzc0tleXMuaW5jbHVkZXMoZXZlbnQua2V5KSkge1xuXHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHR9XG5cdH1cblxuXHRoYW5kbGVGb2N1cyhldmVudDogRm9jdXNFdmVudCkge1xuXHRcdHRoaXMuZm9jdXNlZCA9IGV2ZW50LnR5cGUgPT09IFwiZm9jdXNcIjtcblx0fVxuXG5cdC8qKlxuXHQgKiBwbGFjZWhvbGRlciBkZWNsYXJhdGlvbnMuIFJlcGxhY2VkIGJ5IHRoZSBmdW5jdGlvbnMgcHJvdmlkZWQgdG8gYHJlZ2lzdGVyT25DaGFuZ2VgIGFuZCBgcmVnaXN0ZXJPblRvdWNoZWRgXG5cdCAqL1xuXHRwcm90ZWN0ZWQgb25DaGFuZ2VIYW5kbGVyID0gKF86IGFueSkgPT4geyB9O1xuXHRwcm90ZWN0ZWQgb25Ub3VjaGVkSGFuZGxlciA9ICgpID0+IHsgfTtcblxufVxuIl19
@@ -188,8 +188,14 @@ class Pagination {
188
188
  return this.currentPage >= lastPage ? lastPage : this.currentPage + 1;
189
189
  }
190
190
  get pageOptions() {
191
- if (this.totalDataLength && this._pageOptions.length !== this.totalDataLength) {
192
- this._pageOptions = Array(Math.ceil(this.totalDataLength / this.itemsPerPage));
191
+ /**
192
+ * Calculate number of pages based on totalDataLength and itemsPerPage.
193
+ * Even if totalDataLength is 0, numberOfPages should be always at least 1.
194
+ * New array will be constructed only if number of pages changes.
195
+ */
196
+ const numberOfPages = Math.max(Math.ceil(this.totalDataLength / this.itemsPerPage), 1);
197
+ if (this._pageOptions.length !== numberOfPages) {
198
+ this._pageOptions = Array(numberOfPages);
193
199
  }
194
200
  return this._pageOptions;
195
201
  }