@sbb-esta/lyne-elements-experimental 3.0.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/custom-elements.json +1055 -1070
  2. package/development/core/datetime/date-helper.js +1 -1
  3. package/development/core/timetable/access-leg-helper.js +1 -1
  4. package/development/differenceInMinutes-D5Nj8Stc.js +1 -1
  5. package/development/format-BQfaa1ZT.js +1 -1
  6. package/development/journey-summary/journey-summary.component.js +1 -1
  7. package/development/pearl-chain/pearl-chain.component.js +1 -1
  8. package/development/pearl-chain-time/pearl-chain-time.component.js +1 -1
  9. package/development/pearl-chain-vertical/pearl-chain-vertical.component.js +1 -1
  10. package/development/pearl-chain-vertical-item/pearl-chain-vertical-item.component.js +1 -1
  11. package/development/seat-reservation/common/mapper/mapper.js +1 -1
  12. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +3 -3
  13. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
  14. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +6 -6
  15. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  16. package/development/seat-reservation/seat-reservation/seat-reservation.component.js +6 -6
  17. package/development/seat-reservation/seat-reservation-area/seat-reservation-area.component.js +1 -1
  18. package/development/seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js +1 -1
  19. package/development/seat-reservation/{seat-reservation-navigation/seat-reservation-navigation-coach → seat-reservation-navigation-coach}/seat-reservation-navigation-coach.component.d.ts +3 -3
  20. package/development/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +1 -0
  21. package/development/seat-reservation/{seat-reservation-navigation/seat-reservation-navigation-coach → seat-reservation-navigation-coach}/seat-reservation-navigation-coach.component.js +10 -6
  22. package/development/seat-reservation/seat-reservation-navigation-coach.d.ts.map +1 -0
  23. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.d.ts.map +1 -0
  24. package/development/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +123 -0
  25. package/development/seat-reservation/seat-reservation-navigation-services.d.ts.map +1 -0
  26. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts +1 -1
  27. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +3 -3
  28. package/development/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.d.ts.map +1 -0
  29. package/development/seat-reservation/{seat-reservation/seat-reservation-scoped → seat-reservation-scoped}/seat-reservation-scoped.component.js +1 -1
  30. package/{seat-reservation → development}/seat-reservation/seat-reservation-scoped.d.ts.map +1 -1
  31. package/development/seat-reservation/seat-reservation.d.ts +0 -1
  32. package/development/seat-reservation/seat-reservation.d.ts.map +1 -1
  33. package/development/seat-reservation/seat-reservation.js +1 -3
  34. package/development/seat-reservation.d.ts +3 -1
  35. package/development/seat-reservation.d.ts.map +1 -1
  36. package/development/seat-reservation.js +3 -3
  37. package/development/timetable-duration/timetable-duration.component.js +1 -1
  38. package/development/timetable-row/timetable-row.component.js +1 -1
  39. package/index.d.ts +3 -3
  40. package/index.js +3 -3
  41. package/package.json +14 -19
  42. package/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts +3 -3
  43. package/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
  44. package/seat-reservation/seat-reservation/seat-reservation-base-element.js +20 -20
  45. package/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  46. package/seat-reservation/seat-reservation/seat-reservation.component.js +5 -5
  47. package/seat-reservation/{seat-reservation-navigation/seat-reservation-navigation-coach → seat-reservation-navigation-coach}/seat-reservation-navigation-coach.component.d.ts +3 -3
  48. package/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +1 -0
  49. package/seat-reservation/{seat-reservation-navigation/seat-reservation-navigation-coach → seat-reservation-navigation-coach}/seat-reservation-navigation-coach.component.js +9 -5
  50. package/seat-reservation/seat-reservation-navigation-coach.d.ts.map +1 -0
  51. package/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.d.ts.map +1 -0
  52. package/seat-reservation/{seat-reservation-navigation/seat-reservation-navigation-services → seat-reservation-navigation-services}/seat-reservation-navigation-services.component.js +2 -2
  53. package/seat-reservation/seat-reservation-navigation-services.d.ts.map +1 -0
  54. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts +1 -1
  55. package/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +2 -2
  56. package/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.d.ts.map +1 -0
  57. package/seat-reservation/seat-reservation-scoped.d.ts.map +1 -0
  58. package/seat-reservation/seat-reservation.d.ts +0 -1
  59. package/seat-reservation/seat-reservation.d.ts.map +1 -1
  60. package/seat-reservation/seat-reservation.js +0 -2
  61. package/seat-reservation.d.ts +3 -1
  62. package/seat-reservation.d.ts.map +1 -1
  63. package/seat-reservation.js +12 -12
  64. package/development/seat-reservation/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.d.ts.map +0 -1
  65. package/development/seat-reservation/seat-reservation/seat-reservation-scoped.d.ts.map +0 -1
  66. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +0 -1
  67. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach.d.ts.map +0 -1
  68. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.d.ts.map +0 -1
  69. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.js +0 -122
  70. package/development/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-services.d.ts.map +0 -1
  71. package/development/seat-reservation/seat-reservation-navigation.d.ts +0 -6
  72. package/development/seat-reservation/seat-reservation-navigation.d.ts.map +0 -1
  73. package/development/seat-reservation/seat-reservation-navigation.js +0 -7
  74. package/seat-reservation/seat-reservation/seat-reservation-scoped/seat-reservation-scoped.component.d.ts.map +0 -1
  75. package/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.d.ts.map +0 -1
  76. package/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-coach.d.ts.map +0 -1
  77. package/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.d.ts.map +0 -1
  78. package/seat-reservation/seat-reservation-navigation/seat-reservation-navigation-services.d.ts.map +0 -1
  79. package/seat-reservation/seat-reservation-navigation.d.ts +0 -6
  80. package/seat-reservation/seat-reservation-navigation.d.ts.map +0 -1
  81. package/seat-reservation/seat-reservation-navigation.js +0 -6
  82. /package/development/seat-reservation/{seat-reservation-navigation/seat-reservation-navigation-coach.d.ts → seat-reservation-navigation-coach.d.ts} +0 -0
  83. /package/development/seat-reservation/{seat-reservation-navigation/seat-reservation-navigation-coach.js → seat-reservation-navigation-coach.js} +0 -0
  84. /package/development/seat-reservation/{seat-reservation-navigation/seat-reservation-navigation-services → seat-reservation-navigation-services}/seat-reservation-navigation-services.component.d.ts +0 -0
  85. /package/development/seat-reservation/{seat-reservation-navigation/seat-reservation-navigation-services.d.ts → seat-reservation-navigation-services.d.ts} +0 -0
  86. /package/development/seat-reservation/{seat-reservation-navigation/seat-reservation-navigation-services.js → seat-reservation-navigation-services.js} +0 -0
  87. /package/development/seat-reservation/{seat-reservation/seat-reservation-scoped → seat-reservation-scoped}/seat-reservation-scoped.component.d.ts +0 -0
  88. /package/development/seat-reservation/{seat-reservation/seat-reservation-scoped.d.ts → seat-reservation-scoped.d.ts} +0 -0
  89. /package/development/seat-reservation/{seat-reservation/seat-reservation-scoped.js → seat-reservation-scoped.js} +0 -0
  90. /package/seat-reservation/{seat-reservation-navigation/seat-reservation-navigation-coach.d.ts → seat-reservation-navigation-coach.d.ts} +0 -0
  91. /package/seat-reservation/{seat-reservation-navigation/seat-reservation-navigation-coach.js → seat-reservation-navigation-coach.js} +0 -0
  92. /package/seat-reservation/{seat-reservation-navigation/seat-reservation-navigation-services → seat-reservation-navigation-services}/seat-reservation-navigation-services.component.d.ts +0 -0
  93. /package/seat-reservation/{seat-reservation-navigation/seat-reservation-navigation-services.d.ts → seat-reservation-navigation-services.d.ts} +0 -0
  94. /package/seat-reservation/{seat-reservation-navigation/seat-reservation-navigation-services.js → seat-reservation-navigation-services.js} +0 -0
  95. /package/seat-reservation/{seat-reservation/seat-reservation-scoped → seat-reservation-scoped}/seat-reservation-scoped.component.d.ts +0 -0
  96. /package/seat-reservation/{seat-reservation/seat-reservation-scoped → seat-reservation-scoped}/seat-reservation-scoped.component.js +0 -0
  97. /package/seat-reservation/{seat-reservation/seat-reservation-scoped.d.ts → seat-reservation-scoped.d.ts} +0 -0
  98. /package/seat-reservation/{seat-reservation/seat-reservation-scoped.js → seat-reservation-scoped.js} +0 -0
@@ -18,8 +18,8 @@ import "@sbb-esta/lyne-elements/screen-reader-only.js";
18
18
  import "../seat-reservation-area.js";
19
19
  import "../seat-reservation-graphic.js";
20
20
  import "../seat-reservation-place-control.js";
21
- import "../seat-reservation-navigation/seat-reservation-navigation-coach.js";
22
- import "./seat-reservation-scoped/seat-reservation-scoped.component.js";
21
+ import "../seat-reservation-navigation-coach.js";
22
+ import "../seat-reservation-scoped.js";
23
23
  const style = css`*,
24
24
  ::before,
25
25
  ::after {
@@ -253,8 +253,8 @@ let SbbSeatReservationElement = (() => {
253
253
  ${this.seatReservation?.coachItems.map((coachItem, index) => {
254
254
  return html`<li>
255
255
  <sbb-seat-reservation-navigation-coach
256
- @selectCoach=${(event) => this._onSelectNavCoach(event)}
257
- @focusCoach=${() => this._onFocusNavCoach()}
256
+ @selectcoach=${(event) => this._onSelectNavCoach(event)}
257
+ @focuscoach=${() => this._onFocusNavCoach()}
258
258
  index="${index}"
259
259
  coach-id="${coachItem.id}"
260
260
  .selected=${this.selectedCoachIndex === index}
