@fundamental-ngx/core 0.35.3 → 0.35.4-rc.10

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 (212) hide show
  1. package/action-bar/package.json +1 -1
  2. package/action-sheet/package.json +1 -1
  3. package/alert/package.json +1 -1
  4. package/avatar/package.json +1 -1
  5. package/avatar-group/package.json +1 -1
  6. package/bar/package.json +1 -1
  7. package/breadcrumb/breadcrumb-item.component.d.ts +20 -13
  8. package/breadcrumb/breadcrumb.component.d.ts +46 -34
  9. package/breadcrumb/breadcrumb.module.d.ts +3 -1
  10. package/breadcrumb/esm2020/breadcrumb-item.component.mjs +44 -23
  11. package/breadcrumb/esm2020/breadcrumb.component.mjs +93 -88
  12. package/breadcrumb/esm2020/breadcrumb.module.mjs +12 -4
  13. package/breadcrumb/fesm2015/fundamental-ngx-core-breadcrumb.mjs +147 -114
  14. package/breadcrumb/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  15. package/breadcrumb/fesm2020/fundamental-ngx-core-breadcrumb.mjs +144 -111
  16. package/breadcrumb/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  17. package/breadcrumb/package.json +1 -1
  18. package/busy-indicator/package.json +1 -1
  19. package/button/package.json +1 -1
  20. package/calendar/package.json +1 -1
  21. package/card/package.json +1 -1
  22. package/carousel/package.json +1 -1
  23. package/checkbox/package.json +1 -1
  24. package/combobox/combobox.component.d.ts +8 -1
  25. package/combobox/combobox.interface.d.ts +1 -0
  26. package/combobox/esm2020/combobox-mobile/combobox-mobile.component.mjs +2 -2
  27. package/combobox/esm2020/combobox.component.mjs +22 -9
  28. package/combobox/esm2020/combobox.interface.mjs +1 -1
  29. package/combobox/fesm2015/fundamental-ngx-core-combobox.mjs +22 -9
  30. package/combobox/fesm2015/fundamental-ngx-core-combobox.mjs.map +1 -1
  31. package/combobox/fesm2020/fundamental-ngx-core-combobox.mjs +22 -9
  32. package/combobox/fesm2020/fundamental-ngx-core-combobox.mjs.map +1 -1
  33. package/combobox/package.json +1 -1
  34. package/content-density/esm2020/classes/deprecated-compact.directive.mjs +4 -4
  35. package/content-density/esm2020/classes/deprecated-condensed.directive.mjs +3 -3
  36. package/content-density/esm2020/classes/deprecated-cozy.directive.mjs +3 -3
  37. package/content-density/fesm2015/fundamental-ngx-core-content-density.mjs +7 -7
  38. package/content-density/fesm2015/fundamental-ngx-core-content-density.mjs.map +1 -1
  39. package/content-density/fesm2020/fundamental-ngx-core-content-density.mjs +7 -7
  40. package/content-density/fesm2020/fundamental-ngx-core-content-density.mjs.map +1 -1
  41. package/content-density/package.json +3 -3
  42. package/date-picker/package.json +1 -1
  43. package/datetime/package.json +1 -1
  44. package/datetime-picker/package.json +1 -1
  45. package/dialog/package.json +1 -1
  46. package/dynamic-page/package.json +1 -1
  47. package/dynamic-side-content/package.json +1 -1
  48. package/esm2020/breadcrumb/breadcrumb-item.component.mjs +44 -23
  49. package/esm2020/breadcrumb/breadcrumb.component.mjs +93 -88
  50. package/esm2020/breadcrumb/breadcrumb.module.mjs +12 -4
  51. package/esm2020/combobox/combobox-mobile/combobox-mobile.component.mjs +2 -2
  52. package/esm2020/combobox/combobox.component.mjs +22 -9
  53. package/esm2020/combobox/combobox.interface.mjs +1 -1
  54. package/esm2020/content-density/classes/deprecated-compact.directive.mjs +4 -4
  55. package/esm2020/content-density/classes/deprecated-condensed.directive.mjs +3 -3
  56. package/esm2020/content-density/classes/deprecated-cozy.directive.mjs +3 -3
  57. package/esm2020/overflow-layout/directives/overflow-expand.directive.mjs +6 -4
  58. package/esm2020/overflow-layout/directives/overflow-item-container-ref.directive.mjs +2 -2
  59. package/esm2020/overflow-layout/directives/overflow-item-ref.directive.mjs +20 -8
  60. package/esm2020/overflow-layout/directives/overflow-layout-item-container.directive.mjs +30 -3
  61. package/esm2020/overflow-layout/directives/overflow-layout-item.directive.mjs +12 -3
  62. package/esm2020/overflow-layout/index.mjs +3 -1
  63. package/esm2020/overflow-layout/interfaces/overflow-expand.interface.mjs +1 -1
  64. package/esm2020/overflow-layout/interfaces/overflow-item-ref.interface.mjs +1 -1
  65. package/esm2020/overflow-layout/interfaces/overflow-item.interface.mjs +1 -1
  66. package/esm2020/overflow-layout/overflow-layout.component.mjs +83 -157
  67. package/esm2020/overflow-layout/overflow-layout.service.mjs +241 -0
  68. package/esm2020/tile/directives/numeric-content.directives.mjs +1 -1
  69. package/esm2020/time/time-column/time-column.component.mjs +7 -8
  70. package/esm2020/utils/functions/resize-observable.mjs +9 -2
  71. package/facets/package.json +1 -1
  72. package/feed-input/package.json +1 -1
  73. package/feed-list-item/package.json +1 -1
  74. package/fesm2015/fundamental-ngx-core-breadcrumb.mjs +147 -114
  75. package/fesm2015/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  76. package/fesm2015/fundamental-ngx-core-combobox.mjs +22 -9
  77. package/fesm2015/fundamental-ngx-core-combobox.mjs.map +1 -1
  78. package/fesm2015/fundamental-ngx-core-content-density.mjs +7 -7
  79. package/fesm2015/fundamental-ngx-core-content-density.mjs.map +1 -1
  80. package/fesm2015/fundamental-ngx-core-overflow-layout.mjs +378 -166
  81. package/fesm2015/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
  82. package/fesm2015/fundamental-ngx-core-tile.mjs.map +1 -1
  83. package/fesm2015/fundamental-ngx-core-time.mjs +6 -7
  84. package/fesm2015/fundamental-ngx-core-time.mjs.map +1 -1
  85. package/fesm2015/fundamental-ngx-core-utils.mjs +8 -1
  86. package/fesm2015/fundamental-ngx-core-utils.mjs.map +1 -1
  87. package/fesm2020/fundamental-ngx-core-breadcrumb.mjs +144 -111
  88. package/fesm2020/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  89. package/fesm2020/fundamental-ngx-core-combobox.mjs +22 -9
  90. package/fesm2020/fundamental-ngx-core-combobox.mjs.map +1 -1
  91. package/fesm2020/fundamental-ngx-core-content-density.mjs +7 -7
  92. package/fesm2020/fundamental-ngx-core-content-density.mjs.map +1 -1
  93. package/fesm2020/fundamental-ngx-core-overflow-layout.mjs +375 -165
  94. package/fesm2020/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
  95. package/fesm2020/fundamental-ngx-core-tile.mjs.map +1 -1
  96. package/fesm2020/fundamental-ngx-core-time.mjs +6 -7
  97. package/fesm2020/fundamental-ngx-core-time.mjs.map +1 -1
  98. package/fesm2020/fundamental-ngx-core-utils.mjs +8 -1
  99. package/fesm2020/fundamental-ngx-core-utils.mjs.map +1 -1
  100. package/file-uploader/package.json +1 -1
  101. package/fixed-card-layout/package.json +1 -1
  102. package/flexible-column-layout/package.json +1 -1
  103. package/form/package.json +1 -1
  104. package/formatted-text/package.json +1 -1
  105. package/grid-list/package.json +1 -1
  106. package/icon/package.json +1 -1
  107. package/illustrated-message/package.json +1 -1
  108. package/infinite-scroll/package.json +1 -1
  109. package/info-label/package.json +1 -1
  110. package/inline-help/package.json +1 -1
  111. package/input-group/package.json +1 -1
  112. package/layout-grid/package.json +1 -1
  113. package/layout-panel/package.json +1 -1
  114. package/link/package.json +1 -1
  115. package/list/package.json +1 -1
  116. package/menu/package.json +1 -1
  117. package/message-box/package.json +1 -1
  118. package/message-strip/package.json +1 -1
  119. package/message-toast/package.json +1 -1
  120. package/micro-process-flow/package.json +1 -1
  121. package/mobile-mode/package.json +1 -1
  122. package/multi-input/package.json +1 -1
  123. package/nested-list/package.json +1 -1
  124. package/notification/package.json +1 -1
  125. package/object-identifier/package.json +1 -1
  126. package/object-marker/package.json +1 -1
  127. package/object-number/package.json +1 -1
  128. package/object-status/package.json +1 -1
  129. package/overflow-layout/directives/overflow-expand.directive.d.ts +6 -5
  130. package/overflow-layout/directives/overflow-item-ref.directive.d.ts +16 -6
  131. package/overflow-layout/directives/overflow-layout-item-container.directive.d.ts +13 -1
  132. package/overflow-layout/directives/overflow-layout-item.directive.d.ts +7 -2
  133. package/overflow-layout/esm2020/directives/overflow-expand.directive.mjs +6 -4
  134. package/overflow-layout/esm2020/directives/overflow-item-container-ref.directive.mjs +2 -2
  135. package/overflow-layout/esm2020/directives/overflow-item-ref.directive.mjs +20 -8
  136. package/overflow-layout/esm2020/directives/overflow-layout-item-container.directive.mjs +30 -3
  137. package/overflow-layout/esm2020/directives/overflow-layout-item.directive.mjs +12 -3
  138. package/overflow-layout/esm2020/index.mjs +3 -1
  139. package/overflow-layout/esm2020/interfaces/overflow-expand.interface.mjs +1 -1
  140. package/overflow-layout/esm2020/interfaces/overflow-item-ref.interface.mjs +1 -1
  141. package/overflow-layout/esm2020/interfaces/overflow-item.interface.mjs +1 -1
  142. package/overflow-layout/esm2020/overflow-layout.component.mjs +83 -157
  143. package/overflow-layout/esm2020/overflow-layout.service.mjs +241 -0
  144. package/overflow-layout/fesm2015/fundamental-ngx-core-overflow-layout.mjs +378 -166
  145. package/overflow-layout/fesm2015/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
  146. package/overflow-layout/fesm2020/fundamental-ngx-core-overflow-layout.mjs +375 -165
  147. package/overflow-layout/fesm2020/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
  148. package/overflow-layout/index.d.ts +2 -0
  149. package/overflow-layout/interfaces/overflow-expand.interface.d.ts +4 -4
  150. package/overflow-layout/interfaces/overflow-item-ref.interface.d.ts +14 -3
  151. package/overflow-layout/interfaces/overflow-item.interface.d.ts +2 -1
  152. package/overflow-layout/overflow-layout.component.d.ts +19 -31
  153. package/overflow-layout/overflow-layout.service.d.ts +90 -0
  154. package/overflow-layout/package.json +14 -13
  155. package/overflow-layout/tokens/overflow-expand.token.d.ts +1 -1
  156. package/overflow-layout/tokens/overflow-item-ref.token.d.ts +1 -1
  157. package/package.json +1 -1
  158. package/pagination/package.json +1 -1
  159. package/panel/package.json +1 -1
  160. package/popover/package.json +1 -1
  161. package/product-switch/package.json +1 -1
  162. package/progress-indicator/package.json +1 -1
  163. package/quick-view/package.json +1 -1
  164. package/radio/package.json +1 -1
  165. package/rating-indicator/package.json +1 -1
  166. package/resizable-card-layout/package.json +1 -1
  167. package/schematics/ng-add/index.js +5 -1
  168. package/schematics/ng-add/index.js.map +1 -1
  169. package/scroll-spy/package.json +1 -1
  170. package/scrollbar/package.json +1 -1
  171. package/segmented-button/package.json +1 -1
  172. package/select/package.json +1 -1
  173. package/shared/package.json +1 -1
  174. package/shellbar/package.json +1 -1
  175. package/side-navigation/package.json +1 -1
  176. package/slider/package.json +1 -1
  177. package/split-button/package.json +1 -1
  178. package/splitter/package.json +1 -1
  179. package/status-indicator/package.json +1 -1
  180. package/step-input/package.json +1 -1
  181. package/switch/package.json +1 -1
  182. package/table/package.json +1 -1
  183. package/tabs/package.json +1 -1
  184. package/text/package.json +1 -1
  185. package/theming/package.json +1 -1
  186. package/tile/directives/numeric-content.directives.d.ts +2 -3
  187. package/tile/esm2020/directives/numeric-content.directives.mjs +1 -1
  188. package/tile/fesm2015/fundamental-ngx-core-tile.mjs.map +1 -1
  189. package/tile/fesm2020/fundamental-ngx-core-tile.mjs.map +1 -1
  190. package/tile/package.json +1 -1
  191. package/time/esm2020/time-column/time-column.component.mjs +7 -8
  192. package/time/fesm2015/fundamental-ngx-core-time.mjs +6 -7
  193. package/time/fesm2015/fundamental-ngx-core-time.mjs.map +1 -1
  194. package/time/fesm2020/fundamental-ngx-core-time.mjs +6 -7
  195. package/time/fesm2020/fundamental-ngx-core-time.mjs.map +1 -1
  196. package/time/package.json +1 -1
  197. package/time/time-column/time-column.component.d.ts +1 -0
  198. package/time-picker/package.json +1 -1
  199. package/timeline/package.json +1 -1
  200. package/title/package.json +1 -1
  201. package/token/package.json +1 -1
  202. package/toolbar/package.json +1 -1
  203. package/tree/package.json +1 -1
  204. package/upload-collection/package.json +1 -1
  205. package/utils/esm2020/functions/resize-observable.mjs +9 -2
  206. package/utils/fesm2015/fundamental-ngx-core-utils.mjs +8 -1
  207. package/utils/fesm2015/fundamental-ngx-core-utils.mjs.map +1 -1
  208. package/utils/fesm2020/fundamental-ngx-core-utils.mjs +8 -1
  209. package/utils/fesm2020/fundamental-ngx-core-utils.mjs.map +1 -1
  210. package/utils/package.json +1 -1
  211. package/vertical-navigation/package.json +1 -1
  212. package/wizard/package.json +1 -1
