@skyux/core 11.40.0 → 11.42.0

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.
@@ -7,4 +7,4 @@ export class SkyViewkeeperHostOptions {
7
7
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyViewkeeperHostOptions, decorators: [{
8
8
  type: Injectable
9
9
  }] });
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci1ob3N0LW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvdmlld2tlZXBlci92aWV3a2VlcGVyLWhvc3Qtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sd0JBQXdCOytHQUF4Qix3QkFBd0I7bUhBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5Vmlld2tlZXBlck9wdGlvbnMgfSBmcm9tICcuL3ZpZXdrZWVwZXItb3B0aW9ucyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lWaWV3a2VlcGVySG9zdE9wdGlvbnMgaW1wbGVtZW50cyBTa3lWaWV3a2VlcGVyT3B0aW9ucyB7XG4gIHB1YmxpYyBib3VuZGFyeUVsPzogSFRNTEVsZW1lbnQ7XG5cbiAgcHVibGljIGVsPzogSFRNTEVsZW1lbnQ7XG5cbiAgcHVibGljIHNjcm9sbGFibGVIb3N0PzogSFRNTEVsZW1lbnQ7XG5cbiAgcHVibGljIHNldFdpZHRoPzogYm9vbGVhbjtcblxuICBwdWJsaWMgdmVydGljYWxPZmZzZXQ/OiBudW1iZXI7XG5cbiAgcHVibGljIHZlcnRpY2FsT2Zmc2V0RWw/OiBIVE1MRWxlbWVudDtcblxuICBwdWJsaWMgdmlld3BvcnRNYXJnaW5Ub3A/OiBudW1iZXI7XG59XG4iXX0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci1ob3N0LW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvdmlld2tlZXBlci92aWV3a2VlcGVyLWhvc3Qtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sd0JBQXdCOytHQUF4Qix3QkFBd0I7bUhBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5Vmlld2tlZXBlck9wdGlvbnMgfSBmcm9tICcuL3ZpZXdrZWVwZXItb3B0aW9ucyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lWaWV3a2VlcGVySG9zdE9wdGlvbnMgaW1wbGVtZW50cyBTa3lWaWV3a2VlcGVyT3B0aW9ucyB7XG4gIHB1YmxpYyBib3VuZGFyeUVsPzogSFRNTEVsZW1lbnQ7XG5cbiAgcHVibGljIGVsPzogSFRNTEVsZW1lbnQ7XG5cbiAgcHVibGljIHNjcm9sbGFibGVIb3N0PzogSFRNTEVsZW1lbnQ7XG5cbiAgcHVibGljIHNldFdpZHRoPzogYm9vbGVhbjtcblxuICBwdWJsaWMgdmVydGljYWxPZmZzZXQ/OiBudW1iZXI7XG5cbiAgcHVibGljIHZlcnRpY2FsT2Zmc2V0RWw/OiBIVE1MRWxlbWVudDtcblxuICBwdWJsaWMgdmlld3BvcnRNYXJnaW5Ub3A/OiBudW1iZXI7XG5cbiAgcHVibGljIHZpZXdwb3J0TWFyZ2luUHJvcGVydHk/OiBgLS0ke3N0cmluZ31gO1xufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL3ZpZXdrZWVwZXIvdmlld2tlZXBlci1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE9wdGlvbnMgZm9yIGNyZWF0aW5nIGEgdmlld2tlZXBlciBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTa3lWaWV3a2VlcGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0aGF0IGRlZmluZXMgdGhlIGJvdW5kcyBpbiB3aGljaCB0byBrZWVwIHRoZSBlbGVtZW50IGluIHZpZXcuIFdoZW4gdGhlXG4gICAqIGJvdW5kYXJ5IGVsZW1lbnQgaXMgc2Nyb2xsZWQgb3V0IG9mIHZpZXcsIHRoZSB2aWV3a2VlcGVyIGVsZW1lbnQgd2lsbCBiZSBzY3JvbGxlZFxuICAgKiBvdXQgb2Ygdmlldy5cbiAgICovXG4gIGJvdW5kYXJ5RWw/OiBIVE1MRWxlbWVudDtcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdG8ga2VlcCBpbiB2aWV3LlxuICAgKi9cbiAgZWw/OiBIVE1MRWxlbWVudDtcblxuICAvKipcbiAgICogVGhlIHNjcm9sbGFibGUgcGFyZW50IHdoZXJlIHRoZSB2aWV3a2VlcGVyIHJlc2lkZXMuIEl0IHNob3VsZCBsaXN0ZW4gdG8gYW5kIGJlXG4gICAqIHBvc2l0aW9uZWQgd2l0aGluIHRoZSBwYXJlbnQuXG4gICAqL1xuICBzY3JvbGxhYmxlSG9zdD86IEhUTUxFbGVtZW50O1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB3aWR0aCBvZiB0aGUgdmlld2tlZXBlciBlbGVtZW50IHRvIHRoZSB3aWR0aCBvZiBpdHNcbiAgICogaG9zdCBlbGVtZW50LiBPdGhlcndpc2UsIGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGhhdmUgYW4gZXhwbGljaXQgd2lkdGggc3BlY2lmaWVkLFxuICAgKiB0aGUgZWxlbWVudCB3b3VsZCBjb2xsYXBzZSBob3Jpem9udGFsbHkgYXMgYSByZXN1bHQgb2YgZml4aW5nIHRoZSBlbGVtZW50IHRvIHRoZSB0b3BcbiAgICogb2YgdGhlIHZpZXdwb3J0LlxuICAgKi9cbiAgc2V0V2lkdGg/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZXNlcnZlZCBzcGFjZSBpbiBwaXhlbHMgYWJvdmUgdGhlIHZpZXdrZWVwZXIgZWxlbWVudC5cbiAgICovXG4gIHZlcnRpY2FsT2Zmc2V0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB1bmRlciB3aGljaCB0aGUgdmlld2tlZXBlciBlbGVtZW50IHNob3VsZCBiZSBmaXhlZC4gVHlwaWNhbGx5IHRoaXMgaXNcbiAgICogYW5vdGhlciB2aWV3a2VlcGVyIGVsZW1lbnQgdGhhdCBpcyBhYm92ZSB0aGUgY3VycmVudCB2aWV3a2VlcGVyIGVsZW1lbnQgaW4gdGhlIHNhbWVcbiAgICogYm91bmRhcnkgZWxlbWVudC5cbiAgICovXG4gIHZlcnRpY2FsT2Zmc2V0RWw/OiBIVE1MRWxlbWVudDtcblxuICAvKipcbiAgICogUmVzZXJ2ZWQgc3BhY2UgaW4gcGl4ZWxzIGF0IHRoZSB0b3Agb2YgdGhlIHZpZXdwb3J0LlxuICAgKi9cbiAgdmlld3BvcnRNYXJnaW5Ub3A/OiBudW1iZXI7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL3ZpZXdrZWVwZXIvdmlld2tlZXBlci1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE9wdGlvbnMgZm9yIGNyZWF0aW5nIGEgdmlld2tlZXBlciBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTa3lWaWV3a2VlcGVyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0aGF0IGRlZmluZXMgdGhlIGJvdW5kcyBpbiB3aGljaCB0byBrZWVwIHRoZSBlbGVtZW50IGluIHZpZXcuIFdoZW4gdGhlXG4gICAqIGJvdW5kYXJ5IGVsZW1lbnQgaXMgc2Nyb2xsZWQgb3V0IG9mIHZpZXcsIHRoZSB2aWV3a2VlcGVyIGVsZW1lbnQgd2lsbCBiZSBzY3JvbGxlZFxuICAgKiBvdXQgb2Ygdmlldy5cbiAgICovXG4gIGJvdW5kYXJ5RWw/OiBIVE1MRWxlbWVudDtcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdG8ga2VlcCBpbiB2aWV3LlxuICAgKi9cbiAgZWw/OiBIVE1MRWxlbWVudDtcblxuICAvKipcbiAgICogVGhlIHNjcm9sbGFibGUgcGFyZW50IHdoZXJlIHRoZSB2aWV3a2VlcGVyIHJlc2lkZXMuIEl0IHNob3VsZCBsaXN0ZW4gdG8gYW5kIGJlXG4gICAqIHBvc2l0aW9uZWQgd2l0aGluIHRoZSBwYXJlbnQuXG4gICAqL1xuICBzY3JvbGxhYmxlSG9zdD86IEhUTUxFbGVtZW50O1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB3aWR0aCBvZiB0aGUgdmlld2tlZXBlciBlbGVtZW50IHRvIHRoZSB3aWR0aCBvZiBpdHNcbiAgICogaG9zdCBlbGVtZW50LiBPdGhlcndpc2UsIGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGhhdmUgYW4gZXhwbGljaXQgd2lkdGggc3BlY2lmaWVkLFxuICAgKiB0aGUgZWxlbWVudCB3b3VsZCBjb2xsYXBzZSBob3Jpem9udGFsbHkgYXMgYSByZXN1bHQgb2YgZml4aW5nIHRoZSBlbGVtZW50IHRvIHRoZSB0b3BcbiAgICogb2YgdGhlIHZpZXdwb3J0LlxuICAgKi9cbiAgc2V0V2lkdGg/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZXNlcnZlZCBzcGFjZSBpbiBwaXhlbHMgYWJvdmUgdGhlIHZpZXdrZWVwZXIgZWxlbWVudC5cbiAgICovXG4gIHZlcnRpY2FsT2Zmc2V0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB1bmRlciB3aGljaCB0aGUgdmlld2tlZXBlciBlbGVtZW50IHNob3VsZCBiZSBmaXhlZC4gVHlwaWNhbGx5IHRoaXMgaXNcbiAgICogYW5vdGhlciB2aWV3a2VlcGVyIGVsZW1lbnQgdGhhdCBpcyBhYm92ZSB0aGUgY3VycmVudCB2aWV3a2VlcGVyIGVsZW1lbnQgaW4gdGhlIHNhbWVcbiAgICogYm91bmRhcnkgZWxlbWVudC5cbiAgICovXG4gIHZlcnRpY2FsT2Zmc2V0RWw/OiBIVE1MRWxlbWVudDtcblxuICAvKipcbiAgICogUmVzZXJ2ZWQgc3BhY2UgaW4gcGl4ZWxzIGF0IHRoZSB0b3Agb2YgdGhlIHZpZXdwb3J0LlxuICAgKi9cbiAgdmlld3BvcnRNYXJnaW5Ub3A/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBDU1MgcHJvcGVydHkgZm9yIHJlc2VydmVkIHNwYWNlIGF0IHRoZSB0b3Agb2YgdGhlIHZpZXdwb3J0LlxuICAgKi9cbiAgdmlld3BvcnRNYXJnaW5Qcm9wZXJ0eT86IGAtLSR7c3RyaW5nfWA7XG59XG4iXX0=
@@ -41,10 +41,12 @@ function px(value) {
41
41
  }
42
42
  return pxValue;
43
43
  }
