@sbb-esta/lyne-elements 2.1.0 → 2.2.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.
Files changed (121) hide show
  1. package/action-group.js +3 -3
  2. package/autocomplete/autocomplete-base-element.d.ts +4 -0
  3. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  4. package/autocomplete-grid/autocomplete-grid-cell.js +3 -3
  5. package/autocomplete-grid/autocomplete-grid-row.js +3 -3
  6. package/autocomplete.js +25 -19
  7. package/breadcrumb/breadcrumb-group.js +1 -1
  8. package/button/common.js +15 -15
  9. package/card/card-badge.js +3 -3
  10. package/card/card.js +3 -3
  11. package/chip-label.js +3 -3
  12. package/clock.js +3 -3
  13. package/container/container.js +3 -3
  14. package/core/a11y/focus.d.ts.map +1 -1
  15. package/core/a11y.js +8 -8
  16. package/core/base-elements/link-base-element.d.ts +2 -0
  17. package/core/base-elements/link-base-element.d.ts.map +1 -1
  18. package/core/base-elements.js +124 -113
  19. package/core/controllers.js +2 -2
  20. package/core/dom/scroll.d.ts +1 -0
  21. package/core/dom/scroll.d.ts.map +1 -1
  22. package/core/dom.js +31 -31
  23. package/core/images.d.ts.map +1 -1
  24. package/core/styles/core.scss +2 -0
  25. package/core.css +2 -0
  26. package/custom-elements.json +465 -4
  27. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  28. package/datepicker/datepicker-toggle.js +11 -14
  29. package/datepicker/datepicker.js +4 -4
  30. package/development/action-group.js +1 -1
  31. package/development/autocomplete/autocomplete-base-element.d.ts +4 -0
  32. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  33. package/development/autocomplete-grid/autocomplete-grid-cell.js +1 -1
  34. package/development/autocomplete-grid/autocomplete-grid-row.js +1 -1
  35. package/development/autocomplete.js +14 -1
  36. package/development/breadcrumb/breadcrumb-group.js +3 -3
  37. package/development/button/common.js +69 -72
  38. package/development/card/card-badge.js +1 -1
  39. package/development/card/card.js +1 -1
  40. package/development/chip-label.js +1 -1
  41. package/development/clock.js +1 -1
  42. package/development/container/container.js +1 -1
  43. package/development/core/a11y/focus.d.ts.map +1 -1
  44. package/development/core/a11y.js +3 -3
  45. package/development/core/base-elements/link-base-element.d.ts +2 -0
  46. package/development/core/base-elements/link-base-element.d.ts.map +1 -1
  47. package/development/core/base-elements.js +22 -5
  48. package/development/core/controllers.js +1 -1
  49. package/development/core/dom/scroll.d.ts +1 -0
  50. package/development/core/dom/scroll.d.ts.map +1 -1
  51. package/development/core/dom.js +5 -2
  52. package/development/core/images.d.ts.map +1 -1
  53. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  54. package/development/datepicker/datepicker-toggle.js +12 -5
  55. package/development/datepicker/datepicker.js +1 -1
  56. package/development/dialog/dialog-content.js +1 -1
  57. package/development/dialog/dialog.js +1 -1
  58. package/development/expansion-panel/expansion-panel-content.js +1 -1
  59. package/development/flip-card/flip-card-details.js +1 -1
  60. package/development/flip-card/flip-card-summary.js +1 -1
  61. package/development/icon.js +1 -1
  62. package/development/image.js +2 -2
  63. package/development/lead-container.js +1 -1
  64. package/development/link-list/link-list-anchor.js +1 -1
  65. package/development/link-list/link-list.js +1 -1
  66. package/development/loading-indicator-circle.js +1 -1
  67. package/development/loading-indicator.js +1 -1
  68. package/development/map-container.js +1 -1
  69. package/development/message.js +1 -1
  70. package/development/notification.js +1 -1
  71. package/development/option/optgroup.js +1 -1
  72. package/development/option/option.js +1 -1
  73. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  74. package/development/overlay.js +2 -2
  75. package/development/paginator/paginator.js +1 -1
  76. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  77. package/development/radio-button/radio-button-group.js +2 -2
  78. package/development/{sbb-tokens-BdGhUJjM.js → sbb-tokens-CSAKTXUi.js} +15 -15
  79. package/development/screen-reader-only.js +1 -1
  80. package/development/signet.js +1 -1
  81. package/development/stepper/step.js +1 -1
  82. package/development/tabs/tab.js +1 -1
  83. package/development/time-input.js +1 -1
  84. package/development/title/title-base.d.ts.map +1 -1
  85. package/development/title.js +4 -5
  86. package/development/toggle/toggle.js +1 -1
  87. package/development/train/train-blocked-passage.js +1 -1
  88. package/dialog/dialog-content.js +3 -3
  89. package/dialog/dialog.js +1 -1
  90. package/expansion-panel/expansion-panel-content.js +3 -3
  91. package/flip-card/flip-card-details.js +3 -3
  92. package/flip-card/flip-card-summary.js +3 -3
  93. package/icon.js +1 -1
  94. package/image.js +16 -16
  95. package/lead-container.js +3 -3
  96. package/link-list/link-list-anchor.js +3 -3
  97. package/link-list/link-list.js +3 -3
  98. package/loading-indicator-circle.js +3 -3
  99. package/loading-indicator.js +3 -3
  100. package/map-container.js +3 -3
  101. package/message.js +3 -3
  102. package/notification.js +3 -3
  103. package/option/optgroup.js +3 -3
  104. package/option/option.js +3 -3
  105. package/overlay/overlay-base-element.d.ts.map +1 -1
  106. package/overlay.js +1 -1
  107. package/package.json +1 -1
  108. package/paginator/paginator.js +1 -1
  109. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  110. package/radio-button/radio-button-group.js +1 -1
  111. package/{sbb-tokens-Dx20OtVg.js → sbb-tokens-BgDF8jIh.js} +14 -14
  112. package/screen-reader-only.js +3 -3
  113. package/signet.js +1 -1
  114. package/standard-theme.css +2 -0
  115. package/stepper/step.js +3 -3
  116. package/tabs/tab.js +3 -3
  117. package/time-input.js +3 -3
  118. package/title/title-base.d.ts.map +1 -1
  119. package/title.js +41 -42
  120. package/toggle/toggle.js +3 -3
  121. package/train/train-blocked-passage.js +3 -3
@@ -6,7 +6,7 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
6
6
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
7
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
8
  import { __esDecorate, __runInitializers } from "tslib";
9
- import { html, LitElement, isServer, nothing } from "lit";
9
+ import { LitElement, html, isServer, nothing } from "lit";
10
10
  import { hostAttributes, forceType } from "./decorators.js";
11
11
  import { property } from "lit/decorators.js";
12
12
  import { isEventPrevented, EventEmitter } from "./eventing.js";
@@ -210,7 +210,7 @@ let SbbButtonBaseElement = (() => {
210
210
  return _classThis;
211
211
  })();
