@sbb-esta/lyne-elements 1.11.0 → 1.11.2

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.
@@ -2,7 +2,6 @@ import { property, state } from "lit/decorators.js";
2
2
  import { defaultConverter, html, nothing, css } from "lit";
3
3
  import { hostAttributes } from "./decorators.js";
4
4
  import { preventScrollOnSpacebarPress, EventEmitter } from "./eventing.js";
5
- import { getLocalName } from "./dom.js";
6
5
  import "../screen-reader-only.js";
7
6
  var __defProp$6 = Object.defineProperty;
8
7
  var __getOwnPropDesc$3 = Object.getOwnPropertyDescriptor;
@@ -481,7 +480,7 @@ const SbbNamedSlotListMixin = (superClass) => {
481
480
  if (listSlotNames.length >= 2) {
482
481
  return html`
483
482
  <ul
484
- class=${attributes.class || (this.localName ?? getLocalName(this))}
483
+ class=${attributes.class || this.localName}
485
484
  aria-label=${attributes.ariaLabel || nothing}
486
485
  aria-labelledby=${attributes.ariaLabelledby || nothing}
487
486
  >
@@ -497,7 +496,7 @@ const SbbNamedSlotListMixin = (superClass) => {
497
496
  `;
498
497
  } else if (listSlotNames.length === 1) {
499
498
  return html`<sbb-screen-reader-only>${attributes.ariaLabel}</sbb-screen-reader-only>
500
- <span class=${attributes.class || (this.localName ?? getLocalName(this))}>
499
+ <span class=${attributes.class || this.localName}>
501
500
  <span><slot name=${listSlotNames[0].name}></slot></span>
502
501
  </span>
503
502
  ${this.renderHiddenSlot()} `;
@@ -748,4 +747,4 @@ export {
748
747
  SbbUpdateSchedulerMixin,
749
748
  panelCommon as panelCommonStyle
750
749
  };
751
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWl4aW5zLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZGlzYWJsZWQtbWl4aW4udHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZm9ybS1hc3NvY2lhdGVkLW1peGluLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL3JlcXVpcmVkLW1peGluLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL2Zvcm0tYXNzb2NpYXRlZC1jaGVja2JveC1taXhpbi50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9oeWRyYXRpb24tbWl4aW4udHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvbmFtZWQtc2xvdC1saXN0LW1peGluLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL25lZ2F0aXZlLW1peGluLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL3BhbmVsLW1peGluLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL3VwZGF0ZS1zY2hlZHVsZXItbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMaXRFbGVtZW50LCBQcm9wZXJ0eVZhbHVlcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci5qcyc7XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFNiYkRpc2FibGVkTWl4aW5UeXBlIHtcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbik7XG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIGlzRGlzYWJsZWRFeHRlcm5hbGx5KCk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFNiYkRpc2FibGVkSW50ZXJhY3RpdmVNaXhpblR5cGUge1xuICBwdWJsaWMgZGlzYWJsZWRJbnRlcmFjdGl2ZTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBFbmhhbmNlIHlvdXIgY29tcG9uZW50IHdpdGggYSBkaXNhYmxlZCBwcm9wZXJ0eS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkRpc2FibGVkTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJEaXNhYmxlZE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRGlzYWJsZWRFbGVtZW50IGV4dGVuZHMgc3VwZXJDbGFzcyBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRGlzYWJsZWRNaXhpblR5cGU+IHtcbiAgICAvKiogV2hldGhlciB0aGUgY29tcG9uZW50IGlzIGRpc2FibGVkLiAqL1xuICAgIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAvLyBUbyBwcm92aWRlIHRoZSBzYW1lIGJlaGF2aW9yIGFzIHRoZSBuYXRpdmUgZGlzYWJsZWQgc3RhdGUsXG4gICAgICAvLyBhbnkgdmFsdWUgaXMgY29udmVydGVkIHRvIGEgYm9vbGVhbi5cbiAgICAgIHRoaXMuX2Rpc2FibGVkID0gQm9vbGVhbih2YWx1ZSk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQgfHwgdGhpcy5pc0Rpc2FibGVkRXh0ZXJuYWxseSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2lsbCBiZSB1c2VkIGFzICdvcicgY2hlY2sgdG8gdGhlIGN1cnJlbnQgZGlzYWJsZWQgc3RhdGUuXG4gICAgICogQ2FuIGUuZy4gYmUgdXNlZCB0byByZWFkIGRpc2FibGVkIHN0YXRlIG9mIGEgZ3JvdXAuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGlzRGlzYWJsZWRFeHRlcm5hbGx5KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTYmJEaXNhYmxlZEVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkRpc2FibGVkTWl4aW5UeXBlPiAmIFQ7XG59O1xuXG4vKipcbiAqIEVuaGFuY2UgeW91ciBjb21wb25lbnQgd2l0aCBhIGRpc2FibGVkIGludGVyYWN0aXZlIHByb3BlcnR5LlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluID0gPFxuICBUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50ICYgU2JiRGlzYWJsZWRNaXhpblR5cGU+LFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRGlzYWJsZWRJbnRlcmFjdGl2ZUVsZW1lbnRcbiAgICBleHRlbmRzIHN1cGVyQ2xhc3NcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluVHlwZT5cbiAge1xuICAgIC8qKiBXaGV0aGVyIGRpc2FibGVkIGJ1dHRvbnMgc2hvdWxkIGJlIGludGVyYWN0aXZlLiAqL1xuICAgIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Rpc2FibGVkLWludGVyYWN0aXZlJywgdHlwZTogQm9vbGVhbiB9KSBwdWJsaWMgZGlzYWJsZWRJbnRlcmFjdGl2ZSA9XG4gICAgICBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBTYmJEaXNhYmxlZEludGVyYWN0aXZlRWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRGlzYWJsZWRUYWJJbmRleEFjdGlvbk1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRNaXhpblR5cGUgJiBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJEaXNhYmxlZFRhYkluZGV4QWN0aW9uXG4gICAgZXh0ZW5kcyBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW4oU2JiRGlzYWJsZWRNaXhpbihzdXBlckNsYXNzKSlcbiAgICBpbXBsZW1lbnRzIFNiYkRpc2FibGVkTWl4aW5UeXBlLCBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlXG4gIHtcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGlzYWJsZWQnKSAmJiAhY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZEludGVyYWN0aXZlJykpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZEludGVyYWN0aXZlKSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgndGFiaW5kZXgnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2FyaWEtZGlzYWJsZWQnLCAndHJ1ZScpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtZGlzYWJsZWQnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIFNiYkRpc2FibGVkVGFiSW5kZXhBY3Rpb24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxcbiAgICBTYmJEaXNhYmxlZE1peGluVHlwZSAmIFNiYkRpc2FibGVkSW50ZXJhY3RpdmVNaXhpblR5cGVcbiAgPiAmXG4gICAgVDtcbn07XG5cbi8qKlxuICogRXh0ZW5kcyBgU2JiRGlzYWJsZWRNaXhpbmAgd2l0aCB0aGUgYGFyaWEtZGlzYWJsZWRgIGF0dHJpYnV0ZS5cbiAqIEZvciBhMTF5IHB1cnBvc2VzLCBrZWVwcyB0aGUgZWxlbWVudCBmb2N1c2FibGUgZXZlbiB3aGVuIGRpc2FibGVkLlxuICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZW1vdmVkIHdpdGggbmV4dCBtYWpvciB2ZXJzaW9uXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJGb2N1c2FibGVEaXNhYmxlZEFjdGlvbk1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRNaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYkZvY3VzYWJsZURpc2FibGVkQWN0aW9uXG4gICAgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKHN1cGVyQ2xhc3MpXG4gICAgaW1wbGVtZW50cyBTYmJEaXNhYmxlZE1peGluVHlwZVxuICB7XG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgICAgaWYgKCFjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Rpc2FibGVkJykpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnYXJpYS1kaXNhYmxlZCcsICd0cnVlJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1kaXNhYmxlZCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gU2JiRm9jdXNhYmxlRGlzYWJsZWRBY3Rpb24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJEaXNhYmxlZE1peGluVHlwZT4gJiBUO1xufTtcbiIsImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLmpzJztcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRNaXhpblR5cGUge1xuICBwdWJsaWMgZ2V0IGZvcm0oKTogSFRNTEZvcm1FbGVtZW50IHwgbnVsbDtcbiAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZztcbiAgcHVibGljIHNldCBuYW1lKHZhbHVlOiBzdHJpbmcpO1xuICBwdWJsaWMgZ2V0IHR5cGUoKTogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IG51bGw7XG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpO1xuXG4gIHB1YmxpYyBnZXQgdmFsaWRpdHkoKTogVmFsaWRpdHlTdGF0ZTtcbiAgcHVibGljIGdldCB2YWxpZGF0aW9uTWVzc2FnZSgpOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgd2lsbFZhbGlkYXRlKCk6IGJvb2xlYW47XG5cbiAgcHJvdGVjdGVkIGZvcm1EaXNhYmxlZDogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGludGVybmFsczogRWxlbWVudEludGVybmFscztcblxuICBwdWJsaWMgY2hlY2tWYWxpZGl0eSgpOiBib29sZWFuO1xuICBwdWJsaWMgcmVwb3J0VmFsaWRpdHkoKTogYm9vbGVhbjtcblxuICBwdWJsaWMgZm9ybUFzc29jaWF0ZWRDYWxsYmFjaz8oZm9ybTogSFRNTEZvcm1FbGVtZW50IHwgbnVsbCk6IHZvaWQ7XG4gIHB1YmxpYyBmb3JtRGlzYWJsZWRDYWxsYmFjayhkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQ7XG4gIHB1YmxpYyBhYnN0cmFjdCBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkO1xuICBwdWJsaWMgYWJzdHJhY3QgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKFxuICAgIHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCxcbiAgICByZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICApOiB2b2lkO1xuXG4gIHByb3RlY3RlZCB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBUaGUgRm9ybUFzc29jaWF0ZWRNaXhpbiBlbmFibGVzIG5hdGl2ZSBmb3JtIHN1cHBvcnQgZm9yIGN1c3RvbSBjb250cm9scy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4gPSA8VCBleHRlbmRzIENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IENvbnN0cnVjdG9yPFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJGb3JtQXNzb2NpYXRlZEVsZW1lbnRcbiAgICBleHRlbmRzIHN1cGVyQ2xhc3NcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRm9ybUFzc29jaWF0ZWRNaXhpblR5cGU+XG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIGZvcm1Bc3NvY2lhdGVkID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGZvcm0gb3duZXIgb2YgaW50ZXJuYWxzIHRhcmdldCBlbGVtZW50LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgZm9ybSgpOiBIVE1MRm9ybUVsZW1lbnQgfCBudWxsIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFscy5mb3JtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGZvcm0gZWxlbWVudC4gV2lsbCBiZSByZWFkIGZyb20gbmFtZSBhdHRyaWJ1dGUuXG4gICAgICpcbiAgICAgKiBAZGVzY3JpcHRpb24gRGV2ZWxvcGVyIG5vdGU6IEluIHRoaXMgY2FzZSB1cGRhdGluZyB0aGUgYXR0cmlidXRlIG11c3QgYmUgc3luY2hyb25vdXMuXG4gICAgICogRHVlIHRvIHRoaXMgaXQgaXMgaW1wbGVtZW50ZWQgYXMgYSBnZXR0ZXIvc2V0dGVyIGFuZCB0aGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKCkgaGFuZGxlcyB0aGUgZGlmZiBjaGVjay5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoKVxuICAgIHB1YmxpYyBzZXQgbmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCduYW1lJywgYCR7bmFtZX1gKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ25hbWUnKSA/PyAnJztcbiAgICB9XG5cbiAgICAvKiogQGludGVybmFsICovXG4gICAgcHVibGljIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGhpcy5sb2NhbE5hbWU7XG4gICAgfVxuXG4gICAgLyoqIFZhbHVlIG9mIHRoZSBmb3JtIGVsZW1lbnQuICovXG4gICAgQHByb3BlcnR5KClcbiAgICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy51cGRhdGVGb3JtVmFsdWUoKTtcbiAgICB9XG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgVmFsaWRpdHlTdGF0ZSBvYmplY3QgZm9yIGludGVybmFscyB0YXJnZXQgZWxlbWVudC5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdmFsaWRpdHkoKTogVmFsaWRpdHlTdGF0ZSB7XG4gICAgICByZXR1cm4gdGhpcy5pbnRlcm5hbHMudmFsaWRpdHk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgZXJyb3IgbWVzc2FnZSB0aGF0IHdvdWxkIGJlIHNob3duIHRvIHRoZSB1c2VyXG4gICAgICogaWYgaW50ZXJuYWxzIHRhcmdldCBlbGVtZW50IHdhcyB0byBiZSBjaGVja2VkIGZvciB2YWxpZGl0eS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdmFsaWRhdGlvbk1lc3NhZ2UoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFscy52YWxpZGF0aW9uTWVzc2FnZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRydWUgaWYgaW50ZXJuYWxzIHRhcmdldCBlbGVtZW50IHdpbGwgYmUgdmFsaWRhdGVkXG4gICAgICogd2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQ7IGZhbHNlIG90aGVyd2lzZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgd2lsbFZhbGlkYXRlKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxzLndpbGxWYWxpZGF0ZTtcbiAgICB9XG5cbiAgICAvKiogQGludGVybmFsICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGludGVybmFsczogRWxlbWVudEludGVybmFscyA9IHRoaXMuYXR0YWNoSW50ZXJuYWxzKCk7XG5cbiAgICAvKiogV2hlbmV2ZXIgYSBzdXJyb3VuZGluZyBmb3JtIG9yIGZpZWxkc2V0IGlzIGNoYW5naW5nIGl0cyBkaXNhYmxlZCBzdGF0ZS4gKi9cbiAgICBAc3RhdGUoKSBwcm90ZWN0ZWQgZm9ybURpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICAgKTogdm9pZCB7XG4gICAgICBpZiAobmFtZSAhPT0gJ25hbWUnIHx8IG9sZCAhPT0gdmFsdWUpIHtcbiAgICAgICAgc3VwZXIuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKG5hbWUsIG9sZCwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiBpbnRlcm5hbHMgdGFyZ2V0IGVsZW1lbnQgaGFzIG5vIHZhbGlkaXR5IHByb2JsZW1zOyBmYWxzZSBvdGhlcndpc2UuXG4gICAgICogRmlyZXMgYW4gaW52YWxpZCBldmVudCBhdCB0aGUgZWxlbWVudCBpbiB0aGUgbGF0dGVyIGNhc2UuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgY2hlY2tWYWxpZGl0eSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFscy5jaGVja1ZhbGlkaXR5KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIGludGVybmFscyB0YXJnZXQgZWxlbWVudCBoYXMgbm8gdmFsaWRpdHkgcHJvYmxlbXM7IG90aGVyd2lzZSxcbiAgICAgKiByZXR1cm5zIGZhbHNlLCBmaXJlcyBhbiBpbnZhbGlkIGV2ZW50IGF0IHRoZSBlbGVtZW50LFxuICAgICAqIGFuZCAoaWYgdGhlIGV2ZW50IGlzbid0IGNhbmNlbGVkKSByZXBvcnRzIHRoZSBwcm9ibGVtIHRvIHRoZSB1c2VyLlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIHJlcG9ydFZhbGlkaXR5KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxzLnJlcG9ydFZhbGlkaXR5KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgZm9ybSBlbGVtZW50IGNoYW5nZXMuXG4gICAgICogRWxlbWVudEludGVybmFscy5mb3JtIHJldHVybnMgdGhlIGFzc29jaWF0ZWQgZnJvbSBlbGVtZW50LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2s/KGZvcm06IEhUTUxGb3JtRWxlbWVudCB8IG51bGwpOiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIGEgc3Vycm91bmRpbmcgZm9ybSAvIGZpZWxkc2V0IGNoYW5nZXMgZGlzYWJsZWQgc3RhdGUuXG4gICAgICogQHBhcmFtIGRpc2FibGVkXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZm9ybURpc2FibGVkQ2FsbGJhY2soZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgIC8vIFRoaXMgY2FsbGJhY2sgaXMgdHJpZ2dlcmVkIGlmIHRoZSBkaXNhYmxlZCBwcm9wZXJ0eSBjaGFuZ2VzIG9yIHRoZSBkaXNhYmxlZCBhdHRyaWJ1dGUgb2YgYSBmaWVsZHNldCBvciBmb3JtIGNoYW5nZXMuXG4gICAgICAvLyBXZSBuZWVkIHRvIHBvc3Rwb25lIHRoZSBhc3NpZ25tZW50LCBvdGhlcndpc2UgaXQgaW50ZXJmZXJlcyB3aXRoIGRpc2FibGVkIHN0YXR1cyBzZXR0aW5nXG4gICAgICAvLyBhbmQgbGVhZHMgdG8gYSB3cm9uZyBzdGF0ZSAoZS5nLiBlbWJlZGRlZCBzYmItdmlzdWFsLWNoZWNrYm94KS5cbiAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmZvcm1EaXNhYmxlZCA9IGRpc2FibGVkO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiAgQ2FsbGVkIHdoZW4gdGhlIGJyb3dzZXIgaXMgdHJ5aW5nIHRvIHJlc3RvcmUgZWxlbWVudOKAmXMgc3RhdGUgdG8gc3RhdGUgaW4gd2hpY2ggY2FzZVxuICAgICAqICByZWFzb24gaXMg4oCccmVzdG9yZeKAnSwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyDigJxhdXRvY29tcGxldGXigJ0uXG4gICAgICogIEluIHRoZSBjYXNlIG9mIOKAnHJlc3RvcmXigJ0sIHN0YXRlIGlzIGEgc3RyaW5nLCBGaWxlLCBvciBGb3JtRGF0YSBvYmplY3RcbiAgICAgKiAgcHJldmlvdXNseSBzZXQgYXMgdGhlIHNlY29uZCBhcmd1bWVudCB0byBzZXRGb3JtVmFsdWUuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKFxuICAgICAgc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgICAgcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkO1xuXG4gICAgLyoqIFNob3VsZCBiZSBjYWxsZWQgd2hlbiBmb3JtIHZhbHVlIGlzIGNoYW5nZWQuICovXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUZvcm1WYWx1ZSgpOiB2b2lkIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnNldEZvcm1WYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFNiYkZvcm1Bc3NvY2lhdGVkRWxlbWVudCBhcyB1bmtub3duIGFzIENvbnN0cnVjdG9yPFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW5UeXBlPiAmIFQ7XG59O1xuXG4vKipcbiAqIEEgdmFsdWUgdG8gYmUgcmVzdG9yZWQgZm9yIGEgY29tcG9uZW50J3MgZm9ybSB2YWx1ZS4gSWYgYSBjb21wb25lbnQncyBmb3JtXG4gKiBzdGF0ZSBpcyBhIGBGb3JtRGF0YWAgb2JqZWN0LCBpdHMgZW50cnkgbGlzdCBvZiBuYW1lIGFuZCB2YWx1ZXMgd2lsbCBiZVxuICogcHJvdmlkZWQuXG4gKi9cbmV4cG9ydCB0eXBlIEZvcm1SZXN0b3JlU3RhdGUgPSBGaWxlIHwgc3RyaW5nIHwgW3N0cmluZywgRm9ybURhdGFFbnRyeVZhbHVlXVtdO1xuXG4vKipcbiAqIFRoZSByZWFzb24gYSBmb3JtIGNvbXBvbmVudCBpcyBiZWluZyByZXN0b3JlZCBmb3IsIGVpdGhlciBgJ3Jlc3RvcmUnYCBmb3JcbiAqIGJyb3dzZXIgcmVzdG9yYXRpb24gb3IgYCdhdXRvY29tcGxldGUnYCBmb3IgcmVzdG9yaW5nIHVzZXIgdmFsdWVzLlxuICovXG5leHBvcnQgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbiA9ICdyZXN0b3JlJyB8ICdhdXRvY29tcGxldGUnO1xuIiwiaW1wb3J0IHR5cGUgeyBMaXRFbGVtZW50LCBQcm9wZXJ0eVZhbHVlcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW5UeXBlIH0gZnJvbSAnLi9mb3JtLWFzc29jaWF0ZWQtbWl4aW4uanMnO1xuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJSZXF1aXJlZE1peGluVHlwZSB7XG4gIHB1YmxpYyBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBpc1JlcXVpcmVkRXh0ZXJuYWxseSgpOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEVuaGFuY2UgeW91ciBjb21wb25lbnQgd2l0aCBhIHJlcXVpcmVkIHByb3BlcnR5LlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiUmVxdWlyZWRNaXhpbiA9IDxcbiAgVCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudCAmIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW5UeXBlPixcbj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlJlcXVpcmVkTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJSZXF1aXJlZEVsZW1lbnQgZXh0ZW5kcyBzdXBlckNsYXNzIGltcGxlbWVudHMgUGFydGlhbDxTYmJSZXF1aXJlZE1peGluVHlwZT4ge1xuICAgIC8qKiBXaGV0aGVyIHRoZSBjb21wb25lbnQgaXMgcmVxdWlyZWQuICovXG4gICAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICAgIHB1YmxpYyBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgIC8vIFRvIHByb3ZpZGUgdGhlIHNhbWUgYmVoYXZpb3IgYXMgdGhlIG5hdGl2ZSByZXF1aXJlZCBzdGF0ZSxcbiAgICAgIC8vIGFueSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gYSBib29sZWFuLlxuICAgICAgdGhpcy5fcmVxdWlyZWQgPSBCb29sZWFuKHZhbHVlKTtcbiAgICB9XG4gICAgcHVibGljIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZCB8fCB0aGlzLmlzUmVxdWlyZWRFeHRlcm5hbGx5KCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdyZXF1aXJlZCcpKSB7XG4gICAgICAgIC8vIEZpcmVmb3ggbmVlZHMgZXhwbGljaXRseSBzZXQgYXJpYS1yZXF1aXJlZCB2YWx1ZS5cbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYVJlcXVpcmVkID0gYCR7dGhpcy5yZXF1aXJlZH1gO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdpbGwgYmUgdXNlZCBhcyAnb3InIGNoZWNrIHRvIHRoZSBjdXJyZW50IHJlcXVpcmVkIHN0YXRlLlxuICAgICAqIENhbiBlLmcuIGJlIHVzZWQgdG8gcmVhZCByZXF1aXJlZCBzdGF0ZSBvZiBhIGdyb3VwLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBpc1JlcXVpcmVkRXh0ZXJuYWxseSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2JiUmVxdWlyZWRFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJSZXF1aXJlZE1peGluVHlwZT4gJiBUO1xufTtcbiIsImltcG9ydCB7IGRlZmF1bHRDb252ZXJ0ZXIsIHR5cGUgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHByZXZlbnRTY3JvbGxPblNwYWNlYmFyUHJlc3MgfSBmcm9tICcuLi9ldmVudGluZy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLmpzJztcbmltcG9ydCB7IFNiYkRpc2FibGVkTWl4aW4sIHR5cGUgU2JiRGlzYWJsZWRNaXhpblR5cGUgfSBmcm9tICcuL2Rpc2FibGVkLW1peGluLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgRm9ybVJlc3RvcmVSZWFzb24sXG4gIHR5cGUgRm9ybVJlc3RvcmVTdGF0ZSxcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbixcbiAgdHlwZSBTYmJGb3JtQXNzb2NpYXRlZE1peGluVHlwZSxcbn0gZnJvbSAnLi9mb3JtLWFzc29jaWF0ZWQtbWl4aW4uanMnO1xuaW1wb3J0IHsgU2JiUmVxdWlyZWRNaXhpbiwgdHlwZSBTYmJSZXF1aXJlZE1peGluVHlwZSB9IGZyb20gJy4vcmVxdWlyZWQtbWl4aW4uanMnO1xuXG50eXBlIENoZWNrZWRTZXR0ZXJWYWx1ZSA9IHsgdmFsdWU6IGJvb2xlYW47IGF0dHJpYnV0ZTogYm9vbGVhbiB9O1xuXG5leHBvcnQgZGVjbGFyZSBhYnN0cmFjdCBjbGFzcyBTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94TWl4aW5UeXBlXG4gIGV4dGVuZHMgU2JiRm9ybUFzc29jaWF0ZWRNaXhpblR5cGVcbiAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkRpc2FibGVkTWl4aW5UeXBlPiwgUGFydGlhbDxTYmJSZXF1aXJlZE1peGluVHlwZT5cbntcbiAgcHVibGljIGdldCBjaGVja2VkKCk6IGJvb2xlYW47XG4gIHB1YmxpYyBzZXQgY2hlY2tlZCh2YWx1ZTogYm9vbGVhbik7XG5cbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbik7XG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbjtcblxuICBwdWJsaWMgc2V0IHJlcXVpcmVkKHZhbHVlOiBib29sZWFuKTtcbiAgcHVibGljIGdldCByZXF1aXJlZCgpOiBib29sZWFuO1xuXG4gIHB1YmxpYyBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkO1xuICBwdWJsaWMgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCwgcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbik6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIGlzRGlzYWJsZWRFeHRlcm5hbGx5KCk6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBpc1JlcXVpcmVkRXh0ZXJuYWxseSgpOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgd2l0aFVzZXJJbnRlcmFjdGlvbj8oKTogdm9pZDtcbn1cblxuLyoqXG4gKiBUaGUgRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluIGVuYWJsZXMgbmF0aXZlIGZvcm0gc3VwcG9ydCBmb3IgY2hlY2tib3ggY29udHJvbHMuXG4gKlxuICogSW5oZXJpdGVkIGNsYXNzZXMgTVVTVCBpbXBsZW1lbnQgdGhlIGFyaWFDaGVja2VkIHN0YXRlIChFbGVtZW50SW50ZXJuYWxzKSB0aGVtc2VsdmVzLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluID0gPFQgZXh0ZW5kcyBDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94TWl4aW5UeXBlPiAmIFQgPT4ge1xuICBAaG9zdEF0dHJpYnV0ZXMoe1xuICAgIHRhYmluZGV4OiAnMCcsXG4gIH0pXG4gIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hFbGVtZW50XG4gICAgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFNiYlJlcXVpcmVkTWl4aW4oU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihzdXBlckNsYXNzKSkpXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hNaXhpblR5cGU+XG4gIHtcbiAgICBwcml2YXRlIF9hdHRyaWJ1dGVNdXRhdGlvbkJsb2NrZWQgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjaGVja2JveCBpcyBjaGVja2VkLiAqL1xuICAgIEBwcm9wZXJ0eSh7XG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgY29udmVydGVyOiB7XG4gICAgICAgIC4uLmRlZmF1bHRDb252ZXJ0ZXIsXG4gICAgICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbmZvcm1hdGlvbiB0byB0aGUgc2V0dGVyIHNvIHRoYXQgd2Uga25vdyBpdCB3YXMgY2FsbGVkIGJ5IGF0dHJpYnV0ZSBjaGFuZ2UuXG4gICAgICAgIGZyb21BdHRyaWJ1dGU6ICh2YWx1ZTogc3RyaW5nIHwgbnVsbCwgdHlwZT86IHVua25vd24pOiBDaGVja2VkU2V0dGVyVmFsdWUgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGRlZmF1bHRDb252ZXJ0ZXIuZnJvbUF0dHJpYnV0ZT8uKHZhbHVlLCB0eXBlKTtcbiAgICAgICAgICByZXR1cm4geyB2YWx1ZTogcmVzdWx0LCBhdHRyaWJ1dGU6IHRydWUgfSBhcyBDaGVja2VkU2V0dGVyVmFsdWU7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pXG4gICAgcHVibGljIHNldCBjaGVja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICBjb25zdCBhdHRyaWJ1dGVTZXR0ZXIgPVxuICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnID8gKHZhbHVlIGFzIHVua25vd24gYXMgQ2hlY2tlZFNldHRlclZhbHVlKS5hdHRyaWJ1dGUgOiBmYWxzZTtcbiAgICAgIGlmIChhdHRyaWJ1dGVTZXR0ZXIpIHtcbiAgICAgICAgdmFsdWUgPSAodmFsdWUgYXMgdW5rbm93biBhcyBDaGVja2VkU2V0dGVyVmFsdWUpLnZhbHVlO1xuICAgICAgfVxuXG4gICAgICAvLyBBcyBzb29uIGFzIG11dGF0aW9uIHdhcyBkb25lIG5vdCBieSBzZXR0aW5nIGF0dHJpYnV0ZSxcbiAgICAgIC8vIHdlIG5lZWQgdG8gYmxvY2sgc3luY2luZyBhdHRyaWJ1dGUuXG4gICAgICBpZiAodGhpcy5oYXNVcGRhdGVkICYmICFhdHRyaWJ1dGVTZXR0ZXIpIHtcbiAgICAgICAgdGhpcy5fYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2NoZWNrZWQgPSBCb29sZWFuKHZhbHVlKTtcbiAgICAgIHRoaXMudXBkYXRlRm9ybVZhbHVlKCk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLl9jaGVja2VkO1xuICAgIH1cbiAgICBwcml2YXRlIF9jaGVja2VkID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgdGhpcy5pbnRlcm5hbHMucm9sZSA9ICdjaGVja2JveCc7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX2hhbmRsZVVzZXJJbnRlcmFjdGlvbik7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBwcmV2ZW50U2Nyb2xsT25TcGFjZWJhclByZXNzKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9oYW5kbGVLZXlib2FyZEludGVyYWN0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5faGFuZGxlVXNlckludGVyYWN0aW9uKTtcbiAgICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHByZXZlbnRTY3JvbGxPblNwYWNlYmFyUHJlc3MpO1xuICAgICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMuX2hhbmRsZUtleWJvYXJkSW50ZXJhY3Rpb24pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICBvbGQ6IHN0cmluZyB8IG51bGwsXG4gICAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbCxcbiAgICApOiB2b2lkIHtcbiAgICAgIC8vIEF0dHJpYnV0ZSBzaG91bGQgbm90IGJlIGludGVycHJldGVkIGFmdGVyIHByb2dyYW1tYXRpYyBvciBtYW51YWwgc3RhdGUgY2hhbmdlLlxuICAgICAgaWYgKG5hbWUgIT09ICdjaGVja2VkJyB8fCAhdGhpcy5fYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkKSB7XG4gICAgICAgIHN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhuYW1lLCBvbGQsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJcyBjYWxsZWQgd2hlbmV2ZXIgdGhlIGZvcm0gaXMgYmVpbmcgcmVzZXQuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgICB0aGlzLmNoZWNrZWQgPSB0aGlzLmhhc0F0dHJpYnV0ZSgnY2hlY2tlZCcpO1xuICAgICAgdGhpcy5fYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIENhbGxlZCB3aGVuIHRoZSBicm93c2VyIGlzIHRyeWluZyB0byByZXN0b3JlIGVsZW1lbnTigJlzIHN0YXRlIHRvIHN0YXRlIGluIHdoaWNoIGNhc2VcbiAgICAgKiAgcmVhc29uIGlzIOKAnHJlc3RvcmXigJ0sIG9yIHdoZW4gdGhlIGJyb3dzZXIgaXMgdHJ5aW5nIHRvIGZ1bGZpbGwgYXV0b2ZpbGwgb24gYmVoYWxmIG9mXG4gICAgICogIHVzZXIgaW4gd2hpY2ggY2FzZSByZWFzb24gaXMg4oCcYXV0b2NvbXBsZXRl4oCdLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiDigJxyZXN0b3Jl4oCdLCBzdGF0ZSBpcyBhIHN0cmluZywgRmlsZSwgb3IgRm9ybURhdGEgb2JqZWN0XG4gICAgICogIHByZXZpb3VzbHkgc2V0IGFzIHRoZSBzZWNvbmQgYXJndW1lbnQgdG8gc2V0Rm9ybVZhbHVlLlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICAgIHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCxcbiAgICAgIF9yZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICAgICk6IHZvaWQge1xuICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgIHRoaXMuY2hlY2tlZCA9IHN0YXRlID09PSAndHJ1ZSc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkaXRpb25hbCBsb2dpYyB3aGljaCBpcyBiZWluZyBleGVjdXRlZCB3aGVuIHVzZXJcbiAgICAgKiBpbnRlcmFjdGlvbiBoYXBwZW5zIGFuZCBzdGF0ZSBpcyBub3QgZGlzYWJsZWQuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHdpdGhVc2VySW50ZXJhY3Rpb24/KCk6IHZvaWQ7XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlRm9ybVZhbHVlKCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuY2hlY2tlZCkge1xuICAgICAgICB0aGlzLmludGVybmFscy5zZXRGb3JtVmFsdWUodGhpcy52YWx1ZSwgYCR7dGhpcy5jaGVja2VkfWApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuc2V0Rm9ybVZhbHVlKG51bGwpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdHJpZ2dlcmVkIG9uIGtleWJvYXJkIHVzZXIgaW50ZXJhY3Rpb24gd2l0aCBjaGVja2JveC4gKi9cbiAgICBwcml2YXRlIF9oYW5kbGVLZXlib2FyZEludGVyYWN0aW9uID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnICcpIHtcbiAgICAgICAgdGhpcy5faGFuZGxlVXNlckludGVyYWN0aW9uKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8qKiBNZXRob2QgdHJpZ2dlcmVkIG9uIHVzZXIgaW50ZXJhY3Rpb24gd2l0aCBjaGVja2JveC4gKi9cbiAgICBwcml2YXRlIF9oYW5kbGVVc2VySW50ZXJhY3Rpb24gPSAoKTogdm9pZCA9PiB7XG4gICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLndpdGhVc2VySW50ZXJhY3Rpb24/LigpO1xuICAgICAgdGhpcy5jaGVja2VkID0gIXRoaXMuY2hlY2tlZDtcbiAgICAgIHRoaXMuX2F0dHJpYnV0ZU11dGF0aW9uQmxvY2tlZCA9IHRydWU7XG5cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7IGNvbXBvc2VkOiB0cnVlLCBidWJibGVzOiB0cnVlIH0pKTtcbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdkaWRDaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gU2JiRm9ybUFzc29jaWF0ZWRDaGVja2JveEVsZW1lbnQgYXMgdW5rbm93biBhcyBDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iLCJpbXBvcnQgdHlwZSB7IExpdEVsZW1lbnQsIFByb3BlcnR5VmFsdWVzIH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci5qcyc7XG5cbi8vIERlZmluZSB0aGUgaW50ZXJmYWNlIGZvciB0aGUgbWl4aW5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYkh5ZHJhdGlvbk1peGluVHlwZSB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGVsZW1lbnQgaGFzIGNvbXBsZXRlZCBoeWRyYXRpb24uXG4gICAqIFRoZSBQcm9taXNlIHZhbHVlIGlzIGEgYm9vbGVhbiB0aGF0IGlzIGB0cnVlYCBpZiB0aGUgZWxlbWVudCByZXF1aXJlZCBoeWRyYXRpb25cbiAgICogYW5kIGBmYWxzZWAgaWYgbm90LlxuICAgKlxuICAgKiBAcmV0dXJuIEEgcHJvbWlzZSBvZiBhIGJvb2xlYW4gdGhhdCByZXNvbHZlcyB0byB0cnVlIG9uY2UgdGhlIGh5ZHJhdGlvbiBjb21wbGV0ZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGh5ZHJhdGlvbkNvbXBsZXRlKCk6IFByb21pc2U8Ym9vbGVhbj47XG5cbiAgLyoqIFJldHVybnMgd2hldGhlciBoeWRyYXRpb24gaXMgcmVxdWlyZWQgYW5kIG5vdCBjb21wbGV0ZWQuICovXG4gIHByb3RlY3RlZCBnZXQgaHlkcmF0aW9uUmVxdWlyZWQoKTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUaGlzIG1peGluIGV4dGVuZHMgYSBiYXNlIGNsYXNzIHdpdGggZnVuY3Rpb25hbGl0eSB0byBjaGVjayBpZiBoeWRyYXRpb24gaXMgY29tcGxldGVkLlxuICogSXQgYWxzbyBkZWxheXMgc2xvdGNoYW5nZSBldmVudHMgdW50aWwgaHlkcmF0aW9uIGlzIGNvbXBsZXRlLlxuICpcbiAqIEBwYXJhbSBiYXNlIFRoZSBjbGFzcyB0byBleHRlbmQuXG4gKiBAcmV0dXJucyBBIGNsYXNzIGV4dGVuZGVkIHdpdGggdGhlIGh5ZHJhdGlvbiBjaGVjayBmdW5jdGlvbmFsaXR5LlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiSHlkcmF0aW9uTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudD4+KFxuICBiYXNlOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJIeWRyYXRpb25NaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYkh5ZHJhdGlvbk1peGluQ2xhc3MgZXh0ZW5kcyBiYXNlIGltcGxlbWVudHMgUGFydGlhbDxTYmJIeWRyYXRpb25NaXhpblR5cGU+IHtcbiAgICBwcml2YXRlIF9oeWRyYXRpb25SZXF1aXJlZDogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9oeWRyYXRpb25Db21wbGV0ZSA9IG5ldyBQcm9taXNlPGJvb2xlYW4+KFxuICAgICAgKHJlc29sdmUpID0+ICh0aGlzLl9yZXNvbHZlSHlkcmF0aW9uID0gcmVzb2x2ZSksXG4gICAgKTtcbiAgICBwcml2YXRlIF9yZXNvbHZlSHlkcmF0aW9uITogKGh5ZHJhdGlvblJlcXVpcmVkOiBib29sZWFuKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBlbGVtZW50IGhhcyBjb21wbGV0ZWQgaHlkcmF0aW9uLlxuICAgICAqIFRoZSBQcm9taXNlIHZhbHVlIGlzIGEgYm9vbGVhbiB0aGF0IGlzIGB0cnVlYCBpZiB0aGUgZWxlbWVudCByZXF1aXJlZCBoeWRyYXRpb25cbiAgICAgKiBhbmQgYGZhbHNlYCBpZiBub3QuXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIEEgcHJvbWlzZSBvZiBhIGJvb2xlYW4gdGhhdCByZXNvbHZlcyB0byB0cnVlIG9uY2UgdGhlIGh5ZHJhdGlvbiBjb21wbGV0ZWQuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGdldCBoeWRyYXRpb25Db21wbGV0ZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgIHJldHVybiB0aGlzLl9oeWRyYXRpb25Db21wbGV0ZTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB3aGV0aGVyIGh5ZHJhdGlvbiBpcyByZXF1aXJlZCBhbmQgbm90IGNvbXBsZXRlZC4gKi9cbiAgICBwcm90ZWN0ZWQgZ2V0IGh5ZHJhdGlvblJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuX2h5ZHJhdGlvblJlcXVpcmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgc3VwZXIoLi4uYXJncyk7XG4gICAgICAvLyBDaGVjayB3aGV0aGVyIGh5ZHJhdGlvbiBpcyBuZWVkZWQgYnkgY2hlY2tpbmcgd2hldGhlciB0aGUgc2hhZG93IHJvb3RcbiAgICAgIC8vIGlzIGF2YWlsYWJsZSBkdXJpbmcgY29uc3RydWN0aW9uL3VwZ3JhZGUgcGhhc2UuXG4gICAgICB0aGlzLl9oeWRyYXRpb25SZXF1aXJlZCA9ICEhdGhpcy5zaGFkb3dSb290O1xuICAgICAgaWYgKCF0aGlzLl9oeWRyYXRpb25SZXF1aXJlZCkge1xuICAgICAgICB0aGlzLl9yZXNvbHZlSHlkcmF0aW9uKGZhbHNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIER1cmluZyBoeWRyYXRpb24gcGhhc2UsIHdlIHdhbnQgdG8gc3VwcHJlc3Mgc2xvdGNoYW5nZSBldmVudHMgYXMgdGhleVxuICAgICAgICAvLyBjYW4gY2F1c2UgcmVuZGVyIGRpZmZlcmVuY2VzLCB3aGljaCB3b3VsZCBicmVhayBoeWRyYXRpb24uIEFmdGVyXG4gICAgICAgIC8vIGh5ZHJhdGlvbiBpcyBjb21wbGV0ZSwgd2UgZGlzcGF0Y2ggYSBtYW51YWwgc2xvdGNoYW5nZSBldmVudCwgaWYgdGhlcmVcbiAgICAgICAgLy8gYXJlIGVsZW1lbnRzIGFzc2lnbmVkIHRvIGEgc2xvdC5cbiAgICAgICAgY29uc3Qgc3VwcHJlc3NTbG90Y2hhbmdlRXZlbnQgPSAoZXZlbnQ6IEV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX2h5ZHJhdGlvblJlcXVpcmVkKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGV2ZW50T3B0aW9uczogRXZlbnRMaXN0ZW5lck9wdGlvbnMgPSB7IGNhcHR1cmU6IHRydWUgfTtcbiAgICAgICAgY29uc3Qgc2xvdHMgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoJ3Nsb3QnKTtcbiAgICAgICAgaWYgKHNsb3RzPy5sZW5ndGgpIHtcbiAgICAgICAgICBzbG90cy5mb3JFYWNoKChzbG90KSA9PlxuICAgICAgICAgICAgc2xvdC5hZGRFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgc3VwcHJlc3NTbG90Y2hhbmdlRXZlbnQsIGV2ZW50T3B0aW9ucyksXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLmh5ZHJhdGlvbkNvbXBsZXRlLnRoZW4oKCkgPT5cbiAgICAgICAgICAgIHNsb3RzLmZvckVhY2goKHNsb3QpID0+IHtcbiAgICAgICAgICAgICAgc2xvdC5yZW1vdmVFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgc3VwcHJlc3NTbG90Y2hhbmdlRXZlbnQsIGV2ZW50T3B0aW9ucyk7XG4gICAgICAgICAgICAgIGlmIChzbG90LmFzc2lnbmVkTm9kZXMoKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBzbG90LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdzbG90Y2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICAvLyBXaGVuIGh5ZHJhdGlvbiBpcyBuZWVkZWQsIHdlIHdhaXQgdGhlIGh5ZHJhdGlvbiBwcm9jZXNzIHRvIGZpbmlzaCwgd2hpY2ggaXMgcGF0Y2hlZFxuICAgICAgLy8gaW50byB0aGUgdXBkYXRlIG1ldGhvZCBvZiB0aGUgTGl0RWxlbWVudCBiYXNlIGNsYXNzLlxuICAgICAgc3VwZXIudXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgICAgaWYgKHRoaXMuX2h5ZHJhdGlvblJlcXVpcmVkKSB7XG4gICAgICAgIHRoaXMuX2h5ZHJhdGlvblJlcXVpcmVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3Jlc29sdmVIeWRyYXRpb24odHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBTYmJIeWRyYXRpb25NaXhpbkNsYXNzIGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJIeWRyYXRpb25NaXhpblR5cGU+ICYgVDtcbn07XG4iLCJpbXBvcnQgeyBodG1sLCB0eXBlIExpdEVsZW1lbnQsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGdldExvY2FsTmFtZSB9IGZyb20gJy4uL2RvbS5qcyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IuanMnO1xuaW1wb3J0IHsgU2JiSHlkcmF0aW9uTWl4aW4sIHR5cGUgU2JiSHlkcmF0aW9uTWl4aW5UeXBlIH0gZnJvbSAnLi9oeWRyYXRpb24tbWl4aW4uanMnO1xuXG5pbXBvcnQgJy4uLy4uL3NjcmVlbi1yZWFkZXItb25seS5qcyc7XG5cbmNvbnN0IFNTUl9DSElMRF9DT1VOVF9BVFRSSUJVVEUgPSAnZGF0YS1zc3ItY2hpbGQtY291bnQnO1xuY29uc3QgU0xPVE5BTUVfUFJFRklYID0gJ2xpJztcblxuZXhwb3J0IHR5cGUgU2JiTmFtZWRTbG90UHJvcGVydGllcyA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBhcmlhSGlkZGVuOiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBIZWxwZXIgdHlwZSBmb3Igd2lsbFVwZGF0ZSBvciBzaW1pbGFyIGNoZWNrcy5cbiAqIEFsbG93cyB0aGUgdXNhZ2Ugb2YgdGhlIHN0cmluZyBsaXRlcmFsICdsaXN0Q2hpbGRyZW4nLlxuICpcbiAqIEBleGFtcGxlXG4gKiBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8V2l0aExpc3RDaGlsZHJlbjx0aGlzPj4pOiB2b2lkIHtcbiAqICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbGlzdENoaWxkcmVuJykpIHtcbiAqICAgICAuLi5cbiAqICAgfVxuICogfVxuICovXG5leHBvcnQgdHlwZSBXaXRoTGlzdENoaWxkcmVuPFxuICBUIGV4dGVuZHMgU2JiTmFtZWRTbG90TGlzdE1peGluVHlwZTxDPixcbiAgQyBleHRlbmRzIEhUTUxFbGVtZW50ID0gSFRNTEVsZW1lbnQsXG4+ID0gVCAmIHsgbGlzdENoaWxkcmVuOiBDW10gfTtcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiTmFtZWRTbG90TGlzdE1peGluVHlwZTxcbiAgQyBleHRlbmRzIEhUTUxFbGVtZW50LFxuPiBleHRlbmRzIFNiYkh5ZHJhdGlvbk1peGluVHlwZSB7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBsaXN0Q2hpbGRMb2NhbE5hbWVzOiBzdHJpbmdbXTtcbiAgQHN0YXRlKCkgcHJvdGVjdGVkIGxpc3RDaGlsZHJlbjogQ1tdO1xuICBwcm90ZWN0ZWQgcmVuZGVyTGlzdChcbiAgICBhdHRyaWJ1dGVzPzoge1xuICAgICAgY2xhc3M/OiBzdHJpbmc7XG4gICAgICBhcmlhTGFiZWw/OiBzdHJpbmc7XG4gICAgICBhcmlhTGFiZWxsZWRieT86IHN0cmluZztcbiAgICB9LFxuICAgIGxpc3RJdGVtQXR0cmlidXRlcz86IHtcbiAgICAgIGxvY2FsTmFtZVZpc3VhbE9ubHk/OiBzdHJpbmdbXTtcbiAgICB9LFxuICApOiBUZW1wbGF0ZVJlc3VsdDtcbiAgcHJvdGVjdGVkIGxpc3RTbG90RW50cmllcygpOiBTYmJOYW1lZFNsb3RQcm9wZXJ0aWVzW107XG4gIHByb3RlY3RlZCByZW5kZXJIaWRkZW5TbG90KCk6IFRlbXBsYXRlUmVzdWx0O1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiTmFtZWRTbG90TGlzdE1peGluID0gPFxuICBDIGV4dGVuZHMgSFRNTEVsZW1lbnQsXG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+LFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiTmFtZWRTbG90TGlzdE1peGluVHlwZTxDPj4gJiBUID0+IHtcbiAgLyoqXG4gICAqIFRoaXMgYmFzZSBjbGFzcyBwcm92aWRlcyBuYW1lZCBzbG90IGxpc3Qgb2JzZXJ2ZXIgZnVuY3Rpb25hbGl0eS5cbiAgICogVGhpcyBhbGxvd3MgdXNpbmcgdGhlIHBhdHRlcm4gb2YgcmVuZGVyaW5nIGEgbmFtZWQgc2xvdCBmb3IgZWFjaCBjaGlsZCwgd2hpY2ggYWxsb3dzXG4gICAqIHdyYXBwaW5nIGNoaWxkcmVuIGluIGFuIHVsL2xpIGxpc3QuXG4gICAqL1xuICBhYnN0cmFjdCBjbGFzcyBOYW1lZFNsb3RMaXN0RWxlbWVudDxDIGV4dGVuZHMgSFRNTEVsZW1lbnQgPSBIVE1MRWxlbWVudD5cbiAgICBleHRlbmRzIFNiYkh5ZHJhdGlvbk1peGluKHN1cGVyQ2xhc3MpXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYk5hbWVkU2xvdExpc3RNaXhpblR5cGU8Qz4+XG4gIHtcbiAgICAvKiogQSBsaXN0IG9mIGxvd2VyLWNhc2VkIHRhZyBuYW1lcyB0byBtYXRjaCBhZ2FpbnN0LiAoZS5nLiBgc2JiLWxpbmtgKSAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBsaXN0Q2hpbGRMb2NhbE5hbWVzOiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIEEgbGlzdCBvZiBjaGlsZHJlbiB3aXRoIHRoZSBkZWZpbmVkIHRhZyBuYW1lcy5cbiAgICAgKiBUaGlzIGFycmF5IGlzIG9ubHkgdXBkYXRlZCBpZiB0aGVyZSBpcyBhbiBhY3R1YWwgY2hhbmdlXG4gICAgICogdG8gdGhlIGNoaWxkIGVsZW1lbnRzLlxuICAgICAqL1xuICAgIEBzdGF0ZSgpIHByb3RlY3RlZCBsaXN0Q2hpbGRyZW46IENbXSA9IFtdO1xuXG4gICAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgIHRoaXMuc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIHRoaXMuX2hhbmRsZVNsb3RjaGFuZ2UsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgICAgdGhpcy5zaGFkb3dSb290Py5yZW1vdmVFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgdGhpcy5faGFuZGxlU2xvdGNoYW5nZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaGFuZGxlU2xvdGNoYW5nZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IGxpc3RDaGlsZHJlbiA9IEFycmF5LmZyb20odGhpcy5jaGlsZHJlbiA/PyBbXSkuZmlsdGVyKChlKTogZSBpcyBDID0+XG4gICAgICAgIHRoaXMubGlzdENoaWxkTG9jYWxOYW1lcy5pbmNsdWRlcyhlLmxvY2FsTmFtZSksXG4gICAgICApO1xuICAgICAgLy8gSWYgdGhlIHNsb3R0ZWQgY2hpbGQgaW5zdGFuY2VzIGhhdmUgbm90IGNoYW5nZWQsIHdlIGNhbiBza2lwIHN5bmNpbmcgYW5kIHVwZGF0aW5nXG4gICAgICAvLyB0aGUgbGluayByZWZlcmVuY2UgbGlzdC5cbiAgICAgIGlmIChcbiAgICAgICAgbGlzdENoaWxkcmVuLmxlbmd0aCA9PT0gdGhpcy5saXN0Q2hpbGRyZW4ubGVuZ3RoICYmXG4gICAgICAgIHRoaXMubGlzdENoaWxkcmVuLmV2ZXJ5KChlLCBpKSA9PiBsaXN0Q2hpbGRyZW5baV0gPT09IGUpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmxpc3RDaGlsZHJlblxuICAgICAgICAuZmlsdGVyKChjKSA9PiAhbGlzdENoaWxkcmVuLmluY2x1ZGVzKGMpKVxuICAgICAgICAuZm9yRWFjaCgoYykgPT4gYy5yZW1vdmVBdHRyaWJ1dGUoJ3Nsb3QnKSk7XG4gICAgICB0aGlzLmxpc3RDaGlsZHJlbiA9IGxpc3RDaGlsZHJlbjtcbiAgICAgIHRoaXMubGlzdENoaWxkcmVuLmZvckVhY2goKGMsIGluZGV4KSA9PlxuICAgICAgICBjLnNldEF0dHJpYnV0ZSgnc2xvdCcsIGAke1NMT1ROQU1FX1BSRUZJWH0tJHtpbmRleH1gKSxcbiAgICAgICk7XG5cbiAgICAgIC8vIFJlbW92ZSB0aGUgc3NyIGF0dHJpYnV0ZSwgb25jZSB3ZSBoYXZlIGFjdHVhbGx5IGluaXRpYWxpemVkIHRoZSBjaGlsZHJlbiBlbGVtZW50cy5cbiAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKFNTUl9DSElMRF9DT1VOVF9BVFRSSUJVVEUpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZW5kZXJzIGxpc3QgYW5kIGxpc3Qgc2xvdHMgZm9yIHNsb3R0ZWQgY2hpbGRyZW4gb3IgYSBudW1iZXIgb2YgbGlzdCBzbG90c1xuICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGBkYXRhLXNzci1jaGlsZC1jb3VudGAgYXR0cmlidXRlIHZhbHVlLlxuICAgICAqXG4gICAgICogVGhpcyBpcyBhIHBvc3NpYmxlIG9wdGltaXphdGlvbiBmb3IgU1NSLCBhcyBpbiBhbiBTU1IgTGl0IGVudmlyb25tZW50XG4gICAgICogb3RoZXIgZWxlbWVudHMgYXJlIG5vdCBhdmFpbGFibGUsIGJ1dCBtaWdodCBiZSBhdmFpbGFibGUgaW4gdGhlIG1ldGFcbiAgICAgKiBmcmFtZXdvcmsgd3JhcHBlciAobGlrZSBlLmcuIFJlYWN0KS4gVGhpcyBhbGxvd3MgdG8gcHJvdmlkZSB0aGUgbnVtYmVyIG9mXG4gICAgICogY2hpbGRyZW4gdG8gYmUgcGFzc2VkIHZpYSB0aGUgYGRhdGEtc3NyLWNoaWxkLWNvdW50YCBhdHRyaWJ1dGUgdmFsdWUuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlbmRlckxpc3QoXG4gICAgICBhdHRyaWJ1dGVzOiB7IGNsYXNzPzogc3RyaW5nOyBhcmlhTGFiZWw/OiBzdHJpbmc7IGFyaWFMYWJlbGxlZGJ5Pzogc3RyaW5nIH0gPSB7fSxcbiAgICAgIGxpc3RJdGVtQXR0cmlidXRlczogeyBsb2NhbE5hbWVWaXN1YWxPbmx5Pzogc3RyaW5nW10gfSA9IHt9LFxuICAgICk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICAgIGNvbnN0IGxpc3RTbG90TmFtZXM6IFNiYk5hbWVkU2xvdFByb3BlcnRpZXNbXSA9IHRoaXMubGlzdFNsb3RFbnRyaWVzKGxpc3RJdGVtQXR0cmlidXRlcyk7XG5cbiAgICAgIGlmIChsaXN0U2xvdE5hbWVzLmxlbmd0aCA+PSAyKSB7XG4gICAgICAgIHJldHVybiBodG1sYFxuICAgICAgICAgIDx1bFxuICAgICAgICAgICAgY2xhc3M9JHthdHRyaWJ1dGVzLmNsYXNzIHx8ICh0aGlzLmxvY2FsTmFtZSA/PyBnZXRMb2NhbE5hbWUodGhpcykpfVxuICAgICAgICAgICAgYXJpYS1sYWJlbD0ke2F0dHJpYnV0ZXMuYXJpYUxhYmVsIHx8IG5vdGhpbmd9XG4gICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9JHthdHRyaWJ1dGVzLmFyaWFMYWJlbGxlZGJ5IHx8IG5vdGhpbmd9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgJHtsaXN0U2xvdE5hbWVzLm1hcChcbiAgICAgICAgICAgICAgKHNsb3QpID0+IGh0bWxgXG4gICAgICAgICAgICAgICAgPGxpIGFyaWEtaGlkZGVuPSR7c2xvdC5hcmlhSGlkZGVuIHx8IG5vdGhpbmd9PlxuICAgICAgICAgICAgICAgICAgPHNsb3QgbmFtZT0ke3Nsb3QubmFtZX0+PC9zbG90PlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIGAsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgJHt0aGlzLnJlbmRlckhpZGRlblNsb3QoKX1cbiAgICAgICAgYDtcbiAgICAgIH0gZWxzZSBpZiAobGlzdFNsb3ROYW1lcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIGh0bWxgPHNiYi1zY3JlZW4tcmVhZGVyLW9ubHk+JHthdHRyaWJ1dGVzLmFyaWFMYWJlbH08L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHk+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9JHthdHRyaWJ1dGVzLmNsYXNzIHx8ICh0aGlzLmxvY2FsTmFtZSA/PyBnZXRMb2NhbE5hbWUodGhpcykpfT5cbiAgICAgICAgICAgIDxzcGFuPjxzbG90IG5hbWU9JHtsaXN0U2xvdE5hbWVzWzBdLm5hbWV9Pjwvc2xvdD48L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICR7dGhpcy5yZW5kZXJIaWRkZW5TbG90KCl9IGA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJIaWRkZW5TbG90KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbiBhcnJheSBvZiBTYmJOYW1lZFNsb3RQcm9wZXJ0aWVzLCB3aGljaCBob2xkcyB0aGUgbGlzdCBzbG90IG5hbWVzIGFuZCB0aGUgaGlkZGVuIHByb3BlcnR5O1xuICAgICAqIGl0cyBsZW5ndGggY29ycmVzcG9uZHMgdG8gdGhlIG51bWJlciBvZiBtYXRjaGVkIGNoaWxkcmVuIG9yIHRoZSBgZGF0YS1zc3ItY2hpbGQtY291bnRgIGF0dHJpYnV0ZSB2YWx1ZS5cbiAgICAgKlxuICAgICAqIFRoaXMgaXMgYSBwb3NzaWJsZSBvcHRpbWl6YXRpb24gZm9yIFNTUiwgYXMgaW4gYW4gU1NSIExpdCBlbnZpcm9ubWVudFxuICAgICAqIG90aGVyIGVsZW1lbnRzIGFyZSBub3QgYXZhaWxhYmxlLCBidXQgbWlnaHQgYmUgYXZhaWxhYmxlIGluIHRoZSBtZXRhXG4gICAgICogZnJhbWV3b3JrIHdyYXBwZXIgKGxpa2UgZS5nLiBSZWFjdCkuIFRoaXMgYWxsb3dzIHRvIHByb3ZpZGUgdGhlIG51bWJlciBvZlxuICAgICAqIGNoaWxkcmVuIHRvIGJlIHBhc3NlZCB2aWEgdGhlIGBkYXRhLXNzci1jaGlsZC1jb3VudGAgYXR0cmlidXRlIHZhbHVlLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBsaXN0U2xvdEVudHJpZXMobGlzdEl0ZW1BdHRyaWJ1dGVzOiB7XG4gICAgICBsb2NhbE5hbWVWaXN1YWxPbmx5Pzogc3RyaW5nW107XG4gICAgfSk6IFNiYk5hbWVkU2xvdFByb3BlcnRpZXNbXSB7XG4gICAgICBjb25zdCBsaXN0Q2hpbGRyZW4gPSB0aGlzLmxpc3RDaGlsZHJlbi5sZW5ndGhcbiAgICAgICAgPyB0aGlzLmxpc3RDaGlsZHJlblxuICAgICAgICA6IEFycmF5LmZyb20oeyBsZW5ndGg6ICsodGhpcy5nZXRBdHRyaWJ1dGUoU1NSX0NISUxEX0NPVU5UX0FUVFJJQlVURSkgPz8gMCkgfSk7XG4gICAgICByZXR1cm4gbGlzdENoaWxkcmVuLm1hcCgoZSwgaSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG5hbWU6IGAke1NMT1ROQU1FX1BSRUZJWH0tJHtpfWAsXG4gICAgICAgICAgYXJpYUhpZGRlbjpcbiAgICAgICAgICAgIGxpc3RJdGVtQXR0cmlidXRlcz8ubG9jYWxOYW1lVmlzdWFsT25seT8uaW5jbHVkZXMoKGUgYXMgSFRNTEVsZW1lbnQpLmxvY2FsTmFtZSkgPz9cbiAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGhpZGRlbiBzbG90LCB3aGljaCBpcyBpbnRlbmRlZCBhcyB0aGUgY2hpbGRyZW4gY2hhbmdlIGRldGVjdGlvbi5cbiAgICAgKiBXaGVuIGFuIGVsZW1lbnQgd2l0aG91dCBhIHNsb3QgYXR0cmlidXRlIGlzIHNsb3R0ZWQgdG8gdGhlIGVsZW1lbnQsIGl0IHRyaWdnZXJzXG4gICAgICogdGhlIHNsb3RjaGFuZ2UgZXZlbnQsIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGFzc2lnbiBpdCB0byB0aGUgYXBwcm9wcmlhdGUgbmFtZWQgc2xvdC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVuZGVySGlkZGVuU2xvdCgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgICByZXR1cm4gaHRtbGA8c3BhbiBoaWRkZW4+PHNsb3Q+PC9zbG90Pjwvc3Bhbj5gO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBOYW1lZFNsb3RMaXN0RWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiTmFtZWRTbG90TGlzdE1peGluVHlwZTxDPj4gJiBUO1xufTtcbiIsImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci5qcyc7XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFNiYk5lZ2F0aXZlTWl4aW5UeXBlIHtcbiAgcHVibGljIG5lZ2F0aXZlOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEVuaGFuY2UgeW91ciBjb21wb25lbnQgd2l0aCBhIG5lZ2F0aXZlIHByb3BlcnR5LlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiTmVnYXRpdmVNaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYk5lZ2F0aXZlTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJOZWdhdGl2ZUVsZW1lbnQgZXh0ZW5kcyBzdXBlckNsYXNzIGltcGxlbWVudHMgU2JiTmVnYXRpdmVNaXhpblR5cGUge1xuICAgIC8qKiBOZWdhdGl2ZSBjb2xvcmluZyB2YXJpYW50IGZsYWcuICovXG4gICAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KSBwdWJsaWMgbmVnYXRpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBTYmJOZWdhdGl2ZUVsZW1lbnQgYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJOZWdhdGl2ZU1peGluVHlwZT4gJiBUO1xufTtcbiIsImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vZXZlbnRpbmcuanMnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLmpzJztcblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiUGFuZWxNaXhpblR5cGUge1xuICBwdWJsaWMgY29sb3I6ICd3aGl0ZScgfCAnbWlsayc7XG4gIHB1YmxpYyBib3JkZXJsZXNzOiBib29sZWFuO1xuICBwdWJsaWMgZXhwYW5zaW9uU3RhdGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFNiYlBhbmVsU2l6ZSA9ICdzJyB8ICdtJztcblxuLyoqXG4gKiBNaXhpbiBmb3IgY29tbW9uIHBhbmVsIGJlaGF2aW9yc1xuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiUGFuZWxNaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlBhbmVsTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJQYW5lbEVsZW1lbnQgZXh0ZW5kcyBzdXBlckNsYXNzIGltcGxlbWVudHMgU2JiUGFuZWxNaXhpblR5cGUge1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgICAgcGFuZWxDb25uZWN0ZWQ6ICdwYW5lbENvbm5lY3RlZCcsXG4gICAgfSBhcyBjb25zdDtcblxuICAgIC8qKiBUaGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGUgcGFuZWwuICovXG4gICAgQHByb3BlcnR5KCkgcHVibGljIGNvbG9yOiAnd2hpdGUnIHwgJ21pbGsnID0gJ3doaXRlJztcblxuICAgIC8qKiBXaGV0aGVyIHRoZSB1bnNlbGVjdGVkIHBhbmVsIGhhcyBhIGJvcmRlci4gKi9cbiAgICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pIHB1YmxpYyBib3JkZXJsZXNzID0gZmFsc2U7XG5cbiAgICAvKiogQGludGVybmFsIHVzZWQgZm9yIGFjY2Vzc2liaWxpdHkgbGFiZWwgd2hlbiBpbiBleHBhbnNpb24gcGFuZWwgKi9cbiAgICBAcHJvcGVydHkoKSBwdWJsaWMgZXhwYW5zaW9uU3RhdGU/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKiBJbnRlcm5hbCBldmVudCB0aGF0IGVtaXRzIHdoZW4gdGhlIGNoZWNrYm94IGlzIGxvYWRlZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9wYW5lbENvbm5lY3RlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICAgIHRoaXMsXG4gICAgICBTYmJQYW5lbEVsZW1lbnQuZXZlbnRzLnBhbmVsQ29ubmVjdGVkLFxuICAgICAgeyBidWJibGVzOiB0cnVlIH0sXG4gICAgKTtcblxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICAgIHRoaXMuX3BhbmVsQ29ubmVjdGVkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2JiUGFuZWxFbGVtZW50IGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiUGFuZWxNaXhpblR5cGU+ICYgVDtcbn07XG4iLCJpbXBvcnQgdHlwZSB7IExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLmpzJztcblxuLy8gRGVmaW5lIHRoZSBpbnRlcmZhY2UgZm9yIHRoZSBtaXhpblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW5UeXBlIHtcbiAgcHJvdGVjdGVkIHN0YXJ0VXBkYXRlKCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBjb21wbGV0ZVVwZGF0ZSgpOiB2b2lkO1xufVxuXG4vKipcbiAqIFRoaXMgbWl4aW4gYWxsb3dzIHNjaGVkdWxpbmcgbWFudWFsIHVwZGF0ZXMsIHdoaWNoIGFmZmVjdCB1cGRhdGVDb21wbGV0ZS5cbiAqIEBwYXJhbSBiYXNlIFRoZSBjbGFzcyB0byBleHRlbmQuXG4gKiBAcmV0dXJucyBBIGNsYXNzIGV4dGVuZGVkIHdpdGggdGhlIHNsb3QgY2hpbGQgb2JzZXJ2ZXIgZnVuY3Rpb25hbGl0eS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYlVwZGF0ZVNjaGVkdWxlck1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgYmFzZTogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiVXBkYXRlU2NoZWR1bGVyTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJVcGRhdGVTY2hlZHVsZXJFbGVtZW50XG4gICAgZXh0ZW5kcyBiYXNlXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYlVwZGF0ZVNjaGVkdWxlck1peGluVHlwZT5cbiAge1xuICAgIHByaXZhdGUgX3VwZGF0ZVByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoKTtcbiAgICBwcml2YXRlIF91cGRhdGVSZXNvbHZlID0gKCk6IHZvaWQgPT4ge307XG5cbiAgICBwcm90ZWN0ZWQgc3RhcnRVcGRhdGUoKTogdm9pZCB7XG4gICAgICB0aGlzLl91cGRhdGVQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHIpID0+ICh0aGlzLl91cGRhdGVSZXNvbHZlID0gcikpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb21wbGV0ZVVwZGF0ZSgpOiB2b2lkIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVJlc29sdmUoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgZ2V0VXBkYXRlQ29tcGxldGUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzdXBlci5nZXRVcGRhdGVDb21wbGV0ZSgpO1xuICAgICAgYXdhaXQgdGhpcy5fdXBkYXRlUHJvbWlzZTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XG4gIHJldHVybiBTYmJVcGRhdGVTY2hlZHVsZXJFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJVcGRhdGVTY2hlZHVsZXJNaXhpblR5cGU+ICZcbiAgICBUO1xufTtcbiJdLCJuYW1lcyI6WyJfX2RlY29yYXRlQ2xhc3MiLCJzdGF0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQW1CYSxNQUFBLG1CQUFtQixDQUM5QixlQUNrRDtBQUFBLEVBQ2xELE1BQWUsMkJBQTJCLFdBQW9EO0FBQUEsSUFBOUYsY0FBQTtBQUFBLFlBQUEsR0FBQSxTQUFBO0FBV0UsV0FBUSxZQUFxQjtBQUFBLElBQUE7QUFBQSxJQVI3QixJQUFXLFNBQVMsT0FBZ0I7QUFHN0IsV0FBQSxZQUFZLFFBQVEsS0FBSztBQUFBLElBQ2hDO0FBQUEsSUFDQSxJQUFXLFdBQW9CO0FBQ3RCLGFBQUEsS0FBSyxhQUFhLEtBQUsscUJBQXFCO0FBQUEsSUFDckQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLElBT1UsdUJBQWdDO0FBQ2pDLGFBQUE7QUFBQSxJQUNUO0FBQUEsRUFDRjtBQWpCYUEsb0JBQUE7QUFBQSxJQURWLFNBQVMsRUFBRSxTQUFTLE1BQU0sTUFBTSxTQUFTO0FBQUEsRUFBQSxHQUY3QixtQkFHRixXQUFBLFlBQUEsQ0FBQTtBQW1CTixTQUFBO0FBQ1Q7QUFNYSxNQUFBLDhCQUE4QixDQUd6QyxlQUM2RDtBQUFBLEVBQzdELE1BQWUsc0NBQ0wsV0FFVjtBQUFBLElBSEEsY0FBQTtBQUFBLFlBQUEsR0FBQSxTQUFBO0FBS2tFLFdBQU8sc0JBQ3JFO0FBQUEsSUFBQTtBQUFBLEVBQ0o7QUFGeUVBLG9CQUFBO0FBQUEsSUFBdEUsU0FBUyxFQUFFLFdBQVcsd0JBQXdCLE1BQU0sU0FBUztBQUFBLEVBQUEsR0FMakQsOEJBSzBELFdBQUEsdUJBQUEsQ0FBQTtBQUlsRSxTQUFBO0FBRVQ7QUFHYSxNQUFBLGlDQUFpQyxDQUM1QyxlQUNvRjtBQUFBLEVBQ3BGLE1BQWUsa0NBQ0wsNEJBQTRCLGlCQUFpQixVQUFVLENBQUMsRUFFbEU7QUFBQSxJQUNxQixXQUFXLG1CQUErQztBQUMzRSxZQUFNLFdBQVcsaUJBQWlC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
750
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWl4aW5zLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZGlzYWJsZWQtbWl4aW4udHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvZm9ybS1hc3NvY2lhdGVkLW1peGluLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL3JlcXVpcmVkLW1peGluLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL2Zvcm0tYXNzb2NpYXRlZC1jaGVja2JveC1taXhpbi50cyIsIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9oeWRyYXRpb24tbWl4aW4udHMiLCIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9taXhpbnMvbmFtZWQtc2xvdC1saXN0LW1peGluLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL25lZ2F0aXZlLW1peGluLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL3BhbmVsLW1peGluLnRzIiwiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvbWl4aW5zL3VwZGF0ZS1zY2hlZHVsZXItbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBMaXRFbGVtZW50LCBQcm9wZXJ0eVZhbHVlcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci5qcyc7XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFNiYkRpc2FibGVkTWl4aW5UeXBlIHtcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbik7XG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIGlzRGlzYWJsZWRFeHRlcm5hbGx5KCk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFNiYkRpc2FibGVkSW50ZXJhY3RpdmVNaXhpblR5cGUge1xuICBwdWJsaWMgZGlzYWJsZWRJbnRlcmFjdGl2ZTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBFbmhhbmNlIHlvdXIgY29tcG9uZW50IHdpdGggYSBkaXNhYmxlZCBwcm9wZXJ0eS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkRpc2FibGVkTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJEaXNhYmxlZE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRGlzYWJsZWRFbGVtZW50IGV4dGVuZHMgc3VwZXJDbGFzcyBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRGlzYWJsZWRNaXhpblR5cGU+IHtcbiAgICAvKiogV2hldGhlciB0aGUgY29tcG9uZW50IGlzIGRpc2FibGVkLiAqL1xuICAgIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSlcbiAgICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAvLyBUbyBwcm92aWRlIHRoZSBzYW1lIGJlaGF2aW9yIGFzIHRoZSBuYXRpdmUgZGlzYWJsZWQgc3RhdGUsXG4gICAgICAvLyBhbnkgdmFsdWUgaXMgY29udmVydGVkIHRvIGEgYm9vbGVhbi5cbiAgICAgIHRoaXMuX2Rpc2FibGVkID0gQm9vbGVhbih2YWx1ZSk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQgfHwgdGhpcy5pc0Rpc2FibGVkRXh0ZXJuYWxseSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2lsbCBiZSB1c2VkIGFzICdvcicgY2hlY2sgdG8gdGhlIGN1cnJlbnQgZGlzYWJsZWQgc3RhdGUuXG4gICAgICogQ2FuIGUuZy4gYmUgdXNlZCB0byByZWFkIGRpc2FibGVkIHN0YXRlIG9mIGEgZ3JvdXAuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGlzRGlzYWJsZWRFeHRlcm5hbGx5KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTYmJEaXNhYmxlZEVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkRpc2FibGVkTWl4aW5UeXBlPiAmIFQ7XG59O1xuXG4vKipcbiAqIEVuaGFuY2UgeW91ciBjb21wb25lbnQgd2l0aCBhIGRpc2FibGVkIGludGVyYWN0aXZlIHByb3BlcnR5LlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluID0gPFxuICBUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50ICYgU2JiRGlzYWJsZWRNaXhpblR5cGU+LFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRGlzYWJsZWRJbnRlcmFjdGl2ZUVsZW1lbnRcbiAgICBleHRlbmRzIHN1cGVyQ2xhc3NcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluVHlwZT5cbiAge1xuICAgIC8qKiBXaGV0aGVyIGRpc2FibGVkIGJ1dHRvbnMgc2hvdWxkIGJlIGludGVyYWN0aXZlLiAqL1xuICAgIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Rpc2FibGVkLWludGVyYWN0aXZlJywgdHlwZTogQm9vbGVhbiB9KSBwdWJsaWMgZGlzYWJsZWRJbnRlcmFjdGl2ZSA9XG4gICAgICBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBTYmJEaXNhYmxlZEludGVyYWN0aXZlRWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRJbnRlcmFjdGl2ZU1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRGlzYWJsZWRUYWJJbmRleEFjdGlvbk1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRNaXhpblR5cGUgJiBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJEaXNhYmxlZFRhYkluZGV4QWN0aW9uXG4gICAgZXh0ZW5kcyBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW4oU2JiRGlzYWJsZWRNaXhpbihzdXBlckNsYXNzKSlcbiAgICBpbXBsZW1lbnRzIFNiYkRpc2FibGVkTWl4aW5UeXBlLCBTYmJEaXNhYmxlZEludGVyYWN0aXZlTWl4aW5UeXBlXG4gIHtcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICBpZiAoIWNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGlzYWJsZWQnKSAmJiAhY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZEludGVyYWN0aXZlJykpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZEludGVyYWN0aXZlKSB7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgndGFiaW5kZXgnKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2FyaWEtZGlzYWJsZWQnLCAndHJ1ZScpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ2FyaWEtZGlzYWJsZWQnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIFNiYkRpc2FibGVkVGFiSW5kZXhBY3Rpb24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxcbiAgICBTYmJEaXNhYmxlZE1peGluVHlwZSAmIFNiYkRpc2FibGVkSW50ZXJhY3RpdmVNaXhpblR5cGVcbiAgPiAmXG4gICAgVDtcbn07XG5cbi8qKlxuICogRXh0ZW5kcyBgU2JiRGlzYWJsZWRNaXhpbmAgd2l0aCB0aGUgYGFyaWEtZGlzYWJsZWRgIGF0dHJpYnV0ZS5cbiAqIEZvciBhMTF5IHB1cnBvc2VzLCBrZWVwcyB0aGUgZWxlbWVudCBmb2N1c2FibGUgZXZlbiB3aGVuIGRpc2FibGVkLlxuICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZW1vdmVkIHdpdGggbmV4dCBtYWpvciB2ZXJzaW9uXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJGb2N1c2FibGVEaXNhYmxlZEFjdGlvbk1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRGlzYWJsZWRNaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYkZvY3VzYWJsZURpc2FibGVkQWN0aW9uXG4gICAgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKHN1cGVyQ2xhc3MpXG4gICAgaW1wbGVtZW50cyBTYmJEaXNhYmxlZE1peGluVHlwZVxuICB7XG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgICAgaWYgKCFjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Rpc2FibGVkJykpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnYXJpYS1kaXNhYmxlZCcsICd0cnVlJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1kaXNhYmxlZCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gU2JiRm9jdXNhYmxlRGlzYWJsZWRBY3Rpb24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJEaXNhYmxlZE1peGluVHlwZT4gJiBUO1xufTtcbiIsImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLmpzJztcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRNaXhpblR5cGUge1xuICBwdWJsaWMgZ2V0IGZvcm0oKTogSFRNTEZvcm1FbGVtZW50IHwgbnVsbDtcbiAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZztcbiAgcHVibGljIHNldCBuYW1lKHZhbHVlOiBzdHJpbmcpO1xuICBwdWJsaWMgZ2V0IHR5cGUoKTogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IG51bGw7XG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpO1xuXG4gIHB1YmxpYyBnZXQgdmFsaWRpdHkoKTogVmFsaWRpdHlTdGF0ZTtcbiAgcHVibGljIGdldCB2YWxpZGF0aW9uTWVzc2FnZSgpOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgd2lsbFZhbGlkYXRlKCk6IGJvb2xlYW47XG5cbiAgcHJvdGVjdGVkIGZvcm1EaXNhYmxlZDogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGludGVybmFsczogRWxlbWVudEludGVybmFscztcblxuICBwdWJsaWMgY2hlY2tWYWxpZGl0eSgpOiBib29sZWFuO1xuICBwdWJsaWMgcmVwb3J0VmFsaWRpdHkoKTogYm9vbGVhbjtcblxuICBwdWJsaWMgZm9ybUFzc29jaWF0ZWRDYWxsYmFjaz8oZm9ybTogSFRNTEZvcm1FbGVtZW50IHwgbnVsbCk6IHZvaWQ7XG4gIHB1YmxpYyBmb3JtRGlzYWJsZWRDYWxsYmFjayhkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQ7XG4gIHB1YmxpYyBhYnN0cmFjdCBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkO1xuICBwdWJsaWMgYWJzdHJhY3QgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKFxuICAgIHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCxcbiAgICByZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICApOiB2b2lkO1xuXG4gIHByb3RlY3RlZCB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBUaGUgRm9ybUFzc29jaWF0ZWRNaXhpbiBlbmFibGVzIG5hdGl2ZSBmb3JtIHN1cHBvcnQgZm9yIGN1c3RvbSBjb250cm9scy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4gPSA8VCBleHRlbmRzIENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgc3VwZXJDbGFzczogVCxcbik6IENvbnN0cnVjdG9yPFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJGb3JtQXNzb2NpYXRlZEVsZW1lbnRcbiAgICBleHRlbmRzIHN1cGVyQ2xhc3NcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRm9ybUFzc29jaWF0ZWRNaXhpblR5cGU+XG4gIHtcbiAgICBwdWJsaWMgc3RhdGljIGZvcm1Bc3NvY2lhdGVkID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGZvcm0gb3duZXIgb2YgaW50ZXJuYWxzIHRhcmdldCBlbGVtZW50LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgZm9ybSgpOiBIVE1MRm9ybUVsZW1lbnQgfCBudWxsIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFscy5mb3JtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGZvcm0gZWxlbWVudC4gV2lsbCBiZSByZWFkIGZyb20gbmFtZSBhdHRyaWJ1dGUuXG4gICAgICpcbiAgICAgKiBAZGVzY3JpcHRpb24gRGV2ZWxvcGVyIG5vdGU6IEluIHRoaXMgY2FzZSB1cGRhdGluZyB0aGUgYXR0cmlidXRlIG11c3QgYmUgc3luY2hyb25vdXMuXG4gICAgICogRHVlIHRvIHRoaXMgaXQgaXMgaW1wbGVtZW50ZWQgYXMgYSBnZXR0ZXIvc2V0dGVyIGFuZCB0aGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKCkgaGFuZGxlcyB0aGUgZGlmZiBjaGVjay5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoKVxuICAgIHB1YmxpYyBzZXQgbmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCduYW1lJywgYCR7bmFtZX1gKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ25hbWUnKSA/PyAnJztcbiAgICB9XG5cbiAgICAvKiogQGludGVybmFsICovXG4gICAgcHVibGljIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGhpcy5sb2NhbE5hbWU7XG4gICAgfVxuXG4gICAgLyoqIFZhbHVlIG9mIHRoZSBmb3JtIGVsZW1lbnQuICovXG4gICAgQHByb3BlcnR5KClcbiAgICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy51cGRhdGVGb3JtVmFsdWUoKTtcbiAgICB9XG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgVmFsaWRpdHlTdGF0ZSBvYmplY3QgZm9yIGludGVybmFscyB0YXJnZXQgZWxlbWVudC5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdmFsaWRpdHkoKTogVmFsaWRpdHlTdGF0ZSB7XG4gICAgICByZXR1cm4gdGhpcy5pbnRlcm5hbHMudmFsaWRpdHk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgZXJyb3IgbWVzc2FnZSB0aGF0IHdvdWxkIGJlIHNob3duIHRvIHRoZSB1c2VyXG4gICAgICogaWYgaW50ZXJuYWxzIHRhcmdldCBlbGVtZW50IHdhcyB0byBiZSBjaGVja2VkIGZvciB2YWxpZGl0eS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdmFsaWRhdGlvbk1lc3NhZ2UoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFscy52YWxpZGF0aW9uTWVzc2FnZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRydWUgaWYgaW50ZXJuYWxzIHRhcmdldCBlbGVtZW50IHdpbGwgYmUgdmFsaWRhdGVkXG4gICAgICogd2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQ7IGZhbHNlIG90aGVyd2lzZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgd2lsbFZhbGlkYXRlKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxzLndpbGxWYWxpZGF0ZTtcbiAgICB9XG5cbiAgICAvKiogQGludGVybmFsICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGludGVybmFsczogRWxlbWVudEludGVybmFscyA9IHRoaXMuYXR0YWNoSW50ZXJuYWxzKCk7XG5cbiAgICAvKiogV2hlbmV2ZXIgYSBzdXJyb3VuZGluZyBmb3JtIG9yIGZpZWxkc2V0IGlzIGNoYW5naW5nIGl0cyBkaXNhYmxlZCBzdGF0ZS4gKi9cbiAgICBAc3RhdGUoKSBwcm90ZWN0ZWQgZm9ybURpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICAgKTogdm9pZCB7XG4gICAgICBpZiAobmFtZSAhPT0gJ25hbWUnIHx8IG9sZCAhPT0gdmFsdWUpIHtcbiAgICAgICAgc3VwZXIuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKG5hbWUsIG9sZCwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiBpbnRlcm5hbHMgdGFyZ2V0IGVsZW1lbnQgaGFzIG5vIHZhbGlkaXR5IHByb2JsZW1zOyBmYWxzZSBvdGhlcndpc2UuXG4gICAgICogRmlyZXMgYW4gaW52YWxpZCBldmVudCBhdCB0aGUgZWxlbWVudCBpbiB0aGUgbGF0dGVyIGNhc2UuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgY2hlY2tWYWxpZGl0eSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmludGVybmFscy5jaGVja1ZhbGlkaXR5KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIGlmIGludGVybmFscyB0YXJnZXQgZWxlbWVudCBoYXMgbm8gdmFsaWRpdHkgcHJvYmxlbXM7IG90aGVyd2lzZSxcbiAgICAgKiByZXR1cm5zIGZhbHNlLCBmaXJlcyBhbiBpbnZhbGlkIGV2ZW50IGF0IHRoZSBlbGVtZW50LFxuICAgICAqIGFuZCAoaWYgdGhlIGV2ZW50IGlzbid0IGNhbmNlbGVkKSByZXBvcnRzIHRoZSBwcm9ibGVtIHRvIHRoZSB1c2VyLlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIHJlcG9ydFZhbGlkaXR5KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxzLnJlcG9ydFZhbGlkaXR5KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgZm9ybSBlbGVtZW50IGNoYW5nZXMuXG4gICAgICogRWxlbWVudEludGVybmFscy5mb3JtIHJldHVybnMgdGhlIGFzc29jaWF0ZWQgZnJvbSBlbGVtZW50LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGZvcm1Bc3NvY2lhdGVkQ2FsbGJhY2s/KGZvcm06IEhUTUxGb3JtRWxlbWVudCB8IG51bGwpOiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIGEgc3Vycm91bmRpbmcgZm9ybSAvIGZpZWxkc2V0IGNoYW5nZXMgZGlzYWJsZWQgc3RhdGUuXG4gICAgICogQHBhcmFtIGRpc2FibGVkXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZm9ybURpc2FibGVkQ2FsbGJhY2soZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgIC8vIFRoaXMgY2FsbGJhY2sgaXMgdHJpZ2dlcmVkIGlmIHRoZSBkaXNhYmxlZCBwcm9wZXJ0eSBjaGFuZ2VzIG9yIHRoZSBkaXNhYmxlZCBhdHRyaWJ1dGUgb2YgYSBmaWVsZHNldCBvciBmb3JtIGNoYW5nZXMuXG4gICAgICAvLyBXZSBuZWVkIHRvIHBvc3Rwb25lIHRoZSBhc3NpZ25tZW50LCBvdGhlcndpc2UgaXQgaW50ZXJmZXJlcyB3aXRoIGRpc2FibGVkIHN0YXR1cyBzZXR0aW5nXG4gICAgICAvLyBhbmQgbGVhZHMgdG8gYSB3cm9uZyBzdGF0ZSAoZS5nLiBlbWJlZGRlZCBzYmItdmlzdWFsLWNoZWNrYm94KS5cbiAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmZvcm1EaXNhYmxlZCA9IGRpc2FibGVkO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiAgQ2FsbGVkIHdoZW4gdGhlIGJyb3dzZXIgaXMgdHJ5aW5nIHRvIHJlc3RvcmUgZWxlbWVudOKAmXMgc3RhdGUgdG8gc3RhdGUgaW4gd2hpY2ggY2FzZVxuICAgICAqICByZWFzb24gaXMg4oCccmVzdG9yZeKAnSwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyDigJxhdXRvY29tcGxldGXigJ0uXG4gICAgICogIEluIHRoZSBjYXNlIG9mIOKAnHJlc3RvcmXigJ0sIHN0YXRlIGlzIGEgc3RyaW5nLCBGaWxlLCBvciBGb3JtRGF0YSBvYmplY3RcbiAgICAgKiAgcHJldmlvdXNseSBzZXQgYXMgdGhlIHNlY29uZCBhcmd1bWVudCB0byBzZXRGb3JtVmFsdWUuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKFxuICAgICAgc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgICAgcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkO1xuXG4gICAgLyoqIFNob3VsZCBiZSBjYWxsZWQgd2hlbiBmb3JtIHZhbHVlIGlzIGNoYW5nZWQuICovXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUZvcm1WYWx1ZSgpOiB2b2lkIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnNldEZvcm1WYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFNiYkZvcm1Bc3NvY2lhdGVkRWxlbWVudCBhcyB1bmtub3duIGFzIENvbnN0cnVjdG9yPFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW5UeXBlPiAmIFQ7XG59O1xuXG4vKipcbiAqIEEgdmFsdWUgdG8gYmUgcmVzdG9yZWQgZm9yIGEgY29tcG9uZW50J3MgZm9ybSB2YWx1ZS4gSWYgYSBjb21wb25lbnQncyBmb3JtXG4gKiBzdGF0ZSBpcyBhIGBGb3JtRGF0YWAgb2JqZWN0LCBpdHMgZW50cnkgbGlzdCBvZiBuYW1lIGFuZCB2YWx1ZXMgd2lsbCBiZVxuICogcHJvdmlkZWQuXG4gKi9cbmV4cG9ydCB0eXBlIEZvcm1SZXN0b3JlU3RhdGUgPSBGaWxlIHwgc3RyaW5nIHwgW3N0cmluZywgRm9ybURhdGFFbnRyeVZhbHVlXVtdO1xuXG4vKipcbiAqIFRoZSByZWFzb24gYSBmb3JtIGNvbXBvbmVudCBpcyBiZWluZyByZXN0b3JlZCBmb3IsIGVpdGhlciBgJ3Jlc3RvcmUnYCBmb3JcbiAqIGJyb3dzZXIgcmVzdG9yYXRpb24gb3IgYCdhdXRvY29tcGxldGUnYCBmb3IgcmVzdG9yaW5nIHVzZXIgdmFsdWVzLlxuICovXG5leHBvcnQgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbiA9ICdyZXN0b3JlJyB8ICdhdXRvY29tcGxldGUnO1xuIiwiaW1wb3J0IHR5cGUgeyBMaXRFbGVtZW50LCBQcm9wZXJ0eVZhbHVlcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW5UeXBlIH0gZnJvbSAnLi9mb3JtLWFzc29jaWF0ZWQtbWl4aW4uanMnO1xuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJSZXF1aXJlZE1peGluVHlwZSB7XG4gIHB1YmxpYyBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBpc1JlcXVpcmVkRXh0ZXJuYWxseSgpOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEVuaGFuY2UgeW91ciBjb21wb25lbnQgd2l0aCBhIHJlcXVpcmVkIHByb3BlcnR5LlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiUmVxdWlyZWRNaXhpbiA9IDxcbiAgVCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudCAmIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW5UeXBlPixcbj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlJlcXVpcmVkTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJSZXF1aXJlZEVsZW1lbnQgZXh0ZW5kcyBzdXBlckNsYXNzIGltcGxlbWVudHMgUGFydGlhbDxTYmJSZXF1aXJlZE1peGluVHlwZT4ge1xuICAgIC8qKiBXaGV0aGVyIHRoZSBjb21wb25lbnQgaXMgcmVxdWlyZWQuICovXG4gICAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICAgIHB1YmxpYyBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgIC8vIFRvIHByb3ZpZGUgdGhlIHNhbWUgYmVoYXZpb3IgYXMgdGhlIG5hdGl2ZSByZXF1aXJlZCBzdGF0ZSxcbiAgICAgIC8vIGFueSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gYSBib29sZWFuLlxuICAgICAgdGhpcy5fcmVxdWlyZWQgPSBCb29sZWFuKHZhbHVlKTtcbiAgICB9XG4gICAgcHVibGljIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZCB8fCB0aGlzLmlzUmVxdWlyZWRFeHRlcm5hbGx5KCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdyZXF1aXJlZCcpKSB7XG4gICAgICAgIC8vIEZpcmVmb3ggbmVlZHMgZXhwbGljaXRseSBzZXQgYXJpYS1yZXF1aXJlZCB2YWx1ZS5cbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYVJlcXVpcmVkID0gYCR7dGhpcy5yZXF1aXJlZH1gO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdpbGwgYmUgdXNlZCBhcyAnb3InIGNoZWNrIHRvIHRoZSBjdXJyZW50IHJlcXVpcmVkIHN0YXRlLlxuICAgICAqIENhbiBlLmcuIGJlIHVzZWQgdG8gcmVhZCByZXF1aXJlZCBzdGF0ZSBvZiBhIGdyb3VwLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBpc1JlcXVpcmVkRXh0ZXJuYWxseSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2JiUmVxdWlyZWRFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJSZXF1aXJlZE1peGluVHlwZT4gJiBUO1xufTtcbiIsImltcG9ydCB7IGRlZmF1bHRDb252ZXJ0ZXIsIHR5cGUgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHByZXZlbnRTY3JvbGxPblNwYWNlYmFyUHJlc3MgfSBmcm9tICcuLi9ldmVudGluZy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLmpzJztcbmltcG9ydCB7IFNiYkRpc2FibGVkTWl4aW4sIHR5cGUgU2JiRGlzYWJsZWRNaXhpblR5cGUgfSBmcm9tICcuL2Rpc2FibGVkLW1peGluLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgRm9ybVJlc3RvcmVSZWFzb24sXG4gIHR5cGUgRm9ybVJlc3RvcmVTdGF0ZSxcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbixcbiAgdHlwZSBTYmJGb3JtQXNzb2NpYXRlZE1peGluVHlwZSxcbn0gZnJvbSAnLi9mb3JtLWFzc29jaWF0ZWQtbWl4aW4uanMnO1xuaW1wb3J0IHsgU2JiUmVxdWlyZWRNaXhpbiwgdHlwZSBTYmJSZXF1aXJlZE1peGluVHlwZSB9IGZyb20gJy4vcmVxdWlyZWQtbWl4aW4uanMnO1xuXG50eXBlIENoZWNrZWRTZXR0ZXJWYWx1ZSA9IHsgdmFsdWU6IGJvb2xlYW47IGF0dHJpYnV0ZTogYm9vbGVhbiB9O1xuXG5leHBvcnQgZGVjbGFyZSBhYnN0cmFjdCBjbGFzcyBTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94TWl4aW5UeXBlXG4gIGV4dGVuZHMgU2JiRm9ybUFzc29jaWF0ZWRNaXhpblR5cGVcbiAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkRpc2FibGVkTWl4aW5UeXBlPiwgUGFydGlhbDxTYmJSZXF1aXJlZE1peGluVHlwZT5cbntcbiAgcHVibGljIGdldCBjaGVja2VkKCk6IGJvb2xlYW47XG4gIHB1YmxpYyBzZXQgY2hlY2tlZCh2YWx1ZTogYm9vbGVhbik7XG5cbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbik7XG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbjtcblxuICBwdWJsaWMgc2V0IHJlcXVpcmVkKHZhbHVlOiBib29sZWFuKTtcbiAgcHVibGljIGdldCByZXF1aXJlZCgpOiBib29sZWFuO1xuXG4gIHB1YmxpYyBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkO1xuICBwdWJsaWMgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCwgcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbik6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIGlzRGlzYWJsZWRFeHRlcm5hbGx5KCk6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBpc1JlcXVpcmVkRXh0ZXJuYWxseSgpOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgd2l0aFVzZXJJbnRlcmFjdGlvbj8oKTogdm9pZDtcbn1cblxuLyoqXG4gKiBUaGUgRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluIGVuYWJsZXMgbmF0aXZlIGZvcm0gc3VwcG9ydCBmb3IgY2hlY2tib3ggY29udHJvbHMuXG4gKlxuICogSW5oZXJpdGVkIGNsYXNzZXMgTVVTVCBpbXBsZW1lbnQgdGhlIGFyaWFDaGVja2VkIHN0YXRlIChFbGVtZW50SW50ZXJuYWxzKSB0aGVtc2VsdmVzLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiRm9ybUFzc29jaWF0ZWRDaGVja2JveE1peGluID0gPFQgZXh0ZW5kcyBDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94TWl4aW5UeXBlPiAmIFQgPT4ge1xuICBAaG9zdEF0dHJpYnV0ZXMoe1xuICAgIHRhYmluZGV4OiAnMCcsXG4gIH0pXG4gIGFic3RyYWN0IGNsYXNzIFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hFbGVtZW50XG4gICAgZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFNiYlJlcXVpcmVkTWl4aW4oU2JiRm9ybUFzc29jaWF0ZWRNaXhpbihzdXBlckNsYXNzKSkpXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkZvcm1Bc3NvY2lhdGVkQ2hlY2tib3hNaXhpblR5cGU+XG4gIHtcbiAgICBwcml2YXRlIF9hdHRyaWJ1dGVNdXRhdGlvbkJsb2NrZWQgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjaGVja2JveCBpcyBjaGVja2VkLiAqL1xuICAgIEBwcm9wZXJ0eSh7XG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgY29udmVydGVyOiB7XG4gICAgICAgIC4uLmRlZmF1bHRDb252ZXJ0ZXIsXG4gICAgICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbmZvcm1hdGlvbiB0byB0aGUgc2V0dGVyIHNvIHRoYXQgd2Uga25vdyBpdCB3YXMgY2FsbGVkIGJ5IGF0dHJpYnV0ZSBjaGFuZ2UuXG4gICAgICAgIGZyb21BdHRyaWJ1dGU6ICh2YWx1ZTogc3RyaW5nIHwgbnVsbCwgdHlwZT86IHVua25vd24pOiBDaGVja2VkU2V0dGVyVmFsdWUgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGRlZmF1bHRDb252ZXJ0ZXIuZnJvbUF0dHJpYnV0ZT8uKHZhbHVlLCB0eXBlKTtcbiAgICAgICAgICByZXR1cm4geyB2YWx1ZTogcmVzdWx0LCBhdHRyaWJ1dGU6IHRydWUgfSBhcyBDaGVja2VkU2V0dGVyVmFsdWU7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pXG4gICAgcHVibGljIHNldCBjaGVja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICBjb25zdCBhdHRyaWJ1dGVTZXR0ZXIgPVxuICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnID8gKHZhbHVlIGFzIHVua25vd24gYXMgQ2hlY2tlZFNldHRlclZhbHVlKS5hdHRyaWJ1dGUgOiBmYWxzZTtcbiAgICAgIGlmIChhdHRyaWJ1dGVTZXR0ZXIpIHtcbiAgICAgICAgdmFsdWUgPSAodmFsdWUgYXMgdW5rbm93biBhcyBDaGVja2VkU2V0dGVyVmFsdWUpLnZhbHVlO1xuICAgICAgfVxuXG4gICAgICAvLyBBcyBzb29uIGFzIG11dGF0aW9uIHdhcyBkb25lIG5vdCBieSBzZXR0aW5nIGF0dHJpYnV0ZSxcbiAgICAgIC8vIHdlIG5lZWQgdG8gYmxvY2sgc3luY2luZyBhdHRyaWJ1dGUuXG4gICAgICBpZiAodGhpcy5oYXNVcGRhdGVkICYmICFhdHRyaWJ1dGVTZXR0ZXIpIHtcbiAgICAgICAgdGhpcy5fYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2NoZWNrZWQgPSBCb29sZWFuKHZhbHVlKTtcbiAgICAgIHRoaXMudXBkYXRlRm9ybVZhbHVlKCk7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLl9jaGVja2VkO1xuICAgIH1cbiAgICBwcml2YXRlIF9jaGVja2VkID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICBzdXBlcigpO1xuICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgdGhpcy5pbnRlcm5hbHMucm9sZSA9ICdjaGVja2JveCc7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX2hhbmRsZVVzZXJJbnRlcmFjdGlvbik7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBwcmV2ZW50U2Nyb2xsT25TcGFjZWJhclByZXNzKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9oYW5kbGVLZXlib2FyZEludGVyYWN0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5faGFuZGxlVXNlckludGVyYWN0aW9uKTtcbiAgICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHByZXZlbnRTY3JvbGxPblNwYWNlYmFyUHJlc3MpO1xuICAgICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMuX2hhbmRsZUtleWJvYXJkSW50ZXJhY3Rpb24pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICBvbGQ6IHN0cmluZyB8IG51bGwsXG4gICAgICB2YWx1ZTogc3RyaW5nIHwgbnVsbCxcbiAgICApOiB2b2lkIHtcbiAgICAgIC8vIEF0dHJpYnV0ZSBzaG91bGQgbm90IGJlIGludGVycHJldGVkIGFmdGVyIHByb2dyYW1tYXRpYyBvciBtYW51YWwgc3RhdGUgY2hhbmdlLlxuICAgICAgaWYgKG5hbWUgIT09ICdjaGVja2VkJyB8fCAhdGhpcy5fYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkKSB7XG4gICAgICAgIHN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhuYW1lLCBvbGQsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJcyBjYWxsZWQgd2hlbmV2ZXIgdGhlIGZvcm0gaXMgYmVpbmcgcmVzZXQuXG4gICAgICpcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgICB0aGlzLmNoZWNrZWQgPSB0aGlzLmhhc0F0dHJpYnV0ZSgnY2hlY2tlZCcpO1xuICAgICAgdGhpcy5fYXR0cmlidXRlTXV0YXRpb25CbG9ja2VkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIENhbGxlZCB3aGVuIHRoZSBicm93c2VyIGlzIHRyeWluZyB0byByZXN0b3JlIGVsZW1lbnTigJlzIHN0YXRlIHRvIHN0YXRlIGluIHdoaWNoIGNhc2VcbiAgICAgKiAgcmVhc29uIGlzIOKAnHJlc3RvcmXigJ0sIG9yIHdoZW4gdGhlIGJyb3dzZXIgaXMgdHJ5aW5nIHRvIGZ1bGZpbGwgYXV0b2ZpbGwgb24gYmVoYWxmIG9mXG4gICAgICogIHVzZXIgaW4gd2hpY2ggY2FzZSByZWFzb24gaXMg4oCcYXV0b2NvbXBsZXRl4oCdLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiDigJxyZXN0b3Jl4oCdLCBzdGF0ZSBpcyBhIHN0cmluZywgRmlsZSwgb3IgRm9ybURhdGEgb2JqZWN0XG4gICAgICogIHByZXZpb3VzbHkgc2V0IGFzIHRoZSBzZWNvbmQgYXJndW1lbnQgdG8gc2V0Rm9ybVZhbHVlLlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICAgIHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCxcbiAgICAgIF9yZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICAgICk6IHZvaWQge1xuICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgIHRoaXMuY2hlY2tlZCA9IHN0YXRlID09PSAndHJ1ZSc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkaXRpb25hbCBsb2dpYyB3aGljaCBpcyBiZWluZyBleGVjdXRlZCB3aGVuIHVzZXJcbiAgICAgKiBpbnRlcmFjdGlvbiBoYXBwZW5zIGFuZCBzdGF0ZSBpcyBub3QgZGlzYWJsZWQuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHdpdGhVc2VySW50ZXJhY3Rpb24/KCk6IHZvaWQ7XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlRm9ybVZhbHVlKCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuY2hlY2tlZCkge1xuICAgICAgICB0aGlzLmludGVybmFscy5zZXRGb3JtVmFsdWUodGhpcy52YWx1ZSwgYCR7dGhpcy5jaGVja2VkfWApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuc2V0Rm9ybVZhbHVlKG51bGwpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBNZXRob2QgdHJpZ2dlcmVkIG9uIGtleWJvYXJkIHVzZXIgaW50ZXJhY3Rpb24gd2l0aCBjaGVja2JveC4gKi9cbiAgICBwcml2YXRlIF9oYW5kbGVLZXlib2FyZEludGVyYWN0aW9uID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCA9PiB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnICcpIHtcbiAgICAgICAgdGhpcy5faGFuZGxlVXNlckludGVyYWN0aW9uKCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8qKiBNZXRob2QgdHJpZ2dlcmVkIG9uIHVzZXIgaW50ZXJhY3Rpb24gd2l0aCBjaGVja2JveC4gKi9cbiAgICBwcml2YXRlIF9oYW5kbGVVc2VySW50ZXJhY3Rpb24gPSAoKTogdm9pZCA9PiB7XG4gICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLndpdGhVc2VySW50ZXJhY3Rpb24/LigpO1xuICAgICAgdGhpcy5jaGVja2VkID0gIXRoaXMuY2hlY2tlZDtcbiAgICAgIHRoaXMuX2F0dHJpYnV0ZU11dGF0aW9uQmxvY2tlZCA9IHRydWU7XG5cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7IGNvbXBvc2VkOiB0cnVlLCBidWJibGVzOiB0cnVlIH0pKTtcbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdkaWRDaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gU2JiRm9ybUFzc29jaWF0ZWRDaGVja2JveEVsZW1lbnQgYXMgdW5rbm93biBhcyBDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZENoZWNrYm94TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iLCJpbXBvcnQgdHlwZSB7IExpdEVsZW1lbnQsIFByb3BlcnR5VmFsdWVzIH0gZnJvbSAnbGl0JztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci5qcyc7XG5cbi8vIERlZmluZSB0aGUgaW50ZXJmYWNlIGZvciB0aGUgbWl4aW5cbmV4cG9ydCBkZWNsYXJlIGFic3RyYWN0IGNsYXNzIFNiYkh5ZHJhdGlvbk1peGluVHlwZSB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGVsZW1lbnQgaGFzIGNvbXBsZXRlZCBoeWRyYXRpb24uXG4gICAqIFRoZSBQcm9taXNlIHZhbHVlIGlzIGEgYm9vbGVhbiB0aGF0IGlzIGB0cnVlYCBpZiB0aGUgZWxlbWVudCByZXF1aXJlZCBoeWRyYXRpb25cbiAgICogYW5kIGBmYWxzZWAgaWYgbm90LlxuICAgKlxuICAgKiBAcmV0dXJuIEEgcHJvbWlzZSBvZiBhIGJvb2xlYW4gdGhhdCByZXNvbHZlcyB0byB0cnVlIG9uY2UgdGhlIGh5ZHJhdGlvbiBjb21wbGV0ZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGh5ZHJhdGlvbkNvbXBsZXRlKCk6IFByb21pc2U8Ym9vbGVhbj47XG5cbiAgLyoqIFJldHVybnMgd2hldGhlciBoeWRyYXRpb24gaXMgcmVxdWlyZWQgYW5kIG5vdCBjb21wbGV0ZWQuICovXG4gIHByb3RlY3RlZCBnZXQgaHlkcmF0aW9uUmVxdWlyZWQoKTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUaGlzIG1peGluIGV4dGVuZHMgYSBiYXNlIGNsYXNzIHdpdGggZnVuY3Rpb25hbGl0eSB0byBjaGVjayBpZiBoeWRyYXRpb24gaXMgY29tcGxldGVkLlxuICogSXQgYWxzbyBkZWxheXMgc2xvdGNoYW5nZSBldmVudHMgdW50aWwgaHlkcmF0aW9uIGlzIGNvbXBsZXRlLlxuICpcbiAqIEBwYXJhbSBiYXNlIFRoZSBjbGFzcyB0byBleHRlbmQuXG4gKiBAcmV0dXJucyBBIGNsYXNzIGV4dGVuZGVkIHdpdGggdGhlIGh5ZHJhdGlvbiBjaGVjayBmdW5jdGlvbmFsaXR5LlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiSHlkcmF0aW9uTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudD4+KFxuICBiYXNlOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJIeWRyYXRpb25NaXhpblR5cGU+ICYgVCA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYkh5ZHJhdGlvbk1peGluQ2xhc3MgZXh0ZW5kcyBiYXNlIGltcGxlbWVudHMgUGFydGlhbDxTYmJIeWRyYXRpb25NaXhpblR5cGU+IHtcbiAgICBwcml2YXRlIF9oeWRyYXRpb25SZXF1aXJlZDogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9oeWRyYXRpb25Db21wbGV0ZSA9IG5ldyBQcm9taXNlPGJvb2xlYW4+KFxuICAgICAgKHJlc29sdmUpID0+ICh0aGlzLl9yZXNvbHZlSHlkcmF0aW9uID0gcmVzb2x2ZSksXG4gICAgKTtcbiAgICBwcml2YXRlIF9yZXNvbHZlSHlkcmF0aW9uITogKGh5ZHJhdGlvblJlcXVpcmVkOiBib29sZWFuKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBlbGVtZW50IGhhcyBjb21wbGV0ZWQgaHlkcmF0aW9uLlxuICAgICAqIFRoZSBQcm9taXNlIHZhbHVlIGlzIGEgYm9vbGVhbiB0aGF0IGlzIGB0cnVlYCBpZiB0aGUgZWxlbWVudCByZXF1aXJlZCBoeWRyYXRpb25cbiAgICAgKiBhbmQgYGZhbHNlYCBpZiBub3QuXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIEEgcHJvbWlzZSBvZiBhIGJvb2xlYW4gdGhhdCByZXNvbHZlcyB0byB0cnVlIG9uY2UgdGhlIGh5ZHJhdGlvbiBjb21wbGV0ZWQuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGdldCBoeWRyYXRpb25Db21wbGV0ZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgIHJldHVybiB0aGlzLl9oeWRyYXRpb25Db21wbGV0ZTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyB3aGV0aGVyIGh5ZHJhdGlvbiBpcyByZXF1aXJlZCBhbmQgbm90IGNvbXBsZXRlZC4gKi9cbiAgICBwcm90ZWN0ZWQgZ2V0IGh5ZHJhdGlvblJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHRoaXMuX2h5ZHJhdGlvblJlcXVpcmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgc3VwZXIoLi4uYXJncyk7XG4gICAgICAvLyBDaGVjayB3aGV0aGVyIGh5ZHJhdGlvbiBpcyBuZWVkZWQgYnkgY2hlY2tpbmcgd2hldGhlciB0aGUgc2hhZG93IHJvb3RcbiAgICAgIC8vIGlzIGF2YWlsYWJsZSBkdXJpbmcgY29uc3RydWN0aW9uL3VwZ3JhZGUgcGhhc2UuXG4gICAgICB0aGlzLl9oeWRyYXRpb25SZXF1aXJlZCA9ICEhdGhpcy5zaGFkb3dSb290O1xuICAgICAgaWYgKCF0aGlzLl9oeWRyYXRpb25SZXF1aXJlZCkge1xuICAgICAgICB0aGlzLl9yZXNvbHZlSHlkcmF0aW9uKGZhbHNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIER1cmluZyBoeWRyYXRpb24gcGhhc2UsIHdlIHdhbnQgdG8gc3VwcHJlc3Mgc2xvdGNoYW5nZSBldmVudHMgYXMgdGhleVxuICAgICAgICAvLyBjYW4gY2F1c2UgcmVuZGVyIGRpZmZlcmVuY2VzLCB3aGljaCB3b3VsZCBicmVhayBoeWRyYXRpb24uIEFmdGVyXG4gICAgICAgIC8vIGh5ZHJhdGlvbiBpcyBjb21wbGV0ZSwgd2UgZGlzcGF0Y2ggYSBtYW51YWwgc2xvdGNoYW5nZSBldmVudCwgaWYgdGhlcmVcbiAgICAgICAgLy8gYXJlIGVsZW1lbnRzIGFzc2lnbmVkIHRvIGEgc2xvdC5cbiAgICAgICAgY29uc3Qgc3VwcHJlc3NTbG90Y2hhbmdlRXZlbnQgPSAoZXZlbnQ6IEV2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX2h5ZHJhdGlvblJlcXVpcmVkKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGV2ZW50T3B0aW9uczogRXZlbnRMaXN0ZW5lck9wdGlvbnMgPSB7IGNhcHR1cmU6IHRydWUgfTtcbiAgICAgICAgY29uc3Qgc2xvdHMgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3JBbGwoJ3Nsb3QnKTtcbiAgICAgICAgaWYgKHNsb3RzPy5sZW5ndGgpIHtcbiAgICAgICAgICBzbG90cy5mb3JFYWNoKChzbG90KSA9PlxuICAgICAgICAgICAgc2xvdC5hZGRFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgc3VwcHJlc3NTbG90Y2hhbmdlRXZlbnQsIGV2ZW50T3B0aW9ucyksXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLmh5ZHJhdGlvbkNvbXBsZXRlLnRoZW4oKCkgPT5cbiAgICAgICAgICAgIHNsb3RzLmZvckVhY2goKHNsb3QpID0+IHtcbiAgICAgICAgICAgICAgc2xvdC5yZW1vdmVFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgc3VwcHJlc3NTbG90Y2hhbmdlRXZlbnQsIGV2ZW50T3B0aW9ucyk7XG4gICAgICAgICAgICAgIGlmIChzbG90LmFzc2lnbmVkTm9kZXMoKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBzbG90LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdzbG90Y2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICAvLyBXaGVuIGh5ZHJhdGlvbiBpcyBuZWVkZWQsIHdlIHdhaXQgdGhlIGh5ZHJhdGlvbiBwcm9jZXNzIHRvIGZpbmlzaCwgd2hpY2ggaXMgcGF0Y2hlZFxuICAgICAgLy8gaW50byB0aGUgdXBkYXRlIG1ldGhvZCBvZiB0aGUgTGl0RWxlbWVudCBiYXNlIGNsYXNzLlxuICAgICAgc3VwZXIudXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgICAgaWYgKHRoaXMuX2h5ZHJhdGlvblJlcXVpcmVkKSB7XG4gICAgICAgIHRoaXMuX2h5ZHJhdGlvblJlcXVpcmVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3Jlc29sdmVIeWRyYXRpb24odHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBTYmJIeWRyYXRpb25NaXhpbkNsYXNzIGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJIeWRyYXRpb25NaXhpblR5cGU+ICYgVDtcbn07XG4iLCJpbXBvcnQgeyBodG1sLCB0eXBlIExpdEVsZW1lbnQsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IuanMnO1xuaW1wb3J0IHsgU2JiSHlkcmF0aW9uTWl4aW4sIHR5cGUgU2JiSHlkcmF0aW9uTWl4aW5UeXBlIH0gZnJvbSAnLi9oeWRyYXRpb24tbWl4aW4uanMnO1xuXG5pbXBvcnQgJy4uLy4uL3NjcmVlbi1yZWFkZXItb25seS5qcyc7XG5cbmNvbnN0IFNTUl9DSElMRF9DT1VOVF9BVFRSSUJVVEUgPSAnZGF0YS1zc3ItY2hpbGQtY291bnQnO1xuY29uc3QgU0xPVE5BTUVfUFJFRklYID0gJ2xpJztcblxuZXhwb3J0IHR5cGUgU2JiTmFtZWRTbG90UHJvcGVydGllcyA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBhcmlhSGlkZGVuOiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBIZWxwZXIgdHlwZSBmb3Igd2lsbFVwZGF0ZSBvciBzaW1pbGFyIGNoZWNrcy5cbiAqIEFsbG93cyB0aGUgdXNhZ2Ugb2YgdGhlIHN0cmluZyBsaXRlcmFsICdsaXN0Q2hpbGRyZW4nLlxuICpcbiAqIEBleGFtcGxlXG4gKiBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8V2l0aExpc3RDaGlsZHJlbjx0aGlzPj4pOiB2b2lkIHtcbiAqICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbGlzdENoaWxkcmVuJykpIHtcbiAqICAgICAuLi5cbiAqICAgfVxuICogfVxuICovXG5leHBvcnQgdHlwZSBXaXRoTGlzdENoaWxkcmVuPFxuICBUIGV4dGVuZHMgU2JiTmFtZWRTbG90TGlzdE1peGluVHlwZTxDPixcbiAgQyBleHRlbmRzIEhUTUxFbGVtZW50ID0gSFRNTEVsZW1lbnQsXG4+ID0gVCAmIHsgbGlzdENoaWxkcmVuOiBDW10gfTtcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiTmFtZWRTbG90TGlzdE1peGluVHlwZTxcbiAgQyBleHRlbmRzIEhUTUxFbGVtZW50LFxuPiBleHRlbmRzIFNiYkh5ZHJhdGlvbk1peGluVHlwZSB7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBsaXN0Q2hpbGRMb2NhbE5hbWVzOiBzdHJpbmdbXTtcbiAgQHN0YXRlKCkgcHJvdGVjdGVkIGxpc3RDaGlsZHJlbjogQ1tdO1xuICBwcm90ZWN0ZWQgcmVuZGVyTGlzdChcbiAgICBhdHRyaWJ1dGVzPzoge1xuICAgICAgY2xhc3M/OiBzdHJpbmc7XG4gICAgICBhcmlhTGFiZWw/OiBzdHJpbmc7XG4gICAgICBhcmlhTGFiZWxsZWRieT86IHN0cmluZztcbiAgICB9LFxuICAgIGxpc3RJdGVtQXR0cmlidXRlcz86IHtcbiAgICAgIGxvY2FsTmFtZVZpc3VhbE9ubHk/OiBzdHJpbmdbXTtcbiAgICB9LFxuICApOiBUZW1wbGF0ZVJlc3VsdDtcbiAgcHJvdGVjdGVkIGxpc3RTbG90RW50cmllcygpOiBTYmJOYW1lZFNsb3RQcm9wZXJ0aWVzW107XG4gIHByb3RlY3RlZCByZW5kZXJIaWRkZW5TbG90KCk6IFRlbXBsYXRlUmVzdWx0O1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiTmFtZWRTbG90TGlzdE1peGluID0gPFxuICBDIGV4dGVuZHMgSFRNTEVsZW1lbnQsXG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+LFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiTmFtZWRTbG90TGlzdE1peGluVHlwZTxDPj4gJiBUID0+IHtcbiAgLyoqXG4gICAqIFRoaXMgYmFzZSBjbGFzcyBwcm92aWRlcyBuYW1lZCBzbG90IGxpc3Qgb2JzZXJ2ZXIgZnVuY3Rpb25hbGl0eS5cbiAgICogVGhpcyBhbGxvd3MgdXNpbmcgdGhlIHBhdHRlcm4gb2YgcmVuZGVyaW5nIGEgbmFtZWQgc2xvdCBmb3IgZWFjaCBjaGlsZCwgd2hpY2ggYWxsb3dzXG4gICAqIHdyYXBwaW5nIGNoaWxkcmVuIGluIGFuIHVsL2xpIGxpc3QuXG4gICAqL1xuICBhYnN0cmFjdCBjbGFzcyBOYW1lZFNsb3RMaXN0RWxlbWVudDxDIGV4dGVuZHMgSFRNTEVsZW1lbnQgPSBIVE1MRWxlbWVudD5cbiAgICBleHRlbmRzIFNiYkh5ZHJhdGlvbk1peGluKHN1cGVyQ2xhc3MpXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYk5hbWVkU2xvdExpc3RNaXhpblR5cGU8Qz4+XG4gIHtcbiAgICAvKiogQSBsaXN0IG9mIGxvd2VyLWNhc2VkIHRhZyBuYW1lcyB0byBtYXRjaCBhZ2FpbnN0LiAoZS5nLiBgc2JiLWxpbmtgKSAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBsaXN0Q2hpbGRMb2NhbE5hbWVzOiBzdHJpbmdbXTtcblxuICAgIC8qKlxuICAgICAqIEEgbGlzdCBvZiBjaGlsZHJlbiB3aXRoIHRoZSBkZWZpbmVkIHRhZyBuYW1lcy5cbiAgICAgKiBUaGlzIGFycmF5IGlzIG9ubHkgdXBkYXRlZCBpZiB0aGVyZSBpcyBhbiBhY3R1YWwgY2hhbmdlXG4gICAgICogdG8gdGhlIGNoaWxkIGVsZW1lbnRzLlxuICAgICAqL1xuICAgIEBzdGF0ZSgpIHByb3RlY3RlZCBsaXN0Q2hpbGRyZW46IENbXSA9IFtdO1xuXG4gICAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICAgIHRoaXMuc2hhZG93Um9vdD8uYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIHRoaXMuX2hhbmRsZVNsb3RjaGFuZ2UsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgICAgdGhpcy5zaGFkb3dSb290Py5yZW1vdmVFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgdGhpcy5faGFuZGxlU2xvdGNoYW5nZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaGFuZGxlU2xvdGNoYW5nZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IGxpc3RDaGlsZHJlbiA9IEFycmF5LmZyb20odGhpcy5jaGlsZHJlbiA/PyBbXSkuZmlsdGVyKChlKTogZSBpcyBDID0+XG4gICAgICAgIHRoaXMubGlzdENoaWxkTG9jYWxOYW1lcy5pbmNsdWRlcyhlLmxvY2FsTmFtZSksXG4gICAgICApO1xuICAgICAgLy8gSWYgdGhlIHNsb3R0ZWQgY2hpbGQgaW5zdGFuY2VzIGhhdmUgbm90IGNoYW5nZWQsIHdlIGNhbiBza2lwIHN5bmNpbmcgYW5kIHVwZGF0aW5nXG4gICAgICAvLyB0aGUgbGluayByZWZlcmVuY2UgbGlzdC5cbiAgICAgIGlmIChcbiAgICAgICAgbGlzdENoaWxkcmVuLmxlbmd0aCA9PT0gdGhpcy5saXN0Q2hpbGRyZW4ubGVuZ3RoICYmXG4gICAgICAgIHRoaXMubGlzdENoaWxkcmVuLmV2ZXJ5KChlLCBpKSA9PiBsaXN0Q2hpbGRyZW5baV0gPT09IGUpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmxpc3RDaGlsZHJlblxuICAgICAgICAuZmlsdGVyKChjKSA9PiAhbGlzdENoaWxkcmVuLmluY2x1ZGVzKGMpKVxuICAgICAgICAuZm9yRWFjaCgoYykgPT4gYy5yZW1vdmVBdHRyaWJ1dGUoJ3Nsb3QnKSk7XG4gICAgICB0aGlzLmxpc3RDaGlsZHJlbiA9IGxpc3RDaGlsZHJlbjtcbiAgICAgIHRoaXMubGlzdENoaWxkcmVuLmZvckVhY2goKGMsIGluZGV4KSA9PlxuICAgICAgICBjLnNldEF0dHJpYnV0ZSgnc2xvdCcsIGAke1NMT1ROQU1FX1BSRUZJWH0tJHtpbmRleH1gKSxcbiAgICAgICk7XG5cbiAgICAgIC8vIFJlbW92ZSB0aGUgc3NyIGF0dHJpYnV0ZSwgb25jZSB3ZSBoYXZlIGFjdHVhbGx5IGluaXRpYWxpemVkIHRoZSBjaGlsZHJlbiBlbGVtZW50cy5cbiAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKFNTUl9DSElMRF9DT1VOVF9BVFRSSUJVVEUpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZW5kZXJzIGxpc3QgYW5kIGxpc3Qgc2xvdHMgZm9yIHNsb3R0ZWQgY2hpbGRyZW4gb3IgYSBudW1iZXIgb2YgbGlzdCBzbG90c1xuICAgICAqIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGBkYXRhLXNzci1jaGlsZC1jb3VudGAgYXR0cmlidXRlIHZhbHVlLlxuICAgICAqXG4gICAgICogVGhpcyBpcyBhIHBvc3NpYmxlIG9wdGltaXphdGlvbiBmb3IgU1NSLCBhcyBpbiBhbiBTU1IgTGl0IGVudmlyb25tZW50XG4gICAgICogb3RoZXIgZWxlbWVudHMgYXJlIG5vdCBhdmFpbGFibGUsIGJ1dCBtaWdodCBiZSBhdmFpbGFibGUgaW4gdGhlIG1ldGFcbiAgICAgKiBmcmFtZXdvcmsgd3JhcHBlciAobGlrZSBlLmcuIFJlYWN0KS4gVGhpcyBhbGxvd3MgdG8gcHJvdmlkZSB0aGUgbnVtYmVyIG9mXG4gICAgICogY2hpbGRyZW4gdG8gYmUgcGFzc2VkIHZpYSB0aGUgYGRhdGEtc3NyLWNoaWxkLWNvdW50YCBhdHRyaWJ1dGUgdmFsdWUuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlbmRlckxpc3QoXG4gICAgICBhdHRyaWJ1dGVzOiB7IGNsYXNzPzogc3RyaW5nOyBhcmlhTGFiZWw/OiBzdHJpbmc7IGFyaWFMYWJlbGxlZGJ5Pzogc3RyaW5nIH0gPSB7fSxcbiAgICAgIGxpc3RJdGVtQXR0cmlidXRlczogeyBsb2NhbE5hbWVWaXN1YWxPbmx5Pzogc3RyaW5nW10gfSA9IHt9LFxuICAgICk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICAgIGNvbnN0IGxpc3RTbG90TmFtZXM6IFNiYk5hbWVkU2xvdFByb3BlcnRpZXNbXSA9IHRoaXMubGlzdFNsb3RFbnRyaWVzKGxpc3RJdGVtQXR0cmlidXRlcyk7XG5cbiAgICAgIGlmIChsaXN0U2xvdE5hbWVzLmxlbmd0aCA+PSAyKSB7XG4gICAgICAgIHJldHVybiBodG1sYFxuICAgICAgICAgIDx1bFxuICAgICAgICAgICAgY2xhc3M9JHthdHRyaWJ1dGVzLmNsYXNzIHx8IHRoaXMubG9jYWxOYW1lfVxuICAgICAgICAgICAgYXJpYS1sYWJlbD0ke2F0dHJpYnV0ZXMuYXJpYUxhYmVsIHx8IG5vdGhpbmd9XG4gICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9JHthdHRyaWJ1dGVzLmFyaWFMYWJlbGxlZGJ5IHx8IG5vdGhpbmd9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgJHtsaXN0U2xvdE5hbWVzLm1hcChcbiAgICAgICAgICAgICAgKHNsb3QpID0+IGh0bWxgXG4gICAgICAgICAgICAgICAgPGxpIGFyaWEtaGlkZGVuPSR7c2xvdC5hcmlhSGlkZGVuIHx8IG5vdGhpbmd9PlxuICAgICAgICAgICAgICAgICAgPHNsb3QgbmFtZT0ke3Nsb3QubmFtZX0+PC9zbG90PlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIGAsXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgJHt0aGlzLnJlbmRlckhpZGRlblNsb3QoKX1cbiAgICAgICAgYDtcbiAgICAgIH0gZWxzZSBpZiAobGlzdFNsb3ROYW1lcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIGh0bWxgPHNiYi1zY3JlZW4tcmVhZGVyLW9ubHk+JHthdHRyaWJ1dGVzLmFyaWFMYWJlbH08L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHk+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9JHthdHRyaWJ1dGVzLmNsYXNzIHx8IHRoaXMubG9jYWxOYW1lfT5cbiAgICAgICAgICAgIDxzcGFuPjxzbG90IG5hbWU9JHtsaXN0U2xvdE5hbWVzWzBdLm5hbWV9Pjwvc2xvdD48L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICR7dGhpcy5yZW5kZXJIaWRkZW5TbG90KCl9IGA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJIaWRkZW5TbG90KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhbiBhcnJheSBvZiBTYmJOYW1lZFNsb3RQcm9wZXJ0aWVzLCB3aGljaCBob2xkcyB0aGUgbGlzdCBzbG90IG5hbWVzIGFuZCB0aGUgaGlkZGVuIHByb3BlcnR5O1xuICAgICAqIGl0cyBsZW5ndGggY29ycmVzcG9uZHMgdG8gdGhlIG51bWJlciBvZiBtYXRjaGVkIGNoaWxkcmVuIG9yIHRoZSBgZGF0YS1zc3ItY2hpbGQtY291bnRgIGF0dHJpYnV0ZSB2YWx1ZS5cbiAgICAgKlxuICAgICAqIFRoaXMgaXMgYSBwb3NzaWJsZSBvcHRpbWl6YXRpb24gZm9yIFNTUiwgYXMgaW4gYW4gU1NSIExpdCBlbnZpcm9ubWVudFxuICAgICAqIG90aGVyIGVsZW1lbnRzIGFyZSBub3QgYXZhaWxhYmxlLCBidXQgbWlnaHQgYmUgYXZhaWxhYmxlIGluIHRoZSBtZXRhXG4gICAgICogZnJhbWV3b3JrIHdyYXBwZXIgKGxpa2UgZS5nLiBSZWFjdCkuIFRoaXMgYWxsb3dzIHRvIHByb3ZpZGUgdGhlIG51bWJlciBvZlxuICAgICAqIGNoaWxkcmVuIHRvIGJlIHBhc3NlZCB2aWEgdGhlIGBkYXRhLXNzci1jaGlsZC1jb3VudGAgYXR0cmlidXRlIHZhbHVlLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBsaXN0U2xvdEVudHJpZXMobGlzdEl0ZW1BdHRyaWJ1dGVzOiB7XG4gICAgICBsb2NhbE5hbWVWaXN1YWxPbmx5Pzogc3RyaW5nW107XG4gICAgfSk6IFNiYk5hbWVkU2xvdFByb3BlcnRpZXNbXSB7XG4gICAgICBjb25zdCBsaXN0Q2hpbGRyZW4gPSB0aGlzLmxpc3RDaGlsZHJlbi5sZW5ndGhcbiAgICAgICAgPyB0aGlzLmxpc3RDaGlsZHJlblxuICAgICAgICA6IEFycmF5LmZyb20oeyBsZW5ndGg6ICsodGhpcy5nZXRBdHRyaWJ1dGUoU1NSX0NISUxEX0NPVU5UX0FUVFJJQlVURSkgPz8gMCkgfSk7XG4gICAgICByZXR1cm4gbGlzdENoaWxkcmVuLm1hcCgoZSwgaSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG5hbWU6IGAke1NMT1ROQU1FX1BSRUZJWH0tJHtpfWAsXG4gICAgICAgICAgYXJpYUhpZGRlbjpcbiAgICAgICAgICAgIGxpc3RJdGVtQXR0cmlidXRlcz8ubG9jYWxOYW1lVmlzdWFsT25seT8uaW5jbHVkZXMoKGUgYXMgSFRNTEVsZW1lbnQpLmxvY2FsTmFtZSkgPz9cbiAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGhpZGRlbiBzbG90LCB3aGljaCBpcyBpbnRlbmRlZCBhcyB0aGUgY2hpbGRyZW4gY2hhbmdlIGRldGVjdGlvbi5cbiAgICAgKiBXaGVuIGFuIGVsZW1lbnQgd2l0aG91dCBhIHNsb3QgYXR0cmlidXRlIGlzIHNsb3R0ZWQgdG8gdGhlIGVsZW1lbnQsIGl0IHRyaWdnZXJzXG4gICAgICogdGhlIHNsb3RjaGFuZ2UgZXZlbnQsIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGFzc2lnbiBpdCB0byB0aGUgYXBwcm9wcmlhdGUgbmFtZWQgc2xvdC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVuZGVySGlkZGVuU2xvdCgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgICByZXR1cm4gaHRtbGA8c3BhbiBoaWRkZW4+PHNsb3Q+PC9zbG90Pjwvc3Bhbj5gO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBOYW1lZFNsb3RMaXN0RWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiTmFtZWRTbG90TGlzdE1peGluVHlwZTxDPj4gJiBUO1xufTtcbiIsImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci5qcyc7XG5cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIFNiYk5lZ2F0aXZlTWl4aW5UeXBlIHtcbiAgcHVibGljIG5lZ2F0aXZlOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEVuaGFuY2UgeW91ciBjb21wb25lbnQgd2l0aCBhIG5lZ2F0aXZlIHByb3BlcnR5LlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiTmVnYXRpdmVNaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYk5lZ2F0aXZlTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJOZWdhdGl2ZUVsZW1lbnQgZXh0ZW5kcyBzdXBlckNsYXNzIGltcGxlbWVudHMgU2JiTmVnYXRpdmVNaXhpblR5cGUge1xuICAgIC8qKiBOZWdhdGl2ZSBjb2xvcmluZyB2YXJpYW50IGZsYWcuICovXG4gICAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KSBwdWJsaWMgbmVnYXRpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBTYmJOZWdhdGl2ZUVsZW1lbnQgYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJOZWdhdGl2ZU1peGluVHlwZT4gJiBUO1xufTtcbiIsImltcG9ydCB0eXBlIHsgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vZXZlbnRpbmcuanMnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLmpzJztcblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiUGFuZWxNaXhpblR5cGUge1xuICBwdWJsaWMgY29sb3I6ICd3aGl0ZScgfCAnbWlsayc7XG4gIHB1YmxpYyBib3JkZXJsZXNzOiBib29sZWFuO1xuICBwdWJsaWMgZXhwYW5zaW9uU3RhdGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFNiYlBhbmVsU2l6ZSA9ICdzJyB8ICdtJztcblxuLyoqXG4gKiBNaXhpbiBmb3IgY29tbW9uIHBhbmVsIGJlaGF2aW9yc1xuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiUGFuZWxNaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYlBhbmVsTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJQYW5lbEVsZW1lbnQgZXh0ZW5kcyBzdXBlckNsYXNzIGltcGxlbWVudHMgU2JiUGFuZWxNaXhpblR5cGUge1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgICAgcGFuZWxDb25uZWN0ZWQ6ICdwYW5lbENvbm5lY3RlZCcsXG4gICAgfSBhcyBjb25zdDtcblxuICAgIC8qKiBUaGUgYmFja2dyb3VuZCBjb2xvciBvZiB0aGUgcGFuZWwuICovXG4gICAgQHByb3BlcnR5KCkgcHVibGljIGNvbG9yOiAnd2hpdGUnIHwgJ21pbGsnID0gJ3doaXRlJztcblxuICAgIC8qKiBXaGV0aGVyIHRoZSB1bnNlbGVjdGVkIHBhbmVsIGhhcyBhIGJvcmRlci4gKi9cbiAgICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pIHB1YmxpYyBib3JkZXJsZXNzID0gZmFsc2U7XG5cbiAgICAvKiogQGludGVybmFsIHVzZWQgZm9yIGFjY2Vzc2liaWxpdHkgbGFiZWwgd2hlbiBpbiBleHBhbnNpb24gcGFuZWwgKi9cbiAgICBAcHJvcGVydHkoKSBwdWJsaWMgZXhwYW5zaW9uU3RhdGU/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKiBJbnRlcm5hbCBldmVudCB0aGF0IGVtaXRzIHdoZW4gdGhlIGNoZWNrYm94IGlzIGxvYWRlZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9wYW5lbENvbm5lY3RlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICAgIHRoaXMsXG4gICAgICBTYmJQYW5lbEVsZW1lbnQuZXZlbnRzLnBhbmVsQ29ubmVjdGVkLFxuICAgICAgeyBidWJibGVzOiB0cnVlIH0sXG4gICAgKTtcblxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICAgIHRoaXMuX3BhbmVsQ29ubmVjdGVkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gU2JiUGFuZWxFbGVtZW50IGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiUGFuZWxNaXhpblR5cGU+ICYgVDtcbn07XG4iLCJpbXBvcnQgdHlwZSB7IExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLmpzJztcblxuLy8gRGVmaW5lIHRoZSBpbnRlcmZhY2UgZm9yIHRoZSBtaXhpblxuZXhwb3J0IGRlY2xhcmUgY2xhc3MgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW5UeXBlIHtcbiAgcHJvdGVjdGVkIHN0YXJ0VXBkYXRlKCk6IHZvaWQ7XG4gIHByb3RlY3RlZCBjb21wbGV0ZVVwZGF0ZSgpOiB2b2lkO1xufVxuXG4vKipcbiAqIFRoaXMgbWl4aW4gYWxsb3dzIHNjaGVkdWxpbmcgbWFudWFsIHVwZGF0ZXMsIHdoaWNoIGFmZmVjdCB1cGRhdGVDb21wbGV0ZS5cbiAqIEBwYXJhbSBiYXNlIFRoZSBjbGFzcyB0byBleHRlbmQuXG4gKiBAcmV0dXJucyBBIGNsYXNzIGV4dGVuZGVkIHdpdGggdGhlIHNsb3QgY2hpbGQgb2JzZXJ2ZXIgZnVuY3Rpb25hbGl0eS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYlVwZGF0ZVNjaGVkdWxlck1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPExpdEVsZW1lbnQ+PihcbiAgYmFzZTogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiVXBkYXRlU2NoZWR1bGVyTWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJVcGRhdGVTY2hlZHVsZXJFbGVtZW50XG4gICAgZXh0ZW5kcyBiYXNlXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYlVwZGF0ZVNjaGVkdWxlck1peGluVHlwZT5cbiAge1xuICAgIHByaXZhdGUgX3VwZGF0ZVByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoKTtcbiAgICBwcml2YXRlIF91cGRhdGVSZXNvbHZlID0gKCk6IHZvaWQgPT4ge307XG5cbiAgICBwcm90ZWN0ZWQgc3RhcnRVcGRhdGUoKTogdm9pZCB7XG4gICAgICB0aGlzLl91cGRhdGVQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHIpID0+ICh0aGlzLl91cGRhdGVSZXNvbHZlID0gcikpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb21wbGV0ZVVwZGF0ZSgpOiB2b2lkIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVJlc29sdmUoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgZ2V0VXBkYXRlQ29tcGxldGUoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBzdXBlci5nZXRVcGRhdGVDb21wbGV0ZSgpO1xuICAgICAgYXdhaXQgdGhpcy5fdXBkYXRlUHJvbWlzZTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XG4gIHJldHVybiBTYmJVcGRhdGVTY2hlZHVsZXJFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJVcGRhdGVTY2hlZHVsZXJNaXhpblR5cGU+ICZcbiAgICBUO1xufTtcbiJdLCJuYW1lcyI6WyJfX2RlY29yYXRlQ2xhc3MiLCJzdGF0ZSJdLCJtYXBwaW5ncyI6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
@@ -235,7 +235,7 @@ let SbbMapContainerElement = class extends LitElement {
235
235
  icon-name="location-pin-map-small"
236
236
  type="button"
237
237
  @click=${() => this._onScrollButtonClick()}
238
- .inert=${!this._scrollUpButtonVisible}
238
+ ?inert=${!this._scrollUpButtonVisible}
239
239
  >
240
240
  ${i18nMapContainerButtonLabel[this._language.current]}
241
241
  </sbb-tertiary-button>` : nothing}
@@ -257,4 +257,4 @@ SbbMapContainerElement = __decorateClass([
257
257
  export {
258
258
  SbbMapContainerElement
259
259
  };
260
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWNvbnRhaW5lci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL21hcC1jb250YWluZXIvbWFwLWNvbnRhaW5lci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnRlcnNlY3Rpb25Db250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9pbnRlcnNlY3Rpb24tY29udHJvbGxlci5qcyc7XG5pbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCwgbm90aGluZyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaTE4bk1hcENvbnRhaW5lckJ1dHRvbkxhYmVsIH0gZnJvbSAnLi4vY29yZS9pMThuLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vbWFwLWNvbnRhaW5lci5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJy4uL2J1dHRvbi90ZXJ0aWFyeS1idXR0b24uanMnO1xuXG4vKipcbiAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgY29udGFpbmVyIGZvciBtYXBzLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIHNpZGViYXIuXG4gKiBAc2xvdCBtYXAgLSBVc2VkIGZvciBzbG90dGluZyB0aGUgbWFwLlxuICogQGNzc3Byb3AgWy0tc2JiLW1hcC1jb250YWluZXItbWFyZ2luLXN0YXJ0PXZhcigtLXNiYi1oZWFkZXItaGVpZ2h0KV0gLSBUaGUgY29tcG9uZW50XG4gKiBjb21lcyBhbG9uZyB3aXRoIGEgaGVpZ2h0IGNhbGN1bGF0aW9uIHRoYXQgc3VidHJhY3RzIHRoZSBoZWlnaHQgb2YgdGhlIGhlYWRlci5cbiAqIEZvciBzcGVjaWZpYyB1c2UgY2FzZXMsIHRoaXMgdmFyaWFibGUgY2FuIGJlIHVzZWQgdG8gbW9kaWZ5IHRoZSBwcmVzZXQgaGVpZ2h0LlxuICogQGNzc3Byb3AgWy0tc2JiLW1hcC1jb250YWluZXItc2lkZWJhci13aWR0aD16ZXJvLWxhcmdlOjQwMHB4O3dpZGUtdWx0cmE6NDgwcHhdIC0gQ2FuIGJlIHVzZWRcbiAqIHRvIG1vZGlmeSB0aGUgd2lkdGggb2YgdGhlIGxlZnQgc2lkZWJhci5cbiAqIEBjc3Nwcm9wIFstLXNiYi1tYXAtY29udGFpbmVyLW1vYmlsZS1zdGlja3ktYmxvY2stc3RhcnQ9MF0gLSBJZiBlLmcuIGEgaGVhZGVyIHdpdGggYSBmaXhlZCBoZWlnaHRcbiAqIGlzIHBsYWNlZCBiZWZvcmUgdGhlIG1hcC1jb250YWluZXIsIHRoZSBtYXAgc2hvdWxkIGJlIHN0aWNreSByZXNwZWN0aW5nXG4gKiB0aGlzIG9mZnNldCBmcm9tIHRoZSBkb2N1bWVudCdzIHRvcC4gT25seSBhcHBsaWVkIG9uIG1vYmlsZSB2aWV3cy5cbiAqIE1vc3QgY29tbW9ubHkgaXQgY2FuIGJlIHNldCB0byBgdmFyKC0tc2JiLWhlYWRlci1oZWlnaHQpYC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1tYXAtY29udGFpbmVyJylcbmV4cG9ydCBjbGFzcyBTYmJNYXBDb250YWluZXJFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKiBGbGFnIHRvIHNob3cvaGlkZSB0aGUgc2Nyb2xsIHVwIGJ1dHRvbiBpbnNpZGUgdGhlIHNpZGViYXIgb24gbW9iaWxlLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdoaWRlLXNjcm9sbC11cC1idXR0b24nLCByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBoaWRlU2Nyb2xsVXBCdXR0b24gPSBmYWxzZTtcblxuICBAc3RhdGUoKSBwcml2YXRlIF9zY3JvbGxVcEJ1dHRvblZpc2libGUgPSBmYWxzZTtcblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX29ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbkNvbnRyb2xsZXIodGhpcywge1xuICAgIHRhcmdldDogbnVsbCxcbiAgICBjYWxsYmFjazogKGVudHJpZXMpID0+IHRoaXMuX3RvZ2dsZUJ1dHRvblZpc2liaWxpdHlPbkludGVyc2VjdChlbnRyaWVzKSxcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdoaWRlU2Nyb2xsVXBCdXR0b24nKSkge1xuICAgICAgY29uc3QgaW50ZXJzZWN0b3JFbGVtZW50ID0gdGhpcy5faW50ZXJzZWN0b3IoKTtcblxuICAgICAgaWYgKCF0aGlzLmhpZGVTY3JvbGxVcEJ1dHRvbiAmJiBpbnRlcnNlY3RvckVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5fb2JzZXJ2ZXIub2JzZXJ2ZShpbnRlcnNlY3RvckVsZW1lbnQpO1xuICAgICAgfSBlbHNlIGlmIChpbnRlcnNlY3RvckVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5fb2JzZXJ2ZXIudW5vYnNlcnZlKGludGVyc2VjdG9yRWxlbWVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIGlmICghdGhpcy5oaWRlU2Nyb2xsVXBCdXR0b24pIHtcbiAgICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcy5faW50ZXJzZWN0b3IoKSEpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2ludGVyc2VjdG9yKCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignI2ludGVyc2VjdG9yJykgPz8gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdXR0b24gY2xpY2sgY2FsbGJhY2sgdG8gdHJpZ2dlciB0aGUgc2Nyb2xsIHRvIGNvbnRhaW5lciB0b3BcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgX29uU2Nyb2xsQnV0dG9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnRlcnNlY3Rpb24gY2FsbGJhY2suIFRvZ2dsZXMgdGhlIHZpc2liaWxpdHkuXG4gICAqIEBwYXJhbSBlbnRyaWVzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF90b2dnbGVCdXR0b25WaXNpYmlsaXR5T25JbnRlcnNlY3QoZW50cmllczogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeVtdKTogdm9pZCB7XG4gICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgY29uc3QgbWFwSXNIaWRkZW4gPSAhZW50cnkuaXNJbnRlcnNlY3Rpbmc7XG4gICAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1zY3JvbGwtdXAtYnV0dG9uLXZpc2libGUnLCBtYXBJc0hpZGRlbik7XG4gICAgICB0aGlzLl9zY3JvbGxVcEJ1dHRvblZpc2libGUgPSBtYXBJc0hpZGRlbjtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1tYXAtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbWFwLWNvbnRhaW5lcl9fbWFwXCI+XG4gICAgICAgICAgPHNsb3QgbmFtZT1cIm1hcFwiPjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbWFwLWNvbnRhaW5lcl9fc2lkZWJhclwiPlxuICAgICAgICAgIDxzcGFuIGlkPVwiaW50ZXJzZWN0b3JcIj48L3NwYW4+XG5cbiAgICAgICAgICA8c2xvdD48L3Nsb3Q+XG5cbiAgICAgICAgICAkeyF0aGlzLmhpZGVTY3JvbGxVcEJ1dHRvblxuICAgICAgICAgICAgPyBodG1sYDxzYmItdGVydGlhcnktYnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItbWFwLWNvbnRhaW5lcl9fc2lkZWJhci1idXR0b25cIlxuICAgICAgICAgICAgICAgIHNpemU9XCJsXCJcbiAgICAgICAgICAgICAgICBpY29uLW5hbWU9XCJsb2NhdGlvbi1waW4tbWFwLXNtYWxsXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiB0aGlzLl9vblNjcm9sbEJ1dHRvbkNsaWNrKCl9XG4gICAgICAgICAgICAgICAgLmluZXJ0PSR7IXRoaXMuX3Njcm9sbFVwQnV0dG9uVmlzaWJsZX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICR7aTE4bk1hcENvbnRhaW5lckJ1dHRvbkxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgICAgICA8L3NiYi10ZXJ0aWFyeS1idXR0b24+YFxuICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1tYXAtY29udGFpbmVyJzogU2JiTWFwQ29udGFpbmVyRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE0QmEsSUFBQSx5QkFBTixjQUFxQyxXQUFXO0FBQUEsRUFBaEQsY0FBQTtBQUFBLFVBQUEsR0FBQSxTQUFBO0FBS0wsU0FBTyxxQkFBcUI7QUFFbkIsU0FBUSx5QkFBeUI7QUFFbEMsU0FBQSxZQUFZLElBQUksc0JBQXNCLElBQUk7QUFDMUMsU0FBQSxZQUFZLElBQUksdUJBQXVCLE1BQU07QUFBQSxNQUNuRCxRQUFRO0FBQUEsTUFDUixVQUFVLENBQUMsWUFBWSxLQUFLLG1DQUFtQyxPQUFPO0FBQUEsSUFBQSxDQUN2RTtBQUFBLEVBQUE7QUFBQSxFQUVrQixXQUFXLG1CQUErQztBQUMzRSxVQUFNLFdBQVcsaUJBQWlCO0FBRTlCLFFBQUEsa0JBQWtCLElBQUksb0JBQW9CLEdBQUc7QUFDekMsWUFBQSxxQkFBcUIsS0FBSztBQUU1QixVQUFBLENBQUMsS0FBSyxzQkFBc0Isb0JBQW9CO0FBQzdDLGFBQUEsVUFBVSxRQUFRLGtCQUFrQjtBQUFBLGlCQUNoQyxvQkFBb0I7QUFDeEIsYUFBQSxVQUFVLFVBQVUsa0JBQWtCO0FBQUEsTUFDN0M7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBRW1CLGFBQWEsbUJBQStDO0FBQzdFLFVBQU0sYUFBYSxpQkFBaUI7QUFDaEMsUUFBQSxDQUFDLEtBQUssb0JBQW9CO0FBQzVCLFdBQUssVUFBVSxRQUFRLEtBQUssYUFBZSxDQUFBO0FBQUEsSUFDN0M7QUFBQSxFQUNGO0FBQUEsRUFFUSxlQUFtQzs7QUFDekMsYUFBTyxVQUFLLGVBQUwsbUJBQWlCLGNBQWMsb0JBQW1CO0FBQUEsRUFDM0Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTVEsdUJBQTZCO0FBQ25DLFNBQUssZUFBZSxFQUFFLFVBQVUsU0FBVSxDQUFBO0FBQUEsRUFDNUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPUSxtQ0FBbUMsU0FBNEM7QUFDN0UsWUFBQSxRQUFRLENBQUMsVUFBVTtBQUNuQixZQUFBLGNBQWMsQ0FBQyxNQUFNO0FBQ3RCLFdBQUEsZ0JBQWdCLGlDQUFpQyxXQUFXO0FBQ2pFLFdBQUsseUJBQXlCO0FBQUEsSUFBQSxDQUMvQjtBQUFBLEVBQ0g7QUFBQSxFQUVtQixTQUF5QjtBQUNuQyxXQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsWUFVQyxDQUFDLEtBQUsscUJBQ0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQUtXLE1BQU0sS0FBSyxzQkFBc0I7QUFBQSx5QkFDakMsQ0FBQyxLQUFLLHNCQUFzQjtBQUFBO0FBQUEsa0JBRW5DLDRCQUE0QixLQUFLLFVBQVUsT0FBTyxDQUFDO0FBQUEsd0NBRXZELE9BQU87QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUluQjtBQUNGO0FBeEZhLHVCQUNZLFNBQXlCO0FBSXpDLGdCQUFBO0FBQUEsRUFETixTQUFTLEVBQUUsV0FBVyx5QkFBeUIsU0FBUyxNQUFNLE1BQU0sU0FBUztBQUFBLEdBSm5FLHVCQUtKLFdBQUEsc0JBQUEsQ0FBQTtBQUVVLGdCQUFBO0FBQUEsRUFBaEIsTUFBTTtBQUFBLEdBUEksdUJBT00sV0FBQSwwQkFBQSxDQUFBO0FBUE4seUJBQU4sZ0JBQUE7QUFBQSxFQUROLGNBQWMsbUJBQW1CO0FBQUEsR0FDckIsc0JBQUE7In0=
260
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWNvbnRhaW5lci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL21hcC1jb250YWluZXIvbWFwLWNvbnRhaW5lci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnRlcnNlY3Rpb25Db250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9pbnRlcnNlY3Rpb24tY29udHJvbGxlci5qcyc7XG5pbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCwgbm90aGluZyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaTE4bk1hcENvbnRhaW5lckJ1dHRvbkxhYmVsIH0gZnJvbSAnLi4vY29yZS9pMThuLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vbWFwLWNvbnRhaW5lci5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJy4uL2J1dHRvbi90ZXJ0aWFyeS1idXR0b24uanMnO1xuXG4vKipcbiAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgY29udGFpbmVyIGZvciBtYXBzLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIHNpZGViYXIuXG4gKiBAc2xvdCBtYXAgLSBVc2VkIGZvciBzbG90dGluZyB0aGUgbWFwLlxuICogQGNzc3Byb3AgWy0tc2JiLW1hcC1jb250YWluZXItbWFyZ2luLXN0YXJ0PXZhcigtLXNiYi1oZWFkZXItaGVpZ2h0KV0gLSBUaGUgY29tcG9uZW50XG4gKiBjb21lcyBhbG9uZyB3aXRoIGEgaGVpZ2h0IGNhbGN1bGF0aW9uIHRoYXQgc3VidHJhY3RzIHRoZSBoZWlnaHQgb2YgdGhlIGhlYWRlci5cbiAqIEZvciBzcGVjaWZpYyB1c2UgY2FzZXMsIHRoaXMgdmFyaWFibGUgY2FuIGJlIHVzZWQgdG8gbW9kaWZ5IHRoZSBwcmVzZXQgaGVpZ2h0LlxuICogQGNzc3Byb3AgWy0tc2JiLW1hcC1jb250YWluZXItc2lkZWJhci13aWR0aD16ZXJvLWxhcmdlOjQwMHB4O3dpZGUtdWx0cmE6NDgwcHhdIC0gQ2FuIGJlIHVzZWRcbiAqIHRvIG1vZGlmeSB0aGUgd2lkdGggb2YgdGhlIGxlZnQgc2lkZWJhci5cbiAqIEBjc3Nwcm9wIFstLXNiYi1tYXAtY29udGFpbmVyLW1vYmlsZS1zdGlja3ktYmxvY2stc3RhcnQ9MF0gLSBJZiBlLmcuIGEgaGVhZGVyIHdpdGggYSBmaXhlZCBoZWlnaHRcbiAqIGlzIHBsYWNlZCBiZWZvcmUgdGhlIG1hcC1jb250YWluZXIsIHRoZSBtYXAgc2hvdWxkIGJlIHN0aWNreSByZXNwZWN0aW5nXG4gKiB0aGlzIG9mZnNldCBmcm9tIHRoZSBkb2N1bWVudCdzIHRvcC4gT25seSBhcHBsaWVkIG9uIG1vYmlsZSB2aWV3cy5cbiAqIE1vc3QgY29tbW9ubHkgaXQgY2FuIGJlIHNldCB0byBgdmFyKC0tc2JiLWhlYWRlci1oZWlnaHQpYC5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi1tYXAtY29udGFpbmVyJylcbmV4cG9ydCBjbGFzcyBTYmJNYXBDb250YWluZXJFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKiBGbGFnIHRvIHNob3cvaGlkZSB0aGUgc2Nyb2xsIHVwIGJ1dHRvbiBpbnNpZGUgdGhlIHNpZGViYXIgb24gbW9iaWxlLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdoaWRlLXNjcm9sbC11cC1idXR0b24nLCByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBoaWRlU2Nyb2xsVXBCdXR0b24gPSBmYWxzZTtcblxuICBAc3RhdGUoKSBwcml2YXRlIF9zY3JvbGxVcEJ1dHRvblZpc2libGUgPSBmYWxzZTtcblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX29ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbkNvbnRyb2xsZXIodGhpcywge1xuICAgIHRhcmdldDogbnVsbCxcbiAgICBjYWxsYmFjazogKGVudHJpZXMpID0+IHRoaXMuX3RvZ2dsZUJ1dHRvblZpc2liaWxpdHlPbkludGVyc2VjdChlbnRyaWVzKSxcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdoaWRlU2Nyb2xsVXBCdXR0b24nKSkge1xuICAgICAgY29uc3QgaW50ZXJzZWN0b3JFbGVtZW50ID0gdGhpcy5faW50ZXJzZWN0b3IoKTtcblxuICAgICAgaWYgKCF0aGlzLmhpZGVTY3JvbGxVcEJ1dHRvbiAmJiBpbnRlcnNlY3RvckVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5fb2JzZXJ2ZXIub2JzZXJ2ZShpbnRlcnNlY3RvckVsZW1lbnQpO1xuICAgICAgfSBlbHNlIGlmIChpbnRlcnNlY3RvckVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5fb2JzZXJ2ZXIudW5vYnNlcnZlKGludGVyc2VjdG9yRWxlbWVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIGlmICghdGhpcy5oaWRlU2Nyb2xsVXBCdXR0b24pIHtcbiAgICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcy5faW50ZXJzZWN0b3IoKSEpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2ludGVyc2VjdG9yKCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcignI2ludGVyc2VjdG9yJykgPz8gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdXR0b24gY2xpY2sgY2FsbGJhY2sgdG8gdHJpZ2dlciB0aGUgc2Nyb2xsIHRvIGNvbnRhaW5lciB0b3BcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgX29uU2Nyb2xsQnV0dG9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnRlcnNlY3Rpb24gY2FsbGJhY2suIFRvZ2dsZXMgdGhlIHZpc2liaWxpdHkuXG4gICAqIEBwYXJhbSBlbnRyaWVzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF90b2dnbGVCdXR0b25WaXNpYmlsaXR5T25JbnRlcnNlY3QoZW50cmllczogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeVtdKTogdm9pZCB7XG4gICAgZW50cmllcy5mb3JFYWNoKChlbnRyeSkgPT4ge1xuICAgICAgY29uc3QgbWFwSXNIaWRkZW4gPSAhZW50cnkuaXNJbnRlcnNlY3Rpbmc7XG4gICAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1zY3JvbGwtdXAtYnV0dG9uLXZpc2libGUnLCBtYXBJc0hpZGRlbik7XG4gICAgICB0aGlzLl9zY3JvbGxVcEJ1dHRvblZpc2libGUgPSBtYXBJc0hpZGRlbjtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1tYXAtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbWFwLWNvbnRhaW5lcl9fbWFwXCI+XG4gICAgICAgICAgPHNsb3QgbmFtZT1cIm1hcFwiPjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbWFwLWNvbnRhaW5lcl9fc2lkZWJhclwiPlxuICAgICAgICAgIDxzcGFuIGlkPVwiaW50ZXJzZWN0b3JcIj48L3NwYW4+XG5cbiAgICAgICAgICA8c2xvdD48L3Nsb3Q+XG5cbiAgICAgICAgICAkeyF0aGlzLmhpZGVTY3JvbGxVcEJ1dHRvblxuICAgICAgICAgICAgPyBodG1sYDxzYmItdGVydGlhcnktYnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItbWFwLWNvbnRhaW5lcl9fc2lkZWJhci1idXR0b25cIlxuICAgICAgICAgICAgICAgIHNpemU9XCJsXCJcbiAgICAgICAgICAgICAgICBpY29uLW5hbWU9XCJsb2NhdGlvbi1waW4tbWFwLXNtYWxsXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBAY2xpY2s9JHsoKSA9PiB0aGlzLl9vblNjcm9sbEJ1dHRvbkNsaWNrKCl9XG4gICAgICAgICAgICAgICAgP2luZXJ0PSR7IXRoaXMuX3Njcm9sbFVwQnV0dG9uVmlzaWJsZX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICR7aTE4bk1hcENvbnRhaW5lckJ1dHRvbkxhYmVsW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgICAgICA8L3NiYi10ZXJ0aWFyeS1idXR0b24+YFxuICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1tYXAtY29udGFpbmVyJzogU2JiTWFwQ29udGFpbmVyRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE0QmEsSUFBQSx5QkFBTixjQUFxQyxXQUFXO0FBQUEsRUFBaEQsY0FBQTtBQUFBLFVBQUEsR0FBQSxTQUFBO0FBS0wsU0FBTyxxQkFBcUI7QUFFbkIsU0FBUSx5QkFBeUI7QUFFbEMsU0FBQSxZQUFZLElBQUksc0JBQXNCLElBQUk7QUFDMUMsU0FBQSxZQUFZLElBQUksdUJBQXVCLE1BQU07QUFBQSxNQUNuRCxRQUFRO0FBQUEsTUFDUixVQUFVLENBQUMsWUFBWSxLQUFLLG1DQUFtQyxPQUFPO0FBQUEsSUFBQSxDQUN2RTtBQUFBLEVBQUE7QUFBQSxFQUVrQixXQUFXLG1CQUErQztBQUMzRSxVQUFNLFdBQVcsaUJBQWlCO0FBRTlCLFFBQUEsa0JBQWtCLElBQUksb0JBQW9CLEdBQUc7QUFDekMsWUFBQSxxQkFBcUIsS0FBSztBQUU1QixVQUFBLENBQUMsS0FBSyxzQkFBc0Isb0JBQW9CO0FBQzdDLGFBQUEsVUFBVSxRQUFRLGtCQUFrQjtBQUFBLGlCQUNoQyxvQkFBb0I7QUFDeEIsYUFBQSxVQUFVLFVBQVUsa0JBQWtCO0FBQUEsTUFDN0M7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBRW1CLGFBQWEsbUJBQStDO0FBQzdFLFVBQU0sYUFBYSxpQkFBaUI7QUFDaEMsUUFBQSxDQUFDLEtBQUssb0JBQW9CO0FBQzVCLFdBQUssVUFBVSxRQUFRLEtBQUssYUFBZSxDQUFBO0FBQUEsSUFDN0M7QUFBQSxFQUNGO0FBQUEsRUFFUSxlQUFtQzs7QUFDekMsYUFBTyxVQUFLLGVBQUwsbUJBQWlCLGNBQWMsb0JBQW1CO0FBQUEsRUFDM0Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTVEsdUJBQTZCO0FBQ25DLFNBQUssZUFBZSxFQUFFLFVBQVUsU0FBVSxDQUFBO0FBQUEsRUFDNUM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPUSxtQ0FBbUMsU0FBNEM7QUFDN0UsWUFBQSxRQUFRLENBQUMsVUFBVTtBQUNuQixZQUFBLGNBQWMsQ0FBQyxNQUFNO0FBQ3RCLFdBQUEsZ0JBQWdCLGlDQUFpQyxXQUFXO0FBQ2pFLFdBQUsseUJBQXlCO0FBQUEsSUFBQSxDQUMvQjtBQUFBLEVBQ0g7QUFBQSxFQUVtQixTQUF5QjtBQUNuQyxXQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsWUFVQyxDQUFDLEtBQUsscUJBQ0o7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHlCQUtXLE1BQU0sS0FBSyxzQkFBc0I7QUFBQSx5QkFDakMsQ0FBQyxLQUFLLHNCQUFzQjtBQUFBO0FBQUEsa0JBRW5DLDRCQUE0QixLQUFLLFVBQVUsT0FBTyxDQUFDO0FBQUEsd0NBRXZELE9BQU87QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUluQjtBQUNGO0FBeEZhLHVCQUNZLFNBQXlCO0FBSXpDLGdCQUFBO0FBQUEsRUFETixTQUFTLEVBQUUsV0FBVyx5QkFBeUIsU0FBUyxNQUFNLE1BQU0sU0FBUztBQUFBLEdBSm5FLHVCQUtKLFdBQUEsc0JBQUEsQ0FBQTtBQUVVLGdCQUFBO0FBQUEsRUFBaEIsTUFBTTtBQUFBLEdBUEksdUJBT00sV0FBQSwwQkFBQSxDQUFBO0FBUE4seUJBQU4sZ0JBQUE7QUFBQSxFQUROLGNBQWMsbUJBQW1CO0FBQUEsR0FDckIsc0JBQUE7In0=
@@ -331,7 +331,7 @@ let SbbSelectionExpansionPanelElement = class extends SbbHydrationMixin(LitEleme
331
331
  </div>
332
332
  <div
333
333
  class="sbb-selection-expansion-panel__content--wrapper"
334
- .inert=${this._state !== "opened"}
334
+ ?inert=${this._state !== "opened"}
335
335
  @animationend=${(event) => this._onAnimationEnd(event)}
336
336
  >
337
337
  <div class="sbb-selection-expansion-panel__content">
@@ -369,4 +369,4 @@ SbbSelectionExpansionPanelElement = __decorateClass([
369
369
  export {
370
370
  SbbSelectionExpansionPanelElement
371
371
  };
372
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3NlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwvc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBpc1NlcnZlciwgdHlwZSBQcm9wZXJ0eVZhbHVlcywgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJDaGVja2JveEdyb3VwRWxlbWVudCwgU2JiQ2hlY2tib3hQYW5lbEVsZW1lbnQgfSBmcm9tICcuLi9jaGVja2JveC5qcyc7XG5pbXBvcnQgeyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIsIFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgc2xvdFN0YXRlIH0gZnJvbSAnLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJy4uL2NvcmUvZXZlbnRpbmcuanMnO1xuaW1wb3J0IHsgaTE4bkNvbGxhcHNlZCwgaTE4bkV4cGFuZGVkIH0gZnJvbSAnLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiT3BlbmVkQ2xvc2VkU3RhdGUsIFNiYlN0YXRlQ2hhbmdlIH0gZnJvbSAnLi4vY29yZS9pbnRlcmZhY2VzLmpzJztcbmltcG9ydCB7IFNiYkh5ZHJhdGlvbk1peGluIH0gZnJvbSAnLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJSYWRpb0J1dHRvbkdyb3VwRWxlbWVudCwgU2JiUmFkaW9CdXR0b25QYW5lbEVsZW1lbnQgfSBmcm9tICcuLi9yYWRpby1idXR0b24uanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vZGl2aWRlci5qcyc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYW4gZXhwYW5kYWJsZSBwYW5lbCBjb25uZWN0ZWQgdG8gYSBgc2JiLWNoZWNrYm94YCBvciB0byBhIGBzYmItcmFkaW8tYnV0dG9uYC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBgc2JiLWNoZWNrYm94YCBvciBgc2JiLXJhZGlvLWJ1dHRvbmAgZWxlbWVudHMgdG8gdGhlIGBzYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbGAuXG4gKiBAc2xvdCBjb250ZW50IC0gVXNlIHRoaXMgc2xvdCB0byBwcm92aWRlIGN1c3RvbSBjb250ZW50IGZvciB0aGUgcGFuZWwgKG9wdGlvbmFsKS5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHdpbGxPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbnRlbnQgc2VjdGlvbiBzdGFydHMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgY29udGVudCBzZWN0aW9uIGlzIG9wZW5lZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHdpbGxDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBjb250ZW50IHNlY3Rpb24gYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkaWRDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBjb250ZW50IHNlY3Rpb24gaXMgY2xvc2VkLlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwnKVxuQHNsb3RTdGF0ZSgpXG5leHBvcnQgY2xhc3MgU2JiU2VsZWN0aW9uRXhwYW5zaW9uUGFuZWxFbGVtZW50IGV4dGVuZHMgU2JiSHlkcmF0aW9uTWl4aW4oTGl0RWxlbWVudCkge1xuICAvLyBGSVhNRSBpbmhlcml0aW5nIGZyb20gU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgcmVxdWlyZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXdjL2N1c3RvbS1lbGVtZW50cy1tYW5pZmVzdC9pc3N1ZXMvMjUzXG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50czogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICB3aWxsT3BlbjogJ3dpbGxPcGVuJyxcbiAgICBkaWRPcGVuOiAnZGlkT3BlbicsXG4gICAgd2lsbENsb3NlOiAnd2lsbENsb3NlJyxcbiAgICBkaWRDbG9zZTogJ2RpZENsb3NlJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogVGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHBhbmVsLiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgY29sb3I6ICd3aGl0ZScgfCAnbWlsaycgPSAnd2hpdGUnO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBjb250ZW50IHNlY3Rpb24gaXMgYWx3YXlzIHZpc2libGUuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2ZvcmNlLW9wZW4nLCB0eXBlOiBCb29sZWFuIH0pIHB1YmxpYyBmb3JjZU9wZW4gPSBmYWxzZTtcblxuICAvKiogV2hldGhlciB0aGUgdW5zZWxlY3RlZCBwYW5lbCBoYXMgYSBib3JkZXIuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSkgcHVibGljIGJvcmRlcmxlc3MgPSBmYWxzZTtcblxuICAvKiogVGhlIHN0YXRlIG9mIHRoZSBzZWxlY3Rpb24gcGFuZWwuICovXG4gIEBzdGF0ZSgpXG4gIHByaXZhdGUgc2V0IF9zdGF0ZShzdGF0ZTogU2JiT3BlbmVkQ2xvc2VkU3RhdGUpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScsIHN0YXRlKTtcbiAgfVxuICBwcml2YXRlIGdldCBfc3RhdGUoKTogU2JiT3BlbmVkQ2xvc2VkU3RhdGUge1xuICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScpIGFzIFNiYk9wZW5lZENsb3NlZFN0YXRlO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHNlbGVjdGlvbiBwYW5lbCBpcyBjaGVja2VkLiAqL1xuICBwcml2YXRlIHNldCBfY2hlY2tlZChjaGVja2VkOiBib29sZWFuKSB7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtY2hlY2tlZCcsIGNoZWNrZWQpO1xuICB9XG4gIHByaXZhdGUgZ2V0IF9jaGVja2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhc0F0dHJpYnV0ZSgnZGF0YS1jaGVja2VkJyk7XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgc2VsZWN0aW9uIHBhbmVsIGlzIGRpc2FibGVkLiAqL1xuICBwcml2YXRlIHNldCBfZGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1kaXNhYmxlZCcsIGRpc2FibGVkKTtcbiAgfVxuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29udGVudCBzZWN0aW9uIHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiAqL1xuICBwcml2YXRlIF93aWxsT3BlbjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYlNlbGVjdGlvbkV4cGFuc2lvblBhbmVsRWxlbWVudC5ldmVudHMud2lsbE9wZW4sXG4gICk7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb250ZW50IHNlY3Rpb24gaXMgb3BlbmVkLiAqL1xuICBwcml2YXRlIF9kaWRPcGVuOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiU2VsZWN0aW9uRXhwYW5zaW9uUGFuZWxFbGVtZW50LmV2ZW50cy5kaWRPcGVuLFxuICApO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29udGVudCBzZWN0aW9uIGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLiAqL1xuICBwcml2YXRlIF93aWxsQ2xvc2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJTZWxlY3Rpb25FeHBhbnNpb25QYW5lbEVsZW1lbnQuZXZlbnRzLndpbGxDbG9zZSxcbiAgKTtcblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbnRlbnQgc2VjdGlvbiBpcyBjbG9zZWQuICovXG4gIHByaXZhdGUgX2RpZENsb3NlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiU2VsZWN0aW9uRXhwYW5zaW9uUGFuZWxFbGVtZW50LmV2ZW50cy5kaWRDbG9zZSxcbiAgKTtcblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2Fib3J0ID0gbmV3IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfaW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfc2l6ZUF0dHJpYnV0ZU9ic2VydmVyID0gIWlzU2VydmVyXG4gICAgPyBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zTGlzdDogTXV0YXRpb25SZWNvcmRbXSkgPT5cbiAgICAgICAgdGhpcy5fb25TaXplQXR0cmlidXRlc0NoYW5nZShtdXRhdGlvbnNMaXN0KSxcbiAgICAgIClcbiAgICA6IG51bGw7XG5cbiAgLyoqIFdoZXRoZXIgaXQgaGFzIGFuIGV4cGFuZGFibGUgY29udGVudCAqL1xuICBwcml2YXRlIGdldCBfaGFzQ29udGVudCgpOiBib29sZWFuIHtcbiAgICAvLyBXZSBjYW5ub3QgdXNlIHRoZSBOYW1lZFNsb3RzIGJlY2F1c2UgaXQncyB0b28gc2xvdyB0byBpbml0aWFsaXplXG4gICAgcmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvckFsbD8uKCdbc2xvdD1cImNvbnRlbnRcIl0nKS5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX2dyb3VwKCk6IFNiYlJhZGlvQnV0dG9uR3JvdXBFbGVtZW50IHwgU2JiQ2hlY2tib3hHcm91cEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jbG9zZXN0KCdzYmItcmFkaW8tYnV0dG9uLWdyb3VwLCBzYmItY2hlY2tib3gtZ3JvdXAnKSBhc1xuICAgICAgfCBTYmJSYWRpb0J1dHRvbkdyb3VwRWxlbWVudFxuICAgICAgfCBTYmJDaGVja2JveEdyb3VwRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdwYW5lbENvbm5lY3RlZCcsIHRoaXMuX2luaXRGcm9tSW5wdXQuYmluZCh0aGlzKSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9hYm9ydC5zaWduYWwsXG4gICAgfSk7XG5cbiAgICB0aGlzLl9zdGF0ZSB8fD0gJ2Nsb3NlZCc7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9zaXplQXR0cmlidXRlT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZm9yY2VPcGVuJykpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVN0YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgdGhpcy5faW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlU3RhdGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9oYXNDb250ZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZm9yY2VPcGVuIHx8IHRoaXMuX2NoZWNrZWQpIHtcbiAgICAgIHRoaXMuX29wZW4oIXRoaXMuX2luaXRpYWxpemVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fY2xvc2UoKTtcbiAgICB9XG4gICAgdGhpcy5fdXBkYXRlRXhwYW5kZWRMYWJlbCh0aGlzLmZvcmNlT3BlbiB8fCB0aGlzLl9jaGVja2VkKTtcbiAgfVxuXG4gIHByaXZhdGUgX29wZW4oc2tpcEFuaW1hdGlvbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N0YXRlICE9PSAnY2xvc2VkJyAmJiB0aGlzLl9zdGF0ZSAhPT0gJ2Nsb3NpbmcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5fd2lsbE9wZW4uZW1pdCgpO1xuXG4gICAgaWYgKHNraXBBbmltYXRpb24pIHtcbiAgICAgIHRoaXMuX3N0YXRlID0gJ29wZW5lZCc7XG4gICAgICB0aGlzLl9kaWRPcGVuLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhdGUgIT09ICdvcGVuZWQnICYmIHRoaXMuX3N0YXRlICE9PSAnb3BlbmluZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICB0aGlzLl93aWxsQ2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdEZyb21JbnB1dChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBTYmJDaGVja2JveFBhbmVsRWxlbWVudCB8IFNiYlJhZGlvQnV0dG9uUGFuZWxFbGVtZW50O1xuXG4gICAgdGhpcy5fY2hlY2tlZCA9IGlucHV0LmNoZWNrZWQ7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBpbnB1dC5kaXNhYmxlZDtcbiAgICB0aGlzLl9zaXplQXR0cmlidXRlT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAvLyBUaGUgc2l6ZSBvZiB0aGUgaW5uZXIgcGFuZWwgY2FuIGNoYW5nZSBkdWUgZGlyZWN0IGNoYW5nZSBvbiB0aGUgcGFuZWwgb3IgZHVlIHRvIGNoYW5nZSBvZiB0aGUgaW5wdXQtZ3JvdXAgc2l6ZS5cbiAgICB0aGlzLl9zaXplQXR0cmlidXRlT2JzZXJ2ZXI/Lm9ic2VydmUoaW5wdXQsIHsgYXR0cmlidXRlRmlsdGVyOiBbJ3NpemUnXSB9KTtcbiAgICB0aGlzLl91cGRhdGVTdGF0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZGF0YS1zaXplIGluIHR3byBjYXNlczpcbiAgICogLSBpZiB0aGVyZSdzIG5vIGdyb3VwLCBzbyB0aGUgc2l6ZSBjaGFuZ2UgY29tZXMgZGlyZWN0bHkgZnJvbSBhIGNoYW5nZSBvbiB0aGUgaW5uZXIgcGFuZWw7XG4gICAqIC0gaWYgdGhlcmUncyBhIHdyYXBwZXIgZ3JvdXAgYW5kIGl0cyBzaXplIGNoYW5nZXMsIHN5bmNpbmcgaXQgd2l0aCB0aGUgcGFuZWwgc2l6ZS5cbiAgICpcbiAgICogT24gdGhlIG90aGVyIGhhbmQsIGlmIHRoZXJlJ3MgYSB3cmFwcGVyIGdyb3VwIGFuZCB0aGUgc2l6ZSBjaGFuZ2VzIG9uIHRoZSBpbm5lciBwYW5lbCwgdGhlIGRhdGEtc2l6ZSBkb2Vzbid0IGNoYW5nZS5cbiAgICovXG4gIHByaXZhdGUgX29uU2l6ZUF0dHJpYnV0ZXNDaGFuZ2UobXV0YXRpb25zTGlzdDogTXV0YXRpb25SZWNvcmRbXSk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zTGlzdCkge1xuICAgICAgaWYgKG11dGF0aW9uLmF0dHJpYnV0ZU5hbWUgPT09ICdzaXplJykge1xuICAgICAgICBjb25zdCBncm91cCA9IHRoaXMuX2dyb3VwO1xuICAgICAgICBjb25zdCBzaXplID0gKG11dGF0aW9uLnRhcmdldCBhcyBIVE1MRWxlbWVudCkuZ2V0QXR0cmlidXRlKCdzaXplJykhO1xuICAgICAgICBpZiAoIWdyb3VwIHx8IGdyb3VwLnNpemUgPT09IHNpemUpIHtcbiAgICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnZGF0YS1zaXplJywgc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbklucHV0U3RhdGVDaGFuZ2UoZXZlbnQ6IEN1c3RvbUV2ZW50PFNiYlN0YXRlQ2hhbmdlPik6IHZvaWQge1xuICAgIGlmIChldmVudC5kZXRhaWwudHlwZSA9PT0gJ2Rpc2FibGVkJykge1xuICAgICAgdGhpcy5fZGlzYWJsZWQgPSBldmVudC5kZXRhaWwuZGlzYWJsZWQ7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmIChldmVudC5kZXRhaWwudHlwZSAhPT0gJ2NoZWNrZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fY2hlY2tlZCA9IGV2ZW50LmRldGFpbC5jaGVja2VkO1xuICAgIHRoaXMuX3VwZGF0ZVN0YXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9vbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4tb3BhY2l0eScgJiYgdGhpcy5fc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5fc3RhdGUgPSAnb3BlbmVkJztcbiAgICAgIHRoaXMuX2RpZE9wZW4uZW1pdCgpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLl9zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9zdGF0ZSA9ICdjbG9zZWQnO1xuICAgICAgdGhpcy5fZGlkQ2xvc2UuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3VwZGF0ZUV4cGFuZGVkTGFiZWwob3BlbjogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuaHlkcmF0aW9uQ29tcGxldGU7XG5cbiAgICBjb25zdCBwYW5lbEVsZW1lbnQgPSB0aGlzLnF1ZXJ5U2VsZWN0b3I8U2JiUmFkaW9CdXR0b25QYW5lbEVsZW1lbnQgfCBTYmJDaGVja2JveFBhbmVsRWxlbWVudD4oXG4gICAgICAnc2JiLXJhZGlvLWJ1dHRvbi1wYW5lbCwgc2JiLWNoZWNrYm94LXBhbmVsJyxcbiAgICApO1xuICAgIGlmICghcGFuZWxFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9oYXNDb250ZW50KSB7XG4gICAgICBwYW5lbEVsZW1lbnQuZXhwYW5zaW9uU3RhdGUgPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBwYW5lbEVsZW1lbnQuZXhwYW5zaW9uU3RhdGUgPSBvcGVuXG4gICAgICA/ICcsICcgKyBpMThuRXhwYW5kZWRbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF1cbiAgICAgIDogJywgJyArIGkxOG5Db2xsYXBzZWRbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWxfX2lucHV0XCIgQHN0YXRlQ2hhbmdlPSR7dGhpcy5fb25JbnB1dFN0YXRlQ2hhbmdlfT5cbiAgICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbF9fY29udGVudC0td3JhcHBlclwiXG4gICAgICAgICAgLmluZXJ0PSR7dGhpcy5fc3RhdGUgIT09ICdvcGVuZWQnfVxuICAgICAgICAgIEBhbmltYXRpb25lbmQ9JHsoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSA9PiB0aGlzLl9vbkFuaW1hdGlvbkVuZChldmVudCl9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWxfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgIDxzYmItZGl2aWRlcj48L3NiYi1kaXZpZGVyPlxuICAgICAgICAgICAgPHNsb3QgbmFtZT1cImNvbnRlbnRcIj48L3Nsb3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwnOiBTYmJTZWxlY3Rpb25FeHBhbnNpb25QYW5lbEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJzdGF0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTZCTyxJQUFNLG9DQUFOLGNBQWdELGtCQUFrQixVQUFVLEVBQUU7QUFBQSxFQUE5RSxjQUFBO0FBQUEsVUFBQSxHQUFBLFNBQUE7QUFXTyxTQUFPLFFBQTBCO0FBR1MsU0FBTyxZQUFZO0FBRzdCLFNBQU8sYUFBYTtBQXlCaEUsU0FBUSxZQUFnQyxJQUFJO0FBQUEsTUFDMUM7QUFBQSxNQUNBLGtDQUFrQyxPQUFPO0FBQUEsSUFBQTtBQUkzQyxTQUFRLFdBQStCLElBQUk7QUFBQSxNQUN6QztBQUFBLE1BQ0Esa0NBQWtDLE9BQU87QUFBQSxJQUFBO0FBSTNDLFNBQVEsYUFBaUMsSUFBSTtBQUFBLE1BQzNDO0FBQUEsTUFDQSxrQ0FBa0MsT0FBTztBQUFBLElBQUE7QUFJM0MsU0FBUSxZQUFnQyxJQUFJO0FBQUEsTUFDMUM7QUFBQSxNQUNBLGtDQUFrQyxPQUFPO0FBQUEsSUFBQTtBQUduQyxTQUFBLFlBQVksSUFBSSxzQkFBc0IsSUFBSTtBQUMxQyxTQUFBLFNBQVMsSUFBSSw0QkFBNEIsSUFBSTtBQUNyRCxTQUFRLGVBQXdCO0FBQ3hCLFNBQUEseUJBQXlCLENBQUMsV0FDOUIsSUFBSTtBQUFBLE1BQWlCLENBQUMsa0JBQ3BCLEtBQUssd0JBQXdCLGFBQWE7QUFBQSxJQUU1QyxJQUFBO0FBQUEsRUFBQTtBQUFBLEVBbkRKLElBQVksT0FBT0EsUUFBNkI7QUFDekMsU0FBQSxhQUFhLGNBQWNBLE1BQUs7QUFBQSxFQUN2QztBQUFBLEVBQ0EsSUFBWSxTQUErQjtBQUNs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
372
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3NlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwvc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBpc1NlcnZlciwgdHlwZSBQcm9wZXJ0eVZhbHVlcywgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5LCBzdGF0ZSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJDaGVja2JveEdyb3VwRWxlbWVudCwgU2JiQ2hlY2tib3hQYW5lbEVsZW1lbnQgfSBmcm9tICcuLi9jaGVja2JveC5qcyc7XG5pbXBvcnQgeyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIsIFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgc2xvdFN0YXRlIH0gZnJvbSAnLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJy4uL2NvcmUvZXZlbnRpbmcuanMnO1xuaW1wb3J0IHsgaTE4bkNvbGxhcHNlZCwgaTE4bkV4cGFuZGVkIH0gZnJvbSAnLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiT3BlbmVkQ2xvc2VkU3RhdGUsIFNiYlN0YXRlQ2hhbmdlIH0gZnJvbSAnLi4vY29yZS9pbnRlcmZhY2VzLmpzJztcbmltcG9ydCB7IFNiYkh5ZHJhdGlvbk1peGluIH0gZnJvbSAnLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJSYWRpb0J1dHRvbkdyb3VwRWxlbWVudCwgU2JiUmFkaW9CdXR0b25QYW5lbEVsZW1lbnQgfSBmcm9tICcuLi9yYWRpby1idXR0b24uanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnLi4vZGl2aWRlci5qcyc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYW4gZXhwYW5kYWJsZSBwYW5lbCBjb25uZWN0ZWQgdG8gYSBgc2JiLWNoZWNrYm94YCBvciB0byBhIGBzYmItcmFkaW8tYnV0dG9uYC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBgc2JiLWNoZWNrYm94YCBvciBgc2JiLXJhZGlvLWJ1dHRvbmAgZWxlbWVudHMgdG8gdGhlIGBzYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbGAuXG4gKiBAc2xvdCBjb250ZW50IC0gVXNlIHRoaXMgc2xvdCB0byBwcm92aWRlIGN1c3RvbSBjb250ZW50IGZvciB0aGUgcGFuZWwgKG9wdGlvbmFsKS5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHdpbGxPcGVuIC0gRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbnRlbnQgc2VjdGlvbiBzdGFydHMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IGRpZE9wZW4gLSBFbWl0cyB3aGVuZXZlciB0aGUgY29udGVudCBzZWN0aW9uIGlzIG9wZW5lZC5cbiAqIEBldmVudCB7Q3VzdG9tRXZlbnQ8dm9pZD59IHdpbGxDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBjb250ZW50IHNlY3Rpb24gYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PHZvaWQ+fSBkaWRDbG9zZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBjb250ZW50IHNlY3Rpb24gaXMgY2xvc2VkLlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwnKVxuQHNsb3RTdGF0ZSgpXG5leHBvcnQgY2xhc3MgU2JiU2VsZWN0aW9uRXhwYW5zaW9uUGFuZWxFbGVtZW50IGV4dGVuZHMgU2JiSHlkcmF0aW9uTWl4aW4oTGl0RWxlbWVudCkge1xuICAvLyBGSVhNRSBpbmhlcml0aW5nIGZyb20gU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgcmVxdWlyZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXdjL2N1c3RvbS1lbGVtZW50cy1tYW5pZmVzdC9pc3N1ZXMvMjUzXG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50czogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICB3aWxsT3BlbjogJ3dpbGxPcGVuJyxcbiAgICBkaWRPcGVuOiAnZGlkT3BlbicsXG4gICAgd2lsbENsb3NlOiAnd2lsbENsb3NlJyxcbiAgICBkaWRDbG9zZTogJ2RpZENsb3NlJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogVGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhlIHBhbmVsLiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgY29sb3I6ICd3aGl0ZScgfCAnbWlsaycgPSAnd2hpdGUnO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBjb250ZW50IHNlY3Rpb24gaXMgYWx3YXlzIHZpc2libGUuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2ZvcmNlLW9wZW4nLCB0eXBlOiBCb29sZWFuIH0pIHB1YmxpYyBmb3JjZU9wZW4gPSBmYWxzZTtcblxuICAvKiogV2hldGhlciB0aGUgdW5zZWxlY3RlZCBwYW5lbCBoYXMgYSBib3JkZXIuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUsIHR5cGU6IEJvb2xlYW4gfSkgcHVibGljIGJvcmRlcmxlc3MgPSBmYWxzZTtcblxuICAvKiogVGhlIHN0YXRlIG9mIHRoZSBzZWxlY3Rpb24gcGFuZWwuICovXG4gIEBzdGF0ZSgpXG4gIHByaXZhdGUgc2V0IF9zdGF0ZShzdGF0ZTogU2JiT3BlbmVkQ2xvc2VkU3RhdGUpIHtcbiAgICB0aGlzLnNldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScsIHN0YXRlKTtcbiAgfVxuICBwcml2YXRlIGdldCBfc3RhdGUoKTogU2JiT3BlbmVkQ2xvc2VkU3RhdGUge1xuICAgIHJldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1zdGF0ZScpIGFzIFNiYk9wZW5lZENsb3NlZFN0YXRlO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHNlbGVjdGlvbiBwYW5lbCBpcyBjaGVja2VkLiAqL1xuICBwcml2YXRlIHNldCBfY2hlY2tlZChjaGVja2VkOiBib29sZWFuKSB7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtY2hlY2tlZCcsIGNoZWNrZWQpO1xuICB9XG4gIHByaXZhdGUgZ2V0IF9jaGVja2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhc0F0dHJpYnV0ZSgnZGF0YS1jaGVja2VkJyk7XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgc2VsZWN0aW9uIHBhbmVsIGlzIGRpc2FibGVkLiAqL1xuICBwcml2YXRlIHNldCBfZGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1kaXNhYmxlZCcsIGRpc2FibGVkKTtcbiAgfVxuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29udGVudCBzZWN0aW9uIHN0YXJ0cyB0aGUgb3BlbmluZyB0cmFuc2l0aW9uLiAqL1xuICBwcml2YXRlIF93aWxsT3BlbjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcihcbiAgICB0aGlzLFxuICAgIFNiYlNlbGVjdGlvbkV4cGFuc2lvblBhbmVsRWxlbWVudC5ldmVudHMud2lsbE9wZW4sXG4gICk7XG5cbiAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb250ZW50IHNlY3Rpb24gaXMgb3BlbmVkLiAqL1xuICBwcml2YXRlIF9kaWRPcGVuOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiU2VsZWN0aW9uRXhwYW5zaW9uUGFuZWxFbGVtZW50LmV2ZW50cy5kaWRPcGVuLFxuICApO1xuXG4gIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29udGVudCBzZWN0aW9uIGJlZ2lucyB0aGUgY2xvc2luZyB0cmFuc2l0aW9uLiAqL1xuICBwcml2YXRlIF93aWxsQ2xvc2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoXG4gICAgdGhpcyxcbiAgICBTYmJTZWxlY3Rpb25FeHBhbnNpb25QYW5lbEVsZW1lbnQuZXZlbnRzLndpbGxDbG9zZSxcbiAgKTtcblxuICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbnRlbnQgc2VjdGlvbiBpcyBjbG9zZWQuICovXG4gIHByaXZhdGUgX2RpZENsb3NlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKFxuICAgIHRoaXMsXG4gICAgU2JiU2VsZWN0aW9uRXhwYW5zaW9uUGFuZWxFbGVtZW50LmV2ZW50cy5kaWRDbG9zZSxcbiAgKTtcblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2Fib3J0ID0gbmV3IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfaW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfc2l6ZUF0dHJpYnV0ZU9ic2VydmVyID0gIWlzU2VydmVyXG4gICAgPyBuZXcgTXV0YXRpb25PYnNlcnZlcigobXV0YXRpb25zTGlzdDogTXV0YXRpb25SZWNvcmRbXSkgPT5cbiAgICAgICAgdGhpcy5fb25TaXplQXR0cmlidXRlc0NoYW5nZShtdXRhdGlvbnNMaXN0KSxcbiAgICAgIClcbiAgICA6IG51bGw7XG5cbiAgLyoqIFdoZXRoZXIgaXQgaGFzIGFuIGV4cGFuZGFibGUgY29udGVudCAqL1xuICBwcml2YXRlIGdldCBfaGFzQ29udGVudCgpOiBib29sZWFuIHtcbiAgICAvLyBXZSBjYW5ub3QgdXNlIHRoZSBOYW1lZFNsb3RzIGJlY2F1c2UgaXQncyB0b28gc2xvdyB0byBpbml0aWFsaXplXG4gICAgcmV0dXJuIHRoaXMucXVlcnlTZWxlY3RvckFsbD8uKCdbc2xvdD1cImNvbnRlbnRcIl0nKS5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX2dyb3VwKCk6IFNiYlJhZGlvQnV0dG9uR3JvdXBFbGVtZW50IHwgU2JiQ2hlY2tib3hHcm91cEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jbG9zZXN0KCdzYmItcmFkaW8tYnV0dG9uLWdyb3VwLCBzYmItY2hlY2tib3gtZ3JvdXAnKSBhc1xuICAgICAgfCBTYmJSYWRpb0J1dHRvbkdyb3VwRWxlbWVudFxuICAgICAgfCBTYmJDaGVja2JveEdyb3VwRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdwYW5lbENvbm5lY3RlZCcsIHRoaXMuX2luaXRGcm9tSW5wdXQuYmluZCh0aGlzKSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl9hYm9ydC5zaWduYWwsXG4gICAgfSk7XG5cbiAgICB0aGlzLl9zdGF0ZSB8fD0gJ2Nsb3NlZCc7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9zaXplQXR0cmlidXRlT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZm9yY2VPcGVuJykpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVN0YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgdGhpcy5faW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlU3RhdGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9oYXNDb250ZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZm9yY2VPcGVuIHx8IHRoaXMuX2NoZWNrZWQpIHtcbiAgICAgIHRoaXMuX29wZW4oIXRoaXMuX2luaXRpYWxpemVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fY2xvc2UoKTtcbiAgICB9XG4gICAgdGhpcy5fdXBkYXRlRXhwYW5kZWRMYWJlbCh0aGlzLmZvcmNlT3BlbiB8fCB0aGlzLl9jaGVja2VkKTtcbiAgfVxuXG4gIHByaXZhdGUgX29wZW4oc2tpcEFuaW1hdGlvbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N0YXRlICE9PSAnY2xvc2VkJyAmJiB0aGlzLl9zdGF0ZSAhPT0gJ2Nsb3NpbmcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgdGhpcy5fd2lsbE9wZW4uZW1pdCgpO1xuXG4gICAgaWYgKHNraXBBbmltYXRpb24pIHtcbiAgICAgIHRoaXMuX3N0YXRlID0gJ29wZW5lZCc7XG4gICAgICB0aGlzLl9kaWRPcGVuLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhdGUgIT09ICdvcGVuZWQnICYmIHRoaXMuX3N0YXRlICE9PSAnb3BlbmluZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICB0aGlzLl93aWxsQ2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdEZyb21JbnB1dChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBTYmJDaGVja2JveFBhbmVsRWxlbWVudCB8IFNiYlJhZGlvQnV0dG9uUGFuZWxFbGVtZW50O1xuXG4gICAgdGhpcy5fY2hlY2tlZCA9IGlucHV0LmNoZWNrZWQ7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBpbnB1dC5kaXNhYmxlZDtcbiAgICB0aGlzLl9zaXplQXR0cmlidXRlT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAvLyBUaGUgc2l6ZSBvZiB0aGUgaW5uZXIgcGFuZWwgY2FuIGNoYW5nZSBkdWUgZGlyZWN0IGNoYW5nZSBvbiB0aGUgcGFuZWwgb3IgZHVlIHRvIGNoYW5nZSBvZiB0aGUgaW5wdXQtZ3JvdXAgc2l6ZS5cbiAgICB0aGlzLl9zaXplQXR0cmlidXRlT2JzZXJ2ZXI/Lm9ic2VydmUoaW5wdXQsIHsgYXR0cmlidXRlRmlsdGVyOiBbJ3NpemUnXSB9KTtcbiAgICB0aGlzLl91cGRhdGVTdGF0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZGF0YS1zaXplIGluIHR3byBjYXNlczpcbiAgICogLSBpZiB0aGVyZSdzIG5vIGdyb3VwLCBzbyB0aGUgc2l6ZSBjaGFuZ2UgY29tZXMgZGlyZWN0bHkgZnJvbSBhIGNoYW5nZSBvbiB0aGUgaW5uZXIgcGFuZWw7XG4gICAqIC0gaWYgdGhlcmUncyBhIHdyYXBwZXIgZ3JvdXAgYW5kIGl0cyBzaXplIGNoYW5nZXMsIHN5bmNpbmcgaXQgd2l0aCB0aGUgcGFuZWwgc2l6ZS5cbiAgICpcbiAgICogT24gdGhlIG90aGVyIGhhbmQsIGlmIHRoZXJlJ3MgYSB3cmFwcGVyIGdyb3VwIGFuZCB0aGUgc2l6ZSBjaGFuZ2VzIG9uIHRoZSBpbm5lciBwYW5lbCwgdGhlIGRhdGEtc2l6ZSBkb2Vzbid0IGNoYW5nZS5cbiAgICovXG4gIHByaXZhdGUgX29uU2l6ZUF0dHJpYnV0ZXNDaGFuZ2UobXV0YXRpb25zTGlzdDogTXV0YXRpb25SZWNvcmRbXSk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zTGlzdCkge1xuICAgICAgaWYgKG11dGF0aW9uLmF0dHJpYnV0ZU5hbWUgPT09ICdzaXplJykge1xuICAgICAgICBjb25zdCBncm91cCA9IHRoaXMuX2dyb3VwO1xuICAgICAgICBjb25zdCBzaXplID0gKG11dGF0aW9uLnRhcmdldCBhcyBIVE1MRWxlbWVudCkuZ2V0QXR0cmlidXRlKCdzaXplJykhO1xuICAgICAgICBpZiAoIWdyb3VwIHx8IGdyb3VwLnNpemUgPT09IHNpemUpIHtcbiAgICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnZGF0YS1zaXplJywgc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbklucHV0U3RhdGVDaGFuZ2UoZXZlbnQ6IEN1c3RvbUV2ZW50PFNiYlN0YXRlQ2hhbmdlPik6IHZvaWQge1xuICAgIGlmIChldmVudC5kZXRhaWwudHlwZSA9PT0gJ2Rpc2FibGVkJykge1xuICAgICAgdGhpcy5fZGlzYWJsZWQgPSBldmVudC5kZXRhaWwuZGlzYWJsZWQ7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmIChldmVudC5kZXRhaWwudHlwZSAhPT0gJ2NoZWNrZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fY2hlY2tlZCA9IGV2ZW50LmRldGFpbC5jaGVja2VkO1xuICAgIHRoaXMuX3VwZGF0ZVN0YXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9vbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4tb3BhY2l0eScgJiYgdGhpcy5fc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5fc3RhdGUgPSAnb3BlbmVkJztcbiAgICAgIHRoaXMuX2RpZE9wZW4uZW1pdCgpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLl9zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9zdGF0ZSA9ICdjbG9zZWQnO1xuICAgICAgdGhpcy5fZGlkQ2xvc2UuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3VwZGF0ZUV4cGFuZGVkTGFiZWwob3BlbjogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuaHlkcmF0aW9uQ29tcGxldGU7XG5cbiAgICBjb25zdCBwYW5lbEVsZW1lbnQgPSB0aGlzLnF1ZXJ5U2VsZWN0b3I8U2JiUmFkaW9CdXR0b25QYW5lbEVsZW1lbnQgfCBTYmJDaGVja2JveFBhbmVsRWxlbWVudD4oXG4gICAgICAnc2JiLXJhZGlvLWJ1dHRvbi1wYW5lbCwgc2JiLWNoZWNrYm94LXBhbmVsJyxcbiAgICApO1xuICAgIGlmICghcGFuZWxFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9oYXNDb250ZW50KSB7XG4gICAgICBwYW5lbEVsZW1lbnQuZXhwYW5zaW9uU3RhdGUgPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBwYW5lbEVsZW1lbnQuZXhwYW5zaW9uU3RhdGUgPSBvcGVuXG4gICAgICA/ICcsICcgKyBpMThuRXhwYW5kZWRbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF1cbiAgICAgIDogJywgJyArIGkxOG5Db2xsYXBzZWRbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWxfX2lucHV0XCIgQHN0YXRlQ2hhbmdlPSR7dGhpcy5fb25JbnB1dFN0YXRlQ2hhbmdlfT5cbiAgICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbF9fY29udGVudC0td3JhcHBlclwiXG4gICAgICAgICAgP2luZXJ0PSR7dGhpcy5fc3RhdGUgIT09ICdvcGVuZWQnfVxuICAgICAgICAgIEBhbmltYXRpb25lbmQ9JHsoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSA9PiB0aGlzLl9vbkFuaW1hdGlvbkVuZChldmVudCl9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWxfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgIDxzYmItZGl2aWRlcj48L3NiYi1kaXZpZGVyPlxuICAgICAgICAgICAgPHNsb3QgbmFtZT1cImNvbnRlbnRcIj48L3Nsb3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwnOiBTYmJTZWxlY3Rpb25FeHBhbnNpb25QYW5lbEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJzdGF0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTZCTyxJQUFNLG9DQUFOLGNBQWdELGtCQUFrQixVQUFVLEVBQUU7QUFBQSxFQUE5RSxjQUFBO0FBQUEsVUFBQSxHQUFBLFNBQUE7QUFXTyxTQUFPLFFBQTBCO0FBR1MsU0FBTyxZQUFZO0FBRzdCLFNBQU8sYUFBYTtBQXlCaEUsU0FBUSxZQUFnQyxJQUFJO0FBQUEsTUFDMUM7QUFBQSxNQUNBLGtDQUFrQyxPQUFPO0FBQUEsSUFBQTtBQUkzQyxTQUFRLFdBQStCLElBQUk7QUFBQSxNQUN6QztBQUFBLE1BQ0Esa0NBQWtDLE9BQU87QUFBQSxJQUFBO0FBSTNDLFNBQVEsYUFBaUMsSUFBSTtBQUFBLE1BQzNDO0FBQUEsTUFDQSxrQ0FBa0MsT0FBTztBQUFBLElBQUE7QUFJM0MsU0FBUSxZQUFnQyxJQUFJO0FBQUEsTUFDMUM7QUFBQSxNQUNBLGtDQUFrQyxPQUFPO0FBQUEsSUFBQTtBQUduQyxTQUFBLFlBQVksSUFBSSxzQkFBc0IsSUFBSTtBQUMxQyxTQUFBLFNBQVMsSUFBSSw0QkFBNEIsSUFBSTtBQUNyRCxTQUFRLGVBQXdCO0FBQ3hCLFNBQUEseUJBQXlCLENBQUMsV0FDOUIsSUFBSTtBQUFBLE1BQWlCLENBQUMsa0JBQ3BCLEtBQUssd0JBQXdCLGFBQWE7QUFBQSxJQUU1QyxJQUFBO0FBQUEsRUFBQTtBQUFBLEVBbkRKLElBQVksT0FBT0EsUUFBNkI7QUFDekMsU0FBQSxhQUFhLGNBQWNBLE1BQUs7QUFBQSxFQUN2QztBQUFBLEVBQ0EsSUFBWSxTQUErQjtBQUNs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
@@ -177,7 +177,7 @@ let SbbToggleOptionElement = class extends SbbIconNameMixin(LitElement) {
177
177
  id="sbb-toggle-option-id"
178
178
  aria-hidden="true"
179
179
  tabindex="-1"
180
- .inert=${this.checked}
180
+ ?inert=${this.checked}
181
181
  ?disabled=${this.disabled}
182
182
  .checked=${this.checked || nothing}
183
183
  .value=${this.value || nothing}
@@ -212,4 +212,4 @@ SbbToggleOptionElement = __decorateClass([
212
212
  export {
213
213
  SbbToggleOptionElement
214
214
  };
215
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLW9wdGlvbi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RvZ2dsZS90b2dnbGUtb3B0aW9uL3RvZ2dsZS1vcHRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGh0bWwsIExpdEVsZW1lbnQsIG5vdGhpbmcgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaG9zdEF0dHJpYnV0ZXMsIHNsb3RTdGF0ZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBzZXRPclJlbW92ZUF0dHJpYnV0ZSB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi8uLi9pY29uLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiVG9nZ2xlRWxlbWVudCB9IGZyb20gJy4uL3RvZ2dsZS5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RvZ2dsZS1vcHRpb24uc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIHRvZ2dsZSBvcHRpb24gd2l0aGluIGEgYHNiYi10b2dnbGVgLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIGxhYmVsIG9mIHRoZSB0b2dnbGUgb3B0aW9uLlxuICogQHNsb3QgaWNvbiAtIFNsb3QgdXNlZCB0byByZW5kZXIgdGhlIGBzYmItaWNvbmAuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItdG9nZ2xlLW9wdGlvbicpXG5AaG9zdEF0dHJpYnV0ZXMoe1xuICByb2xlOiAncmFkaW8nLFxufSlcbkBzbG90U3RhdGUoKVxuZXhwb3J0IGNsYXNzIFNiYlRvZ2dsZU9wdGlvbkVsZW1lbnQgZXh0ZW5kcyBTYmJJY29uTmFtZU1peGluKExpdEVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHRvZ2dsZS1vcHRpb24gaXMgY2hlY2tlZC4gKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgY2hlY2tlZCA9IGZhbHNlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSB0b2dnbGUgb3B0aW9uIGlzIGRpc2FibGVkLiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBWYWx1ZSBvZiB0b2dnbGUtb3B0aW9uLiAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl92YWx1ZSA9IGAke3ZhbHVlfWA7XG4gIH1cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuICBwcml2YXRlIF92YWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgcHJpdmF0ZSBfdG9nZ2xlPzogU2JiVG9nZ2xlRWxlbWVudDtcbiAgcHJpdmF0ZSBfYWJvcnQgPSBuZXcgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyKHRoaXMpO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGNvbnN0IHNpZ25hbCA9IHRoaXMuX2Fib3J0LnNpZ25hbDtcblxuICAgIC8vIFdlIG5lZWQgdG8gbGlzdGVuIGlucHV0IGV2ZW50IG9uIGhvc3QgYXMgd2l0aCBrZXlib2FyZCBuYXZpZ2F0aW9uXG4gICAgLy8gdGhlIElucHV0IEV2ZW50IGlzIHRyaWdnZXJlZCBmcm9tIHNiYi10b2dnbGUuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsICgpID0+IHRoaXMuX2hhbmRsZUlucHV0KCksIHsgc2lnbmFsIH0pO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJ2xhYmVsJyk/LmNsaWNrKCksIHtcbiAgICAgIHNpZ25hbCxcbiAgICB9KTtcbiAgICAvLyBXZSBjYW4gdXNlIGNsb3Nlc3QgaGVyZSwgYXMgd2UgZXhwZWN0IHRoZSBwYXJlbnQgc2JiLXRvZ2dsZSB0byBiZSBpbiBsaWdodCBET00uXG4gICAgdGhpcy5fdG9nZ2xlID0gdGhpcy5jbG9zZXN0Py4oJ3NiYi10b2dnbGUnKSA/PyB1bmRlZmluZWQ7XG4gICAgdGhpcy5fdmVyaWZ5VGFiaW5kZXgoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnY2hlY2tlZCcpKSB7XG4gICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnYXJpYS1jaGVja2VkJywgYCR7dGhpcy5jaGVja2VkfWApO1xuICAgICAgdGhpcy5fdmVyaWZ5VGFiaW5kZXgoKTtcbiAgICAgIGlmICh0aGlzLmNoZWNrZWQpIHtcbiAgICAgICAgdGhpcy5fdW5jaGVja090aGVyT3B0aW9ucygpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVEaXNhYmxlZENoYW5nZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3VuY2hlY2tPdGhlck9wdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5fdG9nZ2xlPy5vcHRpb25zLmZpbHRlcigobykgPT4gbyAhPT0gdGhpcykuZm9yRWFjaCgobykgPT4gKG8uY2hlY2tlZCA9IGZhbHNlKSk7XG4gICAgdGhpcy5fdG9nZ2xlPy51cGRhdGVQaWxsUG9zaXRpb24oZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlRGlzYWJsZWRDaGFuZ2UoKTogdm9pZCB7XG4gICAgLy8gRW5mb3JjZSBkaXNhYmxlZCBzdGF0ZSBmcm9tIHBhcmVudC5cbiAgICBpZiAoIXRoaXMuX3RvZ2dsZSkge1xuICAgICAgLy8gSWdub3JlIGlsbGVnYWwgc3RhdGUuIE91ciBleHBlY3RhdGlvbiAgaXMgdGhhdCBhIHNiYi10b2dnbGUtb3B0aW9uXG4gICAgICAvLyBhbHdheXMgaGFzIGEgcGFyZW50IHNiYi10b2dnbGUuXG4gICAgfSBlbHNlIGlmICh0aGlzLl90b2dnbGUuZGlzYWJsZWQgJiYgIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuX3RvZ2dsZS5kaXNhYmxlZCAmJiB0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmRpc2FibGVkID0gZmFsc2U7XG4gICAgfVxuICAgIHNldE9yUmVtb3ZlQXR0cmlidXRlKHRoaXMsICdhcmlhLWRpc2FibGVkJywgdGhpcy5kaXNhYmxlZCA/IGB0cnVlYCA6IG51bGwpO1xuICAgIHRoaXMuX3ZlcmlmeVRhYmluZGV4KCk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVJbnB1dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNoZWNrZWQgPSB0cnVlO1xuICAgIHRoaXMuX3VuY2hlY2tPdGhlck9wdGlvbnMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3ZlcmlmeVRhYmluZGV4KCk6IHZvaWQge1xuICAgIHRoaXMudGFiSW5kZXggPSB0aGlzLmNoZWNrZWQgJiYgIXRoaXMuZGlzYWJsZWQgPyAwIDogLTE7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICBpZD1cInNiYi10b2dnbGUtb3B0aW9uLWlkXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgIC5pbmVydD0ke3RoaXMuY2hlY2tlZH1cbiAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH1cbiAgICAgICAgLmNoZWNrZWQ9JHt0aGlzLmNoZWNrZWQgfHwgbm90aGluZ31cbiAgICAgICAgLnZhbHVlPSR7dGhpcy52YWx1ZSB8fCBub3RoaW5nfVxuICAgICAgICBAY2xpY2s9JHsoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4gZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCl9XG4gICAgICAvPlxuICAgICAgPGxhYmVsIGNsYXNzPVwic2JiLXRvZ2dsZS1vcHRpb25cIiBmb3I9XCJzYmItdG9nZ2xlLW9wdGlvbi1pZFwiPlxuICAgICAgICAke3RoaXMucmVuZGVySWNvblNsb3QoKX1cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItdG9nZ2xlLW9wdGlvbl9fbGFiZWxcIj5cbiAgICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRvZ2dsZS1vcHRpb24nOiBTYmJUb2dnbGVPcHRpb25FbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1Qk8sSUFBTSx5QkFBTixjQUFxQyxpQkFBaUIsVUFBVSxFQUFFO0FBQUEsRUFBbEUsY0FBQTtBQUFBLFVBQUEsR0FBQSxTQUFBO0FBS0wsU0FBTyxVQUFVO0FBSWpCLFNBQU8sV0FBb0I7QUFVM0IsU0FBUSxTQUFpQjtBQUdqQixTQUFBLFNBQVMsSUFBSSw0QkFBNEIsSUFBSTtBQUFBLEVBQUE7QUFBQSxFQVRyRCxJQUFXLE1BQU0sT0FBZTtBQUN6QixTQUFBLFNBQVMsR0FBRyxLQUFLO0FBQUEsRUFDeEI7QUFBQSxFQUNBLElBQVcsUUFBZ0I7QUFDekIsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBLEVBTWdCLG9CQUEwQjs7QUFDeEMsVUFBTSxrQkFBa0I7QUFDbEIsVUFBQSxTQUFTLEtBQUssT0FBTztBQUl0QixTQUFBLGlCQUFpQixTQUFTLE1BQU0sS0FBSyxnQkFBZ0IsRUFBRSxRQUFRO0FBQy9ELFNBQUEsaUJBQWlCLFNBQVM7O0FBQU0sY0FBQUEsTUFBQSxLQUFLLFdBQVksY0FBYyxPQUFPLE1BQXRDLGdCQUFBQSxJQUF5QztBQUFBLE9BQVM7QUFBQSxNQUNyRjtBQUFBLElBQUEsQ0FDRDtBQUVELFNBQUssWUFBVSxVQUFLLFlBQUwsOEJBQWUsa0JBQWlCO0FBQy9DLFNBQUssZ0JBQWdCO0FBQUEsRUFDdkI7QUFBQSxFQUVtQixXQUFXLG1CQUErQztBQUMzRSxVQUFNLFdBQVcsaUJBQWlCO0FBRTlCLFFBQUEsa0JBQWtCLElBQUksU0FBUyxHQUFHO0FBQ3BDLFdBQUssYUFBYSxnQkFBZ0IsR0FBRyxLQUFLLE9BQU8sRUFBRTtBQUNuRCxXQUFLLGdCQUFnQjtBQUNyQixVQUFJLEtBQUssU0FBUztBQUNoQixhQUFLLHFCQUFxQjtBQUFBLE1BQzVCO0FBQUEsSUFDRjtBQUNJLFFBQUEsa0JBQWtCLElBQUksVUFBVSxHQUFHO0FBQ3JDLFdBQUssc0JBQXNCO0FBQUEsSUFDN0I7QUFBQSxFQUNGO0FBQUEsRUFFUSx1QkFBNkI7O0FBQ25DLGVBQUssWUFBTCxtQkFBYyxRQUFRLE9BQU8sQ0FBQyxNQUFNLE1BQU0sTUFBTSxRQUFRLENBQUMsTUFBTyxFQUFFLFVBQVU7QUFDdkUsZUFBQSxZQUFBLG1CQUFTLG1CQUFtQjtBQUFBLEVBQ25DO0FBQUEsRUFFUSx3QkFBOEI7QUFFaEMsUUFBQSxDQUFDLEtBQUssUUFBUztBQUFBLGFBR1IsS0FBSyxRQUFRLFlBQVksQ0FBQyxLQUFLLFVBQVU7QUFDbEQsV0FBSyxXQUFXO0FBQUEsSUFBQSxXQUNQLENBQUMsS0FBSyxRQUFRLFlBQVksS0FBSyxVQUFVO0FBQ2xELFdBQUssV0FBVztBQUFBLElBQ2xCO0FBQ0EseUJBQXFCLE1BQU0saUJBQWlCLEtBQUssV0FBVyxTQUFTLElBQUk7QUFDekUsU0FBSyxnQkFBZ0I7QUFBQSxFQUN2QjtBQUFBLEVBRVEsZUFBcUI7QUFDM0IsUUFBSSxLQUFLLFVBQVU7QUFDakI7QUFBQSxJQUNGO0FBQ0EsU0FBSyxVQUFVO0FBQ2YsU0FBSyxxQkFBcUI7QUFBQSxFQUM1QjtBQUFBLEVBRVEsa0JBQXdCO0FBQzlCLFNBQUssV0FBVyxLQUFLLFdBQVcsQ0FBQyxLQUFLLFdBQVcsSUFBSTtBQUFBLEVBQ3ZEO0FBQUEsRUFFbUIsU0FBeUI7QUFDbkMsV0FBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFNTSxLQUFLLE9BQU87QUFBQSxvQkFDVCxLQUFLLFFBQVE7QUFBQSxtQkFDZCxLQUFLLFdBQVcsT0FBTztBQUFBLGlCQUN6QixLQUFLLFNBQVMsT0FBTztBQUFBLGlCQUNyQixDQUFDLFVBQXdCLE1BQU0saUJBQWlCO0FBQUE7QUFBQTtBQUFBLFVBR3ZELEtBQUssZ0JBQWdCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTTdCO0FBQ0Y7QUExR2EsdUJBQ1ksU0FBeUI7QUFJekMsZ0JBQUE7QUFBQSxFQUROLFNBQVMsRUFBRSxTQUFTLE1BQU0sTUFBTSxTQUFTO0FBQUEsR0FKL0IsdUJBS0osV0FBQSxXQUFBLENBQUE7QUFJQSxnQkFBQTtBQUFBLEVBRE4sU0FBUyxFQUFFLFNBQVMsTUFBTSxNQUFNLFNBQVM7QUFBQSxHQVIvQix1QkFTSixXQUFBLFlBQUEsQ0FBQTtBQUlJLGdCQUFBO0FBQUEsRUFEVixTQUFTO0FBQUEsR0FaQyx1QkFhQSxXQUFBLFNBQUEsQ0FBQTtBQWJBLHlCQUFOLGdCQUFBO0FBQUEsRUFMTixjQUFjLG1CQUFtQjtBQUFBLEVBQ2pDLGVBQWU7QUFBQSxJQUNkLE1BQU07QUFBQSxFQUFBLENBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxHQUNFLHNCQUFBOyJ9
215
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLW9wdGlvbi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RvZ2dsZS90b2dnbGUtb3B0aW9uL3RvZ2dsZS1vcHRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGh0bWwsIExpdEVsZW1lbnQsIG5vdGhpbmcgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaG9zdEF0dHJpYnV0ZXMsIHNsb3RTdGF0ZSB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBzZXRPclJlbW92ZUF0dHJpYnV0ZSB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB7IFNiYkljb25OYW1lTWl4aW4gfSBmcm9tICcuLi8uLi9pY29uLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiVG9nZ2xlRWxlbWVudCB9IGZyb20gJy4uL3RvZ2dsZS5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RvZ2dsZS1vcHRpb24uc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIHRvZ2dsZSBvcHRpb24gd2l0aGluIGEgYHNiYi10b2dnbGVgLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIGxhYmVsIG9mIHRoZSB0b2dnbGUgb3B0aW9uLlxuICogQHNsb3QgaWNvbiAtIFNsb3QgdXNlZCB0byByZW5kZXIgdGhlIGBzYmItaWNvbmAuXG4gKi9cbkBjdXN0b21FbGVtZW50KCdzYmItdG9nZ2xlLW9wdGlvbicpXG5AaG9zdEF0dHJpYnV0ZXMoe1xuICByb2xlOiAncmFkaW8nLFxufSlcbkBzbG90U3RhdGUoKVxuZXhwb3J0IGNsYXNzIFNiYlRvZ2dsZU9wdGlvbkVsZW1lbnQgZXh0ZW5kcyBTYmJJY29uTmFtZU1peGluKExpdEVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHRvZ2dsZS1vcHRpb24gaXMgY2hlY2tlZC4gKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgY2hlY2tlZCA9IGZhbHNlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSB0b2dnbGUgb3B0aW9uIGlzIGRpc2FibGVkLiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBWYWx1ZSBvZiB0b2dnbGUtb3B0aW9uLiAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl92YWx1ZSA9IGAke3ZhbHVlfWA7XG4gIH1cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuICBwcml2YXRlIF92YWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgcHJpdmF0ZSBfdG9nZ2xlPzogU2JiVG9nZ2xlRWxlbWVudDtcbiAgcHJpdmF0ZSBfYWJvcnQgPSBuZXcgU2JiQ29ubmVjdGVkQWJvcnRDb250cm9sbGVyKHRoaXMpO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIGNvbnN0IHNpZ25hbCA9IHRoaXMuX2Fib3J0LnNpZ25hbDtcblxuICAgIC8vIFdlIG5lZWQgdG8gbGlzdGVuIGlucHV0IGV2ZW50IG9uIGhvc3QgYXMgd2l0aCBrZXlib2FyZCBuYXZpZ2F0aW9uXG4gICAgLy8gdGhlIElucHV0IEV2ZW50IGlzIHRyaWdnZXJlZCBmcm9tIHNiYi10b2dnbGUuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsICgpID0+IHRoaXMuX2hhbmRsZUlucHV0KCksIHsgc2lnbmFsIH0pO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJ2xhYmVsJyk/LmNsaWNrKCksIHtcbiAgICAgIHNpZ25hbCxcbiAgICB9KTtcbiAgICAvLyBXZSBjYW4gdXNlIGNsb3Nlc3QgaGVyZSwgYXMgd2UgZXhwZWN0IHRoZSBwYXJlbnQgc2JiLXRvZ2dsZSB0byBiZSBpbiBsaWdodCBET00uXG4gICAgdGhpcy5fdG9nZ2xlID0gdGhpcy5jbG9zZXN0Py4oJ3NiYi10b2dnbGUnKSA/PyB1bmRlZmluZWQ7XG4gICAgdGhpcy5fdmVyaWZ5VGFiaW5kZXgoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnY2hlY2tlZCcpKSB7XG4gICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnYXJpYS1jaGVja2VkJywgYCR7dGhpcy5jaGVja2VkfWApO1xuICAgICAgdGhpcy5fdmVyaWZ5VGFiaW5kZXgoKTtcbiAgICAgIGlmICh0aGlzLmNoZWNrZWQpIHtcbiAgICAgICAgdGhpcy5fdW5jaGVja090aGVyT3B0aW9ucygpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVEaXNhYmxlZENoYW5nZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3VuY2hlY2tPdGhlck9wdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5fdG9nZ2xlPy5vcHRpb25zLmZpbHRlcigobykgPT4gbyAhPT0gdGhpcykuZm9yRWFjaCgobykgPT4gKG8uY2hlY2tlZCA9IGZhbHNlKSk7XG4gICAgdGhpcy5fdG9nZ2xlPy51cGRhdGVQaWxsUG9zaXRpb24oZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlRGlzYWJsZWRDaGFuZ2UoKTogdm9pZCB7XG4gICAgLy8gRW5mb3JjZSBkaXNhYmxlZCBzdGF0ZSBmcm9tIHBhcmVudC5cbiAgICBpZiAoIXRoaXMuX3RvZ2dsZSkge1xuICAgICAgLy8gSWdub3JlIGlsbGVnYWwgc3RhdGUuIE91ciBleHBlY3RhdGlvbiAgaXMgdGhhdCBhIHNiYi10b2dnbGUtb3B0aW9uXG4gICAgICAvLyBhbHdheXMgaGFzIGEgcGFyZW50IHNiYi10b2dnbGUuXG4gICAgfSBlbHNlIGlmICh0aGlzLl90b2dnbGUuZGlzYWJsZWQgJiYgIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuX3RvZ2dsZS5kaXNhYmxlZCAmJiB0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmRpc2FibGVkID0gZmFsc2U7XG4gICAgfVxuICAgIHNldE9yUmVtb3ZlQXR0cmlidXRlKHRoaXMsICdhcmlhLWRpc2FibGVkJywgdGhpcy5kaXNhYmxlZCA/IGB0cnVlYCA6IG51bGwpO1xuICAgIHRoaXMuX3ZlcmlmeVRhYmluZGV4KCk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVJbnB1dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNoZWNrZWQgPSB0cnVlO1xuICAgIHRoaXMuX3VuY2hlY2tPdGhlck9wdGlvbnMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3ZlcmlmeVRhYmluZGV4KCk6IHZvaWQge1xuICAgIHRoaXMudGFiSW5kZXggPSB0aGlzLmNoZWNrZWQgJiYgIXRoaXMuZGlzYWJsZWQgPyAwIDogLTE7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICBpZD1cInNiYi10b2dnbGUtb3B0aW9uLWlkXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgID9pbmVydD0ke3RoaXMuY2hlY2tlZH1cbiAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZH1cbiAgICAgICAgLmNoZWNrZWQ9JHt0aGlzLmNoZWNrZWQgfHwgbm90aGluZ31cbiAgICAgICAgLnZhbHVlPSR7dGhpcy52YWx1ZSB8fCBub3RoaW5nfVxuICAgICAgICBAY2xpY2s9JHsoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4gZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCl9XG4gICAgICAvPlxuICAgICAgPGxhYmVsIGNsYXNzPVwic2JiLXRvZ2dsZS1vcHRpb25cIiBmb3I9XCJzYmItdG9nZ2xlLW9wdGlvbi1pZFwiPlxuICAgICAgICAke3RoaXMucmVuZGVySWNvblNsb3QoKX1cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItdG9nZ2xlLW9wdGlvbl9fbGFiZWxcIj5cbiAgICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRvZ2dsZS1vcHRpb24nOiBTYmJUb2dnbGVPcHRpb25FbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1Qk8sSUFBTSx5QkFBTixjQUFxQyxpQkFBaUIsVUFBVSxFQUFFO0FBQUEsRUFBbEUsY0FBQTtBQUFBLFVBQUEsR0FBQSxTQUFBO0FBS0wsU0FBTyxVQUFVO0FBSWpCLFNBQU8sV0FBb0I7QUFVM0IsU0FBUSxTQUFpQjtBQUdqQixTQUFBLFNBQVMsSUFBSSw0QkFBNEIsSUFBSTtBQUFBLEVBQUE7QUFBQSxFQVRyRCxJQUFXLE1BQU0sT0FBZTtBQUN6QixTQUFBLFNBQVMsR0FBRyxLQUFLO0FBQUEsRUFDeEI7QUFBQSxFQUNBLElBQVcsUUFBZ0I7QUFDekIsV0FBTyxLQUFLO0FBQUEsRUFDZDtBQUFBLEVBTWdCLG9CQUEwQjs7QUFDeEMsVUFBTSxrQkFBa0I7QUFDbEIsVUFBQSxTQUFTLEtBQUssT0FBTztBQUl0QixTQUFBLGlCQUFpQixTQUFTLE1BQU0sS0FBSyxnQkFBZ0IsRUFBRSxRQUFRO0FBQy9ELFNBQUEsaUJBQWlCLFNBQVM7O0FBQU0sY0FBQUEsTUFBQSxLQUFLLFdBQVksY0FBYyxPQUFPLE1BQXRDLGdCQUFBQSxJQUF5QztBQUFBLE9BQVM7QUFBQSxNQUNyRjtBQUFBLElBQUEsQ0FDRDtBQUVELFNBQUssWUFBVSxVQUFLLFlBQUwsOEJBQWUsa0JBQWlCO0FBQy9DLFNBQUssZ0JBQWdCO0FBQUEsRUFDdkI7QUFBQSxFQUVtQixXQUFXLG1CQUErQztBQUMzRSxVQUFNLFdBQVcsaUJBQWlCO0FBRTlCLFFBQUEsa0JBQWtCLElBQUksU0FBUyxHQUFHO0FBQ3BDLFdBQUssYUFBYSxnQkFBZ0IsR0FBRyxLQUFLLE9BQU8sRUFBRTtBQUNuRCxXQUFLLGdCQUFnQjtBQUNyQixVQUFJLEtBQUssU0FBUztBQUNoQixhQUFLLHFCQUFxQjtBQUFBLE1BQzVCO0FBQUEsSUFDRjtBQUNJLFFBQUEsa0JBQWtCLElBQUksVUFBVSxHQUFHO0FBQ3JDLFdBQUssc0JBQXNCO0FBQUEsSUFDN0I7QUFBQSxFQUNGO0FBQUEsRUFFUSx1QkFBNkI7O0FBQ25DLGVBQUssWUFBTCxtQkFBYyxRQUFRLE9BQU8sQ0FBQyxNQUFNLE1BQU0sTUFBTSxRQUFRLENBQUMsTUFBTyxFQUFFLFVBQVU7QUFDdkUsZUFBQSxZQUFBLG1CQUFTLG1CQUFtQjtBQUFBLEVBQ25DO0FBQUEsRUFFUSx3QkFBOEI7QUFFaEMsUUFBQSxDQUFDLEtBQUssUUFBUztBQUFBLGFBR1IsS0FBSyxRQUFRLFlBQVksQ0FBQyxLQUFLLFVBQVU7QUFDbEQsV0FBSyxXQUFXO0FBQUEsSUFBQSxXQUNQLENBQUMsS0FBSyxRQUFRLFlBQVksS0FBSyxVQUFVO0FBQ2xELFdBQUssV0FBVztBQUFBLElBQ2xCO0FBQ0EseUJBQXFCLE1BQU0saUJBQWlCLEtBQUssV0FBVyxTQUFTLElBQUk7QUFDekUsU0FBSyxnQkFBZ0I7QUFBQSxFQUN2QjtBQUFBLEVBRVEsZUFBcUI7QUFDM0IsUUFBSSxLQUFLLFVBQVU7QUFDakI7QUFBQSxJQUNGO0FBQ0EsU0FBSyxVQUFVO0FBQ2YsU0FBSyxxQkFBcUI7QUFBQSxFQUM1QjtBQUFBLEVBRVEsa0JBQXdCO0FBQzlCLFNBQUssV0FBVyxLQUFLLFdBQVcsQ0FBQyxLQUFLLFdBQVcsSUFBSTtBQUFBLEVBQ3ZEO0FBQUEsRUFFbUIsU0FBeUI7QUFDbkMsV0FBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxpQkFNTSxLQUFLLE9BQU87QUFBQSxvQkFDVCxLQUFLLFFBQVE7QUFBQSxtQkFDZCxLQUFLLFdBQVcsT0FBTztBQUFBLGlCQUN6QixLQUFLLFNBQVMsT0FBTztBQUFBLGlCQUNyQixDQUFDLFVBQXdCLE1BQU0saUJBQWlCO0FBQUE7QUFBQTtBQUFBLFVBR3ZELEtBQUssZ0JBQWdCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTTdCO0FBQ0Y7QUExR2EsdUJBQ1ksU0FBeUI7QUFJekMsZ0JBQUE7QUFBQSxFQUROLFNBQVMsRUFBRSxTQUFTLE1BQU0sTUFBTSxTQUFTO0FBQUEsR0FKL0IsdUJBS0osV0FBQSxXQUFBLENBQUE7QUFJQSxnQkFBQTtBQUFBLEVBRE4sU0FBUyxFQUFFLFNBQVMsTUFBTSxNQUFNLFNBQVM7QUFBQSxHQVIvQix1QkFTSixXQUFBLFlBQUEsQ0FBQTtBQUlJLGdCQUFBO0FBQUEsRUFEVixTQUFTO0FBQUEsR0FaQyx1QkFhQSxXQUFBLFNBQUEsQ0FBQTtBQWJBLHlCQUFOLGdCQUFBO0FBQUEsRUFMTixjQUFjLG1CQUFtQjtBQUFBLEVBQ2pDLGVBQWU7QUFBQSxJQUNkLE1BQU07QUFBQSxFQUFBLENBQ1A7QUFBQSxFQUNBLFVBQVU7QUFBQSxHQUNFLHNCQUFBOyJ9
package/map-container.js CHANGED
@@ -65,7 +65,7 @@ let o = class extends m {
65
65
  icon-name="location-pin-map-small"
66
66
  type="button"
67
67
  @click=${() => this._onScrollButtonClick()}
68
- .inert=${!this._scrollUpButtonVisible}
68
+ ?inert=${!this._scrollUpButtonVisible}
69
69
  >
70
70
  ${g[this._language.current]}
71
71
  </sbb-tertiary-button>`}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sbb-esta/lyne-elements",
3
- "version": "1.11.0",
3
+ "version": "1.11.2",
4
4
  "description": "Lyne Design System",
5
5
  "keywords": [
6
6
  "design system",
@@ -11,8 +11,8 @@
11
11
  "type": "module",
12
12
  "customElements": "custom-elements.json",
13
13
  "dependencies": {
14
- "@lit-labs/observers": "^3.0.0OBSERVERS",
15
- "lit": "^3.0.0"
14
+ "@lit-labs/observers": "^2.0.3",
15
+ "lit": "^3.2.0"
16
16
  },
17
17
  "publishConfig": {
18
18
  "access": "public"
@@ -130,7 +130,7 @@ let n = class extends y(c) {
130
130
  </div>
131
131
  <div
132
132
  class="sbb-selection-expansion-panel__content--wrapper"
133
- .inert=${this._state !== "opened"}
133
+ ?inert=${this._state !== "opened"}
134
134
  @animationend=${(e) => this._onAnimationEnd(e)}
135
135
  >
136
136
  <div class="sbb-selection-expansion-panel__content">
@@ -54,7 +54,7 @@ let s = class extends _(c) {
54
54
  id="sbb-toggle-option-id"
55
55
  aria-hidden="true"
56
56
  tabindex="-1"
57
- .inert=${this.checked}
57
+ ?inert=${this.checked}
58
58
  ?disabled=${this.disabled}
59
59
  .checked=${this.checked || d}
60
60
  .value=${this.value || d}