44
- function setElPosition(el, left, top, width, marginTop, clipTop, clipLeft) {
44
+ function setElPosition(el, left, top, width, marginTop, marginTopProperty, clipTop, clipLeft) {
45
45
  el.style.top = px(top);
46
46
  el.style.left = px(left);
47
- el.style.marginTop = px(marginTop);
47
+ el.style.marginTop = marginTopProperty
48
+ ? `calc(${px(marginTop)} + var(${marginTopProperty}, 0))`
49
+ : px(marginTop);
48
50
  el.style.clipPath =
49
51
  clipTop || clipLeft ? `inset(${px(clipTop)} 0 0 ${px(clipLeft)})` : 'none';
50
52
  /*istanbul ignore else*/
@@ -72,6 +74,7 @@ export class SkyViewkeeper {
72
74
  #verticalOffset;
73
75
  #verticalOffsetEl;
74
76
  #viewportMarginTop = 0;
77
+ #viewportMarginProperty;
75
78
  #currentElFixedLeft;
76
79
  #currentElFixedTop;
77
80
  #currentElFixedWidth;
@@ -102,6 +105,7 @@ export class SkyViewkeeper {
102
105
  // Only set viewport margin if the scrollable host is undefined.
103
106
  if (!this.#scrollableHost) {
104
107
  this.#viewportMarginTop = options.viewportMarginTop ?? 0;
108
+ this.#viewportMarginProperty = options.viewportMarginProperty;
105
109
  }
106
110
  this.#syncElPositionHandler = () => this.syncElPosition(el, boundaryEl);
107
111
  if (this.#verticalOffsetEl) {
@@ -175,7 +179,7 @@ export class SkyViewkeeper {
175
179
  if (this.#setWidth) {
176
180
  width = 'auto';
177
181
  }
178
- setElPosition(el, '', '', width, '', 0, 0);
182
+ setElPosition(el, '', '', width, '', '', 0, 0);
179
183
  }
180
184
  #calculateVerticalOffset() {
181
185
  let offset = this.#verticalOffset;
@@ -197,8 +201,13 @@ export class SkyViewkeeper {
197
201
  else {
198
202
  anchorTop = getOffset(el, this.#scrollableHost).top;
199
203
  }
200
- const doFixEl = boundaryInfo.scrollTop + verticalOffset + this.#viewportMarginTop >
201
- anchorTop;
204
+ let viewportMarginTop = this.#viewportMarginTop;
205
+ const viewportMarginProperty = this.#viewportMarginProperty &&
206
+ getComputedStyle(document.body).getPropertyValue(this.#viewportMarginProperty);
207
+ if (viewportMarginProperty) {
208
+ viewportMarginTop += parseInt(viewportMarginProperty, 10);
209
+ }
210
+ const doFixEl = boundaryInfo.scrollTop + verticalOffset + viewportMarginTop > anchorTop;
202
211
  return doFixEl;
203
212
  }
204
213
  #getFixedStyles(boundaryInfo, verticalOffset) {
@@ -266,7 +275,7 @@ export class SkyViewkeeper {
266
275
  if (this.#setWidth) {
267
276
  width = fixedStyles.elFixedWidth;
268
277
  }
269
- setElPosition(el, fixedStyles.elFixedLeft, fixedStyles.elFixedTop, width, this.#viewportMarginTop, fixedStyles.elClipTop, fixedStyles.elClipLeft);
278
+ setElPosition(el, fixedStyles.elFixedLeft, fixedStyles.elFixedTop, width, this.#viewportMarginTop, this.#viewportMarginProperty, fixedStyles.elClipTop, fixedStyles.elClipLeft);
270
279
  }
271
280
  #getBoundaryInfo(el, boundaryEl) {
272
281
  const spacerId = this.#getSpacerId();
@@ -293,4 +302,4 @@ export class SkyViewkeeper {
293
302
  };
294
303
  }
295
304
  }
296
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy92aWV3a2VlcGVyL3ZpZXdrZWVwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxvQkFBb0IsR0FBRyxzQkFBc0IsQ0FBQztBQUNwRCxNQUFNLHlCQUF5QixHQUFHLHFCQUFxQixDQUFDO0FBRXhELElBQUksT0FBeUIsQ0FBQztBQUM5QixJQUFJLFdBQW1CLENBQUM7QUFFeEIsU0FBUyxhQUFhO0lBQ3BCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUM7R0FDckMsb0JBQW9COzs7Ozs7O3FCQU9GLG9CQUFvQjs7OztDQUl4QyxDQUFDLENBQUM7UUFFQyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXpCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxNQUFNO0lBQ2IsV0FBVyxHQUFHLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVyQyxPQUFPLGFBQWEsR0FBRyxXQUFXLENBQUM7QUFDckMsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUNoQixFQUFlLEVBQ2YsY0FBNEI7SUFFNUIsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDeEMsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUM7SUFFMUUsT0FBTztRQUNMLEdBQUcsRUFBRSxJQUFJLENB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SixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lWaWV3a2VlcGVyQm91bmRhcnlJbmZvIH0gZnJvbSAnLi92aWV3a2VlcGVyLWJvdW5kYXJ5LWluZm8nO1xuaW1wb3J0IHsgU2t5Vmlld2tlZXBlckZpeGVkU3R5bGVzIH0gZnJvbSAnLi92aWV3a2VlcGVyLWZpeGVkLXN0eWxlcyc7XG5pbXBvcnQgeyBTa3lWaWV3a2VlcGVyT2Zmc2V0IH0gZnJvbSAnLi92aWV3a2VlcGVyLW9mZnNldCc7XG5pbXBvcnQgeyBTa3lWaWV3a2VlcGVyT3B0aW9ucyB9IGZyb20gJy4vdmlld2tlZXBlci1vcHRpb25zJztcblxuY29uc3QgQ0xTX1ZJRVdLRUVQRVJfRklYRUQgPSAnc2t5LXZpZXdrZWVwZXItZml4ZWQnO1xuY29uc3QgRVZUX0FGVEVSX1ZJRVdLRUVQRVJfU1lOQyA9ICdhZnRlclZpZXdrZWVwZXJTeW5jJztcblxubGV0IHN0eWxlRWw6IEhUTUxTdHlsZUVsZW1lbnQ7XG5sZXQgbmV4dElkSW5kZXg6IG51bWJlcjtcblxuZnVuY3Rpb24gZW5zdXJlU3R5bGVFbCgpOiB2b2lkIHtcbiAgaWYgKCFzdHlsZUVsKSB7XG4gICAgc3R5bGVFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG5cbiAgICBjb25zdCBjc3MgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShgXG4uJHtDTFNfVklFV0tFRVBFUl9GSVhFRH0ge1xuICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcbiAgei1pbmRleDogOTk5O1xuICBvcGFjaXR5OiAwLjk1O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uc2t5LXRoZW1lLW1vZGVybiAuJHtDTFNfVklFV0tFRVBFUl9GSVhFRH0ge1xuICBib3gtc2hhZG93OiAwcHggMXB4IDhweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgb3BhY2l0eTogaW5pdGlhbDtcbn1cbmApO1xuXG4gICAgc3R5bGVFbC5hcHBlbmRDaGlsZChjc3MpO1xuXG4gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZUVsKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBuZXh0SWQoKTogc3RyaW5nIHtcbiAgbmV4dElkSW5kZXggPSAobmV4dElkSW5kZXggfHwgMCkgKyAxO1xuXG4gIHJldHVybiAndmlld2tlZXBlci0nICsgbmV4dElkSW5kZXg7XG59XG5cbmZ1bmN0aW9uIGdldE9mZnNldChcbiAgZWw6IEhUTUxFbGVtZW50LFxuICBzY3JvbGxhYmxlSG9zdD86IEhUTUxFbGVtZW50LFxuKTogU2t5Vmlld2tlZXBlck9mZnNldCB7XG4gIGNvbnN0IHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgY29uc3QgcGFyZW50ID0gc2Nyb2xsYWJsZUhvc3QgPyBzY3JvbGxhYmxlSG9zdCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcblxuICByZXR1cm4ge1xuICAgIHRvcDogcmVjdC50b3AgKyBwYXJlbnQuc2Nyb2xsVG9wLFxuICAgIGxlZnQ6IHJlY3QubGVmdCArIHBhcmVudC5zY3JvbGxMZWZ0LFxuICB9O1xufVxuXG5mdW5jdGlvbiBweCh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IHB4VmFsdWUgPSB2YWx1ZSA/IHZhbHVlLnRvU3RyaW5nKCkgOiAnJztcblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHB4VmFsdWUgPSB2YWx1ZSArICdweCc7XG4gIH1cblxuICByZXR1cm4gcHhWYWx1ZTtcbn1cblxuZnVuY3Rpb24gc2V0RWxQb3NpdGlvbihcbiAgZWw6IEhUTUxFbGVtZW50LFxuICBsZWZ0OiBudW1iZXIgfCBzdHJpbmcsXG4gIHRvcDogbnVtYmVyIHwgc3RyaW5nLFxuICB3aWR0aDogbnVtYmVyIHwgc3RyaW5nLFxuICBtYXJnaW5Ub3A6IG51bWJlciB8IHN0cmluZyxcbiAgY2xpcFRvcDogbnVtYmVyIHwgc3RyaW5nLFxuICBjbGlwTGVmdDogbnVtYmVyIHwgc3RyaW5nLFxuKTogdm9pZCB7XG4gIGVsLnN0eWxlLnRvcCA9IHB4KHRvcCk7XG4gIGVsLnN0eWxlLmxlZnQgPSBweChsZWZ0KTtcbiAgZWwuc3R5bGUubWFyZ2luVG9wID0gcHgobWFyZ2luVG9wKTtcbiAgZWwuc3R5bGUuY2xpcFBhdGggPVxuICAgIGNsaXBUb3AgfHwgY2xpcExlZnQgPyBgaW5zZXQoJHtweChjbGlwVG9wKX0gMCAwICR7cHgoY2xpcExlZnQpfSlgIDogJ25vbmUnO1xuXG4gIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgaWYgKHdpZHRoICE9PSBudWxsKSB7XG4gICAgZWwuc3R5bGUud2lkdGggPSBweCh3aWR0aCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0SGVpZ2h0V2l0aE1hcmdpbihlbDogSFRNTEVsZW1lbnQpOiBudW1iZXIge1xuICBjb25zdCBjb21wdXRlZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShlbCk7XG5cbiAgcmV0dXJuIChcbiAgICBlbC5vZmZzZXRIZWlnaHQgK1xuICAgIHBhcnNlSW50KGNvbXB1dGVkU3R5bGUubWFyZ2luVG9wLCAxMCkgK1xuICAgIHBhcnNlSW50KGNvbXB1dGVkU3R5bGUubWFyZ2luQm90dG9tLCAxMClcbiAgKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ3VzdG9tRXZlbnQobmFtZTogYW55KTogQ3VzdG9tRXZlbnQ8YW55PiB7XG4gIGNvbnN0IGV2dCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdDdXN0b21FdmVudCcpO1xuXG4gIGV2dC5pbml0Q3VzdG9tRXZlbnQobmFtZSwgZmFsc2UsIGZhbHNlLCB1bmRlZmluZWQpO1xuXG4gIHJldHVybiBldnQ7XG59XG5cbmV4cG9ydCBjbGFzcyBTa3lWaWV3a2VlcGVyIHtcbiAgI2JvdW5kYXJ5RWw6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG4gICNlbDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgI2lkOiBzdHJpbmc7XG5cbiAgI3NldFdpZHRoOiBib29sZWFuO1xuXG4gICN2ZXJ0aWNhbE9mZnNldDogbnVtYmVyO1xuXG4gICN2ZXJ0aWNhbE9mZnNldEVsOiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcblxuICAjdmlld3BvcnRNYXJnaW5Ub3AgPSAwO1xuXG4gICNjdXJyZW50RWxGaXhlZExlZnQ6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAjY3VycmVudEVsRml4ZWRUb3A6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAjY3VycmVudEVsRml4ZWRXaWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gICNjdXJyZW50RWxDbGlwTGVmdDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gICNjdXJyZW50RWxDbGlwVG9wOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgI2lzRGVzdHJveWVkID0gZmFsc2U7XG5cbiAgI3Njcm9sbGFibGVIb3N0OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcblxuICAjc3luY0VsUG9zaXRpb25IYW5kbGVyOiAoKSA9PiB2b2lkO1xuXG4gICNpbnRlcnNlY3Rpb25PYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgfCB1bmRlZmluZWQ7XG5cbiAgI3NwYWNlclJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlciB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBTa3lWaWV3a2VlcGVyT3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovIHt9O1xuXG4gICAgdGhpcy4jZWwgPSBvcHRpb25zLmVsO1xuICAgIHRoaXMuI2JvdW5kYXJ5RWwgPSBvcHRpb25zLmJvdW5kYXJ5RWw7XG5cbiAgICBpZiAoIXRoaXMuI2VsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1tTa3lWaWV3a2VlcGVyXSBUaGUgb3B0aW9uIGBlbGAgaXMgcmVxdWlyZWQuJyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLiNib3VuZGFyeUVsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1tTa3lWaWV3a2VlcGVyXSBUaGUgb3B0aW9uIGBib3VuZGFyeUVsYCBpcyByZXF1aXJlZC4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbCA9IHRoaXMuI2VsO1xuICAgIGNvbnN0IGJvdW5kYXJ5RWwgPSB0aGlzLiNib3VuZGFyeUVsO1xuXG4gICAgdGhpcy4jc2V0V2lkdGggPSAhIW9wdGlvbnMuc2V0V2lkdGg7XG4gICAgdGhpcy4jaWQgPSBuZXh0SWQoKTtcbiAgICB0aGlzLiNzY3JvbGxhYmxlSG9zdCA9IG9wdGlvbnMuc2Nyb2xsYWJsZUhvc3Q7XG4gICAgdGhpcy4jdmVydGljYWxPZmZzZXQgPSBvcHRpb25zLnZlcnRpY2FsT2Zmc2V0IHx8IDA7XG4gICAgdGhpcy4jdmVydGljYWxPZmZzZXRFbCA9IG9wdGlvbnMudmVydGljYWxPZmZzZXRFbDtcblxuICAgIC8vIE9ubHkgc2V0IHZpZXdwb3J0IG1hcmdpbiBpZiB0aGUgc2Nyb2xsYWJsZSBob3N0IGlzIHVuZGVmaW5lZC5cbiAgICBpZiAoIXRoaXMuI3Njcm9sbGFibGVIb3N0KSB7XG4gICAgICB0aGlzLiN2aWV3cG9ydE1hcmdpblRvcCA9IG9wdGlvbnMudmlld3BvcnRNYXJnaW5Ub3AgPz8gMDtcbiAgICB9XG5cbiAgICB0aGlzLiNzeW5jRWxQb3NpdGlvbkhhbmRsZXIgPSAoKTogdm9pZCA9PlxuICAgICAgdGhpcy5zeW5jRWxQb3NpdGlvbihlbCwgYm91bmRhcnlFbCk7XG5cbiAgICBpZiAodGhpcy4jdmVydGljYWxPZmZzZXRFbCkge1xuICAgICAgdGhpcy4jdmVydGljYWxPZmZzZXRFbC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICBFVlRfQUZURVJfVklFV0tFRVBFUl9TWU5DLFxuICAgICAgICB0aGlzLiNzeW5jRWxQb3NpdGlvbkhhbmRsZXIsXG4gICAgICApO1xuICAgIH1cblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLiNzeW5jRWxQb3NpdGlvbkhhbmRsZXIsIHRydWUpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLiNzeW5jRWxQb3NpdGlvbkhhbmRsZXIpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvcmllbnRhdGlvbmNoYW5nZScsIHRoaXMuI3N5bmNFbFBvc2l0aW9uSGFuZGxlcik7XG5cbiAgICBlbnN1cmVTdHlsZUVsKCk7XG5cbiAgICB0aGlzLnN5bmNFbFBvc2l0aW9uKGVsLCBib3VuZGFyeUVsKTtcbiAgfVxuXG4gIHB1YmxpYyBzeW5jRWxQb3NpdGlvbihlbDogSFRNTEVsZW1lbnQsIGJvdW5kYXJ5RWw6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgdmVydGljYWxPZmZzZXQgPSB0aGlzLiNjYWxjdWxhdGVWZXJ0aWNhbE9mZnNldCgpO1xuXG4gICAgLy8gV2hlbiB0aGUgZWxlbWVudCBpc24ndCB2aXNpYmxlLCBpdHMgc2l6ZSBjYW4ndCBiZSBjYWxjdWxhdGVkLCBzbyBkb24ndCBhdHRlbXB0IHN5bmNpbmcgcG9zaXRpb24gaW4gdGhpcyBjYXNlLlxuICAgIGlmIChlbC5vZmZzZXRXaWR0aCA9PT0gMCAmJiBlbC5vZmZzZXRIZWlnaHQgPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBib3VuZGFyeUluZm8gPSB0aGlzLiNnZXRCb3VuZGFyeUluZm8oZWwsIGJvdW5kYXJ5RWwpO1xuICAgIGNvbnN0IGZpeGVkU3R5bGVzID0gdGhpcy4jZ2V0Rml4ZWRTdHlsZXMoYm91bmRhcnlJbmZvLCB2ZXJ0aWNhbE9mZnNldCk7XG5cbiAgICBjb25zdCBkb0ZpeEVsID0gdGhpcy4jc2hvdWxkRml4RWwoZWwsIGJvdW5kYXJ5SW5mbywgdmVydGljYWxPZmZzZXQpO1xuXG4gICAgaWYgKHRoaXMuI25lZWRzVXBkYXRpbmcoZG9GaXhFbCwgZml4ZWRTdHlsZXMpKSB7XG4gICAgICBpZiAoZG9GaXhFbCkge1xuICAgICAgICB0aGlzLiNmaXhFbChlbCwgYm91bmRhcnlJbmZvLCBmaXhlZFN0eWxlcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLiN1bmZpeEVsKGVsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBldnQgPSBjcmVhdGVDdXN0b21FdmVudChFVlRfQUZURVJfVklFV0tFRVBFUl9TWU5DKTtcblxuICAgIGVsLmRpc3BhdGNoRXZlbnQoZXZ0KTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy4jaXNEZXN0cm95ZWQpIHtcbiAgICAgIHRoaXMuI2ludGVyc2VjdGlvbk9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy4jc3luY0VsUG9zaXRpb25IYW5kbGVyLCB0cnVlKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLiNzeW5jRWxQb3NpdGlvbkhhbmRsZXIpO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgICAgICdvcmllbnRhdGlvbmNoYW5nZScsXG4gICAgICAgIHRoaXMuI3N5bmNFbFBvc2l0aW9uSGFuZGxlcixcbiAgICAgICk7XG5cbiAgICAgIGlmICh0aGlzLiNlbCkge1xuICAgICAgICB0aGlzLiN1bmZpeEVsKHRoaXMuI2VsKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuI3ZlcnRpY2FsT2Zmc2V0RWwpIHtcbiAgICAgICAgdGhpcy4jdmVydGljYWxPZmZzZXRFbC5yZW1vdmVFdmVudExpc3RlbmVyKFxuICAgICAgICAgIEVWVF9BRlRFUl9WSUVXS0VFUEVSX1NZTkMsXG4gICAgICAgICAgdGhpcy4jc3luY0VsUG9zaXRpb25IYW5kbGVyLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLiNzcGFjZXJSZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuXG4gICAgICB0aGlzLiNlbCA9XG4gICAgICAgIHRoaXMuI2JvdW5kYXJ5RWwgPVxuICAgICAgICB0aGlzLiN2ZXJ0aWNhbE9mZnNldEVsID1cbiAgICAgICAgdGhpcy4jc3BhY2VyUmVzaXplT2JzZXJ2ZXIgPVxuICAgICAgICAgIHVuZGVmaW5lZDtcblxuICAgICAgdGhpcy4jaXNEZXN0cm95ZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gICNnZXRTcGFjZXJJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNpZCArICctc3BhY2VyJztcbiAgfVxuXG4gICN1bmZpeEVsKGVsOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IHNwYWNlckVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy4jZ2V0U3BhY2VySWQoKSk7XG5cbiAgICBpZiAoc3BhY2VyRWwpIHtcbiAgICAgIHRoaXMuI3NwYWNlclJlc2l6ZU9ic2VydmVyPy51bm9ic2VydmUoc3BhY2VyRWwpO1xuXG4gICAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICAgIGlmIChzcGFjZXJFbC5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgIHNwYWNlckVsLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoc3BhY2VyRWwpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGVsLmNsYXNzTGlzdC5yZW1vdmUoQ0xTX1ZJRVdLRUVQRVJfRklYRUQpO1xuXG4gICAgdGhpcy4jY3VycmVudEVsRml4ZWRMZWZ0ID1cbiAgICAgIHRoaXMuI2N1cnJlbnRFbEZpeGVkVG9wID1cbiAgICAgIHRoaXMuI2N1cnJlbnRFbEZpeGVkV2lkdGggPVxuICAgICAgICB1bmRlZmluZWQ7XG5cbiAgICBsZXQgd2lkdGggPSAnJztcblxuICAgIGlmICh0aGlzLiNzZXRXaWR0aCkge1xuICAgICAgd2lkdGggPSAnYXV0byc7XG4gICAgfVxuXG4gICAgc2V0RWxQb3NpdGlvbihlbCwgJycsICcnLCB3aWR0aCwgJycsIDAsIDApO1xuICB9XG5cbiAgI2NhbGN1bGF0ZVZlcnRpY2FsT2Zmc2V0KCk6IG51bWJlciB7XG4gICAgbGV0IG9mZnNldCA9IHRoaXMuI3ZlcnRpY2FsT2Zmc2V0O1xuXG4gICAgaWYgKHRoaXMuI3ZlcnRpY2FsT2Zmc2V0RWwpIHtcbiAgICAgIGNvbnN0IHZlcnRpY2FsT2Zmc2V0RWxUb3BTdHlsZSA9IHRoaXMuI3ZlcnRpY2FsT2Zmc2V0RWwuc3R5bGUudG9wO1xuICAgICAgY29uc3QgdmVydGljYWxPZmZzZXRFbFRvcCA9IHBhcnNlSW50KHZlcnRpY2FsT2Zmc2V0RWxUb3BTdHlsZSwgMTApIHx8IDA7XG5cbiAgICAgIG9mZnNldCArPSB0aGlzLiN2ZXJ0aWNhbE9mZnNldEVsLm9mZnNldEhlaWdodCArIHZlcnRpY2FsT2Zmc2V0RWxUb3A7XG4gICAgfSBlbHNlIGlmICh0aGlzLiNzY3JvbGxhYmxlSG9zdCkge1xuICAgICAgb2Zmc2V0ICs9IHRoaXMuI3Njcm9sbGFibGVIb3N0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcbiAgICB9XG5cbiAgICByZXR1cm4gb2Zmc2V0O1xuICB9XG5cbiAgI3Nob3VsZEZpeEVsKFxuICAgIGVsOiBIVE1MRWxlbWVudCxcbiAgICBib3VuZGFyeUluZm86IFNreVZpZXdrZWVwZXJCb3VuZGFyeUluZm8sXG4gICAgdmVydGljYWxPZmZzZXQ6IG51bWJlcixcbiAgKTogYm9vbGVhbiB7XG4gICAgbGV0IGFuY2hvclRvcDogbnVtYmVyO1xuXG4gICAgaWYgKGJvdW5kYXJ5SW5mby5zcGFjZXJFbCkge1xuICAgICAgYW5jaG9yVG9wID0gZ2V0T2Zmc2V0KGJvdW5kYXJ5SW5mby5zcGFjZXJFbCwgdGhpcy4jc2Nyb2xsYWJsZUhvc3QpLnRvcDtcbiAgICB9IGVsc2Uge1xuICAgICAgYW5jaG9yVG9wID0gZ2V0T2Zmc2V0KGVsLCB0aGlzLiNzY3JvbGxhYmxlSG9zdCkudG9wO1xuICAgIH1cblxuICAgIGNvbnN0IGRvRml4RWwgPVxuICAgICAgYm91bmRhcnlJbmZvLnNjcm9sbFRvcCArIHZlcnRpY2FsT2Zmc2V0ICsgdGhpcy4jdmlld3BvcnRNYXJnaW5Ub3AgPlxuICAgICAgYW5jaG9yVG9wO1xuXG4gICAgcmV0dXJuIGRvRml4RWw7XG4gIH1cblxuICAjZ2V0Rml4ZWRTdHlsZXMoXG4gICAgYm91bmRhcnlJbmZvOiBTa3lWaWV3a2VlcGVyQm91bmRhcnlJbmZvLFxuICAgIHZlcnRpY2FsT2Zmc2V0OiBudW1iZXIsXG4gICk6IFNreVZpZXdrZWVwZXJGaXhlZFN0eWxlcyB7XG4gICAgLy8gSWYgdGhlIGVsZW1lbnQgbmVlZHMgdG8gYmUgZml4ZWQsIHRoaXMgd2lsbCBjYWxjdWxhdGUgaXRzIHBvc2l0aW9uLiAgVGhlIHBvc2l0aW9uXG4gICAgLy8gd2lsbCBiZSAwIChmdWxseSB2aXNpYmxlKSB1bmxlc3MgdGhlIHVzZXIgaXMgc2Nyb2xsaW5nIHRoZSBib3VuZGFyeSBvdXQgb2Ygdmlldy5cbiAgICAvLyBJbiB0aGF0IGNhc2UsIHRoZSBlbGVtZW50IHNob3VsZCBiZWdpbiB0byBzY3JvbGwgb3V0IG9mIHZpZXcgd2l0aCB0aGVcbiAgICAvLyByZXN0IG9mIHRoZSBib3VuZGFyeSBieSBzZXR0aW5nIGl0cyB0b3AgcG9zaXRpb24gdG8gYSBuZWdhdGl2ZSB2YWx1ZS5cbiAgICBjb25zdCBlbFRvcCA9XG4gICAgICBib3VuZGFyeUluZm8uYm91bmRhcnlCb3R0b20gLVxuICAgICAgYm91bmRhcnlJbmZvLmVsSGVpZ2h0IC1cbiAgICAgIGJvdW5kYXJ5SW5mby5zY3JvbGxUb3A7XG4gICAgY29uc3QgZWxDbGlwVG9wID0gZWxUb3AgPCB2ZXJ0aWNhbE9mZnNldCA/IHZlcnRpY2FsT2Zmc2V0IC0gZWxUb3AgOiAwO1xuICAgIGNvbnN0IGVsRml4ZWRUb3AgPSBNYXRoLm1pbihlbFRvcCwgdmVydGljYWxPZmZzZXQpO1xuXG4gICAgY29uc3QgZWxGaXhlZFdpZHRoID0gYm91bmRhcnlJbmZvLmJvdW5kYXJ5RWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgY29uc3QgZWxGaXhlZExlZnQgPVxuICAgICAgYm91bmRhcnlJbmZvLmJvdW5kYXJ5T2Zmc2V0LmxlZnQgLSBib3VuZGFyeUluZm8uc2Nyb2xsTGVmdDtcbiAgICBjb25zdCBlbENsaXBMZWZ0ID0gZWxGaXhlZExlZnQgPCAwID8gMCAtIGVsRml4ZWRMZWZ0IDogMDtcblxuICAgIHJldHVybiB7XG4gICAgICBlbEZpeGVkTGVmdCxcbiAgICAgIGVsRml4ZWRUb3AsXG4gICAgICBlbEZpeGVkV2lkdGgsXG4gICAgICBlbENsaXBMZWZ0LFxuICAgICAgZWxDbGlwVG9wLFxuICAgIH07XG4gIH1cblxuICAjbmVlZHNVcGRhdGluZyhcbiAgICBkb0ZpeEVsOiBib29sZWFuLFxuICAgIGZpeGVkU3R5bGVzOiBTa3lWaWV3a2VlcGVyRml4ZWRTdHlsZXMsXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmIChcbiAgICAgIChkb0ZpeEVsICYmXG4gICAgICAgIHRoaXMuI2N1cnJlbnRFbEZpeGVkTGVmdCA9PT0gZml4ZWRTdHlsZXMuZWxGaXhlZExlZnQgJiZcbiAgICAgICAgdGhpcy4jY3VycmVudEVsRml4ZWRUb3AgPT09IGZpeGVkU3R5bGVzLmVsRml4ZWRUb3AgJiZcbiAgICAgICAgdGhpcy4jY3VycmVudEVsQ2xpcExlZnQgPT09IGZpeGVkU3R5bGVzLmVsQ2xpcExlZnQgJiZcbiAgICAgICAgdGhpcy4jY3VycmVudEVsQ2xpcFRvcCA9PT0gZml4ZWRTdHlsZXMuZWxDbGlwVG9wICYmXG4gICAgICAgIHRoaXMuI2N1cnJlbnRFbEZpeGVkV2lkdGggPT09IGZpeGVkU3R5bGVzLmVsRml4ZWRXaWR0aCkgfHxcbiAgICAgICghZG9GaXhFbCAmJlxuICAgICAgICAhKFxuICAgICAgICAgIHRoaXMuI2N1cnJlbnRFbEZpeGVkTGVmdCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgdGhpcy4jY3VycmVudEVsRml4ZWRMZWZ0ICE9PSBudWxsXG4gICAgICAgICkpXG4gICAgKSB7XG4gICAgICAvLyBUaGUgZWxlbWVudCBpcyBlaXRoZXIgY3VycmVudGx5IGZpeGVkIGFuZCBpdHMgcG9zaXRpb24gYW5kIHdpZHRoIGRvIG5vdCBuZWVkXG4gICAgICAvLyB0byBjaGFuZ2UsIG9yIHRoZSBlbGVtZW50IGlzIG5vdCBjdXJyZW50bHkgZml4ZWQgYW5kIGRvZXMgbm90IG5lZWQgdG8gYmUgZml4ZWQuXG4gICAgICAvLyBObyBjaGFuZ2VzIGFyZSBuZWVkZWQuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAjZml4RWwoXG4gICAgZWw6IEhUTUxFbGVtZW50LFxuICAgIGJvdW5kYXJ5SW5mbzogU2t5Vmlld2tlZXBlckJvdW5kYXJ5SW5mbyxcbiAgICBmaXhlZFN0eWxlczogU2t5Vmlld2tlZXBlckZpeGVkU3R5bGVzLFxuICApOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIGlmICghYm91bmRhcnlJbmZvLnNwYWNlckVsKSB7XG4gICAgICBjb25zdCBzcGFjZXJIZWlnaHQgPSBib3VuZGFyeUluZm8uZWxIZWlnaHQ7XG5cbiAgICAgIGNvbnN0IHNwYWNlckVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICBzcGFjZXJFbC5pZCA9IGJvdW5kYXJ5SW5mby5zcGFjZXJJZDtcbiAgICAgIHNwYWNlckVsLnN0eWxlLmhlaWdodCA9IHB4KHNwYWNlckhlaWdodCk7XG5cbiAgICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgICAgaWYgKGVsLnBhcmVudE5vZGUpIHtcbiAgICAgICAgZWwucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoc3BhY2VyRWwsIGVsLm5leHRTaWJsaW5nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLiNzcGFjZXJSZXNpemVPYnNlcnZlcikge1xuICAgICAgICB0aGlzLiNzcGFjZXJSZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PlxuICAgICAgICAgIHRoaXMuI3N5bmNFbFBvc2l0aW9uSGFuZGxlcigpLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLiNzcGFjZXJSZXNpemVPYnNlcnZlci5vYnNlcnZlKHNwYWNlckVsKTtcbiAgICB9XG5cbiAgICBlbC5jbGFzc0xpc3QuYWRkKENMU19WSUVXS0VFUEVSX0ZJWEVEKTtcblxuICAgIHRoaXMuI2N1cnJlbnRFbEZpeGVkVG9wID0gZml4ZWRTdHlsZXMuZWxGaXhlZFRvcDtcbiAgICB0aGlzLiNjdXJyZW50RWxGaXhlZExlZnQgPSBmaXhlZFN0eWxlcy5lbEZpeGVkTGVmdDtcbiAgICB0aGlzLiNjdXJyZW50RWxDbGlwVG9wID0gZml4ZWRTdHlsZXMuZWxDbGlwVG9wO1xuICAgIHRoaXMuI2N1cnJlbnRFbENsaXBMZWZ0ID0gZml4ZWRTdHlsZXMuZWxDbGlwTGVmdDtcbiAgICB0aGlzLiNjdXJyZW50RWxGaXhlZFdpZHRoID0gZml4ZWRTdHlsZXMuZWxGaXhlZFdpZHRoO1xuXG4gICAgbGV0IHdpZHRoID0gMDtcblxuICAgIGlmICh0aGlzLiNzZXRXaWR0aCkge1xuICAgICAgd2lkdGggPSBmaXhlZFN0eWxlcy5lbEZpeGVkV2lkdGg7XG4gICAgfVxuXG4gICAgc2V0RWxQb3NpdGlvbihcbiAgICAgIGVsLFxuICAgICAgZml4ZWRTdHlsZXMuZWxGaXhlZExlZnQsXG4gICAgICBmaXhlZFN0eWxlcy5lbEZpeGVkVG9wLFxuICAgICAgd2lkdGgsXG4gICAgICB0aGlzLiN2aWV3cG9ydE1hcmdpblRvcCxcbiAgICAgIGZpeGVkU3R5bGVzLmVsQ2xpcFRvcCxcbiAgICAgIGZpeGVkU3R5bGVzLmVsQ2xpcExlZnQsXG4gICAgKTtcbiAgfVxuXG4gICNnZXRCb3VuZGFyeUluZm8oXG4gICAgZWw6IEhUTUxFbGVtZW50LFxuICAgIGJvdW5kYXJ5RWw6IEhUTUxFbGVtZW50LFxuICApOiBTa3lWaWV3a2VlcGVyQm91bmRhcnlJbmZvIHtcbiAgICBjb25zdCBzcGFjZXJJZCA9IHRoaXMuI2dldFNwYWNlcklkKCk7XG5cbiAgICBjb25zdCBzcGFjZXJFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNwYWNlcklkKTtcblxuICAgIGNvbnN0IGJvdW5kYXJ5T2Zmc2V0ID0gZ2V0T2Zmc2V0KGJvdW5kYXJ5RWwsIHRoaXMuI3Njcm9sbGFibGVIb3N0KTtcbiAgICBjb25zdCBib3VuZGFyeVRvcCA9IGJvdW5kYXJ5T2Zmc2V0LnRvcDtcbiAgICBjb25zdCBib3VuZGFyeUJvdHRvbSA9XG4gICAgICBib3VuZGFyeVRvcCArIGJvdW5kYXJ5RWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuXG4gICAgY29uc3Qgc2Nyb2xsTGVmdCA9IHRoaXMuI3Njcm9sbGFibGVIb3N0XG4gICAgICA/IHRoaXMuI3Njcm9sbGFibGVIb3N0LnNjcm9sbExlZnRcbiAgICAgIDogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQ7XG4gICAgY29uc3Qgc2Nyb2xsVG9wID0gdGhpcy4jc2Nyb2xsYWJsZUhvc3RcbiAgICAgID8gdGhpcy4jc2Nyb2xsYWJsZUhvc3Quc2Nyb2xsVG9wXG4gICAgICA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A7XG5cbiAgICBjb25zdCBlbEhlaWdodCA9IGdldEhlaWdodFdpdGhNYXJnaW4oZWwpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGJvdW5kYXJ5Qm90dG9tLFxuICAgICAgYm91bmRhcnlPZmZzZXQsXG4gICAgICBib3VuZGFyeUVsLFxuICAgICAgZWxIZWlnaHQsXG4gICAgICBzY3JvbGxMZWZ0LFxuICAgICAgc2Nyb2xsVG9wLFxuICAgICAgc3BhY2VySWQsXG4gICAgICBzcGFjZXJFbCxcbiAgICB9O1xuICB9XG59XG4iXX0=
305
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy92aWV3a2VlcGVyL3ZpZXdrZWVwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxvQkFBb0IsR0FBRyxzQkFBc0IsQ0FBQztBQUNwRCxNQUFNLHlCQUF5QixHQUFHLHFCQUFxQixDQUFDO0FBRXhELElBQUksT0FBeUIsQ0FBQztBQUM5QixJQUFJLFdBQW1CLENBQUM7QUFFeEIsU0FBUyxhQUFhO0lBQ3BCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUM7R0FDckMsb0JBQW9COzs7Ozs7O3FCQU9GLG9CQUFvQjs7OztDQUl4QyxDQUFDLENBQUM7UUFFQyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXpCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxNQUFNO0lBQ2IsV0FBVyxHQUFHLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVyQyxPQUFPLGFBQWEsR0FBRyxXQUFXLENBQUM7QUFDckMsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUNoQixFQUFlLEVBQ2YsY0FBNEI7SUFFNUIsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDeEMsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUM7SUFFMUUsT0FBTztRQUNMLEdBQUcsRUFBRSxJQUFJLENB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bEIsV0FBVyxHQUFHLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUUxRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZTtZQUNyQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVO1lBQ2pDLENBQUMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQztRQUN4QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZTtZQUNwQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTO1lBQ2hDLENBQUMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQztRQUV2QyxNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV6QyxPQUFPO1lBQ0wsY0FBYztZQUNkLGNBQWM7WUFDZCxVQUFVO1lBQ1YsUUFBUTtZQUNSLFVBQVU7WUFDVixTQUFTO1lBQ1QsUUFBUTtZQUNSLFFBQVE7U0FDVCxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5Vmlld2tlZXBlckJvdW5kYXJ5SW5mbyB9IGZyb20gJy4vdmlld2tlZXBlci1ib3VuZGFyeS1pbmZvJztcbmltcG9ydCB7IFNreVZpZXdrZWVwZXJGaXhlZFN0eWxlcyB9IGZyb20gJy4vdmlld2tlZXBlci1maXhlZC1zdHlsZXMnO1xuaW1wb3J0IHsgU2t5Vmlld2tlZXBlck9mZnNldCB9IGZyb20gJy4vdmlld2tlZXBlci1vZmZzZXQnO1xuaW1wb3J0IHsgU2t5Vmlld2tlZXBlck9wdGlvbnMgfSBmcm9tICcuL3ZpZXdrZWVwZXItb3B0aW9ucyc7XG5cbmNvbnN0IENMU19WSUVXS0VFUEVSX0ZJWEVEID0gJ3NreS12aWV3a2VlcGVyLWZpeGVkJztcbmNvbnN0IEVWVF9BRlRFUl9WSUVXS0VFUEVSX1NZTkMgPSAnYWZ0ZXJWaWV3a2VlcGVyU3luYyc7XG5cbmxldCBzdHlsZUVsOiBIVE1MU3R5bGVFbGVtZW50O1xubGV0IG5leHRJZEluZGV4OiBudW1iZXI7XG5cbmZ1bmN0aW9uIGVuc3VyZVN0eWxlRWwoKTogdm9pZCB7XG4gIGlmICghc3R5bGVFbCkge1xuICAgIHN0eWxlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuXG4gICAgY29uc3QgY3NzID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoYFxuLiR7Q0xTX1ZJRVdLRUVQRVJfRklYRUR9IHtcbiAgcG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDk5OTtcbiAgb3BhY2l0eTogMC45NTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnNreS10aGVtZS1tb2Rlcm4gLiR7Q0xTX1ZJRVdLRUVQRVJfRklYRUR9IHtcbiAgYm94LXNoYWRvdzogMHB4IDFweCA4cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIG9wYWNpdHk6IGluaXRpYWw7XG59XG5gKTtcblxuICAgIHN0eWxlRWwuYXBwZW5kQ2hpbGQoY3NzKTtcblxuICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGVFbCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbmV4dElkKCk6IHN0cmluZyB7XG4gIG5leHRJZEluZGV4ID0gKG5leHRJZEluZGV4IHx8IDApICsgMTtcblxuICByZXR1cm4gJ3ZpZXdrZWVwZXItJyArIG5leHRJZEluZGV4O1xufVxuXG5mdW5jdGlvbiBnZXRPZmZzZXQoXG4gIGVsOiBIVE1MRWxlbWVudCxcbiAgc2Nyb2xsYWJsZUhvc3Q/OiBIVE1MRWxlbWVudCxcbik6IFNreVZpZXdrZWVwZXJPZmZzZXQge1xuICBjb25zdCByZWN0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGNvbnN0IHBhcmVudCA9IHNjcm9sbGFibGVIb3N0ID8gc2Nyb2xsYWJsZUhvc3QgOiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG5cbiAgcmV0dXJuIHtcbiAgICB0b3A6IHJlY3QudG9wICsgcGFyZW50LnNjcm9sbFRvcCxcbiAgICBsZWZ0OiByZWN0LmxlZnQgKyBwYXJlbnQuc2Nyb2xsTGVmdCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gcHgodmFsdWU6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyB7XG4gIGxldCBweFZhbHVlID0gdmFsdWUgPyB2YWx1ZS50b1N0cmluZygpIDogJyc7XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICBweFZhbHVlID0gdmFsdWUgKyAncHgnO1xuICB9XG5cbiAgcmV0dXJuIHB4VmFsdWU7XG59XG5cbmZ1bmN0aW9uIHNldEVsUG9zaXRpb24oXG4gIGVsOiBIVE1MRWxlbWVudCxcbiAgbGVmdDogbnVtYmVyIHwgc3RyaW5nLFxuICB0b3A6IG51bWJlciB8IHN0cmluZyxcbiAgd2lkdGg6IG51bWJlciB8IHN0cmluZyxcbiAgbWFyZ2luVG9wOiBudW1iZXIgfCBzdHJpbmcsXG4gIG1hcmdpblRvcFByb3BlcnR5OiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGNsaXBUb3A6IG51bWJlciB8IHN0cmluZyxcbiAgY2xpcExlZnQ6IG51bWJlciB8IHN0cmluZyxcbik6IHZvaWQge1xuICBlbC5zdHlsZS50b3AgPSBweCh0b3ApO1xuICBlbC5zdHlsZS5sZWZ0ID0gcHgobGVmdCk7XG4gIGVsLnN0eWxlLm1hcmdpblRvcCA9IG1hcmdpblRvcFByb3BlcnR5XG4gICAgPyBgY2FsYygke3B4KG1hcmdpblRvcCl9ICsgdmFyKCR7bWFyZ2luVG9wUHJvcGVydHl9LCAwKSlgXG4gICAgOiBweChtYXJnaW5Ub3ApO1xuICBlbC5zdHlsZS5jbGlwUGF0aCA9XG4gICAgY2xpcFRvcCB8fCBjbGlwTGVmdCA/IGBpbnNldCgke3B4KGNsaXBUb3ApfSAwIDAgJHtweChjbGlwTGVmdCl9KWAgOiAnbm9uZSc7XG5cbiAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gIC8qIHNhbml0eSBjaGVjayAqL1xuICBpZiAod2lkdGggIT09IG51bGwpIHtcbiAgICBlbC5zdHlsZS53aWR0aCA9IHB4KHdpZHRoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRIZWlnaHRXaXRoTWFyZ2luKGVsOiBIVE1MRWxlbWVudCk6IG51bWJlciB7XG4gIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGVsKTtcblxuICByZXR1cm4gKFxuICAgIGVsLm9mZnNldEhlaWdodCArXG4gICAgcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS5tYXJnaW5Ub3AsIDEwKSArXG4gICAgcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS5tYXJnaW5Cb3R0b20sIDEwKVxuICApO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVDdXN0b21FdmVudChuYW1lOiBhbnkpOiBDdXN0b21FdmVudDxhbnk+IHtcbiAgY29uc3QgZXZ0ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0N1c3RvbUV2ZW50Jyk7XG5cbiAgZXZ0LmluaXRDdXN0b21FdmVudChuYW1lLCBmYWxzZSwgZmFsc2UsIHVuZGVmaW5lZCk7XG5cbiAgcmV0dXJuIGV2dDtcbn1cblxuZXhwb3J0IGNsYXNzIFNreVZpZXdrZWVwZXIge1xuICAjYm91bmRhcnlFbDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgI2VsOiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcblxuICAjaWQ6IHN0cmluZztcblxuICAjc2V0V2lkdGg6IGJvb2xlYW47XG5cbiAgI3ZlcnRpY2FsT2Zmc2V0OiBudW1iZXI7XG5cbiAgI3ZlcnRpY2FsT2Zmc2V0RWw6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG4gICN2aWV3cG9ydE1hcmdpblRvcCA9IDA7XG5cbiAgI3ZpZXdwb3J0TWFyZ2luUHJvcGVydHk6IGAtLSR7c3RyaW5nfWAgfCB1bmRlZmluZWQ7XG5cbiAgI2N1cnJlbnRFbEZpeGVkTGVmdDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gICNjdXJyZW50RWxGaXhlZFRvcDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gICNjdXJyZW50RWxGaXhlZFdpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgI2N1cnJlbnRFbENsaXBMZWZ0OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgI2N1cnJlbnRFbENsaXBUb3A6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICAjaXNEZXN0cm95ZWQgPSBmYWxzZTtcblxuICAjc2Nyb2xsYWJsZUhvc3Q6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG4gICNzeW5jRWxQb3NpdGlvbkhhbmRsZXI6ICgpID0+IHZvaWQ7XG5cbiAgI2ludGVyc2VjdGlvbk9ic2VydmVyOiBJbnRlcnNlY3Rpb25PYnNlcnZlciB8IHVuZGVmaW5lZDtcblxuICAjc3BhY2VyUmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFNreVZpZXdrZWVwZXJPcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8ge307XG5cbiAgICB0aGlzLiNlbCA9IG9wdGlvbnMuZWw7XG4gICAgdGhpcy4jYm91bmRhcnlFbCA9IG9wdGlvbnMuYm91bmRhcnlFbDtcblxuICAgIGlmICghdGhpcy4jZWwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignW1NreVZpZXdrZWVwZXJdIFRoZSBvcHRpb24gYGVsYCBpcyByZXF1aXJlZC4nKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuI2JvdW5kYXJ5RWwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignW1NreVZpZXdrZWVwZXJdIFRoZSBvcHRpb24gYGJvdW5kYXJ5RWxgIGlzIHJlcXVpcmVkLicpO1xuICAgIH1cblxuICAgIGNvbnN0IGVsID0gdGhpcy4jZWw7XG4gICAgY29uc3QgYm91bmRhcnlFbCA9IHRoaXMuI2JvdW5kYXJ5RWw7XG5cbiAgICB0aGlzLiNzZXRXaWR0aCA9ICEhb3B0aW9ucy5zZXRXaWR0aDtcbiAgICB0aGlzLiNpZCA9IG5leHRJZCgpO1xuICAgIHRoaXMuI3Njcm9sbGFibGVIb3N0ID0gb3B0aW9ucy5zY3JvbGxhYmxlSG9zdDtcbiAgICB0aGlzLiN2ZXJ0aWNhbE9mZnNldCA9IG9wdGlvbnMudmVydGljYWxPZmZzZXQgfHwgMDtcbiAgICB0aGlzLiN2ZXJ0aWNhbE9mZnNldEVsID0gb3B0aW9ucy52ZXJ0aWNhbE9mZnNldEVsO1xuXG4gICAgLy8gT25seSBzZXQgdmlld3BvcnQgbWFyZ2luIGlmIHRoZSBzY3JvbGxhYmxlIGhvc3QgaXMgdW5kZWZpbmVkLlxuICAgIGlmICghdGhpcy4jc2Nyb2xsYWJsZUhvc3QpIHtcbiAgICAgIHRoaXMuI3ZpZXdwb3J0TWFyZ2luVG9wID0gb3B0aW9ucy52aWV3cG9ydE1hcmdpblRvcCA/PyAwO1xuICAgICAgdGhpcy4jdmlld3BvcnRNYXJnaW5Qcm9wZXJ0eSA9IG9wdGlvbnMudmlld3BvcnRNYXJnaW5Qcm9wZXJ0eTtcbiAgICB9XG5cbiAgICB0aGlzLiNzeW5jRWxQb3NpdGlvbkhhbmRsZXIgPSAoKTogdm9pZCA9PlxuICAgICAgdGhpcy5zeW5jRWxQb3NpdGlvbihlbCwgYm91bmRhcnlFbCk7XG5cbiAgICBpZiAodGhpcy4jdmVydGljYWxPZmZzZXRFbCkge1xuICAgICAgdGhpcy4jdmVydGljYWxPZmZzZXRFbC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICBFVlRfQUZURVJfVklFV0tFRVBFUl9TWU5DLFxuICAgICAgICB0aGlzLiNzeW5jRWxQb3NpdGlvbkhhbmRsZXIsXG4gICAgICApO1xuICAgIH1cblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLiNzeW5jRWxQb3NpdGlvbkhhbmRsZXIsIHRydWUpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLiNzeW5jRWxQb3NpdGlvbkhhbmRsZXIpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvcmllbnRhdGlvbmNoYW5nZScsIHRoaXMuI3N5bmNFbFBvc2l0aW9uSGFuZGxlcik7XG5cbiAgICBlbnN1cmVTdHlsZUVsKCk7XG5cbiAgICB0aGlzLnN5bmNFbFBvc2l0aW9uKGVsLCBib3VuZGFyeUVsKTtcbiAgfVxuXG4gIHB1YmxpYyBzeW5jRWxQb3NpdGlvbihlbDogSFRNTEVsZW1lbnQsIGJvdW5kYXJ5RWw6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgdmVydGljYWxPZmZzZXQgPSB0aGlzLiNjYWxjdWxhdGVWZXJ0aWNhbE9mZnNldCgpO1xuXG4gICAgLy8gV2hlbiB0aGUgZWxlbWVudCBpc24ndCB2aXNpYmxlLCBpdHMgc2l6ZSBjYW4ndCBiZSBjYWxjdWxhdGVkLCBzbyBkb24ndCBhdHRlbXB0IHN5bmNpbmcgcG9zaXRpb24gaW4gdGhpcyBjYXNlLlxuICAgIGlmIChlbC5vZmZzZXRXaWR0aCA9PT0gMCAmJiBlbC5vZmZzZXRIZWlnaHQgPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBib3VuZGFyeUluZm8gPSB0aGlzLiNnZXRCb3VuZGFyeUluZm8oZWwsIGJvdW5kYXJ5RWwpO1xuICAgIGNvbnN0IGZpeGVkU3R5bGVzID0gdGhpcy4jZ2V0Rml4ZWRTdHlsZXMoYm91bmRhcnlJbmZvLCB2ZXJ0aWNhbE9mZnNldCk7XG5cbiAgICBjb25zdCBkb0ZpeEVsID0gdGhpcy4jc2hvdWxkRml4RWwoZWwsIGJvdW5kYXJ5SW5mbywgdmVydGljYWxPZmZzZXQpO1xuXG4gICAgaWYgKHRoaXMuI25lZWRzVXBkYXRpbmcoZG9GaXhFbCwgZml4ZWRTdHlsZXMpKSB7XG4gICAgICBpZiAoZG9GaXhFbCkge1xuICAgICAgICB0aGlzLiNmaXhFbChlbCwgYm91bmRhcnlJbmZvLCBmaXhlZFN0eWxlcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLiN1bmZpeEVsKGVsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBldnQgPSBjcmVhdGVDdXN0b21FdmVudChFVlRfQUZURVJfVklFV0tFRVBFUl9TWU5DKTtcblxuICAgIGVsLmRpc3BhdGNoRXZlbnQoZXZ0KTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy4jaXNEZXN0cm95ZWQpIHtcbiAgICAgIHRoaXMuI2ludGVyc2VjdGlvbk9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy4jc3luY0VsUG9zaXRpb25IYW5kbGVyLCB0cnVlKTtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLiNzeW5jRWxQb3NpdGlvbkhhbmRsZXIpO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgICAgICdvcmllbnRhdGlvbmNoYW5nZScsXG4gICAgICAgIHRoaXMuI3N5bmNFbFBvc2l0aW9uSGFuZGxlcixcbiAgICAgICk7XG5cbiAgICAgIGlmICh0aGlzLiNlbCkge1xuICAgICAgICB0aGlzLiN1bmZpeEVsKHRoaXMuI2VsKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuI3ZlcnRpY2FsT2Zmc2V0RWwpIHtcbiAgICAgICAgdGhpcy4jdmVydGljYWxPZmZzZXRFbC5yZW1vdmVFdmVudExpc3RlbmVyKFxuICAgICAgICAgIEVWVF9BRlRFUl9WSUVXS0VFUEVSX1NZTkMsXG4gICAgICAgICAgdGhpcy4jc3luY0VsUG9zaXRpb25IYW5kbGVyLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLiNzcGFjZXJSZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuXG4gICAgICB0aGlzLiNlbCA9XG4gICAgICAgIHRoaXMuI2JvdW5kYXJ5RWwgPVxuICAgICAgICB0aGlzLiN2ZXJ0aWNhbE9mZnNldEVsID1cbiAgICAgICAgdGhpcy4jc3BhY2VyUmVzaXplT2JzZXJ2ZXIgPVxuICAgICAgICAgIHVuZGVmaW5lZDtcblxuICAgICAgdGhpcy4jaXNEZXN0cm95ZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gICNnZXRTcGFjZXJJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNpZCArICctc3BhY2VyJztcbiAgfVxuXG4gICN1bmZpeEVsKGVsOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGNvbnN0IHNwYWNlckVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy4jZ2V0U3BhY2VySWQoKSk7XG5cbiAgICBpZiAoc3BhY2VyRWwpIHtcbiAgICAgIHRoaXMuI3NwYWNlclJlc2l6ZU9ic2VydmVyPy51bm9ic2VydmUoc3BhY2VyRWwpO1xuXG4gICAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICAgIGlmIChzcGFjZXJFbC5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgIHNwYWNlckVsLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoc3BhY2VyRWwpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGVsLmNsYXNzTGlzdC5yZW1vdmUoQ0xTX1ZJRVdLRUVQRVJfRklYRUQpO1xuXG4gICAgdGhpcy4jY3VycmVudEVsRml4ZWRMZWZ0ID1cbiAgICAgIHRoaXMuI2N1cnJlbnRFbEZpeGVkVG9wID1cbiAgICAgIHRoaXMuI2N1cnJlbnRFbEZpeGVkV2lkdGggPVxuICAgICAgICB1bmRlZmluZWQ7XG5cbiAgICBsZXQgd2lkdGggPSAnJztcblxuICAgIGlmICh0aGlzLiNzZXRXaWR0aCkge1xuICAgICAgd2lkdGggPSAnYXV0byc7XG4gICAgfVxuXG4gICAgc2V0RWxQb3NpdGlvbihlbCwgJycsICcnLCB3aWR0aCwgJycsICcnLCAwLCAwKTtcbiAgfVxuXG4gICNjYWxjdWxhdGVWZXJ0aWNhbE9mZnNldCgpOiBudW1iZXIge1xuICAgIGxldCBvZmZzZXQgPSB0aGlzLiN2ZXJ0aWNhbE9mZnNldDtcblxuICAgIGlmICh0aGlzLiN2ZXJ0aWNhbE9mZnNldEVsKSB7XG4gICAgICBjb25zdCB2ZXJ0aWNhbE9mZnNldEVsVG9wU3R5bGUgPSB0aGlzLiN2ZXJ0aWNhbE9mZnNldEVsLnN0eWxlLnRvcDtcbiAgICAgIGNvbnN0IHZlcnRpY2FsT2Zmc2V0RWxUb3AgPSBwYXJzZUludCh2ZXJ0aWNhbE9mZnNldEVsVG9wU3R5bGUsIDEwKSB8fCAwO1xuXG4gICAgICBvZmZzZXQgKz0gdGhpcy4jdmVydGljYWxPZmZzZXRFbC5vZmZzZXRIZWlnaHQgKyB2ZXJ0aWNhbE9mZnNldEVsVG9wO1xuICAgIH0gZWxzZSBpZiAodGhpcy4jc2Nyb2xsYWJsZUhvc3QpIHtcbiAgICAgIG9mZnNldCArPSB0aGlzLiNzY3JvbGxhYmxlSG9zdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9mZnNldDtcbiAgfVxuXG4gICNzaG91bGRGaXhFbChcbiAgICBlbDogSFRNTEVsZW1lbnQsXG4gICAgYm91bmRhcnlJbmZvOiBTa3lWaWV3a2VlcGVyQm91bmRhcnlJbmZvLFxuICAgIHZlcnRpY2FsT2Zmc2V0OiBudW1iZXIsXG4gICk6IGJvb2xlYW4ge1xuICAgIGxldCBhbmNob3JUb3A6IG51bWJlcjtcblxuICAgIGlmIChib3VuZGFyeUluZm8uc3BhY2VyRWwpIHtcbiAgICAgIGFuY2hvclRvcCA9IGdldE9mZnNldChib3VuZGFyeUluZm8uc3BhY2VyRWwsIHRoaXMuI3Njcm9sbGFibGVIb3N0KS50b3A7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFuY2hvclRvcCA9IGdldE9mZnNldChlbCwgdGhpcy4jc2Nyb2xsYWJsZUhvc3QpLnRvcDtcbiAgICB9XG5cbiAgICBsZXQgdmlld3BvcnRNYXJnaW5Ub3AgPSB0aGlzLiN2aWV3cG9ydE1hcmdpblRvcDtcbiAgICBjb25zdCB2aWV3cG9ydE1hcmdpblByb3BlcnR5ID1cbiAgICAgIHRoaXMuI3ZpZXdwb3J0TWFyZ2luUHJvcGVydHkgJiZcbiAgICAgIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuZ2V0UHJvcGVydHlWYWx1ZShcbiAgICAgICAgdGhpcy4jdmlld3BvcnRNYXJnaW5Qcm9wZXJ0eSxcbiAgICAgICk7XG4gICAgaWYgKHZpZXdwb3J0TWFyZ2luUHJvcGVydHkpIHtcbiAgICAgIHZpZXdwb3J0TWFyZ2luVG9wICs9IHBhcnNlSW50KHZpZXdwb3J0TWFyZ2luUHJvcGVydHksIDEwKTtcbiAgICB9XG5cbiAgICBjb25zdCBkb0ZpeEVsID1cbiAgICAgIGJvdW5kYXJ5SW5mby5zY3JvbGxUb3AgKyB2ZXJ0aWNhbE9mZnNldCArIHZpZXdwb3J0TWFyZ2luVG9wID4gYW5jaG9yVG9wO1xuXG4gICAgcmV0dXJuIGRvRml4RWw7XG4gIH1cblxuICAjZ2V0Rml4ZWRTdHlsZXMoXG4gICAgYm91bmRhcnlJbmZvOiBTa3lWaWV3a2VlcGVyQm91bmRhcnlJbmZvLFxuICAgIHZlcnRpY2FsT2Zmc2V0OiBudW1iZXIsXG4gICk6IFNreVZpZXdrZWVwZXJGaXhlZFN0eWxlcyB7XG4gICAgLy8gSWYgdGhlIGVsZW1lbnQgbmVlZHMgdG8gYmUgZml4ZWQsIHRoaXMgd2lsbCBjYWxjdWxhdGUgaXRzIHBvc2l0aW9uLiAgVGhlIHBvc2l0aW9uXG4gICAgLy8gd2lsbCBiZSAwIChmdWxseSB2aXNpYmxlKSB1bmxlc3MgdGhlIHVzZXIgaXMgc2Nyb2xsaW5nIHRoZSBib3VuZGFyeSBvdXQgb2Ygdmlldy5cbiAgICAvLyBJbiB0aGF0IGNhc2UsIHRoZSBlbGVtZW50IHNob3VsZCBiZWdpbiB0byBzY3JvbGwgb3V0IG9mIHZpZXcgd2l0aCB0aGVcbiAgICAvLyByZXN0IG9mIHRoZSBib3VuZGFyeSBieSBzZXR0aW5nIGl0cyB0b3AgcG9zaXRpb24gdG8gYSBuZWdhdGl2ZSB2YWx1ZS5cbiAgICBjb25zdCBlbFRvcCA9XG4gICAgICBib3VuZGFyeUluZm8uYm91bmRhcnlCb3R0b20gLVxuICAgICAgYm91bmRhcnlJbmZvLmVsSGVpZ2h0IC1cbiAgICAgIGJvdW5kYXJ5SW5mby5zY3JvbGxUb3A7XG4gICAgY29uc3QgZWxDbGlwVG9wID0gZWxUb3AgPCB2ZXJ0aWNhbE9mZnNldCA/IHZlcnRpY2FsT2Zmc2V0IC0gZWxUb3AgOiAwO1xuICAgIGNvbnN0IGVsRml4ZWRUb3AgPSBNYXRoLm1pbihlbFRvcCwgdmVydGljYWxPZmZzZXQpO1xuXG4gICAgY29uc3QgZWxGaXhlZFdpZHRoID0gYm91bmRhcnlJbmZvLmJvdW5kYXJ5RWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgY29uc3QgZWxGaXhlZExlZnQgPVxuICAgICAgYm91bmRhcnlJbmZvLmJvdW5kYXJ5T2Zmc2V0LmxlZnQgLSBib3VuZGFyeUluZm8uc2Nyb2xsTGVmdDtcbiAgICBjb25zdCBlbENsaXBMZWZ0ID0gZWxGaXhlZExlZnQgPCAwID8gMCAtIGVsRml4ZWRMZWZ0IDogMDtcblxuICAgIHJldHVybiB7XG4gICAgICBlbEZpeGVkTGVmdCxcbiAgICAgIGVsRml4ZWRUb3AsXG4gICAgICBlbEZpeGVkV2lkdGgsXG4gICAgICBlbENsaXBMZWZ0LFxuICAgICAgZWxDbGlwVG9wLFxuICAgIH07XG4gIH1cblxuICAjbmVlZHNVcGRhdGluZyhcbiAgICBkb0ZpeEVsOiBib29sZWFuLFxuICAgIGZpeGVkU3R5bGVzOiBTa3lWaWV3a2VlcGVyRml4ZWRTdHlsZXMsXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmIChcbiAgICAgIChkb0ZpeEVsICYmXG4gICAgICAgIHRoaXMuI2N1cnJlbnRFbEZpeGVkTGVmdCA9PT0gZml4ZWRTdHlsZXMuZWxGaXhlZExlZnQgJiZcbiAgICAgICAgdGhpcy4jY3VycmVudEVsRml4ZWRUb3AgPT09IGZpeGVkU3R5bGVzLmVsRml4ZWRUb3AgJiZcbiAgICAgICAgdGhpcy4jY3VycmVudEVsQ2xpcExlZnQgPT09IGZpeGVkU3R5bGVzLmVsQ2xpcExlZnQgJiZcbiAgICAgICAgdGhpcy4jY3VycmVudEVsQ2xpcFRvcCA9PT0gZml4ZWRTdHlsZXMuZWxDbGlwVG9wICYmXG4gICAgICAgIHRoaXMuI2N1cnJlbnRFbEZpeGVkV2lkdGggPT09IGZpeGVkU3R5bGVzLmVsRml4ZWRXaWR0aCkgfHxcbiAgICAgICghZG9GaXhFbCAmJlxuICAgICAgICAhKFxuICAgICAgICAgIHRoaXMuI2N1cnJlbnRFbEZpeGVkTGVmdCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgdGhpcy4jY3VycmVudEVsRml4ZWRMZWZ0ICE9PSBudWxsXG4gICAgICAgICkpXG4gICAgKSB7XG4gICAgICAvLyBUaGUgZWxlbWVudCBpcyBlaXRoZXIgY3VycmVudGx5IGZpeGVkIGFuZCBpdHMgcG9zaXRpb24gYW5kIHdpZHRoIGRvIG5vdCBuZWVkXG4gICAgICAvLyB0byBjaGFuZ2UsIG9yIHRoZSBlbGVtZW50IGlzIG5vdCBjdXJyZW50bHkgZml4ZWQgYW5kIGRvZXMgbm90IG5lZWQgdG8gYmUgZml4ZWQuXG4gICAgICAvLyBObyBjaGFuZ2VzIGFyZSBuZWVkZWQuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAjZml4RWwoXG4gICAgZWw6IEhUTUxFbGVtZW50LFxuICAgIGJvdW5kYXJ5SW5mbzogU2t5Vmlld2tlZXBlckJvdW5kYXJ5SW5mbyxcbiAgICBmaXhlZFN0eWxlczogU2t5Vmlld2tlZXBlckZpeGVkU3R5bGVzLFxuICApOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIGlmICghYm91bmRhcnlJbmZvLnNwYWNlckVsKSB7XG4gICAgICBjb25zdCBzcGFjZXJIZWlnaHQgPSBib3VuZGFyeUluZm8uZWxIZWlnaHQ7XG5cbiAgICAgIGNvbnN0IHNwYWNlckVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICBzcGFjZXJFbC5pZCA9IGJvdW5kYXJ5SW5mby5zcGFjZXJJZDtcbiAgICAgIHNwYWNlckVsLnN0eWxlLmhlaWdodCA9IHB4KHNwYWNlckhlaWdodCk7XG5cbiAgICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgICAgaWYgKGVsLnBhcmVudE5vZGUpIHtcbiAgICAgICAgZWwucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoc3BhY2VyRWwsIGVsLm5leHRTaWJsaW5nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLiNzcGFjZXJSZXNpemVPYnNlcnZlcikge1xuICAgICAgICB0aGlzLiNzcGFjZXJSZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PlxuICAgICAgICAgIHRoaXMuI3N5bmNFbFBvc2l0aW9uSGFuZGxlcigpLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLiNzcGFjZXJSZXNpemVPYnNlcnZlci5vYnNlcnZlKHNwYWNlckVsKTtcbiAgICB9XG5cbiAgICBlbC5jbGFzc0xpc3QuYWRkKENMU19WSUVXS0VFUEVSX0ZJWEVEKTtcblxuICAgIHRoaXMuI2N1cnJlbnRFbEZpeGVkVG9wID0gZml4ZWRTdHlsZXMuZWxGaXhlZFRvcDtcbiAgICB0aGlzLiNjdXJyZW50RWxGaXhlZExlZnQgPSBmaXhlZFN0eWxlcy5lbEZpeGVkTGVmdDtcbiAgICB0aGlzLiNjdXJyZW50RWxDbGlwVG9wID0gZml4ZWRTdHlsZXMuZWxDbGlwVG9wO1xuICAgIHRoaXMuI2N1cnJlbnRFbENsaXBMZWZ0ID0gZml4ZWRTdHlsZXMuZWxDbGlwTGVmdDtcbiAgICB0aGlzLiNjdXJyZW50RWxGaXhlZFdpZHRoID0gZml4ZWRTdHlsZXMuZWxGaXhlZFdpZHRoO1xuXG4gICAgbGV0IHdpZHRoID0gMDtcblxuICAgIGlmICh0aGlzLiNzZXRXaWR0aCkge1xuICAgICAgd2lkdGggPSBmaXhlZFN0eWxlcy5lbEZpeGVkV2lkdGg7XG4gICAgfVxuXG4gICAgc2V0RWxQb3NpdGlvbihcbiAgICAgIGVsLFxuICAgICAgZml4ZWRTdHlsZXMuZWxGaXhlZExlZnQsXG4gICAgICBmaXhlZFN0eWxlcy5lbEZpeGVkVG9wLFxuICAgICAgd2lkdGgsXG4gICAgICB0aGlzLiN2aWV3cG9ydE1hcmdpblRvcCxcbiAgICAgIHRoaXMuI3ZpZXdwb3J0TWFyZ2luUHJvcGVydHksXG4gICAgICBmaXhlZFN0eWxlcy5lbENsaXBUb3AsXG4gICAgICBmaXhlZFN0eWxlcy5lbENsaXBMZWZ0LFxuICAgICk7XG4gIH1cblxuICAjZ2V0Qm91bmRhcnlJbmZvKFxuICAgIGVsOiBIVE1MRWxlbWVudCxcbiAgICBib3VuZGFyeUVsOiBIVE1MRWxlbWVudCxcbiAgKTogU2t5Vmlld2tlZXBlckJvdW5kYXJ5SW5mbyB7XG4gICAgY29uc3Qgc3BhY2VySWQgPSB0aGlzLiNnZXRTcGFjZXJJZCgpO1xuXG4gICAgY29uc3Qgc3BhY2VyRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzcGFjZXJJZCk7XG5cbiAgICBjb25zdCBib3VuZGFyeU9mZnNldCA9IGdldE9mZnNldChib3VuZGFyeUVsLCB0aGlzLiNzY3JvbGxhYmxlSG9zdCk7XG4gICAgY29uc3QgYm91bmRhcnlUb3AgPSBib3VuZGFyeU9mZnNldC50b3A7XG4gICAgY29uc3QgYm91bmRhcnlCb3R0b20gPVxuICAgICAgYm91bmRhcnlUb3AgKyBib3VuZGFyeUVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcblxuICAgIGNvbnN0IHNjcm9sbExlZnQgPSB0aGlzLiNzY3JvbGxhYmxlSG9zdFxuICAgICAgPyB0aGlzLiNzY3JvbGxhYmxlSG9zdC5zY3JvbGxMZWZ0XG4gICAgICA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0O1xuICAgIGNvbnN0IHNjcm9sbFRvcCA9IHRoaXMuI3Njcm9sbGFibGVIb3N0XG4gICAgICA/IHRoaXMuI3Njcm9sbGFibGVIb3N0LnNjcm9sbFRvcFxuICAgICAgOiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wO1xuXG4gICAgY29uc3QgZWxIZWlnaHQgPSBnZXRIZWlnaHRXaXRoTWFyZ2luKGVsKTtcblxuICAgIHJldHVybiB7XG4gICAgICBib3VuZGFyeUJvdHRvbSxcbiAgICAgIGJvdW5kYXJ5T2Zmc2V0LFxuICAgICAgYm91bmRhcnlFbCxcbiAgICAgIGVsSGVpZ2h0LFxuICAgICAgc2Nyb2xsTGVmdCxcbiAgICAgIHNjcm9sbFRvcCxcbiAgICAgIHNwYWNlcklkLFxuICAgICAgc3BhY2VyRWwsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1oYXJuZXNzLWZpbHRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS90ZXN0aW5nL3NyYy9tb2R1bGVzL292ZXJsYXkvb3ZlcmxheS1oYXJuZXNzLWZpbHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNreUhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2hhcm5lc3MtZmlsdGVycyc7XG5cbi8qKlxuICogQSBzZXQgb2YgY3JpdGVyaWEgdGhhdCBjYW4gYmUgdXNlZCB0byBmaWx0ZXIgYSBsaXN0IG9mIFNreU92ZXJsYXlIYXJuZXNzIGluc3RhbmNlcy5cbiAqIEBpbnRlcm5hbFxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWludGVyZmFjZSwgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LW9iamVjdC10eXBlXG5leHBvcnQgaW50ZXJmYWNlIFNreU92ZXJsYXlIYXJuZXNzRmlsdGVycyBleHRlbmRzIFNreUhhcm5lc3NGaWx0ZXJzIHt9XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1oYXJuZXNzLWZpbHRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS90ZXN0aW5nL3NyYy9tb2R1bGVzL292ZXJsYXkvb3ZlcmxheS1oYXJuZXNzLWZpbHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VIYXJuZXNzRmlsdGVycyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcblxuLyoqXG4gKiBBIHNldCBvZiBjcml0ZXJpYSB0aGF0IGNhbiBiZSB1c2VkIHRvIGZpbHRlciBhIGxpc3Qgb2YgU2t5T3ZlcmxheUhhcm5lc3MgaW5zdGFuY2VzLlxuICogQGludGVybmFsXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktaW50ZXJmYWNlLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktb2JqZWN0LXR5cGVcbmV4cG9ydCBpbnRlcmZhY2UgU2t5T3ZlcmxheUhhcm5lc3NGaWx0ZXJzIGV4dGVuZHMgQmFzZUhhcm5lc3NGaWx0ZXJzIHt9XG4iXX0=
@@ -15,5 +15,5 @@ export class Version {
15
15
  /**
16
16
  * Represents the version of @skyux/core.
17
17
  */
18
- export const VERSION = new Version('11.40.0');
18
+ export const VERSION = new Version('11.42.0');
19
19
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdDQUF3QztBQUN4QyxtRkFBbUY7QUFFbkY7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLE9BQU87SUFLbEIsWUFBNEIsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7UUFDdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsRCxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVGFrZW4gZnJvbSBBbmd1bGFyJ3MgdmVyc2lvbi50cyBmaWxlLlxuLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvMTYuMi54L3BhY2thZ2VzL2NvcmUvc3JjL3ZlcnNpb24udHNcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSB2ZXJzaW9uIG9mIGEgcGFja2FnZS5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgVmVyc2lvbiB7XG4gIHB1YmxpYyByZWFkb25seSBtYWpvcjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbWlub3I6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHBhdGNoOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGZ1bGw6IHN0cmluZykge1xuICAgIHRoaXMubWFqb3IgPSBmdWxsLnNwbGl0KCcuJylbMF07XG4gICAgdGhpcy5taW5vciA9IGZ1bGwuc3BsaXQoJy4nKVsxXTtcbiAgICB0aGlzLnBhdGNoID0gZnVsbC5zcGxpdCgnLicpLnNsaWNlKDIpLmpvaW4oJy4nKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHZlcnNpb24gb2YgQHNreXV4L2NvcmUuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gbmV3IFZlcnNpb24oJzAuMC4wLVBMQUNFSE9MREVSJyk7XG4iXX0=
@@ -4076,10 +4076,12 @@ function px(value) {
4076
4076
  }
4077
4077
  return pxValue;
4078
4078
  }
4079
- function setElPosition(el, left, top, width, marginTop, clipTop, clipLeft) {
4079
+ function setElPosition(el, left, top, width, marginTop, marginTopProperty, clipTop, clipLeft) {
4080
4080
  el.style.top = px(top);
4081
4081
  el.style.left = px(left);
4082
- el.style.marginTop = px(marginTop);
4082
+ el.style.marginTop = marginTopProperty
4083
+ ? `calc(${px(marginTop)} + var(${marginTopProperty}, 0))`
4084
+ : px(marginTop);
4083
4085
  el.style.clipPath =
4084
4086
  clipTop || clipLeft ? `inset(${px(clipTop)} 0 0 ${px(clipLeft)})` : 'none';
4085
4087
  /*istanbul ignore else*/
@@ -4107,6 +4109,7 @@ class SkyViewkeeper {
4107
4109
  #verticalOffset;
4108
4110
  #verticalOffsetEl;
4109
4111
  #viewportMarginTop = 0;
4112
+ #viewportMarginProperty;
4110
4113
  #currentElFixedLeft;
4111
4114
  #currentElFixedTop;
4112
4115
  #currentElFixedWidth;
@@ -4137,6 +4140,7 @@ class SkyViewkeeper {
4137
4140
  // Only set viewport margin if the scrollable host is undefined.
4138
4141
  if (!this.#scrollableHost) {
4139
4142
  this.#viewportMarginTop = options.viewportMarginTop ?? 0;
4143
+ this.#viewportMarginProperty = options.viewportMarginProperty;
4140
4144
  }
4141
4145
  this.#syncElPositionHandler = () => this.syncElPosition(el, boundaryEl);
4142
4146
  if (this.#verticalOffsetEl) {
@@ -4210,7 +4214,7 @@ class SkyViewkeeper {
4210
4214
  if (this.#setWidth) {
4211
4215
  width = 'auto';
4212
4216
  }
4213
- setElPosition(el, '', '', width, '', 0, 0);
4217
+ setElPosition(el, '', '', width, '', '', 0, 0);
4214
4218
  }
4215
4219
  #calculateVerticalOffset() {
4216
4220
  let offset = this.#verticalOffset;
@@ -4232,8 +4236,13 @@ class SkyViewkeeper {
4232
4236
  else {
4233
4237
  anchorTop = getOffset(el, this.#scrollableHost).top;
4234
4238
  }
4235
- const doFixEl = boundaryInfo.scrollTop + verticalOffset + this.#viewportMarginTop >
4236
- anchorTop;
4239
+ let viewportMarginTop = this.#viewportMarginTop;
4240
+ const viewportMarginProperty = this.#viewportMarginProperty &&
4241
+ getComputedStyle(document.body).getPropertyValue(this.#viewportMarginProperty);
4242
+ if (viewportMarginProperty) {
4243
+ viewportMarginTop += parseInt(viewportMarginProperty, 10);
4244
+ }
4245
+ const doFixEl = boundaryInfo.scrollTop + verticalOffset + viewportMarginTop > anchorTop;
4237
4246
  return doFixEl;
4238
4247
  }
4239
4248
  #getFixedStyles(boundaryInfo, verticalOffset) {
@@ -4301,7 +4310,7 @@ class SkyViewkeeper {
4301
4310
  if (this.#setWidth) {
4302
4311
  width = fixedStyles.elFixedWidth;
4303
4312
  }
4304
- setElPosition(el, fixedStyles.elFixedLeft, fixedStyles.elFixedTop, width, this.#viewportMarginTop, fixedStyles.elClipTop, fixedStyles.elClipLeft);
4313
+ setElPosition(el, fixedStyles.elFixedLeft, fixedStyles.elFixedTop, width, this.#viewportMarginTop, this.#viewportMarginProperty, fixedStyles.elClipTop, fixedStyles.elClipLeft);
4305
4314
  }
4306
4315
  #getBoundaryInfo(el, boundaryEl) {
4307
4316
  const spacerId = this.#getSpacerId();
@@ -4518,7 +4527,7 @@ class Version {
4518
4527
  /**
4519
4528
  * Represents the version of @skyux/core.
4520
4529
  */
4521
- const VERSION = new Version('11.40.0');
4530
+ const VERSION = new Version('11.42.0');
4522
4531
 
4523
4532
  /**
4524
4533
  * Generated bundle index. Do not edit.