212
212
  let SbbLinkBaseElement = (() => {
213
- var _href_accessor_storage, _target_accessor_storage, _rel_accessor_storage, _download_accessor_storage, _accessibilityLabel_accessor_storage, _a;
213
+ var _href_accessor_storage, _target_accessor_storage, _rel_accessor_storage, _download_accessor_storage, _accessibilityLabel_accessor_storage, _accessibilityCurrent_accessor_storage, _a;
214
214
  let _classDecorators = [hostAttributes({
215
215
  "data-link": ""
216
216
  })];
@@ -233,6 +233,9 @@ let SbbLinkBaseElement = (() => {
233
233
  let _accessibilityLabel_decorators;
234
234
  let _accessibilityLabel_initializers = [];
235
235
  let _accessibilityLabel_extraInitializers = [];
236
+ let _accessibilityCurrent_decorators;
237
+ let _accessibilityCurrent_initializers = [];
238
+ let _accessibilityCurrent_extraInitializers = [];
236
239
  _a = class extends _classSuper {
237
240
  constructor() {
238
241
  super();
@@ -241,12 +244,14 @@ let SbbLinkBaseElement = (() => {
241
244
  __privateAdd(this, _rel_accessor_storage);
242
245
  __privateAdd(this, _download_accessor_storage);
243
246
  __privateAdd(this, _accessibilityLabel_accessor_storage);
247
+ __privateAdd(this, _accessibilityCurrent_accessor_storage);
244
248
  __privateSet(this, _href_accessor_storage, __runInitializers(this, _href_initializers, ""));
245
249
  __privateSet(this, _target_accessor_storage, (__runInitializers(this, _href_extraInitializers), __runInitializers(this, _target_initializers, "")));
246
250
  __privateSet(this, _rel_accessor_storage, (__runInitializers(this, _target_extraInitializers), __runInitializers(this, _rel_initializers, "")));
247
251
  __privateSet(this, _download_accessor_storage, (__runInitializers(this, _rel_extraInitializers), __runInitializers(this, _download_initializers, false)));
248
252
  __privateSet(this, _accessibilityLabel_accessor_storage, (__runInitializers(this, _download_extraInitializers), __runInitializers(this, _accessibilityLabel_initializers, "")));
249
- this.language = (__runInitializers(this, _accessibilityLabel_extraInitializers), new SbbLanguageController(this));
253
+ __privateSet(this, _accessibilityCurrent_accessor_storage, (__runInitializers(this, _accessibilityLabel_extraInitializers), __runInitializers(this, _accessibilityCurrent_initializers, "")));
254
+ this.language = (__runInitializers(this, _accessibilityCurrent_extraInitializers), new SbbLanguageController(this));
250
255
  this._evaluateRelAttribute = () => {
251
256
  return this.rel ? this.rel : this.target === "_blank" ? "external noopener nofollow" : nothing;
252
257
  };
@@ -289,6 +294,13 @@ let SbbLinkBaseElement = (() => {
289
294
  set accessibilityLabel(value) {
290
295
  __privateSet(this, _accessibilityLabel_accessor_storage, value);
291
296
  }
297
+ /** This will be forwarded as aria-current to the inner anchor element. */
298
+ get accessibilityCurrent() {
299
+ return __privateGet(this, _accessibilityCurrent_accessor_storage);
300
+ }
301
+ set accessibilityCurrent(value) {
302
+ __privateSet(this, _accessibilityCurrent_accessor_storage, value);
303
+ }
292
304
  /** @internal */
293
305
  focus(options) {
294
306
  var _a2;
@@ -317,6 +329,7 @@ let SbbLinkBaseElement = (() => {
317
329
  target=${this.target || nothing}
318
330
  rel=${this._evaluateRelAttribute()}
319
331
  aria-label=${this.accessibilityLabel || nothing}
332
+ aria-current=${this.accessibilityCurrent || nothing}
320
333
  tabindex=${this.maybeDisabled && !this.maybeDisabledInteractive ? "-1" : nothing}
321
334
  aria-disabled=${this.maybeDisabled ? "true" : nothing}
322
335
  >
@@ -327,13 +340,14 @@ let SbbLinkBaseElement = (() => {
327
340
  </a>
328
341
  `;
329
342
  }
330
- }, _href_accessor_storage = new WeakMap(), _target_accessor_storage = new WeakMap(), _rel_accessor_storage = new WeakMap(), _download_accessor_storage = new WeakMap(), _accessibilityLabel_accessor_storage = new WeakMap(), _classThis = _a, (() => {
343
+ }, _href_accessor_storage = new WeakMap(), _target_accessor_storage = new WeakMap(), _rel_accessor_storage = new WeakMap(), _download_accessor_storage = new WeakMap(), _accessibilityLabel_accessor_storage = new WeakMap(), _accessibilityCurrent_accessor_storage = new WeakMap(), _classThis = _a, (() => {
331
344
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
332
345
  _href_decorators = [forceType(), property()];
333
346
  _target_decorators = [forceType(), property()];
334
347
  _rel_decorators = [forceType(), property()];
335
348
  _download_decorators = [forceType(), property({ type: Boolean })];
336
349
  _accessibilityLabel_decorators = [forceType(), property({ attribute: "accessibility-label" })];
350
+ _accessibilityCurrent_decorators = [forceType(), property({ attribute: "accessibility-current" })];
337
351
  __esDecorate(_a, null, _href_decorators, { kind: "accessor", name: "href", static: false, private: false, access: { has: (obj) => "href" in obj, get: (obj) => obj.href, set: (obj, value) => {
338
352
  obj.href = value;
339
353
  } }, metadata: _metadata }, _href_initializers, _href_extraInitializers);
@@ -349,6 +363,9 @@ let SbbLinkBaseElement = (() => {
349
363
  __esDecorate(_a, null, _accessibilityLabel_decorators, { kind: "accessor", name: "accessibilityLabel", static: false, private: false, access: { has: (obj) => "accessibilityLabel" in obj, get: (obj) => obj.accessibilityLabel, set: (obj, value) => {
350
364
  obj.accessibilityLabel = value;
351
365
  } }, metadata: _metadata }, _accessibilityLabel_initializers, _accessibilityLabel_extraInitializers);
366
+ __esDecorate(_a, null, _accessibilityCurrent_decorators, { kind: "accessor", name: "accessibilityCurrent", static: false, private: false, access: { has: (obj) => "accessibilityCurrent" in obj, get: (obj) => obj.accessibilityCurrent, set: (obj, value) => {
367
+ obj.accessibilityCurrent = value;
368
+ } }, metadata: _metadata }, _accessibilityCurrent_initializers, _accessibilityCurrent_extraInitializers);
352
369
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
353
370
  _classThis = _classDescriptor.value;
354
371
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
@@ -395,4 +412,4 @@ export {
395
412
  SbbLinkBaseElement,
396
413
  SbbOpenCloseBaseElement
397
414
  };
398
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lbGVtZW50cy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9hY3Rpb24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9idXR0b24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9saW5rLWJhc2UtZWxlbWVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2Jhc2UtZWxlbWVudHMvb3Blbi1jbG9zZS1iYXNlLWVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy5qcyc7XG5cbi8qKlxuICogV2hlbmV2ZXIgYW4gZWxlbWVudCBjYW4gYmUgZGlzYWJsZWQgaXQgaGFzIGRpc2FibGVkIHByb3BlcnR5XG4gKiBvciBmb3JtRGlzYWJsZWQgaWYgaXQncyBhIGZvcm0gZWxlbWVudC5cbiAqIEJlY2F1c2Ugd2UgY2FuJ3QgdXNlIHR5cGVzIGhlcmUgZGlyZWN0bHkgd2UgY3JlYXRlZCB0aGlzIGhlbHBlciB0eXBlLlxuICovXG50eXBlIE1heWJlRGlzYWJsZWQgPSB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgZm9ybURpc2FibGVkPzogYm9vbGVhbjtcbiAgZGlzYWJsZWRJbnRlcmFjdGl2ZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnRcbkBob3N0QXR0cmlidXRlcyh7XG4gICdkYXRhLWFjdGlvbic6ICcnLFxufSlcbmFic3RyYWN0IGNsYXNzIFNiYkFjdGlvbkJhc2VFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHByb3RlY3RlZCBnZXQgbWF5YmVEaXNhYmxlZCgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBtYXliZURpc2FibGVkID0gdGhpcyBhcyBNYXliZURpc2FibGVkO1xuICAgIHJldHVybiBtYXliZURpc2FibGVkLmRpc2FibGVkIHx8IG1heWJlRGlzYWJsZWQuZm9ybURpc2FibGVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBtYXliZURpc2FibGVkSW50ZXJhY3RpdmUoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuICh0aGlzIGFzIE1heWJlRGlzYWJsZWQpLmRpc2FibGVkSW50ZXJhY3RpdmU7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIGlmIChcbiAgICAgIGltcG9ydC5tZXRhLmVudi5ERVYgJiZcbiAgICAgICh0aGlzLmhhc0F0dHJpYnV0ZSgnZGF0YS1saW5rJykgfHwgdGhpcy5oYXNBdHRyaWJ1dGUoJ2RhdGEtYnV0dG9uJykpICYmXG4gICAgICB0aGlzLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoJ1tkYXRhLWxpbmtdLCBbZGF0YS1idXR0b25dLCBhLCBidXR0b24nKVxuICAgICkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgTmVzdGVkIGFjdGlvbiBlbGVtZW50IGRldGVjdGVkICgke3RoaXMubG9jYWxOYW1lfSBpbnNpZGUgJHt0aGlzLnBhcmVudEVsZW1lbnQhLmNsb3Nlc3QoJ1tkYXRhLWxpbmtdLCBbZGF0YS1idXR0b25dLCBhLCBidXR0b24nKSEubG9jYWxOYW1lfSkuIE1heWJlIHVzZSBhIHN0YXRpYyB2YXJpYW50IGZvciB0aGUgaW5uZXIgYWN0aW9uIGVsZW1lbnQ/YCxcbiAgICAgICAgdGhpcyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwQmFzZUV2ZW50SGFuZGxlcnMoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2NsaWNrJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5tYXliZURpc2FibGVkICYmICF0aGlzLm1heWJlRGlzYWJsZWRJbnRlcmFjdGl2ZSkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBjYXB0dXJlIGlzIG5lY2Vzc2FyeSBoZXJlLCBhcyB0aGlzIGV2ZW50IGhhbmRsZXIgbmVlZHMgdG8gYmUgZXhlY3V0ZWQgYmVmb3JlIGFueSBvdGhlclxuICAgICAgLy8gaW4gb3JkZXIgdG8gc3RvcCBpbW1lZGlhdGUgcHJvcGFnYXRpb24gaW4gdGhlIGRpc2FibGVkIGNhc2UuXG4gICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqIE92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIHJlbmRlciB0aGUgY29tcG9uZW50IHRlbXBsYXRlLiAqL1xuICBwcm90ZWN0ZWQgcmVuZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHRocm93IG5ldyBFcnJvcignSW1wbGVtZW50YXRpb24gbmVlZGVkIScpO1xuICB9XG5cbiAgLyoqIERlZmF1bHQgcmVuZGVyIG1ldGhvZCBmb3IgYnV0dG9uLWxpa2UgY29tcG9uZW50cy4gKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItYWN0aW9uLWJhc2UgJHt0aGlzLmxvY2FsTmFtZX1cIj4ke3RoaXMucmVuZGVyVGVtcGxhdGUoKX08L3NwYW4+YDtcbiAgfVxufVxuIiwiaW1wb3J0IHsgaXNTZXJ2ZXIgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpc0V2ZW50UHJldmVudGVkIH0gZnJvbSAnLi4vZXZlbnRpbmcuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluLFxufSBmcm9tICcuLi9taXhpbnMuanMnO1xuXG5pbXBvcnQgeyBTYmJBY3Rpb25CYXNlRWxlbWVudCB9IGZyb20gJy4vYWN0aW9uLWJhc2UtZWxlbWVudC5qcyc7XG5cbi8qKiBFbnVtZXJhdGlvbiBmb3IgdHlwZSBhdHRyaWJ1dGUgaW4gPGJ1dHRvbj4gSFRNTCB0YWcuICovXG5leHBvcnQgdHlwZSBTYmJCdXR0b25UeXBlID0gJ2J1dHRvbicgfCAncmVzZXQnIHwgJ3N1Ym1pdCc7XG5cbi8qKiBCdXR0b24gYmFzZSBjbGFzcy4gKi9cbmV4cG9ydFxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgdGFiaW5kZXg6ICcwJyxcbiAgJ2RhdGEtYnV0dG9uJzogJycsXG59KVxuYWJzdHJhY3QgY2xhc3MgU2JiQnV0dG9uQmFzZUVsZW1lbnQgZXh0ZW5kcyBTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkFjdGlvbkJhc2VFbGVtZW50KSB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBhdHRyaWJ1dGUgdG8gdXNlIGZvciB0aGUgYnV0dG9uLlxuICAgKiBAZGVmYXVsdCAnYnV0dG9uJ1xuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIG92ZXJyaWRlIHNldCB0eXBlKG5hbWU6IFNiYkJ1dHRvblR5cGUpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgndHlwZScsIGAke25hbWV9YCk7XG4gIH1cbiAgcHVibGljIG92ZXJyaWRlIGdldCB0eXBlKCk6IFNiYkJ1dHRvblR5cGUge1xuICAgIHJldHVybiAodGhpcy5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSBhcyBTYmJCdXR0b25UeXBlKSA/PyAnYnV0dG9uJztcbiAgfVxuXG4gIC8qKiBUaGUgYDxmb3JtPmAgZWxlbWVudCB0byBhc3NvY2lhdGUgdGhlIGJ1dHRvbiB3aXRoLiAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgb3ZlcnJpZGUgc2V0IGZvcm0odmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2Zvcm1JZCA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgZm9ybSgpOiBIVE1MRm9ybUVsZW1lbnQgfCBudWxsIHtcbiAgICAvLyBVc2UgcXVlcnlTZWxlY3RvciB3aXRoIGZvcm0gYW5kIGlkIHNlbGVjdG9yLCBhcyB0aGUgZm9ybSBwcm9wZXJ0eSBtdXN0XG4gICAgLy8gcmVmZXJlbmNlIGEgdmFsaWQgPGZvcm0+IGVsZW1lbnRcbiAgICByZXR1cm4gdGhpcy5fZm9ybUlkXG4gICAgICA/ICgodGhpcy5vd25lckRvY3VtZW50Py5xdWVyeVNlbGVjdG9yPy4oYGZvcm0jJHt0aGlzLl9mb3JtSWR9YCkgYXMgSFRNTEZvcm1FbGVtZW50KSA/PyBudWxsKVxuICAgICAgOiB0aGlzLmludGVybmFscy5mb3JtO1xuICB9XG4gIHByaXZhdGUgX2Zvcm1JZDogc3RyaW5nID0gJyc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICAvKiogQGludGVybmFsICovXG4gICAgdGhpcy5pbnRlcm5hbHMucm9sZSA9ICdidXR0b24nO1xuXG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgdGhpcy5zZXR1cEJhc2VFdmVudEhhbmRsZXJzKCk7XG5cbiAgICAgIGNvbnN0IHBhc3NpdmVPcHRpb25zID0geyBwYXNzaXZlOiB0cnVlIH07XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5faGFuZGxlQnV0dG9uQ2xpY2spO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fcHJldmVudFNjcm9sbE9uU3BhY2VLZXlkb3duKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9kaXNwYXRjaENsaWNrRXZlbnRPblNwYWNlS2V5dXAsIHBhc3NpdmVPcHRpb25zKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHRoaXMuX3JlbW92ZUFjdGl2ZU1hcmtlciwgcGFzc2l2ZU9wdGlvbnMpO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAna2V5cHJlc3MnLFxuICAgICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoQ2xpY2tFdmVudChldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBwYXNzaXZlT3B0aW9ucyxcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgX2hhbmRsZUJ1dHRvbkNsaWNrID0gYXN5bmMgKGV2ZW50OiBNb3VzZUV2ZW50KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2J1dHRvbicgfHwgKGF3YWl0IGlzRXZlbnRQcmV2ZW50ZWQoZXZlbnQpKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm07XG4gICAgaWYgKCFmb3JtKSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdzdWJtaXQnKSB7XG4gICAgICAvLyBgZm9ybS5yZXF1ZXN0U3VibWl0KGVsZW1lbnQpO2Agc2VlbXMgbm90IHRvIHdvcmsgZm9yIEN1c3RvbUVsZW1lbnRzLCBzbyB0aGUgYGVsZW1lbnRgIHBhcmFtZXRlciBoYXMgYmVlbiByZW1vdmVkO1xuICAgICAgLy8gVE9ETzogQ2hlY2sgaWYgc29sdmVkIGluIGFueSB3YXksIHNlZSBodHRwczovL2dpdGh1Yi5jb20vV0lDRy93ZWJjb21wb25lbnRzL2lzc3Vlcy84MTQjaXNzdWVjb21tZW50LTEyMTg0NTIxMzdcbiAgICAgIC8vIFdlIHVzZSB0aGUgd29ya2Fyb3VuZCBkZXNjcmliZWQgaW4gdGhlIGdpdGh1YiBpc3N1ZSBieSBjbG9uaW5nIHRoZSBzdWJtaXQgYnV0dG9uIGFuZCBwYXNzIHRoaXMgb25lIGFzIGFuIGFyZ3VtZW50LlxuXG4gICAgICBjb25zdCBzdWJtaXRCdXR0b25DbG9uZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpO1xuICAgICAgc3VibWl0QnV0dG9uQ2xvbmUuaW5lcnQgPSB0cnVlO1xuICAgICAgc3VibWl0QnV0dG9uQ2xvbmUuaGlkZGVuID0gdHJ1ZTtcbiAgICAgIHN1Ym1pdEJ1dHRvbkNsb25lLm5hbWUgPSB0aGlzLm5hbWU7XG4gICAgICBzdWJtaXRCdXR0b25DbG9uZS52YWx1ZSA9IHRoaXMudmFsdWUgPz8gJyc7XG5cbiAgICAgIGZvcm0uYXBwZW5kKHN1Ym1pdEJ1dHRvbkNsb25lKTtcbiAgICAgIGZvcm0ucmVxdWVzdFN1Ym1pdChzdWJtaXRCdXR0b25DbG9uZSk7XG4gICAgICBzdWJtaXRCdXR0b25DbG9uZS5yZW1vdmUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3Jlc2V0Jykge1xuICAgICAgZm9ybS5yZXNldCgpO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogUHJldmVudHMgc2Nyb2xsaW5nIGZyb20gcHJlc3NpbmcgU3BhY2UsIHdoZW4gdGhlIGV2ZW50IHRhcmdldCBpcyBhbiBhY3Rpb24gZWxlbWVudC5cbiAgICogQWxzbyBzZXRzIGRhdGEtYWN0aXZlIGF0dHJpYnV0ZS5cbiAgICogQHBhcmFtIGV2ZW50IFRoZSBvcmlnaW4gZXZlbnQuXG4gICAqL1xuICBwcml2YXRlIF9wcmV2ZW50U2Nyb2xsT25TcGFjZUtleWRvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnICcpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtYWN0aXZlJywgdHJ1ZSk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX3JlbW92ZUFjdGl2ZU1hcmtlciA9IChldmVudDogRXZlbnQpOiB2b2lkID0+IHtcbiAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtYWN0aXZlJyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIERpc3BhdGNoZXMgYSAnY2xpY2snIFBvaW50ZXJFdmVudCBpZiB0aGUgb3JpZ2luYWwga2V5Ym9hcmQgZXZlbnQgaXMgYSAnU3BhY2UnIHByZXNzLlxuICAgKiBBcyB2ZXJpZmllZCB3aXRoIHRoZSBuYXRpdmUgYnV0dG9uLCB3aGVuICdTcGFjZScgaXMgcHJlc3NlZCwgYSAnY2xpY2snIGV2ZW50IGlzIGRpc3BhdGNoZWRcbiAgICogYWZ0ZXIgdGhlICdrZXl1cCcgZXZlbnQuXG4gICAqIEBwYXJhbSBldmVudCBUaGUgb3JpZ2luIGV2ZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hDbGlja0V2ZW50T25TcGFjZUtleXVwID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJyAnKSB7XG4gICAgICB0aGlzLl9yZW1vdmVBY3RpdmVNYXJrZXIoZXZlbnQpO1xuICAgICAgdGhpcy5fZGlzcGF0Y2hDbGlja0V2ZW50KGV2ZW50KTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hDbGlja0V2ZW50ID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgY29uc3QgeyBhbHRLZXksIGN0cmxLZXksIG1ldGFLZXksIHNoaWZ0S2V5IH0gPSBldmVudDtcbiAgICAoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgUG9pbnRlckV2ZW50KCdjbGljaycsIHtcbiAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICAgIHBvaW50ZXJJZDogLTEsXG4gICAgICAgIHBvaW50ZXJUeXBlOiAnJyxcbiAgICAgICAgYWx0S2V5LFxuICAgICAgICBjdHJsS2V5LFxuICAgICAgICBtZXRhS2V5LFxuICAgICAgICBzaGlmdEtleSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH07XG5cbiAgcHVibGljIG92ZXJyaWRlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBudWxsLFxuICApOiB2b2lkIHtcbiAgICBpZiAoIVsnbmFtZScsICd2YWx1ZSddLmluY2x1ZGVzKG5hbWUpIHx8IG9sZCAhPT0gdmFsdWUpIHtcbiAgICAgIHN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhuYW1lLCBvbGQsIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW50ZW50aW9uYWxseSBlbXB0eSwgYXMgYnV0dG9ucyBhcmUgbm90IHRhcmdldGVkIGJ5IGZvcm0gcmVzZXRcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBJbnRlbnRpb25hbGx5IGVtcHR5LCBhcyBidXR0b25zIGFyZSBub3QgdGFyZ2V0ZWQgYnkgZm9ybSByZXN0b3JlXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICBfc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgIF9yZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICApOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEludGVudGlvbmFsbHkgZW1wdHksIGFzIGJ1dHRvbiBkb2VzIG5vdCB3cml0ZSBpdHMgZGF0YSBpbiBmb3JtLlxuICAgKiBUaGUgZGF0YSBpcyBvbmx5IGFwcGxpZWQgb24gc3VibWl0IGJ1dHRvbiBjbGljayBhcyBzdWJtaXR0ZXIgb2YgcmVxdWVzdFN1Ym1pdCgpO1xuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZCB7fVxufVxuIiwiaW1wb3J0IHsgaHRtbCwgaXNTZXJ2ZXIsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSwgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGkxOG5UYXJnZXRPcGVuc0luTmV3V2luZG93IH0gZnJvbSAnLi4vaTE4bi5qcyc7XG5cbmltcG9ydCB7IFNiYkFjdGlvbkJhc2VFbGVtZW50IH0gZnJvbSAnLi9hY3Rpb24tYmFzZS1lbGVtZW50LmpzJztcblxuaW1wb3J0ICcuLi8uLi9zY3JlZW4tcmVhZGVyLW9ubHkuanMnO1xuXG4vKiogRW51bWVyYXRpb24gZm9yICd0YXJnZXQnIGF0dHJpYnV0ZSBpbiA8YT4gSFRNTCB0YWcuICovXG5leHBvcnQgdHlwZSBMaW5rVGFyZ2V0VHlwZSA9ICdfYmxhbmsnIHwgJ19zZWxmJyB8ICdfcGFyZW50JyB8ICdfdG9wJztcblxuLyoqIExpbmsgYmFzZSBjbGFzcy4gKi9cbmV4cG9ydFxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgJ2RhdGEtbGluayc6ICcnLFxufSlcbmFic3RyYWN0IGNsYXNzIFNiYkxpbmtCYXNlRWxlbWVudCBleHRlbmRzIFNiYkFjdGlvbkJhc2VFbGVtZW50IHtcbiAgLyoqIFRoZSBocmVmIHZhbHVlIHlvdSB3YW50IHRvIGxpbmsgdG8uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgaHJlZjogc3RyaW5nID0gJyc7XG5cbiAgLyoqIFdoZXJlIHRvIGRpc3BsYXkgdGhlIGxpbmtlZCBVUkwuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdGFyZ2V0OiBMaW5rVGFyZ2V0VHlwZSB8IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBUaGUgcmVsYXRpb25zaGlwIG9mIHRoZSBsaW5rZWQgVVJMIGFzIHNwYWNlLXNlcGFyYXRlZCBsaW5rIHR5cGVzLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHJlbDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGJyb3dzZXIgd2lsbCBzaG93IHRoZSBkb3dubG9hZCBkaWFsb2cgb24gY2xpY2suICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBkb3dubG9hZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBUaGlzIHdpbGwgYmUgZm9yd2FyZGVkIGFzIGFyaWEtbGFiZWwgdG8gdGhlIGlubmVyIGFuY2hvciBlbGVtZW50LiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1sYWJlbCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgcHJvdGVjdGVkIGxhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBpZiAoIWlzU2VydmVyKSB7XG4gICAgICB0aGlzLnNldHVwQmFzZUV2ZW50SGFuZGxlcnMoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBvdmVycmlkZSBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yPEhUTUxBbmNob3JFbGVtZW50PignYScpPy5mb2N1cyhvcHRpb25zKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHVibGljIG92ZXJyaWRlIGJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yPEhUTUxBbmNob3JFbGVtZW50PignYScpPy5ibHVyKCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBvdmVycmlkZSBjbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3I8SFRNTEFuY2hvckVsZW1lbnQ+KCdhJyk/LmNsaWNrKCk7XG4gIH1cblxuICBwcml2YXRlIF9ldmFsdWF0ZVJlbEF0dHJpYnV0ZSA9ICgpOiBzdHJpbmcgfCB0eXBlb2Ygbm90aGluZyA9PiB7XG4gICAgcmV0dXJuIHRoaXMucmVsID8gdGhpcy5yZWwgOiB0aGlzLnRhcmdldCA9PT0gJ19ibGFuaycgPyAnZXh0ZXJuYWwgbm9vcGVuZXIgbm9mb2xsb3cnIDogbm90aGluZztcbiAgfTtcblxuICAvKiogRGVmYXVsdCByZW5kZXIgbWV0aG9kIGZvciBsaW5rLWxpa2UgY29tcG9uZW50cy4gQ2FuIGJlIG92ZXJyaWRkZW4gaWYgdGhlIExpbmtSZW5kZXJWYXJpYWJsZXMgYXJlIG5vdCBuZWVkZWQuICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiB0aGlzLnJlbmRlckxpbmsodGhpcy5yZW5kZXJUZW1wbGF0ZSgpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJMaW5rKHJlbmRlckNvbnRlbnQ6IFRlbXBsYXRlUmVzdWx0KTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGFcbiAgICAgICAgY2xhc3M9XCJzYmItYWN0aW9uLWJhc2UgJHt0aGlzLmxvY2FsTmFtZX1cIlxuICAgICAgICBocmVmPSR7dGhpcy5ocmVmIHx8IG5vdGhpbmd9XG4gICAgICAgID9kb3dubG9hZD0ke3RoaXMuZG93bmxvYWR9XG4gICAgICAgIHRhcmdldD0ke3RoaXMudGFyZ2V0IHx8IG5vdGhpbmd9XG4gICAgICAgIHJlbD0ke3RoaXMuX2V2YWx1YXRlUmVsQXR0cmlidXRlKCl9XG4gICAgICAgIGFyaWEtbGFiZWw9JHt0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbCB8fCBub3RoaW5nfVxuICAgICAgICB0YWJpbmRleD0ke3RoaXMubWF5YmVEaXNhYmxlZCAmJiAhdGhpcy5tYXliZURpc2FibGVkSW50ZXJhY3RpdmUgPyAnLTEnIDogbm90aGluZ31cbiAgICAgICAgYXJpYS1kaXNhYmxlZD0ke3RoaXMubWF5YmVEaXNhYmxlZCA/ICd0cnVlJyA6IG5vdGhpbmd9XG4gICAgICA+XG4gICAgICAgICR7cmVuZGVyQ29udGVudH1cbiAgICAgICAgJHshIXRoaXMuaHJlZiAmJiB0aGlzLnRhcmdldCA9PT0gJ19ibGFuaydcbiAgICAgICAgICA/IGh0bWxgPHNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcbiAgICAgICAgICAgICAgPi4gJHtpMThuVGFyZ2V0T3BlbnNJbk5ld1dpbmRvd1t0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfTwvc2JiLXNjcmVlbi1yZWFkZXItb25seVxuICAgICAgICAgICAgPmBcbiAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICA8L2E+XG4gICAgYDtcbiAgfVxufVxuIiwiaW1wb3J0IHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJy4uL2V2ZW50aW5nLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiT3BlbmVkQ2xvc2VkU3RhdGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzLmpzJztcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBvdmVybGF5IGNvbXBvbmVudHMuXG4gKlxuICogQGV2ZW50IHdpbGxPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBzdGFydHMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IGRpZE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGlzIG9wZW5lZC5cbiAqIEBldmVudCB3aWxsQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLiBDYW4gYmUgY2FuY2VsZWQuXG4gKiBAZXZlbnQgZGlkQ2xvc2UgLSBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGlzIGNsb3NlZC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHdpbGxPcGVuOiAnd2lsbE9wZW4nLFxuICAgIGRpZE9wZW46ICdkaWRPcGVuJyxcbiAgICB3aWxsQ2xvc2U6ICd3aWxsQ2xvc2UnLFxuICAgIGRpZENsb3NlOiAnZGlkQ2xvc2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBUaGUgc3RhdGUgb2YgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHJvdGVjdGVkIHNldCBzdGF0ZShzdGF0ZTogU2JiT3BlbmVkQ2xvc2VkU3RhdGUpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScsIHN0YXRlKTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0IHN0YXRlKCk6IFNiYk9wZW5lZENsb3NlZFN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnKSBhcyBTYmJPcGVuZWRDbG9zZWRTdGF0ZTtcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBlbGVtZW50IGlzIG9wZW4uICovXG4gIHB1YmxpYyBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlID09PSAnb3BlbmVkJztcbiAgfVxuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiAqL1xuICBwcm90ZWN0ZWQgd2lsbE9wZW46IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudC5ldmVudHMud2lsbE9wZW4sXG4gICAgeyBjYW5jZWxhYmxlOiB0cnVlIH0sXG4gICk7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgaXMgb3BlbmVkLiAqL1xuICBwcm90ZWN0ZWQgZGlkT3BlbjogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcih0aGlzLCBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudC5ldmVudHMuZGlkT3Blbiwge1xuICAgIGNhbmNlbGFibGU6IHRydWUsXG4gIH0pO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLiAqL1xuICBwcm90ZWN0ZWQgd2lsbENsb3NlOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQuZXZlbnRzLndpbGxDbG9zZSxcbiAgICB7IGNhbmNlbGFibGU6IHRydWUgfSxcbiAgKTtcblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBpcyBjbG9zZWQuICovXG4gIHByb3RlY3RlZCBkaWRDbG9zZTogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LmV2ZW50cy5kaWRDbG9zZSxcbiAgICB7IGNhbmNlbGFibGU6IHRydWUgfSxcbiAgKTtcblxuICAvKiogT3BlbnMgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHVibGljIGFic3RyYWN0IG9wZW4oKTogdm9pZDtcbiAgLyoqIENsb3NlcyB0aGUgY29tcG9uZW50LiAqL1xuICBwdWJsaWMgYWJzdHJhY3QgY2xvc2UoKTogdm9pZDtcblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLnN0YXRlIHx8PSAnY2xvc2VkJztcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBHbG9iYWxFdmVudEhhbmRsZXJzRXZlbnRNYXAge1xuICAgIHdpbGxPcGVuOiBDdXN0b21FdmVudDx2b2lkPjtcbiAgICB3aWxsQ2xvc2U6IEN1c3RvbUV2ZW50PHZvaWQ+O1xuICAgIGRpZE9wZW46IEN1c3RvbUV2ZW50PHZvaWQ+O1xuICAgIGRpZENsb3NlOiBDdXN0b21FdmVudDx2b2lkPjtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIl9hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0lBbUJlLHdCQUFvQixNQUFBOztBQUhsQyxNQUFBLG1CQUFBLENBQUEsZUFBZTtBQUFBLElBQ2QsZUFBZTtBQUFBLEVBQUEsQ0FDaEIsQ0FBQzs7OztvQkFDMEM7QUFBUixFQUFBLG1CQUFRLFlBQVU7QUFBQSxJQUNwRCxJQUFjLGdCQUFhO0FBQ3pCLFlBQU0sZ0JBQWdCO0FBQ2YsYUFBQSxjQUFjLFlBQVksY0FBYztBQUFBLElBQUE7QUFBQSxJQUdqRCxJQUFjLDJCQUF3QjtBQUNwQyxhQUFRLEtBQXVCO0FBQUEsSUFBQTtBQUFBLElBR2pCLG9CQUFpQjs7QUFDL0IsWUFBTSxrQkFBaUI7QUFFdkIsV0FFRyxLQUFL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
415
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lbGVtZW50cy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9hY3Rpb24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9idXR0b24tYmFzZS1lbGVtZW50LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvYmFzZS1lbGVtZW50cy9saW5rLWJhc2UtZWxlbWVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL2Jhc2UtZWxlbWVudHMvb3Blbi1jbG9zZS1iYXNlLWVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy5qcyc7XG5cbi8qKlxuICogV2hlbmV2ZXIgYW4gZWxlbWVudCBjYW4gYmUgZGlzYWJsZWQgaXQgaGFzIGRpc2FibGVkIHByb3BlcnR5XG4gKiBvciBmb3JtRGlzYWJsZWQgaWYgaXQncyBhIGZvcm0gZWxlbWVudC5cbiAqIEJlY2F1c2Ugd2UgY2FuJ3QgdXNlIHR5cGVzIGhlcmUgZGlyZWN0bHkgd2UgY3JlYXRlZCB0aGlzIGhlbHBlciB0eXBlLlxuICovXG50eXBlIE1heWJlRGlzYWJsZWQgPSB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgZm9ybURpc2FibGVkPzogYm9vbGVhbjtcbiAgZGlzYWJsZWRJbnRlcmFjdGl2ZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnRcbkBob3N0QXR0cmlidXRlcyh7XG4gICdkYXRhLWFjdGlvbic6ICcnLFxufSlcbmFic3RyYWN0IGNsYXNzIFNiYkFjdGlvbkJhc2VFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHByb3RlY3RlZCBnZXQgbWF5YmVEaXNhYmxlZCgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBtYXliZURpc2FibGVkID0gdGhpcyBhcyBNYXliZURpc2FibGVkO1xuICAgIHJldHVybiBtYXliZURpc2FibGVkLmRpc2FibGVkIHx8IG1heWJlRGlzYWJsZWQuZm9ybURpc2FibGVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBtYXliZURpc2FibGVkSW50ZXJhY3RpdmUoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuICh0aGlzIGFzIE1heWJlRGlzYWJsZWQpLmRpc2FibGVkSW50ZXJhY3RpdmU7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIGlmIChcbiAgICAgIGltcG9ydC5tZXRhLmVudi5ERVYgJiZcbiAgICAgICh0aGlzLmhhc0F0dHJpYnV0ZSgnZGF0YS1saW5rJykgfHwgdGhpcy5oYXNBdHRyaWJ1dGUoJ2RhdGEtYnV0dG9uJykpICYmXG4gICAgICB0aGlzLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoJ1tkYXRhLWxpbmtdLCBbZGF0YS1idXR0b25dLCBhLCBidXR0b24nKVxuICAgICkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgTmVzdGVkIGFjdGlvbiBlbGVtZW50IGRldGVjdGVkICgke3RoaXMubG9jYWxOYW1lfSBpbnNpZGUgJHt0aGlzLnBhcmVudEVsZW1lbnQhLmNsb3Nlc3QoJ1tkYXRhLWxpbmtdLCBbZGF0YS1idXR0b25dLCBhLCBidXR0b24nKSEubG9jYWxOYW1lfSkuIE1heWJlIHVzZSBhIHN0YXRpYyB2YXJpYW50IGZvciB0aGUgaW5uZXIgYWN0aW9uIGVsZW1lbnQ/YCxcbiAgICAgICAgdGhpcyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwQmFzZUV2ZW50SGFuZGxlcnMoKTogdm9pZCB7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgJ2NsaWNrJyxcbiAgICAgIChldmVudCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5tYXliZURpc2FibGVkICYmICF0aGlzLm1heWJlRGlzYWJsZWRJbnRlcmFjdGl2ZSkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAvLyBjYXB0dXJlIGlzIG5lY2Vzc2FyeSBoZXJlLCBhcyB0aGlzIGV2ZW50IGhhbmRsZXIgbmVlZHMgdG8gYmUgZXhlY3V0ZWQgYmVmb3JlIGFueSBvdGhlclxuICAgICAgLy8gaW4gb3JkZXIgdG8gc3RvcCBpbW1lZGlhdGUgcHJvcGFnYXRpb24gaW4gdGhlIGRpc2FibGVkIGNhc2UuXG4gICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqIE92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIHJlbmRlciB0aGUgY29tcG9uZW50IHRlbXBsYXRlLiAqL1xuICBwcm90ZWN0ZWQgcmVuZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHRocm93IG5ldyBFcnJvcignSW1wbGVtZW50YXRpb24gbmVlZGVkIScpO1xuICB9XG5cbiAgLyoqIERlZmF1bHQgcmVuZGVyIG1ldGhvZCBmb3IgYnV0dG9uLWxpa2UgY29tcG9uZW50cy4gKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItYWN0aW9uLWJhc2UgJHt0aGlzLmxvY2FsTmFtZX1cIj4ke3RoaXMucmVuZGVyVGVtcGxhdGUoKX08L3NwYW4+YDtcbiAgfVxufVxuIiwiaW1wb3J0IHsgaXNTZXJ2ZXIgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGhvc3RBdHRyaWJ1dGVzIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpc0V2ZW50UHJldmVudGVkIH0gZnJvbSAnLi4vZXZlbnRpbmcuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluLFxufSBmcm9tICcuLi9taXhpbnMuanMnO1xuXG5pbXBvcnQgeyBTYmJBY3Rpb25CYXNlRWxlbWVudCB9IGZyb20gJy4vYWN0aW9uLWJhc2UtZWxlbWVudC5qcyc7XG5cbi8qKiBFbnVtZXJhdGlvbiBmb3IgdHlwZSBhdHRyaWJ1dGUgaW4gPGJ1dHRvbj4gSFRNTCB0YWcuICovXG5leHBvcnQgdHlwZSBTYmJCdXR0b25UeXBlID0gJ2J1dHRvbicgfCAncmVzZXQnIHwgJ3N1Ym1pdCc7XG5cbi8qKiBCdXR0b24gYmFzZSBjbGFzcy4gKi9cbmV4cG9ydFxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgdGFiaW5kZXg6ICcwJyxcbiAgJ2RhdGEtYnV0dG9uJzogJycsXG59KVxuYWJzdHJhY3QgY2xhc3MgU2JiQnV0dG9uQmFzZUVsZW1lbnQgZXh0ZW5kcyBTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkFjdGlvbkJhc2VFbGVtZW50KSB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBhdHRyaWJ1dGUgdG8gdXNlIGZvciB0aGUgYnV0dG9uLlxuICAgKiBAZGVmYXVsdCAnYnV0dG9uJ1xuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIG92ZXJyaWRlIHNldCB0eXBlKG5hbWU6IFNiYkJ1dHRvblR5cGUpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgndHlwZScsIGAke25hbWV9YCk7XG4gIH1cbiAgcHVibGljIG92ZXJyaWRlIGdldCB0eXBlKCk6IFNiYkJ1dHRvblR5cGUge1xuICAgIHJldHVybiAodGhpcy5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSBhcyBTYmJCdXR0b25UeXBlKSA/PyAnYnV0dG9uJztcbiAgfVxuXG4gIC8qKiBUaGUgYDxmb3JtPmAgZWxlbWVudCB0byBhc3NvY2lhdGUgdGhlIGJ1dHRvbiB3aXRoLiAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgb3ZlcnJpZGUgc2V0IGZvcm0odmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2Zvcm1JZCA9IHZhbHVlO1xuICB9XG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgZm9ybSgpOiBIVE1MRm9ybUVsZW1lbnQgfCBudWxsIHtcbiAgICAvLyBVc2UgcXVlcnlTZWxlY3RvciB3aXRoIGZvcm0gYW5kIGlkIHNlbGVjdG9yLCBhcyB0aGUgZm9ybSBwcm9wZXJ0eSBtdXN0XG4gICAgLy8gcmVmZXJlbmNlIGEgdmFsaWQgPGZvcm0+IGVsZW1lbnRcbiAgICByZXR1cm4gdGhpcy5fZm9ybUlkXG4gICAgICA/ICgodGhpcy5vd25lckRvY3VtZW50Py5xdWVyeVNlbGVjdG9yPy4oYGZvcm0jJHt0aGlzLl9mb3JtSWR9YCkgYXMgSFRNTEZvcm1FbGVtZW50KSA/PyBudWxsKVxuICAgICAgOiB0aGlzLmludGVybmFscy5mb3JtO1xuICB9XG4gIHByaXZhdGUgX2Zvcm1JZDogc3RyaW5nID0gJyc7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICAvKiogQGludGVybmFsICovXG4gICAgdGhpcy5pbnRlcm5hbHMucm9sZSA9ICdidXR0b24nO1xuXG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgdGhpcy5zZXR1cEJhc2VFdmVudEhhbmRsZXJzKCk7XG5cbiAgICAgIGNvbnN0IHBhc3NpdmVPcHRpb25zID0geyBwYXNzaXZlOiB0cnVlIH07XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5faGFuZGxlQnV0dG9uQ2xpY2spO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fcHJldmVudFNjcm9sbE9uU3BhY2VLZXlkb3duKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9kaXNwYXRjaENsaWNrRXZlbnRPblNwYWNlS2V5dXAsIHBhc3NpdmVPcHRpb25zKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHRoaXMuX3JlbW92ZUFjdGl2ZU1hcmtlciwgcGFzc2l2ZU9wdGlvbnMpO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAna2V5cHJlc3MnLFxuICAgICAgICAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoQ2xpY2tFdmVudChldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBwYXNzaXZlT3B0aW9ucyxcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgX2hhbmRsZUJ1dHRvbkNsaWNrID0gYXN5bmMgKGV2ZW50OiBNb3VzZUV2ZW50KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2J1dHRvbicgfHwgKGF3YWl0IGlzRXZlbnRQcmV2ZW50ZWQoZXZlbnQpKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm07XG4gICAgaWYgKCFmb3JtKSB7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdzdWJtaXQnKSB7XG4gICAgICAvLyBgZm9ybS5yZXF1ZXN0U3VibWl0KGVsZW1lbnQpO2Agc2VlbXMgbm90IHRvIHdvcmsgZm9yIEN1c3RvbUVsZW1lbnRzLCBzbyB0aGUgYGVsZW1lbnRgIHBhcmFtZXRlciBoYXMgYmVlbiByZW1vdmVkO1xuICAgICAgLy8gVE9ETzogQ2hlY2sgaWYgc29sdmVkIGluIGFueSB3YXksIHNlZSBodHRwczovL2dpdGh1Yi5jb20vV0lDRy93ZWJjb21wb25lbnRzL2lzc3Vlcy84MTQjaXNzdWVjb21tZW50LTEyMTg0NTIxMzdcbiAgICAgIC8vIFdlIHVzZSB0aGUgd29ya2Fyb3VuZCBkZXNjcmliZWQgaW4gdGhlIGdpdGh1YiBpc3N1ZSBieSBjbG9uaW5nIHRoZSBzdWJtaXQgYnV0dG9uIGFuZCBwYXNzIHRoaXMgb25lIGFzIGFuIGFyZ3VtZW50LlxuXG4gICAgICBjb25zdCBzdWJtaXRCdXR0b25DbG9uZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpO1xuICAgICAgc3VibWl0QnV0dG9uQ2xvbmUuaW5lcnQgPSB0cnVlO1xuICAgICAgc3VibWl0QnV0dG9uQ2xvbmUuaGlkZGVuID0gdHJ1ZTtcbiAgICAgIHN1Ym1pdEJ1dHRvbkNsb25lLm5hbWUgPSB0aGlzLm5hbWU7XG4gICAgICBzdWJtaXRCdXR0b25DbG9uZS52YWx1ZSA9IHRoaXMudmFsdWUgPz8gJyc7XG5cbiAgICAgIGZvcm0uYXBwZW5kKHN1Ym1pdEJ1dHRvbkNsb25lKTtcbiAgICAgIGZvcm0ucmVxdWVzdFN1Ym1pdChzdWJtaXRCdXR0b25DbG9uZSk7XG4gICAgICBzdWJtaXRCdXR0b25DbG9uZS5yZW1vdmUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3Jlc2V0Jykge1xuICAgICAgZm9ybS5yZXNldCgpO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogUHJldmVudHMgc2Nyb2xsaW5nIGZyb20gcHJlc3NpbmcgU3BhY2UsIHdoZW4gdGhlIGV2ZW50IHRhcmdldCBpcyBhbiBhY3Rpb24gZWxlbWVudC5cbiAgICogQWxzbyBzZXRzIGRhdGEtYWN0aXZlIGF0dHJpYnV0ZS5cbiAgICogQHBhcmFtIGV2ZW50IFRoZSBvcmlnaW4gZXZlbnQuXG4gICAqL1xuICBwcml2YXRlIF9wcmV2ZW50U2Nyb2xsT25TcGFjZUtleWRvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnICcpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtYWN0aXZlJywgdHJ1ZSk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgX3JlbW92ZUFjdGl2ZU1hcmtlciA9IChldmVudDogRXZlbnQpOiB2b2lkID0+IHtcbiAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtYWN0aXZlJyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIERpc3BhdGNoZXMgYSAnY2xpY2snIFBvaW50ZXJFdmVudCBpZiB0aGUgb3JpZ2luYWwga2V5Ym9hcmQgZXZlbnQgaXMgYSAnU3BhY2UnIHByZXNzLlxuICAgKiBBcyB2ZXJpZmllZCB3aXRoIHRoZSBuYXRpdmUgYnV0dG9uLCB3aGVuICdTcGFjZScgaXMgcHJlc3NlZCwgYSAnY2xpY2snIGV2ZW50IGlzIGRpc3BhdGNoZWRcbiAgICogYWZ0ZXIgdGhlICdrZXl1cCcgZXZlbnQuXG4gICAqIEBwYXJhbSBldmVudCBUaGUgb3JpZ2luIGV2ZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hDbGlja0V2ZW50T25TcGFjZUtleXVwID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJyAnKSB7XG4gICAgICB0aGlzLl9yZW1vdmVBY3RpdmVNYXJrZXIoZXZlbnQpO1xuICAgICAgdGhpcy5fZGlzcGF0Y2hDbGlja0V2ZW50KGV2ZW50KTtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBfZGlzcGF0Y2hDbGlja0V2ZW50ID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgY29uc3QgeyBhbHRLZXksIGN0cmxLZXksIG1ldGFLZXksIHNoaWZ0S2V5IH0gPSBldmVudDtcbiAgICAoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgUG9pbnRlckV2ZW50KCdjbGljaycsIHtcbiAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICAgIHBvaW50ZXJJZDogLTEsXG4gICAgICAgIHBvaW50ZXJUeXBlOiAnJyxcbiAgICAgICAgYWx0S2V5LFxuICAgICAgICBjdHJsS2V5LFxuICAgICAgICBtZXRhS2V5LFxuICAgICAgICBzaGlmdEtleSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH07XG5cbiAgcHVibGljIG92ZXJyaWRlIGF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgIHZhbHVlOiBzdHJpbmcgfCBudWxsLFxuICApOiB2b2lkIHtcbiAgICBpZiAoIVsnbmFtZScsICd2YWx1ZSddLmluY2x1ZGVzKG5hbWUpIHx8IG9sZCAhPT0gdmFsdWUpIHtcbiAgICAgIHN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhuYW1lLCBvbGQsIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW50ZW50aW9uYWxseSBlbXB0eSwgYXMgYnV0dG9ucyBhcmUgbm90IHRhcmdldGVkIGJ5IGZvcm0gcmVzZXRcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZCB7fVxuXG4gIC8qKlxuICAgKiBJbnRlbnRpb25hbGx5IGVtcHR5LCBhcyBidXR0b25zIGFyZSBub3QgdGFyZ2V0ZWQgYnkgZm9ybSByZXN0b3JlXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICBfc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgIF9yZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICApOiB2b2lkIHt9XG5cbiAgLyoqXG4gICAqIEludGVudGlvbmFsbHkgZW1wdHksIGFzIGJ1dHRvbiBkb2VzIG5vdCB3cml0ZSBpdHMgZGF0YSBpbiBmb3JtLlxuICAgKiBUaGUgZGF0YSBpcyBvbmx5IGFwcGxpZWQgb24gc3VibWl0IGJ1dHRvbiBjbGljayBhcyBzdWJtaXR0ZXIgb2YgcmVxdWVzdFN1Ym1pdCgpO1xuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZCB7fVxufVxuIiwiaW1wb3J0IHsgaHRtbCwgaXNTZXJ2ZXIsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSwgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGkxOG5UYXJnZXRPcGVuc0luTmV3V2luZG93IH0gZnJvbSAnLi4vaTE4bi5qcyc7XG5cbmltcG9ydCB7IFNiYkFjdGlvbkJhc2VFbGVtZW50IH0gZnJvbSAnLi9hY3Rpb24tYmFzZS1lbGVtZW50LmpzJztcblxuaW1wb3J0ICcuLi8uLi9zY3JlZW4tcmVhZGVyLW9ubHkuanMnO1xuXG4vKiogRW51bWVyYXRpb24gZm9yICd0YXJnZXQnIGF0dHJpYnV0ZSBpbiA8YT4gSFRNTCB0YWcuICovXG5leHBvcnQgdHlwZSBMaW5rVGFyZ2V0VHlwZSA9ICdfYmxhbmsnIHwgJ19zZWxmJyB8ICdfcGFyZW50JyB8ICdfdG9wJztcblxuLyoqIExpbmsgYmFzZSBjbGFzcy4gKi9cbmV4cG9ydFxuQGhvc3RBdHRyaWJ1dGVzKHtcbiAgJ2RhdGEtbGluayc6ICcnLFxufSlcbmFic3RyYWN0IGNsYXNzIFNiYkxpbmtCYXNlRWxlbWVudCBleHRlbmRzIFNiYkFjdGlvbkJhc2VFbGVtZW50IHtcbiAgLyoqIFRoZSBocmVmIHZhbHVlIHlvdSB3YW50IHRvIGxpbmsgdG8uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgaHJlZjogc3RyaW5nID0gJyc7XG5cbiAgLyoqIFdoZXJlIHRvIGRpc3BsYXkgdGhlIGxpbmtlZCBVUkwuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdGFyZ2V0OiBMaW5rVGFyZ2V0VHlwZSB8IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBUaGUgcmVsYXRpb25zaGlwIG9mIHRoZSBsaW5rZWQgVVJMIGFzIHNwYWNlLXNlcGFyYXRlZCBsaW5rIHR5cGVzLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHJlbDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGJyb3dzZXIgd2lsbCBzaG93IHRoZSBkb3dubG9hZCBkaWFsb2cgb24gY2xpY2suICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBkb3dubG9hZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBUaGlzIHdpbGwgYmUgZm9yd2FyZGVkIGFzIGFyaWEtbGFiZWwgdG8gdGhlIGlubmVyIGFuY2hvciBlbGVtZW50LiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1sYWJlbCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIFRoaXMgd2lsbCBiZSBmb3J3YXJkZWQgYXMgYXJpYS1jdXJyZW50IHRvIHRoZSBpbm5lciBhbmNob3IgZWxlbWVudC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktY3VycmVudCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlDdXJyZW50OiBzdHJpbmcgPSAnJztcblxuICBwcm90ZWN0ZWQgbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgIHRoaXMuc2V0dXBCYXNlRXZlbnRIYW5kbGVycygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHVibGljIG92ZXJyaWRlIGZvY3VzKG9wdGlvbnM/OiBGb2N1c09wdGlvbnMgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3I8SFRNTEFuY2hvckVsZW1lbnQ+KCdhJyk/LmZvY3VzKG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgYmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3I8SFRNTEFuY2hvckVsZW1lbnQ+KCdhJyk/LmJsdXIoKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHVibGljIG92ZXJyaWRlIGNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuc2hhZG93Um9vdCEucXVlcnlTZWxlY3RvcjxIVE1MQW5jaG9yRWxlbWVudD4oJ2EnKT8uY2xpY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgX2V2YWx1YXRlUmVsQXR0cmlidXRlID0gKCk6IHN0cmluZyB8IHR5cGVvZiBub3RoaW5nID0+IHtcbiAgICByZXR1cm4gdGhpcy5yZWwgPyB0aGlzLnJlbCA6IHRoaXMudGFyZ2V0ID09PSAnX2JsYW5rJyA/ICdleHRlcm5hbCBub29wZW5lciBub2ZvbGxvdycgOiBub3RoaW5nO1xuICB9O1xuXG4gIC8qKiBEZWZhdWx0IHJlbmRlciBtZXRob2QgZm9yIGxpbmstbGlrZSBjb21wb25lbnRzLiBDYW4gYmUgb3ZlcnJpZGRlbiBpZiB0aGUgTGlua1JlbmRlclZhcmlhYmxlcyBhcmUgbm90IG5lZWRlZC4gKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIHRoaXMucmVuZGVyTGluayh0aGlzLnJlbmRlclRlbXBsYXRlKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbmRlckxpbmsocmVuZGVyQ29udGVudDogVGVtcGxhdGVSZXN1bHQpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8YVxuICAgICAgICBjbGFzcz1cInNiYi1hY3Rpb24tYmFzZSAke3RoaXMubG9jYWxOYW1lfVwiXG4gICAgICAgIGhyZWY9JHt0aGlzLmhyZWYgfHwgbm90aGluZ31cbiAgICAgICAgP2Rvd25sb2FkPSR7dGhpcy5kb3dubG9hZH1cbiAgICAgICAgdGFyZ2V0PSR7dGhpcy50YXJnZXQgfHwgbm90aGluZ31cbiAgICAgICAgcmVsPSR7dGhpcy5fZXZhbHVhdGVSZWxBdHRyaWJ1dGUoKX1cbiAgICAgICAgYXJpYS1sYWJlbD0ke3RoaXMuYWNjZXNzaWJpbGl0eUxhYmVsIHx8IG5vdGhpbmd9XG4gICAgICAgIGFyaWEtY3VycmVudD0ke3RoaXMuYWNjZXNzaWJpbGl0eUN1cnJlbnQgfHwgbm90aGluZ31cbiAgICAgICAgdGFiaW5kZXg9JHt0aGlzLm1heWJlRGlzYWJsZWQgJiYgIXRoaXMubWF5YmVEaXNhYmxlZEludGVyYWN0aXZlID8gJy0xJyA6IG5vdGhpbmd9XG4gICAgICAgIGFyaWEtZGlzYWJsZWQ9JHt0aGlzLm1heWJlRGlzYWJsZWQgPyAndHJ1ZScgOiBub3RoaW5nfVxuICAgICAgPlxuICAgICAgICAke3JlbmRlckNvbnRlbnR9XG4gICAgICAgICR7ISF0aGlzLmhyZWYgJiYgdGhpcy50YXJnZXQgPT09ICdfYmxhbmsnXG4gICAgICAgICAgPyBodG1sYDxzYmItc2NyZWVuLXJlYWRlci1vbmx5XG4gICAgICAgICAgICAgID4uICR7aTE4blRhcmdldE9wZW5zSW5OZXdXaW5kb3dbdGhpcy5sYW5ndWFnZS5jdXJyZW50XX08L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHlcbiAgICAgICAgICAgID5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgPC9hPlxuICAgIGA7XG4gIH1cbn1cbiIsImltcG9ydCB7IExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICcuLi9ldmVudGluZy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYk9wZW5lZENsb3NlZFN0YXRlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy5qcyc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3Igb3ZlcmxheSBjb21wb25lbnRzLlxuICpcbiAqIEBldmVudCB3aWxsT3BlbiAtIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgc3RhcnRzIHRoZSBvcGVuaW5nIHRyYW5zaXRpb24uIENhbiBiZSBjYW5jZWxlZC5cbiAqIEBldmVudCBkaWRPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBpcyBvcGVuZWQuXG4gKiBAZXZlbnQgd2lsbENsb3NlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gQ2FuIGJlIGNhbmNlbGVkLlxuICogQGV2ZW50IGRpZENsb3NlIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBpcyBjbG9zZWQuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICB3aWxsT3BlbjogJ3dpbGxPcGVuJyxcbiAgICBkaWRPcGVuOiAnZGlkT3BlbicsXG4gICAgd2lsbENsb3NlOiAnd2lsbENsb3NlJyxcbiAgICBkaWRDbG9zZTogJ2RpZENsb3NlJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogVGhlIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuICovXG4gIHByb3RlY3RlZCBzZXQgc3RhdGUoc3RhdGU6IFNiYk9wZW5lZENsb3NlZFN0YXRlKSB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnLCBzdGF0ZSk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldCBzdGF0ZSgpOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLXN0YXRlJykgYXMgU2JiT3BlbmVkQ2xvc2VkU3RhdGU7XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZWxlbWVudCBpcyBvcGVuLiAqL1xuICBwdWJsaWMgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCc7XG4gIH1cblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBzdGFydHMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi4gKi9cbiAgcHJvdGVjdGVkIHdpbGxPcGVuOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQuZXZlbnRzLndpbGxPcGVuLFxuICAgIHsgY2FuY2VsYWJsZTogdHJ1ZSB9LFxuICApO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29tcG9uZW50IGlzIG9wZW5lZC4gKi9cbiAgcHJvdGVjdGVkIGRpZE9wZW46IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIodGhpcywgU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQuZXZlbnRzLmRpZE9wZW4sIHtcbiAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICB9KTtcblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gKi9cbiAgcHJvdGVjdGVkIHdpbGxDbG9zZTogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50LmV2ZW50cy53aWxsQ2xvc2UsXG4gICAgeyBjYW5jZWxhYmxlOiB0cnVlIH0sXG4gICk7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgaXMgY2xvc2VkLiAqL1xuICBwcm90ZWN0ZWQgZGlkQ2xvc2U6IEV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudC5ldmVudHMuZGlkQ2xvc2UsXG4gICAgeyBjYW5jZWxhYmxlOiB0cnVlIH0sXG4gICk7XG5cbiAgLyoqIE9wZW5zIHRoZSBjb21wb25lbnQuICovXG4gIHB1YmxpYyBhYnN0cmFjdCBvcGVuKCk6IHZvaWQ7XG4gIC8qKiBDbG9zZXMgdGhlIGNvbXBvbmVudC4gKi9cbiAgcHVibGljIGFic3RyYWN0IGNsb3NlKCk6IHZvaWQ7XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5zdGF0ZSB8fD0gJ2Nsb3NlZCc7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgR2xvYmFsRXZlbnRIYW5kbGVyc0V2ZW50TWFwIHtcbiAgICB3aWxsT3BlbjogQ3VzdG9tRXZlbnQ8dm9pZD47XG4gICAgd2lsbENsb3NlOiBDdXN0b21FdmVudDx2b2lkPjtcbiAgICBkaWRPcGVuOiBDdXN0b21FdmVudDx2b2lkPjtcbiAgICBkaWRDbG9zZTogQ3VzdG9tRXZlbnQ8dm9pZD47XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztJQW1CZSx3QkFBb0IsTUFBQTs7QUFIbEMs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
@@ -1,6 +1,6 @@
1
1
  import { isServer } from "lit";
2
2
  import { readConfig } from "./config.js";
3
- import { S as SbbTypoScaleDefault, g as SbbBreakpointMediumMin, f as SbbBreakpointSmallMax } from "../sbb-tokens-BdGhUJjM.js";
3
+ import { S as SbbTypoScaleDefault, i as SbbBreakpointSmallMax, h as SbbBreakpointMediumMin } from "../sbb-tokens-CSAKTXUi.js";
4
4
  class SbbConnectedAbortController {
5
5
  get signal() {
6
6
  var _a;
@@ -5,6 +5,7 @@ export declare function pageScrollDisabled(): boolean;
5
5
  */
6
6
  export declare class SbbScrollHandler {
7
7
  private _height;
8
+ private _position;
8
9
  private _overflow;
9
10
  private _marginInlineEnd;
10
11
  disableScroll(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/dom/scroll.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,gBAAgB,CAAU;IAE3B,aAAa,IAAI,IAAI;IAoBrB,YAAY,IAAI,IAAI;CAa5B"}
1
+ {"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/dom/scroll.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,gBAAgB,CAAU;IAE3B,aAAa,IAAI,IAAI;IAsBrB,YAAY,IAAI,IAAI;CAc5B"}
@@ -87,11 +87,13 @@ class SbbScrollHandler {
87
87
  return;
88
88
  }
89
89
  this._height = document.body.style.height;
90
+ this._position = document.body.style.position;
90
91
  this._overflow = document.body.style.overflow;
91
92
  this._marginInlineEnd = document.body.style.marginInlineEnd;
92
93
  const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
93
94
  document.body.style.overflow = "hidden";
94
- document.body.style.height = "100%";
95
+ document.body.style.height = "100dvh";
96
+ document.body.style.position = "relative";
95
97
  document.body.style.marginInlineEnd = `${scrollbarWidth}px`;
96
98
  document.body.style.setProperty("--sbb-scrollbar-width", `${scrollbarWidth}px`);
97
99
  document.body.toggleAttribute("data-sbb-scroll-disabled", true);
@@ -101,6 +103,7 @@ class SbbScrollHandler {
101
103
  return;
102
104
  }
103
105
  document.body.style.height = this._height || "";
106
+ document.body.style.position = this._position || "";
104
107
  document.body.style.overflow = this._overflow || "";
105
108
  document.body.style.marginInlineEnd = this._marginInlineEnd || "";
106
109
  document.body.style.setProperty("--sbb-scrollbar-width", "0");
@@ -130,4 +133,4 @@ export {
130
133
  pageScrollDisabled,
131
134
  setOrRemoveAttribute
132
135
  };
133
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kb20vYW5pbWF0aW9uLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL2JyZWFrcG9pbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kb20vZmluZC1yZWZlcmVuY2VkLWVsZW1lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kb20vaG9zdC1jb250ZXh0LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL2lucHV0LWVsZW1lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kb20vbGVhbi1jb250ZXh0LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL3NldC1vci1yZW1vdmUtYXR0cmlidXRlLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL3BsYXRmb3JtLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL3Njcm9sbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciB9IGZyb20gJ2xpdCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1plcm9BbmltYXRpb25EdXJhdGlvbihlbGVtZW50OiBIVE1MRWxlbWVudCwgY3NzVmFyaWFibGVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKGlzU2VydmVyKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgY29uc3QgYW5pbWF0aW9uRHVyYXRpb24gPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoY3NzVmFyaWFibGVOYW1lKTtcblxuICByZXR1cm4gcGFyc2VGbG9hdChhbmltYXRpb25EdXJhdGlvbikgPT09IDA7XG59XG4iLCJpbXBvcnQgeyBpc1NlcnZlciB9IGZyb20gJ2xpdCc7XG5cbmV4cG9ydCBjb25zdCBicmVha3BvaW50cyA9IFsnemVybycsICdtaWNybycsICdzbWFsbCcsICdtZWRpdW0nLCAnd2lkZScsICdsYXJnZScsICd1bHRyYSddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQnJlYWtwb2ludCA9ICh0eXBlb2YgYnJlYWtwb2ludHMpW251bWJlcl07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGRvY3VtZW50IG1hdGNoZXMgYSBwYXJ0aWN1bGFyIG1lZGlhIHF1ZXJ5LlxuICogSXQgd2lsbCByZWx5IG9uIHRoZSBnbG9iYWwgQ1NTIHZhcmlhYmxlcyB0byBkZXRlcm1pbmUgdGhlIHZhbHVlIG9mIHRoZSBicmVha3BvaW50cy5cbiAqXG4gKiBAcGFyYW0gZnJvbSBUaGUgYnJlYWtwb2ludCBjb3JyZXNwb25kaW5nIHRvIHRoZSBgbWluLXdpZHRoYCB2YWx1ZSBvZiB0aGUgbWVkaWEgcXVlcnkgKG9wdGlvbmFsKS5cbiAqIEBwYXJhbSB0byBUaGUgYnJlYWtwb2ludCBjb3JyZXNwb25kaW5nIHRvIHRoZSBgbWF4LXdpZHRoYCB2YWx1ZSBvZiB0aGUgbWVkaWEgcXVlcnkgKG9wdGlvbmFsKS5cbiAqIEBwYXJhbSBwcm9wZXJ0aWVzIFdoZXRoZXIgdGhlIG1heCBicmVha3BvaW50IHNob3VsZCBiZSBpbmNsdWRlZFxuICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgd2luZG93IG1hdGNoZXMgdGhlIGJyZWFrcG9pbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0JyZWFrcG9pbnQoXG4gIGZyb20/OiBCcmVha3BvaW50LFxuICB0bz86IEJyZWFrcG9pbnQsXG4gIHByb3BlcnRpZXM/OiB7IGluY2x1ZGVNYXhCcmVha3BvaW50OiBib29sZWFuIH0sXG4pOiBib29sZWFuIHwgbnVsbCB7XG4gIGlmIChpc1NlcnZlcikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KTtcbiAgY29uc3QgYnJlYWtwb2ludE1pbiA9IGZyb20gPyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoYC0tc2JiLWJyZWFrcG9pbnQtJHtmcm9tfS1taW5gKSA6ICcnO1xuICBjb25zdCBicmVha3BvaW50TWF4ID0gdG9cbiAgICA/IGAke1xuICAgICAgICBwYXJzZUZsb2F0KFxuICAgICAgICAgIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShcbiAgICAgICAgICAgIGAtLXNiYi1icmVha3BvaW50LSR7dG99LSR7cHJvcGVydGllcz8uaW5jbHVkZU1heEJyZWFrcG9pbnQgPyAnbWF4JyA6ICdtaW4nfWAsXG4gICAgICAgICAgKSxcbiAgICAgICAgKSAtIChwcm9wZXJ0aWVzPy5pbmNsdWRlTWF4QnJlYWtwb2ludCA/IDAgOiAwLjA2MjUpXG4gICAgICB9cmVtYFxuICAgIDogJyc7IC8vIHN1YnRyYWN0IDFweCAoMC4wNjI1cmVtKSBmcm9tIHRoZSBtYXgtd2lkdGggYnJlYWtwb2ludFxuXG4gIGNvbnN0IG1pbldpZHRoID0gYnJlYWtwb2ludE1pbiAmJiBgKG1pbi13aWR0aDogJHticmVha3BvaW50TWlufSlgO1xuICBjb25zdCBtYXhXaWR0aCA9IGJyZWFrcG9pbnRNYXggJiYgYChtYXgtd2lkdGg6ICR7YnJlYWtwb2ludE1heH0pYDtcbiAgY29uc3QgYW5kID0gYnJlYWtwb2ludE1pbiAmJiBicmVha3BvaW50TWF4ICYmICcgYW5kICc7XG5cbiAgcmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhKGAke21pbldpZHRofSR7YW5kfSR7bWF4V2lkdGh9YCkubWF0Y2hlcztcbn1cbiIsImltcG9ydCB7IGlzU2VydmVyIH0gZnJvbSAnbGl0JztcblxuLyoqXG4gKiAgQ2hlY2sgd2hldGhlciBpdCdzIGEgc3RyaW5nIG9yIGFuIEhUTUxFbGVtZW50LCBpZiBpdCdzIGEgc3RyaW5nIHF1ZXJpZXMgdGhlIGVsZW1lbnQgd2l0aCB0aGVcbiAqICBjb3JyZXNwb25kaW5nIGlkLlxuICogIEBwYXJhbSByZWZlcmVuY2UgZWl0aGVyIHRoZSB3YW50ZWQgaWQgb3IgdGhlIEhUTUxFbGVtZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kUmVmZXJlbmNlZEVsZW1lbnQ8VCBleHRlbmRzIEhUTUxFbGVtZW50ID0gSFRNTEVsZW1lbnQ+KFxuICByZWZlcmVuY2U6IHN0cmluZyB8IEhUTUxFbGVtZW50LFxuKTogVCB8IG51bGwge1xuICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfSBlbHNlIGlmICh0eXBlb2YgcmVmZXJlbmNlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyZWZlcmVuY2UpIGFzIFQ7XG4gIH0gZWxzZSBpZiAocmVmZXJlbmNlIGluc3RhbmNlb2Ygd2luZG93LkVsZW1lbnQpIHtcbiAgICByZXR1cm4gcmVmZXJlbmNlIGFzIFQ7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG4iLCJpbXBvcnQgeyBpc1NlcnZlciB9IGZyb20gJ2xpdCc7XG5cbi8qKlxuICogTG9va3MgZm9yIHRoZSBjbG9zZXN0IGVsZW1lbnQgbWF0Y2hpbmcgdGhlIGdpdmVuIHNlbGVjdG9yIHN0YXJ0aW5nIGZyb20gdGhlIGdpdmVuIGVsZW1lbnQuXG4gKiBSZXR1cm5zIG51bGwsIGlmIG5vbmUgb2YgdGhlIGFuY2VzdG9yIG1hdGNoLlxuICpcbiAqIEBwYXJhbSBzZWxlY3RvciBUaGUgc2VsZWN0b3IgdG8gbWF0Y2ggYW5jZXN0b3IgYWdhaW5zdC5cbiAqIEBwYXJhbSBlbGVtZW50IFRoZSBiYXNlIGVsZW1lbnQgZnJvbSB3aGljaCB0byBzdGFydCB0aGUgc2VhcmNoLlxuICogQHJldHVybnMgVGhlIGNsb3Nlc3QgZWxlbWVudCBtYXRjaGluZyB0aGUgc2VsZWN0b3Igb3IgbnVsbCBpZiBub25lIGlzIGZvdW5kLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaG9zdENvbnRleHQoc2VsZWN0b3I6IHN0cmluZywgZWxlbWVudDogRWxlbWVudCk6IEVsZW1lbnQgfCBudWxsIHtcbiAgaWYgKGlzU2VydmVyKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gU3RhcnQgd2l0aCBwYXJlbnQgZWxlbWVudCBpbiBvcmRlciB0byBhdm9pZCBmaW5kaW5nIGVsZW1lbnQgaXRzZWxmXG4gIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQgPz8gKGVsZW1lbnQuZ2V0Um9vdE5vZGUoKSBhcyBTaGFkb3dSb290KS5ob3N0O1xuICB3aGlsZSAoZWxlbWVudCAmJiAoZWxlbWVudCBhcyBhbnkpICE9PSBkb2N1bWVudCAmJiAoZWxlbWVudCBhcyBhbnkpICE9PSB3aW5kb3cpIHtcbiAgICBjb25zdCBtYXRjaCA9IGVsZW1lbnQuY2xvc2VzdChzZWxlY3Rvcik7XG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICByZXR1cm4gbWF0Y2g7XG4gICAgfVxuXG4gICAgZWxlbWVudCA9IChlbGVtZW50LmdldFJvb3ROb2RlKCkgYXMgU2hhZG93Um9vdCkuaG9zdDtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vLyBBIGxpc3Qgb2YgZWxlbWVudHMgdGhhdCBzaG91bGQgbm90IGFsbG93IGFub3RoZXIgYW5jaG9yIG9yIGJ1dHRvbiBlbGVtZW50IGluc2lkZSB0aGVtLlxuLy8gTmVlZHMgdG8gYmUgZXh0ZW5kZWQgaWYgYWRkaXRpb25hbCBlbGVtZW50cyBmYWxsIGludG8gdGhpcyBjYXRlZ29yeS5cbmV4cG9ydCBjb25zdCBBQ1RJT05fRUxFTUVOVFMgPSAnYSxidXR0b24sc2JiLXRlYXNlci1oZXJvLHNiYi10ZWFzZXInO1xuIiwiaW1wb3J0IHsgZmluZFJlZmVyZW5jZWRFbGVtZW50IH0gZnJvbSAnLi9maW5kLXJlZmVyZW5jZWQtZWxlbWVudC5qcyc7XG5cbi8qKlxuICogR2l2ZW4gYW4gZWxlbWVudCwgcmV0dXJucyB0aGUgcmVsYXRlZCBpbnB1dCByZWZlcmVuY2UsIGlmIGl0IGV4aXN0cyByZXNwZWN0aW5nIGZvbGxvd2luZyBwcmlvcml0eS5cbiAqIDEuIElucHV0IGZpZWxkIGluIGBzYmItZm9ybS1maWVsZGAgKGlmIHRyaWdnZXIgaXMgdW5kZWZpZW5kKVxuICogMi4gSW5wdXQgcmVmZXJlbmNlZCBieSBpZCAodHJpZ2dlciBpcyBzdHJpbmcpXG4gKiAzLiBJbnB1dCByZWZlcmVuY2VkIGRpcmVjdGx5ICh0cmlnZ2VyIGlzIEhUTUxFbGVtZW50KVxuICogQHBhcmFtIGVsZW1lbnQgVGhlIHN0YXJ0aW5nIFNiYkRhdGVwaWNrZXJFbGVtZW50IGVsZW1lbnQuXG4gKiBAcGFyYW0gdHJpZ2dlciBUaGUgaWQgb3IgdGhlIHJlZmVyZW5jZSBvZiB0aGUgaW5wdXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kSW5wdXQoXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICB0cmlnZ2VyPzogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsLFxuKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICBpZiAoIXRyaWdnZXIpIHtcbiAgICBjb25zdCBwYXJlbnQgPSBlbGVtZW50LmNsb3Nlc3Q/Lignc2JiLWZvcm0tZmllbGQnKTtcbiAgICByZXR1cm4gcGFyZW50Py5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpIGFzIEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsO1xuICB9XG5cbiAgcmV0dXJuIGZpbmRSZWZlcmVuY2VkRWxlbWVudDxIVE1MSW5wdXRFbGVtZW50Pih0cmlnZ2VyKTtcbn1cbiIsImltcG9ydCB7IGlzU2VydmVyIH0gZnJvbSAnbGl0JztcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGRvY3VtZW50IGhhcyB0aGUgYHNiYi1sZWFuYCBjbGFzcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTGVhbigpOiBib29sZWFuIHtcbiAgcmV0dXJuICFpc1NlcnZlciAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdzYmItbGVhbicpO1xufVxuIiwiLyoqXG4gKiBTZXQgdGhlIGF0dHJpYnV0ZSBvbmx5IGlmIHZhbHVlIGlzIG5vdCAnZmFsc2UnLCBvdGhlcndpc2UgcmVtb3ZlIGF0dHJpYnV0ZS5cbiAqIEBwYXJhbSBlbGVtZW50IFRoZSBlbGVtZW50IHRoYXQgd2lsbCBoYXZlIHRoZSBhdHRyaWJ1dGVcbiAqIEBwYXJhbSBhdHRyaWJ1dGUgVGhlIGF0dHJpYnV0ZSBuYW1lXG4gKiBAcGFyYW0gdmFsdWUgVGhlIGF0dHJpYnV0ZSB2YWx1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0T3JSZW1vdmVBdHRyaWJ1dGUoZWxlbWVudDogSFRNTEVsZW1lbnQsIGF0dHJpYnV0ZTogc3RyaW5nLCB2YWx1ZT86IGFueSk6IHZvaWQge1xuICBpZiAoIXZhbHVlKSB7XG4gICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgfSBlbHNlIHtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTtcbiAgfVxufVxuIiwiLy8gVGhpcyBmaWxlIGlzIGZyZWVseSBpbnNwaXJlZCBieSBBbmd1bGFyIE1hdGVyaWFsIHNvbHV0aW9uLlxuLy8gUmVmZXJlbmNlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2Jsb2IvbWFpbi9zcmMvY2RrL3BsYXRmb3JtL3BsYXRmb3JtLnRzXG5pbXBvcnQgeyBpc1NlcnZlciB9IGZyb20gJ2xpdCc7XG5cbi8vIFdoZXRoZXIgdGhlIGN1cnJlbnQgcGxhdGZvcm0gc3VwcG9ydHMgdGhlIFY4IEJyZWFrIEl0ZXJhdG9yLiBUaGUgVjggY2hlY2tcbi8vIGlzIG5lY2Vzc2FyeSB0byBkZXRlY3QgYWxsIEJsaW5rIGJhc2VkIGJyb3dzZXJzLlxubGV0IGhhc1Y4QnJlYWtJdGVyYXRvcjogYm9vbGVhbjtcblxuLy8gV2UgbmVlZCBhIHRyeS9jYXRjaCBhcm91bmQgdGhlIHJlZmVyZW5jZSB0byBgSW50bGAsIGJlY2F1c2UgYWNjZXNzaW5nIGl0IGluIHNvbWUgY2FzZXMgY2FuXG4vLyBjYXVzZSBJRSB0byB0aHJvdy4gVGhlc2UgY2FzZXMgYXJlIHRpZWQgdG8gcGFydGljdWxhciB2ZXJzaW9ucyBvZiBXaW5kb3dzIGFuZCBjYW4gaGFwcGVuIGlmXG4vLyB0aGUgY29uc3VtZXIgaXMgcHJvdmlkaW5nIGEgcG9seWZpbGxlZCBgTWFwYC4gU2VlOlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9DaGFrcmFDb3JlL2lzc3Vlcy8zMTg5XG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2lzc3Vlcy8xNTY4N1xudHJ5IHtcbiAgaGFzVjhCcmVha0l0ZXJhdG9yID0gdHlwZW9mIEludGwgIT09ICd1bmRlZmluZWQnICYmIChJbnRsIGFzIGFueSkudjhCcmVha0l0ZXJhdG9yO1xufSBjYXRjaCB7XG4gIGhhc1Y4QnJlYWtJdGVyYXRvciA9IGZhbHNlO1xufVxuXG4vKiogV2hldGhlciB0aGUgY3VycmVudCBicm93c2VyIGlzIE1pY3Jvc29mdCBFZGdlLiAqL1xuZXhwb3J0IGNvbnN0IGlzRWRnZSA9ICFpc1NlcnZlciAmJiAvKGVkZ2UpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcblxuLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgcmVuZGVyaW5nIGVuZ2luZSBpcyBNaWNyb3NvZnQgVHJpZGVudC4gKi9cbmV4cG9ydCBjb25zdCBpc1RyaWRlbnQgPSAhaXNTZXJ2ZXIgJiYgLyhtc2llfHRyaWRlbnQpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcblxuLy8gRWRnZUhUTUwgYW5kIFRyaWRlbnQgbW9jayBCbGluayBzcGVjaWZpYyB0aGluZ3MgYW5kIG5lZWQgdG8gYmUgZXhjbHVkZWQgZnJvbSB0aGlzIGNoZWNrLlxuLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgcmVuZGVyaW5nIGVuZ2luZSBpcyBCbGluay4gKi9cbmV4cG9ydCBjb25zdCBpc0JsaW5rID1cbiAgIWlzU2VydmVyICYmXG4gICEhKCh3aW5kb3cgYXMgYW55KS5jaHJvbWUgfHwgaGFzVjhCcmVha0l0ZXJhdG9yKSAmJlxuICB0eXBlb2YgQ1NTICE9PSAndW5kZWZpbmVkJyAmJlxuICAhaXNFZGdlICYmXG4gICFpc1RyaWRlbnQ7XG5cbi8vIFdlYmtpdCBpcyBwYXJ0IG9mIHRoZSB1c2VyQWdlbnQgaW4gRWRnZUhUTUwsIEJsaW5rIGFuZCBUcmlkZW50LiBUaGVyZWZvcmUsIHdlIG5lZWQgdG9cbi8vIGVuc3VyZSB0aGF0IFdlYmtpdCBydW5zIHN0YW5kYWxvbmUgYW5kIGlzIG5vdCB1c2VkIGFzIGFub3RoZXIgZW5naW5lJ3MgYmFzZS5cbi8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IHJlbmRlcmluZyBlbmdpbmUgaXMgV2ViS2l0LiAqL1xuZXhwb3J0IGNvbnN0IGlzV2Via2l0ID1cbiAgIWlzU2VydmVyICYmIC9BcHBsZVdlYktpdC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgJiYgIWlzQmxpbmsgJiYgIWlzRWRnZSAmJiAhaXNUcmlkZW50O1xuXG4vKiogV2hldGhlciB0aGUgY3VycmVudCBwbGF0Zm9ybSBpcyBBcHBsZSBpT1MuICovXG5leHBvcnQgY29uc3QgaXNJT1MgPVxuICAhaXNTZXJ2ZXIgJiYgL2lQYWR8aVBob25lfGlQb2QvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgJiYgISgnTVNTdHJlYW0nIGluIHdpbmRvdyk7XG5cbi8vIEl0J3MgZGlmZmljdWx0IHRvIGRldGVjdCB0aGUgcGxhaW4gR2Vja28gZW5naW5lLCBiZWNhdXNlIG1vc3Qgb2YgdGhlIGJyb3dzZXJzIGlkZW50aWZ5XG4vLyB0aGVtIHNlbGYgYXMgR2Vja28tbGlrZSBicm93c2VycyBhbmQgbW9kaWZ5IHRoZSB1c2VyQWdlbnQncyBhY2NvcmRpbmcgdG8gdGhhdC5cbi8vIFNpbmNlIHdlIG9ubHkgY292ZXIgb25lIGV4cGxpY2l0IEZpcmVmb3ggY2FzZSwgd2UgY2FuIHNpbXBseSBjaGVjayBmb3IgRmlyZWZveFxuLy8gaW5zdGVhZCBvZiBoYXZpbmcgYW4gdW5zdGFibGUgY2hlY2sgZm9yIEdlY2tvLlxuLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgYnJvd3NlciBpcyBGaXJlZm94LiAqL1xuZXhwb3J0IGNvbnN0IGlzRmlyZWZveCA9ICFpc1NlcnZlciAmJiAvKGZpcmVmb3h8bWluZWZpZWxkKS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG5cbi8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IHBsYXRmb3JtIGlzIEFuZHJvaWQuICovXG4vLyBUcmlkZW50IG9uIG1vYmlsZSBhZGRzIHRoZSBhbmRyb2lkIHBsYXRmb3JtIHRvIHRoZSB1c2VyQWdlbnQgdG8gdHJpY2sgZGV0ZWN0aW9ucy5cbmV4cG9ydCBjb25zdCBpc0FuZHJvaWQgPSAhaXNTZXJ2ZXIgJiYgL2FuZHJvaWQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmICFpc1RyaWRlbnQ7XG5cbi8vIFNhZmFyaSBicm93c2VycyB3aWxsIGluY2x1ZGUgdGhlIFNhZmFyaSBrZXl3b3JkIGluIHRoZWlyIHVzZXJBZ2VudC4gU29tZSBicm93c2VycyBtYXkgZmFrZVxuLy8gdGhpcyBhbmQganVzdCBwbGFjZSB0aGUgU2FmYXJpIGtleXdvcmQgaW4gdGhlIHVzZXJBZ2VudC4gVG8gYmUgbW9yZSBzYWZlIGFib3V0IFNhZmFyaSBldmVyeVxuLy8gU2FmYXJpIGJyb3dzZXIgc2hvdWxkIGFsc28gdXNlIFdlYmtpdCBhcyBpdHMgbGF5b3V0IGVuZ2luZS5cbi8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IGJyb3dzZXIgaXMgU2FmYXJpLiAqL1xuZXhwb3J0IGNvbnN0IGlzU2FmYXJpID0gIWlzU2VydmVyICYmIC9zYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmIGlzV2Via2l0O1xuXG4vKipcbiAqIFdlIGp1c3QgY2hlY2sgZm9yIHRoZSBibGluayBlbmdpbmUuXG4gKi9cbmV4cG9ydCBjb25zdCBpc0Nocm9taXVtID0gaXNCbGluaztcblxuLyoqIFdoZXRoZXIgdGhlIGFwcGxpY2F0aW9uIGlzIGJlaW5nIHJlbmRlcmVkIGluIGEgTmV4dC5qcyBlbnZpcm9ubWVudC4gKi9cbmV4cG9ydCBjb25zdCBpc05leHRqcyA9ICgpOiBib29sZWFuID0+ICEhKGdsb2JhbFRoaXMgYXMgeyBuZXh0Pzogb2JqZWN0IH0pLm5leHQ7XG4iLCJleHBvcnQgZnVuY3Rpb24gcGFnZVNjcm9sbERpc2FibGVkKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZG9jdW1lbnQuYm9keS5oYXNBdHRyaWJ1dGUoJ2RhdGEtc2JiLXNjcm9sbC1kaXNhYmxlZCcpO1xufVxuXG4vKipcbiAqIEhhbmRsZSB0aGUgcGFnZSBzY3JvbGwsIGFsbG93aW5nIHRvIGRpc2FibGUvZW5hYmxlIHRoZSB3aW5kb3cgc2Nyb2xsIGF2b2lkaW5nIGEgcG90ZW50aWFsXG4gKiBjb250ZW50IHNoaWZ0IGNhdXNlZCBieSB0aGUgZGlzYXBwZWFyYW5jZS9hcHBlYXJhbmNlIG9mIHRoZSBzY3JvbGxiYXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTY3JvbGxIYW5kbGVyIHtcbiAgcHJpdmF0ZSBfaGVpZ2h0ITogc3RyaW5nO1xuICBwcml2YXRlIF9vdmVyZmxvdyE6IHN0cmluZztcbiAgcHJpdmF0ZSBfbWFyZ2luSW5saW5lRW5kITogc3RyaW5nO1xuXG4gIHB1YmxpYyBkaXNhYmxlU2Nyb2xsKCk6IHZvaWQge1xuICAgIGlmIChwYWdlU2Nyb2xsRGlzYWJsZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFNhdmUgYW55IHByZS1leGlzdGluZyBzdHlsZXMgdG8gcmVhcHBseSB0aGVtIHRvIHRoZSBib2R5IHdoZW4gZW5hYmxpbmcgdGhlIHNjcm9sbCBhZ2Fpbi5cbiAgICB0aGlzLl9oZWlnaHQgPSBkb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodDtcbiAgICB0aGlzLl9vdmVyZmxvdyA9IGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c7XG4gICAgdGhpcy5fbWFyZ2luSW5saW5lRW5kID0gZG9jdW1lbnQuYm9keS5zdHlsZS5tYXJnaW5JbmxpbmVFbmQ7XG5cbiAgICBjb25zdCBzY3JvbGxiYXJXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO1xuXG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gJzEwMCUnO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUubWFyZ2luSW5saW5lRW5kID0gYCR7c2Nyb2xsYmFyV2lkdGh9cHhgO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLXNjcm9sbGJhci13aWR0aCcsIGAke3Njcm9sbGJhcldpZHRofXB4YCk7XG5cbiAgICBkb2N1bWVudC5ib2R5LnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1zYmItc2Nyb2xsLWRpc2FibGVkJywgdHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgZW5hYmxlU2Nyb2xsKCk6IHZvaWQge1xuICAgIGlmICghcGFnZVNjcm9sbERpc2FibGVkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBSZXZlcnQgYm9keSBpbmxpbmUgc3R5bGVzLlxuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gdGhpcy5faGVpZ2h0IHx8ICcnO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSB0aGlzLl9vdmVyZmxvdyB8fCAnJztcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm1hcmdpbklubGluZUVuZCA9IHRoaXMuX21hcmdpbklubGluZUVuZCB8fCAnJztcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1zY3JvbGxiYXItd2lkdGgnLCAnMCcpO1xuXG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtc2JiLXNjcm9sbC1kaXNhYmxlZCcpO1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVnQixTQUFBLHdCQUF3QixT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
136
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kb20vYW5pbWF0aW9uLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL2JyZWFrcG9pbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kb20vZmluZC1yZWZlcmVuY2VkLWVsZW1lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kb20vaG9zdC1jb250ZXh0LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL2lucHV0LWVsZW1lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9kb20vbGVhbi1jb250ZXh0LnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL3NldC1vci1yZW1vdmUtYXR0cmlidXRlLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL3BsYXRmb3JtLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvZG9tL3Njcm9sbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciB9IGZyb20gJ2xpdCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1plcm9BbmltYXRpb25EdXJhdGlvbihlbGVtZW50OiBIVE1MRWxlbWVudCwgY3NzVmFyaWFibGVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKGlzU2VydmVyKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgY29uc3QgYW5pbWF0aW9uRHVyYXRpb24gPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoY3NzVmFyaWFibGVOYW1lKTtcblxuICByZXR1cm4gcGFyc2VGbG9hdChhbmltYXRpb25EdXJhdGlvbikgPT09IDA7XG59XG4iLCJpbXBvcnQgeyBpc1NlcnZlciB9IGZyb20gJ2xpdCc7XG5cbmV4cG9ydCBjb25zdCBicmVha3BvaW50cyA9IFsnemVybycsICdtaWNybycsICdzbWFsbCcsICdtZWRpdW0nLCAnd2lkZScsICdsYXJnZScsICd1bHRyYSddIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgQnJlYWtwb2ludCA9ICh0eXBlb2YgYnJlYWtwb2ludHMpW251bWJlcl07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGRvY3VtZW50IG1hdGNoZXMgYSBwYXJ0aWN1bGFyIG1lZGlhIHF1ZXJ5LlxuICogSXQgd2lsbCByZWx5IG9uIHRoZSBnbG9iYWwgQ1NTIHZhcmlhYmxlcyB0byBkZXRlcm1pbmUgdGhlIHZhbHVlIG9mIHRoZSBicmVha3BvaW50cy5cbiAqXG4gKiBAcGFyYW0gZnJvbSBUaGUgYnJlYWtwb2ludCBjb3JyZXNwb25kaW5nIHRvIHRoZSBgbWluLXdpZHRoYCB2YWx1ZSBvZiB0aGUgbWVkaWEgcXVlcnkgKG9wdGlvbmFsKS5cbiAqIEBwYXJhbSB0byBUaGUgYnJlYWtwb2ludCBjb3JyZXNwb25kaW5nIHRvIHRoZSBgbWF4LXdpZHRoYCB2YWx1ZSBvZiB0aGUgbWVkaWEgcXVlcnkgKG9wdGlvbmFsKS5cbiAqIEBwYXJhbSBwcm9wZXJ0aWVzIFdoZXRoZXIgdGhlIG1heCBicmVha3BvaW50IHNob3VsZCBiZSBpbmNsdWRlZFxuICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgd2luZG93IG1hdGNoZXMgdGhlIGJyZWFrcG9pbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0JyZWFrcG9pbnQoXG4gIGZyb20/OiBCcmVha3BvaW50LFxuICB0bz86IEJyZWFrcG9pbnQsXG4gIHByb3BlcnRpZXM/OiB7IGluY2x1ZGVNYXhCcmVha3BvaW50OiBib29sZWFuIH0sXG4pOiBib29sZWFuIHwgbnVsbCB7XG4gIGlmIChpc1NlcnZlcikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KTtcbiAgY29uc3QgYnJlYWtwb2ludE1pbiA9IGZyb20gPyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoYC0tc2JiLWJyZWFrcG9pbnQtJHtmcm9tfS1taW5gKSA6ICcnO1xuICBjb25zdCBicmVha3BvaW50TWF4ID0gdG9cbiAgICA/IGAke1xuICAgICAgICBwYXJzZUZsb2F0KFxuICAgICAgICAgIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShcbiAgICAgICAgICAgIGAtLXNiYi1icmVha3BvaW50LSR7dG99LSR7cHJvcGVydGllcz8uaW5jbHVkZU1heEJyZWFrcG9pbnQgPyAnbWF4JyA6ICdtaW4nfWAsXG4gICAgICAgICAgKSxcbiAgICAgICAgKSAtIChwcm9wZXJ0aWVzPy5pbmNsdWRlTWF4QnJlYWtwb2ludCA/IDAgOiAwLjA2MjUpXG4gICAgICB9cmVtYFxuICAgIDogJyc7IC8vIHN1YnRyYWN0IDFweCAoMC4wNjI1cmVtKSBmcm9tIHRoZSBtYXgtd2lkdGggYnJlYWtwb2ludFxuXG4gIGNvbnN0IG1pbldpZHRoID0gYnJlYWtwb2ludE1pbiAmJiBgKG1pbi13aWR0aDogJHticmVha3BvaW50TWlufSlgO1xuICBjb25zdCBtYXhXaWR0aCA9IGJyZWFrcG9pbnRNYXggJiYgYChtYXgtd2lkdGg6ICR7YnJlYWtwb2ludE1heH0pYDtcbiAgY29uc3QgYW5kID0gYnJlYWtwb2ludE1pbiAmJiBicmVha3BvaW50TWF4ICYmICcgYW5kICc7XG5cbiAgcmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhKGAke21pbldpZHRofSR7YW5kfSR7bWF4V2lkdGh9YCkubWF0Y2hlcztcbn1cbiIsImltcG9ydCB7IGlzU2VydmVyIH0gZnJvbSAnbGl0JztcblxuLyoqXG4gKiAgQ2hlY2sgd2hldGhlciBpdCdzIGEgc3RyaW5nIG9yIGFuIEhUTUxFbGVtZW50LCBpZiBpdCdzIGEgc3RyaW5nIHF1ZXJpZXMgdGhlIGVsZW1lbnQgd2l0aCB0aGVcbiAqICBjb3JyZXNwb25kaW5nIGlkLlxuICogIEBwYXJhbSByZWZlcmVuY2UgZWl0aGVyIHRoZSB3YW50ZWQgaWQgb3IgdGhlIEhUTUxFbGVtZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kUmVmZXJlbmNlZEVsZW1lbnQ8VCBleHRlbmRzIEhUTUxFbGVtZW50ID0gSFRNTEVsZW1lbnQ+KFxuICByZWZlcmVuY2U6IHN0cmluZyB8IEhUTUxFbGVtZW50LFxuKTogVCB8IG51bGwge1xuICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfSBlbHNlIGlmICh0eXBlb2YgcmVmZXJlbmNlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyZWZlcmVuY2UpIGFzIFQ7XG4gIH0gZWxzZSBpZiAocmVmZXJlbmNlIGluc3RhbmNlb2Ygd2luZG93LkVsZW1lbnQpIHtcbiAgICByZXR1cm4gcmVmZXJlbmNlIGFzIFQ7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG4iLCJpbXBvcnQgeyBpc1NlcnZlciB9IGZyb20gJ2xpdCc7XG5cbi8qKlxuICogTG9va3MgZm9yIHRoZSBjbG9zZXN0IGVsZW1lbnQgbWF0Y2hpbmcgdGhlIGdpdmVuIHNlbGVjdG9yIHN0YXJ0aW5nIGZyb20gdGhlIGdpdmVuIGVsZW1lbnQuXG4gKiBSZXR1cm5zIG51bGwsIGlmIG5vbmUgb2YgdGhlIGFuY2VzdG9yIG1hdGNoLlxuICpcbiAqIEBwYXJhbSBzZWxlY3RvciBUaGUgc2VsZWN0b3IgdG8gbWF0Y2ggYW5jZXN0b3IgYWdhaW5zdC5cbiAqIEBwYXJhbSBlbGVtZW50IFRoZSBiYXNlIGVsZW1lbnQgZnJvbSB3aGljaCB0byBzdGFydCB0aGUgc2VhcmNoLlxuICogQHJldHVybnMgVGhlIGNsb3Nlc3QgZWxlbWVudCBtYXRjaGluZyB0aGUgc2VsZWN0b3Igb3IgbnVsbCBpZiBub25lIGlzIGZvdW5kLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaG9zdENvbnRleHQoc2VsZWN0b3I6IHN0cmluZywgZWxlbWVudDogRWxlbWVudCk6IEVsZW1lbnQgfCBudWxsIHtcbiAgaWYgKGlzU2VydmVyKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgLy8gU3RhcnQgd2l0aCBwYXJlbnQgZWxlbWVudCBpbiBvcmRlciB0byBhdm9pZCBmaW5kaW5nIGVsZW1lbnQgaXRzZWxmXG4gIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQgPz8gKGVsZW1lbnQuZ2V0Um9vdE5vZGUoKSBhcyBTaGFkb3dSb290KS5ob3N0O1xuICB3aGlsZSAoZWxlbWVudCAmJiAoZWxlbWVudCBhcyBhbnkpICE9PSBkb2N1bWVudCAmJiAoZWxlbWVudCBhcyBhbnkpICE9PSB3aW5kb3cpIHtcbiAgICBjb25zdCBtYXRjaCA9IGVsZW1lbnQuY2xvc2VzdChzZWxlY3Rvcik7XG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICByZXR1cm4gbWF0Y2g7XG4gICAgfVxuXG4gICAgZWxlbWVudCA9IChlbGVtZW50LmdldFJvb3ROb2RlKCkgYXMgU2hhZG93Um9vdCkuaG9zdDtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vLyBBIGxpc3Qgb2YgZWxlbWVudHMgdGhhdCBzaG91bGQgbm90IGFsbG93IGFub3RoZXIgYW5jaG9yIG9yIGJ1dHRvbiBlbGVtZW50IGluc2lkZSB0aGVtLlxuLy8gTmVlZHMgdG8gYmUgZXh0ZW5kZWQgaWYgYWRkaXRpb25hbCBlbGVtZW50cyBmYWxsIGludG8gdGhpcyBjYXRlZ29yeS5cbmV4cG9ydCBjb25zdCBBQ1RJT05fRUxFTUVOVFMgPSAnYSxidXR0b24sc2JiLXRlYXNlci1oZXJvLHNiYi10ZWFzZXInO1xuIiwiaW1wb3J0IHsgZmluZFJlZmVyZW5jZWRFbGVtZW50IH0gZnJvbSAnLi9maW5kLXJlZmVyZW5jZWQtZWxlbWVudC5qcyc7XG5cbi8qKlxuICogR2l2ZW4gYW4gZWxlbWVudCwgcmV0dXJucyB0aGUgcmVsYXRlZCBpbnB1dCByZWZlcmVuY2UsIGlmIGl0IGV4aXN0cyByZXNwZWN0aW5nIGZvbGxvd2luZyBwcmlvcml0eS5cbiAqIDEuIElucHV0IGZpZWxkIGluIGBzYmItZm9ybS1maWVsZGAgKGlmIHRyaWdnZXIgaXMgdW5kZWZpZW5kKVxuICogMi4gSW5wdXQgcmVmZXJlbmNlZCBieSBpZCAodHJpZ2dlciBpcyBzdHJpbmcpXG4gKiAzLiBJbnB1dCByZWZlcmVuY2VkIGRpcmVjdGx5ICh0cmlnZ2VyIGlzIEhUTUxFbGVtZW50KVxuICogQHBhcmFtIGVsZW1lbnQgVGhlIHN0YXJ0aW5nIFNiYkRhdGVwaWNrZXJFbGVtZW50IGVsZW1lbnQuXG4gKiBAcGFyYW0gdHJpZ2dlciBUaGUgaWQgb3IgdGhlIHJlZmVyZW5jZSBvZiB0aGUgaW5wdXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kSW5wdXQoXG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICB0cmlnZ2VyPzogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBudWxsLFxuKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICBpZiAoIXRyaWdnZXIpIHtcbiAgICBjb25zdCBwYXJlbnQgPSBlbGVtZW50LmNsb3Nlc3Q/Lignc2JiLWZvcm0tZmllbGQnKTtcbiAgICByZXR1cm4gcGFyZW50Py5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpIGFzIEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsO1xuICB9XG5cbiAgcmV0dXJuIGZpbmRSZWZlcmVuY2VkRWxlbWVudDxIVE1MSW5wdXRFbGVtZW50Pih0cmlnZ2VyKTtcbn1cbiIsImltcG9ydCB7IGlzU2VydmVyIH0gZnJvbSAnbGl0JztcblxuLyoqXG4gKiBDaGVja3MgaWYgdGhlIGRvY3VtZW50IGhhcyB0aGUgYHNiYi1sZWFuYCBjbGFzcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTGVhbigpOiBib29sZWFuIHtcbiAgcmV0dXJuICFpc1NlcnZlciAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdzYmItbGVhbicpO1xufVxuIiwiLyoqXG4gKiBTZXQgdGhlIGF0dHJpYnV0ZSBvbmx5IGlmIHZhbHVlIGlzIG5vdCAnZmFsc2UnLCBvdGhlcndpc2UgcmVtb3ZlIGF0dHJpYnV0ZS5cbiAqIEBwYXJhbSBlbGVtZW50IFRoZSBlbGVtZW50IHRoYXQgd2lsbCBoYXZlIHRoZSBhdHRyaWJ1dGVcbiAqIEBwYXJhbSBhdHRyaWJ1dGUgVGhlIGF0dHJpYnV0ZSBuYW1lXG4gKiBAcGFyYW0gdmFsdWUgVGhlIGF0dHJpYnV0ZSB2YWx1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0T3JSZW1vdmVBdHRyaWJ1dGUoZWxlbWVudDogSFRNTEVsZW1lbnQsIGF0dHJpYnV0ZTogc3RyaW5nLCB2YWx1ZT86IGFueSk6IHZvaWQge1xuICBpZiAoIXZhbHVlKSB7XG4gICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgfSBlbHNlIHtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTtcbiAgfVxufVxuIiwiLy8gVGhpcyBmaWxlIGlzIGZyZWVseSBpbnNwaXJlZCBieSBBbmd1bGFyIE1hdGVyaWFsIHNvbHV0aW9uLlxuLy8gUmVmZXJlbmNlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2Jsb2IvbWFpbi9zcmMvY2RrL3BsYXRmb3JtL3BsYXRmb3JtLnRzXG5pbXBvcnQgeyBpc1NlcnZlciB9IGZyb20gJ2xpdCc7XG5cbi8vIFdoZXRoZXIgdGhlIGN1cnJlbnQgcGxhdGZvcm0gc3VwcG9ydHMgdGhlIFY4IEJyZWFrIEl0ZXJhdG9yLiBUaGUgVjggY2hlY2tcbi8vIGlzIG5lY2Vzc2FyeSB0byBkZXRlY3QgYWxsIEJsaW5rIGJhc2VkIGJyb3dzZXJzLlxubGV0IGhhc1Y4QnJlYWtJdGVyYXRvcjogYm9vbGVhbjtcblxuLy8gV2UgbmVlZCBhIHRyeS9jYXRjaCBhcm91bmQgdGhlIHJlZmVyZW5jZSB0byBgSW50bGAsIGJlY2F1c2UgYWNjZXNzaW5nIGl0IGluIHNvbWUgY2FzZXMgY2FuXG4vLyBjYXVzZSBJRSB0byB0aHJvdy4gVGhlc2UgY2FzZXMgYXJlIHRpZWQgdG8gcGFydGljdWxhciB2ZXJzaW9ucyBvZiBXaW5kb3dzIGFuZCBjYW4gaGFwcGVuIGlmXG4vLyB0aGUgY29uc3VtZXIgaXMgcHJvdmlkaW5nIGEgcG9seWZpbGxlZCBgTWFwYC4gU2VlOlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9DaGFrcmFDb3JlL2lzc3Vlcy8zMTg5XG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2lzc3Vlcy8xNTY4N1xudHJ5IHtcbiAgaGFzVjhCcmVha0l0ZXJhdG9yID0gdHlwZW9mIEludGwgIT09ICd1bmRlZmluZWQnICYmIChJbnRsIGFzIGFueSkudjhCcmVha0l0ZXJhdG9yO1xufSBjYXRjaCB7XG4gIGhhc1Y4QnJlYWtJdGVyYXRvciA9IGZhbHNlO1xufVxuXG4vKiogV2hldGhlciB0aGUgY3VycmVudCBicm93c2VyIGlzIE1pY3Jvc29mdCBFZGdlLiAqL1xuZXhwb3J0IGNvbnN0IGlzRWRnZSA9ICFpc1NlcnZlciAmJiAvKGVkZ2UpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcblxuLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgcmVuZGVyaW5nIGVuZ2luZSBpcyBNaWNyb3NvZnQgVHJpZGVudC4gKi9cbmV4cG9ydCBjb25zdCBpc1RyaWRlbnQgPSAhaXNTZXJ2ZXIgJiYgLyhtc2llfHRyaWRlbnQpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcblxuLy8gRWRnZUhUTUwgYW5kIFRyaWRlbnQgbW9jayBCbGluayBzcGVjaWZpYyB0aGluZ3MgYW5kIG5lZWQgdG8gYmUgZXhjbHVkZWQgZnJvbSB0aGlzIGNoZWNrLlxuLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgcmVuZGVyaW5nIGVuZ2luZSBpcyBCbGluay4gKi9cbmV4cG9ydCBjb25zdCBpc0JsaW5rID1cbiAgIWlzU2VydmVyICYmXG4gICEhKCh3aW5kb3cgYXMgYW55KS5jaHJvbWUgfHwgaGFzVjhCcmVha0l0ZXJhdG9yKSAmJlxuICB0eXBlb2YgQ1NTICE9PSAndW5kZWZpbmVkJyAmJlxuICAhaXNFZGdlICYmXG4gICFpc1RyaWRlbnQ7XG5cbi8vIFdlYmtpdCBpcyBwYXJ0IG9mIHRoZSB1c2VyQWdlbnQgaW4gRWRnZUhUTUwsIEJsaW5rIGFuZCBUcmlkZW50LiBUaGVyZWZvcmUsIHdlIG5lZWQgdG9cbi8vIGVuc3VyZSB0aGF0IFdlYmtpdCBydW5zIHN0YW5kYWxvbmUgYW5kIGlzIG5vdCB1c2VkIGFzIGFub3RoZXIgZW5naW5lJ3MgYmFzZS5cbi8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IHJlbmRlcmluZyBlbmdpbmUgaXMgV2ViS2l0LiAqL1xuZXhwb3J0IGNvbnN0IGlzV2Via2l0ID1cbiAgIWlzU2VydmVyICYmIC9BcHBsZVdlYktpdC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgJiYgIWlzQmxpbmsgJiYgIWlzRWRnZSAmJiAhaXNUcmlkZW50O1xuXG4vKiogV2hldGhlciB0aGUgY3VycmVudCBwbGF0Zm9ybSBpcyBBcHBsZSBpT1MuICovXG5leHBvcnQgY29uc3QgaXNJT1MgPVxuICAhaXNTZXJ2ZXIgJiYgL2lQYWR8aVBob25lfGlQb2QvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgJiYgISgnTVNTdHJlYW0nIGluIHdpbmRvdyk7XG5cbi8vIEl0J3MgZGlmZmljdWx0IHRvIGRldGVjdCB0aGUgcGxhaW4gR2Vja28gZW5naW5lLCBiZWNhdXNlIG1vc3Qgb2YgdGhlIGJyb3dzZXJzIGlkZW50aWZ5XG4vLyB0aGVtIHNlbGYgYXMgR2Vja28tbGlrZSBicm93c2VycyBhbmQgbW9kaWZ5IHRoZSB1c2VyQWdlbnQncyBhY2NvcmRpbmcgdG8gdGhhdC5cbi8vIFNpbmNlIHdlIG9ubHkgY292ZXIgb25lIGV4cGxpY2l0IEZpcmVmb3ggY2FzZSwgd2UgY2FuIHNpbXBseSBjaGVjayBmb3IgRmlyZWZveFxuLy8gaW5zdGVhZCBvZiBoYXZpbmcgYW4gdW5zdGFibGUgY2hlY2sgZm9yIEdlY2tvLlxuLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgYnJvd3NlciBpcyBGaXJlZm94LiAqL1xuZXhwb3J0IGNvbnN0IGlzRmlyZWZveCA9ICFpc1NlcnZlciAmJiAvKGZpcmVmb3h8bWluZWZpZWxkKS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XG5cbi8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IHBsYXRmb3JtIGlzIEFuZHJvaWQuICovXG4vLyBUcmlkZW50IG9uIG1vYmlsZSBhZGRzIHRoZSBhbmRyb2lkIHBsYXRmb3JtIHRvIHRoZSB1c2VyQWdlbnQgdG8gdHJpY2sgZGV0ZWN0aW9ucy5cbmV4cG9ydCBjb25zdCBpc0FuZHJvaWQgPSAhaXNTZXJ2ZXIgJiYgL2FuZHJvaWQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmICFpc1RyaWRlbnQ7XG5cbi8vIFNhZmFyaSBicm93c2VycyB3aWxsIGluY2x1ZGUgdGhlIFNhZmFyaSBrZXl3b3JkIGluIHRoZWlyIHVzZXJBZ2VudC4gU29tZSBicm93c2VycyBtYXkgZmFrZVxuLy8gdGhpcyBhbmQganVzdCBwbGFjZSB0aGUgU2FmYXJpIGtleXdvcmQgaW4gdGhlIHVzZXJBZ2VudC4gVG8gYmUgbW9yZSBzYWZlIGFib3V0IFNhZmFyaSBldmVyeVxuLy8gU2FmYXJpIGJyb3dzZXIgc2hvdWxkIGFsc28gdXNlIFdlYmtpdCBhcyBpdHMgbGF5b3V0IGVuZ2luZS5cbi8qKiBXaGV0aGVyIHRoZSBjdXJyZW50IGJyb3dzZXIgaXMgU2FmYXJpLiAqL1xuZXhwb3J0IGNvbnN0IGlzU2FmYXJpID0gIWlzU2VydmVyICYmIC9zYWZhcmkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmIGlzV2Via2l0O1xuXG4vKipcbiAqIFdlIGp1c3QgY2hlY2sgZm9yIHRoZSBibGluayBlbmdpbmUuXG4gKi9cbmV4cG9ydCBjb25zdCBpc0Nocm9taXVtID0gaXNCbGluaztcblxuLyoqIFdoZXRoZXIgdGhlIGFwcGxpY2F0aW9uIGlzIGJlaW5nIHJlbmRlcmVkIGluIGEgTmV4dC5qcyBlbnZpcm9ubWVudC4gKi9cbmV4cG9ydCBjb25zdCBpc05leHRqcyA9ICgpOiBib29sZWFuID0+ICEhKGdsb2JhbFRoaXMgYXMgeyBuZXh0Pzogb2JqZWN0IH0pLm5leHQ7XG4iLCJleHBvcnQgZnVuY3Rpb24gcGFnZVNjcm9sbERpc2FibGVkKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZG9jdW1lbnQuYm9keS5oYXNBdHRyaWJ1dGUoJ2RhdGEtc2JiLXNjcm9sbC1kaXNhYmxlZCcpO1xufVxuXG4vKipcbiAqIEhhbmRsZSB0aGUgcGFnZSBzY3JvbGwsIGFsbG93aW5nIHRvIGRpc2FibGUvZW5hYmxlIHRoZSB3aW5kb3cgc2Nyb2xsIGF2b2lkaW5nIGEgcG90ZW50aWFsXG4gKiBjb250ZW50IHNoaWZ0IGNhdXNlZCBieSB0aGUgZGlzYXBwZWFyYW5jZS9hcHBlYXJhbmNlIG9mIHRoZSBzY3JvbGxiYXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTY3JvbGxIYW5kbGVyIHtcbiAgcHJpdmF0ZSBfaGVpZ2h0ITogc3RyaW5nO1xuICBwcml2YXRlIF9wb3NpdGlvbiE6IHN0cmluZztcbiAgcHJpdmF0ZSBfb3ZlcmZsb3chOiBzdHJpbmc7XG4gIHByaXZhdGUgX21hcmdpbklubGluZUVuZCE6IHN0cmluZztcblxuICBwdWJsaWMgZGlzYWJsZVNjcm9sbCgpOiB2b2lkIHtcbiAgICBpZiAocGFnZVNjcm9sbERpc2FibGVkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBTYXZlIGFueSBwcmUtZXhpc3Rpbmcgc3R5bGVzIHRvIHJlYXBwbHkgdGhlbSB0byB0aGUgYm9keSB3aGVuIGVuYWJsaW5nIHRoZSBzY3JvbGwgYWdhaW4uXG4gICAgdGhpcy5faGVpZ2h0ID0gZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQ7XG4gICAgdGhpcy5fcG9zaXRpb24gPSBkb2N1bWVudC5ib2R5LnN0eWxlLnBvc2l0aW9uO1xuICAgIHRoaXMuX292ZXJmbG93ID0gZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdztcbiAgICB0aGlzLl9tYXJnaW5JbmxpbmVFbmQgPSBkb2N1bWVudC5ib2R5LnN0eWxlLm1hcmdpbklubGluZUVuZDtcblxuICAgIGNvbnN0IHNjcm9sbGJhcldpZHRoID0gd2luZG93LmlubmVyV2lkdGggLSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7XG5cbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQgPSAnMTAwZHZoJztcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm1hcmdpbklubGluZUVuZCA9IGAke3Njcm9sbGJhcldpZHRofXB4YDtcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1zY3JvbGxiYXItd2lkdGgnLCBgJHtzY3JvbGxiYXJXaWR0aH1weGApO1xuXG4gICAgZG9jdW1lbnQuYm9keS50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtc2JiLXNjcm9sbC1kaXNhYmxlZCcsIHRydWUpO1xuICB9XG5cbiAgcHVibGljIGVuYWJsZVNjcm9sbCgpOiB2b2lkIHtcbiAgICBpZiAoIXBhZ2VTY3JvbGxEaXNhYmxlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gUmV2ZXJ0IGJvZHkgaW5saW5lIHN0eWxlcy5cbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9IHRoaXMuX2hlaWdodCB8fCAnJztcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnBvc2l0aW9uID0gdGhpcy5fcG9zaXRpb24gfHwgJyc7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9IHRoaXMuX292ZXJmbG93IHx8ICcnO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUubWFyZ2luSW5saW5lRW5kID0gdGhpcy5fbWFyZ2luSW5saW5lRW5kIHx8ICcnO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2JiLXNjcm9sbGJhci13aWR0aCcsICcwJyk7XG5cbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUF0dHJpYnV0ZSgnZGF0YS1zYmItc2Nyb2xsLWRpc2FibGVkJyk7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRWdCLFNBQUEsd0JBQXdCLFNBQXNCLGlCQUF1QjtBQUNuRixNQUFJLFVBQVU7QUFDTCxXQUFBO0FBQUEsRUFBQTtBQUVULFFBQU0sb0JBQW9CLGlCQUFpQixPQUFPLEVBQUUsaUJBQWlCLGVBQWU7QUFFN0UsU0FBQSxXQUFXLGlCQUFpQixNQUFNO0FBQzNDO0FDUGEsTUFBQSxjQUFjLENBQUMsUUFBUSxTQUFTLFNBQVMsVUFBVSxRQUFRLFNBQVMsT0FBTztBQVl4RSxTQUFBLGFBQ2QsTUFDQSxJQUNBLFlBQThDO0FBRTlDLE1BQUksVUFBVTtBQUNMLFdBQUE7QUFBQSxFQUFBO0FBR0gsUUFBQSxnQkFBZ0IsaUJBQWlCLFNBQVMsZUFBZTtBQUMvRCxRQUFNLGdCQUFnQixPQUFPLGNBQWMsaUJBQWlCLG9CQUFvQixJQUFJLE1BQU0sSUFBSTtBQUN4RixRQUFBLGdCQUFnQixLQUNsQixHQUNFLFdBQ0UsY0FBYyxpQkFDWixvQkFBb0IsRUFBRSxLQUFJLHlDQUFZLHdCQUF1QixRQUFRLEtBQUssRUFBRSxDQUM3RSxNQUNFLHlDQUFZLHdCQUF1QixJQUFJLE9BQzlDLFFBQ0E7QUFFRSxRQUFBLFdBQVcsaUJBQWlCLGVBQWUsYUFBYTtBQUN4RCxRQUFBLFdBQVcsaUJBQWlCLGVBQWUsYUFBYTtBQUN4RCxRQUFBLE1BQU0saUJBQWlCLGlCQUFpQjtBQUV2QyxTQUFBLE9BQU8sV0FBVyxHQUFHLFFBQVEsR0FBRyxHQUFHLEdBQUcsUUFBUSxFQUFFLEVBQUU7QUFDM0Q7QUNqQ00sU0FBVSxzQkFDZCxXQUErQjtBQUUvQixNQUFJLFVBQVU7QUFDTCxXQUFBO0FBQUEsRUFBQSxXQUNFLE9BQU8sY0FBYyxVQUFVO0FBQ2pDLFdBQUEsU0FBUyxlQUFlLFNBQVM7QUFBQSxFQUFBLFdBQy9CLHFCQUFxQixPQUFPLFNBQVM7QUFDdkMsV0FBQTtBQUFBLEVBQUE7QUFFRixTQUFBO0FBQ1Q7QUNSZ0IsU0FBQSxZQUFZLFVBQWtCLFNBQWdCO0FBQzVELE1BQUksVUFBVTtBQUNMLFdBQUE7QUFBQSxFQUFBO0FBR1QsWUFBVSxRQUFRLGlCQUFrQixRQUFRLFlBQTZCLEVBQUE7QUFDekUsU0FBTyxXQUFZLFlBQW9CLFlBQWEsWUFBb0IsUUFBUTtBQUN4RSxVQUFBLFFBQVEsUUFBUSxRQUFRLFFBQVE7QUFDdEMsUUFBSSxPQUFPO0FBQ0YsYUFBQTtBQUFBLElBQUE7QUFHRSxjQUFBLFFBQVEsY0FBNkI7QUFBQSxFQUFBO0FBRzNDLFNBQUE7QUFDVDtBQUlPLE1BQU0sa0JBQWtCO0FDcEJmLFNBQUEsVUFDZCxTQUNBLFNBQXFDOztBQUVyQyxNQUFJLENBQUMsU0FBUztBQUNOLFVBQUEsVUFBUyxhQUFRLFlBQVIsaUNBQWtCO0FBQzFCLFdBQUEsaUNBQVEsY0FBYztBQUFBLEVBQU87QUFHdEMsU0FBTyxzQkFBd0MsT0FBTztBQUN4RDtTQ2ZnQixTQUFNO0FBQ3BCLFNBQU8sQ0FBQyxZQUFZLFNBQVMsZ0JBQWdCLFVBQVUsU0FBUyxVQUFVO0FBQzVFO0FDRGdCLFNBQUEscUJBQXFCLFNBQXNCLFdBQW1CLE9BQVc7QUFDdkYsTUFBSSxDQUFDLE9BQU87QUFDVixZQUFRLGdCQUFnQixTQUFTO0FBQUEsRUFBQSxPQUM1QjtBQUNHLFlBQUEsYUFBYSxXQUFXLEtBQUs7QUFBQSxFQUFBO0FBRXpDO0FDTkEsSUFBSTtBQU9KLElBQUk7QUFDbUIsdUJBQUEsT0FBTyxTQUFTLGVBQWdCLEtBQWE7QUFDcEUsUUFBUTtBQUNlLHVCQUFBO0FBQ3ZCO0FBR08sTUFBTSxTQUFTLENBQUMsWUFBWSxVQUFVLEtBQUssVUFBVSxTQUFTO0FBRzlELE1BQU0sWUFBWSxDQUFDLFlBQVksa0JBQWtCLEtBQUssVUFBVSxTQUFTO0FBSXpFLE1BQU0sVUFDWCxDQUFDLFlBQ0QsQ0FBQyxFQUFHLE9BQWUsVUFBVSx1QkFDN0IsT0FBTyxRQUFRLGVBQ2YsQ0FBQyxVQUNELENBQUM7QUFLSSxNQUFNLFdBQ1gsQ0FBQyxZQUFZLGVBQWUsS0FBSyxVQUFVLFNBQVMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7QUFHdEUsTUFBQSxRQUNYLENBQUMsWUFBWSxtQkFBbUIsS0FBSyxVQUFVLFNBQVMsS0FBSyxFQUFFLGNBQWM7QUFPeEUsTUFBTSxZQUFZLENBQUMsWUFBWSx1QkFBdUIsS0FBSyxVQUFVLFNBQVM7QUFJeEUsTUFBQSxZQUFZLENBQUMsWUFBWSxXQUFXLEtBQUssVUFBVSxTQUFTLEtBQUssQ0FBQztBQU14RSxNQUFNLFdBQVcsQ0FBQyxZQUFZLFVBQVUsS0FBSyxVQUFVLFNBQVMsS0FBSztBQUtyRSxNQUFNLGFBQWE7QUFHbkIsTUFBTSxXQUFXLE1BQWUsQ0FBQyxDQUFFLFdBQWlDO1NDbkUzRCxxQkFBa0I7QUFDekIsU0FBQSxTQUFTLEtBQUssYUFBYSwwQkFBMEI7QUFDOUQ7TUFNYSxpQkFBZ0I7QUFBQSxFQU1wQixnQkFBYTtBQUNsQixRQUFJLHNCQUFzQjtBQUN4QjtBQUFBLElBQUE7QUFJRyxTQUFBLFVBQVUsU0FBUyxLQUFLLE1BQU07QUFDOUIsU0FBQSxZQUFZLFNBQVMsS0FBSyxNQUFNO0FBQ2hDLFNBQUEsWUFBWSxTQUFTLEtBQUssTUFBTTtBQUNoQyxTQUFBLG1CQUFtQixTQUFTLEtBQUssTUFBTTtBQUU1QyxVQUFNLGlCQUFpQixPQUFPLGFBQWEsU0FBUyxnQkFBZ0I7QUFFM0QsYUFBQSxLQUFLLE1BQU0sV0FBVztBQUN0QixhQUFBLEtBQUssTUFBTSxTQUFTO0FBQ3BCLGFBQUEsS0FBSyxNQUFNLFdBQVc7QUFDL0IsYUFBUyxLQUFLLE1BQU0sa0JBQWtCLEdBQUcsY0FBYztBQUN2RCxhQUFTLEtBQUssTUFBTSxZQUFZLHlCQUF5QixHQUFHLGNBQWMsSUFBSTtBQUVyRSxhQUFBLEtBQUssZ0JBQWdCLDRCQUE0QixJQUFJO0FBQUEsRUFBQTtBQUFBLEVBR3pELGVBQVk7QUFDYixRQUFBLENBQUMsc0JBQXNCO0FBQ3pCO0FBQUEsSUFBQTtBQUlGLGFBQVMsS0FBSyxNQUFNLFNBQVMsS0FBSyxXQUFXO0FBQzdDLGFBQVMsS0FBSyxNQUFNLFdBQVcsS0FBSyxhQUFhO0FBQ2pELGFBQVMsS0FBSyxNQUFNLFdBQVcsS0FBSyxhQUFhO0FBQ2pELGFBQVMsS0FBSyxNQUFNLGtCQUFrQixLQUFLLG9CQUFvQjtBQUMvRCxhQUFTLEtBQUssTUFBTSxZQUFZLHlCQUF5QixHQUFHO0FBRW5ELGFBQUEsS0FBSyxnQkFBZ0IsMEJBQTBCO0FBQUEsRUFBQTtBQUUzRDsifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../../../src/elements/core/images.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,YAAY,EAAE,MAAM,EAYzB,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../../../src/elements/core/images.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,YAAY,EAAE,MAAM,EAWzB,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker-toggle.d.ts","sourceRoot":"","sources":["../../../../../src/elements/datepicker/datepicker-toggle/datepicker-toggle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAkB,UAAU,EAAW,MAAM,KAAK,CAAC;AAK1D,OAAO,KAAK,EAAE,YAAY,EAAsB,MAAM,mBAAmB,CAAC;AAO1E,OAAO,EAA6C,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAI7D,OAAO,mBAAmB,CAAC;AAC3B,OAAO,0BAA0B,CAAC;AAClC,OAAO,6BAA6B,CAAC;;AAErC;;GAEG;AACH,qBAKM,0BAA0B,CAAC,CAAC,GAAG,IAAI,CACvC,SAAQ,+BACR,YAAW,oBAAoB,CAAC,CAAC,CAAC;IAElC,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD;;;;OAIG;IACH,IACW,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC,GAAG,IAAI,EAOnE;IACD,gBAAgB;IAChB,IAAW,UAAU,IAAI,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC,GAAG,IAAI,CAE/D;IAED,4BAA4B;IAC5B,IACW,UAAU,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,IAAI,EAK1D;IACD,IAAW,UAAU,IAAI,oBAAoB,CAAC,CAAC,CAAC,GAAG,IAAI,CAEtD;IACD,OAAO,CAAC,WAAW,CAAC,CAAiC;IAErD,yEAAyE;IACzE,SAA4B,IAAI,EAAE,YAAY,CAAS;IAE9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4C;IAEjE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4C;IAEjE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IAElD,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,SAAS,CAAmC;;IAepD;;OAEG;IACI,IAAI,IAAI,IAAI;IAOH,iBAAiB,IAAI,IAAI;cAQtB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAmB5E,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,eAAe;cAaJ,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAMzE,OAAO,CAAC,UAAU;cAIC,MAAM,IAAI,cAAc;CA2C5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,uBAAuB,EAAE,0BAA0B,CAAC;KACrD;CACF"}
1
+ {"version":3,"file":"datepicker-toggle.d.ts","sourceRoot":"","sources":["../../../../../src/elements/datepicker/datepicker-toggle/datepicker-toggle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAkB,UAAU,EAAW,MAAM,KAAK,CAAC;AAK1D,OAAO,KAAK,EAAE,YAAY,EAAsB,MAAM,mBAAmB,CAAC;AAM1E,OAAO,EAA6C,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAI7D,OAAO,mBAAmB,CAAC;AAC3B,OAAO,0BAA0B,CAAC;AAClC,OAAO,6BAA6B,CAAC;;AAErC;;GAEG;AACH,qBAEM,0BAA0B,CAAC,CAAC,GAAG,IAAI,CACvC,SAAQ,+BACR,YAAW,oBAAoB,CAAC,CAAC,CAAC;IAElC,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD;;;;OAIG;IACH,IACW,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC,GAAG,IAAI,EAOnE;IACD,gBAAgB;IAChB,IAAW,UAAU,IAAI,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC,GAAG,IAAI,CAE/D;IAED,4BAA4B;IAC5B,IACW,UAAU,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,IAAI,EAK1D;IACD,IAAW,UAAU,IAAI,oBAAoB,CAAC,CAAC,CAAC,GAAG,IAAI,CAEtD;IACD,OAAO,CAAC,WAAW,CAAC,CAAiC;IAErD,yEAAyE;IACzE,SAA4B,IAAI,EAAE,YAAY,CAAS;IAE9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4C;IAEjE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4C;IAEjE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IAElD,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,SAAS,CAAmC;;IAepD;;OAEG;IACI,IAAI,IAAI,IAAI;IAOH,iBAAiB,IAAI,IAAI;cAStB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAmB5E,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,eAAe;cAaJ,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAMzE,OAAO,CAAC,UAAU;cAIC,MAAM,IAAI,cAAc;CA2C5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,uBAAuB,EAAE,0BAA0B,CAAC;KACrD;CACF"}
@@ -11,7 +11,6 @@ import { customElement, property, state } from "lit/decorators.js";
11
11
  import { ref } from "lit/directives/ref.js";
12
12
  import { sbbInputModalityDetector } from "../core/a11y.js";
13
13
  import { SbbLanguageController } from "../core/controllers.js";
14
- import { hostAttributes } from "../core/decorators.js";
15
14
  import { i18nShowCalendar } from "../core/i18n.js";
16
15
  import { SbbNegativeMixin, SbbHydrationMixin } from "../core/mixins.js";
17
16
  import { SbbDatepickerAssociationControlController } from "./common.js";
@@ -37,12 +36,19 @@ const style = css`*,
37
36
 
38
37
  sbb-icon {
39
38
  color: var(--sbb-color-graphite);
39
+ }
40
+
41
+ sbb-popover {
42
+ margin: 0;
43
+ padding: 0;
44
+ border: none;
45
+ width: auto;
46
+ height: auto;
47
+ background-color: transparent;
40
48
  }`;
41
49
  let SbbDatepickerToggleElement = (() => {
42
50
  var _view_accessor_storage, __disabled_accessor_storage, __min_accessor_storage, __max_accessor_storage, __renderCalendar_accessor_storage, _a;
43
- let _classDecorators = [customElement("sbb-datepicker-toggle"), hostAttributes({
44
- slot: "prefix"
45
- })];
51
+ let _classDecorators = [customElement("sbb-datepicker-toggle")];
46
52
  let _classDescriptor;
47
53
  let _classExtraInitializers = [];
48
54
  let _classThis;
@@ -158,6 +164,7 @@ let SbbDatepickerToggleElement = (() => {
158
164
  connectedCallback() {
159
165
  var _a2, _b;
160
166
  super.connectedCallback();
167
+ this.slot || (this.slot = "prefix");
161
168
  const formField = ((_a2 = this.closest) == null ? void 0 : _a2.call(this, "sbb-form-field")) ?? ((_b = this.closest) == null ? void 0 : _b.call(this, "[data-form-field]"));
162
169
  if (formField) {
163
170
  this.negative = formField.hasAttribute("negative");
@@ -288,4 +295,4 @@ let SbbDatepickerToggleElement = (() => {
288
295
  export {
289
296
  SbbDatepickerToggleElement
290
297
  };
291
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci10b2dnbGUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXItdG9nZ2xlL2RhdGVwaWNrZXItdG9nZ2xlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFByb3BlcnR5VmFsdWVzLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBpc1NlcnZlciwgTGl0RWxlbWVudCwgbm90aGluZyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYk1pbmlCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uL21pbmktYnV0dG9uLmpzJztcbmltcG9ydCB0eXBlIHsgQ2FsZW5kYXJWaWV3LCBTYmJDYWxlbmRhckVsZW1lbnQgfSBmcm9tICcuLi8uLi9jYWxlbmRhci5qcyc7XG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi8uLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBpMThuU2hvd0NhbGVuZGFyIH0gZnJvbSAnLi4vLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB7IFNiYkh5ZHJhdGlvbk1peGluLCBTYmJOZWdhdGl2ZU1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJQb3BvdmVyRWxlbWVudCB9IGZyb20gJy4uLy4uL3BvcG92ZXIvcG9wb3Zlci5qcyc7XG5pbXBvcnQgeyBTYmJEYXRlcGlja2VyQXNzb2NpYXRpb25Db250cm9sQ29udHJvbGxlciwgdHlwZSBTYmJEYXRlcGlja2VyQ29udHJvbCB9IGZyb20gJy4uL2NvbW1vbi5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRhdGVwaWNrZXJFbGVtZW50IH0gZnJvbSAnLi4vZGF0ZXBpY2tlci5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2RhdGVwaWNrZXItdG9nZ2xlLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vLi4vY2FsZW5kYXIuanMnO1xuaW1wb3J0ICcuLi8uLi9wb3BvdmVyL3BvcG92ZXIuanMnO1xuaW1wb3J0ICcuLi8uLi9idXR0b24vbWluaS1idXR0b24uanMnO1xuXG4vKipcbiAqIENvbWJpbmVkIHdpdGggYSBgc2JiLWRhdGVwaWNrZXJgLCBpdCBjYW4gYmUgdXNlZCB0byBzZWxlY3QgYSBkYXRlIGZyb20gYSBgc2JiLWNhbGVuZGFyYC5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLWRhdGVwaWNrZXItdG9nZ2xlJylcbkBob3N0QXR0cmlidXRlcyh7XG4gIHNsb3Q6ICdwcmVmaXgnLFxufSlcbmNsYXNzIFNiYkRhdGVwaWNrZXJUb2dnbGVFbGVtZW50PFQgPSBEYXRlPlxuICBleHRlbmRzIFNiYk5lZ2F0aXZlTWl4aW4oU2JiSHlkcmF0aW9uTWl4aW4oTGl0RWxlbWVudCkpXG4gIGltcGxlbWVudHMgU2JiRGF0ZXBpY2tlckNvbnRyb2w8VD5cbntcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLyoqXG4gICAqIERhdGVwaWNrZXIgcmVmZXJlbmNlLlxuICAgKiBAaW50ZXJuYWxcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHByb3BlcnR5L2F0dHJpYnV0ZSBgZGF0ZXBpY2tlcmAgaW5zdGVhZC5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2RhdGUtcGlja2VyJyB9KVxuICBwdWJsaWMgc2V0IGRhdGVQaWNrZXIodmFsdWU6IHN0cmluZyB8IFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+IHwgbnVsbCkge1xuICAgIGlmIChpbXBvcnQubWV0YS5lbnYuREVWKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBQcm9wZXJ0eSBkYXRlUGlja2VyL0F0dHJpYnV0ZSBkYXRlLXBpY2tlciBpcyBkZXByZWNhdGVkLiBVc2UgJ2RhdGVwaWNrZXInIGluc3RlYWQuYCxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuZGF0ZXBpY2tlciA9IHZhbHVlIGFzIHVua25vd24gYXMgU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD4gfCBudWxsO1xuICB9XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHVibGljIGdldCBkYXRlUGlja2VyKCk6IHN0cmluZyB8IFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZXBpY2tlcjtcbiAgfVxuXG4gIC8qKiBEYXRlcGlja2VyIHJlZmVyZW5jZS4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnZGF0ZXBpY2tlcicgfSlcbiAgcHVibGljIHNldCBkYXRlcGlja2VyKHZhbHVlOiBTYmJEYXRlcGlja2VyRWxlbWVudDxUPiB8IG51bGwpIHtcbiAgICB0aGlzLl9kYXRlcGlja2VyID1cbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZydcbiAgICAgICAgPyAoKHRoaXMuZ2V0Um9vdE5vZGU/LigpIGFzIFBhcmVudE5vZGUpPy5xdWVyeVNlbGVjdG9yPy4oYCMke3ZhbHVlfWApID8/IG51bGwpXG4gICAgICAgIDogdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBkYXRlcGlja2VyKCk6IFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGVwaWNrZXIgPz8gbnVsbDtcbiAgfVxuICBwcml2YXRlIF9kYXRlcGlja2VyPzogU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD4gfCBudWxsO1xuXG4gIC8qKiBUaGUgaW5pdGlhbCB2aWV3IG9mIGNhbGVuZGFyIHdoaWNoIHNob3VsZCBiZSBkaXNwbGF5ZWQgb24gb3BlbmluZy4gKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIGFjY2Vzc29yIHZpZXc6IENhbGVuZGFyVmlldyA9ICdkYXknO1xuXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfbWluOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkID0gbnVsbDtcblxuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9tYXg6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsO1xuXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX3JlbmRlckNhbGVuZGFyID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfY2FsZW5kYXJFbGVtZW50ITogU2JiQ2FsZW5kYXJFbGVtZW50PFQ+O1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudCE6IFNiYk1pbmlCdXR0b25FbGVtZW50O1xuICBwcml2YXRlIF9wb3BvdmVyRWxlbWVudCE6IFNiYlBvcG92ZXJFbGVtZW50O1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRDb250cm9sbGVyKG5ldyBTYmJEYXRlcGlja2VyQXNzb2NpYXRpb25Db250cm9sQ29udHJvbGxlcih0aGlzKSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgKGV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQuY29tcG9zZWRQYXRoKClbMF0gPT09IHRoaXMpIHtcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgdGhpcy5oeWRyYXRpb25Db21wbGV0ZS50aGVuKCgpID0+ICh0aGlzLl9yZW5kZXJDYWxlbmRhciA9IHRydWUpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgdGhlIGNhbGVuZGFyLlxuICAgKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJ3NiYi1taW5pLWJ1dHRvbicpITtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuY2xpY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGNvbnN0IGZvcm1GaWVsZCA9IHRoaXMuY2xvc2VzdD8uKCdzYmItZm9ybS1maWVsZCcpID8/IHRoaXMuY2xvc2VzdD8uKCdbZGF0YS1mb3JtLWZpZWxkXScpO1xuICAgIGlmIChmb3JtRmllbGQpIHtcbiAgICAgIHRoaXMubmVnYXRpdmUgPSBmb3JtRmllbGQuaGFzQXR0cmlidXRlKCduZWdhdGl2ZScpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIGlmICh0aGlzLmRhdGVwaWNrZXIpIHtcbiAgICAgIHRoaXMuX2Rpc2FibGVkID1cbiAgICAgICAgKHRoaXMuZGF0ZXBpY2tlci5pbnB1dEVsZW1lbnQ/LmRpc2FibGVkIHx8IHRoaXMuZGF0ZXBpY2tlci5pbnB1dEVsZW1lbnQ/LnJlYWRPbmx5KSA/PyB0cnVlO1xuICAgICAgdGhpcy5fbWluID0gdGhpcy5kYXRlcGlja2VyLmlucHV0RWxlbWVudD8ubWluO1xuICAgICAgdGhpcy5fbWF4ID0gdGhpcy5kYXRlcGlja2VyLmlucHV0RWxlbWVudD8ubWF4O1xuXG4gICAgICB0aGlzLl9jb25maWd1cmVDYWxlbmRhcigpO1xuICAgICAgaWYgKHRoaXMuX2NhbGVuZGFyRWxlbWVudCkge1xuICAgICAgICB0aGlzLl9jYWxlbmRhckVsZW1lbnQuc2VsZWN0ZWQgPSB0aGlzLmRhdGVwaWNrZXIudmFsdWVBc0RhdGUgPz8gbnVsbDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgdGhpcy5fbWluID0gbnVsbDtcbiAgICAgIHRoaXMuX21heCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY29uZmlndXJlQ2FsZW5kYXIoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9jYWxlbmRhckVsZW1lbnQgfHwgIXRoaXMuZGF0ZXBpY2tlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9jYWxlbmRhckVsZW1lbnQud2lkZSA9IHRoaXMuZGF0ZXBpY2tlci53aWRlO1xuICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudC5ub3cgPSB0aGlzLl9ub3dPck51bGwoKTtcbiAgICB0aGlzLl9jYWxlbmRhckVsZW1lbnQuZGF0ZUZpbHRlciA9IHRoaXMuZGF0ZXBpY2tlci5kYXRlRmlsdGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXNzaWduQ2FsZW5kYXIoY2FsZW5kYXI6IFNiYkNhbGVuZGFyRWxlbWVudDxUPik6IHZvaWQge1xuICAgIGlmICh0aGlzLl9jYWxlbmRhckVsZW1lbnQgJiYgdGhpcy5fY2FsZW5kYXJFbGVtZW50ID09PSBjYWxlbmRhcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9jYWxlbmRhckVsZW1lbnQgPSBjYWxlbmRhcjtcbiAgICBpZiAoISgndmFsdWVBc0RhdGUnIGluICh0aGlzLmRhdGVwaWNrZXIgPz8ge30pKSB8fCAhdGhpcy5fY2FsZW5kYXJFbGVtZW50Py5yZXNldFBvc2l0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudC5zZWxlY3RlZCA9IHRoaXMuZGF0ZXBpY2tlciEudmFsdWVBc0RhdGUgPz8gbnVsbDtcbiAgICB0aGlzLl9jb25maWd1cmVDYWxlbmRhcigpO1xuICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudC5yZXNldFBvc2l0aW9uKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci51cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMuX3BvcG92ZXJFbGVtZW50LnRyaWdnZXIgPSB0aGlzLl90cmlnZ2VyRWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgX25vd09yTnVsbCgpOiBUIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZXBpY2tlcj8uaGFzQ3VzdG9tTm93KCkgPyB0aGlzLmRhdGVwaWNrZXIubm93IDogbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNiYi1taW5pLWJ1dHRvblxuICAgICAgICBjbGFzcz1cInNiYi1kYXRlcGlja2VyLXRvZ2dsZV9fdHJpZ2dlclwiXG4gICAgICAgIGljb24tbmFtZT1cImNhbGVuZGFyLXNtYWxsXCJcbiAgICAgICAgYXJpYS1sYWJlbD0ke2kxOG5TaG93Q2FsZW5kYXJbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgID9kaXNhYmxlZD0keyFpc1NlcnZlciAmJiAoIXRoaXMuZGF0ZXBpY2tlciB8fCB0aGlzLl9kaXNhYmxlZCl9XG4gICAgICAgID9uZWdhdGl2ZT0ke3RoaXMubmVnYXRpdmV9XG4gICAgICAgICR7cmVmKChlbD86IEVsZW1lbnQpID0+ICh0aGlzLl90cmlnZ2VyRWxlbWVudCA9IGVsIGFzIFNiYk1pbmlCdXR0b25FbGVtZW50KSl9XG4gICAgICA+PC9zYmItbWluaS1idXR0b24+XG4gICAgICA8c2JiLXBvcG92ZXJcbiAgICAgICAgQHdpbGxPcGVuPSR7KCkgPT4gdGhpcy5fY2FsZW5kYXJFbGVtZW50LnJlc2V0UG9zaXRpb24oKX1cbiAgICAgICAgQGRpZE9wZW49JHsoKSA9PiB7XG4gICAgICAgICAgaWYgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgICAgICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgLnRyaWdnZXI9JHt0aGlzLl90cmlnZ2VyRWxlbWVudH1cbiAgICAgICAgaGlkZS1jbG9zZS1idXR0b25cbiAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCkgPT4gKHRoaXMuX3BvcG92ZXJFbGVtZW50ID0gZWwgYXMgU2JiUG9wb3ZlckVsZW1lbnQpKX1cbiAgICAgID5cbiAgICAgICAgJHt0aGlzLl9yZW5kZXJDYWxlbmRhclxuICAgICAgICAgID8gaHRtbGA8c2JiLWNhbGVuZGFyXG4gICAgICAgICAgICAgIC52aWV3PSR7dGhpcy52aWV3fVxuICAgICAgICAgICAgICAubWluPSR7dGhpcy5fbWlufVxuICAgICAgICAgICAgICAubWF4PSR7dGhpcy5fbWF4fVxuICAgICAgICAgICAgICAubm93PSR7dGhpcy5fbm93T3JOdWxsKCl9XG4gICAgICAgICAgICAgID93aWRlPSR7dGhpcy5kYXRlcGlja2VyPy53aWRlfVxuICAgICAgICAgICAgICAuZGF0ZUZpbHRlcj0ke3RoaXMuZGF0ZXBpY2tlcj8uZGF0ZUZpbHRlcn1cbiAgICAgICAgICAgICAgQGRhdGVTZWxlY3RlZD0keyhkOiBDdXN0b21FdmVudDxUPikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudC5zZWxlY3RlZCA9IGQuZGV0YWlsO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRhdGVwaWNrZXIpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlci52YWx1ZUFzRGF0ZSA9IGQuZGV0YWlsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgJHtyZWYoKGNhbGVuZGFyPzogRWxlbWVudCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLl9hc3NpZ25DYWxlbmRhcihjYWxlbmRhciBhcyBTYmJDYWxlbmRhckVsZW1lbnQ8VD4pLFxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPjwvc2JiLWNhbGVuZGFyPmBcbiAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICA8L3NiYi1wb3BvdmVyPlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1kYXRlcGlja2VyLXRvZ2dsZSc6IFNiYkRhdGVwaWNrZXJUb2dnbGVFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUE4Qk0sOEJBQTBCLE1BQUE7O0FBSi9CLE1BQUEsbUJBQUEsQ0FBQSxjQUFjLHVCQUF1QixHQUNyQyxlQUFlO0FBQUEsSUFDZCxNQUFNO0FBQUEsRUFBQSxDQUNQLENBQUM7Ozs7QUFFUSxNQUFBLGNBQUEsaUJBQWlCLGtCQUFrQixVQUFVLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBdEQsRUFBQSxtQkFBUSxZQUErQztBQUFBLElB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
298
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci10b2dnbGUuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXItdG9nZ2xlL2RhdGVwaWNrZXItdG9nZ2xlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ1NTUmVzdWx0R3JvdXAsIFByb3BlcnR5VmFsdWVzLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBpc1NlcnZlciwgTGl0RWxlbWVudCwgbm90aGluZyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyByZWYgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9yZWYuanMnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYk1pbmlCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uL21pbmktYnV0dG9uLmpzJztcbmltcG9ydCB0eXBlIHsgQ2FsZW5kYXJWaWV3LCBTYmJDYWxlbmRhckVsZW1lbnQgfSBmcm9tICcuLi8uLi9jYWxlbmRhci5qcyc7XG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi8uLi9jb3JlL2ExMXkuanMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBpMThuU2hvd0NhbGVuZGFyIH0gZnJvbSAnLi4vLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB7IFNiYkh5ZHJhdGlvbk1peGluLCBTYmJOZWdhdGl2ZU1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJQb3BvdmVyRWxlbWVudCB9IGZyb20gJy4uLy4uL3BvcG92ZXIvcG9wb3Zlci5qcyc7XG5pbXBvcnQgeyBTYmJEYXRlcGlja2VyQXNzb2NpYXRpb25Db250cm9sQ29udHJvbGxlciwgdHlwZSBTYmJEYXRlcGlja2VyQ29udHJvbCB9IGZyb20gJy4uL2NvbW1vbi5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRhdGVwaWNrZXJFbGVtZW50IH0gZnJvbSAnLi4vZGF0ZXBpY2tlci5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2RhdGVwaWNrZXItdG9nZ2xlLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vLi4vY2FsZW5kYXIuanMnO1xuaW1wb3J0ICcuLi8uLi9wb3BvdmVyL3BvcG92ZXIuanMnO1xuaW1wb3J0ICcuLi8uLi9idXR0b24vbWluaS1idXR0b24uanMnO1xuXG4vKipcbiAqIENvbWJpbmVkIHdpdGggYSBgc2JiLWRhdGVwaWNrZXJgLCBpdCBjYW4gYmUgdXNlZCB0byBzZWxlY3QgYSBkYXRlIGZyb20gYSBgc2JiLWNhbGVuZGFyYC5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLWRhdGVwaWNrZXItdG9nZ2xlJylcbmNsYXNzIFNiYkRhdGVwaWNrZXJUb2dnbGVFbGVtZW50PFQgPSBEYXRlPlxuICBleHRlbmRzIFNiYk5lZ2F0aXZlTWl4aW4oU2JiSHlkcmF0aW9uTWl4aW4oTGl0RWxlbWVudCkpXG4gIGltcGxlbWVudHMgU2JiRGF0ZXBpY2tlckNvbnRyb2w8VD5cbntcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLyoqXG4gICAqIERhdGVwaWNrZXIgcmVmZXJlbmNlLlxuICAgKiBAaW50ZXJuYWxcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHByb3BlcnR5L2F0dHJpYnV0ZSBgZGF0ZXBpY2tlcmAgaW5zdGVhZC5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2RhdGUtcGlja2VyJyB9KVxuICBwdWJsaWMgc2V0IGRhdGVQaWNrZXIodmFsdWU6IHN0cmluZyB8IFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+IHwgbnVsbCkge1xuICAgIGlmIChpbXBvcnQubWV0YS5lbnYuREVWKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBQcm9wZXJ0eSBkYXRlUGlja2VyL0F0dHJpYnV0ZSBkYXRlLXBpY2tlciBpcyBkZXByZWNhdGVkLiBVc2UgJ2RhdGVwaWNrZXInIGluc3RlYWQuYCxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuZGF0ZXBpY2tlciA9IHZhbHVlIGFzIHVua25vd24gYXMgU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD4gfCBudWxsO1xuICB9XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHVibGljIGdldCBkYXRlUGlja2VyKCk6IHN0cmluZyB8IFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZXBpY2tlcjtcbiAgfVxuXG4gIC8qKiBEYXRlcGlja2VyIHJlZmVyZW5jZS4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnZGF0ZXBpY2tlcicgfSlcbiAgcHVibGljIHNldCBkYXRlcGlja2VyKHZhbHVlOiBTYmJEYXRlcGlja2VyRWxlbWVudDxUPiB8IG51bGwpIHtcbiAgICB0aGlzLl9kYXRlcGlja2VyID1cbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZydcbiAgICAgICAgPyAoKHRoaXMuZ2V0Um9vdE5vZGU/LigpIGFzIFBhcmVudE5vZGUpPy5xdWVyeVNlbGVjdG9yPy4oYCMke3ZhbHVlfWApID8/IG51bGwpXG4gICAgICAgIDogdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBkYXRlcGlja2VyKCk6IFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGVwaWNrZXIgPz8gbnVsbDtcbiAgfVxuICBwcml2YXRlIF9kYXRlcGlja2VyPzogU2JiRGF0ZXBpY2tlckVsZW1lbnQ8VD4gfCBudWxsO1xuXG4gIC8qKiBUaGUgaW5pdGlhbCB2aWV3IG9mIGNhbGVuZGFyIHdoaWNoIHNob3VsZCBiZSBkaXNwbGF5ZWQgb24gb3BlbmluZy4gKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIGFjY2Vzc29yIHZpZXc6IENhbGVuZGFyVmlldyA9ICdkYXknO1xuXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgQHN0YXRlKCkgcHJpdmF0ZSBhY2Nlc3NvciBfbWluOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkID0gbnVsbDtcblxuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9tYXg6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQgPSBudWxsO1xuXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX3JlbmRlckNhbGVuZGFyID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfY2FsZW5kYXJFbGVtZW50ITogU2JiQ2FsZW5kYXJFbGVtZW50PFQ+O1xuICBwcml2YXRlIF90cmlnZ2VyRWxlbWVudCE6IFNiYk1pbmlCdXR0b25FbGVtZW50O1xuICBwcml2YXRlIF9wb3BvdmVyRWxlbWVudCE6IFNiYlBvcG92ZXJFbGVtZW50O1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRDb250cm9sbGVyKG5ldyBTYmJEYXRlcGlja2VyQXNzb2NpYXRpb25Db250cm9sQ29udHJvbGxlcih0aGlzKSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgKGV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQuY29tcG9zZWRQYXRoKClbMF0gPT09IHRoaXMpIHtcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgdGhpcy5oeWRyYXRpb25Db21wbGV0ZS50aGVuKCgpID0+ICh0aGlzLl9yZW5kZXJDYWxlbmRhciA9IHRydWUpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgdGhlIGNhbGVuZGFyLlxuICAgKi9cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJ3NiYi1taW5pLWJ1dHRvbicpITtcbiAgICB9XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuY2xpY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuc2xvdCB8fD0gJ3ByZWZpeCc7XG4gICAgY29uc3QgZm9ybUZpZWxkID0gdGhpcy5jbG9zZXN0Py4oJ3NiYi1mb3JtLWZpZWxkJykgPz8gdGhpcy5jbG9zZXN0Py4oJ1tkYXRhLWZvcm0tZmllbGRdJyk7XG4gICAgaWYgKGZvcm1GaWVsZCkge1xuICAgICAgdGhpcy5uZWdhdGl2ZSA9IGZvcm1GaWVsZC5oYXNBdHRyaWJ1dGUoJ25lZ2F0aXZlJyk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlcikge1xuICAgICAgdGhpcy5fZGlzYWJsZWQgPVxuICAgICAgICAodGhpcy5kYXRlcGlja2VyLmlucHV0RWxlbWVudD8uZGlzYWJsZWQgfHwgdGhpcy5kYXRlcGlja2VyLmlucHV0RWxlbWVudD8ucmVhZE9ubHkpID8/IHRydWU7XG4gICAgICB0aGlzLl9taW4gPSB0aGlzLmRhdGVwaWNrZXIuaW5wdXRFbGVtZW50Py5taW47XG4gICAgICB0aGlzLl9tYXggPSB0aGlzLmRhdGVwaWNrZXIuaW5wdXRFbGVtZW50Py5tYXg7XG5cbiAgICAgIHRoaXMuX2NvbmZpZ3VyZUNhbGVuZGFyKCk7XG4gICAgICBpZiAodGhpcy5fY2FsZW5kYXJFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudC5zZWxlY3RlZCA9IHRoaXMuZGF0ZXBpY2tlci52YWx1ZUFzRGF0ZSA/PyBudWxsO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9kaXNhYmxlZCA9IHRydWU7XG4gICAgICB0aGlzLl9taW4gPSBudWxsO1xuICAgICAgdGhpcy5fbWF4ID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jb25maWd1cmVDYWxlbmRhcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2NhbGVuZGFyRWxlbWVudCB8fCAhdGhpcy5kYXRlcGlja2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudC53aWRlID0gdGhpcy5kYXRlcGlja2VyLndpZGU7XG4gICAgdGhpcy5fY2FsZW5kYXJFbGVtZW50Lm5vdyA9IHRoaXMuX25vd09yTnVsbCgpO1xuICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudC5kYXRlRmlsdGVyID0gdGhpcy5kYXRlcGlja2VyLmRhdGVGaWx0ZXI7XG4gIH1cblxuICBwcml2YXRlIF9hc3NpZ25DYWxlbmRhcihjYWxlbmRhcjogU2JiQ2FsZW5kYXJFbGVtZW50PFQ+KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2NhbGVuZGFyRWxlbWVudCAmJiB0aGlzLl9jYWxlbmRhckVsZW1lbnQgPT09IGNhbGVuZGFyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2NhbGVuZGFyRWxlbWVudCA9IGNhbGVuZGFyO1xuICAgIGlmICghKCd2YWx1ZUFzRGF0ZScgaW4gKHRoaXMuZGF0ZXBpY2tlciA/PyB7fSkpIHx8ICF0aGlzLl9jYWxlbmRhckVsZW1lbnQ/LnJlc2V0UG9zaXRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fY2FsZW5kYXJFbGVtZW50LnNlbGVjdGVkID0gdGhpcy5kYXRlcGlja2VyIS52YWx1ZUFzRGF0ZSA/PyBudWxsO1xuICAgIHRoaXMuX2NvbmZpZ3VyZUNhbGVuZGFyKCk7XG4gICAgdGhpcy5fY2FsZW5kYXJFbGVtZW50LnJlc2V0UG9zaXRpb24oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLnVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgdGhpcy5fcG9wb3ZlckVsZW1lbnQudHJpZ2dlciA9IHRoaXMuX3RyaWdnZXJFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBfbm93T3JOdWxsKCk6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5kYXRlcGlja2VyPy5oYXNDdXN0b21Ob3coKSA/IHRoaXMuZGF0ZXBpY2tlci5ub3cgOiBudWxsO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c2JiLW1pbmktYnV0dG9uXG4gICAgICAgIGNsYXNzPVwic2JiLWRhdGVwaWNrZXItdG9nZ2xlX190cmlnZ2VyXCJcbiAgICAgICAgaWNvbi1uYW1lPVwiY2FsZW5kYXItc21hbGxcIlxuICAgICAgICBhcmlhLWxhYmVsPSR7aTE4blNob3dDYWxlbmRhclt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgP2Rpc2FibGVkPSR7IWlzU2VydmVyICYmICghdGhpcy5kYXRlcGlja2VyIHx8IHRoaXMuX2Rpc2FibGVkKX1cbiAgICAgICAgP25lZ2F0aXZlPSR7dGhpcy5uZWdhdGl2ZX1cbiAgICAgICAgJHtyZWYoKGVsPzogRWxlbWVudCkgPT4gKHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gZWwgYXMgU2JiTWluaUJ1dHRvbkVsZW1lbnQpKX1cbiAgICAgID48L3NiYi1taW5pLWJ1dHRvbj5cbiAgICAgIDxzYmItcG9wb3ZlclxuICAgICAgICBAd2lsbE9wZW49JHsoKSA9PiB0aGlzLl9jYWxlbmRhckVsZW1lbnQucmVzZXRQb3NpdGlvbigpfVxuICAgICAgICBAZGlkT3Blbj0keygpID0+IHtcbiAgICAgICAgICBpZiAoc2JiSW5wdXRNb2RhbGl0eURldGVjdG9yLm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJykge1xuICAgICAgICAgICAgdGhpcy5fY2FsZW5kYXJFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICAudHJpZ2dlcj0ke3RoaXMuX3RyaWdnZXJFbGVtZW50fVxuICAgICAgICBoaWRlLWNsb3NlLWJ1dHRvblxuICAgICAgICAke3JlZigoZWw/OiBFbGVtZW50KSA9PiAodGhpcy5fcG9wb3ZlckVsZW1lbnQgPSBlbCBhcyBTYmJQb3BvdmVyRWxlbWVudCkpfVxuICAgICAgPlxuICAgICAgICAke3RoaXMuX3JlbmRlckNhbGVuZGFyXG4gICAgICAgICAgPyBodG1sYDxzYmItY2FsZW5kYXJcbiAgICAgICAgICAgICAgLnZpZXc9JHt0aGlzLnZpZXd9XG4gICAgICAgICAgICAgIC5taW49JHt0aGlzLl9taW59XG4gICAgICAgICAgICAgIC5tYXg9JHt0aGlzLl9tYXh9XG4gICAgICAgICAgICAgIC5ub3c9JHt0aGlzLl9ub3dPck51bGwoKX1cbiAgICAgICAgICAgICAgP3dpZGU9JHt0aGlzLmRhdGVwaWNrZXI/LndpZGV9XG4gICAgICAgICAgICAgIC5kYXRlRmlsdGVyPSR7dGhpcy5kYXRlcGlja2VyPy5kYXRlRmlsdGVyfVxuICAgICAgICAgICAgICBAZGF0ZVNlbGVjdGVkPSR7KGQ6IEN1c3RvbUV2ZW50PFQ+KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2FsZW5kYXJFbGVtZW50LnNlbGVjdGVkID0gZC5kZXRhaWw7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0ZXBpY2tlcikge1xuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlcGlja2VyLnZhbHVlQXNEYXRlID0gZC5kZXRhaWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAke3JlZigoY2FsZW5kYXI/OiBFbGVtZW50KSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuX2Fzc2lnbkNhbGVuZGFyKGNhbGVuZGFyIGFzIFNiYkNhbGVuZGFyRWxlbWVudDxUPiksXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA+PC9zYmItY2FsZW5kYXI+YFxuICAgICAgICAgIDogbm90aGluZ31cbiAgICAgIDwvc2JiLXBvcG92ZXI+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWRhdGVwaWNrZXItdG9nZ2xlJzogU2JiRGF0ZXBpY2tlclRvZ2dsZUVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBMEJNLDhCQUEwQixNQUFBOzswQkFEL0IsY0FBYyx1QkFBdUIsQ0FBQzs7OztBQUU3QixNQUFBLGNBQUEsaUJBQWlCLGtCQUFrQixVQUFVLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBdEQsRUFBQSxtQkFBUSxZQUErQztBQUFBLElBcUR2RCxjQUFBOzs7QUFmWTtBQUVIO0FBRUE7QUFFQTtBQUVBO0FBWFUsV0FBQSxjQXBDZjtBQXVDd0IseUJBQUEsd0JBQUEsa0JBQUEsTUFBQSxvQkFBcUIsS0FBSztBQUU1Qix5QkFBQSw4QkFBQSxrQkFBQSxN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
@@ -6,7 +6,7 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
6
6
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
7
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
8
  import { __esDecorate, __runInitializers } from "tslib";
9
- import { css, isServer, html, LitElement } from "lit";
9
+ import { css, LitElement, isServer, html } from "lit";
10
10
  import { customElement, property, state } from "lit/decorators.js";
11
11
  import { readConfig } from "../core/config.js";
12
12
  import { SbbLanguageController } from "../core/controllers.js";
@@ -1,5 +1,5 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
- import { css, html, LitElement } from "lit";
2
+ import { css, LitElement, html } from "lit";
3
3
  import { customElement } from "lit/decorators.js";
4
4
  import { forwardEvent } from "../core/eventing.js";
5
5
  const style = css`*,
@@ -11,7 +11,7 @@ import { customElement, property } from "lit/decorators.js";
11
11
  import { html } from "lit/static-html.js";
12
12
  import { setModalityOnNextFocus, getFirstFocusableElement } from "../core/a11y.js";
13
13
  import { isZeroAnimationDuration, isBreakpoint } from "../core/dom.js";
14
- import { overlayRefs, SbbOverlayBaseElement } from "../overlay.js";
14
+ import { SbbOverlayBaseElement, overlayRefs } from "../overlay.js";
15
15
  import { css } from "lit";
16
16
  import "../screen-reader-only.js";
17
17
  const style = css`*,
@@ -1,5 +1,5 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
- import { css, html, LitElement } from "lit";
2
+ import { css, LitElement, html } from "lit";
3
3
  import { customElement } from "lit/decorators.js";
4
4
  import { hostAttributes } from "../core/decorators.js";
5
5
  const style = css`*,
@@ -1,6 +1,6 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
2
  import { MutationController } from "@lit-labs/observers/mutation-controller.js";
3
- import { css, html, LitElement } from "lit";
3
+ import { css, LitElement, html } from "lit";
4
4
  import { customElement } from "lit/decorators.js";
5
5
  import { IS_FOCUSABLE_QUERY } from "../core/a11y.js";
6
6
  import { hostAttributes } from "../core/decorators.js";
@@ -6,7 +6,7 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
6
6
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
7
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
8
  import { __esDecorate, __runInitializers } from "tslib";
9
- import { css, html, LitElement } from "lit";
9
+ import { css, LitElement, html } from "lit";
10
10
  import { customElement, property } from "lit/decorators.js";
11
11
  import { hostAttributes } from "../core/decorators.js";
12
12
  const style = css`*,
@@ -6,7 +6,7 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
6
6
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
7
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
8
  import { __esDecorate, __runInitializers } from "tslib";
9
- import { isServer, css, html, LitElement, nothing } from "lit";
9
+ import { isServer, css, LitElement, html, nothing } from "lit";
10
10
  import { state, property, customElement } from "lit/decorators.js";
11
11
  import { hostAttributes, forceType, omitEmptyConverter } from "./core/decorators.js";
12
12
  import { unsafeHTML } from "lit/directives/unsafe-html.js";
@@ -6,8 +6,8 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
6
6
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
7
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
8
  import { __esDecorate, __runInitializers } from "tslib";
9
- import { S as SbbTypoScaleDefault, a as SbbBreakpointZeroMin, b as SbbBreakpointZeroMax, c as SbbBreakpointMicroMin, d as SbbBreakpointMicroMax, e as SbbBreakpointSmallMin, f as SbbBreakpointSmallMax, g as SbbBreakpointMediumMin, h as SbbBreakpointMediumMax, i as SbbBreakpointLargeMin, j as SbbBreakpointLargeMax, k as SbbBreakpointWideMin, l as SbbBreakpointWideMax, m as SbbBreakpointUltraMin, n as SbbBreakpointUltraMax } from "./sbb-tokens-BdGhUJjM.js";
10
- import { css, html, nothing, LitElement } from "lit";
9
+ import { S as SbbTypoScaleDefault, a as SbbBreakpointUltraMax, b as SbbBreakpointUltraMin, c as SbbBreakpointWideMax, d as SbbBreakpointWideMin, e as SbbBreakpointLargeMax, f as SbbBreakpointLargeMin, g as SbbBreakpointMediumMax, h as SbbBreakpointMediumMin, i as SbbBreakpointSmallMax, j as SbbBreakpointSmallMin, k as SbbBreakpointMicroMax, l as SbbBreakpointMicroMin, m as SbbBreakpointZeroMax, n as SbbBreakpointZeroMin } from "./sbb-tokens-CSAKTXUi.js";
10
+ import { css, LitElement, html, nothing } from "lit";
11
11
  import { customElement, property, eventOptions } from "lit/decorators.js";
12
12
  import { forceType } from "./core/decorators.js";
13
13
  const style = css`*,
@@ -1,5 +1,5 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
- import { css, html, LitElement } from "lit";
2
+ import { css, LitElement, html } from "lit";
3
3
  import { customElement } from "lit/decorators.js";
4
4
  const style = css`*,
5
5
  ::before,