@@ -0,0 +1,241 @@
1
+ import { FocusKeyManager } from '@angular/cdk/a11y';
2
+ import { ElementRef, Injectable, Optional } from '@angular/core';
3
+ import { resizeObservable } from '@fundamental-ngx/core/utils';
4
+ import { debounceTime, distinctUntilChanged, filter, skip, Subject, Subscription } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@fundamental-ngx/core/utils";
7
+ export class OverflowLayoutListeningResult {
8
+ constructor() {
9
+ this.showMore = false;
10
+ this.items = [];
11
+ this.hiddenItems = [];
12
+ this.visibleItems = [];
13
+ }
14
+ }
15
+ export class OverflowLayoutService {
16
+ /** @hidden */
17
+ constructor(_elRef, _rtlService) {
18
+ this._elRef = _elRef;
19
+ this._rtlService = _rtlService;
20
+ /**
21
+ * Overflow Layout calculation result.
22
+ */
23
+ this.result = new OverflowLayoutListeningResult();
24
+ /** @hidden */
25
+ this._listenToItemResize = true;
26
+ /** @hidden */
27
+ this._subscription = new Subscription();
28
+ /** @hidden */
29
+ this._allItems = [];
30
+ /** @hidden */
31
+ this._hiddenItems = [];
32
+ /** @hidden */
33
+ this._overflowItems = [];
34
+ /** @hidden */
35
+ this._detectChanges$ = new Subject();
36
+ /** @hidden */
37
+ this._result$ = new Subject();
38
+ /** @hidden */
39
+ this._dir = 'ltr';
40
+ }
41
+ /**
42
+ * Observable which emits when changes detection is required.
43
+ */
44
+ get detectChanges() {
45
+ return this._detectChanges$.asObservable();
46
+ }
47
+ /**
48
+ * Observable which emits when new calculation result is available.
49
+ */
50
+ get onResult() {
51
+ return this._result$.asObservable();
52
+ }
53
+ /** @hidden */
54
+ ngOnDestroy() {
55
+ this._subscription.unsubscribe();
56
+ }
57
+ startListening(config) {
58
+ this.setConfig(config);
59
+ this.fitVisibleItems();
60
+ this._setFocusKeyManager();
61
+ this._listenToChanges();
62
+ this._subscribeToRtl();
63
+ }
64
+ setConfig(config) {
65
+ this.config = config;
66
+ }
67
+ _emitResult() {
68
+ this._result$.next(this.result);
69
+ }
70
+ /** @hidden */
71
+ _listenToChanges() {
72
+ this._subscription.add(this.config.items.changes.subscribe(() => {
73
+ setTimeout(() => {
74
+ this.fitVisibleItems();
75
+ });
76
+ }));
77
+ this._listenToSizeChanges(this._elRef.nativeElement, this.config.itemsWrapper);
78
+ }
79
+ /** @hidden */
80
+ _listenToSizeChanges(...elements) {
81
+ elements.forEach((element) => this._subscription.add(resizeObservable(element)
82
+ .pipe(skip(1), filter(() => this._listenToItemResize), distinctUntilChanged(), debounceTime(30))
83
+ .subscribe(() => {
84
+ setTimeout(() => {
85
+ this.fitVisibleItems();
86
+ });
87
+ })));
88
+ }
89
+ /** @hidden */
90
+ fitVisibleItems() {
91
+ this._listenToItemResize = false;
92
+ this._allItems = this.config.items.toArray();
93
+ let allItems = this.config.items.toArray();
94
+ let visibleContainerItems = this.config.visibleItems.toArray();
95
+ allItems.forEach((item, index) => {
96
+ // Softly hide previously completely hidden item in order to correctly calculate it's size.
97
+ item.softHidden = true;
98
+ item.hidden = false;
99
+ item.index = index;
100
+ item.first = index === 0;
101
+ item.last = index === allItems.length - 1;
102
+ visibleContainerItems[index].containerRef.hidden = false;
103
+ });
104
+ this._detectChanges$.next();
105
+ allItems = this.config.direction === 'right' ? allItems : allItems.reverse();
106
+ visibleContainerItems =
107
+ this.config.direction === 'right' ? visibleContainerItems : visibleContainerItems.reverse();
108
+ this.result.showMore = false;
109
+ this._emitResult();
110
+ const containerWidth = this._elRef.nativeElement.getBoundingClientRect().width;
111
+ const itemsContainerWidth = this.config.itemsWrapper.getBoundingClientRect().width;
112
+ if (containerWidth >= itemsContainerWidth &&
113
+ this.config.visibleItems.length <= this.config.maxVisibleItems &&
114
+ this._hiddenItems.length === 0) {
115
+ // Make all items fully visible.
116
+ allItems.forEach((item) => {
117
+ item.softHidden = false;
118
+ });
119
+ this.result.showMore = false;
120
+ this.result.hiddenItems = this._hiddenItems;
121
+ this._emitResult();
122
+ this._listenToItemResize = true;
123
+ return;
124
+ }
125
+ this.result.showMore = true;
126
+ this._emitResult();
127
+ let fittingElmCount = 0;
128
+ let fittingElmsWidth = 0;
129
+ let shouldHideItems = false;
130
+ const showMoreContainerWidth = Math.ceil(this.config.showMoreContainer.getBoundingClientRect().width);
131
+ let layoutWidth = Math.ceil(this.config.layoutContainerElement.getBoundingClientRect().width);
132
+ // Try to find all forced visible items
133
+ const forcedItemsIndexes = this._getForcedItemsIndexes();
134
+ forcedItemsIndexes.forEach((itemIndex) => {
135
+ const container = this.config.visibleItems.get(itemIndex);
136
+ if (!container) {
137
+ return;
138
+ }
139
+ const elementSize = this._getElementWidth(container.elementRef.nativeElement);
140
+ layoutWidth -= elementSize;
141
+ });
142
+ if (layoutWidth < 0 && forcedItemsIndexes.length > 0) {
143
+ console.warn('There is no enough space to fit all forced visible items into the container. Please adjust their visibility accordingly.');
144
+ }
145
+ this._detectChanges$.next();
146
+ visibleContainerItems.forEach((item, index) => {
147
+ const itemRef = allItems[index];
148
+ if (shouldHideItems && !itemRef.overflowItem.forceVisibility) {
149
+ item.containerRef.hidden = true;
150
+ item.softHidden = false;
151
+ itemRef.hidden = true;
152
+ return;
153
+ }
154
+ const elementSize = this._getElementWidth(item.elementRef.nativeElement);
155
+ const combinedWidth = fittingElmsWidth + elementSize;
156
+ const condition = (combinedWidth <= layoutWidth ||
157
+ (item === this.config.visibleItems.last &&
158
+ combinedWidth <= layoutWidth + showMoreContainerWidth)) &&
159
+ fittingElmCount < this.config.maxVisibleItems;
160
+ if (condition) {
161
+ fittingElmsWidth += elementSize;
162
+ fittingElmCount++;
163
+ }
164
+ else if (!itemRef.overflowItem.forceVisibility) {
165
+ shouldHideItems = true;
166
+ item.softHidden = false;
167
+ item.containerRef.hidden = true;
168
+ itemRef.hidden = true;
169
+ }
170
+ });
171
+ // Reverse original order back.
172
+ allItems = this.config.direction === 'right' ? allItems : allItems.reverse();
173
+ allItems.forEach((item) => {
174
+ item.softHidden = false;
175
+ });
176
+ let hiddenItems = allItems.filter((i) => i.hidden);
177
+ hiddenItems = !this.config.reverseHiddenItems ? hiddenItems.reverse() : hiddenItems;
178
+ const visibleItems = allItems.filter((i) => !i.hidden);
179
+ visibleItems.forEach((item, index) => {
180
+ item.index = index;
181
+ item.first = index === 0;
182
+ item.last = index === visibleItems.length - 1;
183
+ });
184
+ this._hiddenItems = hiddenItems.map((item, index) => {
185
+ item.first = index === 0;
186
+ item.last = index === hiddenItems.length - 1;
187
+ item.index = index;
188
+ return item;
189
+ });
190
+ this.result.showMore = this._hiddenItems.length > 0;
191
+ this.result.hiddenItems = this._hiddenItems;
192
+ this._emitResult();
193
+ this._listenToItemResize = true;
194
+ }
195
+ /** @hidden */
196
+ _setFocusKeyManager() {
197
+ if (!this.config.enableKeyboardNavigation) {
198
+ return;
199
+ }
200
+ this._dir = this._rtlService?.rtl.value ? 'rtl' : 'ltr';
201
+ this._keyboardEventsManager = new FocusKeyManager(this._overflowItems)
202
+ .withWrap()
203
+ .withHorizontalOrientation(this._dir)
204
+ .skipPredicate((item) => !item.focusable || item.hidden);
205
+ }
206
+ /** @hidden Rtl change subscription */
207
+ _subscribeToRtl() {
208
+ if (!this._rtlService || !this.config.enableKeyboardNavigation) {
209
+ return;
210
+ }
211
+ this._subscription.add(this._rtlService.rtl.subscribe((isRtl) => {
212
+ this._dir = isRtl ? 'rtl' : 'ltr';
213
+ this._keyboardEventsManager = this._keyboardEventsManager.withHorizontalOrientation(this._dir);
214
+ }));
215
+ }
216
+ /** @hidden */
217
+ _getForcedItemsIndexes() {
218
+ return this._allItems
219
+ .map((item, index) => (item.overflowItem.forceVisibility ? index : -1))
220
+ .filter((i) => i > -1);
221
+ }
222
+ /**
223
+ * @hidden
224
+ * Returns combined width of the element including margins.
225
+ * @param element Element to calculate width of.
226
+ */
227
+ _getElementWidth(element) {
228
+ const elementStyle = getComputedStyle(element);
229
+ const elementWidth = element.getBoundingClientRect().width;
230
+ const elementSize = elementWidth + parseFloat(elementStyle.marginLeft) + parseFloat(elementStyle.marginRight);
231
+ return Math.ceil(elementSize);
232
+ }
233
+ }
234
+ OverflowLayoutService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: OverflowLayoutService, deps: [{ token: i0.ElementRef }, { token: i1.RtlService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
235
+ OverflowLayoutService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: OverflowLayoutService });
236
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: OverflowLayoutService, decorators: [{
237
+ type: Injectable
238
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.RtlService, decorators: [{
239
+ type: Optional
240
+ }] }]; } });
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3ctbGF5b3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9vdmVyZmxvdy1sYXlvdXQvb3ZlcmZsb3ctbGF5b3V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFhLFFBQVEsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsZ0JBQWdCLEVBQWMsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBYyxJQUFJLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBaUIzRyxNQUFNLE9BQU8sNkJBQTZCO0lBQTFDO1FBQ0ksYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixVQUFLLEdBQXNCLEVBQUUsQ0FBQztRQUM5QixnQkFBVyxHQUFzQixFQUFFLENBQUM7UUFDcEMsaUJBQVksR0FBc0IsRUFBRSxDQUFDO0lBQ3pDLENBQUM7Q0FBQTtBQUdELE1BQU0sT0FBTyxxQkFBcUI7SUFvRDlCLGNBQWM7SUFDZCxZQUFvQixNQUErQixFQUFzQixXQUE4QjtRQUFuRixXQUFNLEdBQU4sTUFBTSxDQUF5QjtRQUFzQixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUEvQ3ZHOztXQUVHO1FBQ0gsV0FBTSxHQUFHLElBQUksNkJBQTZCLEVBQUUsQ0FBQztRQUs3QyxjQUFjO1FBQ04sd0JBQW1CLEdBQUcsSUFBSSxDQUFDO1FBRW5DLGNBQWM7UUFDRyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFcEQsY0FBYztRQUNOLGNBQVMsR0FBc0IsRUFBRSxDQUFDO1FBRTFDLGNBQWM7UUFDTixpQkFBWSxHQUFzQixFQUFFLENB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QUVEOzs7O09BSUc7SUFDSyxnQkFBZ0IsQ0FBQyxPQUFvQjtRQUN6QyxNQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDM0QsTUFBTSxXQUFXLEdBQUcsWUFBWSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU5RyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMsQ0FBQzs7a0hBaFNRLHFCQUFxQjtzSEFBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVU7OzBCQXNEK0MsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzS2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIE9uRGVzdHJveSwgT3B0aW9uYWwsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcmVzaXplT2JzZXJ2YWJsZSwgUnRsU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS91dGlscyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIE9ic2VydmFibGUsIHNraXAsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT3ZlcmZsb3dMYXlvdXRJdGVtQ29udGFpbmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL292ZXJmbG93LWxheW91dC1pdGVtLWNvbnRhaW5lci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT3ZlcmZsb3dJdGVtUmVmIH0gZnJvbSAnLi9pbnRlcmZhY2VzL292ZXJmbG93LWl0ZW0tcmVmLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPdmVyZmxvd0l0ZW0gfSBmcm9tICcuL2ludGVyZmFjZXMvb3ZlcmZsb3ctaXRlbS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE92ZXJmbG93TGF5b3V0Q29uZmlnIHtcbiAgICBpdGVtczogUXVlcnlMaXN0PE92ZXJmbG93SXRlbVJlZj47XG4gICAgdmlzaWJsZUl0ZW1zOiBRdWVyeUxpc3Q8T3ZlcmZsb3dMYXlvdXRJdGVtQ29udGFpbmVyRGlyZWN0aXZlPjtcbiAgICBpdGVtc1dyYXBwZXI6IEhUTUxFbGVtZW50O1xuICAgIHNob3dNb3JlQ29udGFpbmVyOiBIVE1MRWxlbWVudDtcbiAgICBsYXlvdXRDb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICBtYXhWaXNpYmxlSXRlbXM6IG51bWJlcjtcbiAgICBkaXJlY3Rpb246ICdsZWZ0JyB8ICdyaWdodCc7XG4gICAgZW5hYmxlS2V5Ym9hcmROYXZpZ2F0aW9uOiBib29sZWFuO1xuICAgIHJldmVyc2VIaWRkZW5JdGVtczogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIE92ZXJmbG93TGF5b3V0TGlzdGVuaW5nUmVzdWx0IHtcbiAgICBzaG93TW9yZSA9IGZhbHNlO1xuICAgIGl0ZW1zOiBPdmVyZmxvd0l0ZW1SZWZbXSA9IFtdO1xuICAgIGhpZGRlbkl0ZW1zOiBPdmVyZmxvd0l0ZW1SZWZbXSA9IFtdO1xuICAgIHZpc2libGVJdGVtczogT3ZlcmZsb3dJdGVtUmVmW10gPSBbXTtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE92ZXJmbG93TGF5b3V0U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogT3ZlcmZsb3cgTGF5b3V0IGNvbmZpZy5cbiAgICAgKi9cbiAgICBjb25maWc6IE92ZXJmbG93TGF5b3V0Q29uZmlnO1xuXG4gICAgLyoqXG4gICAgICogT3ZlcmZsb3cgTGF5b3V0IGNhbGN1bGF0aW9uIHJlc3VsdC5cbiAgICAgKi9cbiAgICByZXN1bHQgPSBuZXcgT3ZlcmZsb3dMYXlvdXRMaXN0ZW5pbmdSZXN1bHQoKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2tleWJvYXJkRXZlbnRzTWFuYWdlcjogRm9jdXNLZXlNYW5hZ2VyPE92ZXJmbG93SXRlbT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlblRvSXRlbVJlc2l6ZSA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYWxsSXRlbXM6IE92ZXJmbG93SXRlbVJlZltdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2hpZGRlbkl0ZW1zOiBPdmVyZmxvd0l0ZW1SZWZbXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9vdmVyZmxvd0l0ZW1zOiBPdmVyZmxvd0l0ZW1bXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kZXRlY3RDaGFuZ2VzJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Jlc3VsdCQgPSBuZXcgU3ViamVjdDxPdmVyZmxvd0xheW91dExpc3RlbmluZ1Jlc3VsdD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGlyOiAncnRsJyB8ICdsdHInID0gJ2x0cic7XG5cbiAgICAvKipcbiAgICAgKiBPYnNlcnZhYmxlIHdoaWNoIGVtaXRzIHdoZW4gY2hhbmdlcyBkZXRlY3Rpb24gaXMgcmVxdWlyZWQuXG4gICAgICovXG4gICAgZ2V0IGRldGVjdENoYW5nZXMoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZXRlY3RDaGFuZ2VzJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPYnNlcnZhYmxlIHdoaWNoIGVtaXRzIHdoZW4gbmV3IGNhbGN1bGF0aW9uIHJlc3VsdCBpcyBhdmFpbGFibGUuXG4gICAgICovXG4gICAgZ2V0IG9uUmVzdWx0KCk6IE9ic2VydmFibGU8T3ZlcmZsb3dMYXlvdXRMaXN0ZW5pbmdSZXN1bHQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc3VsdCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9lbFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sIEBPcHRpb25hbCgpIHByaXZhdGUgX3J0bFNlcnZpY2U6IFJ0bFNlcnZpY2UgfCBudWxsKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgc3RhcnRMaXN0ZW5pbmcoY29uZmlnOiBPdmVyZmxvd0xheW91dENvbmZpZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldENvbmZpZyhjb25maWcpO1xuICAgICAgICB0aGlzLmZpdFZpc2libGVJdGVtcygpO1xuICAgICAgICB0aGlzLl9zZXRGb2N1c0tleU1hbmFnZXIoKTtcbiAgICAgICAgdGhpcy5fbGlzdGVuVG9DaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuX3N1YnNjcmliZVRvUnRsKCk7XG4gICAgfVxuXG4gICAgc2V0Q29uZmlnKGNvbmZpZzogT3ZlcmZsb3dMYXlvdXRDb25maWcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb25maWcgPSBjb25maWc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZW1pdFJlc3VsdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVzdWx0JC5uZXh0KHRoaXMucmVzdWx0KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlblRvQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLml0ZW1zLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maXRWaXNpYmxlSXRlbXMoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fbGlzdGVuVG9TaXplQ2hhbmdlcyh0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmNvbmZpZy5pdGVtc1dyYXBwZXIpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9TaXplQ2hhbmdlcyguLi5lbGVtZW50czogSFRNTEVsZW1lbnRbXSk6IHZvaWQge1xuICAgICAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PlxuICAgICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgICAgICAgICByZXNpemVPYnNlcnZhYmxlKGVsZW1lbnQpXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgc2tpcCgxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLl9saXN0ZW5Ub0l0ZW1SZXNpemUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSgzMClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZml0VmlzaWJsZUl0ZW1zKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGZpdFZpc2libGVJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGlzdGVuVG9JdGVtUmVzaXplID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2FsbEl0ZW1zID0gdGhpcy5jb25maWcuaXRlbXMudG9BcnJheSgpO1xuXG4gICAgICAgIGxldCBhbGxJdGVtcyA9IHRoaXMuY29uZmlnLml0ZW1zLnRvQXJyYXkoKTtcbiAgICAgICAgbGV0IHZpc2libGVDb250YWluZXJJdGVtcyA9IHRoaXMuY29uZmlnLnZpc2libGVJdGVtcy50b0FycmF5KCk7XG5cbiAgICAgICAgYWxsSXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIC8vIFNvZnRseSBoaWRlIHByZXZpb3VzbHkgY29tcGxldGVseSBoaWRkZW4gaXRlbSBpbiBvcmRlciB0byBjb3JyZWN0bHkgY2FsY3VsYXRlIGl0J3Mgc2l6ZS5cbiAgICAgICAgICAgIGl0ZW0uc29mdEhpZGRlbiA9IHRydWU7XG4gICAgICAgICAgICBpdGVtLmhpZGRlbiA9IGZhbHNlO1xuICAgICAgICAgICAgaXRlbS5pbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgaXRlbS5maXJzdCA9IGluZGV4ID09PSAwO1xuICAgICAgICAgICAgaXRlbS5sYXN0ID0gaW5kZXggPT09IGFsbEl0ZW1zLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICB2aXNpYmxlQ29udGFpbmVySXRlbXNbaW5kZXhdLmNvbnRhaW5lclJlZi5oaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fZGV0ZWN0Q2hhbmdlcyQubmV4dCgpO1xuXG4gICAgICAgIGFsbEl0ZW1zID0gdGhpcy5jb25maWcuZGlyZWN0aW9uID09PSAncmlnaHQnID8gYWxsSXRlbXMgOiBhbGxJdGVtcy5yZXZlcnNlKCk7XG4gICAgICAgIHZpc2libGVDb250YWluZXJJdGVtcyA9XG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5kaXJlY3Rpb24gPT09ICdyaWdodCcgPyB2aXNpYmxlQ29udGFpbmVySXRlbXMgOiB2aXNpYmxlQ29udGFpbmVySXRlbXMucmV2ZXJzZSgpO1xuXG4gICAgICAgIHRoaXMucmVzdWx0LnNob3dNb3JlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2VtaXRSZXN1bHQoKTtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgICAgICBjb25zdCBpdGVtc0NvbnRhaW5lcldpZHRoID0gdGhpcy5jb25maWcuaXRlbXNXcmFwcGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNvbnRhaW5lcldpZHRoID49IGl0ZW1zQ29udGFpbmVyV2lkdGggJiZcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnZpc2libGVJdGVtcy5sZW5ndGggPD0gdGhpcy5jb25maWcubWF4VmlzaWJsZUl0ZW1zICYmXG4gICAgICAgICAgICB0aGlzLl9oaWRkZW5JdGVtcy5sZW5ndGggPT09IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBNYWtlIGFsbCBpdGVtcyBmdWxseSB2aXNpYmxlLlxuICAgICAgICAgICAgYWxsSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIGl0ZW0uc29mdEhpZGRlbiA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnJlc3VsdC5zaG93TW9yZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5yZXN1bHQuaGlkZGVuSXRlbXMgPSB0aGlzLl9oaWRkZW5JdGVtcztcbiAgICAgICAgICAgIHRoaXMuX2VtaXRSZXN1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuX2xpc3RlblRvSXRlbVJlc2l6ZSA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXN1bHQuc2hvd01vcmUgPSB0cnVlO1xuICAgICAgICB0aGlzLl9lbWl0UmVzdWx0KCk7XG4gICAgICAgIGxldCBmaXR0aW5nRWxtQ291bnQgPSAwO1xuICAgICAgICBsZXQgZml0dGluZ0VsbXNXaWR0aCA9IDA7XG4gICAgICAgIGxldCBzaG91bGRIaWRlSXRlbXMgPSBmYWxzZTtcblxuICAgICAgICBjb25zdCBzaG93TW9yZUNvbnRhaW5lcldpZHRoID0gTWF0aC5jZWlsKHRoaXMuY29uZmlnLnNob3dNb3JlQ29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKTtcbiAgICAgICAgbGV0IGxheW91dFdpZHRoID0gTWF0aC5jZWlsKHRoaXMuY29uZmlnLmxheW91dENvbnRhaW5lckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgpO1xuXG4gICAgICAgIC8vIFRyeSB0byBmaW5kIGFsbCBmb3JjZWQgdmlzaWJsZSBpdGVtc1xuICAgICAgICBjb25zdCBmb3JjZWRJdGVtc0luZGV4ZXMgPSB0aGlzLl9nZXRGb3JjZWRJdGVtc0luZGV4ZXMoKTtcblxuICAgICAgICBmb3JjZWRJdGVtc0luZGV4ZXMuZm9yRWFjaCgoaXRlbUluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNvbmZpZy52aXNpYmxlSXRlbXMuZ2V0KGl0ZW1JbmRleCk7XG4gICAgICAgICAgICBpZiAoIWNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRTaXplID0gdGhpcy5fZ2V0RWxlbWVudFdpZHRoKGNvbnRhaW5lci5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICAgICAgICBsYXlvdXRXaWR0aCAtPSBlbGVtZW50U2l6ZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGxheW91dFdpZHRoIDwgMCAmJiBmb3JjZWRJdGVtc0luZGV4ZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICdUaGVyZSBpcyBubyBlbm91Z2ggc3BhY2UgdG8gZml0IGFsbCBmb3JjZWQgdmlzaWJsZSBpdGVtcyBpbnRvIHRoZSBjb250YWluZXIuIFBsZWFzZSBhZGp1c3QgdGhlaXIgdmlzaWJpbGl0eSBhY2NvcmRpbmdseS4nXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZGV0ZWN0Q2hhbmdlcyQubmV4dCgpO1xuXG4gICAgICAgIHZpc2libGVDb250YWluZXJJdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXRlbVJlZiA9IGFsbEl0ZW1zW2luZGV4XTtcbiAgICAgICAgICAgIGlmIChzaG91bGRIaWRlSXRlbXMgJiYgIWl0ZW1SZWYub3ZlcmZsb3dJdGVtLmZvcmNlVmlzaWJpbGl0eSkge1xuICAgICAgICAgICAgICAgIGl0ZW0uY29udGFpbmVyUmVmLmhpZGRlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgaXRlbS5zb2Z0SGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaXRlbVJlZi5oaWRkZW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFNpemUgPSB0aGlzLl9nZXRFbGVtZW50V2lkdGgoaXRlbS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgY29uc3QgY29tYmluZWRXaWR0aCA9IGZpdHRpbmdFbG1zV2lkdGggKyBlbGVtZW50U2l6ZTtcblxuICAgICAgICAgICAgY29uc3QgY29uZGl0aW9uID1cbiAgICAgICAgICAgICAgICAoY29tYmluZWRXaWR0aCA8PSBsYXlvdXRXaWR0aCB8fFxuICAgICAgICAgICAgICAgICAgICAoaXRlbSA9PT0gdGhpcy5jb25maWcudmlzaWJsZUl0ZW1zLmxhc3QgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbWJpbmVkV2lkdGggPD0gbGF5b3V0V2lkdGggKyBzaG93TW9yZUNvbnRhaW5lcldpZHRoKSkgJiZcbiAgICAgICAgICAgICAgICBmaXR0aW5nRWxtQ291bnQgPCB0aGlzLmNvbmZpZy5tYXhWaXNpYmxlSXRlbXM7XG5cbiAgICAgICAgICAgIGlmIChjb25kaXRpb24pIHtcbiAgICAgICAgICAgICAgICBmaXR0aW5nRWxtc1dpZHRoICs9IGVsZW1lbnRTaXplO1xuICAgICAgICAgICAgICAgIGZpdHRpbmdFbG1Db3VudCsrO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghaXRlbVJlZi5vdmVyZmxvd0l0ZW0uZm9yY2VWaXNpYmlsaXR5KSB7XG4gICAgICAgICAgICAgICAgc2hvdWxkSGlkZUl0ZW1zID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpdGVtLnNvZnRIaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpdGVtLmNvbnRhaW5lclJlZi5oaWRkZW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgIGl0ZW1SZWYuaGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gUmV2ZXJzZSBvcmlnaW5hbCBvcmRlciBiYWNrLlxuICAgICAgICBhbGxJdGVtcyA9IHRoaXMuY29uZmlnLmRpcmVjdGlvbiA9PT0gJ3JpZ2h0JyA/IGFsbEl0ZW1zIDogYWxsSXRlbXMucmV2ZXJzZSgpO1xuXG4gICAgICAgIGFsbEl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0uc29mdEhpZGRlbiA9IGZhbHNlO1xuICAgICAgICB9KTtcblxuICAgICAgICBsZXQgaGlkZGVuSXRlbXMgPSBhbGxJdGVtcy5maWx0ZXIoKGkpID0+IGkuaGlkZGVuKTtcbiAgICAgICAgaGlkZGVuSXRlbXMgPSAhdGhpcy5jb25maWcucmV2ZXJzZUhpZGRlbkl0ZW1zID8gaGlkZGVuSXRlbXMucmV2ZXJzZSgpIDogaGlkZGVuSXRlbXM7XG4gICAgICAgIGNvbnN0IHZpc2libGVJdGVtcyA9IGFsbEl0ZW1zLmZpbHRlcigoaSkgPT4gIWkuaGlkZGVuKTtcblxuICAgICAgICB2aXNpYmxlSXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGl0ZW0uaW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgIGl0ZW0uZmlyc3QgPSBpbmRleCA9PT0gMDtcbiAgICAgICAgICAgIGl0ZW0ubGFzdCA9IGluZGV4ID09PSB2aXNpYmxlSXRlbXMubGVuZ3RoIC0gMTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5faGlkZGVuSXRlbXMgPSBoaWRkZW5JdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpdGVtLmZpcnN0ID0gaW5kZXggPT09IDA7XG4gICAgICAgICAgICBpdGVtLmxhc3QgPSBpbmRleCA9PT0gaGlkZGVuSXRlbXMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIGl0ZW0uaW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnJlc3VsdC5zaG93TW9yZSA9IHRoaXMuX2hpZGRlbkl0ZW1zLmxlbmd0aCA+IDA7XG4gICAgICAgIHRoaXMucmVzdWx0LmhpZGRlbkl0ZW1zID0gdGhpcy5faGlkZGVuSXRlbXM7XG4gICAgICAgIHRoaXMuX2VtaXRSZXN1bHQoKTtcblxuICAgICAgICB0aGlzLl9saXN0ZW5Ub0l0ZW1SZXNpemUgPSB0cnVlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0Rm9jdXNLZXlNYW5hZ2VyKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuY29uZmlnLmVuYWJsZUtleWJvYXJkTmF2aWdhdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2RpciA9IHRoaXMuX3J0bFNlcnZpY2U/LnJ0bC52YWx1ZSA/ICdydGwnIDogJ2x0cic7XG4gICAgICAgIHRoaXMuX2tleWJvYXJkRXZlbnRzTWFuYWdlciA9IG5ldyBGb2N1c0tleU1hbmFnZXIodGhpcy5fb3ZlcmZsb3dJdGVtcylcbiAgICAgICAgICAgIC53aXRoV3JhcCgpXG4gICAgICAgICAgICAud2l0aEhvcml6b250YWxPcmllbnRhdGlvbih0aGlzLl9kaXIpXG4gICAgICAgICAgICAuc2tpcFByZWRpY2F0ZSgoaXRlbSkgPT4gIWl0ZW0uZm9jdXNhYmxlIHx8IGl0ZW0uaGlkZGVuKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBSdGwgY2hhbmdlIHN1YnNjcmlwdGlvbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmliZVRvUnRsKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3J0bFNlcnZpY2UgfHwgIXRoaXMuY29uZmlnLmVuYWJsZUtleWJvYXJkTmF2aWdhdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgICAgIHRoaXMuX3J0bFNlcnZpY2UucnRsLnN1YnNjcmliZSgoaXNSdGwpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kaXIgPSBpc1J0bCA/ICdydGwnIDogJ2x0cic7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9rZXlib2FyZEV2ZW50c01hbmFnZXIgPSB0aGlzLl9rZXlib2FyZEV2ZW50c01hbmFnZXIud2l0aEhvcml6b250YWxPcmllbnRhdGlvbih0aGlzLl9kaXIpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEZvcmNlZEl0ZW1zSW5kZXhlcygpOiBudW1iZXJbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hbGxJdGVtc1xuICAgICAgICAgICAgLm1hcCgoaXRlbSwgaW5kZXgpID0+IChpdGVtLm92ZXJmbG93SXRlbS5mb3JjZVZpc2liaWxpdHkgPyBpbmRleCA6IC0xKSlcbiAgICAgICAgICAgIC5maWx0ZXIoKGkpID0+IGkgPiAtMSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFJldHVybnMgY29tYmluZWQgd2lkdGggb2YgdGhlIGVsZW1lbnQgaW5jbHVkaW5nIG1hcmdpbnMuXG4gICAgICogQHBhcmFtIGVsZW1lbnQgRWxlbWVudCB0byBjYWxjdWxhdGUgd2lkdGggb2YuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2V0RWxlbWVudFdpZHRoKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgZWxlbWVudFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbiAgICAgICAgY29uc3QgZWxlbWVudFdpZHRoID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICAgICAgY29uc3QgZWxlbWVudFNpemUgPSBlbGVtZW50V2lkdGggKyBwYXJzZUZsb2F0KGVsZW1lbnRTdHlsZS5tYXJnaW5MZWZ0KSArIHBhcnNlRmxvYXQoZWxlbWVudFN0eWxlLm1hcmdpblJpZ2h0KTtcblxuICAgICAgICByZXR1cm4gTWF0aC5jZWlsKGVsZW1lbnRTaXplKTtcbiAgICB9XG59XG4iXX0=
@@ -336,4 +336,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
336
336
  type: HostBinding,