@@ -371,7 +371,7 @@ let SbbSeatReservationElement = (() => {
371
371
  cell-id="cell-${coachIndex}-${place.position.y}-${index}"
372
372
  >
373
373
  <sbb-seat-reservation-place-control
374
- @selectPlace=${(selectPlaceEvent) => this._onSelectPlace(selectPlaceEvent)}
374
+ @selectplace=${(selectPlaceEvent) => this._onSelectPlace(selectPlaceEvent)}
375
375
  exportparts="sbb-sr-place-part"
376
376
  id="seat-reservation__place-button-${coachIndex}-${place.number}"
377
377
  class="seat-reservation-place-control"
@@ -605,4 +605,4 @@ let SbbSeatReservationElement = (() => {
605
605
  export {
606
606
  SbbSeatReservationElement
607
607
  };
608
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24uY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGh0bWwsIG5vdGhpbmcgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgY2xhc3NNYXAgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9jbGFzcy1tYXAuanMnO1xuaW1wb3J0IHsgc3R5bGVNYXAgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9zdHlsZS1tYXAuanMnO1xuXG5pbXBvcnQgeyBnZXRJMThuU2VhdFJlc2VydmF0aW9uIH0gZnJvbSAnLi4vY29tbW9uLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgQ29hY2hJdGVtLFxuICBQbGFjZSxcbiAgRWxlbWVudERpbWVuc2lvbixcbiAgQmFzZUVsZW1lbnQsXG4gIFBsYWNlU2VsZWN0aW9uLFxuICBTZWF0UmVzZXJ2YXRpb24sXG59IGZyb20gJy4uL2NvbW1vbi5qcyc7XG5cbmltcG9ydCB7IFNlYXRSZXNlcnZhdGlvbkJhc2VFbGVtZW50IH0gZnJvbSAnLi9zZWF0LXJlc2VydmF0aW9uLWJhc2UtZWxlbWVudC5qcyc7XG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zZWF0LXJlc2VydmF0aW9uLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvc2NyZWVuLXJlYWRlci1vbmx5LmpzJztcbmltcG9ydCAnLi4vc2VhdC1yZXNlcnZhdGlvbi1hcmVhLmpzJztcbmltcG9ydCAnLi4vc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLmpzJztcbmltcG9ydCAnLi4vc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLmpzJztcbmltcG9ydCAnLi4vc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaC5qcyc7XG5pbXBvcnQgJy4vc2VhdC1yZXNlcnZhdGlvbi1zY29wZWQuanMnO1xuXG4vKipcbiAqIERlc2NyaWJlIHRoZSBwdXJwb3NlIG9mIHRoZSBjb21wb25lbnQgd2l0aCBhIHNpbmdsZSBzaG9ydCBzZW50ZW5jZS5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLXNlYXQtcmVzZXJ2YXRpb24nKVxuY2xhc3MgU2JiU2VhdFJlc2VydmF0aW9uRWxlbWVudCBleHRlbmRzIFNlYXRSZXNlcnZhdGlvbkJhc2VFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLyoqIFRoZSBzZWF0IHJlc2VydmF0aW9uIG9iamVjdCB3aGljaCBjb250YWlucyBhbGwgY29hY2hlcyBhbmQgcGxhY2VzICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3NlYXQtcmVzZXJ2YXRpb24nLCB0eXBlOiBPYmplY3QgfSlcbiAgcHVibGljIG92ZXJyaWRlIGFjY2Vzc29yIHNlYXRSZXNlcnZhdGlvbjogU2VhdFJlc2VydmF0aW9uID0gbnVsbCE7XG5cbiAgLyoqIFRoZSBzZWF0IHJlc2VydmF0aW9uIG5hdmlnYXRpb24gY2FuIGJlIHRvZ2dsZWQgYnkgdGhpcyBwcm9wZXJ0eSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnaGFzLW5hdmlnYXRpb24nLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBhY2Nlc3NvciBoYXNOYXZpZ2F0aW9uOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKiogQ29udHJvbHMgdGhlIHZpc3VhbCByZXByZXNlbnRhdGlvbiBvZiBzZWF0IHJlc2VydmF0aW9uIGluIGEgaG9yaXpvbmFsIG9yIHZlcnRpY2FsIGFsaWdubWVudCAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWxpZ24tdmVydGljYWwnLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBhY2Nlc3NvciBhbGlnblZlcnRpY2FsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIE1heGltYWwgbnVtYmVyIG9mIHBvc3NpYmxlIGNsaWNrYWJsZSBzZWF0cyAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnbWF4LXJlc2VydmF0aW9ucycsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgYWNjZXNzb3IgbWF4UmVzZXJ2YXRpb25zOiBudW1iZXIgPSBudWxsITtcblxuICAvKiogQW55IGNsaWNrIGZ1bmN0aW9uYWxpdHkgaXMgcHJldmVudGVkICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwcmV2ZW50LXBsYWNlLWNsaWNrJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgYWNjZXNzb3IgcHJldmVudFBsYWNlQ2xpY2s6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2NvYWNoZXNIdG1sVGVtcGxhdGU/OiBUZW1wbGF0ZVJlc3VsdDtcbiAgLy8gR3JhcGhpY3MgdGhhdCBzaG91bGQgbm90IGJlIHJlbmRlcmVkIHdpdGggYW4gYXJlYVxuICBwcml2YXRlIF9ub3RBcmVhRWxlbWVudHMgPSBbXG4gICAgJ0RSSVZFUl9BUkVBX0ZVTEwnLFxuICAgICdDT0FDSF9QQVNTQUdFJyxcbiAgICAnQ09BQ0hfV0FMTF9OT19QQVNTQUdFJyxcbiAgICAnQ09NUEFSVE1FTlRfUEFTU0FHRScsXG4gICAgJ0NPTVBBUlRNRU5UX1BBU1NBR0VfSElHSCcsXG4gICAgJ0NPTVBBUlRNRU5UX1BBU1NBR0VfTUlERExFJyxcbiAgICAnQ09NUEFSVE1FTlRfUEFTU0FHRV9MT1cnLFxuICBdO1xuICAvLyBBcmVhIGljb25zIHRoYXQgc2hvdWxkIG5vdCBiZSBmaXhlZCBkdXJpbmcgcm90YXRpb24gd2hlbiB2ZXJ0aWNhbCBtb2RlIGlzIHNlbGVjdGVkXG4gIHByaXZhdGUgX25vdEZpeGVkUm90YXRhYmxlQXJlYUljb25zID0gWydFTlRSWV9FWElUJ107XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdoYXNOYXZpZ2F0aW9uJykpIHtcbiAgICAgIGlmICh0aGlzLmhhc05hdmlnYXRpb24pIHtcbiAgICAgICAgdGhpcy5zaGFkb3dSb290XG4gICAgICAgICAgPy5xdWVyeVNlbGVjdG9yQWxsKCd0YWJsZScpXG4gICAgICAgICAgLmZvckVhY2goKHRhYmxlKSA9PiB0YWJsZS5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4JykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zaGFkb3dSb290XG4gICAgICAgICAgPy5xdWVyeVNlbGVjdG9yQWxsKCd0YWJsZScpXG4gICAgICAgICAgLmZvckVhY2goKHRhYmxlKSA9PiB0YWJsZS5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIHRoaXMuX2NvbXBvbmVudFNldHVwKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHwgbnVsbCB7XG4gICAgdGhpcy5faW5pdFZlaGljbGVTZWF0UmVzZXJ2YXRpb25Db25zdHJ1Y3Rpb24oKTtcbiAgICByZXR1cm4gdGhpcy5fY29hY2hlc0h0bWxUZW1wbGF0ZSB8fCBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29tcG9uZW50U2V0dXAoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0TmF2aWdhdGlvblNlbGVjdGlvbkJ5U2Nyb2xsRXZlbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRWZWhpY2xlU2VhdFJlc2VydmF0aW9uQ29uc3RydWN0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvYWNoSXRlbXMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuc2VhdFJlc2VydmF0aW9uPy5jb2FjaEl0ZW1zKSk7XG4gICAgY29uc3QgY2xhc3NBbGlnblZlcnRpY2FsID0gdGhpcy5hbGlnblZlcnRpY2FsID8gJ3NiYi1zcl9fd3JhcHBlci0tdmVydGljYWwnIDogJyc7XG5cbiAgICB0aGlzLl9jb2FjaGVzSHRtbFRlbXBsYXRlID0gaHRtbGBcbiAgICAgIDxkaXY+XG4gICAgICAgIDxzYmItc2NyZWVuLXJlYWRlci1vbmx5PlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgaWQ9XCJmaXJzdC10YWItZWxlbWVudFwiXG4gICAgICAgICAgICByb2xlPVwiY29udGVudGluZm9cIlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIiR7Z2V0STE4blNlYXRSZXNlcnZhdGlvbignU0VBVF9SRVNFUlZBVElPTl9CRUdJTicsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpfVwiXG4gICAgICAgICAgICByZWFkb25seVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc2JiLXNjcmVlbi1yZWFkZXItb25seT5cblxuICAgICAgICA8ZGl2IEBrZXlkb3duPSR7KGV2dDogS2V5Ym9hcmRFdmVudCkgPT4gdGhpcy5oYW5kbGVLZXlib2FyZEV2ZW50KGV2dCl9PlxuICAgICAgICAgICR7dGhpcy5fcmVuZGVyTmF2aWdhdGlvbigpfVxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3JfX3dyYXBwZXIgJHtjbGFzc0FsaWduVmVydGljYWx9XCI+XG4gICAgICAgICAgICA8ZGl2IGlkPVwic2JiLXNyX19wYXJlbnQtYXJlYVwiIGNsYXNzPVwic2JiLXNyX19wYXJlbnRcIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgICAgICAgIDx1bCBjbGFzcz1cInNiYi1zcl9fbGlzdC1jb2FjaGVzXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICAgICAgICAgICR7dGhpcy5fcmVuZGVyQ29hY2hlcyhjb2FjaEl0ZW1zKX1cbiAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8c2JiLXNjcmVlbi1yZWFkZXItb25seT5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGlkPVwibGFzdC10YWItZWxlbWVudFwiXG4gICAgICAgICAgICByb2xlPVwiY29udGVudGluZm9cIlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIiR7Z2V0STE4blNlYXRSZXNlcnZhdGlvbignU0VBVF9SRVNFUlZBVElPTl9FTkQnLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KX1cIlxuICAgICAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgICAvPlxuICAgICAgICA8L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHk+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyTmF2aWdhdGlvbigpOiBUZW1wbGF0ZVJlc3VsdCB8IG51bGwge1xuICAgIGlmICghdGhpcy5oYXNOYXZpZ2F0aW9uKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxuYXYgY2xhc3M9XCIke2NsYXNzTWFwKHsgJ3NiYi1zci1uYXZpZ2F0aW9uLS12ZXJ0aWNhbCc6IHRoaXMuYWxpZ25WZXJ0aWNhbCB9KX1cIj5cbiAgICAgICAgPHVsXG4gICAgICAgICAgY2xhc3M9XCJzYmItc3ItbmF2aWdhdGlvbl9fbGlzdC1jb2FjaGVzXCJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiJHtnZXRJMThuU2VhdFJlc2VydmF0aW9uKFxuICAgICAgICAgICAgJ1NFQVRfUkVTRVJWQVRJT05fTkFWSUdBVElPTicsXG4gICAgICAgICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LFxuICAgICAgICAgICl9XCJcbiAgICAgICAgPlxuICAgICAgICAgICR7dGhpcy5zZWF0UmVzZXJ2YXRpb24/LmNvYWNoSXRlbXMubWFwKChjb2FjaEl0ZW06IENvYWNoSXRlbSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGh0bWxgPGxpPlxuICAgICAgICAgICAgICA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaFxuICAgICAgICAgICAgICAgIEBzZWxlY3RDb2FjaD0keyhldmVudDogQ3VzdG9tRXZlbnQpID0+IHRoaXMuX29uU2VsZWN0TmF2Q29hY2goZXZlbnQpfVxuICAgICAgICAgICAgICAgIEBmb2N1c0NvYWNoPSR7KCkgPT4gdGhpcy5fb25Gb2N1c05hdkNvYWNoKCl9XG4gICAgICAgICAgICAgICAgaW5kZXg9XCIke2luZGV4fVwiXG4gICAgICAgICAgICAgICAgY29hY2gtaWQ9XCIke2NvYWNoSXRlbS5pZH1cIlxuICAgICAgICAgICAgICAgIC5zZWxlY3RlZD0ke3RoaXMuc2VsZWN0ZWRDb2FjaEluZGV4ID09PSBpbmRleH1cbiAgICAgICAgICAgICAgICAuZm9jdXNlZD0ke3RoaXMuZm9jdXNlZENvYWNoSW5kZXggPT09IGluZGV4fVxuICAgICAgICAgICAgICAgIC5wcm9wZXJ0eUlkcz1cIiR7Y29hY2hJdGVtLnByb3BlcnR5SWRzfVwiXG4gICAgICAgICAgICAgICAgLnRyYXZlbENsYXNzPVwiJHtjb2FjaEl0ZW0udHJhdmVsQ2xhc3N9XCJcbiAgICAgICAgICAgICAgICA/ZHJpdmVyLWFyZWE9XCIkeyFjb2FjaEl0ZW0ucGxhY2VzPy5sZW5ndGh9XCJcbiAgICAgICAgICAgICAgICA/Zmlyc3Q9XCIke2luZGV4ID09PSAwfVwiXG4gICAgICAgICAgICAgICAgP2xhc3Q9XCIke2luZGV4ID09PSB0aGlzLnNlYXRSZXNlcnZhdGlvbj8uY29hY2hJdGVtcy5sZW5ndGggLSAxfVwiXG4gICAgICAgICAgICAgICAgP3ZlcnRpY2FsPVwiJHt0aGlzLmFsaWduVmVydGljYWx9XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L3NiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tY29hY2g+XG4gICAgICAgICAgICA8L2xpPmA7XG4gICAgICAgICAgfSl9XG4gICAgICAgIDwvdWw+XG4gICAgICA8L25hdj5cbiAgICBgO1xuICB9XG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gY29hY2hlc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJpdmF0ZSBfcmVuZGVyQ29hY2hlcyhjb2FjaGVzPzogQ29hY2hJdGVtW10pOiBUZW1wbGF0ZVJlc3VsdFtdIHwgbnVsbCB7XG4gICAgaWYgKCFjb2FjaGVzKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGNvYWNoZXMubWFwKChjb2FjaEl0ZW06IENvYWNoSXRlbSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgIDxsaSBjbGFzcz1cInNiYi1zcl9faXRlbS1jb2FjaFwiPiR7dGhpcy5fcmVuZGVyQ29hY2hFbGVtZW50KGNvYWNoSXRlbSwgaW5kZXgpfTwvbGk+XG4gICAgICBgO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyQ29hY2hFbGVtZW50KGNvYWNoSXRlbTogQ29hY2hJdGVtLCBpbmRleDogbnVtYmVyKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGNhbGN1bGF0ZWRDb2FjaERpbWVuc2lvbiA9IHRoaXMuZ2V0Q2FsY3VsYXRlZERpbWVuc2lvbihjb2FjaEl0ZW0uZGltZW5zaW9uKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvblRhYmxlQ29hY2hXaXRoU2VydmljZXMgPSB0aGlzLl9nZXREZXNjcmlwdGlvblRhYmxlQ29hY2goY29hY2hJdGVtKTtcblxuICAgIHJldHVybiBodG1sYCA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkXG4gICAgICBzY29wZWQtY2xhc3Nlcz1cImNvYWNoLXdyYXBwZXJcIlxuICAgICAgaGVpZ2h0PVwiJHtjYWxjdWxhdGVkQ29hY2hEaW1lbnNpb24uaH1weFwiXG4gICAgICB3aWR0aD1cIiR7Y2FsY3VsYXRlZENvYWNoRGltZW5zaW9uLnd9cHhcIlxuICAgID5cbiAgICAgICR7dGhpcy5fZ2V0UmVuZGVyZWRDb2FjaEJvcmRlcnMoY29hY2hJdGVtLCBpbmRleCl9XG4gICAgICAke3RoaXMuX2dldFJlbmRlcmVkR3JhcGhpY2FsRWxlbWVudHMoY29hY2hJdGVtLmdyYXBoaWNFbGVtZW50cyB8fCBbXSwgY29hY2hJdGVtLmRpbWVuc2lvbil9XG4gICAgICAke3RoaXMuX2dldFJlbmRlcmVkU2VydmljZUVsZW1lbnRzKGNvYWNoSXRlbS5zZXJ2aWNlRWxlbWVudHMpfVxuICAgICAgPHRhYmxlXG4gICAgICAgIEBmb2N1cz0keygpID0+IHRoaXMub25Gb2N1c1RhYmxlQ29hY2hBbmRQcmVzZWxlY3RQbGFjZShpbmRleCl9XG4gICAgICAgIGlkPVwic2JiLXNyLWNvYWNoLSR7aW5kZXh9XCJcbiAgICAgICAgY2xhc3M9XCJzYmItc3ItY29hY2gtd3JhcHBlcl9fdGFibGVcIlxuICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PVwic2JiLXNyLWNvYWNoLWNhcHRpb24tJHtpbmRleH1cIlxuICAgICAgPlxuICAgICAgICA8Y2FwdGlvbiBpZD1cInNiYi1zci1jb2FjaC1jYXB0aW9uLSR7aW5kZXh9XCIgdGFiaW5kZXg9XCItMVwiPlxuICAgICAgICAgIDxzYmItc2NyZWVuLXJlYWRlci1vbmx5PiR7ZGVzY3JpcHRpb25UYWJsZUNvYWNoV2l0aFNlcnZpY2VzfTwvc2JiLXNjcmVlbi1yZWFkZXItb25seT5cbiAgICAgICAgPC9jYXB0aW9uPlxuICAgICAgICAke3RoaXMuX2dldFJlbmRlcmVkUm93UGxhY2VzKGNvYWNoSXRlbSwgaW5kZXgpfVxuICAgICAgPC90YWJsZT5cbiAgICA8L3NiYi1zZWF0LXJlc2VydmF0aW9uLXNjb3BlZD5gO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UmVuZGVyZWRDb2FjaEJvcmRlcnMoY29hY2hJdGVtOiBDb2FjaEl0ZW0sIGNvYWNoSW5kZXg6IG51bWJlcik6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBhbGxFbGVtZW50cyA9IGNvYWNoSXRlbS5ncmFwaGljRWxlbWVudHM7XG4gICAgY29uc3QgQ09BQ0hfUEFTU0FHRV9XSURUSCA9IDE7XG4gICAgY29uc3QgZHJpdmVyQXJlYSA9IGFsbEVsZW1lbnRzPy5maW5kKFxuICAgICAgKGVsZW1lbnQ6IEJhc2VFbGVtZW50KSA9PiBlbGVtZW50Lmljb24gPT09ICdEUklWRVJfQVJFQV9GVUxMJyxcbiAgICApO1xuICAgIGNvbnN0IGJvcmRlcldpZHRoID0gZHJpdmVyQXJlYVxuICAgICAgPyBjb2FjaEl0ZW0uZGltZW5zaW9uLncgLSBkcml2ZXJBcmVhLmRpbWVuc2lvbi53IC0gQ09BQ0hfUEFTU0FHRV9XSURUSFxuICAgICAgOiBjb2FjaEl0ZW0uZGltZW5zaW9uLncgLSBDT0FDSF9QQVNTQUdFX1dJRFRIICogMjtcbiAgICBjb25zdCBib3JkZXJPZmZzZXRYID1cbiAgICAgIGNvYWNoSW5kZXggPT09IDAgJiYgZHJpdmVyQXJlYVxuICAgICAgICA/IGRyaXZlckFyZWE/LmRpbWVuc2lvbi53ICogdGhpcy5iYXNlR3JpZFNpemVcbiAgICAgICAgOiB0aGlzLmJhc2VHcmlkU2l6ZTtcblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNiYi1zZWF0LXJlc2VydmF0aW9uLXNjb3BlZFxuICAgICAgICBzY29wZWQtY2xhc3Nlcz1cImNvYWNoLWJvcmRlclwiXG4gICAgICAgIGluc2V0LWJsb2NrLXN0YXJ0PVwiJHt0aGlzLmNvYWNoQm9yZGVyUGFkZGluZyAqIC0xfXB4XCJcbiAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0PVwiJHtib3JkZXJPZmZzZXRYfXB4XCJcbiAgICAgID5cbiAgICAgICAgPHNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWNcbiAgICAgICAgICBuYW1lPVwiQ09BQ0hfQk9SREVSX01JRERMRVwiXG4gICAgICAgICAgd2lkdGg9JHtib3JkZXJXaWR0aCAqIHRoaXMuYmFzZUdyaWRTaXplfVxuICAgICAgICAgIGhlaWdodD0keyhjb2FjaEl0ZW0uZGltZW5zaW9uLmggKyB0aGlzLmNvYWNoQm9yZGVyT2Zmc2V0ICogMikgKiB0aGlzLmJhc2VHcmlkU2l6ZX1cbiAgICAgICAgICA/c3RyZXRjaD0ke3RydWV9XG4gICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgID48L3NiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWM+XG4gICAgICA8L3NiYi1zZWF0LXJlc2VydmF0aW9uLXNjb3BlZD5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UmVuZGVyZWRSb3dQbGFjZXMoY29hY2g6IENvYWNoSXRlbSwgY29hY2hJbmRleDogbnVtYmVyKTogVGVtcGxhdGVSZXN1bHRbXSB8IG51bGwge1xuICAgIGlmICghY29hY2gucGxhY2VzKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyBQcmVwYWlyIHJvd3Mgd2l0aCB0aGUgcGxhY2VzIHRvIHJlbmRlciBhIHRhYmxlXG4gICAgY29uc3QgdGFibGVSb3dQbGFjZXM6IFJlY29yZDxudW1iZXIsIFBsYWNlW10+ID0ge307XG4gICAgZm9yIChjb25zdCBwbGFjZSBvZiBjb2FjaC5wbGFjZXMpIHtcbiAgICAgIGlmICghdGFibGVSb3dQbGFjZXNbcGxhY2UucG9zaXRpb24ueV0pIHtcbiAgICAgICAgdGFibGVSb3dQbGFjZXNbcGxhY2UucG9zaXRpb24ueV0gPSBbcGxhY2VdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGFibGVSb3dQbGFjZXNbcGxhY2UucG9zaXRpb24ueV0ucHVzaChwbGFjZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGFibGVSb3dQbGFjZXMpXG4gICAgICAubWFwKChyb3dQbGFjZXM6IFBsYWNlW10sIGluZGV4KSA9PiB7XG4gICAgICAgIHJldHVybiBodG1sYFxuICAgICAgICAgIDx0ciBpZD1cInJvdy0ke2NvYWNoSW5kZXh9LSR7cm93UGxhY2VzWzBdLnBvc2l0aW9uLnl9XCIgZGF0YS1yb3ctaW5kZXg9JHtpbmRleH0+XG4gICAgICAgICAgICAke3RoaXMuX2dldFJlbmRlcmVkQ29sdW1uUGxhY2VzKHJvd1BsYWNlcywgY29hY2hJbmRleCl9XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgYDtcbiAgICAgIH0pXG4gICAgICAuZmxhdE1hcCgocm93VGVtcGxhdGUpID0+IHJvd1RlbXBsYXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFJlbmRlcmVkQ29sdW1uUGxhY2VzKHBsYWNlczogUGxhY2VbXSwgY29hY2hJbmRleDogbnVtYmVyKTogVGVtcGxhdGVSZXN1bHRbXSB8IG51bGwge1xuICAgIC8vU29ydHMgZWFjaCBwbGFjZSBieSBpdHMgYXNjZW5kaW5nIHggY29vcmRpbmF0ZVxuICAgIHBsYWNlcy5zb3J0KFxuICAgICAgKHBsYWNlQTogUGxhY2UsIHBsYWNlQjogUGxhY2UpID0+IE51bWJlcihwbGFjZUEucG9zaXRpb24ueCkgLSBOdW1iZXIocGxhY2VCLnBvc2l0aW9uLngpLFxuICAgICk7XG5cbiAgICByZXR1cm4gcGxhY2VzPy5tYXAoKHBsYWNlOiBQbGFjZSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgY29uc3QgY2FsY3VsYXRlZEludGVybmFsRGltZW5zaW9uID0gdGhpcy5nZXRDYWxjdWxhdGVkRGltZW5zaW9uKHBsYWNlLmRpbWVuc2lvbik7XG4gICAgICBjb25zdCBjYWxjdWxhdGVkSW50ZXJuYWxQb3NpdGlvbiA9IHRoaXMuZ2V0Q2FsY3VsYXRlZFBvc2l0aW9uKHBsYWNlLnBvc2l0aW9uKTtcbiAgICAgIGNvbnN0IHRleHRSb3RhdGlvbiA9IHRoaXMuYWxpZ25WZXJ0aWNhbCA/IC05MCA6IDA7XG5cbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkXG4gICAgICAgICAgc2NvcGVkLWNsYXNzZXM9XCJncmFwaGljYWwtZWxlbWVudFwiXG4gICAgICAgICAgaW5zZXQtYmxvY2stc3RhcnQ9XCIke2NhbGN1bGF0ZWRJbnRlcm5hbFBvc2l0aW9uLnl9cHhcIlxuICAgICAgICAgIGluc2V0LWlubGluZS1zdGFydD1cIiR7Y2FsY3VsYXRlZEludGVybmFsUG9zaXRpb24ueH1weFwiXG4gICAgICAgICAgd2lkdGg9XCIke2NhbGN1bGF0ZWRJbnRlcm5hbERpbWVuc2lvbi53fXB4XCJcbiAgICAgICAgICBoZWlnaHQ9XCIke2NhbGN1bGF0ZWRJbnRlcm5hbERpbWVuc2lvbi5ofXB4XCJcbiAgICAgICAgICB6LWluZGV4PVwiJHtwbGFjZS5wb3NpdGlvbi56fVwiXG4gICAgICAgICAgY2VsbC1pZD1cImNlbGwtJHtjb2FjaEluZGV4fS0ke3BsYWNlLnBvc2l0aW9uLnl9LSR7aW5kZXh9XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzYmItc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sXG4gICAgICAgICAgICBAc2VsZWN0UGxhY2U9JHsoc2VsZWN0UGxhY2VFdmVudDogQ3VzdG9tRXZlbnQpID0+IHRoaXMuX29uU2VsZWN0UGxhY2Uoc2VsZWN0UGxhY2VFdmVudCl9XG4gICAgICAgICAgICBleHBvcnRwYXJ0cz1cInNiYi1zci1wbGFjZS1wYXJ0XCJcbiAgICAgICAgICAgIGlkPVwic2VhdC1yZXNlcnZhdGlvbl9fcGxhY2UtYnV0dG9uLSR7Y29hY2hJbmRleH0tJHtwbGFjZS5udW1iZXJ9XCJcbiAgICAgICAgICAgIGNsYXNzPVwic2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sXCJcbiAgICAgICAgICAgIGRhdGEtY2VsbC1pZD1cIiR7Y29hY2hJbmRleH0tJHtwbGFjZS5wb3NpdGlvbi55fS0ke2luZGV4fVwiXG4gICAgICAgICAgICB0ZXh0PSR7cGxhY2UubnVtYmVyfVxuICAgICAgICAgICAgdHlwZT0ke3BsYWNlLnR5cGV9XG4gICAgICAgICAgICBzdGF0ZT0ke3BsYWNlLnN0YXRlfVxuICAgICAgICAgICAgd2lkdGg9JHtwbGFjZS5kaW1lbnNpb24udyAqIHRoaXMuYmFzZUdyaWRTaXplfVxuICAgICAgICAgICAgaGVpZ2h0PSR7cGxhY2UuZGltZW5zaW9uLmggKiB0aGlzLmJhc2VHcmlkU2l6ZX1cbiAgICAgICAgICAgIHJvdGF0aW9uPSR7cGxhY2Uucm90YXRpb24gPz8gbm90aGluZ31cbiAgICAgICAgICAgIHRleHQtcm90YXRpb249JHt0ZXh0Um90YXRpb259XG4gICAgICAgICAgICBjb2FjaC1pbmRleD0ke2NvYWNoSW5kZXh9XG4gICAgICAgICAgICAucHJvcGVydHlJZHM9JHtwbGFjZS5wcm9wZXJ0eUlkc31cbiAgICAgICAgICAgIC5wcmV2ZW50Q2xpY2s9JHt0aGlzLnByZXZlbnRQbGFjZUNsaWNrfVxuICAgICAgICAgID48L3NiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2w+XG4gICAgICAgIDwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkPlxuICAgICAgYDtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFJlbmRlcmVkR3JhcGhpY2FsRWxlbWVudHMoXG4gICAgZ3JhcGhpY2FsRWxlbWVudHM6IEJhc2VFbGVtZW50W10sXG4gICAgY29hY2hEaW1lbnNpb246IEVsZW1lbnREaW1lbnNpb24sXG4gICk6IFRlbXBsYXRlUmVzdWx0W10gfCBudWxsIHtcbiAgICBpZiAoIWdyYXBoaWNhbEVsZW1lbnRzKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZ3JhcGhpY2FsRWxlbWVudHM/Lm1hcCgoZ3JhcGhpY2FsRWxlbWVudDogQmFzZUVsZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IGljb24gPSBncmFwaGljYWxFbGVtZW50Lmljb24gPz8gJyc7XG4gICAgICBjb25zdCBlbGVtZW50Um90YXRpb24gPSBncmFwaGljYWxFbGVtZW50LnJvdGF0aW9uIHx8IDA7XG4gICAgICBjb25zdCBpc05vdEZpeGVkUm90YXRpb25HcmFwaGljYWxFbGVtZW50ID1cbiAgICAgICAgdGhpcy5fbm90Rml4ZWRSb3RhdGFibGVBcmVhSWNvbnMuaW5kZXhPZihncmFwaGljYWxFbGVtZW50Lmljb24hKSA9PT0gLTE7XG4gICAgICBjb25zdCBlbGVtZW50Rml4ZWRSb3RhdGlvbiA9XG4gICAgICAgIHRoaXMuYWxpZ25WZXJ0aWNhbCAmJiBpc05vdEZpeGVkUm90YXRpb25HcmFwaGljYWxFbGVtZW50XG4gICAgICAgICAgPyBlbGVtZW50Um90YXRpb24gLSA5MFxuICAgICAgICAgIDogZWxlbWVudFJvdGF0aW9uO1xuXG4gICAgICAvL2NoZWNrIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgbm90IGFuIGFyZWEgZWxlbWVudCwgc2luY2UgdGhpcyBlbGVtZW50IGlzIGRyYXduIHdpdGhvdXQgYW4gYXJlYSBjb21wb25lbnRcbiAgICAgIGlmICh0aGlzLl9ub3RBcmVhRWxlbWVudHMuZmluZEluZGV4KChub3RBcmVhRWxlbWVudCkgPT4gbm90QXJlYUVsZW1lbnQgPT09IGljb24pID4gLTEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldFJlbmRlckVsZW1lbnRXaXRob3V0QXJlYShncmFwaGljYWxFbGVtZW50LCBlbGVtZW50Um90YXRpb24sIGNvYWNoRGltZW5zaW9uKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLl9nZXRSZW5kZXJFbGVtZW50V2l0aEFyZWEoZ3JhcGhpY2FsRWxlbWVudCwgZWxlbWVudEZpeGVkUm90YXRpb24sIGNvYWNoRGltZW5zaW9uKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFJlbmRlckVsZW1lbnRXaXRoQXJlYShcbiAgICBncmFwaGljYWxFbGVtZW50OiBCYXNlRWxlbWVudCxcbiAgICByb3RhdGlvbjogbnVtYmVyLFxuICAgIGNvYWNoRGltZW5zaW9uOiBFbGVtZW50RGltZW5zaW9uLFxuICApOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgLy8gVE9ETyAtPiBpc05vdFRhYmxlR3JhcGhpY1RlbXBGaXggaXMgdGVtcCBmaXggdG8gc2hvdyBjb2FjaCB0YWJsZXMgYXMgYXJlYSBhbmQgbm90IGFzIHN2ZyBncmFwaGljLlxuICAgIC8vIFRoZSBwcm9ibGVtIGhlcmUgaXMgdGhhdCB3aGVuIHVzaW5nIFRBQkxFIHN2ZyBncmFwaGljcyxcbiAgICAvLyB0aGV5IGFyZSBkaXNwbGF5ZWQgZGlzdG9ydGVkIGR1ZSB0byBkaWZmZXJlbnQgaGVpZ2h0cyBhbmQgd2lkdGhzIGFuZCB0aGlzIGlzIG5vdCB2aXN1YWxseSBnb29kLlxuICAgIGNvbnN0IGlzTm90VGFibGVHcmFwaGljVGVtcEZpeCA9IGdyYXBoaWNhbEVsZW1lbnQuaWNvbj8uaW5kZXhPZignVEFCTEUnKSA9PT0gLTE7XG5cbiAgICBjb25zdCBhcmVhUHJvcGVydHkgPVxuICAgICAgZ3JhcGhpY2FsRWxlbWVudC5pY29uICYmIGlzTm90VGFibGVHcmFwaGljVGVtcEZpeCA/IGdyYXBoaWNhbEVsZW1lbnQuaWNvbiA6IG51bGw7XG4gICAgY29uc3Qgc3RyZXRjaEhlaWdodCA9IGFyZWFQcm9wZXJ0eSAhPT0gJ0VOVFJZX0VYSVQnO1xuICAgIGNvbnN0IGFyaWFMYWJlbEZvckFyZWEgPSBncmFwaGljYWxFbGVtZW50Lmljb25cbiAgICAgID8gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihncmFwaGljYWxFbGVtZW50Lmljb24sIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpXG4gICAgICA6IG5vdGhpbmc7XG4gICAgY29uc3QgY2FsY3VsYXRlZERpbWVuc2lvbiA9IHRoaXMuZ2V0Q2FsY3VsYXRlZERpbWVuc2lvbihcbiAgICAgIGdyYXBoaWNhbEVsZW1lbnQuZGltZW5zaW9uLFxuICAgICAgY29hY2hEaW1lbnNpb24sXG4gICAgICB0cnVlLFxuICAgICAgc3RyZXRjaEhlaWdodCxcbiAgICApO1xuICAgIGNvbnN0IGNhbGN1bGF0ZWRQb3NpdGlvbiA9IHRoaXMuZ2V0Q2FsY3VsYXRlZFBvc2l0aW9uKFxuICAgICAgZ3JhcGhpY2FsRWxlbWVudC5wb3NpdGlvbixcbiAgICAgIGdyYXBoaWNhbEVsZW1lbnQuZGltZW5zaW9uLFxuICAgICAgY29hY2hEaW1lbnNpb24sXG4gICAgICB0cnVlLFxuICAgICk7XG5cbiAgICBsZXQgZWxlbWVudE1vdW50aW5nID0gJ2ZyZWUnO1xuICAgIGlmIChncmFwaGljYWxFbGVtZW50LnBvc2l0aW9uLnkgPT09IHRoaXMuY29hY2hCb3JkZXJPZmZzZXQgKiAtMSkge1xuICAgICAgZWxlbWVudE1vdW50aW5nID0gJ3VwcGVyLWJvcmRlcic7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGdyYXBoaWNhbEVsZW1lbnQucG9zaXRpb24ueSArIGdyYXBoaWNhbEVsZW1lbnQuZGltZW5zaW9uLmggPT09XG4gICAgICBjb2FjaERpbWVuc2lvbi5oICsgdGhpcy5jb2FjaEJvcmRlck9mZnNldFxuICAgICkge1xuICAgICAgZWxlbWVudE1vdW50aW5nID0gJ2xvd2VyLWJvcmRlcic7XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkXG4gICAgICAgIHNjb3BlZC1jbGFzc2VzPVwiZ3JhcGhpY2FsLWVsZW1lbnRcIlxuICAgICAgICBpbnNldC1ibG9jay1zdGFydD1cIiR7Y2FsY3VsYXRlZFBvc2l0aW9uLnl9cHhcIlxuICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ9XCIke2NhbGN1bGF0ZWRQb3NpdGlvbi54fXB4XCJcbiAgICAgICAgd2lkdGg9XCIke2NhbGN1bGF0ZWREaW1lbnNpb24ud31weFwiXG4gICAgICAgIGhlaWdodD1cIiR7Y2FsY3VsYXRlZERpbWVuc2lvbi5ofXB4XCJcbiAgICAgICAgei1pbmRleD1cIiR7Z3JhcGhpY2FsRWxlbWVudC5wb3NpdGlvbi56fVwiXG4gICAgICA+XG4gICAgICAgIDxzYmItc2VhdC1yZXNlcnZhdGlvbi1hcmVhXG4gICAgICAgICAgc3R5bGU9JHtzdHlsZU1hcCh7XG4gICAgICAgICAgICAnLS1zYmItcmVzZXJ2YXRpb24tYXJlYS13aWR0aCc6IGdyYXBoaWNhbEVsZW1lbnQuZGltZW5zaW9uLncgKiB0aGlzLmJhc2VHcmlkU2l6ZSxcbiAgICAgICAgICAgICctLXNiYi1yZXNlcnZhdGlvbi1hcmVhLWhlaWdodCc6IGdyYXBoaWNhbEVsZW1lbnQuZGltZW5zaW9uLmggKiB0aGlzLmJhc2VHcmlkU2l6ZSxcbiAgICAgICAgICB9KX1cbiAgICAgICAgICBtb3VudGluZz0ke2VsZW1lbnRNb3VudGluZ31cbiAgICAgICAgICBiYWNrZ3JvdW5kPVwiZGFya1wiXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICB0aXRsZT0ke2FyaWFMYWJlbEZvckFyZWF9XG4gICAgICAgID5cbiAgICAgICAgICAke2FyZWFQcm9wZXJ0eVxuICAgICAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgICAgIDxzYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljXG4gICAgICAgICAgICAgICAgICBuYW1lPSR7YXJlYVByb3BlcnR5fVxuICAgICAgICAgICAgICAgICAgcm90YXRpb249JHtyb3RhdGlvbn1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPSR7dGhpcy5iYXNlR3JpZFNpemV9XG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9JHt0aGlzLmJhc2VHcmlkU2l6ZX1cbiAgICAgICAgICAgICAgICAgIHJvbGU9XCJpbWdcIlxuICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICA+PC9zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljPlxuICAgICAgICAgICAgICBgXG4gICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgIDwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tYXJlYT5cbiAgICAgIDwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkPlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9nZXRSZW5kZXJFbGVtZW50V2l0aG91dEFyZWEoXG4gICAgZ3JhcGhpY2FsRWxlbWVudDogQmFzZUVsZW1lbnQsXG4gICAgcm90YXRpb246IG51bWJlcixcbiAgICBjb2FjaERpbWVuc2lvbjogRWxlbWVudERpbWVuc2lvbixcbiAgKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGNhbGN1bGF0ZWREaW1lbnNpb24gPSB0aGlzLmdldENhbGN1bGF0ZWREaW1lbnNpb24oXG4gICAgICBncmFwaGljYWxFbGVtZW50LmRpbWVuc2lvbixcbiAgICAgIGNvYWNoRGltZW5zaW9uLFxuICAgICk7XG4gICAgY29uc3QgY2FsY3VsYXRlZFBvc2l0aW9uID0gdGhpcy5nZXRDYWxjdWxhdGVkUG9zaXRpb24oXG4gICAgICBncmFwaGljYWxFbGVtZW50LnBvc2l0aW9uLFxuICAgICAgZ3JhcGhpY2FsRWxlbWVudC5kaW1lbnNpb24sXG4gICAgICBjb2FjaERpbWVuc2lvbixcbiAgICApO1xuXG4gICAgLy8gSWYgdGhlIGljb24gaXMgdGhlIGRyaXZlciBhcmVhLCB0aGVuIGhlcmUgY29uY2F0IHRoZSB2ZWhpY2xlIHR5cGUgdG8gZ2V0IHRoZSByaWdodCB2ZWhpY2xlIGNoYXNzaWUgaWNvblxuICAgIGNvbnN0IGljb24gPVxuICAgICAgZ3JhcGhpY2FsRWxlbWVudC5pY29uICYmIGdyYXBoaWNhbEVsZW1lbnQuaWNvbi5pbmRleE9mKCdEUklWRVJfQVJFQScpID09PSAtMVxuICAgICAgICA/IGdyYXBoaWNhbEVsZW1lbnQuaWNvblxuICAgICAgICA6IGdyYXBoaWNhbEVsZW1lbnQuaWNvbj8uY29uY2F0KCdfJywgdGhpcy5zZWF0UmVzZXJ2YXRpb24udmVoaWNsZVR5cGUpO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkXG4gICAgICAgIHNjb3BlZC1jbGFzc2VzPVwiZ3JhcGhpY2FsLWVsZW1lbnRcIlxuICAgICAgICBpbnNldC1ibG9jay1zdGFydD1cIiR7Y2FsY3VsYXRlZFBvc2l0aW9uLnl9cHhcIlxuICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ9XCIke2NhbGN1bGF0ZWRQb3NpdGlvbi54fXB4XCJcbiAgICAgICAgd2lkdGg9XCIke2NhbGN1bGF0ZWREaW1lbnNpb24ud31weFwiXG4gICAgICAgIGhlaWdodD1cIiR7Y2FsY3VsYXRlZERpbWVuc2lvbi5ofXB4XCJcbiAgICAgICAgei1pbmRleD1cIiR7Z3JhcGhpY2FsRWxlbWVudC5wb3NpdGlvbi56fVwiXG4gICAgICA+XG4gICAgICAgIDxzYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljXG4gICAgICAgICAgbmFtZT0ke2ljb24gPz8gbm90aGluZ31cbiAgICAgICAgICB3aWR0aD0ke2dyYXBoaWNhbEVsZW1lbnQuZGltZW5zaW9uLncgKiB0aGlzLmJhc2VHcmlkU2l6ZX1cbiAgICAgICAgICBoZWlnaHQ9JHtncmFwaGljYWxFbGVtZW50LmRpbWVuc2lvbi5oICogdGhpcy5iYXNlR3JpZFNpemV9XG4gICAgICAgICAgcm90YXRpb249JHtyb3RhdGlvbn1cbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgID9zdHJldGNoPSR7dHJ1ZX1cbiAgICAgICAgPjwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYz5cbiAgICAgIDwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkPlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9nZXRSZW5kZXJlZFNlcnZpY2VFbGVtZW50cyhzZXJ2aWNlRWxlbWVudHM/OiBCYXNlRWxlbWVudFtdKTogVGVtcGxhdGVSZXN1bHRbXSB8IG51bGwge1xuICAgIGlmICghc2VydmljZUVsZW1lbnRzKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gc2VydmljZUVsZW1lbnRzPy5tYXAoKHNlcnZpY2VFbGVtZW50OiBCYXNlRWxlbWVudCkgPT4ge1xuICAgICAgY29uc3QgdGl0bGVEZXNjcmlwdGlvbiA9IHNlcnZpY2VFbGVtZW50Lmljb25cbiAgICAgICAgPyBnZXRJMThuU2VhdFJlc2VydmF0aW9uKHNlcnZpY2VFbGVtZW50Lmljb24sIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpXG4gICAgICAgIDogbnVsbDtcbiAgICAgIGNvbnN0IGNhbGN1bGF0ZWRjQ21wYXJ0bWVudE51bWJlckRpbWVuc2lvbiA9IHRoaXMuZ2V0Q2FsY3VsYXRlZERpbWVuc2lvbihcbiAgICAgICAgc2VydmljZUVsZW1lbnQuZGltZW5zaW9uLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGNhbGN1bGF0ZWRjQ21wYXJ0bWVudE51bWJlclBvc2l0aW9uID0gdGhpcy5nZXRDYWxjdWxhdGVkUG9zaXRpb24oXG4gICAgICAgIHNlcnZpY2VFbGVtZW50LnBvc2l0aW9uLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGVsZW1lbnRSb3RhdGlvbiA9IHNlcnZpY2VFbGVtZW50LnJvdGF0aW9uIHx8IDA7XG4gICAgICBjb25zdCBlbGVtZW50Rml4ZWRSb3RhdGlvbiA9IHRoaXMuYWxpZ25WZXJ0aWNhbCA/IGVsZW1lbnRSb3RhdGlvbiAtIDkwIDogZWxlbWVudFJvdGF0aW9uO1xuXG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPHNiYi1zZWF0LXJlc2VydmF0aW9uLXNjb3BlZFxuICAgICAgICAgIHNjb3BlZC1jbGFzc2VzPVwiZ3JhcGhpY2FsLWVsZW1lbnRcIlxuICAgICAgICAgIGluc2V0LWJsb2NrLXN0YXJ0PVwiJHtjYWxjdWxhdGVkY0NtcGFydG1lbnROdW1iZXJQb3NpdGlvbi55fXB4XCJcbiAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ9XCIke2NhbGN1bGF0ZWRjQ21wYXJ0bWVudE51bWJlclBvc2l0aW9uLnh9cHhcIlxuICAgICAgICAgIHdpZHRoPVwiJHtjYWxjdWxhdGVkY0NtcGFydG1lbnROdW1iZXJEaW1lbnNpb24ud31weFwiXG4gICAgICAgICAgaGVpZ2h0PVwiJHtjYWxjdWxhdGVkY0NtcGFydG1lbnROdW1iZXJEaW1lbnNpb24uaH1weFwiXG4gICAgICAgICAgei1pbmRleD1cIiR7c2VydmljZUVsZW1lbnQucG9zaXRpb24uen1cIlxuICAgICAgICA+XG4gICAgICAgICAgPHNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWNcbiAgICAgICAgICAgIG5hbWU9JHtzZXJ2aWNlRWxlbWVudC5pY29uID8/IG5vdGhpbmd9XG4gICAgICAgICAgICB3aWR0aD0ke3NlcnZpY2VFbGVtZW50LmRpbWVuc2lvbi53ICogdGhpcy5iYXNlR3JpZFNpemV9XG4gICAgICAgICAgICBoZWlnaHQ9JHtzZXJ2aWNlRWxlbWVudC5kaW1lbnNpb24uaCAqIHRoaXMuYmFzZUdyaWRTaXplfVxuICAgICAgICAgICAgLnJvdGF0aW9uPSR7ZWxlbWVudEZpeGVkUm90YXRpb259XG4gICAgICAgICAgICByb2xlPVwiaW1nXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICB0aXRsZT0ke3RpdGxlRGVzY3JpcHRpb24gPz8gbm90aGluZ31cbiAgICAgICAgICA+PC9zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljPlxuICAgICAgICA8L3NiYi1zZWF0LXJlc2VydmF0aW9uLXNjb3BlZD5cbiAgICAgIGA7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTWFuYWdlcyB0aGUgc2VsZWN0ZWQgcGxhY2UgZXZlbnQgdHJpZ2dlcmVkIGZyb20gdGhlIHBsYWNlXG4gICAqIEVhY2ggc2VsZWN0aW9uIGVtaXRzIGFuIGFycmF5IG9mIGFsbCBzZWxlY3RlZCBwbGFjZXNcbiAgICogQHBhcmFtIHNlbGVjdFBsYWNlRXZlbnRcbiAgICovXG4gIHByaXZhdGUgX29uU2VsZWN0UGxhY2Uoc2VsZWN0UGxhY2VFdmVudDogQ3VzdG9tRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RlZFBsYWNlID0gc2VsZWN0UGxhY2VFdmVudC5kZXRhaWwgYXMgUGxhY2VTZWxlY3Rpb247XG4gICAgLy8gV2UgaGF2ZSB0byBzZXQgcHJldmVudENvYWNoU2Nyb2xsQnlQbGFjZUNsaWNrIHRvIHRydWUsIHRvIHByZXZlbnQgYXV0b21hdGljIHNjcm9sbGluZyB0byB0aGUgbmV3IGZvY3VzZWQgcGxhY2VcbiAgICB0aGlzLnByZXZlbnRDb2FjaFNjcm9sbEJ5UGxhY2VDbGljayA9IHRydWU7XG4gICAgdGhpcy5pc0NvYWNoR3JpZEZvY3VzYWJsZSA9IGZhbHNlO1xuICAgIGlmICghdGhpcy5wcmV2ZW50UGxhY2VDbGljaykge1xuICAgICAgLy8gQWRkIHBsYWNlIHRvIHBsYWNlIGNvbGxlY3Rpb25cbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRTZWF0UmVzZXJ2YXRpb25QbGFjZXMoc2VsZWN0ZWRQbGFjZSk7XG4gICAgICB0aGlzLnVwZGF0ZUN1cnJlbnRTZWxlY3RlZFBsYWNlSW5Db2FjaChzZWxlY3RlZFBsYWNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vblNlbGVjdE5hdkNvYWNoKGV2ZW50OiBDdXN0b21FdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkTmF2Q29hY2hJbmRleCA9IGV2ZW50LmRldGFpbCBhcyBudW1iZXI7XG4gICAgdGhpcy5pc0tleWJvYXJkTmF2aWdhdGlvbiA9IGZhbHNlO1xuXG4gICAgaWYgKHNlbGVjdGVkTmF2Q29hY2hJbmRleCAhPT0gbnVsbCAmJiBzZWxlY3RlZE5hdkNvYWNoSW5kZXggIT09IHRoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleCkge1xuICAgICAgdGhpcy51bmZvY3VzUGxhY2VFbGVtZW50KCk7XG4gICAgICB0aGlzLnNjcm9sbFRvU2VsZWN0ZWROYXZDb2FjaChzZWxlY3RlZE5hdkNvYWNoSW5kZXgpO1xuICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWROYXZDb2FjaEluZGV4ID09PSB0aGlzLmN1cnJTZWxlY3RlZENvYWNoSW5kZXgpIHtcbiAgICAgIHRoaXMudXBkYXRlQ3VycmVudFNlbGVjdGVkQ29hY2goKTtcbiAgICAgIHRoaXMucHJlc2VsZWN0UGxhY2VJbkNvYWNoKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25Gb2N1c05hdkNvYWNoKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wcmV2ZW50Q29hY2hTY3JvbGxCeVBsYWNlQ2xpY2spIHtcbiAgICAgIHRoaXMucHJlc2VsZWN0UGxhY2VJbkNvYWNoKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9jdXNQbGFjZUVsZW1lbnQodGhpcy5jdXJyU2VsZWN0ZWRQbGFjZSk7XG4gICAgfVxuICAgIHRoaXMuaXNBdXRvU2Nyb2xsaW5nID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIF9nZXREZXNjcmlwdGlvblRhYmxlQ29hY2goY29hY2hJdGVtOiBDb2FjaEl0ZW0pOiBzdHJpbmcge1xuICAgIGlmICghY29hY2hJdGVtLnBsYWNlcz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZ2V0STE4blNlYXRSZXNlcnZhdGlvbignQ09BQ0hfQkxPQ0tFRF9UQUJMRV9DQVBUSU9OJywgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCwgW1xuICAgICAgICBjb2FjaEl0ZW0uaWQsXG4gICAgICBdKTtcbiAgICB9XG5cbiAgICBsZXQgdGFibGVDb2FjaERlc2NyaXB0aW9uID0gJyc7XG4gICAgY29uc3QgYXJlYURlc2NyaXB0aW9ucyA9IHRoaXMuX2dldFRpdGxlRGVzY3JpcHRpb25MaXN0U3RyaW5nKGNvYWNoSXRlbS5ncmFwaGljRWxlbWVudHMhKTtcbiAgICBjb25zdCBzZXJ2aWNlRGVzY3JpcHRpb25zID0gdGhpcy5fZ2V0VGl0bGVEZXNjcmlwdGlvbkxpc3RTdHJpbmcoY29hY2hJdGVtLnNlcnZpY2VFbGVtZW50cyEpO1xuXG4gICAgdGFibGVDb2FjaERlc2NyaXB0aW9uID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbignQ09BQ0hfVEFCTEVfQ0FQVElPTicsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsIFtcbiAgICAgIGNvYWNoSXRlbS5pZCxcbiAgICBdKTtcblxuICAgIGlmICghIWFyZWFEZXNjcmlwdGlvbnMgfHwgISFzZXJ2aWNlRGVzY3JpcHRpb25zKSB7XG4gICAgICB0YWJsZUNvYWNoRGVzY3JpcHRpb24gKz1cbiAgICAgICAgJy4gJyArIGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ0NPQUNIX0FWQUlMQUJMRV9TRVJWSUNFUycsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpICsgJzogJztcbiAgICAgIHRhYmxlQ29hY2hEZXNjcmlwdGlvbiArPSBzZXJ2aWNlRGVzY3JpcHRpb25zICsgJywgJyArIGFyZWFEZXNjcmlwdGlvbnMgKyAnLic7XG4gICAgfVxuICAgIHJldHVybiB0YWJsZUNvYWNoRGVzY3JpcHRpb247XG4gIH1cblxuICBwcml2YXRlIF9nZXRUaXRsZURlc2NyaXB0aW9uTGlzdFN0cmluZyhkZXNjcmlwdGlvbnNFbGVtZW50czogQmFzZUVsZW1lbnRbXSk6IHN0cmluZyB7XG4gICAgY29uc3QgdW5pcXVlRGVzY3JpcHRpb25zOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgcmV0dXJuIGRlc2NyaXB0aW9uc0VsZW1lbnRzXG4gICAgICA/Lm1hcCgoZGVzY3JpcHRpb25FbGVtZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGljb24gPSBkZXNjcmlwdGlvbkVsZW1lbnQuaWNvbjtcbiAgICAgICAgaWYgKCFpY29uKSByZXR1cm4gbnVsbDtcblxuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbkFscmVheUV4aXN0ID0gdW5pcXVlRGVzY3JpcHRpb25zLmluZGV4T2YoaWNvbikgPiAtMTtcbiAgICAgICAgY29uc3QgdHJhbnNsYXRpb24gPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKFxuICAgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC5pY29uISxcbiAgICAgICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBpc1ZhbGlkRGVzY3JpcHRpb24gPVxuICAgICAgICAgIHRoaXMuX25vdEZpeGVkUm90YXRhYmxlQXJlYUljb25zLmluZGV4T2YoaWNvbikgPT09IC0xICYmXG4gICAgICAgICAgdGhpcy5fbm90QXJlYUVsZW1lbnRzLmluZGV4T2YoaWNvbikgPT09IC0xO1xuXG4gICAgICAgIGlmICghZGVzY3JpcHRpb25BbHJlYXlFeGlzdCkge1xuICAgICAgICAgIHVuaXF1ZURlc2NyaXB0aW9ucy5wdXNoKGRlc2NyaXB0aW9uRWxlbWVudC5pY29uISk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICEhdHJhbnNsYXRpb24gJiYgIWRlc2NyaXB0aW9uQWxyZWF5RXhpc3QgJiYgaXNWYWxpZERlc2NyaXB0aW9uID8gdHJhbnNsYXRpb24gOiBudWxsO1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoKGRlc2NyaXB0aW9uKSA9PiAhIWRlc2NyaXB0aW9uKVxuICAgICAgLmpvaW4oJywgJyk7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1zZWF0LXJlc2VydmF0aW9uJzogU2JiU2VhdFJlc2VydmF0aW9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBaUNNLDZCQUF5QixNQUFBOzswQkFEOUIsY0FBYyxzQkFBc0IsQ0FBQzs7OztvQkFDRTs7Ozs7Ozs7Ozs7Ozs7OztBQUFSLEVBQUEsbUJBQVEsWUFBMEI7QUFBQTs7QUFLaEU7QUFLQTtBQUtBO0FBS0E7QUFLQTtBQXBCeUIseUJBQUEsbUNBQUEsa0JBQUEsTUFBQSwrQkFBbUMsSUFBSztBQUt4Qyx5QkFBQSxrQ0FBQSxrQkFBQSxNQUFBLGtDQUFBLEdBQUEsa0JBQUEsTUFBQSw2QkFBeUIsSUFBSTtBQUs3Qix5QkFBQSxrQ0FBQSxrQkFBQSxNQUFBLGdDQUFBLEdBQUEsa0JBQUEsTUFBQSw2QkFBeUIsS0FBSztBQUs5Qix5QkFBQSxvQ0FBQSxrQkFBQSxNQUFBLGdDQUFBLEdBQUEsa0JBQUEsTUFBQSwrQkFBMEIsSUFBSztBQUsvQix5QkFBQSxzQ0FBQSxrQkFBQSxNQUFBLGtDQUFBLEdBQUEsa0JBQUEsTUFBQSxpQ0FBNkIsS0FBSztBQUVuRCxXQUFBLDRFQUFZLElBQUksc0JBQXNCLElBQUk7QUFHMUMsV0FBQSxtQkFBbUI7QUFBQSxRQUN6QjtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLE1BQUE7QUFHTSxXQUFBLDhCQUE4QixDQUFDLFlBQVk7QUFBQSxJQUFB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
608
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvc2VhdC1yZXNlcnZhdGlvbi9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24uY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGh0bWwsIG5vdGhpbmcgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgY2xhc3NNYXAgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9jbGFzcy1tYXAuanMnO1xuaW1wb3J0IHsgc3R5bGVNYXAgfSBmcm9tICdsaXQvZGlyZWN0aXZlcy9zdHlsZS1tYXAuanMnO1xuXG5pbXBvcnQgeyBnZXRJMThuU2VhdFJlc2VydmF0aW9uIH0gZnJvbSAnLi4vY29tbW9uLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgQ29hY2hJdGVtLFxuICBQbGFjZSxcbiAgRWxlbWVudERpbWVuc2lvbixcbiAgQmFzZUVsZW1lbnQsXG4gIFBsYWNlU2VsZWN0aW9uLFxuICBTZWF0UmVzZXJ2YXRpb24sXG59IGZyb20gJy4uL2NvbW1vbi5qcyc7XG5cbmltcG9ydCB7IFNlYXRSZXNlcnZhdGlvbkJhc2VFbGVtZW50IH0gZnJvbSAnLi9zZWF0LXJlc2VydmF0aW9uLWJhc2UtZWxlbWVudC5qcyc7XG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zZWF0LXJlc2VydmF0aW9uLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvc2NyZWVuLXJlYWRlci1vbmx5LmpzJztcbmltcG9ydCAnLi4vc2VhdC1yZXNlcnZhdGlvbi1hcmVhLmpzJztcbmltcG9ydCAnLi4vc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLmpzJztcbmltcG9ydCAnLi4vc2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sLmpzJztcbmltcG9ydCAnLi4vc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoLmpzJztcbmltcG9ydCAnLi4vc2VhdC1yZXNlcnZhdGlvbi1zY29wZWQuanMnO1xuXG4vKipcbiAqIERlc2NyaWJlIHRoZSBwdXJwb3NlIG9mIHRoZSBjb21wb25lbnQgd2l0aCBhIHNpbmdsZSBzaG9ydCBzZW50ZW5jZS5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLXNlYXQtcmVzZXJ2YXRpb24nKVxuY2xhc3MgU2JiU2VhdFJlc2VydmF0aW9uRWxlbWVudCBleHRlbmRzIFNlYXRSZXNlcnZhdGlvbkJhc2VFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG5cbiAgLyoqIFRoZSBzZWF0IHJlc2VydmF0aW9uIG9iamVjdCB3aGljaCBjb250YWlucyBhbGwgY29hY2hlcyBhbmQgcGxhY2VzICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3NlYXQtcmVzZXJ2YXRpb24nLCB0eXBlOiBPYmplY3QgfSlcbiAgcHVibGljIG92ZXJyaWRlIGFjY2Vzc29yIHNlYXRSZXNlcnZhdGlvbjogU2VhdFJlc2VydmF0aW9uID0gbnVsbCE7XG5cbiAgLyoqIFRoZSBzZWF0IHJlc2VydmF0aW9uIG5hdmlnYXRpb24gY2FuIGJlIHRvZ2dsZWQgYnkgdGhpcyBwcm9wZXJ0eSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnaGFzLW5hdmlnYXRpb24nLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBhY2Nlc3NvciBoYXNOYXZpZ2F0aW9uOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKiogQ29udHJvbHMgdGhlIHZpc3VhbCByZXByZXNlbnRhdGlvbiBvZiBzZWF0IHJlc2VydmF0aW9uIGluIGEgaG9yaXpvbmFsIG9yIHZlcnRpY2FsIGFsaWdubWVudCAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWxpZ24tdmVydGljYWwnLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBhY2Nlc3NvciBhbGlnblZlcnRpY2FsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIE1heGltYWwgbnVtYmVyIG9mIHBvc3NpYmxlIGNsaWNrYWJsZSBzZWF0cyAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnbWF4LXJlc2VydmF0aW9ucycsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgYWNjZXNzb3IgbWF4UmVzZXJ2YXRpb25zOiBudW1iZXIgPSBudWxsITtcblxuICAvKiogQW55IGNsaWNrIGZ1bmN0aW9uYWxpdHkgaXMgcHJldmVudGVkICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdwcmV2ZW50LXBsYWNlLWNsaWNrJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgYWNjZXNzb3IgcHJldmVudFBsYWNlQ2xpY2s6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2NvYWNoZXNIdG1sVGVtcGxhdGU/OiBUZW1wbGF0ZVJlc3VsdDtcbiAgLy8gR3JhcGhpY3MgdGhhdCBzaG91bGQgbm90IGJlIHJlbmRlcmVkIHdpdGggYW4gYXJlYVxuICBwcml2YXRlIF9ub3RBcmVhRWxlbWVudHMgPSBbXG4gICAgJ0RSSVZFUl9BUkVBX0ZVTEwnLFxuICAgICdDT0FDSF9QQVNTQUdFJyxcbiAgICAnQ09BQ0hfV0FMTF9OT19QQVNTQUdFJyxcbiAgICAnQ09NUEFSVE1FTlRfUEFTU0FHRScsXG4gICAgJ0NPTVBBUlRNRU5UX1BBU1NBR0VfSElHSCcsXG4gICAgJ0NPTVBBUlRNRU5UX1BBU1NBR0VfTUlERExFJyxcbiAgICAnQ09NUEFSVE1FTlRfUEFTU0FHRV9MT1cnLFxuICBdO1xuICAvLyBBcmVhIGljb25zIHRoYXQgc2hvdWxkIG5vdCBiZSBmaXhlZCBkdXJpbmcgcm90YXRpb24gd2hlbiB2ZXJ0aWNhbCBtb2RlIGlzIHNlbGVjdGVkXG4gIHByaXZhdGUgX25vdEZpeGVkUm90YXRhYmxlQXJlYUljb25zID0gWydFTlRSWV9FWElUJ107XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdoYXNOYXZpZ2F0aW9uJykpIHtcbiAgICAgIGlmICh0aGlzLmhhc05hdmlnYXRpb24pIHtcbiAgICAgICAgdGhpcy5zaGFkb3dSb290XG4gICAgICAgICAgPy5xdWVyeVNlbGVjdG9yQWxsKCd0YWJsZScpXG4gICAgICAgICAgLmZvckVhY2goKHRhYmxlKSA9PiB0YWJsZS5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4JykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zaGFkb3dSb290XG4gICAgICAgICAgPy5xdWVyeVNlbGVjdG9yQWxsKCd0YWJsZScpXG4gICAgICAgICAgLmZvckVhY2goKHRhYmxlKSA9PiB0YWJsZS5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIHRoaXMuX2NvbXBvbmVudFNldHVwKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHwgbnVsbCB7XG4gICAgdGhpcy5faW5pdFZlaGljbGVTZWF0UmVzZXJ2YXRpb25Db25zdHJ1Y3Rpb24oKTtcbiAgICByZXR1cm4gdGhpcy5fY29hY2hlc0h0bWxUZW1wbGF0ZSB8fCBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29tcG9uZW50U2V0dXAoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0TmF2aWdhdGlvblNlbGVjdGlvbkJ5U2Nyb2xsRXZlbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRWZWhpY2xlU2VhdFJlc2VydmF0aW9uQ29uc3RydWN0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvYWNoSXRlbXMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuc2VhdFJlc2VydmF0aW9uPy5jb2FjaEl0ZW1zKSk7XG4gICAgY29uc3QgY2xhc3NBbGlnblZlcnRpY2FsID0gdGhpcy5hbGlnblZlcnRpY2FsID8gJ3NiYi1zcl9fd3JhcHBlci0tdmVydGljYWwnIDogJyc7XG5cbiAgICB0aGlzLl9jb2FjaGVzSHRtbFRlbXBsYXRlID0gaHRtbGBcbiAgICAgIDxkaXY+XG4gICAgICAgIDxzYmItc2NyZWVuLXJlYWRlci1vbmx5PlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgaWQ9XCJmaXJzdC10YWItZWxlbWVudFwiXG4gICAgICAgICAgICByb2xlPVwiY29udGVudGluZm9cIlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIiR7Z2V0STE4blNlYXRSZXNlcnZhdGlvbignU0VBVF9SRVNFUlZBVElPTl9CRUdJTicsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpfVwiXG4gICAgICAgICAgICByZWFkb25seVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc2JiLXNjcmVlbi1yZWFkZXItb25seT5cblxuICAgICAgICA8ZGl2IEBrZXlkb3duPSR7KGV2dDogS2V5Ym9hcmRFdmVudCkgPT4gdGhpcy5oYW5kbGVLZXlib2FyZEV2ZW50KGV2dCl9PlxuICAgICAgICAgICR7dGhpcy5fcmVuZGVyTmF2aWdhdGlvbigpfVxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3JfX3dyYXBwZXIgJHtjbGFzc0FsaWduVmVydGljYWx9XCI+XG4gICAgICAgICAgICA8ZGl2IGlkPVwic2JiLXNyX19wYXJlbnQtYXJlYVwiIGNsYXNzPVwic2JiLXNyX19wYXJlbnRcIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgICAgICAgIDx1bCBjbGFzcz1cInNiYi1zcl9fbGlzdC1jb2FjaGVzXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICAgICAgICAgICR7dGhpcy5fcmVuZGVyQ29hY2hlcyhjb2FjaEl0ZW1zKX1cbiAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8c2JiLXNjcmVlbi1yZWFkZXItb25seT5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGlkPVwibGFzdC10YWItZWxlbWVudFwiXG4gICAgICAgICAgICByb2xlPVwiY29udGVudGluZm9cIlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIiR7Z2V0STE4blNlYXRSZXNlcnZhdGlvbignU0VBVF9SRVNFUlZBVElPTl9FTkQnLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KX1cIlxuICAgICAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgICAvPlxuICAgICAgICA8L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHk+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyTmF2aWdhdGlvbigpOiBUZW1wbGF0ZVJlc3VsdCB8IG51bGwge1xuICAgIGlmICghdGhpcy5oYXNOYXZpZ2F0aW9uKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxuYXYgY2xhc3M9XCIke2NsYXNzTWFwKHsgJ3NiYi1zci1uYXZpZ2F0aW9uLS12ZXJ0aWNhbCc6IHRoaXMuYWxpZ25WZXJ0aWNhbCB9KX1cIj5cbiAgICAgICAgPHVsXG4gICAgICAgICAgY2xhc3M9XCJzYmItc3ItbmF2aWdhdGlvbl9fbGlzdC1jb2FjaGVzXCJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiJHtnZXRJMThuU2VhdFJlc2VydmF0aW9uKFxuICAgICAgICAgICAgJ1NFQVRfUkVTRVJWQVRJT05fTkFWSUdBVElPTicsXG4gICAgICAgICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LFxuICAgICAgICAgICl9XCJcbiAgICAgICAgPlxuICAgICAgICAgICR7dGhpcy5zZWF0UmVzZXJ2YXRpb24/LmNvYWNoSXRlbXMubWFwKChjb2FjaEl0ZW06IENvYWNoSXRlbSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGh0bWxgPGxpPlxuICAgICAgICAgICAgICA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaFxuICAgICAgICAgICAgICAgIEBzZWxlY3Rjb2FjaD0keyhldmVudDogQ3VzdG9tRXZlbnQ8bnVtYmVyPikgPT4gdGhpcy5fb25TZWxlY3ROYXZDb2FjaChldmVudCl9XG4gICAgICAgICAgICAgICAgQGZvY3VzY29hY2g9JHsoKSA9PiB0aGlzLl9vbkZvY3VzTmF2Q29hY2goKX1cbiAgICAgICAgICAgICAgICBpbmRleD1cIiR7aW5kZXh9XCJcbiAgICAgICAgICAgICAgICBjb2FjaC1pZD1cIiR7Y29hY2hJdGVtLmlkfVwiXG4gICAgICAgICAgICAgICAgLnNlbGVjdGVkPSR7dGhpcy5zZWxlY3RlZENvYWNoSW5kZXggPT09IGluZGV4fVxuICAgICAgICAgICAgICAgIC5mb2N1c2VkPSR7dGhpcy5mb2N1c2VkQ29hY2hJbmRleCA9PT0gaW5kZXh9XG4gICAgICAgICAgICAgICAgLnByb3BlcnR5SWRzPVwiJHtjb2FjaEl0ZW0ucHJvcGVydHlJZHN9XCJcbiAgICAgICAgICAgICAgICAudHJhdmVsQ2xhc3M9XCIke2NvYWNoSXRlbS50cmF2ZWxDbGFzc31cIlxuICAgICAgICAgICAgICAgID9kcml2ZXItYXJlYT1cIiR7IWNvYWNoSXRlbS5wbGFjZXM/Lmxlbmd0aH1cIlxuICAgICAgICAgICAgICAgID9maXJzdD1cIiR7aW5kZXggPT09IDB9XCJcbiAgICAgICAgICAgICAgICA/bGFzdD1cIiR7aW5kZXggPT09IHRoaXMuc2VhdFJlc2VydmF0aW9uPy5jb2FjaEl0ZW1zLmxlbmd0aCAtIDF9XCJcbiAgICAgICAgICAgICAgICA/dmVydGljYWw9XCIke3RoaXMuYWxpZ25WZXJ0aWNhbH1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaD5cbiAgICAgICAgICAgIDwvbGk+YDtcbiAgICAgICAgICB9KX1cbiAgICAgICAgPC91bD5cbiAgICAgIDwvbmF2PlxuICAgIGA7XG4gIH1cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBjb2FjaGVzXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwcml2YXRlIF9yZW5kZXJDb2FjaGVzKGNvYWNoZXM/OiBDb2FjaEl0ZW1bXSk6IFRlbXBsYXRlUmVzdWx0W10gfCBudWxsIHtcbiAgICBpZiAoIWNvYWNoZXMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gY29hY2hlcy5tYXAoKGNvYWNoSXRlbTogQ29hY2hJdGVtLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPGxpIGNsYXNzPVwic2JiLXNyX19pdGVtLWNvYWNoXCI+JHt0aGlzLl9yZW5kZXJDb2FjaEVsZW1lbnQoY29hY2hJdGVtLCBpbmRleCl9PC9saT5cbiAgICAgIGA7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJDb2FjaEVsZW1lbnQoY29hY2hJdGVtOiBDb2FjaEl0ZW0sIGluZGV4OiBudW1iZXIpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3QgY2FsY3VsYXRlZENvYWNoRGltZW5zaW9uID0gdGhpcy5nZXRDYWxjdWxhdGVkRGltZW5zaW9uKGNvYWNoSXRlbS5kaW1lbnNpb24pO1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uVGFibGVDb2FjaFdpdGhTZXJ2aWNlcyA9IHRoaXMuX2dldERlc2NyaXB0aW9uVGFibGVDb2FjaChjb2FjaEl0ZW0pO1xuXG4gICAgcmV0dXJuIGh0bWxgIDxzYmItc2VhdC1yZXNlcnZhdGlvbi1zY29wZWRcbiAgICAgIHNjb3BlZC1jbGFzc2VzPVwiY29hY2gtd3JhcHBlclwiXG4gICAgICBoZWlnaHQ9XCIke2NhbGN1bGF0ZWRDb2FjaERpbWVuc2lvbi5ofXB4XCJcbiAgICAgIHdpZHRoPVwiJHtjYWxjdWxhdGVkQ29hY2hEaW1lbnNpb24ud31weFwiXG4gICAgPlxuICAgICAgJHt0aGlzLl9nZXRSZW5kZXJlZENvYWNoQm9yZGVycyhjb2FjaEl0ZW0sIGluZGV4KX1cbiAgICAgICR7dGhpcy5fZ2V0UmVuZGVyZWRHcmFwaGljYWxFbGVtZW50cyhjb2FjaEl0ZW0uZ3JhcGhpY0VsZW1lbnRzIHx8IFtdLCBjb2FjaEl0ZW0uZGltZW5zaW9uKX1cbiAgICAgICR7dGhpcy5fZ2V0UmVuZGVyZWRTZXJ2aWNlRWxlbWVudHMoY29hY2hJdGVtLnNlcnZpY2VFbGVtZW50cyl9XG4gICAgICA8dGFibGVcbiAgICAgICAgQGZvY3VzPSR7KCkgPT4gdGhpcy5vbkZvY3VzVGFibGVDb2FjaEFuZFByZXNlbGVjdFBsYWNlKGluZGV4KX1cbiAgICAgICAgaWQ9XCJzYmItc3ItY29hY2gtJHtpbmRleH1cIlxuICAgICAgICBjbGFzcz1cInNiYi1zci1jb2FjaC13cmFwcGVyX190YWJsZVwiXG4gICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJzYmItc3ItY29hY2gtY2FwdGlvbi0ke2luZGV4fVwiXG4gICAgICA+XG4gICAgICAgIDxjYXB0aW9uIGlkPVwic2JiLXNyLWNvYWNoLWNhcHRpb24tJHtpbmRleH1cIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgICAgPHNiYi1zY3JlZW4tcmVhZGVyLW9ubHk+JHtkZXNjcmlwdGlvblRhYmxlQ29hY2hXaXRoU2VydmljZXN9PC9zYmItc2NyZWVuLXJlYWRlci1vbmx5PlxuICAgICAgICA8L2NhcHRpb24+XG4gICAgICAgICR7dGhpcy5fZ2V0UmVuZGVyZWRSb3dQbGFjZXMoY29hY2hJdGVtLCBpbmRleCl9XG4gICAgICA8L3RhYmxlPlxuICAgIDwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkPmA7XG4gIH1cblxuICBwcml2YXRlIF9nZXRSZW5kZXJlZENvYWNoQm9yZGVycyhjb2FjaEl0ZW06IENvYWNoSXRlbSwgY29hY2hJbmRleDogbnVtYmVyKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGFsbEVsZW1lbnRzID0gY29hY2hJdGVtLmdyYXBoaWNFbGVtZW50cztcbiAgICBjb25zdCBDT0FDSF9QQVNTQUdFX1dJRFRIID0gMTtcbiAgICBjb25zdCBkcml2ZXJBcmVhID0gYWxsRWxlbWVudHM/LmZpbmQoXG4gICAgICAoZWxlbWVudDogQmFzZUVsZW1lbnQpID0+IGVsZW1lbnQuaWNvbiA9PT0gJ0RSSVZFUl9BUkVBX0ZVTEwnLFxuICAgICk7XG4gICAgY29uc3QgYm9yZGVyV2lkdGggPSBkcml2ZXJBcmVhXG4gICAgICA/IGNvYWNoSXRlbS5kaW1lbnNpb24udyAtIGRyaXZlckFyZWEuZGltZW5zaW9uLncgLSBDT0FDSF9QQVNTQUdFX1dJRFRIXG4gICAgICA6IGNvYWNoSXRlbS5kaW1lbnNpb24udyAtIENPQUNIX1BBU1NBR0VfV0lEVEggKiAyO1xuICAgIGNvbnN0IGJvcmRlck9mZnNldFggPVxuICAgICAgY29hY2hJbmRleCA9PT0gMCAmJiBkcml2ZXJBcmVhXG4gICAgICAgID8gZHJpdmVyQXJlYT8uZGltZW5zaW9uLncgKiB0aGlzLmJhc2VHcmlkU2l6ZVxuICAgICAgICA6IHRoaXMuYmFzZUdyaWRTaXplO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkXG4gICAgICAgIHNjb3BlZC1jbGFzc2VzPVwiY29hY2gtYm9yZGVyXCJcbiAgICAgICAgaW5zZXQtYmxvY2stc3RhcnQ9XCIke3RoaXMuY29hY2hCb3JkZXJQYWRkaW5nICogLTF9cHhcIlxuICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ9XCIke2JvcmRlck9mZnNldFh9cHhcIlxuICAgICAgPlxuICAgICAgICA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpY1xuICAgICAgICAgIG5hbWU9XCJDT0FDSF9CT1JERVJfTUlERExFXCJcbiAgICAgICAgICB3aWR0aD0ke2JvcmRlcldpZHRoICogdGhpcy5iYXNlR3JpZFNpemV9XG4gICAgICAgICAgaGVpZ2h0PSR7KGNvYWNoSXRlbS5kaW1lbnNpb24uaCArIHRoaXMuY29hY2hCb3JkZXJPZmZzZXQgKiAyKSAqIHRoaXMuYmFzZUdyaWRTaXplfVxuICAgICAgICAgID9zdHJldGNoPSR7dHJ1ZX1cbiAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgPjwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYz5cbiAgICAgIDwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkPlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9nZXRSZW5kZXJlZFJvd1BsYWNlcyhjb2FjaDogQ29hY2hJdGVtLCBjb2FjaEluZGV4OiBudW1iZXIpOiBUZW1wbGF0ZVJlc3VsdFtdIHwgbnVsbCB7XG4gICAgaWYgKCFjb2FjaC5wbGFjZXMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIFByZXBhaXIgcm93cyB3aXRoIHRoZSBwbGFjZXMgdG8gcmVuZGVyIGEgdGFibGVcbiAgICBjb25zdCB0YWJsZVJvd1BsYWNlczogUmVjb3JkPG51bWJlciwgUGxhY2VbXT4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IHBsYWNlIG9mIGNvYWNoLnBsYWNlcykge1xuICAgICAgaWYgKCF0YWJsZVJvd1BsYWNlc1twbGFjZS5wb3NpdGlvbi55XSkge1xuICAgICAgICB0YWJsZVJvd1BsYWNlc1twbGFjZS5wb3NpdGlvbi55XSA9IFtwbGFjZV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YWJsZVJvd1BsYWNlc1twbGFjZS5wb3NpdGlvbi55XS5wdXNoKHBsYWNlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0YWJsZVJvd1BsYWNlcylcbiAgICAgIC5tYXAoKHJvd1BsYWNlczogUGxhY2VbXSwgaW5kZXgpID0+IHtcbiAgICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgICAgPHRyIGlkPVwicm93LSR7Y29hY2hJbmRleH0tJHtyb3dQbGFjZXNbMF0ucG9zaXRpb24ueX1cIiBkYXRhLXJvdy1pbmRleD0ke2luZGV4fT5cbiAgICAgICAgICAgICR7dGhpcy5fZ2V0UmVuZGVyZWRDb2x1bW5QbGFjZXMocm93UGxhY2VzLCBjb2FjaEluZGV4KX1cbiAgICAgICAgICA8L3RyPlxuICAgICAgICBgO1xuICAgICAgfSlcbiAgICAgIC5mbGF0TWFwKChyb3dUZW1wbGF0ZSkgPT4gcm93VGVtcGxhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UmVuZGVyZWRDb2x1bW5QbGFjZXMocGxhY2VzOiBQbGFjZVtdLCBjb2FjaEluZGV4OiBudW1iZXIpOiBUZW1wbGF0ZVJlc3VsdFtdIHwgbnVsbCB7XG4gICAgLy9Tb3J0cyBlYWNoIHBsYWNlIGJ5IGl0cyBhc2NlbmRpbmcgeCBjb29yZGluYXRlXG4gICAgcGxhY2VzLnNvcnQoXG4gICAgICAocGxhY2VBOiBQbGFjZSwgcGxhY2VCOiBQbGFjZSkgPT4gTnVtYmVyKHBsYWNlQS5wb3NpdGlvbi54KSAtIE51bWJlcihwbGFjZUIucG9zaXRpb24ueCksXG4gICAgKTtcblxuICAgIHJldHVybiBwbGFjZXM/Lm1hcCgocGxhY2U6IFBsYWNlLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBjb25zdCBjYWxjdWxhdGVkSW50ZXJuYWxEaW1lbnNpb24gPSB0aGlzLmdldENhbGN1bGF0ZWREaW1lbnNpb24ocGxhY2UuZGltZW5zaW9uKTtcbiAgICAgIGNvbnN0IGNhbGN1bGF0ZWRJbnRlcm5hbFBvc2l0aW9uID0gdGhpcy5nZXRDYWxjdWxhdGVkUG9zaXRpb24ocGxhY2UucG9zaXRpb24pO1xuICAgICAgY29uc3QgdGV4dFJvdGF0aW9uID0gdGhpcy5hbGlnblZlcnRpY2FsID8gLTkwIDogMDtcblxuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgIDxzYmItc2VhdC1yZXNlcnZhdGlvbi1zY29wZWRcbiAgICAgICAgICBzY29wZWQtY2xhc3Nlcz1cImdyYXBoaWNhbC1lbGVtZW50XCJcbiAgICAgICAgICBpbnNldC1ibG9jay1zdGFydD1cIiR7Y2FsY3VsYXRlZEludGVybmFsUG9zaXRpb24ueX1weFwiXG4gICAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0PVwiJHtjYWxjdWxhdGVkSW50ZXJuYWxQb3NpdGlvbi54fXB4XCJcbiAgICAgICAgICB3aWR0aD1cIiR7Y2FsY3VsYXRlZEludGVybmFsRGltZW5zaW9uLnd9cHhcIlxuICAgICAgICAgIGhlaWdodD1cIiR7Y2FsY3VsYXRlZEludGVybmFsRGltZW5zaW9uLmh9cHhcIlxuICAgICAgICAgIHotaW5kZXg9XCIke3BsYWNlLnBvc2l0aW9uLnp9XCJcbiAgICAgICAgICBjZWxsLWlkPVwiY2VsbC0ke2NvYWNoSW5kZXh9LSR7cGxhY2UucG9zaXRpb24ueX0tJHtpbmRleH1cIlxuICAgICAgICA+XG4gICAgICAgICAgPHNiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2xcbiAgICAgICAgICAgIEBzZWxlY3RwbGFjZT0keyhzZWxlY3RQbGFjZUV2ZW50OiBDdXN0b21FdmVudDxQbGFjZVNlbGVjdGlvbj4pID0+XG4gICAgICAgICAgICAgIHRoaXMuX29uU2VsZWN0UGxhY2Uoc2VsZWN0UGxhY2VFdmVudCl9XG4gICAgICAgICAgICBleHBvcnRwYXJ0cz1cInNiYi1zci1wbGFjZS1wYXJ0XCJcbiAgICAgICAgICAgIGlkPVwic2VhdC1yZXNlcnZhdGlvbl9fcGxhY2UtYnV0dG9uLSR7Y29hY2hJbmRleH0tJHtwbGFjZS5udW1iZXJ9XCJcbiAgICAgICAgICAgIGNsYXNzPVwic2VhdC1yZXNlcnZhdGlvbi1wbGFjZS1jb250cm9sXCJcbiAgICAgICAgICAgIGRhdGEtY2VsbC1pZD1cIiR7Y29hY2hJbmRleH0tJHtwbGFjZS5wb3NpdGlvbi55fS0ke2luZGV4fVwiXG4gICAgICAgICAgICB0ZXh0PSR7cGxhY2UubnVtYmVyfVxuICAgICAgICAgICAgdHlwZT0ke3BsYWNlLnR5cGV9XG4gICAgICAgICAgICBzdGF0ZT0ke3BsYWNlLnN0YXRlfVxuICAgICAgICAgICAgd2lkdGg9JHtwbGFjZS5kaW1lbnNpb24udyAqIHRoaXMuYmFzZUdyaWRTaXplfVxuICAgICAgICAgICAgaGVpZ2h0PSR7cGxhY2UuZGltZW5zaW9uLmggKiB0aGlzLmJhc2VHcmlkU2l6ZX1cbiAgICAgICAgICAgIHJvdGF0aW9uPSR7cGxhY2Uucm90YXRpb24gPz8gbm90aGluZ31cbiAgICAgICAgICAgIHRleHQtcm90YXRpb249JHt0ZXh0Um90YXRpb259XG4gICAgICAgICAgICBjb2FjaC1pbmRleD0ke2NvYWNoSW5kZXh9XG4gICAgICAgICAgICAucHJvcGVydHlJZHM9JHtwbGFjZS5wcm9wZXJ0eUlkc31cbiAgICAgICAgICAgIC5wcmV2ZW50Q2xpY2s9JHt0aGlzLnByZXZlbnRQbGFjZUNsaWNrfVxuICAgICAgICAgID48L3NiYi1zZWF0LXJlc2VydmF0aW9uLXBsYWNlLWNvbnRyb2w+XG4gICAgICAgIDwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkPlxuICAgICAgYDtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFJlbmRlcmVkR3JhcGhpY2FsRWxlbWVudHMoXG4gICAgZ3JhcGhpY2FsRWxlbWVudHM6IEJhc2VFbGVtZW50W10sXG4gICAgY29hY2hEaW1lbnNpb246IEVsZW1lbnREaW1lbnNpb24sXG4gICk6IFRlbXBsYXRlUmVzdWx0W10gfCBudWxsIHtcbiAgICBpZiAoIWdyYXBoaWNhbEVsZW1lbnRzKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZ3JhcGhpY2FsRWxlbWVudHM/Lm1hcCgoZ3JhcGhpY2FsRWxlbWVudDogQmFzZUVsZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IGljb24gPSBncmFwaGljYWxFbGVtZW50Lmljb24gPz8gJyc7XG4gICAgICBjb25zdCBlbGVtZW50Um90YXRpb24gPSBncmFwaGljYWxFbGVtZW50LnJvdGF0aW9uIHx8IDA7XG4gICAgICBjb25zdCBpc05vdEZpeGVkUm90YXRpb25HcmFwaGljYWxFbGVtZW50ID1cbiAgICAgICAgdGhpcy5fbm90Rml4ZWRSb3RhdGFibGVBcmVhSWNvbnMuaW5kZXhPZihncmFwaGljYWxFbGVtZW50Lmljb24hKSA9PT0gLTE7XG4gICAgICBjb25zdCBlbGVtZW50Rml4ZWRSb3RhdGlvbiA9XG4gICAgICAgIHRoaXMuYWxpZ25WZXJ0aWNhbCAmJiBpc05vdEZpeGVkUm90YXRpb25HcmFwaGljYWxFbGVtZW50XG4gICAgICAgICAgPyBlbGVtZW50Um90YXRpb24gLSA5MFxuICAgICAgICAgIDogZWxlbWVudFJvdGF0aW9uO1xuXG4gICAgICAvL2NoZWNrIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgbm90IGFuIGFyZWEgZWxlbWVudCwgc2luY2UgdGhpcyBlbGVtZW50IGlzIGRyYXduIHdpdGhvdXQgYW4gYXJlYSBjb21wb25lbnRcbiAgICAgIGlmICh0aGlzLl9ub3RBcmVhRWxlbWVudHMuZmluZEluZGV4KChub3RBcmVhRWxlbWVudCkgPT4gbm90QXJlYUVsZW1lbnQgPT09IGljb24pID4gLTEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldFJlbmRlckVsZW1lbnRXaXRob3V0QXJlYShncmFwaGljYWxFbGVtZW50LCBlbGVtZW50Um90YXRpb24sIGNvYWNoRGltZW5zaW9uKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLl9nZXRSZW5kZXJFbGVtZW50V2l0aEFyZWEoZ3JhcGhpY2FsRWxlbWVudCwgZWxlbWVudEZpeGVkUm90YXRpb24sIGNvYWNoRGltZW5zaW9uKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFJlbmRlckVsZW1lbnRXaXRoQXJlYShcbiAgICBncmFwaGljYWxFbGVtZW50OiBCYXNlRWxlbWVudCxcbiAgICByb3RhdGlvbjogbnVtYmVyLFxuICAgIGNvYWNoRGltZW5zaW9uOiBFbGVtZW50RGltZW5zaW9uLFxuICApOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgLy8gVE9ETyAtPiBpc05vdFRhYmxlR3JhcGhpY1RlbXBGaXggaXMgdGVtcCBmaXggdG8gc2hvdyBjb2FjaCB0YWJsZXMgYXMgYXJlYSBhbmQgbm90IGFzIHN2ZyBncmFwaGljLlxuICAgIC8vIFRoZSBwcm9ibGVtIGhlcmUgaXMgdGhhdCB3aGVuIHVzaW5nIFRBQkxFIHN2ZyBncmFwaGljcyxcbiAgICAvLyB0aGV5IGFyZSBkaXNwbGF5ZWQgZGlzdG9ydGVkIGR1ZSB0byBkaWZmZXJlbnQgaGVpZ2h0cyBhbmQgd2lkdGhzIGFuZCB0aGlzIGlzIG5vdCB2aXN1YWxseSBnb29kLlxuICAgIGNvbnN0IGlzTm90VGFibGVHcmFwaGljVGVtcEZpeCA9IGdyYXBoaWNhbEVsZW1lbnQuaWNvbj8uaW5kZXhPZignVEFCTEUnKSA9PT0gLTE7XG5cbiAgICBjb25zdCBhcmVhUHJvcGVydHkgPVxuICAgICAgZ3JhcGhpY2FsRWxlbWVudC5pY29uICYmIGlzTm90VGFibGVHcmFwaGljVGVtcEZpeCA/IGdyYXBoaWNhbEVsZW1lbnQuaWNvbiA6IG51bGw7XG4gICAgY29uc3Qgc3RyZXRjaEhlaWdodCA9IGFyZWFQcm9wZXJ0eSAhPT0gJ0VOVFJZX0VYSVQnO1xuICAgIGNvbnN0IGFyaWFMYWJlbEZvckFyZWEgPSBncmFwaGljYWxFbGVtZW50Lmljb25cbiAgICAgID8gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihncmFwaGljYWxFbGVtZW50Lmljb24sIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpXG4gICAgICA6IG5vdGhpbmc7XG4gICAgY29uc3QgY2FsY3VsYXRlZERpbWVuc2lvbiA9IHRoaXMuZ2V0Q2FsY3VsYXRlZERpbWVuc2lvbihcbiAgICAgIGdyYXBoaWNhbEVsZW1lbnQuZGltZW5zaW9uLFxuICAgICAgY29hY2hEaW1lbnNpb24sXG4gICAgICB0cnVlLFxuICAgICAgc3RyZXRjaEhlaWdodCxcbiAgICApO1xuICAgIGNvbnN0IGNhbGN1bGF0ZWRQb3NpdGlvbiA9IHRoaXMuZ2V0Q2FsY3VsYXRlZFBvc2l0aW9uKFxuICAgICAgZ3JhcGhpY2FsRWxlbWVudC5wb3NpdGlvbixcbiAgICAgIGdyYXBoaWNhbEVsZW1lbnQuZGltZW5zaW9uLFxuICAgICAgY29hY2hEaW1lbnNpb24sXG4gICAgICB0cnVlLFxuICAgICk7XG5cbiAgICBsZXQgZWxlbWVudE1vdW50aW5nID0gJ2ZyZWUnO1xuICAgIGlmIChncmFwaGljYWxFbGVtZW50LnBvc2l0aW9uLnkgPT09IHRoaXMuY29hY2hCb3JkZXJPZmZzZXQgKiAtMSkge1xuICAgICAgZWxlbWVudE1vdW50aW5nID0gJ3VwcGVyLWJvcmRlcic7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGdyYXBoaWNhbEVsZW1lbnQucG9zaXRpb24ueSArIGdyYXBoaWNhbEVsZW1lbnQuZGltZW5zaW9uLmggPT09XG4gICAgICBjb2FjaERpbWVuc2lvbi5oICsgdGhpcy5jb2FjaEJvcmRlck9mZnNldFxuICAgICkge1xuICAgICAgZWxlbWVudE1vdW50aW5nID0gJ2xvd2VyLWJvcmRlcic7XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkXG4gICAgICAgIHNjb3BlZC1jbGFzc2VzPVwiZ3JhcGhpY2FsLWVsZW1lbnRcIlxuICAgICAgICBpbnNldC1ibG9jay1zdGFydD1cIiR7Y2FsY3VsYXRlZFBvc2l0aW9uLnl9cHhcIlxuICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ9XCIke2NhbGN1bGF0ZWRQb3NpdGlvbi54fXB4XCJcbiAgICAgICAgd2lkdGg9XCIke2NhbGN1bGF0ZWREaW1lbnNpb24ud31weFwiXG4gICAgICAgIGhlaWdodD1cIiR7Y2FsY3VsYXRlZERpbWVuc2lvbi5ofXB4XCJcbiAgICAgICAgei1pbmRleD1cIiR7Z3JhcGhpY2FsRWxlbWVudC5wb3NpdGlvbi56fVwiXG4gICAgICA+XG4gICAgICAgIDxzYmItc2VhdC1yZXNlcnZhdGlvbi1hcmVhXG4gICAgICAgICAgc3R5bGU9JHtzdHlsZU1hcCh7XG4gICAgICAgICAgICAnLS1zYmItcmVzZXJ2YXRpb24tYXJlYS13aWR0aCc6IGdyYXBoaWNhbEVsZW1lbnQuZGltZW5zaW9uLncgKiB0aGlzLmJhc2VHcmlkU2l6ZSxcbiAgICAgICAgICAgICctLXNiYi1yZXNlcnZhdGlvbi1hcmVhLWhlaWdodCc6IGdyYXBoaWNhbEVsZW1lbnQuZGltZW5zaW9uLmggKiB0aGlzLmJhc2VHcmlkU2l6ZSxcbiAgICAgICAgICB9KX1cbiAgICAgICAgICBtb3VudGluZz0ke2VsZW1lbnRNb3VudGluZ31cbiAgICAgICAgICBiYWNrZ3JvdW5kPVwiZGFya1wiXG4gICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICB0aXRsZT0ke2FyaWFMYWJlbEZvckFyZWF9XG4gICAgICAgID5cbiAgICAgICAgICAke2FyZWFQcm9wZXJ0eVxuICAgICAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgICAgIDxzYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljXG4gICAgICAgICAgICAgICAgICBuYW1lPSR7YXJlYVByb3BlcnR5fVxuICAgICAgICAgICAgICAgICAgcm90YXRpb249JHtyb3RhdGlvbn1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPSR7dGhpcy5iYXNlR3JpZFNpemV9XG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9JHt0aGlzLmJhc2VHcmlkU2l6ZX1cbiAgICAgICAgICAgICAgICAgIHJvbGU9XCJpbWdcIlxuICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICA+PC9zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljPlxuICAgICAgICAgICAgICBgXG4gICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgIDwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tYXJlYT5cbiAgICAgIDwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkPlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9nZXRSZW5kZXJFbGVtZW50V2l0aG91dEFyZWEoXG4gICAgZ3JhcGhpY2FsRWxlbWVudDogQmFzZUVsZW1lbnQsXG4gICAgcm90YXRpb246IG51bWJlcixcbiAgICBjb2FjaERpbWVuc2lvbjogRWxlbWVudERpbWVuc2lvbixcbiAgKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGNhbGN1bGF0ZWREaW1lbnNpb24gPSB0aGlzLmdldENhbGN1bGF0ZWREaW1lbnNpb24oXG4gICAgICBncmFwaGljYWxFbGVtZW50LmRpbWVuc2lvbixcbiAgICAgIGNvYWNoRGltZW5zaW9uLFxuICAgICk7XG4gICAgY29uc3QgY2FsY3VsYXRlZFBvc2l0aW9uID0gdGhpcy5nZXRDYWxjdWxhdGVkUG9zaXRpb24oXG4gICAgICBncmFwaGljYWxFbGVtZW50LnBvc2l0aW9uLFxuICAgICAgZ3JhcGhpY2FsRWxlbWVudC5kaW1lbnNpb24sXG4gICAgICBjb2FjaERpbWVuc2lvbixcbiAgICApO1xuXG4gICAgLy8gSWYgdGhlIGljb24gaXMgdGhlIGRyaXZlciBhcmVhLCB0aGVuIGhlcmUgY29uY2F0IHRoZSB2ZWhpY2xlIHR5cGUgdG8gZ2V0IHRoZSByaWdodCB2ZWhpY2xlIGNoYXNzaWUgaWNvblxuICAgIGNvbnN0IGljb24gPVxuICAgICAgZ3JhcGhpY2FsRWxlbWVudC5pY29uICYmIGdyYXBoaWNhbEVsZW1lbnQuaWNvbi5pbmRleE9mKCdEUklWRVJfQVJFQScpID09PSAtMVxuICAgICAgICA/IGdyYXBoaWNhbEVsZW1lbnQuaWNvblxuICAgICAgICA6IGdyYXBoaWNhbEVsZW1lbnQuaWNvbj8uY29uY2F0KCdfJywgdGhpcy5zZWF0UmVzZXJ2YXRpb24udmVoaWNsZVR5cGUpO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkXG4gICAgICAgIHNjb3BlZC1jbGFzc2VzPVwiZ3JhcGhpY2FsLWVsZW1lbnRcIlxuICAgICAgICBpbnNldC1ibG9jay1zdGFydD1cIiR7Y2FsY3VsYXRlZFBvc2l0aW9uLnl9cHhcIlxuICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ9XCIke2NhbGN1bGF0ZWRQb3NpdGlvbi54fXB4XCJcbiAgICAgICAgd2lkdGg9XCIke2NhbGN1bGF0ZWREaW1lbnNpb24ud31weFwiXG4gICAgICAgIGhlaWdodD1cIiR7Y2FsY3VsYXRlZERpbWVuc2lvbi5ofXB4XCJcbiAgICAgICAgei1pbmRleD1cIiR7Z3JhcGhpY2FsRWxlbWVudC5wb3NpdGlvbi56fVwiXG4gICAgICA+XG4gICAgICAgIDxzYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljXG4gICAgICAgICAgbmFtZT0ke2ljb24gPz8gbm90aGluZ31cbiAgICAgICAgICB3aWR0aD0ke2dyYXBoaWNhbEVsZW1lbnQuZGltZW5zaW9uLncgKiB0aGlzLmJhc2VHcmlkU2l6ZX1cbiAgICAgICAgICBoZWlnaHQ9JHtncmFwaGljYWxFbGVtZW50LmRpbWVuc2lvbi5oICogdGhpcy5iYXNlR3JpZFNpemV9XG4gICAgICAgICAgcm90YXRpb249JHtyb3RhdGlvbn1cbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgID9zdHJldGNoPSR7dHJ1ZX1cbiAgICAgICAgPjwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYz5cbiAgICAgIDwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tc2NvcGVkPlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9nZXRSZW5kZXJlZFNlcnZpY2VFbGVtZW50cyhzZXJ2aWNlRWxlbWVudHM/OiBCYXNlRWxlbWVudFtdKTogVGVtcGxhdGVSZXN1bHRbXSB8IG51bGwge1xuICAgIGlmICghc2VydmljZUVsZW1lbnRzKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gc2VydmljZUVsZW1lbnRzPy5tYXAoKHNlcnZpY2VFbGVtZW50OiBCYXNlRWxlbWVudCkgPT4ge1xuICAgICAgY29uc3QgdGl0bGVEZXNjcmlwdGlvbiA9IHNlcnZpY2VFbGVtZW50Lmljb25cbiAgICAgICAgPyBnZXRJMThuU2VhdFJlc2VydmF0aW9uKHNlcnZpY2VFbGVtZW50Lmljb24sIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpXG4gICAgICAgIDogbnVsbDtcbiAgICAgIGNvbnN0IGNhbGN1bGF0ZWRjQ21wYXJ0bWVudE51bWJlckRpbWVuc2lvbiA9IHRoaXMuZ2V0Q2FsY3VsYXRlZERpbWVuc2lvbihcbiAgICAgICAgc2VydmljZUVsZW1lbnQuZGltZW5zaW9uLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGNhbGN1bGF0ZWRjQ21wYXJ0bWVudE51bWJlclBvc2l0aW9uID0gdGhpcy5nZXRDYWxjdWxhdGVkUG9zaXRpb24oXG4gICAgICAgIHNlcnZpY2VFbGVtZW50LnBvc2l0aW9uLFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGVsZW1lbnRSb3RhdGlvbiA9IHNlcnZpY2VFbGVtZW50LnJvdGF0aW9uIHx8IDA7XG4gICAgICBjb25zdCBlbGVtZW50Rml4ZWRSb3RhdGlvbiA9IHRoaXMuYWxpZ25WZXJ0aWNhbCA/IGVsZW1lbnRSb3RhdGlvbiAtIDkwIDogZWxlbWVudFJvdGF0aW9uO1xuXG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPHNiYi1zZWF0LXJlc2VydmF0aW9uLXNjb3BlZFxuICAgICAgICAgIHNjb3BlZC1jbGFzc2VzPVwiZ3JhcGhpY2FsLWVsZW1lbnRcIlxuICAgICAgICAgIGluc2V0LWJsb2NrLXN0YXJ0PVwiJHtjYWxjdWxhdGVkY0NtcGFydG1lbnROdW1iZXJQb3NpdGlvbi55fXB4XCJcbiAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ9XCIke2NhbGN1bGF0ZWRjQ21wYXJ0bWVudE51bWJlclBvc2l0aW9uLnh9cHhcIlxuICAgICAgICAgIHdpZHRoPVwiJHtjYWxjdWxhdGVkY0NtcGFydG1lbnROdW1iZXJEaW1lbnNpb24ud31weFwiXG4gICAgICAgICAgaGVpZ2h0PVwiJHtjYWxjdWxhdGVkY0NtcGFydG1lbnROdW1iZXJEaW1lbnNpb24uaH1weFwiXG4gICAgICAgICAgei1pbmRleD1cIiR7c2VydmljZUVsZW1lbnQucG9zaXRpb24uen1cIlxuICAgICAgICA+XG4gICAgICAgICAgPHNiYi1zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWNcbiAgICAgICAgICAgIG5hbWU9JHtzZXJ2aWNlRWxlbWVudC5pY29uID8/IG5vdGhpbmd9XG4gICAgICAgICAgICB3aWR0aD0ke3NlcnZpY2VFbGVtZW50LmRpbWVuc2lvbi53ICogdGhpcy5iYXNlR3JpZFNpemV9XG4gICAgICAgICAgICBoZWlnaHQ9JHtzZXJ2aWNlRWxlbWVudC5kaW1lbnNpb24uaCAqIHRoaXMuYmFzZUdyaWRTaXplfVxuICAgICAgICAgICAgLnJvdGF0aW9uPSR7ZWxlbWVudEZpeGVkUm90YXRpb259XG4gICAgICAgICAgICByb2xlPVwiaW1nXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICB0aXRsZT0ke3RpdGxlRGVzY3JpcHRpb24gPz8gbm90aGluZ31cbiAgICAgICAgICA+PC9zYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljPlxuICAgICAgICA8L3NiYi1zZWF0LXJlc2VydmF0aW9uLXNjb3BlZD5cbiAgICAgIGA7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTWFuYWdlcyB0aGUgc2VsZWN0ZWQgcGxhY2UgZXZlbnQgdHJpZ2dlcmVkIGZyb20gdGhlIHBsYWNlXG4gICAqIEVhY2ggc2VsZWN0aW9uIGVtaXRzIGFuIGFycmF5IG9mIGFsbCBzZWxlY3RlZCBwbGFjZXNcbiAgICogQHBhcmFtIHNlbGVjdFBsYWNlRXZlbnRcbiAgICovXG4gIHByaXZhdGUgX29uU2VsZWN0UGxhY2Uoc2VsZWN0UGxhY2VFdmVudDogQ3VzdG9tRXZlbnQ8UGxhY2VTZWxlY3Rpb24+KTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWRQbGFjZSA9IHNlbGVjdFBsYWNlRXZlbnQuZGV0YWlsO1xuICAgIC8vIFdlIGhhdmUgdG8gc2V0IHByZXZlbnRDb2FjaFNjcm9sbEJ5UGxhY2VDbGljayB0byB0cnVlLCB0byBwcmV2ZW50IGF1dG9tYXRpYyBzY3JvbGxpbmcgdG8gdGhlIG5ldyBmb2N1c2VkIHBsYWNlXG4gICAgdGhpcy5wcmV2ZW50Q29hY2hTY3JvbGxCeVBsYWNlQ2xpY2sgPSB0cnVlO1xuICAgIHRoaXMuaXNDb2FjaEdyaWRGb2N1c2FibGUgPSBmYWxzZTtcbiAgICBpZiAoIXRoaXMucHJldmVudFBsYWNlQ2xpY2spIHtcbiAgICAgIC8vIEFkZCBwbGFjZSB0byBwbGFjZSBjb2xsZWN0aW9uXG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkU2VhdFJlc2VydmF0aW9uUGxhY2VzKHNlbGVjdGVkUGxhY2UpO1xuICAgICAgdGhpcy51cGRhdGVDdXJyZW50U2VsZWN0ZWRQbGFjZUluQ29hY2goc2VsZWN0ZWRQbGFjZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb25TZWxlY3ROYXZDb2FjaChldmVudDogQ3VzdG9tRXZlbnQ8bnVtYmVyPik6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkTmF2Q29hY2hJbmRleCA9IGV2ZW50LmRldGFpbDtcbiAgICB0aGlzLmlzS2V5Ym9hcmROYXZpZ2F0aW9uID0gZmFsc2U7XG5cbiAgICBpZiAoc2VsZWN0ZWROYXZDb2FjaEluZGV4ICE9PSBudWxsICYmIHNlbGVjdGVkTmF2Q29hY2hJbmRleCAhPT0gdGhpcy5jdXJyU2VsZWN0ZWRDb2FjaEluZGV4KSB7XG4gICAgICB0aGlzLnVuZm9jdXNQbGFjZUVsZW1lbnQoKTtcbiAgICAgIHRoaXMuc2Nyb2xsVG9TZWxlY3RlZE5hdkNvYWNoKHNlbGVjdGVkTmF2Q29hY2hJbmRleCk7XG4gICAgfSBlbHNlIGlmIChzZWxlY3RlZE5hdkNvYWNoSW5kZXggPT09IHRoaXMuY3VyclNlbGVjdGVkQ29hY2hJbmRleCkge1xuICAgICAgdGhpcy51cGRhdGVDdXJyZW50U2VsZWN0ZWRDb2FjaCgpO1xuICAgICAgdGhpcy5wcmVzZWxlY3RQbGFjZUluQ29hY2goKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbkZvY3VzTmF2Q29hY2goKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnByZXZlbnRDb2FjaFNjcm9sbEJ5UGxhY2VDbGljaykge1xuICAgICAgdGhpcy5wcmVzZWxlY3RQbGFjZUluQ29hY2goKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb2N1c1BsYWNlRWxlbWVudCh0aGlzLmN1cnJTZWxlY3RlZFBsYWNlKTtcbiAgICB9XG4gICAgdGhpcy5pc0F1dG9TY3JvbGxpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldERlc2NyaXB0aW9uVGFibGVDb2FjaChjb2FjaEl0ZW06IENvYWNoSXRlbSk6IHN0cmluZyB7XG4gICAgaWYgKCFjb2FjaEl0ZW0ucGxhY2VzPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdDT0FDSF9CTE9DS0VEX1RBQkxFX0NBUFRJT04nLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LCBbXG4gICAgICAgIGNvYWNoSXRlbS5pZCxcbiAgICAgIF0pO1xuICAgIH1cblxuICAgIGxldCB0YWJsZUNvYWNoRGVzY3JpcHRpb24gPSAnJztcbiAgICBjb25zdCBhcmVhRGVzY3JpcHRpb25zID0gdGhpcy5fZ2V0VGl0bGVEZXNjcmlwdGlvbkxpc3RTdHJpbmcoY29hY2hJdGVtLmdyYXBoaWNFbGVtZW50cyEpO1xuICAgIGNvbnN0IHNlcnZpY2VEZXNjcmlwdGlvbnMgPSB0aGlzLl9nZXRUaXRsZURlc2NyaXB0aW9uTGlzdFN0cmluZyhjb2FjaEl0ZW0uc2VydmljZUVsZW1lbnRzISk7XG5cbiAgICB0YWJsZUNvYWNoRGVzY3JpcHRpb24gPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdDT0FDSF9UQUJMRV9DQVBUSU9OJywgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCwgW1xuICAgICAgY29hY2hJdGVtLmlkLFxuICAgIF0pO1xuXG4gICAgaWYgKCEhYXJlYURlc2NyaXB0aW9ucyB8fCAhIXNlcnZpY2VEZXNjcmlwdGlvbnMpIHtcbiAgICAgIHRhYmxlQ29hY2hEZXNjcmlwdGlvbiArPVxuICAgICAgICAnLiAnICsgZ2V0STE4blNlYXRSZXNlcnZhdGlvbignQ09BQ0hfQVZBSUxBQkxFX1NFUlZJQ0VTJywgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCkgKyAnOiAnO1xuICAgICAgdGFibGVDb2FjaERlc2NyaXB0aW9uICs9IHNlcnZpY2VEZXNjcmlwdGlvbnMgKyAnLCAnICsgYXJlYURlc2NyaXB0aW9ucyArICcuJztcbiAgICB9XG4gICAgcmV0dXJuIHRhYmxlQ29hY2hEZXNjcmlwdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFRpdGxlRGVzY3JpcHRpb25MaXN0U3RyaW5nKGRlc2NyaXB0aW9uc0VsZW1lbnRzOiBCYXNlRWxlbWVudFtdKTogc3RyaW5nIHtcbiAgICBjb25zdCB1bmlxdWVEZXNjcmlwdGlvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgICByZXR1cm4gZGVzY3JpcHRpb25zRWxlbWVudHNcbiAgICAgID8ubWFwKChkZXNjcmlwdGlvbkVsZW1lbnQpID0+IHtcbiAgICAgICAgY29uc3QgaWNvbiA9IGRlc2NyaXB0aW9uRWxlbWVudC5pY29uO1xuICAgICAgICBpZiAoIWljb24pIHJldHVybiBudWxsO1xuXG4gICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uQWxyZWF5RXhpc3QgPSB1bmlxdWVEZXNjcmlwdGlvbnMuaW5kZXhPZihpY29uKSA+IC0xO1xuICAgICAgICBjb25zdCB0cmFuc2xhdGlvbiA9IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oXG4gICAgICAgICAgZGVzY3JpcHRpb25FbGVtZW50Lmljb24hLFxuICAgICAgICAgIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGlzVmFsaWREZXNjcmlwdGlvbiA9XG4gICAgICAgICAgdGhpcy5fbm90Rml4ZWRSb3RhdGFibGVBcmVhSWNvbnMuaW5kZXhPZihpY29uKSA9PT0gLTEgJiZcbiAgICAgICAgICB0aGlzLl9ub3RBcmVhRWxlbWVudHMuaW5kZXhPZihpY29uKSA9PT0gLTE7XG5cbiAgICAgICAgaWYgKCFkZXNjcmlwdGlvbkFscmVheUV4aXN0KSB7XG4gICAgICAgICAgdW5pcXVlRGVzY3JpcHRpb25zLnB1c2goZGVzY3JpcHRpb25FbGVtZW50Lmljb24hKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gISF0cmFuc2xhdGlvbiAmJiAhZGVzY3JpcHRpb25BbHJlYXlFeGlzdCAmJiBpc1ZhbGlkRGVzY3JpcHRpb24gPyB0cmFuc2xhdGlvbiA6IG51bGw7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcigoZGVzY3JpcHRpb24pID0+ICEhZGVzY3JpcHRpb24pXG4gICAgICAuam9pbignLCAnKTtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlYXQtcmVzZXJ2YXRpb24nOiBTYmJTZWF0UmVzZXJ2YXRpb25FbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFpQ00sNkJBQXlCLE1BQUE7OzBCQUQ5QixjQUFjLHNCQUFzQixDQUFDOzs7O29CQUNFOzs7Ozs7Ozs7Ozs7Ozs7O0FBQVIsRUFBQSxtQkFBUSxZQUEwQjtBQUFBOztBQUtoRTtBQUtBO0FBS0E7QUFLQTtBQUtBO0FBcEJ5Qix5QkFBQSxtQ0FBQSxrQkFBQSxNQUFBLCtCQUFtQyxJQUFLO0FBS3hDLHlCQUFBLGtDQUFBLGtCQUFBLE1BQUEsa0NBQUEsR0FBQSxrQkFBQSxNQUFBLDZCQUF5QixJQUFJO0FBSzdCLHlCQUFBLGtDQUFBLGtCQUFBLE1BQUEsZ0NBQUEsR0FBQSxrQkFBQSxNQUFBLDZCQUF5QixLQUFLO0FBSzlCLHlCQUFBLG9DQUFBLGtCQUFBLE1BQUEsZ0NBQUEsR0FBQSxrQkFBQSxNQUFBLCtCQUEwQixJQUFLO0FBSy9CLHlCQUFBLHNDQUFBLGtCQUFBLE1BQUEsa0NBQUEsR0FBQSxrQkFBQSxNQUFBLGlDQUE2QixLQUFLO0FBRW5ELFdBQUEsNEVBQVksSUFBSSxzQkFBc0IsSUFBSTtBQUcxQyxXQUFBLG1CQUFtQjtBQUFBLFFBQ3pCO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFBQTtBQUdNLFdBQUEsOEJBQThCLENBQUMsWUFBWTtB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
@@ -105,4 +105,4 @@ let SbbSeatReservationAreaElement = (() => {
105
105
  export {
106
106
  SbbSeatReservationAreaElement
107
107
  };
108
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24tYXJlYS9zZWF0LXJlc2VydmF0aW9uLWFyZWEuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcmNlVHlwZSB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zZWF0LXJlc2VydmF0aW9uLWFyZWEuc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBWaXN1YWxpemUgYW4gYXJlYSB3aXRoIGEgc3BlY2lhbCBtZWFuaW5nIHdpdGhpbiBhIHdhZ29uLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc2VhdC1yZXNlcnZhdGlvbi1hcmVhJylcbmNsYXNzIFNiYlNlYXRSZXNlcnZhdGlvbkFyZWFFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKiBNb3VudGluZyBQcm9wICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBtb3VudGluZzogJ2ZyZWUnIHwgJ3VwcGVyLWJvcmRlcicgfCAnbG93ZXItYm9yZGVyJyB8ICd1cHBlci10by1sb3dlci1ib3JkZXInID1cbiAgICAnZnJlZSc7XG5cbiAgLyoqIHRoZSBiYWNrZ3JvdW5kIG9mIHRoZSBhcmVhICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBiYWNrZ3JvdW5kOiAnbGlnaHQnIHwgJ2RhcmsnID0gJ2xpZ2h0JztcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGA8c2xvdD48L3Nsb3Q+YDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlYXQtcmVzZXJ2YXRpb24tYXJlYSc6IFNiYlNlYXRSZXNlcnZhdGlvbkFyZWFFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBWU0saUNBQTZCLE1BQUE7OzBCQURsQyxjQUFjLDJCQUEyQixDQUFDOzs7O29CQUNDOzs7Ozs7O0FBQVIsRUFBQSxtQkFBUSxZQUFVO0FBQUE7O0FBTXBELHFEQUFBLGtCQUFBLE1BQUEsd0JBQ0UsTUFBTTtBQUtSLHdEQUFBLGtCQUFBLE1BQUEsMkJBQUEsR0FBQSxrQkFBQSxNQUFBLDBCQUErQyxPQUFPOzs7O0lBTnRELElBQWdCLFdBQVE7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQXhCLElBQWdCLFNBQVEsT0FBQTtBQUFBLHlCQUFBLDRCQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFNeEIsSUFBZ0IsYUFBVTtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBMUIsSUFBZ0IsV0FBVSxPQUFBO0FBQUEseUJBQUEsOEJBQUE7QUFBQSxJQUFBO0FBQUEsSUFFUCxTQUFNO0FBQ3ZCLGFBQU87QUFBQSxJQUFBO0FBQUEsS0FUVCw0Q0FNQTs7NEJBUkMsYUFDQSxTQUFTLEVBQUUsU0FBUyxLQUFBLENBQU0sQ0FBQzs4QkFLM0IsYUFDQSxTQUFTLEVBQUUsU0FBUyxLQUFBLENBQU0sQ0FBQztBQUw1QixpQkFBQSxJQUFBLE1BQUEsc0JBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxZQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGNBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFnQixVQUFRLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFSLFdBQVE7QUFBQSxJQUFBLEtBQUEsVUFBQSxhQUFBLHdCQUFBLDJCQUFBO0FBTXhCLGlCQUFBLElBQUEsTUFBQSx3QkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLGNBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsZ0JBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFnQixZQUFVLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFWLGFBQVU7QUFBQSxJQUFBLEtBQUEsVUFBQSxhQUFBLDBCQUFBLDZCQUFBO0FBWjVCLGlCQUFBLE1BQUEsbUJBQUEsRUFBQSxPQUFBLFdBQUEsR0FBQSxrQkFBQSxFQUFBLE1BQUEsU0FBQSxNQUFBLFdBQUEsTUFBQSxVQUFBLFVBQUEsR0FBQSxNQUFBLHVCQUFBOzs7UUFDeUIsR0FBQSxTQUF5QixPQUQ1QyxrQkFBQSxZQUFBLHVCQUFBLEdBQThCOzs7In0=
108
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24tYXJlYS9zZWF0LXJlc2VydmF0aW9uLWFyZWEuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcmNlVHlwZSB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zZWF0LXJlc2VydmF0aW9uLWFyZWEuc2Nzcz9saXQmaW5saW5lJztcblxuLyoqXG4gKiBWaXN1YWxpemUgYW4gYXJlYSB3aXRoIGEgc3BlY2lhbCBtZWFuaW5nIHdpdGhpbiBhIHdhZ29uLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc2VhdC1yZXNlcnZhdGlvbi1hcmVhJylcbmNsYXNzIFNiYlNlYXRSZXNlcnZhdGlvbkFyZWFFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKiBNb3VudGluZyBQcm9wICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBtb3VudGluZzogJ2ZyZWUnIHwgJ3VwcGVyLWJvcmRlcicgfCAnbG93ZXItYm9yZGVyJyB8ICd1cHBlci10by1sb3dlci1ib3JkZXInID1cbiAgICAnZnJlZSc7XG5cbiAgLyoqIHRoZSBiYWNrZ3JvdW5kIG9mIHRoZSBhcmVhICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBiYWNrZ3JvdW5kOiAnbGlnaHQnIHwgJ2RhcmsnID0gJ2xpZ2h0JztcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGA8c2xvdD48L3Nsb3Q+YDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlYXQtcmVzZXJ2YXRpb24tYXJlYSc6IFNiYlNlYXRSZXNlcnZhdGlvbkFyZWFFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBWU0saUNBQTZCLE1BQUE7OzBCQURsQyxjQUFjLDJCQUEyQixDQUFDOzs7O29CQUNDOzs7Ozs7O0FBQVIsRUFBQSxtQkFBUSxZQUFVO0FBQUE7O0FBTXBELHFEQUFBLGtCQUFBLE1BQUEsd0JBQ0UsTUFBTTtBQUtSLHdEQUFBLGtCQUFBLE1BQUEsMkJBQUEsR0FBQSxrQkFBQSxNQUFBLDBCQUErQyxPQUFPOzs7O0lBTnRELElBQWdCLFdBQVE7QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQXhCLElBQWdCLFNBQVEsT0FBQTtBQUFBLHlCQUFBLDRCQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFNeEIsSUFBZ0IsYUFBVTtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBMUIsSUFBZ0IsV0FBVSxPQUFBO0FBQUEseUJBQUEsOEJBQUE7QUFBQSxJQUFBO0FBQUEsSUFFUCxTQUFNO0FBQ3ZCLGFBQU87QUFBQSxJQUNUO0FBQUEsS0FWQSw0Q0FNQTs7NEJBUkMsYUFDQSxTQUFTLEVBQUUsU0FBUyxLQUFBLENBQU0sQ0FBQzs4QkFLM0IsYUFDQSxTQUFTLEVBQUUsU0FBUyxLQUFBLENBQU0sQ0FBQztBQUw1QixpQkFBQSxJQUFBLE1BQUEsc0JBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxZQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGNBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFnQixVQUFRLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFSLFdBQVE7QUFBQSxJQUFBLEtBQUEsVUFBQSxVQUFBLEdBQUEsd0JBQUEsMkJBQUE7QUFNeEIsaUJBQUEsSUFBQSxNQUFBLHdCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsY0FBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxnQkFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQWdCLFlBQVUsS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVYsYUFBVTtBQUFBLElBQUEsS0FBQSxVQUFBLFVBQUEsR0FBQSwwQkFBQSw2QkFBQTtBQVo1QixpQkFBQSxNQUFBLG1CQUFBLEVBQUEsT0FBQSxXQUFBLEdBQUEsa0JBQUEsRUFBQSxNQUFBLFNBQUEsTUFBQSxXQUFBLE1BQUEsVUFBQSxVQUFBLEdBQUEsTUFBQSx1QkFBQTs7O1FBQ3lCLEdBQUEsU0FBeUIsT0FENUMsa0JBQUEsWUFBQSx1QkFBQSxHQUE4Qjs7OyJ9
@@ -220,4 +220,4 @@ let SbbSeatReservationGraphicElement = (() => {
220
220
  export {
221
221
  SbbSeatReservationGraphicElement
222
222
  };
223
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy9zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIHR5cGUgUHJvcGVydHlWYWx1ZXMsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwLmpzJztcblxuaW1wb3J0IHsgZ2V0STE4blNlYXRSZXNlcnZhdGlvbiwgbWFwSWNvblRvU3ZnIH0gZnJvbSAnLi4vY29tbW9uLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvaWNvbi5qcyc7XG5cbi8qKlxuICogT3V0cHV0IG9uZSBvZiB0aGUgU1ZHIGdyYXBoaWNzIGJhc2VkIG9uIGl0cyBjb2RlLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljJylcbmNsYXNzIFNiYlNlYXRSZXNlcnZhdGlvbkdyYXBoaWNFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKiBOYW1lIG9mIHRoZSBTVkcgZ3JhcGhpYyB0byBiZSBkaXNwbGF5ZWQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICduYW1lJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgbmFtZTogc3RyaW5nID0gJyc7XG5cbiAgLyoqIGlmIHRydWUsIHNjYWxlIHRoZSBncmFwaGljIGNvbnRlbnQgb2YgdGhlIGdpdmVuIGVsZW1lbnQgbm9uLXVuaWZvcm1seSBpZiBuZWNlc3NhcnkgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3N0cmV0Y2gnLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBzdHJldGNoOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIGhhbmRsZXMgdGhlIHJvdGF0aW9uIG9mIHRoZSBTVkcgZ3JhcGhpYyAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAncm90YXRpb24nLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIHJvdGF0aW9uOiBudW1iZXIgPSAwO1xuXG4gIC8qKiBJbnZlcnNlIHJvdGF0aW9uIGZvciBwYXJ0IG9mIGFuIFNWRyB0aGF0IGNhbiBiZSByb3RhdGVkIG9wcG9zaXRlIHRvIHRoZSBub3JtYWwgcm90YXRpb24gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2ludmVyc2Utcm9yYXRpb24nLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIGludmVyc2VSb3RhdGlvbjogbnVtYmVyID0gMDtcblxuICAvKiogd2lkdGggb2YgdGhlIHN2ZyBpbiBwaXhlbHMgKHdpdGhvdXQgdW5pdCkgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3dpZHRoJywgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB3aWR0aDogbnVtYmVyID0gbnVsbCE7XG5cbiAgLyoqIGhlaWdodCBvZiB0aGUgc3ZnIGluIHBpeGVscyAod2l0aG91dCB1bml0KSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnaGVpZ2h0JywgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBoZWlnaHQ6IG51bWJlciA9IG51bGwhO1xuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShfY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzKTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShfY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIGlmIChfY2hhbmdlZFByb3BlcnRpZXMuaGFzKCd3aWR0aCcpICYmICEhdGhpcy53aWR0aCkge1xuICAgICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tc2JiLXJlc2VydmF0aW9uLWdyYXBoaWMtd2lkdGgnLCBgJHt0aGlzLndpZHRofWApO1xuICAgIH1cblxuICAgIGlmIChfY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdoZWlnaHQnKSAmJiAhIXRoaXMuaGVpZ2h0KSB7XG4gICAgICB0aGlzLnN0eWxlPy5zZXRQcm9wZXJ0eSgnLS1zYmItcmVzZXJ2YXRpb24tZ3JhcGhpYy1oZWlnaHQnLCBgJHt0aGlzLmhlaWdodH1gKTtcbiAgICB9XG5cbiAgICBpZiAoX2NoYW5nZWRQcm9wZXJ0aWVzLmhhcygncm90YXRpb24nKSkge1xuICAgICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tc2JiLXJlc2VydmF0aW9uLWdyYXBoaWMtcm90YXRpb24nLCBgJHt0aGlzLnJvdGF0aW9ufWApO1xuICAgIH1cblxuICAgIGlmIChfY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdpbnZlcnNlUm90YXRpb24nKSkge1xuICAgICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoXG4gICAgICAgICctLXNiYi1yZXNlcnZhdGlvbi1ncmFwaGljLWludmVyc2Utcm90YXRpb24nLFxuICAgICAgICBgJHt0aGlzLmludmVyc2VSb3RhdGlvbn1gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHwgbnVsbCB7XG4gICAgY29uc3Qgc3ZnT2JqID0gbWFwSWNvblRvU3ZnW3RoaXMubmFtZV07XG5cbiAgICBpZiAoIXN2Z09iaj8uc3ZnICYmICFzdmdPYmo/LnN2Z05hbWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBodG1sYDxzcGFuXG4gICAgICBjbGFzcz1cIiR7Y2xhc3NNYXAoe1xuICAgICAgICAnc2JiLXNyLWljb24nOiAhIXN2Z09iai5zdmdOYW1lLFxuICAgICAgICAnc2JiLXNyLWdyYXBoaWMnOiAhIXN2Z09iai5zdmcsXG4gICAgICB9KX1cIlxuICAgID5cbiAgICAgICR7c3ZnT2JqLnN2Z05hbWVcbiAgICAgICAgPyBodG1sYCA8c2JiLWljb25cbiAgICAgICAgICAgIG5hbWU9XCIke3N2Z09iai5zdmdOYW1lIHx8ICcnfVwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cImZhbHNlXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCIke2dldEkxOG5TZWF0UmVzZXJ2YXRpb24oc3ZnT2JqLnN2Z05hbWUsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpfVwiXG4gICAgICAgICAgPjwvc2JiLWljb24+YFxuICAgICAgICA6IGh0bWxgJHt0aGlzLl9nZXRTdmdFbGVtZW50KHN2Z09iai5zdmchKX1gfVxuICAgIDwvc3Bhbj5gO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0U3ZnRWxlbWVudChzdmc6IHN0cmluZyk6IEVsZW1lbnQgfCBudWxsIHtcbiAgICBjb25zdCBwYXJzZXIgPSBuZXcgRE9NUGFyc2VyKCk7XG4gICAgY29uc3Qgc3ZnU3RyaW5nID0gc3ZnIHx8ICc8c3ZnPjwvc3ZnPic7XG4gICAgY29uc3Qgc3ZnRWxtID0gcGFyc2VyLnBhcnNlRnJvbVN0cmluZyhzdmdTdHJpbmcsICdpbWFnZS9zdmcreG1sJykuZmlyc3RFbGVtZW50Q2hpbGQ7XG4gICAgaWYgKHRoaXMuc3RyZXRjaCAmJiBzdmdFbG0/Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdzdmcnKSB7XG4gICAgICBzdmdFbG0uc2V0QXR0cmlidXRlKCdwcmVzZXJ2ZUFzcGVjdFJhdGlvJywgJ25vbmUnKTtcbiAgICB9XG4gICAgcmV0dXJuIHN2Z0VsbTtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYyc6IFNiYlNlYXRSZXNlcnZhdGlvbkdyYXBoaWNFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQWtCTSxvQ0FBZ0MsTUFBQTs7MEJBRHJDLGNBQWMsOEJBQThCLENBQUM7Ozs7b0JBQ0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBUixFQUFBLG1CQUFRLFlBQVU7QUFBQTs7QUFNdkQ7QUFLQTtBQUtBO0FBS0E7QUFLQTtBQUtBO0FBekJnQix5QkFBQSx3QkFBQSxrQkFBQSxNQUFBLG9CQUFlLEVBQUU7QUFLakIseUJBQUEsNEJBQUEsa0JBQUEsTUFBQSx1QkFBQSxH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
223
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYy9zZWF0LXJlc2VydmF0aW9uLWdyYXBoaWMuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIHR5cGUgUHJvcGVydHlWYWx1ZXMsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwLmpzJztcblxuaW1wb3J0IHsgZ2V0STE4blNlYXRSZXNlcnZhdGlvbiwgbWFwSWNvblRvU3ZnIH0gZnJvbSAnLi4vY29tbW9uLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvaWNvbi5qcyc7XG5cbi8qKlxuICogT3V0cHV0IG9uZSBvZiB0aGUgU1ZHIGdyYXBoaWNzIGJhc2VkIG9uIGl0cyBjb2RlLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc2VhdC1yZXNlcnZhdGlvbi1ncmFwaGljJylcbmNsYXNzIFNiYlNlYXRSZXNlcnZhdGlvbkdyYXBoaWNFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuXG4gIC8qKiBOYW1lIG9mIHRoZSBTVkcgZ3JhcGhpYyB0byBiZSBkaXNwbGF5ZWQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICduYW1lJyB9KVxuICBwdWJsaWMgYWNjZXNzb3IgbmFtZTogc3RyaW5nID0gJyc7XG5cbiAgLyoqIGlmIHRydWUsIHNjYWxlIHRoZSBncmFwaGljIGNvbnRlbnQgb2YgdGhlIGdpdmVuIGVsZW1lbnQgbm9uLXVuaWZvcm1seSBpZiBuZWNlc3NhcnkgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3N0cmV0Y2gnLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBzdHJldGNoOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIGhhbmRsZXMgdGhlIHJvdGF0aW9uIG9mIHRoZSBTVkcgZ3JhcGhpYyAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAncm90YXRpb24nLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIHJvdGF0aW9uOiBudW1iZXIgPSAwO1xuXG4gIC8qKiBJbnZlcnNlIHJvdGF0aW9uIGZvciBwYXJ0IG9mIGFuIFNWRyB0aGF0IGNhbiBiZSByb3RhdGVkIG9wcG9zaXRlIHRvIHRoZSBub3JtYWwgcm90YXRpb24gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2ludmVyc2Utcm9yYXRpb24nLCB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIGludmVyc2VSb3RhdGlvbjogbnVtYmVyID0gMDtcblxuICAvKiogd2lkdGggb2YgdGhlIHN2ZyBpbiBwaXhlbHMgKHdpdGhvdXQgdW5pdCkgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3dpZHRoJywgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB3aWR0aDogbnVtYmVyID0gbnVsbCE7XG5cbiAgLyoqIGhlaWdodCBvZiB0aGUgc3ZnIGluIHBpeGVscyAod2l0aG91dCB1bml0KSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnaGVpZ2h0JywgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBoZWlnaHQ6IG51bWJlciA9IG51bGwhO1xuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShfY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzKTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShfY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIGlmIChfY2hhbmdlZFByb3BlcnRpZXMuaGFzKCd3aWR0aCcpICYmICEhdGhpcy53aWR0aCkge1xuICAgICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tc2JiLXJlc2VydmF0aW9uLWdyYXBoaWMtd2lkdGgnLCBgJHt0aGlzLndpZHRofWApO1xuICAgIH1cblxuICAgIGlmIChfY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdoZWlnaHQnKSAmJiAhIXRoaXMuaGVpZ2h0KSB7XG4gICAgICB0aGlzLnN0eWxlPy5zZXRQcm9wZXJ0eSgnLS1zYmItcmVzZXJ2YXRpb24tZ3JhcGhpYy1oZWlnaHQnLCBgJHt0aGlzLmhlaWdodH1gKTtcbiAgICB9XG5cbiAgICBpZiAoX2NoYW5nZWRQcm9wZXJ0aWVzLmhhcygncm90YXRpb24nKSkge1xuICAgICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tc2JiLXJlc2VydmF0aW9uLWdyYXBoaWMtcm90YXRpb24nLCBgJHt0aGlzLnJvdGF0aW9ufWApO1xuICAgIH1cblxuICAgIGlmIChfY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdpbnZlcnNlUm90YXRpb24nKSkge1xuICAgICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoXG4gICAgICAgICctLXNiYi1yZXNlcnZhdGlvbi1ncmFwaGljLWludmVyc2Utcm90YXRpb24nLFxuICAgICAgICBgJHt0aGlzLmludmVyc2VSb3RhdGlvbn1gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHwgbnVsbCB7XG4gICAgY29uc3Qgc3ZnT2JqID0gbWFwSWNvblRvU3ZnW3RoaXMubmFtZV07XG5cbiAgICBpZiAoIXN2Z09iaj8uc3ZnICYmICFzdmdPYmo/LnN2Z05hbWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBodG1sYDxzcGFuXG4gICAgICBjbGFzcz1cIiR7Y2xhc3NNYXAoe1xuICAgICAgICAnc2JiLXNyLWljb24nOiAhIXN2Z09iai5zdmdOYW1lLFxuICAgICAgICAnc2JiLXNyLWdyYXBoaWMnOiAhIXN2Z09iai5zdmcsXG4gICAgICB9KX1cIlxuICAgID5cbiAgICAgICR7c3ZnT2JqLnN2Z05hbWVcbiAgICAgICAgPyBodG1sYCA8c2JiLWljb25cbiAgICAgICAgICAgIG5hbWU9XCIke3N2Z09iai5zdmdOYW1lIHx8ICcnfVwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cImZhbHNlXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCIke2dldEkxOG5TZWF0UmVzZXJ2YXRpb24oc3ZnT2JqLnN2Z05hbWUsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpfVwiXG4gICAgICAgICAgPjwvc2JiLWljb24+YFxuICAgICAgICA6IGh0bWxgJHt0aGlzLl9nZXRTdmdFbGVtZW50KHN2Z09iai5zdmchKX1gfVxuICAgIDwvc3Bhbj5gO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0U3ZnRWxlbWVudChzdmc6IHN0cmluZyk6IEVsZW1lbnQgfCBudWxsIHtcbiAgICBjb25zdCBwYXJzZXIgPSBuZXcgRE9NUGFyc2VyKCk7XG4gICAgY29uc3Qgc3ZnU3RyaW5nID0gc3ZnIHx8ICc8c3ZnPjwvc3ZnPic7XG4gICAgY29uc3Qgc3ZnRWxtID0gcGFyc2VyLnBhcnNlRnJvbVN0cmluZyhzdmdTdHJpbmcsICdpbWFnZS9zdmcreG1sJykuZmlyc3RFbGVtZW50Q2hpbGQ7XG4gICAgaWYgKHRoaXMuc3RyZXRjaCAmJiBzdmdFbG0/Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdzdmcnKSB7XG4gICAgICBzdmdFbG0uc2V0QXR0cmlidXRlKCdwcmVzZXJ2ZUFzcGVjdFJhdGlvJywgJ25vbmUnKTtcbiAgICB9XG4gICAgcmV0dXJuIHN2Z0VsbTtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlYXQtcmVzZXJ2YXRpb24tZ3JhcGhpYyc6IFNiYlNlYXRSZXNlcnZhdGlvbkdyYXBoaWNFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQWtCTSxvQ0FBZ0MsTUFBQTs7MEJBRHJDLGNBQWMsOEJBQThCLENBQUM7Ozs7b0JBQ0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBUixFQUFBLG1CQUFRLFlBQVU7QUFBQTs7QUFNdkQ7QUFLQTtBQUtBO0FBS0E7QUFLQTtBQUtBO0FBekJnQix5QkFBQSx3QkFBQSxrQkFBQSxNQUFBLG9CQUFlLEVBQUU7QUFLakIseUJBQUEsNEJBQUEsa0JBQUEsTUFBQSx1QkFBQSxHQUFBLGtCQUFBLE1BQUEsdUJBQW1CLEtBQUs7QUFLeEIseUJBQUEsNkJBQUEsa0JBQUEsTUFBQSwwQkFBQSxHQUFBLGtCQUFBLE1BQUEsd0JBQW1CLENBQUM7QUFLcEIseUJBQUEsb0NBQUEsa0JBQUEsTUFBQSwyQkFBQSxHQUFBLGtCQUFBLE1BQUEsK0JBQTBCLENBQUM7QUFLM0IseUJBQUEsMEJBQUEsa0JBQUEsTUFBQSxrQ0FBQSxHQUFBLGtCQUFBLE1BQUEscUJBQWdCLElBQUs7QUFLckIseUJBQUEsMkJBQUEsa0JBQUEsTUFBQSx3QkFBQSxHQUFBLGtCQUFBLE1BQUEsc0JBQWlCLElBQUs7QUFFOUIsV0FBQSxpRUFBWSxJQUFJLHNCQUFzQixJQUFJO0FBQUEsSUF3RHBEO0FBQUE7QUFBQSxJQW5GRSxJQUFnQixPQUFJO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUFwQixJQUFnQixLQUFJLE9BQUE7QUFBQSx5QkFBQSx3QkFBQTtBQUFBLElBQUE7QUFBQTtBQUFBLElBS3BCLElBQWdCLFVBQU87QUFBQSxhQUFBLG1CQUFBO0FBQUEsSUFBQTtBQUFBLElBQXZCLElBQWdCLFFBQU8sT0FBQTtBQUFBLHlCQUFBLDJCQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFLdkIsSUFBZ0IsV0FBUTtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBeEIsSUFBZ0IsU0FBUSxPQUFBO0FBQUEseUJBQUEsNEJBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUt4QixJQUFnQixrQkFBZTtBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBL0IsSUFBZ0IsZ0JBQWUsT0FBQTtBQUFBLHlCQUFBLG1DQUFBO0FBQUEsSUFBQTtBQUFBO0FBQUEsSUFLL0IsSUFBZ0IsUUFBSztBQUFBLGFBQUEsbUJBQUE7QUFBQSxJQUFBO0FBQUEsSUFBckIsSUFBZ0IsTUFBSyxPQUFBO0FBQUEseUJBQUEseUJBQUE7QUFBQSxJQUFBO0FBQUE7QUFBQSxJQUtyQixJQUFnQixTQUFNO0FBQUEsYUFBQSxtQkFBQTtBQUFBLElBQUE7QUFBQSxJQUF0QixJQUFnQixPQUFNLE9BQUE7QUFBQSx5QkFBQSwwQkFBQTtBQUFBLElBQUE7QUFBQSxJQUlILFdBQVcsb0JBQWtDO0FBQzlELFlBQU0sV0FBVyxrQkFBa0I7QUFDbkMsVUFBSSxtQkFBbUIsSUFBSSxPQUFPLEtBQUssQ0FBQyxDQUFDLEtBQUssT0FBTztBQUNuRCxhQUFLLE9BQU8sWUFBWSxtQ0FBbUMsR0FBRyxLQUFLLEtBQUssRUFBRTtBQUFBLE1BQzVFO0FBRUEsVUFBSSxtQkFBbUIsSUFBSSxRQUFRLEtBQUssQ0FBQyxDQUFDLEtBQUssUUFBUTtBQUNyRCxhQUFLLE9BQU8sWUFBWSxvQ0FBb0MsR0FBRyxLQUFLLE1BQU0sRUFBRTtBQUFBLE1BQzlFO0FBRUEsVUFBSSxtQkFBbUIsSUFBSSxVQUFVLEdBQUc7QUFDdEMsYUFBSyxPQUFPLFlBQVksc0NBQXNDLEdBQUcsS0FBSyxRQUFRLEVBQUU7QUFBQSxNQUNsRjtBQUVBLFVBQUksbUJBQW1CLElBQUksaUJBQWlCLEdBQUc7QUFDN0MsYUFBSyxPQUFPLFlBQ1YsOENBQ0EsR0FBRyxLQUFLLGVBQWUsRUFBRTtBQUFBLE1BRTdCO0FBQUEsSUFDRjtBQUFBLElBRW1CLFNBQU07QUFDdkIsWUFBTSxTQUFTLGFBQWEsS0FBSyxJQUFJO0FBRXJDLFVBQUksQ0FBQyxRQUFRLE9BQU8sQ0FBQyxRQUFRLFNBQVM7QUFDcEMsZUFBTztBQUFBLE1BQ1Q7QUFFQSxhQUFPO0FBQUEsZUFDSSxTQUFTO0FBQUEsUUFDaEIsZUFBZSxDQUFDLENBQUMsT0FBTztBQUFBLFFBQ3hCLGtCQUFrQixDQUFDLENBQUMsT0FBTztBQUFBLE1BQUEsQ0FDNUIsQ0FBQztBQUFBO0FBQUEsUUFFQSxPQUFPLFVBQ0w7QUFBQSxvQkFDVSxPQUFPLFdBQVcsRUFBRTtBQUFBO0FBQUEsMEJBRWQsdUJBQXVCLE9BQU8sU0FBUyxLQUFLLFVBQVUsT0FBTyxDQUFDO0FBQUEsMEJBRTlFLE9BQU8sS0FBSyxlQUFlLE9BQU8sR0FBSSxDQUFDLEVBQUU7QUFBQTtBQUFBLElBRWpEO0FBQUEsSUFFUSxlQUFlLEtBQVc7QUFDaEMsWUFBTSxTQUFTLElBQUksVUFBQTtBQUNuQixZQUFNLFlBQVksT0FBTztBQUN6QixZQUFNLFNBQVMsT0FBTyxnQkFBZ0IsV0FBVyxlQUFlLEVBQUU7QUFDbEUsVUFBSSxLQUFLLFdBQVcsUUFBUSxTQUFTLFlBQUEsTUFBa0IsT0FBTztBQUM1RCxlQUFPLGFBQWEsdUJBQXVCLE1BQU07QUFBQSxNQUNuRDtBQUNBLGFBQU87QUFBQSxJQUNUO0FBQUEsS0FsRkEsd0NBS0EsMkNBS0EsNENBS0EsbURBS0EseUNBS0E7O3dCQTNCQyxhQUNBLFNBQVMsRUFBRSxXQUFXLE9BQUEsQ0FBUSxDQUFDO0FBSS9CLDBCQUFBLENBQUEsVUFBQSxHQUNBLFNBQVMsRUFBRSxXQUFXLFdBQVcsTUFBTSxRQUFBLENBQVMsQ0FBQztBQUlqRCwyQkFBQSxDQUFBLFVBQUEsR0FDQSxTQUFTLEVBQUUsV0FBVyxZQUFZLE1BQU0sT0FBQSxDQUFRLENBQUM7QUFJakQsa0NBQUEsQ0FBQSxVQUFBLEdBQ0EsU0FBUyxFQUFFLFdBQVcsb0JBQW9CLE1BQU0sT0FBQSxDQUFRLENBQUM7QUFJekQsd0JBQUEsQ0FBQSxVQUFBLEdBQ0EsU0FBUyxFQUFFLFdBQVcsU0FBUyxNQUFNLE9BQUEsQ0FBUSxDQUFDO0FBSTlDLHlCQUFBLENBQUEsVUFBQSxHQUNBLFNBQVMsRUFBRSxXQUFXLFVBQVUsTUFBTSxPQUFBLENBQVEsQ0FBQztBQXhCaEQsaUJBQUEsSUFBQSxNQUFBLGtCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsUUFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxVQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBZ0IsTUFBSSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBSixPQUFJO0FBQUEsSUFBQSxLQUFBLFVBQUEsVUFBQSxHQUFBLG9CQUFBLHVCQUFBO0FBS3BCLGlCQUFBLElBQUEsTUFBQSxxQkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLFdBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsYUFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQWdCLFNBQU8sS0FBQSxDQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVAsVUFBTztBQUFBLElBQUEsS0FBQSxVQUFBLFVBQUEsR0FBQSx1QkFBQSwwQkFBQTtBQUt2QixpQkFBQSxJQUFBLE1BQUEsc0JBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxZQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLGNBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFnQixVQUFRLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFSLFdBQVE7QUFBQSxJQUFBLEtBQUEsVUFBQSxVQUFBLEdBQUEsd0JBQUEsMkJBQUE7QUFLeEIsaUJBQUEsSUFBQSxNQUFBLDZCQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsbUJBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEscUJBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFnQixpQkFBZSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBZixrQkFBZTtBQUFBLElBQUEsS0FBQSxVQUFBLFVBQUEsR0FBQSwrQkFBQSxrQ0FBQTtBQUsvQixpQkFBQSxJQUFBLE1BQUEsbUJBQUEsRUFBQSxNQUFBLFlBQUEsTUFBQSxTQUFBLFFBQUEsT0FBQSxTQUFBLE9BQUEsUUFBQSxFQUFBLEtBQUEsQ0FBQSxRQUFBLFdBQUEsS0FBQSxLQUFBLENBQUEsUUFBQSxJQUFnQixPQUFLLEtBQUEsQ0FBQSxLQUFBLFVBQUE7QUFBQSxVQUFMLFFBQUs7QUFBQSxJQUFBLEtBQUEsVUFBQSxVQUFBLEdBQUEscUJBQUEsd0JBQUE7QUFLckIsaUJBQUEsSUFBQSxNQUFBLG9CQUFBLEVBQUEsTUFBQSxZQUFBLE1BQUEsVUFBQSxRQUFBLE9BQUEsU0FBQSxPQUFBLFFBQUEsRUFBQSxLQUFBLENBQUEsUUFBQSxZQUFBLEtBQUEsS0FBQSxDQUFBLFFBQUEsSUFBZ0IsUUFBTSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsVUFBTixTQUFNO0FBQUEsSUFBQSxLQUFBLFVBQUEsVUFBQSxHQUFBLHNCQUFBLHlCQUFBO0FBL0J4QixpQkFBQSxNQUFBLG1CQUFBLEVBQUEsT0FBQSxXQUFBLEdBQUEsa0JBQUEsRUFBQSxNQUFBLFNBQUEsTUFBQSxXQUFBLE1BQUEsVUFBQSxVQUFBLEdBQUEsTUFBQSx1QkFBQTs7O1FBQ3lCLEdBQUEsU0FBeUIsT0FENUMsa0JBQUEsWUFBQSx1QkFBQSxHQUFpQzs7OyJ9
@@ -1,5 +1,5 @@
1
1
  import { CSSResultGroup, PropertyValues, TemplateResult, LitElement } from 'lit';
2
- import { PlaceTravelClass } from '../../common.js';
2
+ import { PlaceTravelClass } from '../common.js';
3
3
  export type SelectCoachEventDetails = number;
4
4
  /**
5
5
  * This component will display the navigation coach item for Seat reservation.
@@ -7,8 +7,8 @@ export type SelectCoachEventDetails = number;
7
7
  export declare class SbbSeatReservationNavigationCoachElement extends LitElement {
8
8
  static styles: CSSResultGroup;
9
9
  static readonly events: {
10
- readonly selectCoach: "selectCoach";
11
- readonly focusCoach: "focusCoach";
10
+ readonly selectcoach: "selectcoach";
11
+ readonly focuscoach: "focuscoach";
12
12
  };
13
13
  /** Coach ID, which is used to identify the coach in the navigation */
14
14
  accessor coachId: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seat-reservation-navigation-coach.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements-experimental/seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAW,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAC7F,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAKvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIrD,OAAO,+CAA+C,CAAC;AACvD,OAAO,4CAA4C,CAAC;AAIpD,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE7C;;GAEG;AACH,qBAEM,wCAAyC,SAAQ,UAAU;IAC/D,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;;MAGlB;IAEX,sEAAsE;IACtE,SAEgB,OAAO,EAAE,MAAM,CAAM;IAErC,2FAA2F;IAC3F,SACgB,WAAW,EAAE,MAAM,EAAE,CAAM;IAG3C,SAEgB,QAAQ,EAAE,OAAO,CAAS;IAG1C,SAEgB,OAAO,EAAE,OAAO,CAAS;IAEzC,SAEgB,KAAK,EAAE,MAAM,CAAK;IAElC,gCAAgC;IAChC,SACgB,WAAW,EAAE,gBAAgB,EAAE,CAAiB;IAEhE,+CAA+C;IAC/C,SAEgB,UAAU,EAAE,OAAO,CAAS;IAE5C,kDAAkD;IAClD,SAEgB,KAAK,EAAE,OAAO,CAAS;IAEvC,iDAAiD;IACjD,SAEgB,IAAI,EAAE,OAAO,CAAS;IAEtC,mCAAmC;IACnC,SAEgB,OAAO,EAAE,OAAO,CAAS;IAEzC,6DAA6D;IAC7D,SAEgB,QAAQ,EAAE,OAAO,CAAS;IAE1C,OAAO,CAAC,SAAS,CAAmC;cAEjC,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAwB5E;;;;;;OAMG;cACgB,MAAM,IAAI,cAAc;IAyB3C,OAAO,CAAC,oBAAoB;IAwB5B,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,kCAAkC;IA4B1C,OAAO,CAAC,gCAAgC;IAYxC;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,2BAA2B;CASpC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,uCAAuC,EAAE,wCAAwC,CAAC;KACnF;CACF"}
@@ -11,7 +11,7 @@ import { forceType } from "@sbb-esta/lyne-elements/core/decorators.js";
11
11
  import { css, LitElement, nothing, html } from "lit";
12
12
  import { customElement, property } from "lit/decorators.js";
13
13
  import { classMap } from "lit/directives/class-map.js";
14
- import { getI18nSeatReservation } from "../../common/translations.js";
14
+ import { getI18nSeatReservation } from "../common/translations.js";
15
15
  import "@sbb-esta/lyne-elements/screen-reader-only.js";
16
16
  import "../seat-reservation-navigation-services.js";
17
17
  const style = css`*,
@@ -388,7 +388,7 @@ let SbbSeatReservationNavigationCoachElement = (() => {
388
388
  const selectedNavButtonElement = this.shadowRoot?.querySelector(".sbb-sr-navigation__ctrl-button");
389
389
  if (this.selected && selectedNavButtonElement) {
390
390
  selectedNavButtonElement.focus();
391
- this.dispatchEvent(new Event("focusCoach", { bubbles: true, composed: true }));
391
+ this.dispatchEvent(new Event("focuscoach", { bubbles: true, composed: true }));
392
392
  }
393
393
  }
394
394
  if (changedProperties.has("focused") && this.focused) {
@@ -496,7 +496,11 @@ let SbbSeatReservationNavigationCoachElement = (() => {
496
496
  */
497
497
  _selectNavCoach(coachIndex) {
498
498
  if (!this.driverArea) {
499
- this.dispatchEvent(new CustomEvent("selectCoach", { bubbles: true, composed: true, detail: coachIndex }));
499
+ this.dispatchEvent(new CustomEvent("selectcoach", {
500
+ bubbles: true,
501
+ composed: true,
502
+ detail: coachIndex
503
+ }));
500
504
  }
501
505
  }
502
506
  _getCoachServiceClassNumber() {
@@ -558,12 +562,12 @@ let SbbSeatReservationNavigationCoachElement = (() => {
558
562
  _classThis = _classDescriptor.value;
559
563
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
560
564
  })(), _a.styles = style, _a.events = {
561
- selectCoach: "selectCoach",
562
- focusCoach: "focusCoach"
565
+ selectcoach: "selectcoach",
566
+ focuscoach: "focuscoach"
563
567
  }, __runInitializers(_classThis, _classExtraInitializers), _a;
564
568
  return _classThis;
565
569
  })();
566
570
  export {
567
571
  SbbSeatReservationNavigationCoachElement
568
572
  };
569
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tY29hY2gvc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBub3RoaW5nLCB0eXBlIFByb3BlcnR5VmFsdWVzLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGh0bWwsIExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL2NsYXNzLW1hcC5qcyc7XG5cbmltcG9ydCB7IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24gfSBmcm9tICcuLi8uLi9jb21tb24vdHJhbnNsYXRpb25zLmpzJztcbmltcG9ydCB0eXBlIHsgUGxhY2VUcmF2ZWxDbGFzcyB9IGZyb20gJy4uLy4uL2NvbW1vbi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaC5zY3NzP2xpdCZpbmxpbmUnO1xuXG5pbXBvcnQgJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL3NjcmVlbi1yZWFkZXItb25seS5qcyc7XG5pbXBvcnQgJy4uL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1zZXJ2aWNlcy5qcyc7XG5cbmNvbnN0IE1BWF9TRVJWSUNFX1BST1BFUlRJRVMgPSAzO1xuXG5leHBvcnQgdHlwZSBTZWxlY3RDb2FjaEV2ZW50RGV0YWlscyA9IG51bWJlcjtcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCB3aWxsIGRpc3BsYXkgdGhlIG5hdmlnYXRpb24gY29hY2ggaXRlbSBmb3IgU2VhdCByZXNlcnZhdGlvbi5cbiAqL1xuZXhwb3J0XG5AY3VzdG9tRWxlbWVudCgnc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaCcpXG5jbGFzcyBTYmJTZWF0UmVzZXJ2YXRpb25OYXZpZ2F0aW9uQ29hY2hFbGVtZW50IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBzZWxlY3RDb2FjaDogJ3NlbGVjdENvYWNoJyxcbiAgICBmb2N1c0NvYWNoOiAnZm9jdXNDb2FjaCcsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqIENvYWNoIElELCB3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IHRoZSBjb2FjaCBpbiB0aGUgbmF2aWdhdGlvbiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnY29hY2gtaWQnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBjb2FjaElkOiBzdHJpbmcgPSAnJztcblxuICAvKiogQ29hY2ggc2VydmljZSBwcm9wZXJ0eSBpZHMsIHdoaWNoIGFyZSB1c2VkIHRvIGRpc3BsYXkgdGhlIHNlcnZpY2VzIGluIHRoZSBuYXZpZ2F0aW9uICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3Byb3BlcnR5LWlkcycsIHR5cGU6IEFycmF5IH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBwcm9wZXJ0eUlkczogc3RyaW5nW10gPSBbXTtcblxuICAvKiBwcmUtc2VsZWN0ZWQgQ29hY2ggaW5kZXggcHJvcGVydHkgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIHNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyogZm9jdXMgQ29hY2ggaW5kZXggcHJvcGVydHkgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBpbmRleDogbnVtYmVyID0gMDtcblxuICAvKiogVHJhdmVsIGNsYXNzIG9mIHRoZSBjb2FjaCAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICd0cmF2ZWwtY2xhc3MnLCB0eXBlOiBBcnJheSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgdHJhdmVsQ2xhc3M6IFBsYWNlVHJhdmVsQ2xhc3NbXSA9IFsnQU5ZX0NMQVNTJ107XG5cbiAgLyoqIElmIHRoZSBjb2FjaCBpcyBhIGRyaXZlci9yZXN0cmljdGVkIGFyZWEgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2RyaXZlci1hcmVhJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZHJpdmVyQXJlYTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBJZiB0aGUgY29hY2ggaXMgdGhlIGZpcnN0IGluIHRoZSBuYXZpZ2F0aW9uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBmaXJzdDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBJZiB0aGUgY29hY2ggaXMgdGhlIGxhc3QgaW4gdGhlIG5hdmlnYXRpb24gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGxhc3Q6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogRGlzYWJsZSB0aGUgY29hY2ggbmF2aWdhdGlvbiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnZGlzYWJsZScsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGRpc2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogSWYgdGhlIGNvYWNoIG5hdmlnYXRpb24gc2hvdWxkIGJlIGRpc3BsYXllZCB2ZXJ0aWNhbGx5ICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB2ZXJ0aWNhbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3NlbGVjdGVkJykpIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkTmF2QnV0dG9uRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihcbiAgICAgICAgJy5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24nLFxuICAgICAgKSBhcyBIVE1MQnV0dG9uRWxlbWVudDtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkICYmIHNlbGVjdGVkTmF2QnV0dG9uRWxlbWVudCkge1xuICAgICAgICBzZWxlY3RlZE5hdkJ1dHRvbkVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgLyoqIEVtaXRzIHdoZW4gYSBuYXYgY29hY2ggaGFzIHRoZSBmb2N1cyAqL1xuICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdmb2N1c0NvYWNoJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZm9jdXNlZCcpICYmIHRoaXMuZm9jdXNlZCkge1xuICAgICAgY29uc3QgZm9jdXNlZE5hdkJ1dHRvbkVsZW1lbnQgPSB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICcuc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uJyxcbiAgICAgICkgYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgICBpZiAoZm9jdXNlZE5hdkJ1dHRvbkVsZW1lbnQpIHtcbiAgICAgICAgZm9jdXNlZE5hdkJ1dHRvbkVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIGEgbWF4aW11bSBvZiAzIG9mIHRoZSBzZXJ2aWNlIHNpZ24gaWNvbnMgKHNsaWNlKDAsMykpIHJlZ2FyZGxlc3Mgb2YgdGhlIGlucHV0IGZyb20gQmFja2VuZCxcbiAgICogb3RoZXJ3aXNlIHRoZSBsYXlvdXQgY291bGQgYmUgZGVzdHJveWVkLiBGdXJ0aGVybW9yZSwgd2UgaGF2ZSB0byBmaWx0ZXIgb3V0IHRoZSB2YWx1ZSBBTllfU0VBVCxcbiAgICogc2luY2UgdGhpcyBpcyBhbHNvIHBhc3NlZCBhcyBhIHByb3BlcnR5IGFuZCBkb2VzIG5vdCBuZWVkIHRvIGJlIHVzZWQgaGVyZVxuICAgKlxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICB0aGlzLnByb3BlcnR5SWRzID0gdGhpcy5wcm9wZXJ0eUlkc1xuICAgICAgLmZpbHRlcigocHJvcGVydHlJZCkgPT4gcHJvcGVydHlJZCAhPT0gJ0FOWV9TRUFUJylcbiAgICAgIC5zbGljZSgwLCBNQVhfU0VSVklDRV9QUk9QRVJUSUVTKTtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCIke2NsYXNzTWFwKHtcbiAgICAgICAgICAnc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gnOiB0cnVlLFxuICAgICAgICAgICdsYXN0LWNvYWNoJzogdGhpcy5sYXN0LFxuICAgICAgICAgICdmaXJzdC1jb2FjaCc6IHRoaXMuZmlyc3QsXG4gICAgICAgICAgJ3ZlcnRpY2FsLWNvYWNoJzogdGhpcy52ZXJ0aWNhbCxcbiAgICAgICAgICAnc2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtLXNlbGVjdGVkJzogdGhpcy5zZWxlY3RlZCxcbiAgICAgICAgfSl9XCJcbiAgICAgID5cbiAgICAgICAgJHt0aGlzLl9nZXROYXZpZ2F0aW9uQnV0dG9uKCl9XG4gICAgICAgICR7dGhpcy5wcm9wZXJ0eUlkcz8ubGVuZ3RoXG4gICAgICAgICAgPyBodG1sYDxzYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzXG4gICAgICAgICAgICAgID92ZXJ0aWNhbD1cIiR7dGhpcy52ZXJ0aWNhbH1cIlxuICAgICAgICAgICAgICAucHJvcGVydHlJZHM9XCIke3RoaXMucHJvcGVydHlJZHN9XCJcbiAgICAgICAgICAgID48L3NiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tc2VydmljZXM+YFxuICAgICAgICAgIDogbm90aGluZ31cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9nZXROYXZpZ2F0aW9uQnV0dG9uKCk6IFRlbXBsYXRlUmVzdWx0IHwgbnVsbCB7XG4gICAgY29uc3QgY3VyclNlcnZpY2VDbGFzc051bWJlciA9IHRoaXMuX2dldENvYWNoU2VydmljZUNsYXNzTnVtYmVyKCk7XG4gICAgY29uc3QgdGl0bGVEZXNjcmlwdGlvbk5hdkNvYWNoQnV0dG9uID1cbiAgICAgIHRoaXMuX2dldFRpdGxlRGVzY3JpcHRpb25OYXZDb2FjaEJ1dHRvbihjdXJyU2VydmljZUNsYXNzTnVtYmVyKTtcbiAgICBjb25zdCBhcmlhRGVzY3JpcHRpb25Db2FjaFNlcnZpY2VzID0gdGhpcy5fZ2V0QXJpYURlc2NyaXB0aW9uQ29hY2hTZXJ2aWNlcygpO1xuXG4gICAgcmV0dXJuIGh0bWxgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgID9kaXNhYmxlZD1cIiR7dGhpcy5kaXNhYmxlfVwiXG4gICAgICAgIGNsYXNzPVwiJHtjbGFzc01hcCh7XG4gICAgICAgICAgJ3NiYi1zci1uYXZpZ2F0aW9uX19jdHJsLWJ1dHRvbic6IHRydWUsXG4gICAgICAgICAgJ3NiYi1zci1uYXZpZ2F0aW9uLWRyaXZlci1hcmVhJzogdGhpcy5kcml2ZXJBcmVhLFxuICAgICAgICB9KX1cIlxuICAgICAgICB0aXRsZT1cIiR7dGl0bGVEZXNjcmlwdGlvbk5hdkNvYWNoQnV0dG9ufVwiXG4gICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJuYXYtY29hY2gtc2VydmljZS1kZXNjcmlwdGlvbnMtJHt0aGlzLmluZGV4fVwiXG4gICAgICAgIEBjbGljaz0keygpID0+IHRoaXMuX3NlbGVjdE5hdkNvYWNoKHRoaXMuaW5kZXgpfVxuICAgICAgPlxuICAgICAgICAke3RoaXMuX2dldEJ0bkluZm9ybWF0aW9uKGN1cnJTZXJ2aWNlQ2xhc3NOdW1iZXIpfVxuICAgICAgPC9idXR0b24+XG4gICAgICA8c2JiLXNjcmVlbi1yZWFkZXItb25seSBpZD1cIm5hdi1jb2FjaC1zZXJ2aWNlLWRlc2NyaXB0aW9ucy0ke3RoaXMuaW5kZXh9XCJcbiAgICAgICAgPiR7YXJpYURlc2NyaXB0aW9uQ29hY2hTZXJ2aWNlc308L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHlcbiAgICAgID5gO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QnRuSW5mb3JtYXRpb24oc2VydmljZUNsYXNzTnVtYmVyOiBudW1iZXIgfCBudWxsKTogVGVtcGxhdGVSZXN1bHQgfCBudWxsIHtcbiAgICBpZiAodGhpcy5kcml2ZXJBcmVhKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgICR7c2VydmljZUNsYXNzTnVtYmVyID09PSAxXG4gICAgICAgID8gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1zci1uYXZpZ2F0aW9uLS1maXJzdC1jbGFzc1wiPjwvc3Bhbj5gXG4gICAgICAgIDogbm90aGluZ31cbiAgICAgICR7dGhpcy50cmF2ZWxDbGFzcz8ubGVuZ3RoID4gMCB8fCB0aGlzLmNvYWNoSWRcbiAgICAgICAgPyBodG1sYDxkaXYgY2xhc3M9XCJzYmItc3ItbmF2aWdhdGlvbl9fYWRkaXRpb25hbC1pbmZvcm1hdGlvblwiPlxuICAgICAgICAgICAgJHt0aGlzLmNvYWNoSWRcbiAgICAgICAgICAgICAgPyBodG1sYDxkaXYgY2xhc3M9XCJzYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC1udW1iZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICR7dGhpcy5jb2FjaElkfVxuICAgICAgICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAke3NlcnZpY2VDbGFzc051bWJlciA/PyBub3RoaW5nfVxuICAgICAgICAgICAgICBjbGFzcz1cInNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLXRyYXZlbGNsYXNzXCJcbiAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgJHtzZXJ2aWNlQ2xhc3NOdW1iZXJ9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5gXG4gICAgICAgIDogbm90aGluZ31cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VGl0bGVEZXNjcmlwdGlvbk5hdkNvYWNoQnV0dG9uKHNlcnZpY2VDbGFzc051bWJlcjogbnVtYmVyIHwgbnVsbCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuZHJpdmVyQXJlYSkge1xuICAgICAgcmV0dXJuIGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ05BVklHQVRFX0NPQUNIX0JMT0NLRUQnLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LCBbXG4gICAgICAgIHRoaXMuY29hY2hJZCxcbiAgICAgIF0pO1xuICAgIH1cblxuICAgIGxldCBsYWJlbCA9IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ05BVklHQVRFX1RPX0NPQUNIJywgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCwgW3RoaXMuY29hY2hJZF0pO1xuXG4gICAgLy9JZiBzZXJ2aWNlIGNsYXNzIGV4aXN0LCB0aGVuIGV4cGFuZCBsYWJlbCB3aXRoIHNlcnZpY2UgY2xhc3MgdHJhbnNsYXRpb25cbiAgICBpZiAoc2VydmljZUNsYXNzTnVtYmVyKSB7XG4gICAgICBjb25zdCBzZXJ2aWNlQ2xhc3NUcmFuc2xhdGlvbktleSA9XG4gICAgICAgIHNlcnZpY2VDbGFzc051bWJlciA9PT0gMSA/ICdTRVJWSUNFX0NMQVNTX0ZJUlNUJyA6ICdTRVJWSUNFX0NMQVNTX1NFQ09ORCc7XG4gICAgICBjb25zdCBzZXJ2aWNlQ2xhc3NUcmFuc2xhdGlvbiA9IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oXG4gICAgICAgIHNlcnZpY2VDbGFzc1RyYW5zbGF0aW9uS2V5LFxuICAgICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LFxuICAgICAgKTtcbiAgICAgIGNvbnN0IHNlcnZpY2VDbGFzc0xhYmVsID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihcbiAgICAgICAgJ05BVklHQVRFX1RPX0NPQUNIX1NFUlZJQ0VfQ0xBU1NfU1VCJyxcbiAgICAgICAgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCxcbiAgICAgICAgW3NlcnZpY2VDbGFzc1RyYW5zbGF0aW9uXSxcbiAgICAgICk7XG4gICAgICBsYWJlbCA9IGxhYmVsLmNvbmNhdChzZXJ2aWNlQ2xhc3NMYWJlbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxhYmVsO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QXJpYURlc2NyaXB0aW9uQ29hY2hTZXJ2aWNlcygpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBsZXQgYXJpYURlc2NyaXRpb24gPSBudWxsO1xuICAgIGlmICh0aGlzLnByb3BlcnR5SWRzLmxlbmd0aCkge1xuICAgICAgYXJpYURlc2NyaXRpb24gPVxuICAgICAgICBnZXRJMThuU2VhdFJlc2VydmF0aW9uKCdDT0FDSF9BVkFJTEFCTEVfU0VSVklDRVMnLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KSArICc6ICc7XG4gICAgICBhcmlhRGVzY3JpdGlvbiArPSB0aGlzLnByb3BlcnR5SWRzXG4gICAgICAgIC5tYXAoKHByb3BlcnR5SWQpID0+IGdldEkxOG5TZWF0UmVzZXJ2YXRpb24ocHJvcGVydHlJZCwgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCkpXG4gICAgICAgIC5qb2luKCk7XG4gICAgfVxuICAgIHJldHVybiBhcmlhRGVzY3JpdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBlbWl0cyB0aGUgaW5kZXggb2YgdGhlIGNvYWNoIGFycmF5IGZvciB0aGUgbWFpbiBuYXZpZ2F0aW9uLlxuICAgKiBAcGFyYW0gY29hY2hJbmRleFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBfc2VsZWN0TmF2Q29hY2goY29hY2hJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRyaXZlckFyZWEpIHtcbiAgICAgIC8qKlxuICAgICAgICogQHR5cGUge0N1c3RvbUV2ZW50PFNlbGVjdENvYWNoRXZlbnREZXRhaWxzPn1cbiAgICAgICAqIEVtaXRzIHdoZW4gYSBjb2FjaCB3aXRoaW4gdGhlIG5hdmlnYXRpb24gd2FzIHNlbGVjdGVkIGFuZCByZXR1cm5zIHRoZSBjbGlja2VkIGNvYWNoIG5hdiBpbmRleC5cbiAgICAgICAqL1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoJ3NlbGVjdENvYWNoJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSwgZGV0YWlsOiBjb2FjaEluZGV4IH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXRDb2FjaFNlcnZpY2VDbGFzc051bWJlcigpOiBudW1iZXIgfCBudWxsIHtcbiAgICBpZiAodGhpcy50cmF2ZWxDbGFzcz8uaW5jbHVkZXMoJ0ZJUlNUJykpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH0gZWxzZSBpZiAodGhpcy50cmF2ZWxDbGFzcz8uaW5jbHVkZXMoJ1NFQ09ORCcpKSB7XG4gICAgICByZXR1cm4gMjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoJzogU2JiU2VhdFJlc2VydmF0aW9uTmF2aWdhdGlvbkNvYWNoRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
573
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoLmNvbXBvbmVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC9zZWF0LXJlc2VydmF0aW9uL3NlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaC9zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tY29hY2guY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIG5vdGhpbmcsIHR5cGUgUHJvcGVydHlWYWx1ZXMsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwLmpzJztcblxuaW1wb3J0IHsgZ2V0STE4blNlYXRSZXNlcnZhdGlvbiB9IGZyb20gJy4uL2NvbW1vbi90cmFuc2xhdGlvbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBQbGFjZVRyYXZlbENsYXNzIH0gZnJvbSAnLi4vY29tbW9uLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoLnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvc2NyZWVuLXJlYWRlci1vbmx5LmpzJztcbmltcG9ydCAnLi4vc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLXNlcnZpY2VzLmpzJztcblxuY29uc3QgTUFYX1NFUlZJQ0VfUFJPUEVSVElFUyA9IDM7XG5cbmV4cG9ydCB0eXBlIFNlbGVjdENvYWNoRXZlbnREZXRhaWxzID0gbnVtYmVyO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IHdpbGwgZGlzcGxheSB0aGUgbmF2aWdhdGlvbiBjb2FjaCBpdGVtIGZvciBTZWF0IHJlc2VydmF0aW9uLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc2VhdC1yZXNlcnZhdGlvbi1uYXZpZ2F0aW9uLWNvYWNoJylcbmNsYXNzIFNiYlNlYXRSZXNlcnZhdGlvbk5hdmlnYXRpb25Db2FjaEVsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHNlbGVjdGNvYWNoOiAnc2VsZWN0Y29hY2gnLFxuICAgIGZvY3VzY29hY2g6ICdmb2N1c2NvYWNoJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogQ29hY2ggSUQsIHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGNvYWNoIGluIHRoZSBuYXZpZ2F0aW9uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdjb2FjaC1pZCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGNvYWNoSWQ6IHN0cmluZyA9ICcnO1xuXG4gIC8qKiBDb2FjaCBzZXJ2aWNlIHByb3BlcnR5IGlkcywgd2hpY2ggYXJlIHVzZWQgdG8gZGlzcGxheSB0aGUgc2VydmljZXMgaW4gdGhlIG5hdmlnYXRpb24gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAncHJvcGVydHktaWRzJywgdHlwZTogQXJyYXkgfSlcbiAgcHVibGljIGFjY2Vzc29yIHByb3BlcnR5SWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qIHByZS1zZWxlY3RlZCBDb2FjaCBpbmRleCBwcm9wZXJ0eSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3Igc2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiBmb2N1cyBDb2FjaCBpbmRleCBwcm9wZXJ0eSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZm9jdXNlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBOdW1iZXIgfSlcbiAgcHVibGljIGFjY2Vzc29yIGluZGV4OiBudW1iZXIgPSAwO1xuXG4gIC8qKiBUcmF2ZWwgY2xhc3Mgb2YgdGhlIGNvYWNoICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3RyYXZlbC1jbGFzcycsIHR5cGU6IEFycmF5IH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB0cmF2ZWxDbGFzczogUGxhY2VUcmF2ZWxDbGFzc1tdID0gWydBTllfQ0xBU1MnXTtcblxuICAvKiogSWYgdGhlIGNvYWNoIGlzIGEgZHJpdmVyL3Jlc3RyaWN0ZWQgYXJlYSAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnZHJpdmVyLWFyZWEnLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBkcml2ZXJBcmVhOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIElmIHRoZSBjb2FjaCBpcyB0aGUgZmlyc3QgaW4gdGhlIG5hdmlnYXRpb24gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGZpcnN0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIElmIHRoZSBjb2FjaCBpcyB0aGUgbGFzdCBpbiB0aGUgbmF2aWdhdGlvbiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgbGFzdDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBEaXNhYmxlIHRoZSBjb2FjaCBuYXZpZ2F0aW9uICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdkaXNhYmxlJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZGlzYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBJZiB0aGUgY29hY2ggbmF2aWdhdGlvbiBzaG91bGQgYmUgZGlzcGxheWVkIHZlcnRpY2FsbHkgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIHZlcnRpY2FsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2VsZWN0ZWQnKSkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWROYXZCdXR0b25FbGVtZW50ID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAnLnNiYi1zci1uYXZpZ2F0aW9uX19jdHJsLWJ1dHRvbicsXG4gICAgICApIGFzIEhUTUxCdXR0b25FbGVtZW50O1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWQgJiYgc2VsZWN0ZWROYXZCdXR0b25FbGVtZW50KSB7XG4gICAgICAgIHNlbGVjdGVkTmF2QnV0dG9uRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAvKiogRW1pdHMgd2hlbiBhIG5hdiBjb2FjaCBoYXMgdGhlIGZvY3VzICovXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2ZvY3VzY29hY2gnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdmb2N1c2VkJykgJiYgdGhpcy5mb2N1c2VkKSB7XG4gICAgICBjb25zdCBmb2N1c2VkTmF2QnV0dG9uRWxlbWVudCA9IHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihcbiAgICAgICAgJy5zYmItc3ItbmF2aWdhdGlvbl9fY3RybC1idXR0b24nLFxuICAgICAgKSBhcyBIVE1MQnV0dG9uRWxlbWVudDtcbiAgICAgIGlmIChmb2N1c2VkTmF2QnV0dG9uRWxlbWVudCkge1xuICAgICAgICBmb2N1c2VkTmF2QnV0dG9uRWxlbWVudC5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgYSBtYXhpbXVtIG9mIDMgb2YgdGhlIHNlcnZpY2Ugc2lnbiBpY29ucyAoc2xpY2UoMCwzKSkgcmVnYXJkbGVzcyBvZiB0aGUgaW5wdXQgZnJvbSBCYWNrZW5kLFxuICAgKiBvdGhlcndpc2UgdGhlIGxheW91dCBjb3VsZCBiZSBkZXN0cm95ZWQuIEZ1cnRoZXJtb3JlLCB3ZSBoYXZlIHRvIGZpbHRlciBvdXQgdGhlIHZhbHVlIEFOWV9TRUFULFxuICAgKiBzaW5jZSB0aGlzIGlzIGFsc28gcGFzc2VkIGFzIGEgcHJvcGVydHkgYW5kIGRvZXMgbm90IG5lZWQgdG8gYmUgdXNlZCBoZXJlXG4gICAqXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHRoaXMucHJvcGVydHlJZHMgPSB0aGlzLnByb3BlcnR5SWRzXG4gICAgICAuZmlsdGVyKChwcm9wZXJ0eUlkKSA9PiBwcm9wZXJ0eUlkICE9PSAnQU5ZX1NFQVQnKVxuICAgICAgLnNsaWNlKDAsIE1BWF9TRVJWSUNFX1BST1BFUlRJRVMpO1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cIiR7Y2xhc3NNYXAoe1xuICAgICAgICAgICdzYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaCc6IHRydWUsXG4gICAgICAgICAgJ2xhc3QtY29hY2gnOiB0aGlzLmxhc3QsXG4gICAgICAgICAgJ2ZpcnN0LWNvYWNoJzogdGhpcy5maXJzdCxcbiAgICAgICAgICAndmVydGljYWwtY29hY2gnOiB0aGlzLnZlcnRpY2FsLFxuICAgICAgICAgICdzYmItc3ItbmF2aWdhdGlvbl9faXRlbS1jb2FjaC0tc2VsZWN0ZWQnOiB0aGlzLnNlbGVjdGVkLFxuICAgICAgICB9KX1cIlxuICAgICAgPlxuICAgICAgICAke3RoaXMuX2dldE5hdmlnYXRpb25CdXR0b24oKX1cbiAgICAgICAgJHt0aGlzLnByb3BlcnR5SWRzPy5sZW5ndGhcbiAgICAgICAgICA/IGh0bWxgPHNiYi1zZWF0LXJlc2VydmF0aW9uLW5hdmlnYXRpb24tc2VydmljZXNcbiAgICAgICAgICAgICAgP3ZlcnRpY2FsPVwiJHt0aGlzLnZlcnRpY2FsfVwiXG4gICAgICAgICAgICAgIC5wcm9wZXJ0eUlkcz1cIiR7dGhpcy5wcm9wZXJ0eUlkc31cIlxuICAgICAgICAgICAgPjwvc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1zZXJ2aWNlcz5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE5hdmlnYXRpb25CdXR0b24oKTogVGVtcGxhdGVSZXN1bHQgfCBudWxsIHtcbiAgICBjb25zdCBjdXJyU2VydmljZUNsYXNzTnVtYmVyID0gdGhpcy5fZ2V0Q29hY2hTZXJ2aWNlQ2xhc3NOdW1iZXIoKTtcbiAgICBjb25zdCB0aXRsZURlc2NyaXB0aW9uTmF2Q29hY2hCdXR0b24gPVxuICAgICAgdGhpcy5fZ2V0VGl0bGVEZXNjcmlwdGlvbk5hdkNvYWNoQnV0dG9uKGN1cnJTZXJ2aWNlQ2xhc3NOdW1iZXIpO1xuICAgIGNvbnN0IGFyaWFEZXNjcmlwdGlvbkNvYWNoU2VydmljZXMgPSB0aGlzLl9nZXRBcmlhRGVzY3JpcHRpb25Db2FjaFNlcnZpY2VzKCk7XG5cbiAgICByZXR1cm4gaHRtbGAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgP2Rpc2FibGVkPVwiJHt0aGlzLmRpc2FibGV9XCJcbiAgICAgICAgY2xhc3M9XCIke2NsYXNzTWFwKHtcbiAgICAgICAgICAnc2JiLXNyLW5hdmlnYXRpb25fX2N0cmwtYnV0dG9uJzogdHJ1ZSxcbiAgICAgICAgICAnc2JiLXNyLW5hdmlnYXRpb24tZHJpdmVyLWFyZWEnOiB0aGlzLmRyaXZlckFyZWEsXG4gICAgICAgIH0pfVwiXG4gICAgICAgIHRpdGxlPVwiJHt0aXRsZURlc2NyaXB0aW9uTmF2Q29hY2hCdXR0b259XCJcbiAgICAgICAgYXJpYS1kZXNjcmliZWRieT1cIm5hdi1jb2FjaC1zZXJ2aWNlLWRlc2NyaXB0aW9ucy0ke3RoaXMuaW5kZXh9XCJcbiAgICAgICAgQGNsaWNrPSR7KCkgPT4gdGhpcy5fc2VsZWN0TmF2Q29hY2godGhpcy5pbmRleCl9XG4gICAgICA+XG4gICAgICAgICR7dGhpcy5fZ2V0QnRuSW5mb3JtYXRpb24oY3VyclNlcnZpY2VDbGFzc051bWJlcil9XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxzYmItc2NyZWVuLXJlYWRlci1vbmx5IGlkPVwibmF2LWNvYWNoLXNlcnZpY2UtZGVzY3JpcHRpb25zLSR7dGhpcy5pbmRleH1cIlxuICAgICAgICA+JHthcmlhRGVzY3JpcHRpb25Db2FjaFNlcnZpY2VzfTwvc2JiLXNjcmVlbi1yZWFkZXItb25seVxuICAgICAgPmA7XG4gIH1cblxuICBwcml2YXRlIF9nZXRCdG5JbmZvcm1hdGlvbihzZXJ2aWNlQ2xhc3NOdW1iZXI6IG51bWJlciB8IG51bGwpOiBUZW1wbGF0ZVJlc3VsdCB8IG51bGwge1xuICAgIGlmICh0aGlzLmRyaXZlckFyZWEpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBodG1sYFxuICAgICAgJHtzZXJ2aWNlQ2xhc3NOdW1iZXIgPT09IDFcbiAgICAgICAgPyBodG1sYDxzcGFuIGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb24tLWZpcnN0LWNsYXNzXCI+PC9zcGFuPmBcbiAgICAgICAgOiBub3RoaW5nfVxuICAgICAgJHt0aGlzLnRyYXZlbENsYXNzPy5sZW5ndGggPiAwIHx8IHRoaXMuY29hY2hJZFxuICAgICAgICA/IGh0bWxgPGRpdiBjbGFzcz1cInNiYi1zci1uYXZpZ2F0aW9uX19hZGRpdGlvbmFsLWluZm9ybWF0aW9uXCI+XG4gICAgICAgICAgICAke3RoaXMuY29hY2hJZFxuICAgICAgICAgICAgICA/IGh0bWxgPGRpdiBjbGFzcz1cInNiYi1zci1uYXZpZ2F0aW9uX19pdGVtLWNvYWNoLW51bWJlclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgJHt0aGlzLmNvYWNoSWR9XG4gICAgICAgICAgICAgICAgPC9kaXY+YFxuICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICR7c2VydmljZUNsYXNzTnVtYmVyID8/IG5vdGhpbmd9XG4gICAgICAgICAgICAgIGNsYXNzPVwic2JiLXNyLW5hdmlnYXRpb25fX2l0ZW0tY29hY2gtdHJhdmVsY2xhc3NcIlxuICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAke3NlcnZpY2VDbGFzc051bWJlcn1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgOiBub3RoaW5nfVxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9nZXRUaXRsZURlc2NyaXB0aW9uTmF2Q29hY2hCdXR0b24oc2VydmljZUNsYXNzTnVtYmVyOiBudW1iZXIgfCBudWxsKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5kcml2ZXJBcmVhKSB7XG4gICAgICByZXR1cm4gZ2V0STE4blNlYXRSZXNlcnZhdGlvbignTkFWSUdBVEVfQ09BQ0hfQkxPQ0tFRCcsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsIFtcbiAgICAgICAgdGhpcy5jb2FjaElkLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgbGV0IGxhYmVsID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbignTkFWSUdBVEVfVE9fQ09BQ0gnLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LCBbdGhpcy5jb2FjaElkXSk7XG5cbiAgICAvL0lmIHNlcnZpY2UgY2xhc3MgZXhpc3QsIHRoZW4gZXhwYW5kIGxhYmVsIHdpdGggc2VydmljZSBjbGFzcyB0cmFuc2xhdGlvblxuICAgIGlmIChzZXJ2aWNlQ2xhc3NOdW1iZXIpIHtcbiAgICAgIGNvbnN0IHNlcnZpY2VDbGFzc1RyYW5zbGF0aW9uS2V5ID1cbiAgICAgICAgc2VydmljZUNsYXNzTnVtYmVyID09PSAxID8gJ1NFUlZJQ0VfQ0xBU1NfRklSU1QnIDogJ1NFUlZJQ0VfQ0xBU1NfU0VDT05EJztcbiAgICAgIGNvbnN0IHNlcnZpY2VDbGFzc1RyYW5zbGF0aW9uID0gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihcbiAgICAgICAgc2VydmljZUNsYXNzVHJhbnNsYXRpb25LZXksXG4gICAgICAgIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQsXG4gICAgICApO1xuICAgICAgY29uc3Qgc2VydmljZUNsYXNzTGFiZWwgPSBnZXRJMThuU2VhdFJlc2VydmF0aW9uKFxuICAgICAgICAnTkFWSUdBVEVfVE9fQ09BQ0hfU0VSVklDRV9DTEFTU19TVUInLFxuICAgICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LFxuICAgICAgICBbc2VydmljZUNsYXNzVHJhbnNsYXRpb25dLFxuICAgICAgKTtcbiAgICAgIGxhYmVsID0gbGFiZWwuY29uY2F0KHNlcnZpY2VDbGFzc0xhYmVsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbGFiZWw7XG4gIH1cblxuICBwcml2YXRlIF9nZXRBcmlhRGVzY3JpcHRpb25Db2FjaFNlcnZpY2VzKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGxldCBhcmlhRGVzY3JpdGlvbiA9IG51bGw7XG4gICAgaWYgKHRoaXMucHJvcGVydHlJZHMubGVuZ3RoKSB7XG4gICAgICBhcmlhRGVzY3JpdGlvbiA9XG4gICAgICAgIGdldEkxOG5TZWF0UmVzZXJ2YXRpb24oJ0NPQUNIX0FWQUlMQUJMRV9TRVJWSUNFUycsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpICsgJzogJztcbiAgICAgIGFyaWFEZXNjcml0aW9uICs9IHRoaXMucHJvcGVydHlJZHNcbiAgICAgICAgLm1hcCgocHJvcGVydHlJZCkgPT4gZ2V0STE4blNlYXRSZXNlcnZhdGlvbihwcm9wZXJ0eUlkLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KSlcbiAgICAgICAgLmpvaW4oKTtcbiAgICB9XG4gICAgcmV0dXJuIGFyaWFEZXNjcml0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIGVtaXRzIHRoZSBpbmRleCBvZiB0aGUgY29hY2ggYXJyYXkgZm9yIHRoZSBtYWluIG5hdmlnYXRpb24uXG4gICAqIEBwYXJhbSBjb2FjaEluZGV4XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9zZWxlY3ROYXZDb2FjaChjb2FjaEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZHJpdmVyQXJlYSkge1xuICAgICAgLyoqXG4gICAgICAgKiBAdHlwZSB7Q3VzdG9tRXZlbnQ8U2VsZWN0Q29hY2hFdmVudERldGFpbHM+fVxuICAgICAgICogRW1pdHMgd2hlbiBhIGNvYWNoIHdpdGhpbiB0aGUgbmF2aWdhdGlvbiB3YXMgc2VsZWN0ZWQgYW5kIHJldHVybnMgdGhlIGNsaWNrZWQgY29hY2ggbmF2IGluZGV4LlxuICAgICAgICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgIG5ldyBDdXN0b21FdmVudDxTZWxlY3RDb2FjaEV2ZW50RGV0YWlscz4oJ3NlbGVjdGNvYWNoJywge1xuICAgICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICAgICAgZGV0YWlsOiBjb2FjaEluZGV4LFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Q29hY2hTZXJ2aWNlQ2xhc3NOdW1iZXIoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMudHJhdmVsQ2xhc3M/LmluY2x1ZGVzKCdGSVJTVCcpKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHJhdmVsQ2xhc3M/LmluY2x1ZGVzKCdTRUNPTkQnKSkge1xuICAgICAgcmV0dXJuIDI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlYXQtcmVzZXJ2YXRpb24tbmF2aWdhdGlvbi1jb2FjaCc6IFNiYlNlYXRSZXNlcnZhdGlvbk5hdmlnYXRpb25Db2FjaEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seat-reservation-navigation-coach.d.ts","sourceRoot":"","sources":["../../../../src/elements-experimental/seat-reservation/seat-reservation-navigation-coach.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,oFAAoF,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seat-reservation-navigation-services.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements-experimental/seat-reservation/seat-reservation-navigation-services/seat-reservation-navigation-services.component.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAW,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AACxE,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAMvC,OAAO,+CAA+C,CAAC;AACvD,OAAO,gCAAgC,CAAC;AAIxC;;;GAGG;AACH,qBAEM,2CAA4C,SAAQ,UAAU;IAClE,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,2FAA2F;IAC3F,SACgB,WAAW,EAAE,MAAM,EAAE,CAAM;IAE3C,0DAA0D;IAC1D,SAEgB,QAAQ,EAAE,OAAO,CAAS;IAE1C,OAAO,CAAC,SAAS,CAAmC;cAEjC,MAAM,IAAI,cAAc;IA4B3C,OAAO,CAAC,2BAA2B;CAcpC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,0CAA0C,EAAE,2CAA2C,CAAC;KACzF;CACF"}