337
337
  args: ['class.fd-numeric-content__scale-text']
338
338
  }] } });
339
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy1jb250ZW50LmRpcmVjdGl2ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90aWxlL2RpcmVjdGl2ZXMvbnVtZXJpYy1jb250ZW50LmRpcmVjdGl2ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFVNUQsTUFBTSxPQUFPLHVCQUF1QjtJQWFoQyxZQUFvQixXQUF1QjtRQUF2QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUozQyxjQUFjO1FBRWQsY0FBUyxHQUFHLElBQUksQ0FBQztJQUU2QixDQUFDO0lBRS9DLGNBQWM7SUFDZCxXQUFXO1FBQ1AsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELGNBQWM7SUFDZCxRQUFRO1FBQ0osSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQU9ELEFBSkE7OztPQUdHO0lBQ0gsc0JBQXNCO1FBQ2xCLE9BQU87WUFDSCxvQkFBb0I7WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuRCxJQUFJLENBQUMsS0FBSztZQUNWLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDOUQsQ0FBQztJQUNOLENBQUM7SUFFRCxjQUFjO0lBQ2QsVUFBVTtRQUNOLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYztJQUNOLFlBQVk7UUFDaEIsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFD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QUE4RDtvQkFDOUQsUUFBUSxFQUFFLDRCQUE0QjtpQkFDekM7aUdBSUcsS0FBSztzQkFESixLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSzs7UUFnQk47OztXQUdHO1FBQ0gsc0JBQXNCO0FBYzFCLE1BQU0sT0FBTyxnQ0FBZ0M7SUFKN0M7UUFLSSxjQUFjO1FBRWQsY0FBUyxHQUFHLElBQUksQ0FBQztLQUNwQjs7NkhBSlksZ0NBQWdDO2lIQUFoQyxnQ0FBZ0M7MkZBQWhDLGdDQUFnQztrQkFKNUMsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxpQ0FBaUM7aUJBQzlDOzhCQUlHLFNBQVM7c0JBRFIsV0FBVzt1QkFBQyxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFwcGx5Q3NzQ2xhc3MgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgQ3NzQ2xhc3NCdWlsZGVyIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3V0aWxzJztcblxudHlwZSBOdW1lcmljQ29udGVudFN0YXRlID0gJ25lZ2F0aXZlJyB8ICdjcml0aWNhbCcgfCAncG9zaXRpdmUnIHwgJ2luZm9ybWF0aXZlJyB8ICduZXV0cmFsJztcbnR5cGUgTnVtZXJpY0NvbnRlbnRTaXplID0gJ3MnIHwgJ20nIHwgJ2wnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkLW51bWVyaWMtY29udGVudF0nXG59KVxuZXhwb3J0IGNsYXNzIE51bWVyaWNDb250ZW50RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIENzc0NsYXNzQnVpbGRlciB7XG4gICAgLyoqIEFwcGx5IHVzZXIgY3VzdG9tIHN0eWxlcyAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xhc3M6IHN0cmluZztcblxuICAgIC8qKiBTaXplIG9mIHRoZSBudW1lcmljIGNvbnRlbnQgKi9cbiAgICBASW5wdXQoKVxuICAgIHNpemU6IE51bWVyaWNDb250ZW50U2l6ZSB8IG51bGw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtbnVtZXJpYy1jb250ZW50JylcbiAgICBiYXNlQ2xhc3MgPSB0cnVlO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgIH1cblxuICAgIEBhcHBseUNzc0NsYXNzXG4gICAgLyoqIENzc0NsYXNzQnVpbGRlciBpbnRlcmZhY2UgaW1wbGVtZW50YXRpb25cbiAgICAgKiBmdW5jdGlvbiBtdXN0IHJldHVybiBzaW5nbGUgc3RyaW5nXG4gICAgICogZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIG9yZGVyIHdoaWNoIGNzcyBjbGFzc2VzIGFyZSBhcHBsaWVkXG4gICAgICovXG4gICAgYnVpbGRDb21wb25lbnRDc3NDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnZmQtbnVtZXJpYy1jb250ZW50JyxcbiAgICAgICAgICAgIHRoaXMuc2l6ZSA/ICdmZC1udW1lcmljLWNvbnRlbnQtLScgKyB0aGlzLnNpemUgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuY2xhc3MsXG4gICAgICAgICAgICB0aGlzLl9pc1NtYWxsVGlsZSgpID8gJ2ZkLW51bWVyaWMtY29udGVudC0tc21hbGwtdGlsZScgOiAnJ1xuICAgICAgICBdO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZWxlbWVudFJlZigpOiBFbGVtZW50UmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZjtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lzU21hbGxUaWxlKCk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgcmV0VmFsID0gZmFsc2U7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50ICYmXG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50ICYmXG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnZmQtdGlsZS0tcycpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0VmFsID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmV0VmFsO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tmZC1udW1lcmljLWNvbnRlbnQtbGF1bmNoLWljb24tY29udGFpbmVyXSdcbn0pXG5leHBvcnQgY2xhc3MgTnVtZXJpY0NvbnRlbnRMYXVuY2hJY29uQ29udGFpbmVyRGlyZWN0aXZlIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtbnVtZXJpYy1jb250ZW50X19sYXVuY2gtaWNvbi1jb250YWluZXInKVxuICAgIGJhc2VDbGFzcyA9IHRydWU7XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmQtbnVtZXJpYy1jb250ZW50LWxhdW5jaC1pY29uXSdcbn0pXG5leHBvcnQgY2xhc3MgTnVtZXJpY0NvbnRlbnRMYXVuY2hJY29uRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIENzc0NsYXNzQnVpbGRlciB7XG4gICAgLyoqIEFwcGx5IHVzZXIgY3VzdG9tIHN0eWxlcyAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xhc3M6IHN0cmluZztcblxuICAgIC8qKiBHbHlwaCAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2x5cGg6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICB9XG5cbiAgICBAYXBwbHlDc3NDbGFzc1xuICAgIC8qKiBDc3NDbGFzc0J1aWxkZXIgaW50ZXJmYWNlIGltcGxlbWVudGF0aW9uXG4gICAgICogZnVuY3Rpb24gbXVzdCByZXR1cm4gc2luZ2xlIHN0cmluZ1xuICAgICAqIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBvcmRlciB3aGljaCBjc3MgY2xhc3NlcyBhcmUgYXBwbGllZFxuICAgICAqL1xuICAgIGJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gWydmZC1udW1lcmljLWNvbnRlbnRfX2xhdW5jaC1pY29uJywgdGhpcy5nbHlwaCA/ICdzYXAtaWNvbi0tJyArIHRoaXMuZ2x5cGggOiAnJywgdGhpcy5jbGFzc107XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBlbGVtZW50UmVmKCk6IEVsZW1lbnRSZWY8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tmZC1udW1lcmljLWNvbnRlbnQta3BpLWNvbnRhaW5lcl0nXG59KVxuZXhwb3J0IGNsYXNzIE51bWVyaWNDb250ZW50S3BpQ29udGFpbmVyRGlyZWN0aXZlIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtbnVtZXJpYy1jb250ZW50X19rcGktY29udGFpbmVyJylcbiAgICBiYXNlQ2xhc3MgPSB0cnVlO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkLW51bWVyaWMtY29udGVudC1rcGldJ1xufSlcbmV4cG9ydCBjbGFzcyBOdW1lcmljQ29udGVudEtwaURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBDc3NDbGFzc0J1aWxkZXIge1xuICAgIC8qKiBTdGF0ZSBvZiB0aGUgS1BJLiBPcHRpb25zIGFyZSBuZXV0cmFsIChkZWZhdWx0KSwgJ3Bvc2l0aXZlJywgJ25lZ2F0aXZlJywgJ2NyaXRpY2FsJywgYW5kICdpbmZvcm1hdGl2ZScuICovXG4gICAgQElucHV0KClcbiAgICBzdGF0ZT86IE51bWVyaWNDb250ZW50U3RhdGUgfCBudWxsO1xuXG4gICAgLyoqIEFwcGx5IHVzZXIgY3VzdG9tIHN0eWxlcyAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xhc3M6IHN0cmluZztcblxuICAgIC8qKiBHbHlwaCAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2x5cGg6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICB9XG5cbiAgICBAYXBwbHlDc3NDbGFzc1xuICAgIC8qKiBDc3NDbGFzc0J1aWxkZXIgaW50ZXJmYWNlIGltcGxlbWVudGF0aW9uXG4gICAgICogZnVuY3Rpb24gbXVzdCByZXR1cm4gc2luZ2xlIHN0cmluZ1xuICAgICAqIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBvcmRlciB3aGljaCBjc3MgY2xhc3NlcyBhcmUgYXBwbGllZFxuICAgICAqL1xuICAgIGJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gWydmZC1udW1lcmljLWNvbnRlbnRfX2twaScsIHRoaXMuc3RhdGUgPyAnZmQtbnVtZXJpYy1jb250ZW50X19rcGktLScgKyB0aGlzLnN0YXRlIDogJycsIHRoaXMuY2xhc3NdO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZWxlbWVudFJlZigpOiBFbGVtZW50UmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZjtcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmQtbnVtZXJpYy1jb250ZW50LXNjYWxlLWNvbnRhaW5lcl0nXG59KVxuZXhwb3J0IGNsYXNzIE51bWVyaWNDb250ZW50U2NhbGVDb250YWluZXJEaXJlY3RpdmUge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1udW1lcmljLWNvbnRlbnRfX3NjYWxlLWNvbnRhaW5lcicpXG4gICAgYmFzZUNsYXNzID0gdHJ1ZTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tmZC1udW1lcmljLWNvbnRlbnQtc2NhbGUtYXJyb3ddJ1xufSlcbmV4cG9ydCBjbGFzcyBOdW1lcmljQ29udGVudFNjYWxlQXJyb3dEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQ3NzQ2xhc3NCdWlsZGVyIHtcbiAgICAvKiogQXBwbHkgdXNlciBjdXN0b20gc3R5bGVzICovXG4gICAgQElucHV0KClcbiAgICBjbGFzczogc3RyaW5nO1xuXG4gICAgLyoqIEdseXBoICovXG4gICAgQElucHV0KClcbiAgICBnbHlwaDogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgIH1cblxuICAgIEBhcHBseUNzc0NsYXNzXG4gICAgLyoqIENzc0NsYXNzQnVpbGRlciBpbnRlcmZhY2UgaW1wbGVtZW50YXRpb25cbiAgICAgKiBmdW5jdGlvbiBtdXN0IHJldHVybiBzaW5nbGUgc3RyaW5nXG4gICAgICogZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIG9yZGVyIHdoaWNoIGNzcyBjbGFzc2VzIGFyZSBhcHBsaWVkXG4gICAgICovXG4gICAgYnVpbGRDb21wb25lbnRDc3NDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBbJ2ZkLW51bWVyaWMtY29udGVudF9fc2NhbGUtYXJyb3cnLCB0aGlzLmdseXBoID8gJ3NhcC1pY29uLS0nICsgdGhpcy5nbHlwaCA6ICcnLCB0aGlzLmNsYXNzXTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGVsZW1lbnRSZWYoKTogRWxlbWVudFJlZjxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWY7XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkLW51bWVyaWMtY29udGVudC1zY2FsZV0nXG59KVxuZXhwb3J0IGNsYXNzIE51bWVyaWNDb250ZW50U2NhbGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQ3NzQ2xhc3NCdWlsZGVyIHtcbiAgICAvKiogU3RhdGUgb2YgdGhlIFNDQUxFLiBPcHRpb25zIGFyZSBuZXV0cmFsIChkZWZhdWx0KSwgJ3Bvc2l0aXZlJywgJ25lZ2F0aXZlJywgJ2NyaXRpY2FsJywgYW5kICdpbmZvcm1hdGl2ZScuICovXG4gICAgQElucHV0KClcbiAgICBzdGF0ZT86IE51bWVyaWNDb250ZW50U3RhdGUgfCBudWxsO1xuXG4gICAgLyoqIEFwcGx5IHVzZXIgY3VzdG9tIHN0eWxlcyAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xhc3M6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICB9XG5cbiAgICBAYXBwbHlDc3NDbGFzc1xuICAgIC8qKiBDc3NDbGFzc0J1aWxkZXIgaW50ZXJmYWNlIGltcGxlbWVudGF0aW9uXG4gICAgICogZnVuY3Rpb24gbXVzdCByZXR1cm4gc2luZ2xlIHN0cmluZ1xuICAgICAqIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBvcmRlciB3aGljaCBjc3MgY2xhc3NlcyBhcmUgYXBwbGllZFxuICAgICAqL1xuICAgIGJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gWydmZC1udW1lcmljLWNvbnRlbnRfX3NjYWxlJywgdGhpcy5zdGF0ZSA/ICdmZC1udW1lcmljLWNvbnRlbnRfX3NjYWxlLS0nICsgdGhpcy5zdGF0ZSA6ICcnLCB0aGlzLmNsYXNzXTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGVsZW1lbnRSZWYoKTogRWxlbWVudFJlZjxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWY7XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkLW51bWVyaWMtY29udGVudC1zY2FsZS10ZXh0XSdcbn0pXG5leHBvcnQgY2xhc3MgTnVtZXJpY0NvbnRlbnRTY2FsZVRleHREaXJlY3RpdmUge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1udW1lcmljLWNvbnRlbnRfX3NjYWxlLXRleHQnKVxuICAgIGJhc2VDbGFzcyA9IHRydWU7XG59XG4iXX0=
339
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy1jb250ZW50LmRpcmVjdGl2ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90aWxlL2RpcmVjdGl2ZXMvbnVtZXJpYy1jb250ZW50LmRpcmVjdGl2ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFVNUQsTUFBTSxPQUFPLHVCQUF1QjtJQWFoQyxZQUFvQixXQUF1QjtRQUF2QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUozQyxjQUFjO1FBRWQsY0FBUyxHQUFHLElBQUksQ0FBQztJQUU2QixDQUFDO0lBRS9DLGNBQWM7SUFDZCxXQUFXO1FBQ1AsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELGNBQWM7SUFDZCxRQUFRO1FBQ0osSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQU9ELEFBSkE7OztPQUdHO0lBQ0gsc0JBQXNCO1FBQ2xCLE9BQU87WUFDSCxvQkFBb0I7WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNuRCxJQUFJLENBQUMsS0FBSztZQUNWLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDOUQsQ0FBQztJQUNOLENBQUM7SUFFRCxjQUFjO0lBQ2QsVUFBVTtRQUNOLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYztJQUNOLFlBQVk7UUFDaEIsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFD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QUE4RDtvQkFDOUQsUUFBUSxFQUFFLDRCQUE0QjtpQkFDekM7aUdBSUcsS0FBSztzQkFESixLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSzs7UUFnQk47OztXQUdHO1FBQ0gsc0JBQXNCO0FBYzFCLE1BQU0sT0FBTyxnQ0FBZ0M7SUFKN0M7UUFLSSxjQUFjO1FBRWQsY0FBUyxHQUFHLElBQUksQ0FBQztLQUNwQjs7NkhBSlksZ0NBQWdDO2lIQUFoQyxnQ0FBZ0M7MkZBQWhDLGdDQUFnQztrQkFKNUMsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxpQ0FBaUM7aUJBQzlDOzhCQUlHLFNBQVM7c0JBRFIsV0FBVzt1QkFBQyxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFwcGx5Q3NzQ2xhc3MgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgQ3NzQ2xhc3NCdWlsZGVyIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3V0aWxzJztcblxuZXhwb3J0IHR5cGUgTnVtZXJpY0NvbnRlbnRTdGF0ZSA9ICduZWdhdGl2ZScgfCAnY3JpdGljYWwnIHwgJ3Bvc2l0aXZlJyB8ICdpbmZvcm1hdGl2ZScgfCAnbmV1dHJhbCc7XG5leHBvcnQgdHlwZSBOdW1lcmljQ29udGVudFNpemUgPSAncycgfCAnbScgfCAnbCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmQtbnVtZXJpYy1jb250ZW50XSdcbn0pXG5leHBvcnQgY2xhc3MgTnVtZXJpY0NvbnRlbnREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQ3NzQ2xhc3NCdWlsZGVyIHtcbiAgICAvKiogQXBwbHkgdXNlciBjdXN0b20gc3R5bGVzICovXG4gICAgQElucHV0KClcbiAgICBjbGFzczogc3RyaW5nO1xuXG4gICAgLyoqIFNpemUgb2YgdGhlIG51bWVyaWMgY29udGVudCAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2l6ZTogTnVtZXJpY0NvbnRlbnRTaXplIHwgbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1udW1lcmljLWNvbnRlbnQnKVxuICAgIGJhc2VDbGFzcyA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgfVxuXG4gICAgQGFwcGx5Q3NzQ2xhc3NcbiAgICAvKiogQ3NzQ2xhc3NCdWlsZGVyIGludGVyZmFjZSBpbXBsZW1lbnRhdGlvblxuICAgICAqIGZ1bmN0aW9uIG11c3QgcmV0dXJuIHNpbmdsZSBzdHJpbmdcbiAgICAgKiBmdW5jdGlvbiBpcyByZXNwb25zaWJsZSBmb3Igb3JkZXIgd2hpY2ggY3NzIGNsYXNzZXMgYXJlIGFwcGxpZWRcbiAgICAgKi9cbiAgICBidWlsZENvbXBvbmVudENzc0NsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICdmZC1udW1lcmljLWNvbnRlbnQnLFxuICAgICAgICAgICAgdGhpcy5zaXplID8gJ2ZkLW51bWVyaWMtY29udGVudC0tJyArIHRoaXMuc2l6ZSA6ICcnLFxuICAgICAgICAgICAgdGhpcy5jbGFzcyxcbiAgICAgICAgICAgIHRoaXMuX2lzU21hbGxUaWxlKCkgPyAnZmQtbnVtZXJpYy1jb250ZW50LS1zbWFsbC10aWxlJyA6ICcnXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBlbGVtZW50UmVmKCk6IEVsZW1lbnRSZWY8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaXNTbWFsbFRpbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCByZXRWYWwgPSBmYWxzZTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQgJiZcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQgJiZcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdmZC10aWxlLS1zJylcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXRWYWwgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXRWYWw7XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkLW51bWVyaWMtY29udGVudC1sYXVuY2gtaWNvbi1jb250YWluZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBOdW1lcmljQ29udGVudExhdW5jaEljb25Db250YWluZXJEaXJlY3RpdmUge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1udW1lcmljLWNvbnRlbnRfX2xhdW5jaC1pY29uLWNvbnRhaW5lcicpXG4gICAgYmFzZUNsYXNzID0gdHJ1ZTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tmZC1udW1lcmljLWNvbnRlbnQtbGF1bmNoLWljb25dJ1xufSlcbmV4cG9ydCBjbGFzcyBOdW1lcmljQ29udGVudExhdW5jaEljb25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQ3NzQ2xhc3NCdWlsZGVyIHtcbiAgICAvKiogQXBwbHkgdXNlciBjdXN0b20gc3R5bGVzICovXG4gICAgQElucHV0KClcbiAgICBjbGFzczogc3RyaW5nO1xuXG4gICAgLyoqIEdseXBoICovXG4gICAgQElucHV0KClcbiAgICBnbHlwaDogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgIH1cblxuICAgIEBhcHBseUNzc0NsYXNzXG4gICAgLyoqIENzc0NsYXNzQnVpbGRlciBpbnRlcmZhY2UgaW1wbGVtZW50YXRpb25cbiAgICAgKiBmdW5jdGlvbiBtdXN0IHJldHVybiBzaW5nbGUgc3RyaW5nXG4gICAgICogZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIG9yZGVyIHdoaWNoIGNzcyBjbGFzc2VzIGFyZSBhcHBsaWVkXG4gICAgICovXG4gICAgYnVpbGRDb21wb25lbnRDc3NDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBbJ2ZkLW51bWVyaWMtY29udGVudF9fbGF1bmNoLWljb24nLCB0aGlzLmdseXBoID8gJ3NhcC1pY29uLS0nICsgdGhpcy5nbHlwaCA6ICcnLCB0aGlzLmNsYXNzXTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGVsZW1lbnRSZWYoKTogRWxlbWVudFJlZjxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWY7XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkLW51bWVyaWMtY29udGVudC1rcGktY29udGFpbmVyXSdcbn0pXG5leHBvcnQgY2xhc3MgTnVtZXJpY0NvbnRlbnRLcGlDb250YWluZXJEaXJlY3RpdmUge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1udW1lcmljLWNvbnRlbnRfX2twaS1jb250YWluZXInKVxuICAgIGJhc2VDbGFzcyA9IHRydWU7XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmQtbnVtZXJpYy1jb250ZW50LWtwaV0nXG59KVxuZXhwb3J0IGNsYXNzIE51bWVyaWNDb250ZW50S3BpRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIENzc0NsYXNzQnVpbGRlciB7XG4gICAgLyoqIFN0YXRlIG9mIHRoZSBLUEkuIE9wdGlvbnMgYXJlIG5ldXRyYWwgKGRlZmF1bHQpLCAncG9zaXRpdmUnLCAnbmVnYXRpdmUnLCAnY3JpdGljYWwnLCBhbmQgJ2luZm9ybWF0aXZlJy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHN0YXRlPzogTnVtZXJpY0NvbnRlbnRTdGF0ZSB8IG51bGw7XG5cbiAgICAvKiogQXBwbHkgdXNlciBjdXN0b20gc3R5bGVzICovXG4gICAgQElucHV0KClcbiAgICBjbGFzczogc3RyaW5nO1xuXG4gICAgLyoqIEdseXBoICovXG4gICAgQElucHV0KClcbiAgICBnbHlwaDogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgIH1cblxuICAgIEBhcHBseUNzc0NsYXNzXG4gICAgLyoqIENzc0NsYXNzQnVpbGRlciBpbnRlcmZhY2UgaW1wbGVtZW50YXRpb25cbiAgICAgKiBmdW5jdGlvbiBtdXN0IHJldHVybiBzaW5nbGUgc3RyaW5nXG4gICAgICogZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIG9yZGVyIHdoaWNoIGNzcyBjbGFzc2VzIGFyZSBhcHBsaWVkXG4gICAgICovXG4gICAgYnVpbGRDb21wb25lbnRDc3NDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBbJ2ZkLW51bWVyaWMtY29udGVudF9fa3BpJywgdGhpcy5zdGF0ZSA/ICdmZC1udW1lcmljLWNvbnRlbnRfX2twaS0tJyArIHRoaXMuc3RhdGUgOiAnJywgdGhpcy5jbGFzc107XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBlbGVtZW50UmVmKCk6IEVsZW1lbnRSZWY8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tmZC1udW1lcmljLWNvbnRlbnQtc2NhbGUtY29udGFpbmVyXSdcbn0pXG5leHBvcnQgY2xhc3MgTnVtZXJpY0NvbnRlbnRTY2FsZUNvbnRhaW5lckRpcmVjdGl2ZSB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLW51bWVyaWMtY29udGVudF9fc2NhbGUtY29udGFpbmVyJylcbiAgICBiYXNlQ2xhc3MgPSB0cnVlO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkLW51bWVyaWMtY29udGVudC1zY2FsZS1hcnJvd10nXG59KVxuZXhwb3J0IGNsYXNzIE51bWVyaWNDb250ZW50U2NhbGVBcnJvd0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBDc3NDbGFzc0J1aWxkZXIge1xuICAgIC8qKiBBcHBseSB1c2VyIGN1c3RvbSBzdHlsZXMgKi9cbiAgICBASW5wdXQoKVxuICAgIGNsYXNzOiBzdHJpbmc7XG5cbiAgICAvKiogR2x5cGggKi9cbiAgICBASW5wdXQoKVxuICAgIGdseXBoOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgfVxuXG4gICAgQGFwcGx5Q3NzQ2xhc3NcbiAgICAvKiogQ3NzQ2xhc3NCdWlsZGVyIGludGVyZmFjZSBpbXBsZW1lbnRhdGlvblxuICAgICAqIGZ1bmN0aW9uIG11c3QgcmV0dXJuIHNpbmdsZSBzdHJpbmdcbiAgICAgKiBmdW5jdGlvbiBpcyByZXNwb25zaWJsZSBmb3Igb3JkZXIgd2hpY2ggY3NzIGNsYXNzZXMgYXJlIGFwcGxpZWRcbiAgICAgKi9cbiAgICBidWlsZENvbXBvbmVudENzc0NsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIFsnZmQtbnVtZXJpYy1jb250ZW50X19zY2FsZS1hcnJvdycsIHRoaXMuZ2x5cGggPyAnc2FwLWljb24tLScgKyB0aGlzLmdseXBoIDogJycsIHRoaXMuY2xhc3NdO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZWxlbWVudFJlZigpOiBFbGVtZW50UmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZjtcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmQtbnVtZXJpYy1jb250ZW50LXNjYWxlXSdcbn0pXG5leHBvcnQgY2xhc3MgTnVtZXJpY0NvbnRlbnRTY2FsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBDc3NDbGFzc0J1aWxkZXIge1xuICAgIC8qKiBTdGF0ZSBvZiB0aGUgU0NBTEUuIE9wdGlvbnMgYXJlIG5ldXRyYWwgKGRlZmF1bHQpLCAncG9zaXRpdmUnLCAnbmVnYXRpdmUnLCAnY3JpdGljYWwnLCBhbmQgJ2luZm9ybWF0aXZlJy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHN0YXRlPzogTnVtZXJpY0NvbnRlbnRTdGF0ZSB8IG51bGw7XG5cbiAgICAvKiogQXBwbHkgdXNlciBjdXN0b20gc3R5bGVzICovXG4gICAgQElucHV0KClcbiAgICBjbGFzczogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgIH1cblxuICAgIEBhcHBseUNzc0NsYXNzXG4gICAgLyoqIENzc0NsYXNzQnVpbGRlciBpbnRlcmZhY2UgaW1wbGVtZW50YXRpb25cbiAgICAgKiBmdW5jdGlvbiBtdXN0IHJldHVybiBzaW5nbGUgc3RyaW5nXG4gICAgICogZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIG9yZGVyIHdoaWNoIGNzcyBjbGFzc2VzIGFyZSBhcHBsaWVkXG4gICAgICovXG4gICAgYnVpbGRDb21wb25lbnRDc3NDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBbJ2ZkLW51bWVyaWMtY29udGVudF9fc2NhbGUnLCB0aGlzLnN0YXRlID8gJ2ZkLW51bWVyaWMtY29udGVudF9fc2NhbGUtLScgKyB0aGlzLnN0YXRlIDogJycsIHRoaXMuY2xhc3NdO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZWxlbWVudFJlZigpOiBFbGVtZW50UmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZjtcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmQtbnVtZXJpYy1jb250ZW50LXNjYWxlLXRleHRdJ1xufSlcbmV4cG9ydCBjbGFzcyBOdW1lcmljQ29udGVudFNjYWxlVGV4dERpcmVjdGl2ZSB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLW51bWVyaWMtY29udGVudF9fc2NhbGUtdGV4dCcpXG4gICAgYmFzZUNsYXNzID0gdHJ1ZTtcbn1cbiJdfQ==
@@ -47,15 +47,11 @@ export class TimeColumnComponent {
47
47
  this._isDragging = false;
48
48
  /** @hidden */
49
49
  this._viewInit$ = new BehaviorSubject(false);
50
+ this._resize$ = new BehaviorSubject(false);
50
51
  /** @hidden */
51
52
  this._subscriptions = new Subscription();
52
- this._subscriptions.add(combineLatest([
53
- this._viewInit$,
54
- this._elementsAtOnce$,
55
- this._offset$,
56
- resizeObservable(this._elmRef.nativeElement)
57
- ])
58
- .pipe(filter(([viewInit]) => viewInit), tap(([, elementsAtOnce, offset, size]) => {
53
+ this._subscriptions.add(combineLatest([this._viewInit$, this._elementsAtOnce$, this._offset$, this._resize$])
54
+ .pipe(filter(([viewInit]) => viewInit), tap(([, elementsAtOnce, offset]) => {
59
55
  const averageHeight = this.items.toArray().reduce((acc, next) => acc + next.getHeight(), 0) / this.items.length;
60
56
  this.wrapperHeight = averageHeight * elementsAtOnce;
61
57
  const visibleButNotSelectedElements = Math.floor(elementsAtOnce / 2);
@@ -127,6 +123,9 @@ export class TimeColumnComponent {
127
123
  }
128
124
  /** @hidden */
129
125
  ngAfterViewInit() {
126
+ this._subscriptions.add(resizeObservable(this._elmRef.nativeElement).subscribe(() => {
127
+ this._resize$.next(true);
128
+ }));
130
129
  this._viewInit$.next(true);
131
130
  }
132
131
  /** @hidden */
@@ -376,4 +375,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
376
375
  type: HostListener,
377
376
  args: ['keydown', ['$event']]
378
377
  }] } });
379
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdGltZS90aW1lLWNvbHVtbi90aW1lLWNvbHVtbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90aW1lL3RpbWUtY29sdW1uL3RpbWUtY29sdW1uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXBFLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RSxPQUFPLEVBQWtCLGlCQUFpQixFQUFFLHFCQUFxQixFQUFnQixNQUFNLGdDQUFnQyxDQUFDOzs7OztBQUt4SCxJQUFJLGtCQUFrQixHQUFHLENBQUMsQ0FBQztBQWlCM0IsTUFBTSxPQUFPLG1CQUFtQjtJQXFKNUIsY0FBYztJQUNkLFlBQW9CLGFBQWdDLEVBQVUsT0FBbUI7UUFBN0Qsa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQVUsWUFBTyxH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dUJBQUMsaUJBQWlCO2dCQUs1QixLQUFLO3NCQURKLFlBQVk7dUJBQUMscUJBQXFCO2dCQUtuQyxTQUFTO3NCQURSLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkEwRzVDLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxPQUFPO2dCQU9yQixjQUFjO3NCQURiLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgYnVmZmVyLCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBET1dOX0FSUk9XLCBTUEFDRSwgVVBfQVJST1cgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuXG5pbXBvcnQgeyBLZXlVdGlsLCByZXNpemVPYnNlcnZhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IENhcm91c2VsQ29uZmlnLCBDYXJvdXNlbERpcmVjdGl2ZSwgQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlLCBQYW5FbmRPdXRwdXQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY2Fyb3VzZWwnO1xuXG5pbXBvcnQgeyBUaW1lQ29sdW1uQ29uZmlnIH0gZnJvbSAnLi90aW1lLWNvbHVtbi1jb25maWcnO1xuaW1wb3J0IHsgU2VsZWN0YWJsZVZpZXdJdGVtIH0gZnJvbSAnLi4vbW9kZWxzJztcblxubGV0IHRpbWVDb2x1bW5VbmlxdWVJZCA9IDA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGltZUNvbHVtbkl0ZW1PdXRwdXQ8VD4ge1xuICAgIHZhbHVlOiBUO1xuICAgIGFmdGVyPzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC10aW1lLWNvbHVtbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtY29sdW1uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90aW1lLWNvbHVtbi5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkLXRpbWVfX2NvbCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFRpbWVDb2x1bW5Db21wb25lbnQ8SywgVCBleHRlbmRzIFNlbGVjdGFibGVWaWV3SXRlbTxLPiA9IFNlbGVjdGFibGVWaWV3SXRlbTxLPj5cbiAgICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdCwgT25EZXN0cm95XG57XG4gICAgLyoqIGl0ZW1zIGluIHJvdyAqL1xuICAgIEBJbnB1dCgpXG4gICAgcm93czogVFtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBASW5wdXQgV2hlbiBzZXQgdG8gZmFsc2UsIGhpZGVzIHRoZSBidXR0b25zIHRoYXQgaW5jcmVtZW50XG4gICAgICogYW5kIGRlY3JlbWVudCB0aGUgY29ycmVzcG9uZGluZyBjb2x1bW5zLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3Bpbm5lcnMgPSB0cnVlO1xuXG4gICAgLyoqIEN1cnJlbnRseSBjaG9zZW4sIGNlbnRlcmVkIHRpbWUgY29sdW1uIGl0ZW0gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBhY3RpdmVWYWx1ZShhY3RpdmVJdGVtOiBUIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICghYWN0aXZlSXRlbSkge1xuICAgICAgICAgICAgLy8gb21pdHRpbmcgXCJudWxsXCIgYW5kIFwidW5kZWZpbmVkXCJcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fdmlld0luaXQkLnZhbHVlICYmIHRoaXMuX2FjdGl2ZVZhbHVlICE9PSBhY3RpdmVJdGVtKSB7XG4gICAgICAgICAgICB0aGlzLl9waWNrVGltZSh0aGlzLl9nZXRJdGVtKGFjdGl2ZUl0ZW0pLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fYWN0aXZlVmFsdWUgPSBhY3RpdmVJdGVtO1xuICAgIH1cblxuICAgIGdldCBhY3RpdmVWYWx1ZSgpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVZhbHVlO1xuICAgIH1cblxuICAgIC8qKiBEZWZpbmVzIGlmIGNvbHVtbiBpcyBhY3RpdmUsIGl0IGhhcyBpbXBhY3Qgb24gYmVoYXZpb3IgYW5kIHZpc3VhbCAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBhY3RpdmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlID0gdmFsdWU7XG4gICAgICAgIGlmICh2YWx1ZSAmJiB0aGlzLl92aWV3SW5pdCQudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLl9waWNrVGltZSh0aGlzLl9nZXRJdGVtKHRoaXMuYWN0aXZlVmFsdWUpLCBmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLl9mb2N1c0luZGljYXRvcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGFjdGl2ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2ZTtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aW1lIGNvbHVtbiBpcyBtZXJpZGlhbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC10aW1lX19jb2wtLXBlcmlvZCcpXG4gICAgbWVyaWRpYW4gPSBmYWxzZTtcblxuICAgIC8qKiBJZCBvZiBjb2x1bW4sIGluaXRpYXRlZCB3aXRoIHNvbWUgZGVmYXVsdCB2YWx1ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWQ6IHN0cmluZyA9ICdmZC10aW1lLWNvbHVtbi0nICsgdGltZUNvbHVtblVuaXF1ZUlkKys7XG5cbiAgICAvKiogSTE4biBhbmQgbGFiZWxzICovXG4gICAgQElucHV0KClcbiAgICB0aW1lQ29uZmlnOiBUaW1lQ29sdW1uQ29uZmlnO1xuXG4gICAgLyoqXG4gICAgICogT2Zmc2V0IGZvciBjYXJvdXNlbCBkaXJlY3RpdmUsIGFjdGl2ZSBpdGVtIGlzIGFsd2F5cyB0aGUgZmlyc3Qgb25lLlxuICAgICAqIEluIGNhc2Ugb2YgaGF2aW5nIG1vcmUgaXRlbXMgaW4gY2Fyb3VzZWwgdGhhbiAxLCBtaWRkbGUgZWxlbWVudCBzaG91bGQgYmUgYWN0aXZlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBnZXQgb2Zmc2V0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vZmZzZXQkLnZhbHVlO1xuICAgIH1cblxuICAgIHNldCBvZmZzZXQodmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9vZmZzZXQkLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFF1YW50aXR5IG9mIHRoZSBlbGVtZW50cyB0byBiZSBzaG93biBhdCB0aGUgc2FtZSB0aW1lIGluIGNvbHVtblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGVsZW1lbnRzQXRPbmNlKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fZWxlbWVudHNBdE9uY2UkLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBFdmVudCBlbWl0dGVkLCB3aGVuIGFjdGl2ZSBpdGVtIGlzIGNoYW5nZWQsIGJ5IGNhcm91c2VsICovXG4gICAgQE91dHB1dCgpXG4gICAgYWN0aXZlVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxUaW1lQ29sdW1uSXRlbU91dHB1dDxUPj4gPSBuZXcgRXZlbnRFbWl0dGVyPFRpbWVDb2x1bW5JdGVtT3V0cHV0PFQ+PigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQsIHdoZW4gY2VydGFpbiBjb2x1bW4gaXMgYWN0aXZhdGVkICovXG4gICAgQE91dHB1dCgpXG4gICAgYWN0aXZlU3RhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChDYXJvdXNlbERpcmVjdGl2ZSlcbiAgICBjYXJvdXNlbDogQ2Fyb3VzZWxEaXJlY3RpdmU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlKVxuICAgIGl0ZW1zOiBRdWVyeUxpc3Q8Q2Fyb3VzZWxJdGVtRGlyZWN0aXZlPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnaW5kaWNhdG9yJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgaW5kaWNhdG9yOiBFbGVtZW50UmVmO1xuXG4gICAgd3JhcHBlckhlaWdodDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogVGltZSB0byB3YWl0IGluIG1pbGxpc2Vjb25kcyBhZnRlciB0aGUgbGFzdCBrZXlkb3duIGJlZm9yZVxuICAgICAqIGZvY3VzaW5nIG9yIHNlbGVjdGluZyBvcHRpb24gYmFzZWQgb24gbnVtZXJpYy9hbHBoYSBrZXlzLlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICB0eXBlYWhlYWREZWJvdW5jZUludGVydmFsID0gNzUwO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25maWc6IENhcm91c2VsQ29uZmlnO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgY3VycmVudEluZGljYXRvcklkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmlkICsgJy1jdXJyZW50LWluZGljYXRvcic7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgY3VycmVudEluZGljYXRvclZhbHVlSWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudEluZGljYXRvcklkICsgJy12YWx1ZSc7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9lbGVtZW50c0F0T25jZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDcpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9vZmZzZXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgzKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYWN0aXZlID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3F1ZXJ5S2V5RG93bkV2ZW50OiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FjdGl2ZVZhbHVlOiBUO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hY3RpdmVDYXJvdXNlbEl0ZW06IENhcm91c2VsSXRlbURpcmVjdGl2ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaXNEcmFnZ2luZyA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF92aWV3SW5pdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jaGFuZ2VEZXRSZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIF9lbG1SZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICB0aGlzLl92aWV3SW5pdCQsXG4gICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudHNBdE9uY2UkLFxuICAgICAgICAgICAgICAgIHRoaXMuX29mZnNldCQsXG4gICAgICAgICAgICAgICAgcmVzaXplT2JzZXJ2YWJsZSh0aGlzLl9lbG1SZWYubmF0aXZlRWxlbWVudClcbiAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcigoW3ZpZXdJbml0XSkgPT4gdmlld0luaXQpLFxuICAgICAgICAgICAgICAgICAgICB0YXAoKFssIGVsZW1lbnRzQXRPbmNlLCBvZmZzZXQsIHNpemVdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhdmVyYWdlSGVpZ2h0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLnRvQXJyYXkoKS5yZWR1Y2UoKGFjYywgbmV4dCkgPT4gYWNjICsgbmV4dC5nZXRIZWlnaHQoKSwgMCkgLyB0aGlzLml0ZW1zLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud3JhcHBlckhlaWdodCA9IGF2ZXJhZ2VIZWlnaHQgKiBlbGVtZW50c0F0T25jZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZpc2libGVCdXROb3RTZWxlY3RlZEVsZW1lbnRzID0gTWF0aC5mbG9vcihlbGVtZW50c0F0T25jZSAvIDIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9mZnNldCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMuZmlyc3QuZWxlbWVudC5zdHlsZS5tYXJnaW5Ub3AgPSBgJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJsZUJ1dE5vdFNlbGVjdGVkRWxlbWVudHMgKiBhdmVyYWdlSGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfXB4YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLmxhc3QuZWxlbWVudC5zdHlsZS5tYXJnaW5Cb3R0b20gPSBgJHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJsZUJ1dE5vdFNlbGVjdGVkRWxlbWVudHMgKiBhdmVyYWdlSGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfXB4YDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZlVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9waWNrVGltZSh0aGlzLl9nZXRJdGVtKHRoaXMuYWN0aXZlVmFsdWUpLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKHRoaXMuX2VsZW1lbnRzQXRPbmNlJC5waXBlKHRhcCgoKSA9PiB0aGlzLl9zZXRVcENhcm91c2VsQ29uZmlndXJhdGlvbigpKSkuc3Vic2NyaWJlKCkpO1xuICAgICAgICB0aGlzLl9zZXRVcFF1ZXJ5U3Vic2NyaXB0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ZpZXdJbml0JC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgICBvbkl0ZW1DbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmVTdGF0ZUNoYW5nZS5lbWl0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBrZXlEb3duSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIERPV05fQVJST1cpKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbERvd24oKTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH0gZWxzZSBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFVQX0FSUk9XKSkge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxVcCgpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfSBlbHNlIGlmIChLZXlVdGlsLmlzS2V5VHlwZShldmVudCwgJ251bWVyaWMnKSB8fCBLZXlVdGlsLmlzS2V5VHlwZShldmVudCwgJ2FscGhhYmV0aWNhbCcpKSB7XG4gICAgICAgICAgICB0aGlzLl9xdWVyeUtleURvd25FdmVudC5uZXh0KGV2ZW50LmtleSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNwaW5uZXJCdXR0b25LZXl1cEhhbmRsZShldmVudDogS2V5Ym9hcmRFdmVudCwgdXBCdXR0b24/OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgU1BBQ0UpKSB7XG4gICAgICAgICAgICBpZiAodXBCdXR0b24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFVwKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsRG93bigpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldFZhbHVlT2ZBY3RpdmUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9hY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldFVwSW5pdGlhbFZhbHVlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogSXQgcHJldmVudHMgZnJvbSBhY2NpZGVudGFsbHkgY2hhbmdlIHRoZSBpdGVtIGJ5IGNsaWNrIGV2ZW50ICovXG4gICAgaGFuZGxlRHJhZyhpc0RyYWdnaW5nOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lzRHJhZ2dpbmcgPSBpc0RyYWdnaW5nO1xuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdGhhdCBoYW5kbGVzIGFjdGl2ZSBpdGVtIGNoYW5nZSAqL1xuICAgIGFjdGl2ZUNoYW5nZWRIYW5kbGUob3V0cHV0OiBQYW5FbmRPdXRwdXQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYXJyYXkgPSB0aGlzLml0ZW1zLnRvQXJyYXkoKTtcbiAgICAgICAgbGV0IGluZGV4OiBudW1iZXIgPSBhcnJheS5maW5kSW5kZXgoKF9faXRlbSkgPT4gX19pdGVtID09PSBvdXRwdXQuaXRlbSkgKyB0aGlzLm9mZnNldDtcblxuICAgICAgICBpZiAoaW5kZXggPj0gYXJyYXkubGVuZ3RoKSB7XG4gICAgICAgICAgICBpbmRleCA9IGluZGV4IC0gYXJyYXkubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgX2l0ZW0gPSBhcnJheVtpbmRleF07XG5cbiAgICAgICAgdGhpcy5fYWN0aXZlVmFsdWUgPSBfaXRlbS52YWx1ZTtcblxuICAgICAgICB0aGlzLmFjdGl2ZVZhbHVlQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgICAgdmFsdWU6IHRoaXMuX2FjdGl2ZVZhbHVlLFxuICAgICAgICAgICAgYWZ0ZXI6IG91dHB1dC5hZnRlclxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9hY3RpdmVDYXJvdXNlbEl0ZW0gPSBfaXRlbTtcbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHRoYXQgY2hhbmdlcyBhY3RpdmUgaXRlbSBhbmQgdHJpZ2dlcnMgY2Fyb3VzZWwgc2Nyb2xsICovXG4gICAgcGljayhpdGVtOiBDYXJvdXNlbEl0ZW1EaXJlY3RpdmUsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4OiBudW1iZXIgPSB0aGlzLml0ZW1zLnRvQXJyYXkoKS5maW5kSW5kZXgoKF9pdGVtKSA9PiBfaXRlbSA9PT0gdGhpcy5fYWN0aXZlQ2Fyb3VzZWxJdGVtKTtcbiAgICAgICAgLyoqIFRvIHByZXZlbnQgZnJvbSBzd2l0Y2hpbmcgdGltZSwgd2hlbiBpdCdzIGJlaW5nIGRyYWdnZWQgKi9cbiAgICAgICAgaWYgKCF0aGlzLl9pc0RyYWdnaW5nKSB7XG4gICAgICAgICAgICB0aGlzLl9waWNrVGltZShpdGVtLCB0cnVlLCB0cnVlLCBjdXJyZW50SW5kZXggPCBpbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHRyaWdnZXJlZCBieSBrZXlib2FyZCwgb3IgaW5jcmVtZW50IGJ1dHRvbiAqL1xuICAgIHNjcm9sbFVwKGV2ZW50PzogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICAvKiogS2V5Ym9hcmQgZXZlbnRzIGluIHJlYWN0aXZlIGZvcm1zLCBzaG91bGRuJ3QgdHJpZ2dlciB0aGlzIG1ldGhvZCAqL1xuICAgICAgICBpZiAoZXZlbnQgJiYgIWV2ZW50LmNsaWVudFgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgaW5kZXg6IG51bWJlciA9IHRoaXMuaXRlbXMudG9BcnJheSgpLmZpbmRJbmRleCgoX2l0ZW0pID0+IF9pdGVtID09PSB0aGlzLl9hY3RpdmVDYXJvdXNlbEl0ZW0pO1xuICAgICAgICBpZiAoaW5kZXggPiAwKSB7XG4gICAgICAgICAgICBpbmRleC0tO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaW5kZXggPSB0aGlzLnJvd3MubGVuZ3RoIC0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3BpY2tUaW1lKHRoaXMuaXRlbXMudG9BcnJheSgpW2luZGV4XSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UpO1xuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdHJpZ2dlcmVkIGJ5IGtleWJvYXJkLCBvciBkZWNyZW1lbnQgYnV0dG9uICovXG4gICAgc2Nyb2xsRG93bigpOiB2b2lkIHtcbiAgICAgICAgbGV0IGluZGV4OiBudW1iZXIgPSB0aGlzLml0ZW1zLnRvQXJyYXkoKS5maW5kSW5kZXgoKF9pdGVtKSA9PiBfaXRlbSA9PT0gdGhpcy5fYWN0aXZlQ2Fyb3VzZWxJdGVtKTtcbiAgICAgICAgaWYgKGluZGV4IDwgdGhpcy5yb3dzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpbmRleCA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9waWNrVGltZSh0aGlzLml0ZW1zLnRvQXJyYXkoKVtpbmRleF0sIHRydWUsIHRydWUsIHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBGb2N1cyBvbiBjb2x1bW4gKi9cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbmRpY2F0b3I/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgaWQgZm9yIGNvbHVtbiBpdGVtXG4gICAgICogQHBhcmFtIGluZGV4IGNvbHVtbiBpdGVtIGluZGV4XG4gICAgICogQHJldHVybnMgY29sdW1uIGl0ZW0gaWRcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX2NyZWF0ZUNvbHVtbkl0ZW1JZEJ5SW5kZXgoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmlkICsgaW5kZXg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT24gZm9jdXMgY2FsbGJhY2tcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX29uRm9jdXNJbmRpY2F0b3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlU3RhdGVDaGFuZ2UuZW1pdCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0cmlnZ2VyZWQgYnkga2V5Ym9hcmQsIG9yIGRlY3JlbWVudCBidXR0b25cbiAgICAgKiBBcmdzOlxuICAgICAqIGl0ZW0gPT4gcGlja2VkIGNhcm91c2VsIGl0ZW0sIHRoYXQgc2hvdWxkIGJlIGNlbnRlcmVkXG4gICAgICogc21vb3RoID0+IGRlZmluZXMgaWYgdHJhbnNpdGlvbiB0aW1lIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0cmFuc2Zvcm1cbiAgICAgKiBlbWl0RXZlbnQgPT4gZGVmaW5lcyBpZiBFdmVudEVtaXR0ZXIgc2hvdWxkIGJlIHRyaWdnZXJlZCBieSB0aGlzIGNoYW5nZSwgc2V0IHRvIGZhbHNlLCB3aGVuIGNoYW5nZWQgZnJvbSBvdXRzaWRlXG4gICAgICogYWZ0ZXIgPT4gRGVmaW5lcyBpZiB2YWx1ZSB3YXMgaW5jcmVtZW50ZWQvZGVjcmVtZW50ZWQsIG5lZWRlZCBmb3IgaG91cnMgdG8gdHJpZ2dlciBBTS9QTSBjaGFuZ2VcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfcGlja1RpbWUoaXRlbT86IENhcm91c2VsSXRlbURpcmVjdGl2ZSwgc21vb3RoPzogYm9vbGVhbiwgZW1pdEV2ZW50PzogYm9vbGVhbiwgYWZ0ZXI/OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghaXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLl90cmlnZ2VyQ2Fyb3VzZWwoaXRlbSwgc21vb3RoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2FjdGl2ZUNhcm91c2VsSXRlbSA9IGl0ZW07XG4gICAgICAgIHRoaXMuX2FjdGl2ZVZhbHVlID0gaXRlbS52YWx1ZTtcblxuICAgICAgICBpZiAoZW1pdEV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVZhbHVlQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgICAgIGFmdGVyXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgaXRlbSB3aXRoIHBhc3NlZCB2YWx1ZVxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZXRJdGVtKF9pdGVtOiBUKTogQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZCgoaXRlbSkgPT4gaXRlbS52YWx1ZSA9PT0gX2l0ZW0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdHJpZ2dlckNhcm91c2VsKGl0ZW06IENhcm91c2VsSXRlbURpcmVjdGl2ZSwgc21vb3RoPzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBjb25zdCBhcnJheSA9IHRoaXMuaXRlbXMudG9BcnJheSgpO1xuICAgICAgICBsZXQgaW5kZXg6IG51bWJlciA9IGFycmF5LmZpbmRJbmRleCgoX2l0ZW0pID0+IF9pdGVtID09PSBpdGVtKSAtIHRoaXMub2Zmc2V0O1xuXG4gICAgICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgICAgICAgIGluZGV4ID0gYXJyYXkubGVuZ3RoICsgaW5kZXg7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNhcm91c2VsLmdvVG9JdGVtKGFycmF5W2luZGV4XSwgc21vb3RoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGb2N1cyBjdXJyZW50IGluZGljYXRvciwgd2hpY2ggYWxsb3dzIHRvIGhhbmRsZSBrZXlkb3duIGV2ZW50cyBpbnNpZGUgY29sdW1uXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX2ZvY3VzSW5kaWNhdG9yKCk6IHZvaWQge1xuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmN1cnJlbnRJbmRpY2F0b3JJZCk/LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRWYWx1ZSh2YWx1ZTogc3RyaW5nKTogYW55IHtcbiAgICAgICAgaWYgKCFpc05hTihOdW1iZXIodmFsdWUpKSkge1xuICAgICAgICAgICAgcmV0dXJuIE51bWJlcih2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldFVwUXVlcnlTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRyaWdnZXIgPSB0aGlzLl9xdWVyeUtleURvd25FdmVudC5waXBlKGRlYm91bmNlVGltZSh0aGlzLnR5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWwpKTtcblxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIHRoaXMuX3F1ZXJ5S2V5RG93bkV2ZW50XG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGJ1ZmZlcih0cmlnZ2VyKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKChrZXlzKSA9PiBrZXlzLmpvaW4oJycpKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKCh2YWx1ZSkgPT4gdGhpcy5fZ2V0VmFsdWUodmFsdWUpKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKCh2YWx1ZSkgPT4gdGhpcy5fZ2V0SXRlbSh2YWx1ZSkpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGl0ZW0pID0+IHRoaXMuX3BpY2tUaW1lKGl0ZW0sIGZhbHNlLCB0cnVlKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldFVwQ2Fyb3VzZWxDb25maWd1cmF0aW9uKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb25maWc6IENhcm91c2VsQ29uZmlnID0ge1xuICAgICAgICAgICAgZ2VzdHVyZVN1cHBvcnQ6IHRydWUsXG4gICAgICAgICAgICB2ZXJ0aWNhbDogdHJ1ZSxcbiAgICAgICAgICAgIGVsZW1lbnRzQXRPbmNlOiB0aGlzLl9lbGVtZW50c0F0T25jZSQudmFsdWUsXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAnMTUwbXMnXG4gICAgICAgIH07XG4gICAgICAgIGlmICghdGhpcy5tZXJpZGlhbikge1xuICAgICAgICAgICAgY29uZmlnLmluZmluaXRlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldFVwSW5pdGlhbFZhbHVlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2FjdGl2ZVZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9hY3RpdmVWYWx1ZSA9IHRoaXMuaXRlbXMuZmlyc3QudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcGlja1RpbWUodGhpcy5fZ2V0SXRlbSh0aGlzLl9hY3RpdmVWYWx1ZSksIGZhbHNlKTtcbiAgICB9XG59XG4iLCI8bGFiZWwgY2xhc3M9XCJmZC10aW1lX19zbGlkZXItbGFiZWxcIj57eyB0aW1lQ29uZmlnPy5sYWJlbCB9fTwvbGFiZWw+XG48YnV0dG9uXG4gICAgKm5nSWY9XCJhY3RpdmUgJiYgc3Bpbm5lcnNcIlxuICAgIGZkLWJ1dHRvblxuICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICBnbHlwaD1cIm5hdmlnYXRpb24tdXAtYXJyb3dcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICAgIFt0aXRsZV09XCJ0aW1lQ29uZmlnPy5kZWNyZWFzZUxhYmVsXCJcbiAgICBbYXJpYUxhYmVsXT1cInRpbWVDb25maWc/LmRlY3JlYXNlTGFiZWxcIlxuICAgIChrZXl1cCk9XCJzcGlubmVyQnV0dG9uS2V5dXBIYW5kbGUoJGV2ZW50LCB0cnVlKVwiXG4gICAgKGNsaWNrKT1cInNjcm9sbFVwKCRldmVudClcIlxuPjwvYnV0dG9uPlxuPGRpdlxuICAgIGNsYXNzPVwiZmQtdGltZV9fd3JhcHBlclwiXG4gICAgW2NsYXNzLmZkLXRpbWVfX3dyYXBwZXItLWFjdGl2ZV09XCJhY3RpdmVcIlxuICAgIFtjbGFzcy5mZC10aW1lX193cmFwcGVyLS1tZXJpZGlhbl09XCJtZXJpZGlhblwiXG4gICAgW3N0eWxlLmhlaWdodC5weF09XCJhY3RpdmUgPyB3cmFwcGVySGVpZ2h0IDogJydcIlxuPlxuICAgIDx1bFxuICAgICAgICBjbGFzcz1cImZkLXRpbWVfX2xpc3RcIlxuICAgICAgICBbY2xhc3MuZmQtdGltZS1jb2x1bW4tY3VzdG9tLWhpZGRlbl09XCIhYWN0aXZlXCJcbiAgICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgICAgICAoY2xpY2spPVwiaW5kaWNhdG9yLmZvY3VzKClcIlxuICAgICAgICAoYWN0aXZlQ2hhbmdlKT1cImFjdGl2ZUNoYW5nZWRIYW5kbGUoJGV2ZW50KVwiXG4gICAgICAgIChkcmFnU3RhdGVDaGFuZ2UpPVwiaGFuZGxlRHJhZygkZXZlbnQpXCJcbiAgICAgICAgZmRDYXJvdXNlbFxuICAgID5cbiAgICAgICAgPGxpXG4gICAgICAgICAgICBjbGFzcz1cImZkLXRpbWVfX2l0ZW1cIlxuICAgICAgICAgICAgZmRDYXJvdXNlbEl0ZW1cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCByb3cgb2Ygcm93czsgbGV0IGluZGV4ID0gaW5kZXhcIlxuICAgICAgICAgICAgI2l0ZW09XCJmZENhcm91c2VsSXRlbVwiXG4gICAgICAgICAgICBbaWRdPVwiX2NyZWF0ZUNvbHVtbkl0ZW1JZEJ5SW5kZXgoaW5kZXgpXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtZGlzcGxheWVkLXZhbHVlXT1cInJvdy52YWx1ZVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwicm93XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC10aW1lX191bml0XCIgcm9sZT1cImJ1dHRvblwiIFthdHRyLmFyaWEtbGFiZWxdPVwicm93LmxhYmVsXCIgKGNsaWNrKT1cInBpY2soaXRlbSwgaW5kZXgpXCI+XG4gICAgICAgICAgICAgICAge3sgcm93LmxhYmVsIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmQtdGltZV9fY3VycmVudC1pbmRpY2F0b3JcIlxuICAgICAgICAjaW5kaWNhdG9yXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgICAgW2F0dHIuaWRdPVwiY3VycmVudEluZGljYXRvcklkXCJcbiAgICAgICAgW2NsYXNzLmZkLXRpbWUtY29sdW1uLWN1c3RvbS1oaWRkZW5dPVwiIWFjdGl2ZVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJjdXJyZW50SW5kaWNhdG9yVmFsdWVJZFwiXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpcHRpb25dPVwidGltZUNvbmZpZz8ubmF2aWdhdGlvbkluc3RydWN0aW9uXCJcbiAgICAgICAgKGZvY3VzKT1cIl9vbkZvY3VzSW5kaWNhdG9yKClcIlxuICAgID5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwiZmQtdGltZS1jb2x1bW4tY3VzdG9tLWhpZGRlblwiXG4gICAgICAgICAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIlxuICAgICAgICAgICAgYXJpYS1hdG9taWM9XCJ0cnVlXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cIiFhY3RpdmVcIlxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiY3VycmVudEluZGljYXRvclZhbHVlSWRcIlxuICAgICAgICAgICAgW2NsYXNzLmZkLXRpbWUtY29sdW1uLWN1c3RvbS1oaWRkZW5dPVwiYWN0aXZlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgYWN0aXZlVmFsdWU/LmxhYmVsIH19IHt7IHRpbWVDb25maWc/LmxhYmVsIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8c3BhbiAqbmdJZj1cIiFhY3RpdmVcIiBjbGFzcz1cImZkLXRpbWVfX2l0ZW0gZmQtdGltZV9faXRlbS0tY29sbGFwc2VkXCI+XG4gICAgICAgIHt7IGFjdGl2ZVZhbHVlPy5sYWJlbCB9fVxuICAgIDwvc3Bhbj5cbjwvZGl2PlxuPGJ1dHRvblxuICAgICpuZ0lmPVwiYWN0aXZlICYmIHNwaW5uZXJzXCJcbiAgICBmZC1idXR0b25cbiAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgZ2x5cGg9XCJuYXZpZ2F0aW9uLWRvd24tYXJyb3dcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICAgIFt0aXRsZV09XCJ0aW1lQ29uZmlnPy5pbmNyZWFzZUxhYmVsXCJcbiAgICBbYXJpYUxhYmVsXT1cInRpbWVDb25maWc/LmluY3JlYXNlTGFiZWxcIlxuICAgIChrZXl1cCk9XCJzcGlubmVyQnV0dG9uS2V5dXBIYW5kbGUoJGV2ZW50KVwiXG4gICAgKGNsaWNrKT1cInNjcm9sbERvd24oKVwiXG4+PC9idXR0b24+XG4iXX0=
378
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdGltZS90aW1lLWNvbHVtbi90aW1lLWNvbHVtbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90aW1lL3RpbWUtY29sdW1uL3RpbWUtY29sdW1uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXBFLE9BQU8sRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RSxPQUFPLEVBQWtCLGlCQUFpQixFQUFFLHFCQUFxQixFQUFnQixNQUFNLGdDQUFnQyxDQUFDOzs7OztBQUt4SCxJQUFJLGtCQUFrQixHQUFHLENBQUMsQ0FBQztBQWlCM0IsTUFBTSxPQUFPLG1CQUFtQjtJQXVKNUIsY0FBYztJQUNkLFlBQW9CLGFBQWdDLEVBQVUsT0FBbUI7UUFBN0Qsa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQVUsWUFBTyxH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OztzQkFDTCxXQUFXO3VCQUFDLDRCQUE0QjtnQkFLekMsRUFBRTtzQkFERCxLQUFLO2dCQUtOLFVBQVU7c0JBRFQsS0FBSztnQkFRRixNQUFNO3NCQURULEtBQUs7Z0JBYUYsY0FBYztzQkFEakIsS0FBSztnQkFPTixpQkFBaUI7c0JBRGhCLE1BQU07Z0JBS1AsaUJBQWlCO3NCQURoQixNQUFNO2dCQUtQLFFBQVE7c0JBRFAsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBSzVCLEtBQUs7c0JBREosWUFBWTt1QkFBQyxxQkFBcUI7Z0JBS25DLFNBQVM7c0JBRFIsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQTRHNUMsV0FBVztzQkFEVixZQUFZO3VCQUFDLE9BQU87Z0JBT3JCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBidWZmZXIsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERPV05fQVJST1csIFNQQUNFLCBVUF9BUlJPVyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5cbmltcG9ydCB7IEtleVV0aWwsIHJlc2l6ZU9ic2VydmFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgQ2Fyb3VzZWxDb25maWcsIENhcm91c2VsRGlyZWN0aXZlLCBDYXJvdXNlbEl0ZW1EaXJlY3RpdmUsIFBhbkVuZE91dHB1dCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jYXJvdXNlbCc7XG5cbmltcG9ydCB7IFRpbWVDb2x1bW5Db25maWcgfSBmcm9tICcuL3RpbWUtY29sdW1uLWNvbmZpZyc7XG5pbXBvcnQgeyBTZWxlY3RhYmxlVmlld0l0ZW0gfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5sZXQgdGltZUNvbHVtblVuaXF1ZUlkID0gMDtcblxuZXhwb3J0IGludGVyZmFjZSBUaW1lQ29sdW1uSXRlbU91dHB1dDxUPiB7XG4gICAgdmFsdWU6IFQ7XG4gICAgYWZ0ZXI/OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLXRpbWUtY29sdW1uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGltZS1jb2x1bW4uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3RpbWUtY29sdW1uLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZmQtdGltZV9fY29sJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgVGltZUNvbHVtbkNvbXBvbmVudDxLLCBUIGV4dGVuZHMgU2VsZWN0YWJsZVZpZXdJdGVtPEs+ID0gU2VsZWN0YWJsZVZpZXdJdGVtPEs+PlxuICAgIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgICAvKiogaXRlbXMgaW4gcm93ICovXG4gICAgQElucHV0KClcbiAgICByb3dzOiBUW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIEBJbnB1dCBXaGVuIHNldCB0byBmYWxzZSwgaGlkZXMgdGhlIGJ1dHRvbnMgdGhhdCBpbmNyZW1lbnRcbiAgICAgKiBhbmQgZGVjcmVtZW50IHRoZSBjb3JyZXNwb25kaW5nIGNvbHVtbnMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzcGlubmVycyA9IHRydWU7XG5cbiAgICAvKiogQ3VycmVudGx5IGNob3NlbiwgY2VudGVyZWQgdGltZSBjb2x1bW4gaXRlbSAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGFjdGl2ZVZhbHVlKGFjdGl2ZUl0ZW06IFQgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKCFhY3RpdmVJdGVtKSB7XG4gICAgICAgICAgICAvLyBvbWl0dGluZyBcIm51bGxcIiBhbmQgXCJ1bmRlZmluZWRcIlxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl92aWV3SW5pdCQudmFsdWUgJiYgdGhpcy5fYWN0aXZlVmFsdWUgIT09IGFjdGl2ZUl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMuX3BpY2tUaW1lKHRoaXMuX2dldEl0ZW0oYWN0aXZlSXRlbSksIGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9hY3RpdmVWYWx1ZSA9IGFjdGl2ZUl0ZW07XG4gICAgfVxuXG4gICAgZ2V0IGFjdGl2ZVZhbHVlKCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlVmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIERlZmluZXMgaWYgY29sdW1uIGlzIGFjdGl2ZSwgaXQgaGFzIGltcGFjdCBvbiBiZWhhdmlvciBhbmQgdmlzdWFsICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9hY3RpdmUgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHZhbHVlICYmIHRoaXMuX3ZpZXdJbml0JC52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0UmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIHRoaXMuX3BpY2tUaW1lKHRoaXMuX2dldEl0ZW0odGhpcy5hY3RpdmVWYWx1ZSksIGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzSW5kaWNhdG9yKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgYWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHRpbWUgY29sdW1uIGlzIG1lcmlkaWFuICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLXRpbWVfX2NvbC0tcGVyaW9kJylcbiAgICBtZXJpZGlhbiA9IGZhbHNlO1xuXG4gICAgLyoqIElkIG9mIGNvbHVtbiwgaW5pdGlhdGVkIHdpdGggc29tZSBkZWZhdWx0IHZhbHVlICovXG4gICAgQElucHV0KClcbiAgICBpZDogc3RyaW5nID0gJ2ZkLXRpbWUtY29sdW1uLScgKyB0aW1lQ29sdW1uVW5pcXVlSWQrKztcblxuICAgIC8qKiBJMThuIGFuZCBsYWJlbHMgKi9cbiAgICBASW5wdXQoKVxuICAgIHRpbWVDb25maWc6IFRpbWVDb2x1bW5Db25maWc7XG5cbiAgICAvKipcbiAgICAgKiBPZmZzZXQgZm9yIGNhcm91c2VsIGRpcmVjdGl2ZSwgYWN0aXZlIGl0ZW0gaXMgYWx3YXlzIHRoZSBmaXJzdCBvbmUuXG4gICAgICogSW4gY2FzZSBvZiBoYXZpbmcgbW9yZSBpdGVtcyBpbiBjYXJvdXNlbCB0aGFuIDEsIG1pZGRsZSBlbGVtZW50IHNob3VsZCBiZSBhY3RpdmVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdldCBvZmZzZXQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29mZnNldCQudmFsdWU7XG4gICAgfVxuXG4gICAgc2V0IG9mZnNldCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX29mZnNldCQubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUXVhbnRpdHkgb2YgdGhlIGVsZW1lbnRzIHRvIGJlIHNob3duIGF0IHRoZSBzYW1lIHRpbWUgaW4gY29sdW1uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZWxlbWVudHNBdE9uY2UodmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9lbGVtZW50c0F0T25jZSQubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQsIHdoZW4gYWN0aXZlIGl0ZW0gaXMgY2hhbmdlZCwgYnkgY2Fyb3VzZWwgKi9cbiAgICBAT3V0cHV0KClcbiAgICBhY3RpdmVWYWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPFRpbWVDb2x1bW5JdGVtT3V0cHV0PFQ+PiA9IG5ldyBFdmVudEVtaXR0ZXI8VGltZUNvbHVtbkl0ZW1PdXRwdXQ8VD4+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCwgd2hlbiBjZXJ0YWluIGNvbHVtbiBpcyBhY3RpdmF0ZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICBhY3RpdmVTdGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKENhcm91c2VsRGlyZWN0aXZlKVxuICAgIGNhcm91c2VsOiBDYXJvdXNlbERpcmVjdGl2ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZHJlbihDYXJvdXNlbEl0ZW1EaXJlY3RpdmUpXG4gICAgaXRlbXM6IFF1ZXJ5TGlzdDxDYXJvdXNlbEl0ZW1EaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdpbmRpY2F0b3InLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgICBpbmRpY2F0b3I6IEVsZW1lbnRSZWY7XG5cbiAgICB3cmFwcGVySGVpZ2h0OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBUaW1lIHRvIHdhaXQgaW4gbWlsbGlzZWNvbmRzIGFmdGVyIHRoZSBsYXN0IGtleWRvd24gYmVmb3JlXG4gICAgICogZm9jdXNpbmcgb3Igc2VsZWN0aW5nIG9wdGlvbiBiYXNlZCBvbiBudW1lcmljL2FscGhhIGtleXMuXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHR5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWwgPSA3NTA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbmZpZzogQ2Fyb3VzZWxDb25maWc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBjdXJyZW50SW5kaWNhdG9ySWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWQgKyAnLWN1cnJlbnQtaW5kaWNhdG9yJztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBjdXJyZW50SW5kaWNhdG9yVmFsdWVJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50SW5kaWNhdG9ySWQgKyAnLXZhbHVlJztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2VsZW1lbnRzQXRPbmNlJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoNyk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX29mZnNldCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDMpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hY3RpdmUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfcXVlcnlLZXlEb3duRXZlbnQ6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYWN0aXZlVmFsdWU6IFQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FjdGl2ZUNhcm91c2VsSXRlbTogQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc0RyYWdnaW5nID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3ZpZXdJbml0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgcHJpdmF0ZSBfcmVzaXplJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NoYW5nZURldFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgX2VsbVJlZjogRWxlbWVudFJlZikge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuX3ZpZXdJbml0JCwgdGhpcy5fZWxlbWVudHNBdE9uY2UkLCB0aGlzLl9vZmZzZXQkLCB0aGlzLl9yZXNpemUkXSlcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKChbdmlld0luaXRdKSA9PiB2aWV3SW5pdCksXG4gICAgICAgICAgICAgICAgICAgIHRhcCgoWywgZWxlbWVudHNBdE9uY2UsIG9mZnNldF0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGF2ZXJhZ2VIZWlnaHQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMudG9BcnJheSgpLnJlZHVjZSgoYWNjLCBuZXh0KSA9PiBhY2MgKyBuZXh0LmdldEhlaWdodCgpLCAwKSAvIHRoaXMuaXRlbXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53cmFwcGVySGVpZ2h0ID0gYXZlcmFnZUhlaWdodCAqIGVsZW1lbnRzQXRPbmNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmlzaWJsZUJ1dE5vdFNlbGVjdGVkRWxlbWVudHMgPSBNYXRoLmZsb29yKGVsZW1lbnRzQXRPbmNlIC8gMik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob2Zmc2V0ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5maXJzdC5lbGVtZW50LnN0eWxlLm1hcmdpblRvcCA9IGAke1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlQnV0Tm90U2VsZWN0ZWRFbGVtZW50cyAqIGF2ZXJhZ2VIZWlnaHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9cHhgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMubGFzdC5lbGVtZW50LnN0eWxlLm1hcmdpbkJvdHRvbSA9IGAke1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlQnV0Tm90U2VsZWN0ZWRFbGVtZW50cyAqIGF2ZXJhZ2VIZWlnaHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9cHhgO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5hY3RpdmVWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3BpY2tUaW1lKHRoaXMuX2dldEl0ZW0odGhpcy5hY3RpdmVWYWx1ZSksIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0UmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5fZWxlbWVudHNBdE9uY2UkLnBpcGUodGFwKCgpID0+IHRoaXMuX3NldFVwQ2Fyb3VzZWxDb25maWd1cmF0aW9uKCkpKS5zdWJzY3JpYmUoKSk7XG4gICAgICAgIHRoaXMuX3NldFVwUXVlcnlTdWJzY3JpcHRpb24oKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICByZXNpemVPYnNlcnZhYmxlKHRoaXMuX2VsbVJlZi5uYXRpdmVFbGVtZW50KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Jlc2l6ZSQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX3ZpZXdJbml0JC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgICBvbkl0ZW1DbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmVTdGF0ZUNoYW5nZS5lbWl0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBrZXlEb3duSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIERPV05fQVJST1cpKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbERvd24oKTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH0gZWxzZSBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFVQX0FSUk9XKSkge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxVcCgpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfSBlbHNlIGlmIChLZXlVdGlsLmlzS2V5VHlwZShldmVudCwgJ251bWVyaWMnKSB8fCBLZXlVdGlsLmlzS2V5VHlwZShldmVudCwgJ2FscGhhYmV0aWNhbCcpKSB7XG4gICAgICAgICAgICB0aGlzLl9xdWVyeUtleURvd25FdmVudC5uZXh0KGV2ZW50LmtleSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNwaW5uZXJCdXR0b25LZXl1cEhhbmRsZShldmVudDogS2V5Ym9hcmRFdmVudCwgdXBCdXR0b24/OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgU1BBQ0UpKSB7XG4gICAgICAgICAgICBpZiAodXBCdXR0b24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFVwKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsRG93bigpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldFZhbHVlT2ZBY3RpdmUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9hY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldFVwSW5pdGlhbFZhbHVlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogSXQgcHJldmVudHMgZnJvbSBhY2NpZGVudGFsbHkgY2hhbmdlIHRoZSBpdGVtIGJ5IGNsaWNrIGV2ZW50ICovXG4gICAgaGFuZGxlRHJhZyhpc0RyYWdnaW5nOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lzRHJhZ2dpbmcgPSBpc0RyYWdnaW5nO1xuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdGhhdCBoYW5kbGVzIGFjdGl2ZSBpdGVtIGNoYW5nZSAqL1xuICAgIGFjdGl2ZUNoYW5nZWRIYW5kbGUob3V0cHV0OiBQYW5FbmRPdXRwdXQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYXJyYXkgPSB0aGlzLml0ZW1zLnRvQXJyYXkoKTtcbiAgICAgICAgbGV0IGluZGV4OiBudW1iZXIgPSBhcnJheS5maW5kSW5kZXgoKF9faXRlbSkgPT4gX19pdGVtID09PSBvdXRwdXQuaXRlbSkgKyB0aGlzLm9mZnNldDtcblxuICAgICAgICBpZiAoaW5kZXggPj0gYXJyYXkubGVuZ3RoKSB7XG4gICAgICAgICAgICBpbmRleCA9IGluZGV4IC0gYXJyYXkubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgX2l0ZW0gPSBhcnJheVtpbmRleF07XG5cbiAgICAgICAgdGhpcy5fYWN0aXZlVmFsdWUgPSBfaXRlbS52YWx1ZTtcblxuICAgICAgICB0aGlzLmFjdGl2ZVZhbHVlQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgICAgdmFsdWU6IHRoaXMuX2FjdGl2ZVZhbHVlLFxuICAgICAgICAgICAgYWZ0ZXI6IG91dHB1dC5hZnRlclxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9hY3RpdmVDYXJvdXNlbEl0ZW0gPSBfaXRlbTtcbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHRoYXQgY2hhbmdlcyBhY3RpdmUgaXRlbSBhbmQgdHJpZ2dlcnMgY2Fyb3VzZWwgc2Nyb2xsICovXG4gICAgcGljayhpdGVtOiBDYXJvdXNlbEl0ZW1EaXJlY3RpdmUsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4OiBudW1iZXIgPSB0aGlzLml0ZW1zLnRvQXJyYXkoKS5maW5kSW5kZXgoKF9pdGVtKSA9PiBfaXRlbSA9PT0gdGhpcy5fYWN0aXZlQ2Fyb3VzZWxJdGVtKTtcbiAgICAgICAgLyoqIFRvIHByZXZlbnQgZnJvbSBzd2l0Y2hpbmcgdGltZSwgd2hlbiBpdCdzIGJlaW5nIGRyYWdnZWQgKi9cbiAgICAgICAgaWYgKCF0aGlzLl9pc0RyYWdnaW5nKSB7XG4gICAgICAgICAgICB0aGlzLl9waWNrVGltZShpdGVtLCB0cnVlLCB0cnVlLCBjdXJyZW50SW5kZXggPCBpbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHRyaWdnZXJlZCBieSBrZXlib2FyZCwgb3IgaW5jcmVtZW50IGJ1dHRvbiAqL1xuICAgIHNjcm9sbFVwKGV2ZW50PzogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICAvKiogS2V5Ym9hcmQgZXZlbnRzIGluIHJlYWN0aXZlIGZvcm1zLCBzaG91bGRuJ3QgdHJpZ2dlciB0aGlzIG1ldGhvZCAqL1xuICAgICAgICBpZiAoZXZlbnQgJiYgIWV2ZW50LmNsaWVudFgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgaW5kZXg6IG51bWJlciA9IHRoaXMuaXRlbXMudG9BcnJheSgpLmZpbmRJbmRleCgoX2l0ZW0pID0+IF9pdGVtID09PSB0aGlzLl9hY3RpdmVDYXJvdXNlbEl0ZW0pO1xuICAgICAgICBpZiAoaW5kZXggPiAwKSB7XG4gICAgICAgICAgICBpbmRleC0tO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaW5kZXggPSB0aGlzLnJvd3MubGVuZ3RoIC0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3BpY2tUaW1lKHRoaXMuaXRlbXMudG9BcnJheSgpW2luZGV4XSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UpO1xuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdHJpZ2dlcmVkIGJ5IGtleWJvYXJkLCBvciBkZWNyZW1lbnQgYnV0dG9uICovXG4gICAgc2Nyb2xsRG93bigpOiB2b2lkIHtcbiAgICAgICAgbGV0IGluZGV4OiBudW1iZXIgPSB0aGlzLml0ZW1zLnRvQXJyYXkoKS5maW5kSW5kZXgoKF9pdGVtKSA9PiBfaXRlbSA9PT0gdGhpcy5fYWN0aXZlQ2Fyb3VzZWxJdGVtKTtcbiAgICAgICAgaWYgKGluZGV4IDwgdGhpcy5yb3dzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpbmRleCA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9waWNrVGltZSh0aGlzLml0ZW1zLnRvQXJyYXkoKVtpbmRleF0sIHRydWUsIHRydWUsIHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBGb2N1cyBvbiBjb2x1bW4gKi9cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbmRpY2F0b3I/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgaWQgZm9yIGNvbHVtbiBpdGVtXG4gICAgICogQHBhcmFtIGluZGV4IGNvbHVtbiBpdGVtIGluZGV4XG4gICAgICogQHJldHVybnMgY29sdW1uIGl0ZW0gaWRcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX2NyZWF0ZUNvbHVtbkl0ZW1JZEJ5SW5kZXgoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmlkICsgaW5kZXg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT24gZm9jdXMgY2FsbGJhY2tcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX29uRm9jdXNJbmRpY2F0b3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlU3RhdGVDaGFuZ2UuZW1pdCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0cmlnZ2VyZWQgYnkga2V5Ym9hcmQsIG9yIGRlY3JlbWVudCBidXR0b25cbiAgICAgKiBBcmdzOlxuICAgICAqIGl0ZW0gPT4gcGlja2VkIGNhcm91c2VsIGl0ZW0sIHRoYXQgc2hvdWxkIGJlIGNlbnRlcmVkXG4gICAgICogc21vb3RoID0+IGRlZmluZXMgaWYgdHJhbnNpdGlvbiB0aW1lIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0cmFuc2Zvcm1cbiAgICAgKiBlbWl0RXZlbnQgPT4gZGVmaW5lcyBpZiBFdmVudEVtaXR0ZXIgc2hvdWxkIGJlIHRyaWdnZXJlZCBieSB0aGlzIGNoYW5nZSwgc2V0IHRvIGZhbHNlLCB3aGVuIGNoYW5nZWQgZnJvbSBvdXRzaWRlXG4gICAgICogYWZ0ZXIgPT4gRGVmaW5lcyBpZiB2YWx1ZSB3YXMgaW5jcmVtZW50ZWQvZGVjcmVtZW50ZWQsIG5lZWRlZCBmb3IgaG91cnMgdG8gdHJpZ2dlciBBTS9QTSBjaGFuZ2VcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfcGlja1RpbWUoaXRlbT86IENhcm91c2VsSXRlbURpcmVjdGl2ZSwgc21vb3RoPzogYm9vbGVhbiwgZW1pdEV2ZW50PzogYm9vbGVhbiwgYWZ0ZXI/OiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghaXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLl90cmlnZ2VyQ2Fyb3VzZWwoaXRlbSwgc21vb3RoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2FjdGl2ZUNhcm91c2VsSXRlbSA9IGl0ZW07XG4gICAgICAgIHRoaXMuX2FjdGl2ZVZhbHVlID0gaXRlbS52YWx1ZTtcblxuICAgICAgICBpZiAoZW1pdEV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVZhbHVlQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgICAgIGFmdGVyXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgaXRlbSB3aXRoIHBhc3NlZCB2YWx1ZVxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZXRJdGVtKF9pdGVtOiBUKTogQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZCgoaXRlbSkgPT4gaXRlbS52YWx1ZSA9PT0gX2l0ZW0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdHJpZ2dlckNhcm91c2VsKGl0ZW06IENhcm91c2VsSXRlbURpcmVjdGl2ZSwgc21vb3RoPzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBjb25zdCBhcnJheSA9IHRoaXMuaXRlbXMudG9BcnJheSgpO1xuICAgICAgICBsZXQgaW5kZXg6IG51bWJlciA9IGFycmF5LmZpbmRJbmRleCgoX2l0ZW0pID0+IF9pdGVtID09PSBpdGVtKSAtIHRoaXMub2Zmc2V0O1xuXG4gICAgICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgICAgICAgIGluZGV4ID0gYXJyYXkubGVuZ3RoICsgaW5kZXg7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNhcm91c2VsLmdvVG9JdGVtKGFycmF5W2luZGV4XSwgc21vb3RoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGb2N1cyBjdXJyZW50IGluZGljYXRvciwgd2hpY2ggYWxsb3dzIHRvIGhhbmRsZSBrZXlkb3duIGV2ZW50cyBpbnNpZGUgY29sdW1uXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX2ZvY3VzSW5kaWNhdG9yKCk6IHZvaWQge1xuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmN1cnJlbnRJbmRpY2F0b3JJZCk/LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRWYWx1ZSh2YWx1ZTogc3RyaW5nKTogYW55IHtcbiAgICAgICAgaWYgKCFpc05hTihOdW1iZXIodmFsdWUpKSkge1xuICAgICAgICAgICAgcmV0dXJuIE51bWJlcih2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldFVwUXVlcnlTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRyaWdnZXIgPSB0aGlzLl9xdWVyeUtleURvd25FdmVudC5waXBlKGRlYm91bmNlVGltZSh0aGlzLnR5cGVhaGVhZERlYm91bmNlSW50ZXJ2YWwpKTtcblxuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIHRoaXMuX3F1ZXJ5S2V5RG93bkV2ZW50XG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGJ1ZmZlcih0cmlnZ2VyKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKChrZXlzKSA9PiBrZXlzLmpvaW4oJycpKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKCh2YWx1ZSkgPT4gdGhpcy5fZ2V0VmFsdWUodmFsdWUpKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKCh2YWx1ZSkgPT4gdGhpcy5fZ2V0SXRlbSh2YWx1ZSkpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGl0ZW0pID0+IHRoaXMuX3BpY2tUaW1lKGl0ZW0sIGZhbHNlLCB0cnVlKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldFVwQ2Fyb3VzZWxDb25maWd1cmF0aW9uKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb25maWc6IENhcm91c2VsQ29uZmlnID0ge1xuICAgICAgICAgICAgZ2VzdHVyZVN1cHBvcnQ6IHRydWUsXG4gICAgICAgICAgICB2ZXJ0aWNhbDogdHJ1ZSxcbiAgICAgICAgICAgIGVsZW1lbnRzQXRPbmNlOiB0aGlzLl9lbGVtZW50c0F0T25jZSQudmFsdWUsXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAnMTUwbXMnXG4gICAgICAgIH07XG4gICAgICAgIGlmICghdGhpcy5tZXJpZGlhbikge1xuICAgICAgICAgICAgY29uZmlnLmluZmluaXRlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldFVwSW5pdGlhbFZhbHVlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2FjdGl2ZVZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9hY3RpdmVWYWx1ZSA9IHRoaXMuaXRlbXMuZmlyc3QudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcGlja1RpbWUodGhpcy5fZ2V0SXRlbSh0aGlzLl9hY3RpdmVWYWx1ZSksIGZhbHNlKTtcbiAgICB9XG59XG4iLCI8bGFiZWwgY2xhc3M9XCJmZC10aW1lX19zbGlkZXItbGFiZWxcIj57eyB0aW1lQ29uZmlnPy5sYWJlbCB9fTwvbGFiZWw+XG48YnV0dG9uXG4gICAgKm5nSWY9XCJhY3RpdmUgJiYgc3Bpbm5lcnNcIlxuICAgIGZkLWJ1dHRvblxuICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICBnbHlwaD1cIm5hdmlnYXRpb24tdXAtYXJyb3dcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICAgIFt0aXRsZV09XCJ0aW1lQ29uZmlnPy5kZWNyZWFzZUxhYmVsXCJcbiAgICBbYXJpYUxhYmVsXT1cInRpbWVDb25maWc/LmRlY3JlYXNlTGFiZWxcIlxuICAgIChrZXl1cCk9XCJzcGlubmVyQnV0dG9uS2V5dXBIYW5kbGUoJGV2ZW50LCB0cnVlKVwiXG4gICAgKGNsaWNrKT1cInNjcm9sbFVwKCRldmVudClcIlxuPjwvYnV0dG9uPlxuPGRpdlxuICAgIGNsYXNzPVwiZmQtdGltZV9fd3JhcHBlclwiXG4gICAgW2NsYXNzLmZkLXRpbWVfX3dyYXBwZXItLWFjdGl2ZV09XCJhY3RpdmVcIlxuICAgIFtjbGFzcy5mZC10aW1lX193cmFwcGVyLS1tZXJpZGlhbl09XCJtZXJpZGlhblwiXG4gICAgW3N0eWxlLmhlaWdodC5weF09XCJhY3RpdmUgPyB3cmFwcGVySGVpZ2h0IDogJydcIlxuPlxuICAgIDx1bFxuICAgICAgICBjbGFzcz1cImZkLXRpbWVfX2xpc3RcIlxuICAgICAgICBbY2xhc3MuZmQtdGltZS1jb2x1bW4tY3VzdG9tLWhpZGRlbl09XCIhYWN0aXZlXCJcbiAgICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgICAgICAoY2xpY2spPVwiaW5kaWNhdG9yLmZvY3VzKClcIlxuICAgICAgICAoYWN0aXZlQ2hhbmdlKT1cImFjdGl2ZUNoYW5nZWRIYW5kbGUoJGV2ZW50KVwiXG4gICAgICAgIChkcmFnU3RhdGVDaGFuZ2UpPVwiaGFuZGxlRHJhZygkZXZlbnQpXCJcbiAgICAgICAgZmRDYXJvdXNlbFxuICAgID5cbiAgICAgICAgPGxpXG4gICAgICAgICAgICBjbGFzcz1cImZkLXRpbWVfX2l0ZW1cIlxuICAgICAgICAgICAgZmRDYXJvdXNlbEl0ZW1cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCByb3cgb2Ygcm93czsgbGV0IGluZGV4ID0gaW5kZXhcIlxuICAgICAgICAgICAgI2l0ZW09XCJmZENhcm91c2VsSXRlbVwiXG4gICAgICAgICAgICBbaWRdPVwiX2NyZWF0ZUNvbHVtbkl0ZW1JZEJ5SW5kZXgoaW5kZXgpXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtZGlzcGxheWVkLXZhbHVlXT1cInJvdy52YWx1ZVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwicm93XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC10aW1lX191bml0XCIgcm9sZT1cImJ1dHRvblwiIFthdHRyLmFyaWEtbGFiZWxdPVwicm93LmxhYmVsXCIgKGNsaWNrKT1cInBpY2soaXRlbSwgaW5kZXgpXCI+XG4gICAgICAgICAgICAgICAge3sgcm93LmxhYmVsIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmQtdGltZV9fY3VycmVudC1pbmRpY2F0b3JcIlxuICAgICAgICAjaW5kaWNhdG9yXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgICAgW2F0dHIuaWRdPVwiY3VycmVudEluZGljYXRvcklkXCJcbiAgICAgICAgW2NsYXNzLmZkLXRpbWUtY29sdW1uLWN1c3RvbS1oaWRkZW5dPVwiIWFjdGl2ZVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJjdXJyZW50SW5kaWNhdG9yVmFsdWVJZFwiXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpcHRpb25dPVwidGltZUNvbmZpZz8ubmF2aWdhdGlvbkluc3RydWN0aW9uXCJcbiAgICAgICAgKGZvY3VzKT1cIl9vbkZvY3VzSW5kaWNhdG9yKClcIlxuICAgID5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwiZmQtdGltZS1jb2x1bW4tY3VzdG9tLWhpZGRlblwiXG4gICAgICAgICAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIlxuICAgICAgICAgICAgYXJpYS1hdG9taWM9XCJ0cnVlXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cIiFhY3RpdmVcIlxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiY3VycmVudEluZGljYXRvclZhbHVlSWRcIlxuICAgICAgICAgICAgW2NsYXNzLmZkLXRpbWUtY29sdW1uLWN1c3RvbS1oaWRkZW5dPVwiYWN0aXZlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgYWN0aXZlVmFsdWU/LmxhYmVsIH19IHt7IHRpbWVDb25maWc/LmxhYmVsIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8c3BhbiAqbmdJZj1cIiFhY3RpdmVcIiBjbGFzcz1cImZkLXRpbWVfX2l0ZW0gZmQtdGltZV9faXRlbS0tY29sbGFwc2VkXCI+XG4gICAgICAgIHt7IGFjdGl2ZVZhbHVlPy5sYWJlbCB9fVxuICAgIDwvc3Bhbj5cbjwvZGl2PlxuPGJ1dHRvblxuICAgICpuZ0lmPVwiYWN0aXZlICYmIHNwaW5uZXJzXCJcbiAgICBmZC1idXR0b25cbiAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgZ2x5cGg9XCJuYXZpZ2F0aW9uLWRvd24tYXJyb3dcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICAgIFt0aXRsZV09XCJ0aW1lQ29uZmlnPy5pbmNyZWFzZUxhYmVsXCJcbiAgICBbYXJpYUxhYmVsXT1cInRpbWVDb25maWc/LmluY3JlYXNlTGFiZWxcIlxuICAgIChrZXl1cCk9XCJzcGlubmVyQnV0dG9uS2V5dXBIYW5kbGUoJGV2ZW50KVwiXG4gICAgKGNsaWNrKT1cInNjcm9sbERvd24oKVwiXG4+PC9idXR0b24+XG4iXX0=
@@ -9,11 +9,18 @@ import { map } from 'rxjs/operators';
9
9
  export function resizeObservable(target, options) {
10
10
  if ('ResizeObserver' in window) {
11
11
  return new Observable((subscriber) => {
12
+ let animationFrame;
12
13
  const ro = new ResizeObserver((entries) => {
13
- subscriber.next(entries);
14
+ animationFrame = window.requestAnimationFrame(() => {
15
+ subscriber.next(entries);
16
+ });
14
17
  });
15
18
  ro.observe(target, options);
16
19
  return function unsubscribe() {
20
+ if (animationFrame) {
21
+ window.cancelAnimationFrame(animationFrame);
22
+ }
23
+ ro.unobserve(target);
17
24
  ro.disconnect();
18
25
  };
19
26
  });
@@ -23,4 +30,4 @@ export function resizeObservable(target, options) {
23
30
  return fromEvent(window, 'resize').pipe(map(() => []));
24
31
  }
25
32
  }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLW9ic2VydmFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9mdW5jdGlvbnMvcmVzaXplLW9ic2VydmFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE1BQWUsRUFBRSxPQUErQjtJQUM3RSxJQUFJLGdCQUFnQixJQUFJLE1BQU0sRUFBRTtRQUM1QixPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDakMsTUFBTSxFQUFFLEdBQUcsSUFBSSxjQUFjLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDdEMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztZQUVILEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRTVCLE9BQU8sU0FBUyxXQUFXO2dCQUN2QixFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7S0FDTjtTQUFNO1FBQ0gsNkdBQTZHO1FBQzdHLE9BQU8sU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDMUQ7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnJvbUV2ZW50LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogUnhKUyB3cmFwcGVyIGZvciBSZXNpemVPYnNlcnZlciBjbGFzcy5cbiAqIEBwYXJhbSB0YXJnZXQgSFRNTCBlbGVtZW50IHRvIHNweSBvbi5cbiAqIEBwYXJhbSBvcHRpb25zIEBzZWUge1Jlc2l6ZU9ic2VydmVyT3B0aW9uc31cbiAqIEByZXR1cm5zIHtPYnNlcnZhYmxlfSB3aXRoIG9ic2VydmVyIGVudHJpZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNpemVPYnNlcnZhYmxlKHRhcmdldDogRWxlbWVudCwgb3B0aW9ucz86IFJlc2l6ZU9ic2VydmVyT3B0aW9ucyk6IE9ic2VydmFibGU8UmVzaXplT2JzZXJ2ZXJFbnRyeVtdPiB7XG4gICAgaWYgKCdSZXNpemVPYnNlcnZlcicgaW4gd2luZG93KSB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoc3Vic2NyaWJlcikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgcm8gPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcbiAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoZW50cmllcyk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcm8ub2JzZXJ2ZSh0YXJnZXQsIG9wdGlvbnMpO1xuXG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gdW5zdWJzY3JpYmUoKTogdm9pZCB7XG4gICAgICAgICAgICAgICAgcm8uZGlzY29ubmVjdCgpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gSWYgY3VycmVudCBicm93c2VyIGRvZXMgbm90IHN1cHBvcnQgcmVzaXplT2JzZXJ2ZXIsIHJlbHkgb24gd2luZG93IHJlc2l6ZSBhbmQgcmV0dXJuIGVtcHR5IGFycmF5IG9mIGl0ZW1zLlxuICAgICAgICByZXR1cm4gZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLnBpcGUobWFwKCgpID0+IFtdKSk7XG4gICAgfVxufVxuIl19
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLW9ic2VydmFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9mdW5jdGlvbnMvcmVzaXplLW9ic2VydmFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE1BQWUsRUFBRSxPQUErQjtJQUM3RSxJQUFJLGdCQUFnQixJQUFJLE1BQU0sRUFBRTtRQUM1QixPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDakMsSUFBSSxjQUFzQixDQUFDO1lBQzNCLE1BQU0sRUFBRSxHQUFHLElBQUksY0FBYyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3RDLGNBQWMsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsR0FBRyxFQUFFO29CQUMvQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM3QixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1lBRUgsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFFNUIsT0FBTyxTQUFTLFdBQVc7Z0JBQ3ZCLElBQUksY0FBYyxFQUFFO29CQUNoQixNQUFNLENBQUMsb0JBQW9CLENBQUMsY0FBYyxDQUFDLENBQUM7aUJBQy9DO2dCQUNELEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3JCLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztLQUNOO1NBQU07UUFDSCw2R0FBNkc7UUFDN0csT0FBTyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUMxRDtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tRXZlbnQsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBSeEpTIHdyYXBwZXIgZm9yIFJlc2l6ZU9ic2VydmVyIGNsYXNzLlxuICogQHBhcmFtIHRhcmdldCBIVE1MIGVsZW1lbnQgdG8gc3B5IG9uLlxuICogQHBhcmFtIG9wdGlvbnMgQHNlZSB7UmVzaXplT2JzZXJ2ZXJPcHRpb25zfVxuICogQHJldHVybnMge09ic2VydmFibGV9IHdpdGggb2JzZXJ2ZXIgZW50cmllcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc2l6ZU9ic2VydmFibGUodGFyZ2V0OiBFbGVtZW50LCBvcHRpb25zPzogUmVzaXplT2JzZXJ2ZXJPcHRpb25zKTogT2JzZXJ2YWJsZTxSZXNpemVPYnNlcnZlckVudHJ5W10+IHtcbiAgICBpZiAoJ1Jlc2l6ZU9ic2VydmVyJyBpbiB3aW5kb3cpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyKSA9PiB7XG4gICAgICAgICAgICBsZXQgYW5pbWF0aW9uRnJhbWU6IG51bWJlcjtcbiAgICAgICAgICAgIGNvbnN0IHJvID0gbmV3IFJlc2l6ZU9ic2VydmVyKChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRnJhbWUgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGVudHJpZXMpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJvLm9ic2VydmUodGFyZ2V0LCBvcHRpb25zKTtcblxuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIHVuc3Vic2NyaWJlKCk6IHZvaWQge1xuICAgICAgICAgICAgICAgIGlmIChhbmltYXRpb25GcmFtZSkge1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoYW5pbWF0aW9uRnJhbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByby51bm9ic2VydmUodGFyZ2V0KTtcbiAgICAgICAgICAgICAgICByby5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJZiBjdXJyZW50IGJyb3dzZXIgZG9lcyBub3Qgc3VwcG9ydCByZXNpemVPYnNlcnZlciwgcmVseSBvbiB3aW5kb3cgcmVzaXplIGFuZCByZXR1cm4gZW1wdHkgYXJyYXkgb2YgaXRlbXMuXG4gICAgICAgIHJldHVybiBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJykucGlwZShtYXAoKCkgPT4gW10pKTtcbiAgICB9XG59XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/facets",
3
- "version": "0.35.3",
3
+ "version": "0.35.4-rc.10",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"