@sbb-esta/lyne-elements-dev 5.0.0-next-dev.1776924015 → 5.0.0-next-dev.1776934572

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 (75) hide show
  1. package/chip-label/chip-label.component.js +1 -1
  2. package/chip-label.component-zRiHSxbn.js +77 -0
  3. package/chip-label.js +1 -1
  4. package/chip-label.pure.js +1 -1
  5. package/core/styles/_index.scss +0 -1
  6. package/custom-elements.json +1560 -1560
  7. package/development/block-link-common-qMULXu4g.js +1 -1
  8. package/development/breadcrumb-group.component-BC1mWiQE.js +1 -1
  9. package/development/button-common-ChY47M8t.js +1 -1
  10. package/development/calendar-cell-base-element-DDNYX7UQ.js +1 -1
  11. package/development/calendar.component-B5dz7mau.js +1 -1
  12. package/development/card-action-common-HYrFMTkA.js +1 -1
  13. package/development/carousel-list.component-z40-4ANn.js +1 -1
  14. package/development/carousel.component-BHYBvOm7.js +1 -1
  15. package/development/checkbox-common-DOoEKgML.js +1 -1
  16. package/development/checkbox-group/checkbox-group.component.js +1 -1
  17. package/development/chip-group.component-B4Mjcep2.js +1 -1
  18. package/development/chip-label/chip-label.component.d.ts +1 -1
  19. package/development/chip-label/chip-label.component.d.ts.map +1 -1
  20. package/development/chip-label/chip-label.component.js +1 -1
  21. package/development/chip-label.component-Cx8mfi0y.js +100 -0
  22. package/development/chip-label.js +1 -1
  23. package/development/chip-label.pure.js +1 -1
  24. package/development/core/a11y/input-modality-detector.js +1 -1
  25. package/development/core/base-elements/element.js +1 -1
  26. package/development/core/controllers/media-matchers-controller.js +1 -1
  27. package/development/core/datetime/date-adapter.js +1 -1
  28. package/development/core/datetime/native-date-adapter.js +1 -1
  29. package/development/core/datetime/temporal-date-adapter.js +1 -1
  30. package/development/core/mixins/disabled-mixin.js +1 -1
  31. package/development/core/mixins/form-associated-checkbox-mixin.js +1 -1
  32. package/development/core/mixins/form-associated-input-mixin.js +1 -1
  33. package/development/core/mixins/form-associated-mixin.js +1 -1
  34. package/development/core/mixins/form-associated-radio-button-mixin.js +1 -1
  35. package/development/core/mixins/named-slot-list-mixin.js +1 -1
  36. package/development/core/mixins/negative-mixin.js +1 -1
  37. package/development/core/mixins/readonly-mixin.js +1 -1
  38. package/development/core/mixins/required-mixin.js +1 -1
  39. package/development/core/testing/event-spy.js +1 -1
  40. package/development/datepicker-button-BI5R118p.js +1 -1
  41. package/development/file-selector-common-DE_jT1fa.js +1 -1
  42. package/development/header-action-common-BEnsweEr.js +1 -1
  43. package/development/icon/icon-name-mixin.js +1 -1
  44. package/development/image.component-BuAPmhIt.js +1 -1
  45. package/development/link-list-base-B7vidwUW.js +1 -1
  46. package/development/mini-calendar.component-Ddxgy4Tj.js +1 -1
  47. package/development/navigation-action-common-B2soWZWW.js +1 -1
  48. package/development/navigation-section.component-VwCJlOfE.js +1 -1
  49. package/development/navigation.component-lgvLMF5e.js +1 -1
  50. package/development/option/option/option-base-element.js +1 -1
  51. package/development/paginator/common/paginator-common.js +1 -1
  52. package/development/panel-mixin-CKHxLmjh.js +1 -1
  53. package/development/popover.component-C-zVDwjc.js +1 -1
  54. package/development/radio-button-common-ZMs5IFm2.js +1 -1
  55. package/development/radio-button-panel/radio-button-panel.component.js +1 -1
  56. package/development/sidebar-container.component-CC9TtB6I.js +1 -1
  57. package/development/sidebar.component-zMWbdz0h.js +1 -1
  58. package/development/stepper.component-BTwJttZt.js +1 -1
  59. package/development/sticky-bar.component-MMBSPa2B.js +1 -1
  60. package/development/tab-group.component-DX7BY7Xy.js +1 -1
  61. package/development/teaser/teaser.component.js +1 -1
  62. package/development/teaser-product-common-DasV_SDa.js +1 -1
  63. package/development/{teaser.component-DwM26tMt.js → teaser.component-C7uXEaPK.js} +2 -2
  64. package/development/teaser.js +1 -1
  65. package/development/teaser.pure.js +1 -1
  66. package/development/time-input.component-x-QOtbwE.js +1 -1
  67. package/development/toggle.component-CQYpVyvs.js +1 -1
  68. package/package.json +2 -2
  69. package/teaser/teaser.component.js +1 -1
  70. package/{teaser.component-Bl_Myx2h.js → teaser.component-B2y2AlAx.js} +1 -1
  71. package/teaser.js +1 -1
  72. package/teaser.pure.js +1 -1
  73. package/chip-label.component-CUJTTb1-.js +0 -79
  74. package/core/styles/mixins/chip.scss +0 -95
  75. package/development/chip-label.component-C1CGL8zb.js +0 -102
@@ -181,4 +181,4 @@ var SbbMiniCalendarElement = (() => {
181
181
  //#endregion
182
182
  export { SbbMiniCalendarElement as t };
183
183
 
184
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaS1jYWxlbmRhci5jb21wb25lbnQtRGR4Z3k0VGouanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL21pbmktY2FsZW5kYXIvbWluaS1jYWxlbmRhci9taW5pLWNhbGVuZGFyLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL21pbmktY2FsZW5kYXIvbWluaS1jYWxlbmRhci9taW5pLWNhbGVuZGFyLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0yeCkgdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpO1xufVxuIiwiaW1wb3J0IHsgTXV0YXRpb25Db250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9tdXRhdGlvbi1jb250cm9sbGVyLmpzJztcbmltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBEYXRlQWRhcHRlciwgU2JiT3JpZW50YXRpb24gfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7XG4gIGRlZmF1bHREYXRlQWRhcHRlcixcbiAgaXNBcnJvd0tleU9yUGFnZUtleXNQcmVzc2VkLFxuICByZWFkQ29uZmlnLFxuICBTYmJFbGVtZW50LFxuICDJtXN0YXRlQ29udHJvbGxlcixcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk1pbmlDYWxlbmRhckRheUVsZW1lbnQgfSBmcm9tICcuLi9taW5pLWNhbGVuZGFyLWRheS9taW5pLWNhbGVuZGFyLWRheS5jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJNaW5pQ2FsZW5kYXJNb250aEVsZW1lbnQgfSBmcm9tICcuLi9taW5pLWNhbGVuZGFyLW1vbnRoL21pbmktY2FsZW5kYXItbW9udGguY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vbWluaS1jYWxlbmRhci5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSBtaW5pbWFsIGNhbGVuZGFyLCB0b2dldGhlciB3aXRoIHRoZSBgc2JiLW1pbmktY2FsZW5kYXItbW9udGhgIGFuZCBgc2JiLW1pbmktY2FsZW5kYXItZGF5YC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBgc2JiLW1pbmktY2FsZW5kYXItbW9udGhgIGVsZW1lbnRzLlxuICovXG5leHBvcnQgY2xhc3MgU2JiTWluaUNhbGVuZGFyRWxlbWVudDxUID0gRGF0ZT4gZXh0ZW5kcyBTYmJFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1taW5pLWNhbGVuZGFyJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gdW5zYWZlQ1NTKHN0eWxlKTtcblxuICAvKiogVGhlIG9yaWVudGF0aW9uIG9mIGRheXMgaW4gdGhlIGNhbGVuZGFyLiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBvcmllbnRhdGlvbjogU2JiT3JpZW50YXRpb24gPSAnaG9yaXpvbnRhbCc7XG5cbiAgcHJpdmF0ZSBfa2V5ZG93bkFib3J0Q29udHJvbGxlcjogQWJvcnRDb250cm9sbGVyIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2RhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxUPiA9IHJlYWRDb25maWcoKS5kYXRldGltZT8uZGF0ZUFkYXB0ZXIgPz8gZGVmYXVsdERhdGVBZGFwdGVyO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgbmV3IE11dGF0aW9uQ29udHJvbGxlcih0aGlzLCB7XG4gICAgICAgIGNvbmZpZzogeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSxcbiAgICAgICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuX3NldE1vbnRoc1Nob3dZZWFyKCksXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0TWluaUNhbGVuZGFyTW9udGhzKCk6IFNiYk1pbmlDYWxlbmRhck1vbnRoRWxlbWVudFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2JiLW1pbmktY2FsZW5kYXItbW9udGgnKSA/PyBbXSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRNaW5pQ2FsZW5kYXJEYXlzKCk6IFNiYk1pbmlDYWxlbmRhckRheUVsZW1lbnRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgICB0aGlzLl9nZXRNaW5pQ2FsZW5kYXJNb250aHMoKS5mbGF0TWFwKChtb250aCkgPT5cbiAgICAgICAgQXJyYXkuZnJvbShtb250aC5xdWVyeVNlbGVjdG9yQWxsPy4oJ3NiYi1taW5pLWNhbGVuZGFyLWRheScpID8/IFtdKSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldE1vbnRoc1Nob3dZZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuX2dldE1pbmlDYWxlbmRhck1vbnRocygpLmZvckVhY2goXG4gICAgICAobW9udGhFbGVtZW50OiBTYmJNaW5pQ2FsZW5kYXJNb250aEVsZW1lbnQsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgY29uc3Qgc3BsaXREYXRlID0gbW9udGhFbGVtZW50LmRhdGUuc3BsaXQoJy0nKTtcbiAgICAgICAgaWYgKHNwbGl0RGF0ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgaWYgKGluZGV4ID09PSAwIHx8ICtzcGxpdERhdGVbMV0gPT09IDEpIHtcbiAgICAgICAgICAgIMm1c3RhdGVDb250cm9sbGVyKG1vbnRoRWxlbWVudCkuYWRkKCdzaG93LXllYXInKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgybVzdGF0ZUNvbnRyb2xsZXIobW9udGhFbGVtZW50KS5kZWxldGUoJ3Nob3cteWVhcicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlS2V5ZG93bkNhbGVuZGFyRGF5KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGlzQXJyb3dLZXlPclBhZ2VLZXlzUHJlc3NlZChldmVudCkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgY29uc3QgZGF5czogU2JiTWluaUNhbGVuZGFyRGF5RWxlbWVudFtdID0gdGhpcy5fZ2V0TWluaUNhbGVuZGFyRGF5cygpO1xuICAgIGNvbnN0IGRheSA9IGRheXMuZmluZCgoZSkgPT4gZSA9PT0gZXZlbnQudGFyZ2V0KSE7XG4gICAgY29uc3QgbmV4dEVsOiBTYmJNaW5pQ2FsZW5kYXJEYXlFbGVtZW50ID0gdGhpcy5fbmF2aWdhdGVCeUtleWJvYXJkRGF5VmlldyhkYXlzLCBkYXksIGV2ZW50KTtcbiAgICBjb25zdCBhY3RpdmVFbDogU2JiTWluaUNhbGVuZGFyRGF5RWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgU2JiTWluaUNhbGVuZGFyRGF5RWxlbWVudDtcbiAgICBpZiAobmV4dEVsICE9PSBhY3RpdmVFbCkge1xuICAgICAgbmV4dEVsLnRhYkluZGV4ID0gMDtcbiAgICAgIG5leHRFbD8uZm9jdXMoKTtcbiAgICAgIGFjdGl2ZUVsLnRhYkluZGV4ID0gLTE7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfbmF2aWdhdGVCeUtleWJvYXJkRGF5VmlldyhcbiAgICBkYXlzOiBTYmJNaW5pQ2FsZW5kYXJEYXlFbGVtZW50W10sXG4gICAgZGF5OiBTYmJNaW5pQ2FsZW5kYXJEYXlFbGVtZW50LFxuICAgIGV2ZW50OiBLZXlib2FyZEV2ZW50LFxuICApOiBTYmJNaW5pQ2FsZW5kYXJEYXlFbGVtZW50IHtcbiAgICBjb25zdCBhcnJvd3NPZmZzZXQgPVxuICAgICAgdGhpcy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnID8geyBsZWZ0UmlnaHQ6IDEsIHVwRG93bjogNyB9IDogeyBsZWZ0UmlnaHQ6IDcsIHVwRG93bjogMSB9O1xuICAgIGNvbnN0IGZ1bGxEYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIucGFyc2UoZGF5LmRhdGUpITtcbiAgICBjb25zdCBkYXlEYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0RGF0ZShmdWxsRGF0ZSk7XG4gICAgY29uc3Qgb2Zmc2V0Rm9yVmVydGljYWwgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXRGaXJzdFdlZWtPZmZzZXQoZnVsbERhdGUpO1xuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICByZXR1cm4gdGhpcy5fZmluZERheUFycm93S2V5cyhkYXlzLCBkYXksIC1hcnJvd3NPZmZzZXQudXBEb3duKTtcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgIHJldHVybiB0aGlzLl9maW5kRGF5QXJyb3dLZXlzKGRheXMsIGRheSwgYXJyb3dzT2Zmc2V0LnVwRG93bik7XG4gICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICByZXR1cm4gdGhpcy5fZmluZERheUFycm93S2V5cyhkYXlzLCBkYXksIC1hcnJvd3NPZmZzZXQubGVmdFJpZ2h0KTtcbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgICByZXR1cm4gdGhpcy5fZmluZERheUFycm93S2V5cyhkYXlzLCBkYXksIGFycm93c09mZnNldC5sZWZ0UmlnaHQpO1xuICAgICAgY2FzZSAnUGFnZVVwJzoge1xuICAgICAgICBpZiAodGhpcy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICAgICAgY29uc3QgZGVsdGEgPSBkYXlEYXRlIC0gKGRheURhdGUgJSA3IHx8IDcpO1xuICAgICAgICAgIHJldHVybiB0aGlzLl9maW5kRGF5U3BlY2lhbEtleXMoZGF5cywgZGF5LCAtZGVsdGEsIGFycm93c09mZnNldC51cERvd24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHdlZWtOdW1iZXI6IG51bWJlciA9IE1hdGguY2VpbCgoZGF5RGF0ZSArIG9mZnNldEZvclZlcnRpY2FsKSAvIDcpO1xuICAgICAgICAgIGNvbnN0IGZpcnN0T2ZXZWVrOiBudW1iZXIgPSAod2Vla051bWJlciAtIDEpICogNyAtIG9mZnNldEZvclZlcnRpY2FsICsgMTtcbiAgICAgICAgICBjb25zdCBkZWx0YTogbnVtYmVyID0gZmlyc3RPZldlZWsgLSBkYXlEYXRlO1xuICAgICAgICAgIHJldHVybiB0aGlzLl9maW5kRGF5U3BlY2lhbEtleXMoZGF5cywgZGF5LCBkZWx0YSwgYXJyb3dzT2Zmc2V0LnVwRG93bik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNhc2UgJ1BhZ2VEb3duJzoge1xuICAgICAgICBpZiAodGhpcy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICAgICAgY29uc3QgbGFzdERheU1vbnRoID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0TnVtRGF5c0luTW9udGgoZnVsbERhdGUpO1xuICAgICAgICAgIGNvbnN0IGRlbHRhID0gbGFzdERheU1vbnRoIC0gZGF5RGF0ZSAtICgobGFzdERheU1vbnRoIC0gZGF5RGF0ZSkgJSA3KTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5fZmluZERheVNwZWNpYWxLZXlzKGRheXMsIGRheSwgZGVsdGEsIC1hcnJvd3NPZmZzZXQudXBEb3duKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB3ZWVrTnVtYmVyOiBudW1iZXIgPSBNYXRoLmNlaWwoKGRheURhdGUgKyBvZmZzZXRGb3JWZXJ0aWNhbCkgLyA3KTtcbiAgICAgICAgICBjb25zdCBsYXN0T2ZXZWVrOiBudW1iZXIgPSB3ZWVrTnVtYmVyICogNyAtIG9mZnNldEZvclZlcnRpY2FsO1xuICAgICAgICAgIGNvbnN0IGRlbHRhOiBudW1iZXIgPSBsYXN0T2ZXZWVrIC0gZGF5RGF0ZTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5fZmluZERheVNwZWNpYWxLZXlzKGRheXMsIGRheSwgZGVsdGEsIC1hcnJvd3NPZmZzZXQudXBEb3duKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY2FzZSAnSG9tZSc6IHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IGRheURhdGUgLSAxO1xuICAgICAgICByZXR1cm4gdGhpcy5fZmluZERheVNwZWNpYWxLZXlzKGRheXMsIGRheSwgLWRhdGUsICsxKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0VuZCc6IHtcbiAgICAgICAgY29uc3QgbGFzdERheU1vbnRoID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0TnVtRGF5c0luTW9udGgoZnVsbERhdGUpO1xuICAgICAgICByZXR1cm4gdGhpcy5fZmluZERheVNwZWNpYWxLZXlzKGRheXMsIGRheSwgbGFzdERheU1vbnRoIC0gZGF5RGF0ZSwgLTEpO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGRheTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9maW5kRGF5QXJyb3dLZXlzKFxuICAgIGRheXM6IFNiYk1pbmlDYWxlbmRhckRheUVsZW1lbnRbXSxcbiAgICBkYXk6IFNiYk1pbmlDYWxlbmRhckRheUVsZW1lbnQsXG4gICAgZGVsdGE6IG51bWJlcixcbiAgKTogU2JiTWluaUNhbGVuZGFyRGF5RWxlbWVudCB7XG4gICAgY29uc3QgbmV3RGF0ZSA9IHRoaXMuX2RhdGVBZGFwdGVyLmFkZENhbGVuZGFyRGF5cyhcbiAgICAgIHRoaXMuX2RhdGVBZGFwdGVyLmRlc2VyaWFsaXplKGRheS5kYXRlKSEsXG4gICAgICBkZWx0YSxcbiAgICApO1xuICAgIGNvbnN0IG5ld0RhdGVTdHJpbmcgPSB0aGlzLl9kYXRlQWRhcHRlci50b0lzbzg2MDEobmV3RGF0ZSk7XG4gICAgY29uc3QgbmV3RGF5ID0gZGF5cy5maW5kKChkKSA9PiBkLmRhdGUgPT09IG5ld0RhdGVTdHJpbmcpO1xuICAgIGlmICghbmV3RGF5KSB7XG4gICAgICByZXR1cm4gZGF5O1xuICAgIH1cbiAgICByZXR1cm4gbmV3RGF5O1xuICB9XG5cbiAgcHJpdmF0ZSBfZmluZERheVNwZWNpYWxLZXlzKFxuICAgIGRheXM6IFNiYk1pbmlDYWxlbmRhckRheUVsZW1lbnRbXSxcbiAgICBkYXk6IFNiYk1pbmlDYWxlbmRhckRheUVsZW1lbnQsXG4gICAgZGVsdGE6IG51bWJlcixcbiAgICByZWN1cnNpdmVEZWx0YTogbnVtYmVyLFxuICApOiBTYmJNaW5pQ2FsZW5kYXJEYXlFbGVtZW50IHtcbiAgICBjb25zdCBuZXdEYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuYWRkQ2FsZW5kYXJEYXlzKFxuICAgICAgdGhpcy5fZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUoZGF5LmRhdGUpISxcbiAgICAgIGRlbHRhLFxuICAgICk7XG4gICAgY29uc3QgbmV3RGF0ZVN0cmluZyA9IHRoaXMuX2RhdGVBZGFwdGVyLnRvSXNvODYwMShuZXdEYXRlKTtcbiAgICBjb25zdCBuZXdEYXkgPSBkYXlzLmZpbmQoKGQpID0+IGQuZGF0ZSA9PT0gbmV3RGF0ZVN0cmluZyk7XG4gICAgaWYgKCFuZXdEYXkpIHtcbiAgICAgIHJldHVybiB0aGlzLl9maW5kRGF5U3BlY2lhbEtleXMoZGF5cywgZGF5LCBkZWx0YSArIHJlY3Vyc2l2ZURlbHRhLCByZWN1cnNpdmVEZWx0YSk7XG4gICAgfVxuICAgIHJldHVybiBuZXdEYXkhO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlU2xvdGNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zZXR1cEtleWRvd25MaXN0ZW5lcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0dXBLZXlkb3duTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgdGhpcy5fa2V5ZG93bkFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9rZXlkb3duQWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMuX2dldE1pbmlDYWxlbmRhckRheXMoKS5mb3JFYWNoKChkYXksIGluZGV4KSA9PiB7XG4gICAgICBkYXkuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVLZXlkb3duQ2FsZW5kYXJEYXkoZSksIHtcbiAgICAgICAgc2lnbmFsOiB0aGlzLl9rZXlkb3duQWJvcnRDb250cm9sbGVyIS5zaWduYWwsXG4gICAgICB9KTtcbiAgICAgIGlmIChpbmRleCAhPT0gMCkge1xuICAgICAgICBkYXkudGFiSW5kZXggPSAtMTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHVibGljIG92ZXJyaWRlIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuX2dldE1pbmlDYWxlbmRhckRheXMoKVxuICAgICAgPy5maW5kKChlKSA9PiBlLnRhYkluZGV4ID09PSAwKVxuICAgICAgPy5mb2N1cygpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fc2V0dXBLZXlkb3duTGlzdGVuZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX2tleWRvd25BYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX2hhbmRsZVNsb3RjaGFuZ2V9Pjwvc2xvdD5gO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItbWluaS1jYWxlbmRhcic6IFNiYk1pbmlDYWxlbmRhckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7SUNzQmEsZ0NBQXNCO21CQUFtQjs7OztjQUF6QywrQkFBeUMsWUFBVTs7OzhCQUs3RCxTQUFTLEVBQUUsU0FBUyxNQUFNLENBQUMsQ0FBQTtBQUM1QixnQkFBQSxNQUFBLE1BQUEseUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxpQkFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFXLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBWCxjQUFXOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsMkJBQUEsK0JBQUE7Ozs7Ozs7OztBQUxLLFFBQUEsY0FBc0I7OztBQUMvQixRQUFBLFNBQXlCLFVBQVUsc0JBQU07O0VBSWhFOztFQUFBLElBQWdCLGNBQVc7QUFBQSxVQUFBLE1BQUE7O0VBQTNCLElBQWdCLFlBQVcsT0FBQTtBQUFBLFNBQUEsK0JBQUE7O0VBSzNCLGNBQUE7QUFDRSxVQUFPO0FBTk8sU0FBQSwrQkFBQSxrQkFBQSxNQUFBLDJCQUE4QixhQUFZO0FBRWxELFFBQUEsMkJBQXVCLGtCQUFBLE1BQUEsK0JBQUEsRUFBMkI7QUFDbEQsUUFBQSxlQUErQixZQUFZLENBQUMsVUFBVSxlQUFlO0FBSzNFLFFBQUss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
184
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaS1jYWxlbmRhci5jb21wb25lbnQtRGR4Z3k0VGouanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL21pbmktY2FsZW5kYXIvbWluaS1jYWxlbmRhci9taW5pLWNhbGVuZGFyLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL21pbmktY2FsZW5kYXIvbWluaS1jYWxlbmRhci9taW5pLWNhbGVuZGFyLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0yeCkgdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpO1xufVxuIiwiaW1wb3J0IHsgTXV0YXRpb25Db250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9tdXRhdGlvbi1jb250cm9sbGVyLmpzJztcbmltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHR5cGUgeyBEYXRlQWRhcHRlciwgU2JiT3JpZW50YXRpb24gfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7XG4gIGRlZmF1bHREYXRlQWRhcHRlcixcbiAgaXNBcnJvd0tleU9yUGFnZUtleXNQcmVzc2VkLFxuICByZWFkQ29uZmlnLFxuICBTYmJFbGVtZW50LFxuICDJtXN0YXRlQ29udHJvbGxlcixcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk1pbmlDYWxlbmRhckRheUVsZW1lbnQgfSBmcm9tICcuLi9taW5pLWNhbGVuZGFyLWRheS9taW5pLWNhbGVuZGFyLWRheS5jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJNaW5pQ2FsZW5kYXJNb250aEVsZW1lbnQgfSBmcm9tICcuLi9taW5pLWNhbGVuZGFyLW1vbnRoL21pbmktY2FsZW5kYXItbW9udGguY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vbWluaS1jYWxlbmRhci5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSBtaW5pbWFsIGNhbGVuZGFyLCB0b2dldGhlciB3aXRoIHRoZSBgc2JiLW1pbmktY2FsZW5kYXItbW9udGhgIGFuZCBgc2JiLW1pbmktY2FsZW5kYXItZGF5YC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBgc2JiLW1pbmktY2FsZW5kYXItbW9udGhgIGVsZW1lbnRzLlxuICovXG5leHBvcnQgY2xhc3MgU2JiTWluaUNhbGVuZGFyRWxlbWVudDxUID0gRGF0ZT4gZXh0ZW5kcyBTYmJFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1taW5pLWNhbGVuZGFyJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gdW5zYWZlQ1NTKHN0eWxlKTtcblxuICAvKiogVGhlIG9yaWVudGF0aW9uIG9mIGRheXMgaW4gdGhlIGNhbGVuZGFyLiAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBvcmllbnRhdGlvbjogU2JiT3JpZW50YXRpb24gPSAnaG9yaXpvbnRhbCc7XG5cbiAgcHJpdmF0ZSBfa2V5ZG93bkFib3J0Q29udHJvbGxlcjogQWJvcnRDb250cm9sbGVyIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2RhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxUPiA9IHJlYWRDb25maWcoKS5kYXRldGltZT8uZGF0ZUFkYXB0ZXIgPz8gZGVmYXVsdERhdGVBZGFwdGVyO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgbmV3IE11dGF0aW9uQ29udHJvbGxlcih0aGlzLCB7XG4gICAgICAgIGNvbmZpZzogeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSxcbiAgICAgICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuX3NldE1vbnRoc1Nob3dZZWFyKCksXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0TWluaUNhbGVuZGFyTW9udGhzKCk6IFNiYk1pbmlDYWxlbmRhck1vbnRoRWxlbWVudFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2JiLW1pbmktY2FsZW5kYXItbW9udGgnKSA/PyBbXSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRNaW5pQ2FsZW5kYXJEYXlzKCk6IFNiYk1pbmlDYWxlbmRhckRheUVsZW1lbnRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgICB0aGlzLl9nZXRNaW5pQ2FsZW5kYXJNb250aHMoKS5mbGF0TWFwKChtb250aCkgPT5cbiAgICAgICAgQXJyYXkuZnJvbShtb250aC5xdWVyeVNlbGVjdG9yQWxsPy4oJ3NiYi1taW5pLWNhbGVuZGFyLWRheScpID8/IFtdKSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldE1vbnRoc1Nob3dZZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuX2dldE1pbmlDYWxlbmRhck1vbnRocygpLmZvckVhY2goXG4gICAgICAobW9udGhFbGVtZW50OiBTYmJNaW5pQ2FsZW5kYXJNb250aEVsZW1lbnQsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgY29uc3Qgc3BsaXREYXRlID0gbW9udGhFbGVtZW50LmRhdGUuc3BsaXQoJy0nKTtcbiAgICAgICAgaWYgKHNwbGl0RGF0ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgaWYgKGluZGV4ID09PSAwIHx8ICtzcGxpdERhdGVbMV0gPT09IDEpIHtcbiAgICAgICAgICAgIMm1c3RhdGVDb250cm9sbGVyKG1vbnRoRWxlbWVudCkuYWRkKCdzaG93LXllYXInKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgybVzdGF0ZUNvbnRyb2xsZXIobW9udGhFbGVtZW50KS5kZWxldGUoJ3Nob3cteWVhcicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlS2V5ZG93bkNhbGVuZGFyRGF5KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGlzQXJyb3dLZXlPclBhZ2VLZXlzUHJlc3NlZChldmVudCkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgY29uc3QgZGF5czogU2JiTWluaUNhbGVuZGFyRGF5RWxlbWVudFtdID0gdGhpcy5fZ2V0TWluaUNhbGVuZGFyRGF5cygpO1xuICAgIGNvbnN0IGRheSA9IGRheXMuZmluZCgoZSkgPT4gZSA9PT0gZXZlbnQudGFyZ2V0KSE7XG4gICAgY29uc3QgbmV4dEVsOiBTYmJNaW5pQ2FsZW5kYXJEYXlFbGVtZW50ID0gdGhpcy5fbmF2aWdhdGVCeUtleWJvYXJkRGF5VmlldyhkYXlzLCBkYXksIGV2ZW50KTtcbiAgICBjb25zdCBhY3RpdmVFbDogU2JiTWluaUNhbGVuZGFyRGF5RWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgU2JiTWluaUNhbGVuZGFyRGF5RWxlbWVudDtcbiAgICBpZiAobmV4dEVsICE9PSBhY3RpdmVFbCkge1xuICAgICAgbmV4dEVsLnRhYkluZGV4ID0gMDtcbiAgICAgIG5leHRFbD8uZm9jdXMoKTtcbiAgICAgIGFjdGl2ZUVsLnRhYkluZGV4ID0gLTE7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfbmF2aWdhdGVCeUtleWJvYXJkRGF5VmlldyhcbiAgICBkYXlzOiBTYmJNaW5pQ2FsZW5kYXJEYXlFbGVtZW50W10sXG4gICAgZGF5OiBTYmJNaW5pQ2FsZW5kYXJEYXlFbGVtZW50LFxuICAgIGV2ZW50OiBLZXlib2FyZEV2ZW50LFxuICApOiBTYmJNaW5pQ2FsZW5kYXJEYXlFbGVtZW50IHtcbiAgICBjb25zdCBhcnJvd3NPZmZzZXQgPVxuICAgICAgdGhpcy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnID8geyBsZWZ0UmlnaHQ6IDEsIHVwRG93bjogNyB9IDogeyBsZWZ0UmlnaHQ6IDcsIHVwRG93bjogMSB9O1xuICAgIGNvbnN0IGZ1bGxEYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIucGFyc2UoZGF5LmRhdGUpITtcbiAgICBjb25zdCBkYXlEYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0RGF0ZShmdWxsRGF0ZSk7XG4gICAgY29uc3Qgb2Zmc2V0Rm9yVmVydGljYWwgPSB0aGlzLl9kYXRlQWRhcHRlci5nZXRGaXJzdFdlZWtPZmZzZXQoZnVsbERhdGUpO1xuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICByZXR1cm4gdGhpcy5fZmluZERheUFycm93S2V5cyhkYXlzLCBkYXksIC1hcnJvd3NPZmZzZXQudXBEb3duKTtcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgIHJldHVybiB0aGlzLl9maW5kRGF5QXJyb3dLZXlzKGRheXMsIGRheSwgYXJyb3dzT2Zmc2V0LnVwRG93bik7XG4gICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICByZXR1cm4gdGhpcy5fZmluZERheUFycm93S2V5cyhkYXlzLCBkYXksIC1hcnJvd3NPZmZzZXQubGVmdFJpZ2h0KTtcbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxuICAgICAgICByZXR1cm4gdGhpcy5fZmluZERheUFycm93S2V5cyhkYXlzLCBkYXksIGFycm93c09mZnNldC5sZWZ0UmlnaHQpO1xuICAgICAgY2FzZSAnUGFnZVVwJzoge1xuICAgICAgICBpZiAodGhpcy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICAgICAgY29uc3QgZGVsdGEgPSBkYXlEYXRlIC0gKGRheURhdGUgJSA3IHx8IDcpO1xuICAgICAgICAgIHJldHVybiB0aGlzLl9maW5kRGF5U3BlY2lhbEtleXMoZGF5cywgZGF5LCAtZGVsdGEsIGFycm93c09mZnNldC51cERvd24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHdlZWtOdW1iZXI6IG51bWJlciA9IE1hdGguY2VpbCgoZGF5RGF0ZSArIG9mZnNldEZvclZlcnRpY2FsKSAvIDcpO1xuICAgICAgICAgIGNvbnN0IGZpcnN0T2ZXZWVrOiBudW1iZXIgPSAod2Vla051bWJlciAtIDEpICogNyAtIG9mZnNldEZvclZlcnRpY2FsICsgMTtcbiAgICAgICAgICBjb25zdCBkZWx0YTogbnVtYmVyID0gZmlyc3RPZldlZWsgLSBkYXlEYXRlO1xuICAgICAgICAgIHJldHVybiB0aGlzLl9maW5kRGF5U3BlY2lhbEtleXMoZGF5cywgZGF5LCBkZWx0YSwgYXJyb3dzT2Zmc2V0LnVwRG93bik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNhc2UgJ1BhZ2VEb3duJzoge1xuICAgICAgICBpZiAodGhpcy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICAgICAgY29uc3QgbGFzdERheU1vbnRoID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0TnVtRGF5c0luTW9udGgoZnVsbERhdGUpO1xuICAgICAgICAgIGNvbnN0IGRlbHRhID0gbGFzdERheU1vbnRoIC0gZGF5RGF0ZSAtICgobGFzdERheU1vbnRoIC0gZGF5RGF0ZSkgJSA3KTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5fZmluZERheVNwZWNpYWxLZXlzKGRheXMsIGRheSwgZGVsdGEsIC1hcnJvd3NPZmZzZXQudXBEb3duKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB3ZWVrTnVtYmVyOiBudW1iZXIgPSBNYXRoLmNlaWwoKGRheURhdGUgKyBvZmZzZXRGb3JWZXJ0aWNhbCkgLyA3KTtcbiAgICAgICAgICBjb25zdCBsYXN0T2ZXZWVrOiBudW1iZXIgPSB3ZWVrTnVtYmVyICogNyAtIG9mZnNldEZvclZlcnRpY2FsO1xuICAgICAgICAgIGNvbnN0IGRlbHRhOiBudW1iZXIgPSBsYXN0T2ZXZWVrIC0gZGF5RGF0ZTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5fZmluZERheVNwZWNpYWxLZXlzKGRheXMsIGRheSwgZGVsdGEsIC1hcnJvd3NPZmZzZXQudXBEb3duKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY2FzZSAnSG9tZSc6IHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IGRheURhdGUgLSAxO1xuICAgICAgICByZXR1cm4gdGhpcy5fZmluZERheVNwZWNpYWxLZXlzKGRheXMsIGRheSwgLWRhdGUsICsxKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0VuZCc6IHtcbiAgICAgICAgY29uc3QgbGFzdERheU1vbnRoID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0TnVtRGF5c0luTW9udGgoZnVsbERhdGUpO1xuICAgICAgICByZXR1cm4gdGhpcy5fZmluZERheVNwZWNpYWxLZXlzKGRheXMsIGRheSwgbGFzdERheU1vbnRoIC0gZGF5RGF0ZSwgLTEpO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGRheTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9maW5kRGF5QXJyb3dLZXlzKFxuICAgIGRheXM6IFNiYk1pbmlDYWxlbmRhckRheUVsZW1lbnRbXSxcbiAgICBkYXk6IFNiYk1pbmlDYWxlbmRhckRheUVsZW1lbnQsXG4gICAgZGVsdGE6IG51bWJlcixcbiAgKTogU2JiTWluaUNhbGVuZGFyRGF5RWxlbWVudCB7XG4gICAgY29uc3QgbmV3RGF0ZSA9IHRoaXMuX2RhdGVBZGFwdGVyLmFkZENhbGVuZGFyRGF5cyhcbiAgICAgIHRoaXMuX2RhdGVBZGFwdGVyLmRlc2VyaWFsaXplKGRheS5kYXRlKSEsXG4gICAgICBkZWx0YSxcbiAgICApO1xuICAgIGNvbnN0IG5ld0RhdGVTdHJpbmcgPSB0aGlzLl9kYXRlQWRhcHRlci50b0lzbzg2MDEobmV3RGF0ZSk7XG4gICAgY29uc3QgbmV3RGF5ID0gZGF5cy5maW5kKChkKSA9PiBkLmRhdGUgPT09IG5ld0RhdGVTdHJpbmcpO1xuICAgIGlmICghbmV3RGF5KSB7XG4gICAgICByZXR1cm4gZGF5O1xuICAgIH1cbiAgICByZXR1cm4gbmV3RGF5O1xuICB9XG5cbiAgcHJpdmF0ZSBfZmluZERheVNwZWNpYWxLZXlzKFxuICAgIGRheXM6IFNiYk1pbmlDYWxlbmRhckRheUVsZW1lbnRbXSxcbiAgICBkYXk6IFNiYk1pbmlDYWxlbmRhckRheUVsZW1lbnQsXG4gICAgZGVsdGE6IG51bWJlcixcbiAgICByZWN1cnNpdmVEZWx0YTogbnVtYmVyLFxuICApOiBTYmJNaW5pQ2FsZW5kYXJEYXlFbGVtZW50IHtcbiAgICBjb25zdCBuZXdEYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuYWRkQ2FsZW5kYXJEYXlzKFxuICAgICAgdGhpcy5fZGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUoZGF5LmRhdGUpISxcbiAgICAgIGRlbHRhLFxuICAgICk7XG4gICAgY29uc3QgbmV3RGF0ZVN0cmluZyA9IHRoaXMuX2RhdGVBZGFwdGVyLnRvSXNvODYwMShuZXdEYXRlKTtcbiAgICBjb25zdCBuZXdEYXkgPSBkYXlzLmZpbmQoKGQpID0+IGQuZGF0ZSA9PT0gbmV3RGF0ZVN0cmluZyk7XG4gICAgaWYgKCFuZXdEYXkpIHtcbiAgICAgIHJldHVybiB0aGlzLl9maW5kRGF5U3BlY2lhbEtleXMoZGF5cywgZGF5LCBkZWx0YSArIHJlY3Vyc2l2ZURlbHRhLCByZWN1cnNpdmVEZWx0YSk7XG4gICAgfVxuICAgIHJldHVybiBuZXdEYXkhO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlU2xvdGNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zZXR1cEtleWRvd25MaXN0ZW5lcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0dXBLZXlkb3duTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgdGhpcy5fa2V5ZG93bkFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9rZXlkb3duQWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMuX2dldE1pbmlDYWxlbmRhckRheXMoKS5mb3JFYWNoKChkYXksIGluZGV4KSA9PiB7XG4gICAgICBkYXkuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVLZXlkb3duQ2FsZW5kYXJEYXkoZSksIHtcbiAgICAgICAgc2lnbmFsOiB0aGlzLl9rZXlkb3duQWJvcnRDb250cm9sbGVyIS5zaWduYWwsXG4gICAgICB9KTtcbiAgICAgIGlmIChpbmRleCAhPT0gMCkge1xuICAgICAgICBkYXkudGFiSW5kZXggPSAtMTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHVibGljIG92ZXJyaWRlIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuX2dldE1pbmlDYWxlbmRhckRheXMoKVxuICAgICAgPy5maW5kKChlKSA9PiBlLnRhYkluZGV4ID09PSAwKVxuICAgICAgPy5mb2N1cygpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fc2V0dXBLZXlkb3duTGlzdGVuZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX2tleWRvd25BYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX2hhbmRsZVNsb3RjaGFuZ2V9Pjwvc2xvdD5gO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItbWluaS1jYWxlbmRhcic6IFNiYk1pbmlDYWxlbmRhckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7SUNzQmEsZ0NBQXNCO21CQUFtQjs7OztjQUF6QywrQkFBeUMsWUFBVTs7OzhCQUs3RCxTQUFTLEVBQUUsU0FBUyxNQUFNLENBQUMsQ0FBQTtBQUM1QixnQkFBQSxNQUFBLE1BQUEseUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxpQkFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFXLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBWCxjQUFXOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsMkJBQUEsK0JBQUE7Ozs7Ozs7OztBQUxLLFFBQUEsY0FBc0I7OztBQUMvQixRQUFBLFNBQXlCLFVBQVUsc0JBQU07O0VBSWhFOztFQUFBLElBQWdCLGNBQVc7QUFBQSxVQUFBLE1BQUE7O0VBQTNCLElBQWdCLFlBQVcsT0FBQTtBQUFBLFNBQUEsK0JBQUE7O0VBSzNCLGNBQUE7QUFDRSxVQUFPO0FBTk8sU0FBQSwrQkFBQSxrQkFBQSxNQUFBLDJCQUE4QixhQUFZO0FBRWxELFFBQUEsMkJBQXVCLGtCQUFBLE1BQUEsK0JBQUEsRUFBMkI7QUFDbEQsUUFBQSxlQUErQixZQUFZLENBQUMsVUFBVSxlQUFlO0FBSzNFLFFBQUss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
@@ -90,4 +90,4 @@ var SbbNavigationActionCommonElementMixin = (superClass) => {
90
90
  //#endregion
91
91
  export { SbbNavigationActionCommonElementMixin as t };
92
92
 
93
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1hY3Rpb24tY29tbW9uLUIyc29XWldXLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9uYXZpZ2F0aW9uL2NvbW1vbi9uYXZpZ2F0aW9uLWFjdGlvbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9uYXZpZ2F0aW9uL2NvbW1vbi9uYXZpZ2F0aW9uLWFjdGlvbi1jb21tb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi1uYXZpZ2F0aW9uLWFjdGlvbi1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTQtbmVnYXRpdmUpO1xuICAtLXNiYi1uYXZpZ2F0aW9uLWFjdGlvbi1pY29uLWRpc3BsYXk6IG5vbmU7XG5cbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgLy8gVXNlICFpbXBvcnRhbnQgaGVyZSB0byBub3QgaW50ZXJmZXJlIHdpdGggRmlyZWZveCBmb2N1cyByaW5nIGRlZmluaXRpb25cbiAgLy8gd2hpY2ggYXBwZWFycyBpbiBub3JtYWxpemUgQ1NTIG9mIHNldmVyYWwgZnJhbWV3b3Jrcy5cbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG46aG9zdCg6c3RhdGUoc2VjdGlvbi1hY3Rpb24pOnN0YXRlKGFjdGlvbi1hY3RpdmUpLnNiYi1hY3RpdmUpIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1hY3Rpb24taWNvbi1kaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKGFjdGlvbi1hY3RpdmUpKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tYWN0aW9uLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItNSk7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIC0tc2JiLW5hdmlnYXRpb24tYWN0aW9uLWNvbG9yOiBIaWdobGlnaHQ7XG4gIH1cbn1cblxuc2JiLWljb24ge1xuICBkaXNwbGF5OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1hY3Rpb24taWNvbi1kaXNwbGF5KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldC1pbmxpbmUtc3RhcnQ6IGNhbGMoKHZhcigtLXNiYi1zaXplLWljb24tdWktc21hbGwpICsgdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpKSAqIC0xKTtcbiAgaW5zZXQtYmxvY2stc3RhcnQ6IGNhbGMoMWVtICogKHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LXRleHQpIC8gMikpO1xuICB0cmFuc2xhdGU6IDAgLTUwJTtcbn1cblxuQGluY2x1ZGUgc2JiLmhvdmVyLW1xKCRob3ZlcjogdHJ1ZSkge1xuICA6aG9zdCg6aG92ZXIpIHtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLWFjdGlvbi1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTUpO1xuICB9XG59XG5cbjpob3N0KDpzdGF0ZShidXR0b24pKSB7XG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLWFjdGlvbi1jb2xvcjogQnV0dG9uVGV4dDtcbiAgfVxufVxuXG46aXMoLnNiYi1uYXZpZ2F0aW9uLWJ1dHRvbiwgLnNiYi1uYXZpZ2F0aW9uLWxpbmspIHtcbiAgQGluY2x1ZGUgc2JiLnRpdGxlLTQoJGV4Y2x1ZGUtc3BhY2luZzogdHJ1ZSk7XG5cbiAgY3Vyc29yOiB2YXIoLS1zYmItY3Vyc29yLXBvaW50ZXIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbiwgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi0zeCkpIGVhc2U7XG4gIGh5cGhlbnM6IGF1dG87XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1hY3Rpb24tY29sb3IpO1xuICBvdXRsaW5lOiBub25lO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG5cbiAgOmhvc3QoW3NpemU9J20nXSkgJiB7XG4gICAgQGluY2x1ZGUgc2JiLnRleHQtcy0tYm9sZDtcbiAgfVxuXG4gIDpob3N0KFtzaXplPSdzJ10pICYge1xuICAgIEBpbmNsdWRlIHNiYi50ZXh0LXh4cy0tYm9sZDtcbiAgfVxuXG4gIC8vIEhhbmRsZSBmb2N1cyBvbiB0aGUgaG9zdCAoYnV0dG9uIHZhcmlhbnQpXG4gIDpob3N0KDpmb2N1cy12aXNpYmxlKSAmLFxuICAvLyBIYW5kbGUgZm9jdXMgb24gdGhlIGFjdGlvbiAobGluayB2YXJpYW50KVxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuXG4gICAgYm9yZGVyLXJhZGl1czogY2FsYyh2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy00eCkgLSB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1vZmZzZXQpKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCwgdW5zYWZlQ1NTIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB0eXBlIHtcbiAgQWJzdHJhY3RDb25zdHJ1Y3RvcixcbiAgU2JiQWN0aW9uQmFzZUVsZW1lbnQsXG4gIFNiYkVsZW1lbnRDb25zdHJ1Y3RvcixcbiAgU2JiRWxlbWVudFR5cGUsXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzLCBpc0xlYW4gfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYkljb25FbGVtZW50IH0gZnJvbSAnLi4vLi4vaWNvbi5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWJ1dHRvbi9uYXZpZ2F0aW9uLWJ1dHRvbi5jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uTGlua0VsZW1lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWxpbmsvbmF2aWdhdGlvbi1saW5rLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25NYXJrZXJFbGVtZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1tYXJrZXIvbmF2aWdhdGlvbi1tYXJrZXIuY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1zZWN0aW9uL25hdmlnYXRpb24tc2VjdGlvbi5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9uYXZpZ2F0aW9uLWFjdGlvbi5zY3NzP2lubGluZSc7XG5cbmV4cG9ydCB0eXBlIFNiYk5hdmlnYXRpb25BY3Rpb25TaXplID0gJ3MnIHwgJ20nIHwgJ2wnO1xuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJOYXZpZ2F0aW9uQWN0aW9uQ29tbW9uRWxlbWVudE1peGluVHlwZSB7XG4gIHB1YmxpYyBhY2Nlc3NvciBzaXplOiBTYmJOYXZpZ2F0aW9uQWN0aW9uU2l6ZTtcbiAgcHVibGljIGdldCBtYXJrZXIoKTogU2JiTmF2aWdhdGlvbk1hcmtlckVsZW1lbnQgfCBudWxsO1xuICBwdWJsaWMgZ2V0IHNlY3Rpb24oKTogU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IHwgbnVsbDtcbiAgcHVibGljIGNvbm5lY3RlZFNlY3Rpb246IFNiYk5hdmlnYXRpb25TZWN0aW9uRWxlbWVudCB8IHVuZGVmaW5lZDtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYk5hdmlnYXRpb25BY3Rpb25Db21tb25FbGVtZW50TWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkFjdGlvbkJhc2VFbGVtZW50PiAmIFNiYkVsZW1lbnRDb25zdHJ1Y3Rvcixcbj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYk5hdmlnYXRpb25BY3Rpb25Db21tb25FbGVtZW50TWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJOYXZpZ2F0aW9uQWN0aW9uQ29tbW9uRWxlbWVudFxuICAgIGV4dGVuZHMgc3VwZXJDbGFzc1xuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJOYXZpZ2F0aW9uQWN0aW9uQ29tbW9uRWxlbWVudE1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtTYmJJY29uRWxlbWVudF07XG4gICAgcHVibGljIHN0YXRpYyBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgICAvKipcbiAgICAgKiBBY3Rpb24gc2l6ZSB2YXJpYW50LCBlaXRoZXIgcywgbSBvciBsLlxuICAgICAqIEBkZWZhdWx0ICdsJyAvICdzJyAobGVhbilcbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBzaXplOiBTYmJOYXZpZ2F0aW9uQWN0aW9uU2l6ZSA9IGlzTGVhbigpXG4gICAgICA/ICdzJ1xuICAgICAgOiAnbCc7XG5cbiAgICAvKiogVGhlIHNlY3Rpb24gdGhhdCBpcyBiZWluZyBjb250cm9sbGVkIGJ5IHRoZSBhY3Rpb24sIGlmIGFueS4gKi9cbiAgICBwdWJsaWMgY29ubmVjdGVkU2VjdGlvbj86IFNiYk5hdmlnYXRpb25TZWN0aW9uRWxlbWVudDtcblxuICAgIC8qKiBUaGUgbmF2aWdhdGlvbiBtYXJrZXIgaW4gd2hpY2ggdGhlIGFjdGlvbiBpcyBuZXN0ZWQuICovXG4gICAgcHVibGljIGdldCBtYXJrZXIoKTogU2JiTmF2aWdhdGlvbk1hcmtlckVsZW1lbnQgfCBudWxsIHtcbiAgICAgIHJldHVybiB0aGlzLl9uYXZpZ2F0aW9uTWFya2VyO1xuICAgIH1cblxuICAgIC8qKiBUaGUgc2VjdGlvbiBpbiB3aGljaCB0aGUgYWN0aW9uIGlzIG5lc3RlZC4gKi9cbiAgICBwdWJsaWMgZ2V0IHNlY3Rpb24oKTogU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IHwgbnVsbCB7XG4gICAgICByZXR1cm4gdGhpcy5fbmF2aWdhdGlvblNlY3Rpb247XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbmF2aWdhdGlvbk1hcmtlcjogU2JiTmF2aWdhdGlvbk1hcmtlckVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIF9uYXZpZ2F0aW9uU2VjdGlvbjogU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIXRoaXMubWF0Y2hlcygnOnN0YXRlKGFjdGlvbi1hY3RpdmUpJykgJiZcbiAgICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uTWFya2VyICYmXG4gICAgICAgICAgIXRoaXMuY29ubmVjdGVkU2VjdGlvblxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLm1hcmtlcj8uc2VsZWN0KFxuICAgICAgICAgICAgdGhpcyBhcyB1bmtub3duIGFzIFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHwgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50LFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICAgIC8vIENoZWNrIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgbmVzdGVkIGluc2lkZSBhIG5hdmlnYXRpb24gbWFya2VyLlxuICAgICAgdGhpcy5fbmF2aWdhdGlvbk1hcmtlciA9IHRoaXMuY2xvc2VzdCgnc2JiLW5hdmlnYXRpb24tbWFya2VyJyk7XG5cbiAgICAgIC8vIENoZWNrIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgbmVzdGVkIGluc2lkZSBhIG5hdmlnYXRpb24gc2VjdGlvbi5cbiAgICAgIHRoaXMuX25hdmlnYXRpb25TZWN0aW9uID0gdGhpcy5jbG9zZXN0KCdzYmItbmF2aWdhdGlvbi1zZWN0aW9uJyk7XG4gICAgICB0aGlzLnRvZ2dsZVN0YXRlKCdzZWN0aW9uLWFjdGlvbicsICEhdGhpcy5fbmF2aWdhdGlvblNlY3Rpb24pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgICByZXR1cm4gaHRtbGA8c2JiLWljb24gbmFtZT1cImRhc2gtc21hbGxcIj48L3NiYi1pY29uPiA8c2xvdD48L3Nsb3Q+YDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFNiYk5hdmlnYXRpb25BY3Rpb25Db21tb25FbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJOYXZpZ2F0aW9uQWN0aW9uQ29tbW9uRWxlbWVudE1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FDNkJBLElBQWEseUNBR1gsZUFDc0U7QUE4RHRFLGVBN0QrQztvQkFDckM7Ozs7ZUFESyx5Q0FDTCxZQUFVOzs7d0JBVWpCLFNBQVMsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFBO0FBQUMsaUJBQUEsTUFBQSxNQUFBLGtCQUFBO0tBQUEsTUFBQTtLQUFBLE1BQUE7S0FBQSxRQUFBO0tBQUEsU0FBQTtLQUFBLFFBQUE7TUFBQSxNQUFBLFFBQUEsVUFBQTtNQUFBLE1BQUEsUUFBQSxJQUFnQjtNQUFJLE1BQUEsS0FBQSxVQUFBO0FBQUEsV0FBSixPQUFJOztNQUFBO0tBQUEsVUFBQTtLQUFBLEVBQUEsb0JBQUEsd0JBQUE7Ozs7Ozs7OztBQVAxQixTQUFBLHNCQUF3QyxDQUFDLGVBQWU7OztBQUNqRSxTQUFBLFNBQXlCLENBQUMsaUJBQWlCLFVBQVUsMEJBQU0sQ0FBQzs7R0FNN0M7Ozs7O0dBQUEsSUFBZ0IsT0FBSTtBQUFBLFdBQUEsTUFBQTs7R0FBcEIsSUFBZ0IsS0FBSSxPQUFBO0FBQUEsVUFBQSx3QkFBQTs7O0dBUWpELElBQVcsU0FBTTtBQUNmLFdBQU8sS0FBSzs7O0dBSWQsSUFBVyxVQUFPO0FBQ2hCLFdBQU8sS0FBSzs7R0FNZCxZQUFzQixHQUFHLE1BQVc7QUFDbEMsVUFBTSxHQUFHLEtBQUs7QUFyQjZCLFVBQUEsd0JBQUEsa0JBQUEsTUFBQSxvQkFBZ0MsUUFBUSxHQUNqRixNQUNBLElBQUc7O0FBR0EsU0FBQSxtQkFBZ0Isa0JBQUEsTUFBQSx3QkFBQTtBQVlmLFNBQUEsb0JBQXVEO0FBQ3ZELFNBQUEscUJBQXlEO0FBSS9ELFNBQUssbUJBQW1CLGVBQWM7QUFDcEMsU0FDRSxDQUFDLEtBQUssUUFBUSxvREFBd0IsSUFDdEMsS0FBSyxxQkFDTCxDQUFDLEtBQUssaUJBRU4sTUFBSyxRQUFRLE9BQ1gsS0FDRDtNQUVIOztHQUdZLG9CQUFpQjtBQUMvQixVQUFNLG1CQUFtQjtBQUd6QixTQUFLLG9CQUFvQixLQUFLLFFBQVEsd0JBQXdCO0FBRzlELFNBQUsscUJBQXFCLEtBQUssUUFBUSx5QkFBeUI7QUFDaEUsU0FBSyxZQUFZLGtCQUFrQixDQUFDLENBQUMsS0FBSyxtQkFBbUI7O0dBRzVDLGlCQUFjO0FBQy9CLFdBQU8sTUFBSSJ9
93
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1hY3Rpb24tY29tbW9uLUIyc29XWldXLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9uYXZpZ2F0aW9uL2NvbW1vbi9uYXZpZ2F0aW9uLWFjdGlvbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9uYXZpZ2F0aW9uL2NvbW1vbi9uYXZpZ2F0aW9uLWFjdGlvbi1jb21tb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi1uYXZpZ2F0aW9uLWFjdGlvbi1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTQtbmVnYXRpdmUpO1xuICAtLXNiYi1uYXZpZ2F0aW9uLWFjdGlvbi1pY29uLWRpc3BsYXk6IG5vbmU7XG5cbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgLy8gVXNlICFpbXBvcnRhbnQgaGVyZSB0byBub3QgaW50ZXJmZXJlIHdpdGggRmlyZWZveCBmb2N1cyByaW5nIGRlZmluaXRpb25cbiAgLy8gd2hpY2ggYXBwZWFycyBpbiBub3JtYWxpemUgQ1NTIG9mIHNldmVyYWwgZnJhbWV3b3Jrcy5cbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG46aG9zdCg6c3RhdGUoc2VjdGlvbi1hY3Rpb24pOnN0YXRlKGFjdGlvbi1hY3RpdmUpLnNiYi1hY3RpdmUpIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1hY3Rpb24taWNvbi1kaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKGFjdGlvbi1hY3RpdmUpKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tYWN0aW9uLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItNSk7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIC0tc2JiLW5hdmlnYXRpb24tYWN0aW9uLWNvbG9yOiBIaWdobGlnaHQ7XG4gIH1cbn1cblxuc2JiLWljb24ge1xuICBkaXNwbGF5OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1hY3Rpb24taWNvbi1kaXNwbGF5KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldC1pbmxpbmUtc3RhcnQ6IGNhbGMoKHZhcigtLXNiYi1zaXplLWljb24tdWktc21hbGwpICsgdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpKSAqIC0xKTtcbiAgaW5zZXQtYmxvY2stc3RhcnQ6IGNhbGMoMWVtICogKHZhcigtLXNiYi10eXBvLWxpbmUtaGVpZ2h0LXRleHQpIC8gMikpO1xuICB0cmFuc2xhdGU6IDAgLTUwJTtcbn1cblxuQGluY2x1ZGUgc2JiLmhvdmVyLW1xKCRob3ZlcjogdHJ1ZSkge1xuICA6aG9zdCg6aG92ZXIpIHtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLWFjdGlvbi1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTUpO1xuICB9XG59XG5cbjpob3N0KDpzdGF0ZShidXR0b24pKSB7XG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLWFjdGlvbi1jb2xvcjogQnV0dG9uVGV4dDtcbiAgfVxufVxuXG46aXMoLnNiYi1uYXZpZ2F0aW9uLWJ1dHRvbiwgLnNiYi1uYXZpZ2F0aW9uLWxpbmspIHtcbiAgQGluY2x1ZGUgc2JiLnRpdGxlLTQoJGV4Y2x1ZGUtc3BhY2luZzogdHJ1ZSk7XG5cbiAgY3Vyc29yOiB2YXIoLS1zYmItY3Vyc29yLXBvaW50ZXIpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbiwgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi0zeCkpIGVhc2U7XG4gIGh5cGhlbnM6IGF1dG87XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGNvbG9yOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1hY3Rpb24tY29sb3IpO1xuICBvdXRsaW5lOiBub25lO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG5cbiAgOmhvc3QoW3NpemU9J20nXSkgJiB7XG4gICAgQGluY2x1ZGUgc2JiLnRleHQtcy0tYm9sZDtcbiAgfVxuXG4gIDpob3N0KFtzaXplPSdzJ10pICYge1xuICAgIEBpbmNsdWRlIHNiYi50ZXh0LXh4cy0tYm9sZDtcbiAgfVxuXG4gIC8vIEhhbmRsZSBmb2N1cyBvbiB0aGUgaG9zdCAoYnV0dG9uIHZhcmlhbnQpXG4gIDpob3N0KDpmb2N1cy12aXNpYmxlKSAmLFxuICAvLyBIYW5kbGUgZm9jdXMgb24gdGhlIGFjdGlvbiAobGluayB2YXJpYW50KVxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIEBpbmNsdWRlIHNiYi5mb2N1cy1vdXRsaW5lO1xuXG4gICAgYm9yZGVyLXJhZGl1czogY2FsYyh2YXIoLS1zYmItYm9yZGVyLXJhZGl1cy00eCkgLSB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1vZmZzZXQpKTtcbiAgfVxufVxuIiwiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgdHlwZSBUZW1wbGF0ZVJlc3VsdCwgdW5zYWZlQ1NTIH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ2xpdC9zdGF0aWMtaHRtbC5qcyc7XG5cbmltcG9ydCB0eXBlIHtcbiAgQWJzdHJhY3RDb25zdHJ1Y3RvcixcbiAgU2JiQWN0aW9uQmFzZUVsZW1lbnQsXG4gIFNiYkVsZW1lbnRDb25zdHJ1Y3RvcixcbiAgU2JiRWxlbWVudFR5cGUsXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHsgYm94U2l6aW5nU3R5bGVzLCBpc0xlYW4gfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYkljb25FbGVtZW50IH0gZnJvbSAnLi4vLi4vaWNvbi5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWJ1dHRvbi9uYXZpZ2F0aW9uLWJ1dHRvbi5jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uTGlua0VsZW1lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWxpbmsvbmF2aWdhdGlvbi1saW5rLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25NYXJrZXJFbGVtZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1tYXJrZXIvbmF2aWdhdGlvbi1tYXJrZXIuY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1zZWN0aW9uL25hdmlnYXRpb24tc2VjdGlvbi5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9uYXZpZ2F0aW9uLWFjdGlvbi5zY3NzP2lubGluZSc7XG5cbmV4cG9ydCB0eXBlIFNiYk5hdmlnYXRpb25BY3Rpb25TaXplID0gJ3MnIHwgJ20nIHwgJ2wnO1xuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJOYXZpZ2F0aW9uQWN0aW9uQ29tbW9uRWxlbWVudE1peGluVHlwZSB7XG4gIHB1YmxpYyBhY2Nlc3NvciBzaXplOiBTYmJOYXZpZ2F0aW9uQWN0aW9uU2l6ZTtcbiAgcHVibGljIGdldCBtYXJrZXIoKTogU2JiTmF2aWdhdGlvbk1hcmtlckVsZW1lbnQgfCBudWxsO1xuICBwdWJsaWMgZ2V0IHNlY3Rpb24oKTogU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IHwgbnVsbDtcbiAgcHVibGljIGNvbm5lY3RlZFNlY3Rpb246IFNiYk5hdmlnYXRpb25TZWN0aW9uRWxlbWVudCB8IHVuZGVmaW5lZDtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYk5hdmlnYXRpb25BY3Rpb25Db21tb25FbGVtZW50TWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkFjdGlvbkJhc2VFbGVtZW50PiAmIFNiYkVsZW1lbnRDb25zdHJ1Y3Rvcixcbj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYk5hdmlnYXRpb25BY3Rpb25Db21tb25FbGVtZW50TWl4aW5UeXBlPiAmIFQgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJOYXZpZ2F0aW9uQWN0aW9uQ29tbW9uRWxlbWVudFxuICAgIGV4dGVuZHMgc3VwZXJDbGFzc1xuICAgIGltcGxlbWVudHMgUGFydGlhbDxTYmJOYXZpZ2F0aW9uQWN0aW9uQ29tbW9uRWxlbWVudE1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtTYmJJY29uRWxlbWVudF07XG4gICAgcHVibGljIHN0YXRpYyBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgICAvKipcbiAgICAgKiBBY3Rpb24gc2l6ZSB2YXJpYW50LCBlaXRoZXIgcywgbSBvciBsLlxuICAgICAqIEBkZWZhdWx0ICdsJyAvICdzJyAobGVhbilcbiAgICAgKi9cbiAgICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pIHB1YmxpYyBhY2Nlc3NvciBzaXplOiBTYmJOYXZpZ2F0aW9uQWN0aW9uU2l6ZSA9IGlzTGVhbigpXG4gICAgICA/ICdzJ1xuICAgICAgOiAnbCc7XG5cbiAgICAvKiogVGhlIHNlY3Rpb24gdGhhdCBpcyBiZWluZyBjb250cm9sbGVkIGJ5IHRoZSBhY3Rpb24sIGlmIGFueS4gKi9cbiAgICBwdWJsaWMgY29ubmVjdGVkU2VjdGlvbj86IFNiYk5hdmlnYXRpb25TZWN0aW9uRWxlbWVudDtcblxuICAgIC8qKiBUaGUgbmF2aWdhdGlvbiBtYXJrZXIgaW4gd2hpY2ggdGhlIGFjdGlvbiBpcyBuZXN0ZWQuICovXG4gICAgcHVibGljIGdldCBtYXJrZXIoKTogU2JiTmF2aWdhdGlvbk1hcmtlckVsZW1lbnQgfCBudWxsIHtcbiAgICAgIHJldHVybiB0aGlzLl9uYXZpZ2F0aW9uTWFya2VyO1xuICAgIH1cblxuICAgIC8qKiBUaGUgc2VjdGlvbiBpbiB3aGljaCB0aGUgYWN0aW9uIGlzIG5lc3RlZC4gKi9cbiAgICBwdWJsaWMgZ2V0IHNlY3Rpb24oKTogU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IHwgbnVsbCB7XG4gICAgICByZXR1cm4gdGhpcy5fbmF2aWdhdGlvblNlY3Rpb247XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbmF2aWdhdGlvbk1hcmtlcjogU2JiTmF2aWdhdGlvbk1hcmtlckVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIF9uYXZpZ2F0aW9uU2VjdGlvbjogU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIXRoaXMubWF0Y2hlcygnOnN0YXRlKGFjdGlvbi1hY3RpdmUpJykgJiZcbiAgICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uTWFya2VyICYmXG4gICAgICAgICAgIXRoaXMuY29ubmVjdGVkU2VjdGlvblxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLm1hcmtlcj8uc2VsZWN0KFxuICAgICAgICAgICAgdGhpcyBhcyB1bmtub3duIGFzIFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHwgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50LFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICAgIC8vIENoZWNrIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgbmVzdGVkIGluc2lkZSBhIG5hdmlnYXRpb24gbWFya2VyLlxuICAgICAgdGhpcy5fbmF2aWdhdGlvbk1hcmtlciA9IHRoaXMuY2xvc2VzdCgnc2JiLW5hdmlnYXRpb24tbWFya2VyJyk7XG5cbiAgICAgIC8vIENoZWNrIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgbmVzdGVkIGluc2lkZSBhIG5hdmlnYXRpb24gc2VjdGlvbi5cbiAgICAgIHRoaXMuX25hdmlnYXRpb25TZWN0aW9uID0gdGhpcy5jbG9zZXN0KCdzYmItbmF2aWdhdGlvbi1zZWN0aW9uJyk7XG4gICAgICB0aGlzLnRvZ2dsZVN0YXRlKCdzZWN0aW9uLWFjdGlvbicsICEhdGhpcy5fbmF2aWdhdGlvblNlY3Rpb24pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgICByZXR1cm4gaHRtbGA8c2JiLWljb24gbmFtZT1cImRhc2gtc21hbGxcIj48L3NiYi1pY29uPiA8c2xvdD48L3Nsb3Q+YDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFNiYk5hdmlnYXRpb25BY3Rpb25Db21tb25FbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJOYXZpZ2F0aW9uQWN0aW9uQ29tbW9uRWxlbWVudE1peGluVHlwZT4gJlxuICAgIFQ7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FDNkJBLElBQWEseUNBR1gsZUFDc0U7QUE4RHRFLGVBN0QrQztvQkFDckM7Ozs7ZUFESyx5Q0FDTCxZQUFVOzs7d0JBVWpCLFNBQVMsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFBO0FBQUMsaUJBQUEsTUFBQSxNQUFBLGtCQUFBO0tBQUEsTUFBQTtLQUFBLE1BQUE7S0FBQSxRQUFBO0tBQUEsU0FBQTtLQUFBLFFBQUE7TUFBQSxNQUFBLFFBQUEsVUFBQTtNQUFBLE1BQUEsUUFBQSxJQUFnQjtNQUFJLE1BQUEsS0FBQSxVQUFBO0FBQUEsV0FBSixPQUFJOztNQUFBO0tBQUEsVUFBQTtLQUFBLEVBQUEsb0JBQUEsd0JBQUE7Ozs7Ozs7OztBQVAxQixTQUFBLHNCQUF3QyxDQUFDLGVBQWU7OztBQUNqRSxTQUFBLFNBQXlCLENBQUMsaUJBQWlCLFVBQVUsMEJBQU0sQ0FBQzs7R0FNN0M7Ozs7O0dBQUEsSUFBZ0IsT0FBSTtBQUFBLFdBQUEsTUFBQTs7R0FBcEIsSUFBZ0IsS0FBSSxPQUFBO0FBQUEsVUFBQSx3QkFBQTs7O0dBUWpELElBQVcsU0FBTTtBQUNmLFdBQU8sS0FBSzs7O0dBSWQsSUFBVyxVQUFPO0FBQ2hCLFdBQU8sS0FBSzs7R0FNZCxZQUFzQixHQUFHLE1BQVc7QUFDbEMsVUFBTSxHQUFHLEtBQUs7QUFyQjZCLFVBQUEsd0JBQUEsa0JBQUEsTUFBQSxvQkFBZ0MsUUFBUSxHQUNqRixNQUNBLElBQUc7O0FBR0EsU0FBQSxtQkFBZ0Isa0JBQUEsTUFBQSx3QkFBQTtBQVlmLFNBQUEsb0JBQXVEO0FBQ3ZELFNBQUEscUJBQXlEO0FBSS9ELFNBQUssbUJBQW1CLGVBQWM7QUFDcEMsU0FDRSxDQUFDLEtBQUssUUFBUSxvREFBd0IsSUFDdEMsS0FBSyxxQkFDTCxDQUFDLEtBQUssaUJBRU4sTUFBSyxRQUFRLE9BQ1gsS0FDRDtNQUVIOztHQUdZLG9CQUFpQjtBQUMvQixVQUFNLG1CQUFtQjtBQUd6QixTQUFLLG9CQUFvQixLQUFLLFFBQVEsd0JBQXdCO0FBRzlELFNBQUsscUJBQXFCLEtBQUssUUFBUSx5QkFBeUI7QUFDaEUsU0FBSyxZQUFZLGtCQUFrQixDQUFDLENBQUMsS0FBSyxtQkFBbUI7O0dBRzVDLGlCQUFjO0FBQy9CLFdBQU8sTUFBSTs7O0tBR1IifQ==
@@ -344,4 +344,4 @@ var SbbNavigationSectionElement = (() => {
344
344
  //#endregion
345
345
  export { SbbNavigationSectionElement as t };
346
346
 
347
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zZWN0aW9uLmNvbXBvbmVudC1Wd0NKbE9mRS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLXNlY3Rpb24vbmF2aWdhdGlvbi1zZWN0aW9uLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi1zZWN0aW9uL25hdmlnYXRpb24tc2VjdGlvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tZGlzcGxheTogbm9uZTtcbiAgLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWNvbHVtbjogMSAvIC0xO1xuICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tcG9zaXRpb246IGZpeGVkO1xuICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTN4KVxuICApO1xuICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tYW5pbWF0aW9uLWVhc2luZzogZWFzZS1vdXQ7XG4gIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1wYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLWxheW91dC1iYXNlLW9mZnNldC1yZXNwb25zaXZlKTtcbiAgLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUtbCk7XG4gIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi10cmFuc2xhdGU6IDEwMCU7XG4gIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1jb250ZW50LXBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0xMngpO1xuICAtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yOiB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvci1kYXJrKTtcbiAgLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXdpZHRoOiAxMDBkdnc7XG4gIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1oZWlnaHQ6IDEwMGR2aDtcblxuICAvLyBXZSBoYXZlIHRvIHBsYWNlIHRoZSBzdHlsZXMgb24gdGhlIGhvc3QgYXMgaXQgaGFzIHRvIGJlIGFsaWduZWQgb24gdGhlIGdyaWQgb2YgdGhlIG5hdmlnYXRpb25cbiAgZGlzcGxheTogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1kaXNwbGF5KTtcbiAgcG9zaXRpb246IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tcG9zaXRpb24pO1xuICBncmlkLWNvbHVtbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1jb2x1bW4pO1xuICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gIGluc2V0LWJsb2NrLXN0YXJ0OiAwO1xuICB3aWR0aDogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi13aWR0aCk7XG4gIGhlaWdodDogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1oZWlnaHQpO1xuICB6LWluZGV4OiB2YXIoLS1zYmItbmF2aWdhdGlvbi16LWluZGV4LCB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpKTtcblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IGxhcmdlKSB7XG4gICAgLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWNvbHVtbjogNSAvIDEzO1xuICAgIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi00eClcbiAgICApO1xuICAgIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1wYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXhsKTtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTh4KVxuICAgICAgdmFyKC0tc2JiLWxheW91dC1iYXNlLW9mZnNldC1yZXNwb25zaXZlKTtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi10cmFuc2xhdGU6IDA7XG4gICAgLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWNvbnRlbnQtcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXdpZHRoOiBjYWxjKFxuICAgICAgMTAwJSArIHZhcigtLXNiYi1sYXlvdXQtYmFzZS1vZmZzZXQtcmVzcG9uc2l2ZSkgKyB2YXIoLS1zYmItZ3JpZC1iYXNlLWd1dHRlci1yZXNwb25zaXZlKVxuICAgICk7XG5cbiAgICB0cmFuc2xhdGU6IGNhbGModmFyKC0tc2JiLWdyaWQtYmFzZS1ndXR0ZXItcmVzcG9uc2l2ZSkgKiAtMSkgMDtcbiAgfVxuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogdWx0cmEpIHtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tY29sdW1uOiA2IC8gMTc7XG4gICAgLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHhsKVxuICAgICAgdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS1sKTtcbiAgfVxufVxuXG46aG9zdCg6c3RhdGUoc3RhdGUtb3BlbmVkKSkge1xuICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5pbmcpKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1wb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbjpob3N0KDppcyg6c3RhdGUoc3RhdGUtb3BlbmluZyksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG46aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtb3BlbmVkKSwgOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSkge1xuICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tZGlzcGxheTogYmxvY2s7XG59XG5cbjo6c2xvdHRlZCgqKSB7XG4gIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWNvbnRlbnQtcGFkZGluZy1pbmxpbmUtc3RhcnQpO1xufVxuXG4vLyBBbHdheXMgcGxhY2UgdGhlIHNiYi1idXR0b24gb24gYSBuZXcgcm93XG46OnNsb3R0ZWQoOnN0YXRlKHNiYi1idXR0b24pKSB7XG4gIGdyaWQtY29sdW1uLXN0YXJ0OiAxO1xufVxuXG4uc2JiLW5hdmlnYXRpb24tc2VjdGlvbl9fY29udGFpbmVyIHtcbiAgcG9pbnRlci1ldmVudHM6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tcG9pbnRlci1ldmVudHMpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24taGVpZ2h0KTtcbn1cblxuLnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24ge1xuICBkaXNwbGF5OiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgY29sb3I6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWNvbG9yLCB2YXIoLS1zYmItY29sb3ItMS1uZWdhdGl2ZSkpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICA6aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtb3BlbmVkKSwgOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSkgJiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBhbmltYXRpb246IHtcbiAgICAgIG5hbWU6IG9wZW47XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWFuaW1hdGlvbi1lYXNpbmcpO1xuICAgIH1cbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkgJiB7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGNsb3NlO1xuICB9XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIG91dGxpbmU6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpIHNvbGlkIENhbnZhc1RleHQ7XG4gIH1cbn1cblxuLnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX3dyYXBwZXIge1xuICBAaW5jbHVkZSBzYmIuc2Nyb2xsYmFyKCRuZWdhdGl2ZTogdHJ1ZSk7XG5cbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXBhZGRpbmctYmxvY2spO1xuICBvdXRsaW5lOiBub25lO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gIDpob3N0KDppcyg6c3RhdGUoc3RhdGUtb3BlbmluZyksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpICYge1xuICAgIC0tc2JiLXNjcm9sbGJhci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICBzY3JvbGxiYXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi5zYmItbmF2aWdhdGlvbi1zZWN0aW9uX19oZWFkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpO1xuICBtYXJnaW4tYmxvY2stc3RhcnQ6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHhsKTtcbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tY29udGVudC1wYWRkaW5nLWlubGluZS1zdGFydCk7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIG1hcmdpbi1ibG9jay1zdGFydDogMDtcbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogdWx0cmEpIHtcbiAgICBncmlkLWNvbHVtbjogMSAvIDQ7XG4gIH1cbn1cblxuLnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX2JhY2sge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zbGF0ZTogY2FsYygoMTAwJSArIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTF4KSkgKiAtMSkgMDtcblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IGxhcmdlKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uc2JiLW5hdmlnYXRpb24tc2VjdGlvbl9fdGl0bGUge1xuICBAaW5jbHVkZSBzYmIudGl0bGUtcnVsZXM7XG4gIEBpbmNsdWRlIHNiYi50aXRsZS0tbGV2ZWwtNDtcblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IGxhcmdlKSB7XG4gICAgQGluY2x1ZGUgc2JiLnRpdGxlLS1sZXZlbC0yO1xuICB9XG59XG5cbi5zYmItbmF2aWdhdGlvbi1zZWN0aW9uX19jb250ZW50IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIGdhcDogdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS1sKSB2YXIoLS1zYmItZ3JpZC1iYXNlLWd1dHRlci1yZXNwb25zaXZlKTtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tcGFkZGluZy1pbmxpbmUpO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zbGF0ZTogMCB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0zeCk7XG4gICAgdHJhbnNpdGlvbjoge1xuICAgICAgZHVyYXRpb246IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIGRlbGF5OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgICB0aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgICBwcm9wZXJ0eTogb3BhY2l0eSwgdHJhbnNsYXRlO1xuICAgIH1cblxuICAgIDpob3N0KDpzdGF0ZShzdGF0ZS1vcGVuZWQpKSAmIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0cmFuc2xhdGU6IDAgMDtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IHVsdHJhKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkgJiB7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMHM7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBvcGVuIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNsYXRlOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXRyYW5zbGF0ZSkgMDtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2xhdGU6IDAgMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGNsb3NlIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNsYXRlOiAwIDA7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNsYXRlOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXRyYW5zbGF0ZSkgMDtcbiAgfVxufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIG5vdGhpbmcsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYlRyYW5zcGFyZW50QnV0dG9uRWxlbWVudCB9IGZyb20gJy4uLy4uL2J1dHRvbi5wdXJlLnRzJztcbmltcG9ydCB7XG4gIGJveFNpemluZ1N0eWxlcyxcbiAgZm9yY2VUeXBlLFxuICBpMThuR29CYWNrLFxuICBpZFJlZmVyZW5jZSxcbiAgSVNfRk9DVVNBQkxFX1FVRVJZLFxuICBpc1plcm9BbmltYXRpb25EdXJhdGlvbixcbiAgb21pdEVtcHR5Q29udmVydGVyLFxuICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzLFxuICB0eXBlIFNiYkVsZW1lbnRUeXBlLFxuICBTYmJGb2N1c1RyYXBDb250cm9sbGVyLFxuICBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IsXG4gIFNiYkxhbmd1YWdlQ29udHJvbGxlcixcbiAgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcixcbiAgU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRTbWFsbEFuZEJlbG93LFxuICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbiAgdHlwZSBTYmJPcGVuZWRDbG9zZWRTdGF0ZSxcbiAgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW4sXG4gIHNldEFyaWFPdmVybGF5VHJpZ2dlclByb3BlcnRpZXMsXG4gIMm1c3RhdGVDb250cm9sbGVyLFxufSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiTmF2aWdhdGlvbkVsZW1lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWJ1dHRvbi9uYXZpZ2F0aW9uLWJ1dHRvbi5jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uTGlua0VsZW1lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWxpbmsvbmF2aWdhdGlvbi1saW5rLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL25hdmlnYXRpb24tc2VjdGlvbi5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogSXQgY2FuIGJlIHVzZWQgYXMgYSBjb250YWluZXIgZm9yIGBzYmItbmF2aWdhdGlvbi1saXN0YCB3aXRoaW4gYSBgc2JiLW5hdmlnYXRpb25gLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgaW50byB0aGUgYHNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25gLlxuICovXG5leHBvcnQgY2xhc3MgU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IGV4dGVuZHMgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW4oU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1uYXZpZ2F0aW9uLXNlY3Rpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIGVsZW1lbnREZXBlbmRlbmNpZXM6IFNiYkVsZW1lbnRUeXBlW10gPSBbU2JiVHJhbnNwYXJlbnRCdXR0b25FbGVtZW50XTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCB0byBiZSBzaG93biBiZWZvcmUgdGhlIGFjdGlvbiBsaXN0LlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3RpdGxlLWNvbnRlbnQnLCByZWZsZWN0OiB0cnVlLCBjb252ZXJ0ZXI6IG9taXRFbXB0eUNvbnZlcnRlciB9KVxuICBwdWJsaWMgYWNjZXNzb3IgdGl0bGVDb250ZW50OiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdGhhdCB3aWxsIHRyaWdnZXIgdGhlIG5hdmlnYXRpb24gc2VjdGlvbi5cbiAgICpcbiAgICogRm9yIGF0dHJpYnV0ZSB1c2FnZSwgcHJvdmlkZSBhbiBpZCByZWZlcmVuY2UuXG4gICAqL1xuICBAaWRSZWZlcmVuY2UoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBuYXYgZWxlbWVudCBhbmQgaXMgcmVhZCBhcyBhIHRpdGxlIG9mIHRoZSBuYXZpZ2F0aW9uLXNlY3Rpb24uXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1sYWJlbCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIFRoaXMgd2lsbCBiZSBmb3J3YXJkZWQgYXMgYXJpYS1sYWJlbCB0byB0aGUgYmFjayBidXR0b24gZWxlbWVudC5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LWJhY2stbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5QmFja0xhYmVsOiBzdHJpbmcgPSAnJztcblxuICAvKiogVGhlIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBzZXQgc3RhdGUoc3RhdGU6IFNiYk9wZW5lZENsb3NlZFN0YXRlKSB7XG4gICAgc3VwZXIuc3RhdGUgPSBzdGF0ZTtcbiAgICB0aGlzLmludGVybmFscy5hcmlhSGlkZGVuID0gdGhpcy5zdGF0ZSAhPT0gJ29wZW5lZCcgPyAndHJ1ZScgOiBudWxsO1xuICB9XG4gIHByb3RlY3RlZCBvdmVycmlkZSBnZXQgc3RhdGUoKTogU2JiT3BlbmVkQ2xvc2VkU3RhdGUge1xuICAgIHJldHVybiBzdXBlci5zdGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpcnN0TGV2ZWxOYXZpZ2F0aW9uPzogU2JiTmF2aWdhdGlvbkVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfdHJpZ2dlckVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfZm9jdXNUcmFwQ29udHJvbGxlciA9IG5ldyBTYmJGb2N1c1RyYXBDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9sYXN0S2V5ZG93bkV2ZW50OiBLZXlib2FyZEV2ZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX21lZGlhTWF0Y2hlckNvbnRyb2xsZXIgPSBuZXcgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcih0aGlzLCB7XG4gICAgW1NiYk1lZGlhUXVlcnlCcmVha3BvaW50U21hbGxBbmRCZWxvd106IChtYXRjaGVzKSA9PiB7XG4gICAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcpIHtcbiAgICAgICAgdGhpcy5fc2V0TmF2aWdhdGlvbkluZXJ0KG1hdGNoZXMpO1xuICAgICAgfVxuICAgIH0sXG4gIH0pO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2tleWRvd24nLCAoZSkgPT4ge1xuICAgICAgdGhpcy5fbGFzdEtleWRvd25FdmVudCA9IGU7XG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignZm9jdXNvdXQnLCAoZSkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBlLnJlbGF0ZWRUYXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJlxuICAgICAgICAhdGhpcy5jb250YWlucyhlLnJlbGF0ZWRUYXJnZXQpICYmXG4gICAgICAgIHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcgJiZcbiAgICAgICAgdGhpcy5fbGFzdEtleWRvd25FdmVudD8ua2V5ID09PSAnVGFiJyAmJlxuICAgICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudFxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IG5hdmlnYXRpb25FbGVtZW50ID0gdGhpcy5jbG9zZXN0PFNiYk5hdmlnYXRpb25FbGVtZW50Pignc2JiLW5hdmlnYXRpb24nKTtcbiAgICAgICAgY29uc3QgZm9jdXNhYmxlRWxlbWVudHMgPSBBcnJheS5mcm9tKFxuICAgICAgICAgIG5hdmlnYXRpb25FbGVtZW50Py5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PihJU19GT0NVU0FCTEVfUVVFUlkpID8/IFtdLFxuICAgICAgICApLmZpbHRlcigoZSkgPT4gIXRoaXMuY29udGFpbnMoZSkpO1xuXG4gICAgICAgIGlmICh0aGlzLl9sYXN0S2V5ZG93bkV2ZW50LnNoaWZ0S2V5IHx8ICFmb2N1c2FibGVFbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8uZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB0cmlnZ2VySW5kZXggPSBmb2N1c2FibGVFbGVtZW50cy5pbmRleE9mKHRoaXMuX3RyaWdnZXJFbGVtZW50KTtcbiAgICAgICAgICAoZm9jdXNhYmxlRWxlbWVudHNbdHJpZ2dlckluZGV4ICsgMV0gPz8gbmF2aWdhdGlvbkVsZW1lbnQhLmNsb3NlQnV0dG9uKT8uZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIHRoZSBuYXZpZ2F0aW9uIHNlY3Rpb24gb24gdHJpZ2dlciBjbGljay5cbiAgICovXG4gIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnY2xvc2VkJyB8fCAhdGhpcy5oYXNVcGRhdGVkIHx8ICF0aGlzLmRpc3BhdGNoQmVmb3JlT3BlbkV2ZW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5faXNOYXZpZ2F0aW9uQnV0dG9uKHRoaXMuX3RyaWdnZXJFbGVtZW50KSkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/Lm1hcmtlcj8uc2VsZWN0KHRoaXMuX3RyaWdnZXJFbGVtZW50KTtcbiAgICB9XG5cbiAgICB0aGlzLl9jbG9zZVByZXZpb3VzTmF2aWdhdGlvblNlY3Rpb24oKTtcbiAgICB0aGlzLnN0YXRlID0gJ29wZW5pbmcnO1xuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCfJtW5hdmlnYXRpb25zZWN0aW9ub3BlbmluZycpKTtcbiAgICB0aGlzLnN0YXJ0VXBkYXRlKCk7XG4gICAgdGhpcy5pbmVydCA9IHRydWU7XG4gICAgaWYgKHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRXhwYW5kZWQgPSAndHJ1ZSc7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuaW5lcnQgPSBmYWxzZTtcbiAgICB0aGlzLl9hdHRhY2hXaW5kb3dFdmVudHMoKTtcbiAgICB0aGlzLl9zZXROYXZpZ2F0aW9uSW5lcnQoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmZvY3VzSW5pdGlhbEVsZW1lbnQoKTtcbiAgICB0aGlzLl9jaGVja0FjdGl2ZUFjdGlvbigpO1xuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgICB0aGlzLmRpc3BhdGNoT3BlbkV2ZW50KCk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVDbG9zaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2VkJztcbiAgICB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5zYmItbmF2aWdhdGlvbi1zZWN0aW9uX19jb250YWluZXInKT8uc2Nyb2xsVG8oMCwgMCk7XG4gICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9yZXNldExpc3RzKCk7XG4gICAgdGhpcy5fc2V0TmF2aWdhdGlvbkluZXJ0KCk7XG4gICAgaWYgKHRoaXMuX2lzQmVsb3dMYXJnZSgpICYmIHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgICB0aGlzLmNvbXBsZXRlVXBkYXRlKCk7XG4gICAgdGhpcy5kaXNwYXRjaENsb3NlRXZlbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Nsb3NlUHJldmlvdXNOYXZpZ2F0aW9uU2VjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9maXJzdExldmVsTmF2aWdhdGlvbj8uYWN0aXZlTmF2aWdhdGlvblNlY3Rpb24/LmNsb3NlKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBuYXZpZ2F0aW9uIHNlY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnIHx8ICF0aGlzLmRpc3BhdGNoQmVmb3JlQ2xvc2VFdmVudCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ8m1bmF2aWdhdGlvbnNlY3Rpb25jbG9zaW5nJykpO1xuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2luZyc7XG4gICAgdGhpcy5zdGFydFVwZGF0ZSgpO1xuICAgIHRoaXMuaW5lcnQgPSB0cnVlO1xuICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYUV4cGFuZGVkID0gJ2ZhbHNlJztcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgY2xvc2VkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSB0cmlnZ2VyIGlzIHZhbGlkIGFuZCBhdHRhY2ggY2xpY2sgZXZlbnQgbGlzdGVuZXJzLlxuICBwcml2YXRlIF9jb25maWd1cmVUcmlnZ2VyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRyaWdnZXIgPT09IHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMuX3RyaWdnZXJFbGVtZW50KTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IHRoaXMudHJpZ2dlcjtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMsIHRoaXMuX3RyaWdnZXJFbGVtZW50LCAnbWVudScsIHRoaXMuc3RhdGUpO1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgaWYgKHRoaXMuX2lzTmF2aWdhdGlvbkJ1dHRvbih0aGlzLl90cmlnZ2VyRWxlbWVudCkpIHtcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmNvbm5lY3RlZFNlY3Rpb24gPSB0aGlzO1xuICAgIH1cbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMub3BlbigpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHRoaXMuX2ZpcnN0TGV2ZWxOYXZpZ2F0aW9uID0gdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LmNsb3Nlc3Q/Lignc2JiLW5hdmlnYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzTmF2aWdhdGlvbkJ1dHRvbih0cmlnZ2VyOiBIVE1MRWxlbWVudCB8IG51bGwpOiB0cmlnZ2VyIGlzIFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHtcbiAgICByZXR1cm4gdHJpZ2dlcj8ubG9jYWxOYW1lID09PSAnc2JiLW5hdmlnYXRpb24tYnV0dG9uJztcbiAgfVxuXG4gIHByaXZhdGUgX3NldE5hdmlnYXRpb25JbmVydChpc0JlbG93TGFyZ2U6IGJvb2xlYW4gPSB0aGlzLl9pc0JlbG93TGFyZ2UoKSk6IHZvaWQge1xuICAgIGNvbnN0IG5hdmlnYXRpb25Db250ZW50ID0gdGhpcy5fZmlyc3RMZXZlbE5hdmlnYXRpb24/Lm5hdmlnYXRpb25Db250ZW50O1xuICAgIGlmIChuYXZpZ2F0aW9uQ29udGVudCkge1xuICAgICAgbmF2aWdhdGlvbkNvbnRlbnQuaW5lcnQgPSBpc0JlbG93TGFyZ2UgJiYgdGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCc7XG4gICAgfVxuICB9XG5cbiAgLy8gSW4gcmFyZSBjYXNlcyBpdCBjYW4gYmUgdGhhdCB0aGUgYW5pbWF0aW9uRW5kIGV2ZW50IGlzIHRyaWdnZXJlZCB0d2ljZS5cbiAgLy8gVG8gYXZvaWQgZW50ZXJpbmcgYSBjb3JydXB0IHN0YXRlLCBleGl0IHdoZW4gc3RhdGUgaXMgbm90IGV4cGVjdGVkLlxuICBwcml2YXRlIF9vbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4nICYmIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZXNldExpc3RzKCk6IHZvaWQge1xuICAgIEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw8U2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQgfCBTYmJOYXZpZ2F0aW9uTGlua0VsZW1lbnQ+KFxuICAgICAgICAnOnN0YXRlKHNlY3Rpb24tYWN0aW9uKTpzdGF0ZShhY3Rpb24tYWN0aXZlKScsXG4gICAgICApID8/IFtdLFxuICAgICkuZm9yRWFjaCgoYWN0aW9uKSA9PiDJtXN0YXRlQ29udHJvbGxlcihhY3Rpb24pLmRlbGV0ZSgnYWN0aW9uLWFjdGl2ZScpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2F0dGFjaFdpbmRvd0V2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB0aGlzLl9vbktleWRvd25FdmVudChldmVudCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG5cbiAgICAvLyBDbG9zZSBuYXZpZ2F0aW9uIHNlY3Rpb24gb24gYWN0aW9uIGNsaWNrIG9yIHNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tY2xvc2UgY2xpY2tcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9oYW5kbGVOYXZpZ2F0aW9uU2VjdGlvbkNsb3NlLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIGNsaWNrIHdhcyB0cmlnZ2VyZWQgb24gYW4gZWxlbWVudCB0aGF0IHNob3VsZCBjbG9zZSB0aGUgc2VjdGlvbi5cbiAgcHJpdmF0ZSBfaGFuZGxlTmF2aWdhdGlvblNlY3Rpb25DbG9zZSA9IChldmVudDogRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAoXG4gICAgICBldmVudFxuICAgICAgICAuY29tcG9zZWRQYXRoKClcbiAgICAgICAgLmZpbHRlcigoZWwpID0+IGVsIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpXG4gICAgICAgIC5zb21lKChlbCkgPT4gdGhpcy5faXNDbG9zZUVsZW1lbnQoZWwpKVxuICAgICkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9pc0Nsb3NlRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBlbGVtZW50Lm5vZGVOYW1lID09PSAnQScgfHxcbiAgICAgICghZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykgJiZcbiAgICAgICAgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCdzYmItbmF2aWdhdGlvbi1jbG9zZScpIHx8XG4gICAgICAgICAgZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3NiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tY2xvc2UnKSkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzQmVsb3dMYXJnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbWVkaWFNYXRjaGVyQ29udHJvbGxlci5tYXRjaGVzKFNiYk1lZGlhUXVlcnlCcmVha3BvaW50U21hbGxBbmRCZWxvdykgPz8gZmFsc2U7XG4gIH1cblxuICAvLyBDbG9zZXMgdGhlIG5hdmlnYXRpb24gb24gXCJFc2NcIiBrZXkgcHJlc3NlZC5cbiAgcHJpdmF0ZSBfb25LZXlkb3duRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCcgJiYgZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQWN0aXZlQWN0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnF1ZXJ5U2VsZWN0b3I8U2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQgfCBTYmJOYXZpZ2F0aW9uTGlua0VsZW1lbnQ+KFxuICAgICAgJzppcyhzYmItbmF2aWdhdGlvbi1idXR0b24sIHNiYi1uYXZpZ2F0aW9uLWxpbmspLnNiYi1hY3RpdmUnLFxuICAgICk7XG4gICAgybVzdGF0ZUNvbnRyb2xsZXIoZWxlbWVudCk/LnRvZ2dsZSgnYWN0aW9uLWFjdGl2ZScsIHRydWUpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5zbG90IHx8PSAnbmF2aWdhdGlvbi1zZWN0aW9uJztcbiAgICBpZiAodGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSBudWxsO1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZXF1ZXN0VXBkYXRlKFxuICAgIG5hbWU/OiBQcm9wZXJ0eUtleSxcbiAgICBvbGRWYWx1ZT86IHVua25vd24sXG4gICAgb3B0aW9ucz86IFByb3BlcnR5RGVjbGFyYXRpb24sXG4gICk6IHZvaWQge1xuICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMpO1xuXG4gICAgaWYgKCFpc1NlcnZlciAmJiAoIW5hbWUgfHwgbmFtZSA9PT0gJ3RyaWdnZXInKSAmJiB0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZVRyaWdnZXIoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy5fY29uZmlndXJlVHJpZ2dlcigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb24tc2VjdGlvbl9fY29udGFpbmVyXCI+XG4gICAgICAgIDxuYXZcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25BbmltYXRpb25FbmR9XG4gICAgICAgICAgY2xhc3M9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uXCJcbiAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9JHshdGhpcy5hY2Nlc3NpYmlsaXR5TGFiZWwgPyAndGl0bGUnIDogbm90aGluZ31cbiAgICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5TGFiZWwgPyB0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbCA6IG5vdGhpbmd9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb24tc2VjdGlvbl9fd3JhcHBlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX2hlYWRlclwiPlxuICAgICAgICAgICAgICAgIDwhLS0gQmFjayBidXR0b24gLS0+XG4gICAgICAgICAgICAgICAgPHNiYi10cmFuc3BhcmVudC1idXR0b25cbiAgICAgICAgICAgICAgICAgIGlkPVwic2JiLW5hdmlnYXRpb24tc2VjdGlvbi1iYWNrLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX2JhY2tcIlxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0ke3RoaXMuYWNjZXNzaWJpbGl0eUJhY2tMYWJlbCB8fCBpMThuR29CYWNrW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgICAgICAgICAgbmVnYXRpdmVcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgaWNvbi1uYW1lPVwiY2hldnJvbi1zbWFsbC1sZWZ0LXNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tY2xvc2VcbiAgICAgICAgICAgICAgICA+PC9zYmItdHJhbnNwYXJlbnQtYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uX190aXRsZVwiIGlkPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgIDxzbG90IG5hbWU9XCJ0aXRsZVwiPiR7dGhpcy50aXRsZUNvbnRlbnR9PC9zbG90PlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25hdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1uYXZpZ2F0aW9uLXNlY3Rpb24nOiBTYmJOYXZpZ2F0aW9uU2VjdGlvbkVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7SUM2Q2EscUNBQTJCO21CQUFTLHdCQUF3Qix3QkFBd0I7Ozs7Ozs7Ozs7Ozs7Y0FBcEYsb0NBQW9DLFlBQWdEOzs7K0JBUTlGLFdBQVcsRUFDWCxTQUFTO0lBQUUsV0FBVztJQUFpQixTQUFTO0lBQU0sV0FBVztJQUFvQixDQUFDLENBQUE7MEJBUXRGLGFBQWEsRUFDYixVQUFVLENBQUE7cUNBTVYsV0FBVyxFQUNYLFNBQVMsRUFBRSxXQUFXLHVCQUF1QixDQUFDLENBQUE7eUNBTTlDLFdBQVcsRUFDWCxTQUFTLEVBQUUsV0FBVyw0QkFBNEIsQ0FBQyxDQUFBO0FBdEJwRCxnQkFBQSxNQUFBLE1BQUEsMEJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxrQkFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFZLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBWixlQUFZOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsNEJBQUEsZ0NBQUE7QUFTNUIsZ0JBQUEsTUFBQSxNQUFBLHFCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsYUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFPLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBUCxVQUFPOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsdUJBQUEsMkJBQUE7QUFPdkIs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
347
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1zZWN0aW9uLmNvbXBvbmVudC1Wd0NKbE9mRS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLXNlY3Rpb24vbmF2aWdhdGlvbi1zZWN0aW9uLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi1zZWN0aW9uL25hdmlnYXRpb24tc2VjdGlvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tZGlzcGxheTogbm9uZTtcbiAgLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWNvbHVtbjogMSAvIC0xO1xuICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tcG9zaXRpb246IGZpeGVkO1xuICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTN4KVxuICApO1xuICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tYW5pbWF0aW9uLWVhc2luZzogZWFzZS1vdXQ7XG4gIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1wYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLWxheW91dC1iYXNlLW9mZnNldC1yZXNwb25zaXZlKTtcbiAgLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUtbCk7XG4gIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi10cmFuc2xhdGU6IDEwMCU7XG4gIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1jb250ZW50LXBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0xMngpO1xuICAtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yOiB2YXIoLS1zYmItZm9jdXMtb3V0bGluZS1jb2xvci1kYXJrKTtcbiAgLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXdpZHRoOiAxMDBkdnc7XG4gIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1oZWlnaHQ6IDEwMGR2aDtcblxuICAvLyBXZSBoYXZlIHRvIHBsYWNlIHRoZSBzdHlsZXMgb24gdGhlIGhvc3QgYXMgaXQgaGFzIHRvIGJlIGFsaWduZWQgb24gdGhlIGdyaWQgb2YgdGhlIG5hdmlnYXRpb25cbiAgZGlzcGxheTogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1kaXNwbGF5KTtcbiAgcG9zaXRpb246IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tcG9zaXRpb24pO1xuICBncmlkLWNvbHVtbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1jb2x1bW4pO1xuICBpbnNldC1pbmxpbmUtc3RhcnQ6IDA7XG4gIGluc2V0LWJsb2NrLXN0YXJ0OiAwO1xuICB3aWR0aDogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi13aWR0aCk7XG4gIGhlaWdodDogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1oZWlnaHQpO1xuICB6LWluZGV4OiB2YXIoLS1zYmItbmF2aWdhdGlvbi16LWluZGV4LCB2YXIoLS1zYmItb3ZlcmxheS1kZWZhdWx0LXotaW5kZXgpKTtcblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IGxhcmdlKSB7XG4gICAgLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWNvbHVtbjogNSAvIDEzO1xuICAgIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi00eClcbiAgICApO1xuICAgIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1wYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLXhsKTtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTh4KVxuICAgICAgdmFyKC0tc2JiLWxheW91dC1iYXNlLW9mZnNldC1yZXNwb25zaXZlKTtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi10cmFuc2xhdGU6IDA7XG4gICAgLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWNvbnRlbnQtcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXdpZHRoOiBjYWxjKFxuICAgICAgMTAwJSArIHZhcigtLXNiYi1sYXlvdXQtYmFzZS1vZmZzZXQtcmVzcG9uc2l2ZSkgKyB2YXIoLS1zYmItZ3JpZC1iYXNlLWd1dHRlci1yZXNwb25zaXZlKVxuICAgICk7XG5cbiAgICB0cmFuc2xhdGU6IGNhbGModmFyKC0tc2JiLWdyaWQtYmFzZS1ndXR0ZXItcmVzcG9uc2l2ZSkgKiAtMSkgMDtcbiAgfVxuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogdWx0cmEpIHtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tY29sdW1uOiA2IC8gMTc7XG4gICAgLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHhsKVxuICAgICAgdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS1sKTtcbiAgfVxufVxuXG46aG9zdCg6c3RhdGUoc3RhdGUtb3BlbmVkKSkge1xuICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tcG9pbnRlci1ldmVudHM6IGFsbDtcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5pbmcpKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1wb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbjpob3N0KDppcyg6c3RhdGUoc3RhdGUtb3BlbmluZyksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG46aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtb3BlbmVkKSwgOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSkge1xuICAtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tZGlzcGxheTogYmxvY2s7XG59XG5cbjo6c2xvdHRlZCgqKSB7XG4gIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWNvbnRlbnQtcGFkZGluZy1pbmxpbmUtc3RhcnQpO1xufVxuXG4vLyBBbHdheXMgcGxhY2UgdGhlIHNiYi1idXR0b24gb24gYSBuZXcgcm93XG46OnNsb3R0ZWQoOnN0YXRlKHNiYi1idXR0b24pKSB7XG4gIGdyaWQtY29sdW1uLXN0YXJ0OiAxO1xufVxuXG4uc2JiLW5hdmlnYXRpb24tc2VjdGlvbl9fY29udGFpbmVyIHtcbiAgcG9pbnRlci1ldmVudHM6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tcG9pbnRlci1ldmVudHMpO1xuICBoZWlnaHQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24taGVpZ2h0KTtcbn1cblxuLnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24ge1xuICBkaXNwbGF5OiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgY29sb3I6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWNvbG9yLCB2YXIoLS1zYmItY29sb3ItMS1uZWdhdGl2ZSkpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICA6aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtb3BlbmVkKSwgOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSkgJiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBhbmltYXRpb246IHtcbiAgICAgIG5hbWU6IG9wZW47XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWFuaW1hdGlvbi1lYXNpbmcpO1xuICAgIH1cbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkgJiB7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGNsb3NlO1xuICB9XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIG91dGxpbmU6IHZhcigtLXNiYi1ib3JkZXItd2lkdGgtMXgpIHNvbGlkIENhbnZhc1RleHQ7XG4gIH1cbn1cblxuLnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX3dyYXBwZXIge1xuICBAaW5jbHVkZSBzYmIuc2Nyb2xsYmFyKCRuZWdhdGl2ZTogdHJ1ZSk7XG5cbiAgaGVpZ2h0OiAxMDAlO1xuICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXBhZGRpbmctYmxvY2spO1xuICBvdXRsaW5lOiBub25lO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gIDpob3N0KDppcyg6c3RhdGUoc3RhdGUtb3BlbmluZyksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpICYge1xuICAgIC0tc2JiLXNjcm9sbGJhci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICBzY3JvbGxiYXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi5zYmItbmF2aWdhdGlvbi1zZWN0aW9uX19oZWFkZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtMXgpO1xuICBtYXJnaW4tYmxvY2stc3RhcnQ6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHhsKTtcbiAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tY29udGVudC1wYWRkaW5nLWlubGluZS1zdGFydCk7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIG1hcmdpbi1ibG9jay1zdGFydDogMDtcbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogdWx0cmEpIHtcbiAgICBncmlkLWNvbHVtbjogMSAvIDQ7XG4gIH1cbn1cblxuLnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX2JhY2sge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zbGF0ZTogY2FsYygoMTAwJSArIHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTF4KSkgKiAtMSkgMDtcblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IGxhcmdlKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uc2JiLW5hdmlnYXRpb24tc2VjdGlvbl9fdGl0bGUge1xuICBAaW5jbHVkZSBzYmIudGl0bGUtcnVsZXM7XG4gIEBpbmNsdWRlIHNiYi50aXRsZS0tbGV2ZWwtNDtcblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IGxhcmdlKSB7XG4gICAgQGluY2x1ZGUgc2JiLnRpdGxlLS1sZXZlbC0yO1xuICB9XG59XG5cbi5zYmItbmF2aWdhdGlvbi1zZWN0aW9uX19jb250ZW50IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIGdhcDogdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS1sKSB2YXIoLS1zYmItZ3JpZC1iYXNlLWd1dHRlci1yZXNwb25zaXZlKTtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tcGFkZGluZy1pbmxpbmUpO1xuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogbGFyZ2UpIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zbGF0ZTogMCB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0zeCk7XG4gICAgdHJhbnNpdGlvbjoge1xuICAgICAgZHVyYXRpb246IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIGRlbGF5OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgICB0aW1pbmctZnVuY3Rpb246IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgICBwcm9wZXJ0eTogb3BhY2l0eSwgdHJhbnNsYXRlO1xuICAgIH1cblxuICAgIDpob3N0KDpzdGF0ZShzdGF0ZS1vcGVuZWQpKSAmIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0cmFuc2xhdGU6IDAgMDtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBzYmIubXEoJGZyb206IHVsdHJhKSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkgJiB7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMHM7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBvcGVuIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNsYXRlOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXRyYW5zbGF0ZSkgMDtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2xhdGU6IDAgMDtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGNsb3NlIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNsYXRlOiAwIDA7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNsYXRlOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1zZWN0aW9uLXRyYW5zbGF0ZSkgMDtcbiAgfVxufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIG5vdGhpbmcsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYlRyYW5zcGFyZW50QnV0dG9uRWxlbWVudCB9IGZyb20gJy4uLy4uL2J1dHRvbi5wdXJlLnRzJztcbmltcG9ydCB7XG4gIGJveFNpemluZ1N0eWxlcyxcbiAgZm9yY2VUeXBlLFxuICBpMThuR29CYWNrLFxuICBpZFJlZmVyZW5jZSxcbiAgSVNfRk9DVVNBQkxFX1FVRVJZLFxuICBpc1plcm9BbmltYXRpb25EdXJhdGlvbixcbiAgb21pdEVtcHR5Q29udmVydGVyLFxuICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzLFxuICB0eXBlIFNiYkVsZW1lbnRUeXBlLFxuICBTYmJGb2N1c1RyYXBDb250cm9sbGVyLFxuICBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IsXG4gIFNiYkxhbmd1YWdlQ29udHJvbGxlcixcbiAgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcixcbiAgU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRTbWFsbEFuZEJlbG93LFxuICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbiAgdHlwZSBTYmJPcGVuZWRDbG9zZWRTdGF0ZSxcbiAgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW4sXG4gIHNldEFyaWFPdmVybGF5VHJpZ2dlclByb3BlcnRpZXMsXG4gIMm1c3RhdGVDb250cm9sbGVyLFxufSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiTmF2aWdhdGlvbkVsZW1lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgU2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWJ1dHRvbi9uYXZpZ2F0aW9uLWJ1dHRvbi5jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uTGlua0VsZW1lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWxpbmsvbmF2aWdhdGlvbi1saW5rLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL25hdmlnYXRpb24tc2VjdGlvbi5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogSXQgY2FuIGJlIHVzZWQgYXMgYSBjb250YWluZXIgZm9yIGBzYmItbmF2aWdhdGlvbi1saXN0YCB3aXRoaW4gYSBgc2JiLW5hdmlnYXRpb25gLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgaW50byB0aGUgYHNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25gLlxuICovXG5leHBvcnQgY2xhc3MgU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IGV4dGVuZHMgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW4oU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1uYXZpZ2F0aW9uLXNlY3Rpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIGVsZW1lbnREZXBlbmRlbmNpZXM6IFNiYkVsZW1lbnRUeXBlW10gPSBbU2JiVHJhbnNwYXJlbnRCdXR0b25FbGVtZW50XTtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCB0byBiZSBzaG93biBiZWZvcmUgdGhlIGFjdGlvbiBsaXN0LlxuICAgKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3RpdGxlLWNvbnRlbnQnLCByZWZsZWN0OiB0cnVlLCBjb252ZXJ0ZXI6IG9taXRFbXB0eUNvbnZlcnRlciB9KVxuICBwdWJsaWMgYWNjZXNzb3IgdGl0bGVDb250ZW50OiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogVGhlIGVsZW1lbnQgdGhhdCB3aWxsIHRyaWdnZXIgdGhlIG5hdmlnYXRpb24gc2VjdGlvbi5cbiAgICpcbiAgICogRm9yIGF0dHJpYnV0ZSB1c2FnZSwgcHJvdmlkZSBhbiBpZCByZWZlcmVuY2UuXG4gICAqL1xuICBAaWRSZWZlcmVuY2UoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBuYXYgZWxlbWVudCBhbmQgaXMgcmVhZCBhcyBhIHRpdGxlIG9mIHRoZSBuYXZpZ2F0aW9uLXNlY3Rpb24uXG4gICAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1sYWJlbCcgfSlcbiAgcHVibGljIGFjY2Vzc29yIGFjY2Vzc2liaWxpdHlMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIFRoaXMgd2lsbCBiZSBmb3J3YXJkZWQgYXMgYXJpYS1sYWJlbCB0byB0aGUgYmFjayBidXR0b24gZWxlbWVudC5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LWJhY2stbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5QmFja0xhYmVsOiBzdHJpbmcgPSAnJztcblxuICAvKiogVGhlIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBzZXQgc3RhdGUoc3RhdGU6IFNiYk9wZW5lZENsb3NlZFN0YXRlKSB7XG4gICAgc3VwZXIuc3RhdGUgPSBzdGF0ZTtcbiAgICB0aGlzLmludGVybmFscy5hcmlhSGlkZGVuID0gdGhpcy5zdGF0ZSAhPT0gJ29wZW5lZCcgPyAndHJ1ZScgOiBudWxsO1xuICB9XG4gIHByb3RlY3RlZCBvdmVycmlkZSBnZXQgc3RhdGUoKTogU2JiT3BlbmVkQ2xvc2VkU3RhdGUge1xuICAgIHJldHVybiBzdXBlci5zdGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpcnN0TGV2ZWxOYXZpZ2F0aW9uPzogU2JiTmF2aWdhdGlvbkVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfdHJpZ2dlckVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIhOiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfZm9jdXNUcmFwQ29udHJvbGxlciA9IG5ldyBTYmJGb2N1c1RyYXBDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9sYXN0S2V5ZG93bkV2ZW50OiBLZXlib2FyZEV2ZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX21lZGlhTWF0Y2hlckNvbnRyb2xsZXIgPSBuZXcgU2JiTWVkaWFNYXRjaGVyQ29udHJvbGxlcih0aGlzLCB7XG4gICAgW1NiYk1lZGlhUXVlcnlCcmVha3BvaW50U21hbGxBbmRCZWxvd106IChtYXRjaGVzKSA9PiB7XG4gICAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcpIHtcbiAgICAgICAgdGhpcy5fc2V0TmF2aWdhdGlvbkluZXJ0KG1hdGNoZXMpO1xuICAgICAgfVxuICAgIH0sXG4gIH0pO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2tleWRvd24nLCAoZSkgPT4ge1xuICAgICAgdGhpcy5fbGFzdEtleWRvd25FdmVudCA9IGU7XG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignZm9jdXNvdXQnLCAoZSkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBlLnJlbGF0ZWRUYXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJlxuICAgICAgICAhdGhpcy5jb250YWlucyhlLnJlbGF0ZWRUYXJnZXQpICYmXG4gICAgICAgIHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcgJiZcbiAgICAgICAgdGhpcy5fbGFzdEtleWRvd25FdmVudD8ua2V5ID09PSAnVGFiJyAmJlxuICAgICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudFxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IG5hdmlnYXRpb25FbGVtZW50ID0gdGhpcy5jbG9zZXN0PFNiYk5hdmlnYXRpb25FbGVtZW50Pignc2JiLW5hdmlnYXRpb24nKTtcbiAgICAgICAgY29uc3QgZm9jdXNhYmxlRWxlbWVudHMgPSBBcnJheS5mcm9tKFxuICAgICAgICAgIG5hdmlnYXRpb25FbGVtZW50Py5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PihJU19GT0NVU0FCTEVfUVVFUlkpID8/IFtdLFxuICAgICAgICApLmZpbHRlcigoZSkgPT4gIXRoaXMuY29udGFpbnMoZSkpO1xuXG4gICAgICAgIGlmICh0aGlzLl9sYXN0S2V5ZG93bkV2ZW50LnNoaWZ0S2V5IHx8ICFmb2N1c2FibGVFbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudD8uZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB0cmlnZ2VySW5kZXggPSBmb2N1c2FibGVFbGVtZW50cy5pbmRleE9mKHRoaXMuX3RyaWdnZXJFbGVtZW50KTtcbiAgICAgICAgICAoZm9jdXNhYmxlRWxlbWVudHNbdHJpZ2dlckluZGV4ICsgMV0gPz8gbmF2aWdhdGlvbkVsZW1lbnQhLmNsb3NlQnV0dG9uKT8uZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIHRoZSBuYXZpZ2F0aW9uIHNlY3Rpb24gb24gdHJpZ2dlciBjbGljay5cbiAgICovXG4gIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnY2xvc2VkJyB8fCAhdGhpcy5oYXNVcGRhdGVkIHx8ICF0aGlzLmRpc3BhdGNoQmVmb3JlT3BlbkV2ZW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5faXNOYXZpZ2F0aW9uQnV0dG9uKHRoaXMuX3RyaWdnZXJFbGVtZW50KSkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/Lm1hcmtlcj8uc2VsZWN0KHRoaXMuX3RyaWdnZXJFbGVtZW50KTtcbiAgICB9XG5cbiAgICB0aGlzLl9jbG9zZVByZXZpb3VzTmF2aWdhdGlvblNlY3Rpb24oKTtcbiAgICB0aGlzLnN0YXRlID0gJ29wZW5pbmcnO1xuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCfJtW5hdmlnYXRpb25zZWN0aW9ub3BlbmluZycpKTtcbiAgICB0aGlzLnN0YXJ0VXBkYXRlKCk7XG4gICAgdGhpcy5pbmVydCA9IHRydWU7XG4gICAgaWYgKHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hcmlhRXhwYW5kZWQgPSAndHJ1ZSc7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYG9wZW5lZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLW5hdmlnYXRpb24tc2VjdGlvbi1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuaW5lcnQgPSBmYWxzZTtcbiAgICB0aGlzLl9hdHRhY2hXaW5kb3dFdmVudHMoKTtcbiAgICB0aGlzLl9zZXROYXZpZ2F0aW9uSW5lcnQoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmZvY3VzSW5pdGlhbEVsZW1lbnQoKTtcbiAgICB0aGlzLl9jaGVja0FjdGl2ZUFjdGlvbigpO1xuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgICB0aGlzLmRpc3BhdGNoT3BlbkV2ZW50KCk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVDbG9zaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2VkJztcbiAgICB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5zYmItbmF2aWdhdGlvbi1zZWN0aW9uX19jb250YWluZXInKT8uc2Nyb2xsVG8oMCwgMCk7XG4gICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICB0aGlzLl9yZXNldExpc3RzKCk7XG4gICAgdGhpcy5fc2V0TmF2aWdhdGlvbkluZXJ0KCk7XG4gICAgaWYgKHRoaXMuX2lzQmVsb3dMYXJnZSgpICYmIHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgICB0aGlzLmNvbXBsZXRlVXBkYXRlKCk7XG4gICAgdGhpcy5kaXNwYXRjaENsb3NlRXZlbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2Nsb3NlUHJldmlvdXNOYXZpZ2F0aW9uU2VjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9maXJzdExldmVsTmF2aWdhdGlvbj8uYWN0aXZlTmF2aWdhdGlvblNlY3Rpb24/LmNsb3NlKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBuYXZpZ2F0aW9uIHNlY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnIHx8ICF0aGlzLmRpc3BhdGNoQmVmb3JlQ2xvc2VFdmVudCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ8m1bmF2aWdhdGlvbnNlY3Rpb25jbG9zaW5nJykpO1xuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2luZyc7XG4gICAgdGhpcy5zdGFydFVwZGF0ZSgpO1xuICAgIHRoaXMuaW5lcnQgPSB0cnVlO1xuICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYUV4cGFuZGVkID0gJ2ZhbHNlJztcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgY2xvc2VkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSB0cmlnZ2VyIGlzIHZhbGlkIGFuZCBhdHRhY2ggY2xpY2sgZXZlbnQgbGlzdGVuZXJzLlxuICBwcml2YXRlIF9jb25maWd1cmVUcmlnZ2VyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRyaWdnZXIgPT09IHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMuX3RyaWdnZXJFbGVtZW50KTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IHRoaXMudHJpZ2dlcjtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMsIHRoaXMuX3RyaWdnZXJFbGVtZW50LCAnbWVudScsIHRoaXMuc3RhdGUpO1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgaWYgKHRoaXMuX2lzTmF2aWdhdGlvbkJ1dHRvbih0aGlzLl90cmlnZ2VyRWxlbWVudCkpIHtcbiAgICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50LmNvbm5lY3RlZFNlY3Rpb24gPSB0aGlzO1xuICAgIH1cbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMub3BlbigpLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICAgIHRoaXMuX2ZpcnN0TGV2ZWxOYXZpZ2F0aW9uID0gdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LmNsb3Nlc3Q/Lignc2JiLW5hdmlnYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzTmF2aWdhdGlvbkJ1dHRvbih0cmlnZ2VyOiBIVE1MRWxlbWVudCB8IG51bGwpOiB0cmlnZ2VyIGlzIFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHtcbiAgICByZXR1cm4gdHJpZ2dlcj8ubG9jYWxOYW1lID09PSAnc2JiLW5hdmlnYXRpb24tYnV0dG9uJztcbiAgfVxuXG4gIHByaXZhdGUgX3NldE5hdmlnYXRpb25JbmVydChpc0JlbG93TGFyZ2U6IGJvb2xlYW4gPSB0aGlzLl9pc0JlbG93TGFyZ2UoKSk6IHZvaWQge1xuICAgIGNvbnN0IG5hdmlnYXRpb25Db250ZW50ID0gdGhpcy5fZmlyc3RMZXZlbE5hdmlnYXRpb24/Lm5hdmlnYXRpb25Db250ZW50O1xuICAgIGlmIChuYXZpZ2F0aW9uQ29udGVudCkge1xuICAgICAgbmF2aWdhdGlvbkNvbnRlbnQuaW5lcnQgPSBpc0JlbG93TGFyZ2UgJiYgdGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCc7XG4gICAgfVxuICB9XG5cbiAgLy8gSW4gcmFyZSBjYXNlcyBpdCBjYW4gYmUgdGhhdCB0aGUgYW5pbWF0aW9uRW5kIGV2ZW50IGlzIHRyaWdnZXJlZCB0d2ljZS5cbiAgLy8gVG8gYXZvaWQgZW50ZXJpbmcgYSBjb3JydXB0IHN0YXRlLCBleGl0IHdoZW4gc3RhdGUgaXMgbm90IGV4cGVjdGVkLlxuICBwcml2YXRlIF9vbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4nICYmIHRoaXMuc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLnN0YXRlID09PSAnY2xvc2luZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZXNldExpc3RzKCk6IHZvaWQge1xuICAgIEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw8U2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQgfCBTYmJOYXZpZ2F0aW9uTGlua0VsZW1lbnQ+KFxuICAgICAgICAnOnN0YXRlKHNlY3Rpb24tYWN0aW9uKTpzdGF0ZShhY3Rpb24tYWN0aXZlKScsXG4gICAgICApID8/IFtdLFxuICAgICkuZm9yRWFjaCgoYWN0aW9uKSA9PiDJtXN0YXRlQ29udHJvbGxlcihhY3Rpb24pLmRlbGV0ZSgnYWN0aW9uLWFjdGl2ZScpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2F0dGFjaFdpbmRvd0V2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLl93aW5kb3dFdmVudHNDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB0aGlzLl9vbktleWRvd25FdmVudChldmVudCksIHtcbiAgICAgIHNpZ25hbDogdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlci5zaWduYWwsXG4gICAgfSk7XG5cbiAgICAvLyBDbG9zZSBuYXZpZ2F0aW9uIHNlY3Rpb24gb24gYWN0aW9uIGNsaWNrIG9yIHNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tY2xvc2UgY2xpY2tcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9oYW5kbGVOYXZpZ2F0aW9uU2VjdGlvbkNsb3NlLCB7XG4gICAgICBzaWduYWw6IHRoaXMuX3dpbmRvd0V2ZW50c0NvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIGNsaWNrIHdhcyB0cmlnZ2VyZWQgb24gYW4gZWxlbWVudCB0aGF0IHNob3VsZCBjbG9zZSB0aGUgc2VjdGlvbi5cbiAgcHJpdmF0ZSBfaGFuZGxlTmF2aWdhdGlvblNlY3Rpb25DbG9zZSA9IChldmVudDogRXZlbnQpOiB2b2lkID0+IHtcbiAgICBpZiAoXG4gICAgICBldmVudFxuICAgICAgICAuY29tcG9zZWRQYXRoKClcbiAgICAgICAgLmZpbHRlcigoZWwpID0+IGVsIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpXG4gICAgICAgIC5zb21lKChlbCkgPT4gdGhpcy5faXNDbG9zZUVsZW1lbnQoZWwpKVxuICAgICkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9pc0Nsb3NlRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBlbGVtZW50Lm5vZGVOYW1lID09PSAnQScgfHxcbiAgICAgICghZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykgJiZcbiAgICAgICAgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCdzYmItbmF2aWdhdGlvbi1jbG9zZScpIHx8XG4gICAgICAgICAgZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3NiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tY2xvc2UnKSkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzQmVsb3dMYXJnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbWVkaWFNYXRjaGVyQ29udHJvbGxlci5tYXRjaGVzKFNiYk1lZGlhUXVlcnlCcmVha3BvaW50U21hbGxBbmRCZWxvdykgPz8gZmFsc2U7XG4gIH1cblxuICAvLyBDbG9zZXMgdGhlIG5hdmlnYXRpb24gb24gXCJFc2NcIiBrZXkgcHJlc3NlZC5cbiAgcHJpdmF0ZSBfb25LZXlkb3duRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gJ29wZW5lZCcgJiYgZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQWN0aXZlQWN0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnF1ZXJ5U2VsZWN0b3I8U2JiTmF2aWdhdGlvbkJ1dHRvbkVsZW1lbnQgfCBTYmJOYXZpZ2F0aW9uTGlua0VsZW1lbnQ+KFxuICAgICAgJzppcyhzYmItbmF2aWdhdGlvbi1idXR0b24sIHNiYi1uYXZpZ2F0aW9uLWxpbmspLnNiYi1hY3RpdmUnLFxuICAgICk7XG4gICAgybVzdGF0ZUNvbnRyb2xsZXIoZWxlbWVudCk/LnRvZ2dsZSgnYWN0aW9uLWFjdGl2ZScsIHRydWUpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5zbG90IHx8PSAnbmF2aWdhdGlvbi1zZWN0aW9uJztcbiAgICBpZiAodGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGRpc2Nvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSBudWxsO1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgdGhpcy5fd2luZG93RXZlbnRzQ29udHJvbGxlcj8uYWJvcnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZXF1ZXN0VXBkYXRlKFxuICAgIG5hbWU/OiBQcm9wZXJ0eUtleSxcbiAgICBvbGRWYWx1ZT86IHVua25vd24sXG4gICAgb3B0aW9ucz86IFByb3BlcnR5RGVjbGFyYXRpb24sXG4gICk6IHZvaWQge1xuICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMpO1xuXG4gICAgaWYgKCFpc1NlcnZlciAmJiAoIW5hbWUgfHwgbmFtZSA9PT0gJ3RyaWdnZXInKSAmJiB0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZVRyaWdnZXIoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgdGhpcy5fY29uZmlndXJlVHJpZ2dlcigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb24tc2VjdGlvbl9fY29udGFpbmVyXCI+XG4gICAgICAgIDxuYXZcbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25BbmltYXRpb25FbmR9XG4gICAgICAgICAgY2xhc3M9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uXCJcbiAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9JHshdGhpcy5hY2Nlc3NpYmlsaXR5TGFiZWwgPyAndGl0bGUnIDogbm90aGluZ31cbiAgICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5TGFiZWwgPyB0aGlzLmFjY2Vzc2liaWxpdHlMYWJlbCA6IG5vdGhpbmd9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb24tc2VjdGlvbl9fd3JhcHBlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX2hlYWRlclwiPlxuICAgICAgICAgICAgICAgIDwhLS0gQmFjayBidXR0b24gLS0+XG4gICAgICAgICAgICAgICAgPHNiYi10cmFuc3BhcmVudC1idXR0b25cbiAgICAgICAgICAgICAgICAgIGlkPVwic2JiLW5hdmlnYXRpb24tc2VjdGlvbi1iYWNrLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uLXNlY3Rpb25fX2JhY2tcIlxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0ke3RoaXMuYWNjZXNzaWJpbGl0eUJhY2tMYWJlbCB8fCBpMThuR29CYWNrW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICAgICAgICAgICAgbmVnYXRpdmVcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgaWNvbi1uYW1lPVwiY2hldnJvbi1zbWFsbC1sZWZ0LXNtYWxsXCJcbiAgICAgICAgICAgICAgICAgIHNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24tY2xvc2VcbiAgICAgICAgICAgICAgICA+PC9zYmItdHJhbnNwYXJlbnQtYnV0dG9uPlxuXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItbmF2aWdhdGlvbi1zZWN0aW9uX190aXRsZVwiIGlkPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgIDxzbG90IG5hbWU9XCJ0aXRsZVwiPiR7dGhpcy50aXRsZUNvbnRlbnR9PC9zbG90PlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25hdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1uYXZpZ2F0aW9uLXNlY3Rpb24nOiBTYmJOYXZpZ2F0aW9uU2VjdGlvbkVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7SUM2Q2EscUNBQTJCO21CQUFTLHdCQUF3Qix3QkFBd0I7Ozs7Ozs7Ozs7Ozs7Y0FBcEYsb0NBQW9DLFlBQWdEOzs7K0JBUTlGLFdBQVcsRUFDWCxTQUFTO0lBQUUsV0FBVztJQUFpQixTQUFTO0lBQU0sV0FBVztJQUFvQixDQUFDLENBQUE7MEJBUXRGLGFBQWEsRUFDYixVQUFVLENBQUE7cUNBTVYsV0FBVyxFQUNYLFNBQVMsRUFBRSxXQUFXLHVCQUF1QixDQUFDLENBQUE7eUNBTTlDLFdBQVcsRUFDWCxTQUFTLEVBQUUsV0FBVyw0QkFBNEIsQ0FBQyxDQUFBO0FBdEJwRCxnQkFBQSxNQUFBLE1BQUEsMEJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxrQkFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFZLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBWixlQUFZOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsNEJBQUEsZ0NBQUE7QUFTNUIsZ0JBQUEsTUFBQSxNQUFBLHFCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsYUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFPLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBUCxVQUFPOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsdUJBQUEsMkJBQUE7QUFPdkIs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
@@ -313,4 +313,4 @@ var SbbNavigationElement = (() => {
313
313
  //#endregion
314
314
  export { SbbNavigationElement as t };
315
315
 
316
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5jb21wb25lbnQtbGd2TE1GNWUuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG5AbWl4aW4gdHJhbnNpdGlvbigkcHJvcGVydGllcy4uLikge1xuICB0cmFuc2l0aW9uOiB7XG4gICAgZHVyYXRpb246IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZWFzaW5nKTtcbiAgICBwcm9wZXJ0eTogJHByb3BlcnRpZXM7XG4gIH1cbn1cblxuOmhvc3Qge1xuICAtLXNiYi1uYXZpZ2F0aW9uLWdyaWQtY29sdW1uOiAxIC8gLTE7XG4gIC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi0zeClcbiAgKTtcbiAgLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZWFzaW5nOiBlYXNlLWluO1xuICAtLXNiYi1uYXZpZ2F0aW9uLXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItbGF5b3V0LWJhc2Utb2Zmc2V0LXJlc3BvbnNpdmUpO1xuICAtLXNiYi1uYXZpZ2F0aW9uLXBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUtbCk7XG4gIC0tc2JiLW5hdmlnYXRpb24tcGFkZGluZy1ibG9jay1lbmQ6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteGwpO1xuICAtLXNiYi1uYXZpZ2F0aW9uLWJhY2tkcm9wLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLS1zYmItbmF2aWdhdGlvbi1iYWNrZHJvcC1wb2ludGVyLWV2ZW50czogbm9uZTtcbiAgLS1zYmItbmF2aWdhdGlvbi1iYWNrZHJvcC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNiYi1jb2xvci1ibGFjaykgNzAlLCB0cmFuc3BhcmVudCk7XG4gIC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtYW5pbWF0aW9uLW5hbWU6IGJhY2tkcm9wLW9wZW47XG4gIC0tc2JiLW5hdmlnYXRpb24tYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMS1uZWdhdGl2ZSk7XG4gIC0tc2JiLW5hdmlnYXRpb24tY29sb3I6IHZhcigtLXNiYi1jb2xvci0xLW5lZ2F0aXZlKTtcbiAgLS1zYmItbmF2aWdhdGlvbi1saXN0LW1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14eGwpO1xuICAtLXNiYi1uYXZpZ2F0aW9uLWlubGluZS1zdGFydDogMDtcbiAgLS1zYmItbmF2aWdhdGlvbi1leHBhbmRlZC13aWR0aDogMTAwJTtcbiAgLS1zYmItbmF2aWdhdGlvbi1pbnNldDogMCBhdXRvIGF1dG8gMDtcbiAgLS1zYmItbmF2aWdhdGlvbi10cmFuc2xhdGU6IC0xMDAlIDA7XG4gIC0tc2JiLW5hdmlnYXRpb24tY29udGVudC10cmFuc2xhdGU6IDA7XG4gIC0tc2JiLW5hdmlnYXRpb24td2lkdGg6IDEwMCU7XG4gIC0tc2JiLW5hdmlnYXRpb24taGVpZ2h0OiAxMDBkdmg7XG4gIC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3I6IHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRhcmspO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWluc2V0KTtcbiAgei1pbmRleDogdmFyKC0tc2JiLW5hdmlnYXRpb24tei1pbmRleCwgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIC0tc2JiLW5hdmlnYXRpb24tZ3JpZC1jb2x1bW46IDEgLyA1O1xuICAgIC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNngpXG4gICAgKTtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLXBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteGwpO1xuICAgIC0tc2JiLW5hdmlnYXRpb24tcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1sYXlvdXQtYmFzZS1vZmZzZXQtcmVzcG9uc2l2ZSkgMDtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLWxpc3QtbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0xeCk7XG4gICAgLS1zYmItbmF2aWdhdGlvbi1pbmxpbmUtc3RhcnQ6IGNhbGModmFyKC0tc2JiLWxheW91dC1iYXNlLW9mZnNldC1yZXNwb25zaXZlKSAqIC0xKTtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLXdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1zYmItbGF5b3V0LWJhc2Utb2Zmc2V0LXJlc3BvbnNpdmUpKTtcbiAgfVxuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogdWx0cmEpIHtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLWdyaWQtY29sdW1uOiAxIC8gNjtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLXBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHhsKTtcbiAgfVxufVxuXG46aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtb3BlbmVkKSwgOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5lZCkpIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZWFzaW5nOiBlYXNlLW91dDtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuZWQpLCA6c3RhdGUoc3RhdGUtb3BlbmluZykpKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgLS1zYmItbmF2aWdhdGlvbi1iYWNrZHJvcC1wb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG46aG9zdCg6bm90KDpzdGF0ZShzdGF0ZS1jbG9zZWQpKSkge1xuICAtLXNiYi1uYXZpZ2F0aW9uLWluc2V0OiAwO1xuICAtLXNiYi1uYXZpZ2F0aW9uLXRyYW5zbGF0ZTogO1xufVxuXG46aG9zdCg6c3RhdGUoc3RhdGUtY2xvc2luZykpIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1iYWNrZHJvcC1hbmltYXRpb24tbmFtZTogYmFja2Ryb3AtY2xvc2U7XG59XG5cbjpob3N0KDpzdGF0ZShoYXMtb3Blbi1uYXZpZ2F0aW9uLXNlY3Rpb24pKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tY29udGVudC10cmFuc2xhdGU6IC0xMDAlIDA7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiAnbGFyZ2UnKSB7XG4gICAgLS1zYmItbmF2aWdhdGlvbi1leHBhbmRlZC13aWR0aDogMTAwZHZ3O1xuICAgIC0tc2JiLW5hdmlnYXRpb24tY29udGVudC10cmFuc2xhdGU6IDA7XG4gIH1cbn1cblxuOmhvc3QoOnN0YXRlKHJlc2l6ZS1kaXNhYmxlLWFuaW1hdGlvbikpIHtcbiAgQGluY2x1ZGUgc2JiLmRpc2FibGUtYW5pbWF0aW9uO1xufVxuXG4uc2JiLW5hdmlnYXRpb25fX2NvbnRhaW5lciB7XG4gIEBpbmNsdWRlIHNiYi5ncmlkLWJhc2U7XG5cbiAgcGFkZGluZy1pbmxpbmU6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2xhdGU6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXRyYW5zbGF0ZSk7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItbGF5b3V0LWJhc2Utb2Zmc2V0LXJlc3BvbnNpdmUpO1xuXG4gICAgLy8gTmF2aWdhdGlvbiBiYWNrZHJvcCAobm90IHZpc2libGUgb24gbW9iaWxlKVxuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHZpc2liaWxpdHkpO1xuXG4gICAgICBhbmltYXRpb246IHtcbiAgICAgICAgbmFtZTogdmFyKC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtYW5pbWF0aW9uLW5hbWUpO1xuICAgICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZWFzaW5nKTtcbiAgICAgIH1cblxuICAgICAgY29udGVudDogJyc7XG4gICAgICB2aXNpYmlsaXR5OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1iYWNrZHJvcC12aXNpYmlsaXR5KTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1iYWNrZHJvcC1wb2ludGVyLWV2ZW50cyk7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICBpbnNldDogdmFyKC0tc2JiLW5hdmlnYXRpb24taW5zZXQpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4uc2JiLW5hdmlnYXRpb24ge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKHdpZHRoKTtcblxuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogdmFyKC0tc2JiLW5hdmlnYXRpb24td2lkdGgpO1xuICBncmlkLWNvbHVtbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tZ3JpZC1jb2x1bW4pO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1pbmxpbmUtc3RhcnQpO1xuICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgYm9yZGVyOiBub25lO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1oZWlnaHQpO1xuICBjb2xvcjogdmFyKC0tc2JiLW5hdmlnYXRpb24tY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1iYWNrZ3JvdW5kLWNvbG9yKTtcblxuICAmOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24od2lkdGgpO1xuXG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1leHBhbmRlZC13aWR0aCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1oZWlnaHQpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWJhY2tncm91bmQtY29sb3IpO1xuICB9XG5cbiAgOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpICYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICBhbmltYXRpb246IHtcbiAgICAgIG5hbWU6IG9wZW47XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgfVxuICB9XG5cbiAgOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSAmIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBhbmltYXRpb24tbmFtZTogY2xvc2U7XG4gIH1cblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgb3V0bGluZTogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0xeCkgc29saWQgQ2FudmFzVGV4dDtcbiAgfVxufVxuXG4uc2JiLW5hdmlnYXRpb25fX3dyYXBwZXIge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uc2JiLW5hdmlnYXRpb25fX2hlYWRlciB7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24od2lkdGgpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWV4cGFuZGVkLXdpZHRoKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBhZGRpbmc6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHMpO1xuICB6LWluZGV4OiBjYWxjKHZhcigtLXNiYi1uYXZpZ2F0aW9uLXotaW5kZXgsIHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCkpICsgMSk7XG59XG5cbi5zYmItbmF2aWdhdGlvbl9fY2xvc2Uge1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG4uc2JiLW5hdmlnYXRpb25fX2NvbnRlbnQge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zbGF0ZSk7XG4gIEBpbmNsdWRlIHNiYi5zY3JvbGxiYXIoJG5lZ2F0aXZlOiB0cnVlKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHhsKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWhlaWdodCk7XG4gIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1wYWRkaW5nLWlubGluZSk7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXBhZGRpbmctYmxvY2stc3RhcnQpIHZhcigtLXNiYi1uYXZpZ2F0aW9uLXBhZGRpbmctYmxvY2stZW5kKTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgdHJhbnNsYXRlOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1jb250ZW50LXRyYW5zbGF0ZSk7XG59XG5cbjo6c2xvdHRlZCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1saXN0LW1hcmdpbi1ibG9jay1zdGFydCk7XG59XG5cbkBrZXlmcmFtZXMgb3BlbiB7XG4gIGZyb20ge1xuICAgIHRyYW5zbGF0ZTogLTEwMCUgMDtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2xhdGU6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBjbG9zZSB7XG4gIGZyb20ge1xuICAgIHRyYW5zbGF0ZTogMDtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2xhdGU6IC0xMDAlIDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBiYWNrZHJvcC1vcGVuIHtcbiAgZnJvbSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBiYWNrZHJvcC1jbG9zZSB7XG4gIHRvIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuIiwiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHksIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcblxuaW1wb3J0IHsgU2JiVHJhbnNwYXJlbnRCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uLnB1cmUudHMnO1xuaW1wb3J0IHtcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBmb3JjZVR5cGUsXG4gIGkxOG5DbG9zZU5hdmlnYXRpb24sXG4gIGlkUmVmZXJlbmNlLFxuICBpc0V2ZW50T25FbGVtZW50LFxuICBpc1plcm9BbmltYXRpb25EdXJhdGlvbixcbiAgcmVtb3ZlQXJpYU92ZXJsYXlUcmlnZ2VyUHJvcGVydGllcyxcbiAgdHlwZSBTYmJFbGVtZW50VHlwZSxcbiAgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIsXG4gIFNiYkZvY3VzVHJhcENvbnRyb2xsZXIsXG4gIFNiYkluZXJ0Q29udHJvbGxlcixcbiAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLFxuICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbiAgU2JiU2Nyb2xsSGFuZGxlcixcbiAgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW4sXG4gIHNldEFyaWFPdmVybGF5VHJpZ2dlclByb3BlcnRpZXMsXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tYnV0dG9uL25hdmlnYXRpb24tYnV0dG9uLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tbGluay9uYXZpZ2F0aW9uLWxpbmsuY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1zZWN0aW9uL25hdmlnYXRpb24tc2VjdGlvbi5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9uYXZpZ2F0aW9uLnNjc3M/aW5saW5lJztcblxuY29uc3QgREVCT1VOQ0VfVElNRSA9IDE1MDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIG5hdmlnYXRpb24gbWVudSwgd3JhcHBpbmcgb25lIG9yIG1vcmUgYHNiYi1uYXZpZ2F0aW9uLSpgIGNvbXBvbmVudHMuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbmAvYHNiYi1uYXZpZ2F0aW9uLWxpbmtgIGVsZW1lbnRzIGludG8gdGhlIHNiYi1uYXZpZ2F0aW9uIG1lbnUuXG4gKiBAY3NzcHJvcCBbLS1zYmItbmF2aWdhdGlvbi16LWluZGV4PXZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCldIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuIFRoZSBkZWZhdWx0IGB6LWluZGV4YCBvZiB0aGVcbiAqIGNvbXBvbmVudCBpcyBzZXQgdG8gYHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleClgIHdpdGggYSB2YWx1ZSBvZiBgMTAwMGAuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJOYXZpZ2F0aW9uRWxlbWVudCBleHRlbmRzIFNiYlVwZGF0ZVNjaGVkdWxlck1peGluKFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItbmF2aWdhdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtTYmJUcmFuc3BhcmVudEJ1dHRvbkVsZW1lbnRdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAnbmF2aWdhdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgbmF2aWdhdGlvbi5cbiAgICpcbiAgICogRm9yIGF0dHJpYnV0ZSB1c2FnZSwgcHJvdmlkZSBhbiBpZCByZWZlcmVuY2UuXG4gICAqL1xuICBAaWRSZWZlcmVuY2UoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBjbG9zZSBidXR0b24gZWxlbWVudC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktY2xvc2UtbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIFdoZXRoZXIgYSBuYXZpZ2F0aW9uIHNlY3Rpb24gaXMgZGlzcGxheWVkLiAqL1xuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbjogU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFJldHVybnMgdGhlIGFjdGl2ZSBuYXZpZ2F0aW9uIHNlY3Rpb24gZWxlbWVudC4gKi9cbiAgcHVibGljIGdldCBhY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbigpOiBTYmJOYXZpZ2F0aW9uU2VjdGlvbkVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlTmF2aWdhdGlvblNlY3Rpb247XG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgY2xvc2UgYnV0dG9uIGVsZW1lbnQuICovXG4gIHB1YmxpYyBnZXQgY2xvc2VCdXR0b24oKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcjc2JiLW5hdmlnYXRpb24tY2xvc2UtYnV0dG9uJykgPz8gbnVsbDtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSBuYXZpZ2F0aW9uIGNvbnRlbnQgZWxlbWVudC4gKi9cbiAgcHVibGljIGdldCBuYXZpZ2F0aW9uQ29udGVudCgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5zYmItbmF2aWdhdGlvbl9fY29udGVudCcpID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9uYXZpZ2F0aW9uITogSFRNTERpdkVsZW1lbnQ7XG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF90cmlnZ2VyQWJvcnRDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2luZXJ0Q29udHJvbGxlciA9IG5ldyBTYmJJbmVydENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyID0gbmV3IFNiYkVzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9mb2N1c1RyYXBDb250cm9sbGVyID0gbmV3IFNiYkZvY3VzVHJhcENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX3Njcm9sbEhhbmRsZXIgPSBuZXcgU2JiU2Nyb2xsSGFuZGxlcigpO1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPbk5hdmlnYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXJUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9uYXZpZ2F0aW9uUmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplQ29udHJvbGxlcih0aGlzLCB7XG4gICAgc2tpcEluaXRpYWw6IHRydWUsXG4gICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuX29uTmF2aWdhdGlvblJlc2l6ZSgpLFxuICB9KTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoZXZlbnQpID0+IHRoaXMuX2hhbmRsZU5hdmlnYXRpb25DbG9zZShldmVudCkpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdwb2ludGVydXAnLCAoZXZlbnQpID0+IHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrKGV2ZW50KSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3BvaW50ZXJkb3duJywgKGV2ZW50KSA9PiB0aGlzLl9wb2ludGVyRG93bkxpc3RlbmVyKGV2ZW50KSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAnybVuYXZpZ2F0aW9uc2VjdGlvbm9wZW5pbmcnLFxuICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZU5hdmlnYXRpb25TZWN0aW9uID0gZXZlbnQudGFyZ2V0IGFzIFNiYk5hdmlnYXRpb25TZWN0aW9uRWxlbWVudDtcbiAgICAgICAgdGhpcy50b2dnbGVTdGF0ZSgnaGFzLW9wZW4tbmF2aWdhdGlvbi1zZWN0aW9uJywgISF0aGlzLl9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbik7XG4gICAgICB9LFxuICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICfJtW5hdmlnYXRpb25zZWN0aW9uY2xvc2luZycsXG4gICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2FjdGl2ZU5hdmlnYXRpb25TZWN0aW9uID09PSBldmVudC50YXJnZXQpIHtcbiAgICAgICAgICB0aGlzLl9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbiA9IG51bGw7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnaGFzLW9wZW4tbmF2aWdhdGlvbi1zZWN0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqIE9wZW5zIHRoZSBuYXZpZ2F0aW9uLiAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcgfHwgIXRoaXMuaGFzVXBkYXRlZCB8fCAhdGhpcy5kaXNwYXRjaEJlZm9yZU9wZW5FdmVudCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zaG93UG9wb3Zlcj8uKCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICB0aGlzLl9jaGVja0FjdGl2ZUFjdGlvbnMoKTtcbiAgICB0aGlzLl9jaGVja0FjdGl2ZVNlY3Rpb24oKTtcbiAgICB0aGlzLnN0YXJ0VXBkYXRlKCk7XG5cbiAgICAvLyBEaXNhYmxlIHNjcm9sbGluZyBmb3IgY29udGVudCBiZWxvdyB0aGUgbmF2aWdhdGlvblxuICAgIHRoaXMuX3Njcm9sbEhhbmRsZXIuZGlzYWJsZVNjcm9sbCgpO1xuICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYUV4cGFuZGVkID0gJ3RydWUnO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBvcGVuZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tBY3RpdmVTZWN0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUFjdGlvbiA9IHRoaXMucXVlcnlTZWxlY3RvcihcbiAgICAgICdzYmItbmF2aWdhdGlvbi1idXR0b24uc2JiLWFjdGl2ZScsXG4gICAgKSBhcyBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudDtcbiAgICBhY3RpdmVBY3Rpb24/LmNvbm5lY3RlZFNlY3Rpb24/Lm9wZW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQWN0aXZlQWN0aW9ucygpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVBY3Rpb25zID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbCgnOmlzKHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbiwgc2JiLW5hdmlnYXRpb24tbGluaykuc2JiLWFjdGl2ZScpLFxuICAgICkgYXMgKFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHwgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50KVtdO1xuICAgIGFjdGl2ZUFjdGlvbnM/LmZvckVhY2goKGFjdGlvbikgPT4gYWN0aW9uLm1hcmtlcj8uc2VsZWN0KGFjdGlvbikpO1xuICB9XG5cbiAgLyoqIENsb3NlcyB0aGUgbmF2aWdhdGlvbi4gKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmVkJyB8fCAhdGhpcy5kaXNwYXRjaEJlZm9yZUNsb3NlRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2luZyc7XG4gICAgdGhpcy5zdGFydFVwZGF0ZSgpO1xuICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYUV4cGFuZGVkID0gJ2ZhbHNlJztcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgY2xvc2VkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuaGlkZVBvcG92ZXI/LigpO1xuICAgIHRoaXMubmF2aWdhdGlvbkNvbnRlbnQ/LnNjcm9sbFRvKDAsIDApO1xuICAgIHRoaXMuX2luZXJ0Q29udHJvbGxlci5kZWFjdGl2YXRlKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KCk7XG4gICAgdGhpcy5fbmF2aWdhdGlvblJlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZSh0aGlzKTtcbiAgICB0aGlzLl9yZXNldE1hcmtlcnMoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSBmYWxzZTtcblxuICAgIC8vIEVuYWJsZSBzY3JvbGxpbmcgZm9yIGNvbnRlbnQgYmVsb3cgdGhlIG5hdmlnYXRpb25cbiAgICB0aGlzLl9zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuX25hdmlnYXRpb25SZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMpO1xuICAgIHRoaXMuX2luZXJ0Q29udHJvbGxlci5hY3RpdmF0ZSgpO1xuICAgIHRoaXMuX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLmNvbm5lY3QoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmZvY3VzSW5pdGlhbEVsZW1lbnQoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgICB0aGlzLmRpc3BhdGNoT3BlbkV2ZW50KCk7XG4gIH1cblxuICAvLyBSZW1vdmVzIHRyaWdnZXIgY2xpY2sgbGlzdGVuZXIgb24gdHJpZ2dlciBjaGFuZ2UuXG4gIC8vIENoZWNrIGlmIHRoZSB0cmlnZ2VyIGlzIHZhbGlkIGFuZCBhdHRhY2ggY2xpY2sgZXZlbnQgbGlzdGVuZXJzLlxuICBwcml2YXRlIF9jb25maWd1cmVUcmlnZ2VyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRyaWdnZXIgPT09IHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMuX3RyaWdnZXJFbGVtZW50KTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IHRoaXMudHJpZ2dlcjtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMsIHRoaXMuX3RyaWdnZXJFbGVtZW50LCAnbWVudScsIHRoaXMuc3RhdGUpO1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLm9wZW4oKSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEluIHJhcmUgY2FzZXMgaXQgY2FuIGJlIHRoYXQgdGhlIGFuaW1hdGlvbkVuZCBldmVudCBpcyB0cmlnZ2VyZWQgdHdpY2UuXG4gIC8vIFRvIGF2b2lkIGVudGVyaW5nIGEgY29ycnVwdCBzdGF0ZSwgZXhpdCB3aGVuIHN0YXRlIGlzIG5vdCBleHBlY3RlZC5cbiAgcHJpdmF0ZSBfb25BbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuJyAmJiB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZScgJiYgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVzZXRNYXJrZXJzKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUFjdGlvbnMgPSBBcnJheS5mcm9tKFxuICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAnOmlzKHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbiwgc2JiLW5hdmlnYXRpb24tbGluayk6c3RhdGUoYWN0aW9uLWFjdGl2ZSk6bm90KC5zYmItYWN0aXZlKScsXG4gICAgICApLFxuICAgICkgYXMgKFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHwgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50KVtdO1xuICAgIGFjdGl2ZUFjdGlvbnM/LmZvckVhY2goKGFjdGlvbikgPT4gYWN0aW9uLm1hcmtlcj8ucmVzZXQoKSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVOYXZpZ2F0aW9uQ2xvc2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY29tcG9zZWRQYXRoRWxlbWVudHMgPSBldmVudFxuICAgICAgLmNvbXBvc2VkUGF0aCgpXG4gICAgICAuZmlsdGVyKChlbCkgPT4gZWwgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQpO1xuICAgIGlmIChjb21wb3NlZFBhdGhFbGVtZW50cy5zb21lKChlbCkgPT4gdGhpcy5faXNDbG9zZUVsZW1lbnQoZWwgYXMgSFRNTEVsZW1lbnQpKSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzQ2xvc2VFbGVtZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGVsZW1lbnQubm9kZU5hbWUgPT09ICdBJyB8fFxuICAgICAgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCdzYmItbmF2aWdhdGlvbi1jbG9zZScpICYmICFlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSlcbiAgICApO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHBvaW50ZXJkb3duIGV2ZW50IHRhcmdldCBpcyB0cmlnZ2VyZWQgb24gdGhlIG5hdmlnYXRpb24uXG4gIHByaXZhdGUgX3BvaW50ZXJEb3duTGlzdGVuZXIgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uTmF2aWdhdGlvbiA9XG4gICAgICBpc0V2ZW50T25FbGVtZW50KHRoaXMuX25hdmlnYXRpb24sIGV2ZW50KSB8fFxuICAgICAgaXNFdmVudE9uRWxlbWVudChcbiAgICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCdzYmItbmF2aWdhdGlvbi1zZWN0aW9uOnN0YXRlKHN0YXRlLW9wZW5lZCknKT8uc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAnbmF2LnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24nLFxuICAgICAgICApIGFzIEhUTUxFbGVtZW50LFxuICAgICAgICBldmVudCxcbiAgICAgICk7XG4gIH07XG5cbiAgLy8gQ2xvc2UgbmF2aWdhdGlvbiBvbiBiYWNrZHJvcCBjbGljay5cbiAgcHJpdmF0ZSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmICghdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25OYXZpZ2F0aW9uICYmICFpc0V2ZW50T25FbGVtZW50KHRoaXMuX25hdmlnYXRpb24sIGV2ZW50KSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9vbk5hdmlnYXRpb25SZXNpemUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCk7XG4gICAgfVxuXG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgncmVzaXplLWRpc2FibGUtYW5pbWF0aW9uJyk7XG5cbiAgICAvLyBEaXNhYmxlIHRoZSBhbmltYXRpb24gd2hlbiByZXNpemluZyB0aGUgbmF2aWdhdGlvbiB0byBhdm9pZCBzdHJhbmdlIGhlaWdodCB0cmFuc2l0aW9uIGVmZmVjdHMuXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXJUaW1lb3V0ID0gc2V0VGltZW91dChcbiAgICAgICgpID0+IHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ3Jlc2l6ZS1kaXNhYmxlLWFuaW1hdGlvbicpLFxuICAgICAgREVCT1VOQ0VfVElNRSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5wb3BvdmVyID0gJ21hbnVhbCc7XG4gICAgaWYgKHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fY29uZmlndXJlVHJpZ2dlcigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gbnVsbDtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX3Njcm9sbEhhbmRsZXIuZW5hYmxlU2Nyb2xsKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcblxuICAgIGlmICghaXNTZXJ2ZXIgJiYgKCFuYW1lIHx8IG5hbWUgPT09ICd0cmlnZ2VyJykgJiYgdGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIHRoaXMuX2NvbmZpZ3VyZVRyaWdnZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGNsb3NlQnV0dG9uID0gaHRtbGBcbiAgICAgIDxzYmItdHJhbnNwYXJlbnQtYnV0dG9uXG4gICAgICAgIGlkPVwic2JiLW5hdmlnYXRpb24tY2xvc2UtYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJzYmItbmF2aWdhdGlvbl9fY2xvc2VcIlxuICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbCB8fCBpMThuQ2xvc2VOYXZpZ2F0aW9uW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICBhcmlhLWNvbnRyb2xzPVwic2JiLW5hdmlnYXRpb24tb3ZlcmxheVwiXG4gICAgICAgIG5lZ2F0aXZlXG4gICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGljb24tbmFtZT1cImNyb3NzLXNtYWxsXCJcbiAgICAgICAgc2JiLW5hdmlnYXRpb24tY2xvc2VcbiAgICAgID48L3NiYi10cmFuc3BhcmVudC1idXR0b24+XG4gICAgYDtcblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uX19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGlkPVwic2JiLW5hdmlnYXRpb24tb3ZlcmxheVwiXG4gICAgICAgICAgQGFuaW1hdGlvbmVuZD0ke3RoaXMuX29uQW5pbWF0aW9uRW5kfVxuICAgICAgICAgIGNsYXNzPVwic2JiLW5hdmlnYXRpb25cIlxuICAgICAgICAgICR7cmVmKChuYXZpZ2F0aW9uUmVmPzogRWxlbWVudCkgPT4gKHRoaXMuX25hdmlnYXRpb24gPSBuYXZpZ2F0aW9uUmVmIGFzIEhUTUxEaXZFbGVtZW50KSl9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb25fX2hlYWRlclwiPiR7Y2xvc2VCdXR0b259PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uX193cmFwcGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb25fX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c2xvdCBuYW1lPVwibmF2aWdhdGlvbi1zZWN0aW9uXCI+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLW5hdmlnYXRpb24nOiBTYmJOYXZpZ2F0aW9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQ3NDQSxJQUFNLGdCQUFnQjs7Ozs7Ozs7O0lBVVQsOEJBQW9CO21CQUFTLHdCQUF3Qix3QkFBd0I7Ozs7Ozs7Ozs7Y0FBN0UsNkJBQTZCLFlBQWdEOzs7MEJBV3ZGLGFBQWEsRUFDYixVQUFVLENBQUE7MENBSVYsV0FBVyxF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
316
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5jb21wb25lbnQtbGd2TE1GNWUuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG5AbWl4aW4gdHJhbnNpdGlvbigkcHJvcGVydGllcy4uLikge1xuICB0cmFuc2l0aW9uOiB7XG4gICAgZHVyYXRpb246IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZWFzaW5nKTtcbiAgICBwcm9wZXJ0eTogJHByb3BlcnRpZXM7XG4gIH1cbn1cblxuOmhvc3Qge1xuICAtLXNiYi1uYXZpZ2F0aW9uLWdyaWQtY29sdW1uOiAxIC8gLTE7XG4gIC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi0zeClcbiAgKTtcbiAgLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZWFzaW5nOiBlYXNlLWluO1xuICAtLXNiYi1uYXZpZ2F0aW9uLXBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItbGF5b3V0LWJhc2Utb2Zmc2V0LXJlc3BvbnNpdmUpO1xuICAtLXNiYi1uYXZpZ2F0aW9uLXBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUtbCk7XG4gIC0tc2JiLW5hdmlnYXRpb24tcGFkZGluZy1ibG9jay1lbmQ6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteGwpO1xuICAtLXNiYi1uYXZpZ2F0aW9uLWJhY2tkcm9wLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgLS1zYmItbmF2aWdhdGlvbi1iYWNrZHJvcC1wb2ludGVyLWV2ZW50czogbm9uZTtcbiAgLS1zYmItbmF2aWdhdGlvbi1iYWNrZHJvcC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNiYi1jb2xvci1ibGFjaykgNzAlLCB0cmFuc3BhcmVudCk7XG4gIC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtYW5pbWF0aW9uLW5hbWU6IGJhY2tkcm9wLW9wZW47XG4gIC0tc2JiLW5hdmlnYXRpb24tYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLWJhY2tncm91bmQtY29sb3ItMS1uZWdhdGl2ZSk7XG4gIC0tc2JiLW5hdmlnYXRpb24tY29sb3I6IHZhcigtLXNiYi1jb2xvci0xLW5lZ2F0aXZlKTtcbiAgLS1zYmItbmF2aWdhdGlvbi1saXN0LW1hcmdpbi1ibG9jay1zdGFydDogdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14eGwpO1xuICAtLXNiYi1uYXZpZ2F0aW9uLWlubGluZS1zdGFydDogMDtcbiAgLS1zYmItbmF2aWdhdGlvbi1leHBhbmRlZC13aWR0aDogMTAwJTtcbiAgLS1zYmItbmF2aWdhdGlvbi1pbnNldDogMCBhdXRvIGF1dG8gMDtcbiAgLS1zYmItbmF2aWdhdGlvbi10cmFuc2xhdGU6IC0xMDAlIDA7XG4gIC0tc2JiLW5hdmlnYXRpb24tY29udGVudC10cmFuc2xhdGU6IDA7XG4gIC0tc2JiLW5hdmlnYXRpb24td2lkdGg6IDEwMCU7XG4gIC0tc2JiLW5hdmlnYXRpb24taGVpZ2h0OiAxMDBkdmg7XG4gIC0tc2JiLWZvY3VzLW91dGxpbmUtY29sb3I6IHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLWNvbG9yLWRhcmspO1xuXG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWluc2V0KTtcbiAgei1pbmRleDogdmFyKC0tc2JiLW5hdmlnYXRpb24tei1pbmRleCwgdmFyKC0tc2JiLW92ZXJsYXktZGVmYXVsdC16LWluZGV4KSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIC0tc2JiLW5hdmlnYXRpb24tZ3JpZC1jb2x1bW46IDEgLyA1O1xuICAgIC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNngpXG4gICAgKTtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLXBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteGwpO1xuICAgIC0tc2JiLW5hdmlnYXRpb24tcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1sYXlvdXQtYmFzZS1vZmZzZXQtcmVzcG9uc2l2ZSkgMDtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLWxpc3QtbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC0xeCk7XG4gICAgLS1zYmItbmF2aWdhdGlvbi1pbmxpbmUtc3RhcnQ6IGNhbGModmFyKC0tc2JiLWxheW91dC1iYXNlLW9mZnNldC1yZXNwb25zaXZlKSAqIC0xKTtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLXdpZHRoOiBjYWxjKDEwMCUgKyB2YXIoLS1zYmItbGF5b3V0LWJhc2Utb2Zmc2V0LXJlc3BvbnNpdmUpKTtcbiAgfVxuXG4gIEBpbmNsdWRlIHNiYi5tcSgkZnJvbTogdWx0cmEpIHtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLWdyaWQtY29sdW1uOiAxIC8gNjtcbiAgICAtLXNiYi1uYXZpZ2F0aW9uLXBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHhsKTtcbiAgfVxufVxuXG46aG9zdCg6aXMoOnN0YXRlKHN0YXRlLW9wZW5pbmcpLCA6c3RhdGUoc3RhdGUtb3BlbmVkKSwgOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKHN0YXRlLW9wZW5lZCkpIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZWFzaW5nOiBlYXNlLW91dDtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuZWQpLCA6c3RhdGUoc3RhdGUtb3BlbmluZykpKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgLS1zYmItbmF2aWdhdGlvbi1iYWNrZHJvcC1wb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG46aG9zdCg6bm90KDpzdGF0ZShzdGF0ZS1jbG9zZWQpKSkge1xuICAtLXNiYi1uYXZpZ2F0aW9uLWluc2V0OiAwO1xuICAtLXNiYi1uYXZpZ2F0aW9uLXRyYW5zbGF0ZTogO1xufVxuXG46aG9zdCg6c3RhdGUoc3RhdGUtY2xvc2luZykpIHtcbiAgLS1zYmItbmF2aWdhdGlvbi1iYWNrZHJvcC1hbmltYXRpb24tbmFtZTogYmFja2Ryb3AtY2xvc2U7XG59XG5cbjpob3N0KDpzdGF0ZShoYXMtb3Blbi1uYXZpZ2F0aW9uLXNlY3Rpb24pKSB7XG4gIC0tc2JiLW5hdmlnYXRpb24tY29udGVudC10cmFuc2xhdGU6IC0xMDAlIDA7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiAnbGFyZ2UnKSB7XG4gICAgLS1zYmItbmF2aWdhdGlvbi1leHBhbmRlZC13aWR0aDogMTAwZHZ3O1xuICAgIC0tc2JiLW5hdmlnYXRpb24tY29udGVudC10cmFuc2xhdGU6IDA7XG4gIH1cbn1cblxuOmhvc3QoOnN0YXRlKHJlc2l6ZS1kaXNhYmxlLWFuaW1hdGlvbikpIHtcbiAgQGluY2x1ZGUgc2JiLmRpc2FibGUtYW5pbWF0aW9uO1xufVxuXG4uc2JiLW5hdmlnYXRpb25fX2NvbnRhaW5lciB7XG4gIEBpbmNsdWRlIHNiYi5ncmlkLWJhc2U7XG5cbiAgcGFkZGluZy1pbmxpbmU6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2xhdGU6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXRyYW5zbGF0ZSk7XG5cbiAgQGluY2x1ZGUgc2JiLm1xKCRmcm9tOiBsYXJnZSkge1xuICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItbGF5b3V0LWJhc2Utb2Zmc2V0LXJlc3BvbnNpdmUpO1xuXG4gICAgLy8gTmF2aWdhdGlvbiBiYWNrZHJvcCAobm90IHZpc2libGUgb24gbW9iaWxlKVxuICAgICY6OmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKHZpc2liaWxpdHkpO1xuXG4gICAgICBhbmltYXRpb246IHtcbiAgICAgICAgbmFtZTogdmFyKC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtYW5pbWF0aW9uLW5hbWUpO1xuICAgICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZWFzaW5nKTtcbiAgICAgIH1cblxuICAgICAgY29udGVudDogJyc7XG4gICAgICB2aXNpYmlsaXR5OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1iYWNrZHJvcC12aXNpYmlsaXR5KTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1iYWNrZHJvcC1wb2ludGVyLWV2ZW50cyk7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICBpbnNldDogdmFyKC0tc2JiLW5hdmlnYXRpb24taW5zZXQpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYmFja2Ryb3AtY29sb3IpO1xuICAgIH1cbiAgfVxufVxuXG4uc2JiLW5hdmlnYXRpb24ge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKHdpZHRoKTtcblxuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogdmFyKC0tc2JiLW5hdmlnYXRpb24td2lkdGgpO1xuICBncmlkLWNvbHVtbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tZ3JpZC1jb2x1bW4pO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1pbmxpbmUtc3RhcnQpO1xuICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgYm9yZGVyOiBub25lO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1oZWlnaHQpO1xuICBjb2xvcjogdmFyKC0tc2JiLW5hdmlnYXRpb24tY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1iYWNrZ3JvdW5kLWNvbG9yKTtcblxuICAmOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24od2lkdGgpO1xuXG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1leHBhbmRlZC13aWR0aCk7XG4gICAgaGVpZ2h0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1oZWlnaHQpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWJhY2tncm91bmQtY29sb3IpO1xuICB9XG5cbiAgOmhvc3QoOmlzKDpzdGF0ZShzdGF0ZS1vcGVuaW5nKSwgOnN0YXRlKHN0YXRlLW9wZW5lZCksIDpzdGF0ZShzdGF0ZS1jbG9zaW5nKSkpICYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7XG5cbiAgICBhbmltYXRpb246IHtcbiAgICAgIG5hbWU6IG9wZW47XG4gICAgICBkdXJhdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLW5hdmlnYXRpb24tYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgfVxuICB9XG5cbiAgOmhvc3QoOnN0YXRlKHN0YXRlLWNsb3NpbmcpKSAmIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBhbmltYXRpb24tbmFtZTogY2xvc2U7XG4gIH1cblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgb3V0bGluZTogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0xeCkgc29saWQgQ2FudmFzVGV4dDtcbiAgfVxufVxuXG4uc2JiLW5hdmlnYXRpb25fX3dyYXBwZXIge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uc2JiLW5hdmlnYXRpb25fX2hlYWRlciB7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24od2lkdGgpO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWV4cGFuZGVkLXdpZHRoKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHBhZGRpbmc6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHMpO1xuICB6LWluZGV4OiBjYWxjKHZhcigtLXNiYi1uYXZpZ2F0aW9uLXotaW5kZXgsIHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCkpICsgMSk7XG59XG5cbi5zYmItbmF2aWdhdGlvbl9fY2xvc2Uge1xuICBwb2ludGVyLWV2ZW50czogYWxsO1xufVxuXG4uc2JiLW5hdmlnYXRpb25fX2NvbnRlbnQge1xuICBAaW5jbHVkZSB0cmFuc2l0aW9uKHRyYW5zbGF0ZSk7XG4gIEBpbmNsdWRlIHNiYi5zY3JvbGxiYXIoJG5lZ2F0aXZlOiB0cnVlKTtcblxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHhsKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLWhlaWdodCk7XG4gIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1wYWRkaW5nLWlubGluZSk7XG4gIHBhZGRpbmctYmxvY2s6IHZhcigtLXNiYi1uYXZpZ2F0aW9uLXBhZGRpbmctYmxvY2stc3RhcnQpIHZhcigtLXNiYi1uYXZpZ2F0aW9uLXBhZGRpbmctYmxvY2stZW5kKTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgdHJhbnNsYXRlOiB2YXIoLS1zYmItbmF2aWdhdGlvbi1jb250ZW50LXRyYW5zbGF0ZSk7XG59XG5cbjo6c2xvdHRlZCg6Zmlyc3QtY2hpbGQpIHtcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1zYmItbmF2aWdhdGlvbi1saXN0LW1hcmdpbi1ibG9jay1zdGFydCk7XG59XG5cbkBrZXlmcmFtZXMgb3BlbiB7XG4gIGZyb20ge1xuICAgIHRyYW5zbGF0ZTogLTEwMCUgMDtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2xhdGU6IDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBjbG9zZSB7XG4gIGZyb20ge1xuICAgIHRyYW5zbGF0ZTogMDtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2xhdGU6IC0xMDAlIDA7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBiYWNrZHJvcC1vcGVuIHtcbiAgZnJvbSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBiYWNrZHJvcC1jbG9zZSB7XG4gIHRvIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuIiwiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHksIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgcmVmIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvcmVmLmpzJztcblxuaW1wb3J0IHsgU2JiVHJhbnNwYXJlbnRCdXR0b25FbGVtZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9uLnB1cmUudHMnO1xuaW1wb3J0IHtcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBmb3JjZVR5cGUsXG4gIGkxOG5DbG9zZU5hdmlnYXRpb24sXG4gIGlkUmVmZXJlbmNlLFxuICBpc0V2ZW50T25FbGVtZW50LFxuICBpc1plcm9BbmltYXRpb25EdXJhdGlvbixcbiAgcmVtb3ZlQXJpYU92ZXJsYXlUcmlnZ2VyUHJvcGVydGllcyxcbiAgdHlwZSBTYmJFbGVtZW50VHlwZSxcbiAgU2JiRXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIsXG4gIFNiYkZvY3VzVHJhcENvbnRyb2xsZXIsXG4gIFNiYkluZXJ0Q29udHJvbGxlcixcbiAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLFxuICBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCxcbiAgU2JiU2Nyb2xsSGFuZGxlcixcbiAgU2JiVXBkYXRlU2NoZWR1bGVyTWl4aW4sXG4gIHNldEFyaWFPdmVybGF5VHJpZ2dlclByb3BlcnRpZXMsXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tYnV0dG9uL25hdmlnYXRpb24tYnV0dG9uLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk5hdmlnYXRpb25MaW5rRWxlbWVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tbGluay9uYXZpZ2F0aW9uLWxpbmsuY29tcG9uZW50LnRzJztcbmltcG9ydCB0eXBlIHsgU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1zZWN0aW9uL25hdmlnYXRpb24tc2VjdGlvbi5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9uYXZpZ2F0aW9uLnNjc3M/aW5saW5lJztcblxuY29uc3QgREVCT1VOQ0VfVElNRSA9IDE1MDtcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIG5hdmlnYXRpb24gbWVudSwgd3JhcHBpbmcgb25lIG9yIG1vcmUgYHNiYi1uYXZpZ2F0aW9uLSpgIGNvbXBvbmVudHMuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbmAvYHNiYi1uYXZpZ2F0aW9uLWxpbmtgIGVsZW1lbnRzIGludG8gdGhlIHNiYi1uYXZpZ2F0aW9uIG1lbnUuXG4gKiBAY3NzcHJvcCBbLS1zYmItbmF2aWdhdGlvbi16LWluZGV4PXZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleCldIC0gVG8gc3BlY2lmeSBhIGN1c3RvbSBzdGFjayBvcmRlcixcbiAqIHRoZSBgei1pbmRleGAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgdGhpcyBDU1MgdmFyaWFibGUuIFRoZSBkZWZhdWx0IGB6LWluZGV4YCBvZiB0aGVcbiAqIGNvbXBvbmVudCBpcyBzZXQgdG8gYHZhcigtLXNiYi1vdmVybGF5LWRlZmF1bHQtei1pbmRleClgIHdpdGggYSB2YWx1ZSBvZiBgMTAwMGAuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJOYXZpZ2F0aW9uRWxlbWVudCBleHRlbmRzIFNiYlVwZGF0ZVNjaGVkdWxlck1peGluKFNiYk9wZW5DbG9zZUJhc2VFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItbmF2aWdhdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtTYmJUcmFuc3BhcmVudEJ1dHRvbkVsZW1lbnRdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAnbmF2aWdhdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgbmF2aWdhdGlvbi5cbiAgICpcbiAgICogRm9yIGF0dHJpYnV0ZSB1c2FnZSwgcHJvdmlkZSBhbiBpZCByZWZlcmVuY2UuXG4gICAqL1xuICBAaWRSZWZlcmVuY2UoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKiogVGhpcyB3aWxsIGJlIGZvcndhcmRlZCBhcyBhcmlhLWxhYmVsIHRvIHRoZSBjbG9zZSBidXR0b24gZWxlbWVudC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FjY2Vzc2liaWxpdHktY2xvc2UtbGFiZWwnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIFdoZXRoZXIgYSBuYXZpZ2F0aW9uIHNlY3Rpb24gaXMgZGlzcGxheWVkLiAqL1xuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbjogU2JiTmF2aWdhdGlvblNlY3Rpb25FbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFJldHVybnMgdGhlIGFjdGl2ZSBuYXZpZ2F0aW9uIHNlY3Rpb24gZWxlbWVudC4gKi9cbiAgcHVibGljIGdldCBhY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbigpOiBTYmJOYXZpZ2F0aW9uU2VjdGlvbkVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlTmF2aWdhdGlvblNlY3Rpb247XG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgY2xvc2UgYnV0dG9uIGVsZW1lbnQuICovXG4gIHB1YmxpYyBnZXQgY2xvc2VCdXR0b24oKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCcjc2JiLW5hdmlnYXRpb24tY2xvc2UtYnV0dG9uJykgPz8gbnVsbDtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSBuYXZpZ2F0aW9uIGNvbnRlbnQgZWxlbWVudC4gKi9cbiAgcHVibGljIGdldCBuYXZpZ2F0aW9uQ29udGVudCgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3Q/LnF1ZXJ5U2VsZWN0b3IoJy5zYmItbmF2aWdhdGlvbl9fY29udGVudCcpID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9uYXZpZ2F0aW9uITogSFRNTERpdkVsZW1lbnQ7XG4gIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF90cmlnZ2VyQWJvcnRDb250cm9sbGVyITogQWJvcnRDb250cm9sbGVyO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2luZXJ0Q29udHJvbGxlciA9IG5ldyBTYmJJbmVydENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyID0gbmV3IFNiYkVzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9mb2N1c1RyYXBDb250cm9sbGVyID0gbmV3IFNiYkZvY3VzVHJhcENvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX3Njcm9sbEhhbmRsZXIgPSBuZXcgU2JiU2Nyb2xsSGFuZGxlcigpO1xuICBwcml2YXRlIF9pc1BvaW50ZXJEb3duRXZlbnRPbk5hdmlnYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXJUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9uYXZpZ2F0aW9uUmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplQ29udHJvbGxlcih0aGlzLCB7XG4gICAgc2tpcEluaXRpYWw6IHRydWUsXG4gICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuX29uTmF2aWdhdGlvblJlc2l6ZSgpLFxuICB9KTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoZXZlbnQpID0+IHRoaXMuX2hhbmRsZU5hdmlnYXRpb25DbG9zZShldmVudCkpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdwb2ludGVydXAnLCAoZXZlbnQpID0+IHRoaXMuX2Nsb3NlT25CYWNrZHJvcENsaWNrKGV2ZW50KSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3BvaW50ZXJkb3duJywgKGV2ZW50KSA9PiB0aGlzLl9wb2ludGVyRG93bkxpc3RlbmVyKGV2ZW50KSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAnybVuYXZpZ2F0aW9uc2VjdGlvbm9wZW5pbmcnLFxuICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZU5hdmlnYXRpb25TZWN0aW9uID0gZXZlbnQudGFyZ2V0IGFzIFNiYk5hdmlnYXRpb25TZWN0aW9uRWxlbWVudDtcbiAgICAgICAgdGhpcy50b2dnbGVTdGF0ZSgnaGFzLW9wZW4tbmF2aWdhdGlvbi1zZWN0aW9uJywgISF0aGlzLl9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbik7XG4gICAgICB9LFxuICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICfJtW5hdmlnYXRpb25zZWN0aW9uY2xvc2luZycsXG4gICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2FjdGl2ZU5hdmlnYXRpb25TZWN0aW9uID09PSBldmVudC50YXJnZXQpIHtcbiAgICAgICAgICB0aGlzLl9hY3RpdmVOYXZpZ2F0aW9uU2VjdGlvbiA9IG51bGw7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnaGFzLW9wZW4tbmF2aWdhdGlvbi1zZWN0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqIE9wZW5zIHRoZSBuYXZpZ2F0aW9uLiAqL1xuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSAhPT0gJ2Nsb3NlZCcgfHwgIXRoaXMuaGFzVXBkYXRlZCB8fCAhdGhpcy5kaXNwYXRjaEJlZm9yZU9wZW5FdmVudCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zaG93UG9wb3Zlcj8uKCk7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICB0aGlzLl9jaGVja0FjdGl2ZUFjdGlvbnMoKTtcbiAgICB0aGlzLl9jaGVja0FjdGl2ZVNlY3Rpb24oKTtcbiAgICB0aGlzLnN0YXJ0VXBkYXRlKCk7XG5cbiAgICAvLyBEaXNhYmxlIHNjcm9sbGluZyBmb3IgY29udGVudCBiZWxvdyB0aGUgbmF2aWdhdGlvblxuICAgIHRoaXMuX3Njcm9sbEhhbmRsZXIuZGlzYWJsZVNjcm9sbCgpO1xuICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYUV4cGFuZGVkID0gJ3RydWUnO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBvcGVuZWRgIHN0YXRlLlxuICAgIGlmICh0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tBY3RpdmVTZWN0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUFjdGlvbiA9IHRoaXMucXVlcnlTZWxlY3RvcihcbiAgICAgICdzYmItbmF2aWdhdGlvbi1idXR0b24uc2JiLWFjdGl2ZScsXG4gICAgKSBhcyBTYmJOYXZpZ2F0aW9uQnV0dG9uRWxlbWVudDtcbiAgICBhY3RpdmVBY3Rpb24/LmNvbm5lY3RlZFNlY3Rpb24/Lm9wZW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrQWN0aXZlQWN0aW9ucygpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVBY3Rpb25zID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbCgnOmlzKHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbiwgc2JiLW5hdmlnYXRpb24tbGluaykuc2JiLWFjdGl2ZScpLFxuICAgICkgYXMgKFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHwgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50KVtdO1xuICAgIGFjdGl2ZUFjdGlvbnM/LmZvckVhY2goKGFjdGlvbikgPT4gYWN0aW9uLm1hcmtlcj8uc2VsZWN0KGFjdGlvbikpO1xuICB9XG5cbiAgLyoqIENsb3NlcyB0aGUgbmF2aWdhdGlvbi4gKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlICE9PSAnb3BlbmVkJyB8fCAhdGhpcy5kaXNwYXRjaEJlZm9yZUNsb3NlRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSAnY2xvc2luZyc7XG4gICAgdGhpcy5zdGFydFVwZGF0ZSgpO1xuICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xuICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYXJpYUV4cGFuZGVkID0gJ2ZhbHNlJztcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgY2xvc2VkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItbmF2aWdhdGlvbi1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdjbG9zZWQnO1xuICAgIHRoaXMuaGlkZVBvcG92ZXI/LigpO1xuICAgIHRoaXMubmF2aWdhdGlvbkNvbnRlbnQ/LnNjcm9sbFRvKDAsIDApO1xuICAgIHRoaXMuX2luZXJ0Q29udHJvbGxlci5kZWFjdGl2YXRlKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgdGhpcy5fZXNjYXBhYmxlT3ZlcmxheUNvbnRyb2xsZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuZGlzcGF0Y2hDbG9zZUV2ZW50KCk7XG4gICAgdGhpcy5fbmF2aWdhdGlvblJlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZSh0aGlzKTtcbiAgICB0aGlzLl9yZXNldE1hcmtlcnMoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSBmYWxzZTtcblxuICAgIC8vIEVuYWJsZSBzY3JvbGxpbmcgZm9yIGNvbnRlbnQgYmVsb3cgdGhlIG5hdmlnYXRpb25cbiAgICB0aGlzLl9zY3JvbGxIYW5kbGVyLmVuYWJsZVNjcm9sbCgpO1xuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIHRoaXMuX25hdmlnYXRpb25SZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMpO1xuICAgIHRoaXMuX2luZXJ0Q29udHJvbGxlci5hY3RpdmF0ZSgpO1xuICAgIHRoaXMuX2VzY2FwYWJsZU92ZXJsYXlDb250cm9sbGVyLmNvbm5lY3QoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmZvY3VzSW5pdGlhbEVsZW1lbnQoKTtcbiAgICB0aGlzLl9mb2N1c1RyYXBDb250cm9sbGVyLmVuYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgICB0aGlzLmRpc3BhdGNoT3BlbkV2ZW50KCk7XG4gIH1cblxuICAvLyBSZW1vdmVzIHRyaWdnZXIgY2xpY2sgbGlzdGVuZXIgb24gdHJpZ2dlciBjaGFuZ2UuXG4gIC8vIENoZWNrIGlmIHRoZSB0cmlnZ2VyIGlzIHZhbGlkIGFuZCBhdHRhY2ggY2xpY2sgZXZlbnQgbGlzdGVuZXJzLlxuICBwcml2YXRlIF9jb25maWd1cmVUcmlnZ2VyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRyaWdnZXIgPT09IHRoaXMuX3RyaWdnZXJFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlckFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICByZW1vdmVBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMuX3RyaWdnZXJFbGVtZW50KTtcbiAgICB0aGlzLl90cmlnZ2VyRWxlbWVudCA9IHRoaXMudHJpZ2dlcjtcblxuICAgIGlmICghdGhpcy5fdHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXRBcmlhT3ZlcmxheVRyaWdnZXJQcm9wZXJ0aWVzKHRoaXMsIHRoaXMuX3RyaWdnZXJFbGVtZW50LCAnbWVudScsIHRoaXMuc3RhdGUpO1xuICAgIHRoaXMuX3RyaWdnZXJBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLm9wZW4oKSwge1xuICAgICAgc2lnbmFsOiB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEluIHJhcmUgY2FzZXMgaXQgY2FuIGJlIHRoYXQgdGhlIGFuaW1hdGlvbkVuZCBldmVudCBpcyB0cmlnZ2VyZWQgdHdpY2UuXG4gIC8vIFRvIGF2b2lkIGVudGVyaW5nIGEgY29ycnVwdCBzdGF0ZSwgZXhpdCB3aGVuIHN0YXRlIGlzIG5vdCBleHBlY3RlZC5cbiAgcHJpdmF0ZSBfb25BbmltYXRpb25FbmQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdvcGVuJyAmJiB0aGlzLnN0YXRlID09PSAnb3BlbmluZycpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmFuaW1hdGlvbk5hbWUgPT09ICdjbG9zZScgJiYgdGhpcy5zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVzZXRNYXJrZXJzKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUFjdGlvbnMgPSBBcnJheS5mcm9tKFxuICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAnOmlzKHNiYi1uYXZpZ2F0aW9uLWJ1dHRvbiwgc2JiLW5hdmlnYXRpb24tbGluayk6c3RhdGUoYWN0aW9uLWFjdGl2ZSk6bm90KC5zYmItYWN0aXZlKScsXG4gICAgICApLFxuICAgICkgYXMgKFNiYk5hdmlnYXRpb25CdXR0b25FbGVtZW50IHwgU2JiTmF2aWdhdGlvbkxpbmtFbGVtZW50KVtdO1xuICAgIGFjdGl2ZUFjdGlvbnM/LmZvckVhY2goKGFjdGlvbikgPT4gYWN0aW9uLm1hcmtlcj8ucmVzZXQoKSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVOYXZpZ2F0aW9uQ2xvc2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY29tcG9zZWRQYXRoRWxlbWVudHMgPSBldmVudFxuICAgICAgLmNvbXBvc2VkUGF0aCgpXG4gICAgICAuZmlsdGVyKChlbCkgPT4gZWwgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQpO1xuICAgIGlmIChjb21wb3NlZFBhdGhFbGVtZW50cy5zb21lKChlbCkgPT4gdGhpcy5faXNDbG9zZUVsZW1lbnQoZWwgYXMgSFRNTEVsZW1lbnQpKSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzQ2xvc2VFbGVtZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGVsZW1lbnQubm9kZU5hbWUgPT09ICdBJyB8fFxuICAgICAgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCdzYmItbmF2aWdhdGlvbi1jbG9zZScpICYmICFlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSlcbiAgICApO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgdGhlIHBvaW50ZXJkb3duIGV2ZW50IHRhcmdldCBpcyB0cmlnZ2VyZWQgb24gdGhlIG5hdmlnYXRpb24uXG4gIHByaXZhdGUgX3BvaW50ZXJEb3duTGlzdGVuZXIgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuX2lzUG9pbnRlckRvd25FdmVudE9uTmF2aWdhdGlvbiA9XG4gICAgICBpc0V2ZW50T25FbGVtZW50KHRoaXMuX25hdmlnYXRpb24sIGV2ZW50KSB8fFxuICAgICAgaXNFdmVudE9uRWxlbWVudChcbiAgICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKCdzYmItbmF2aWdhdGlvbi1zZWN0aW9uOnN0YXRlKHN0YXRlLW9wZW5lZCknKT8uc2hhZG93Um9vdD8ucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAnbmF2LnNiYi1uYXZpZ2F0aW9uLXNlY3Rpb24nLFxuICAgICAgICApIGFzIEhUTUxFbGVtZW50LFxuICAgICAgICBldmVudCxcbiAgICAgICk7XG4gIH07XG5cbiAgLy8gQ2xvc2UgbmF2aWdhdGlvbiBvbiBiYWNrZHJvcCBjbGljay5cbiAgcHJpdmF0ZSBfY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCk6IHZvaWQgPT4ge1xuICAgIGlmICghdGhpcy5faXNQb2ludGVyRG93bkV2ZW50T25OYXZpZ2F0aW9uICYmICFpc0V2ZW50T25FbGVtZW50KHRoaXMuX25hdmlnYXRpb24sIGV2ZW50KSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIF9vbk5hdmlnYXRpb25SZXNpemUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhdGUgIT09ICdvcGVuZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCk7XG4gICAgfVxuXG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgncmVzaXplLWRpc2FibGUtYW5pbWF0aW9uJyk7XG5cbiAgICAvLyBEaXNhYmxlIHRoZSBhbmltYXRpb24gd2hlbiByZXNpemluZyB0aGUgbmF2aWdhdGlvbiB0byBhdm9pZCBzdHJhbmdlIGhlaWdodCB0cmFuc2l0aW9uIGVmZmVjdHMuXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXJUaW1lb3V0ID0gc2V0VGltZW91dChcbiAgICAgICgpID0+IHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ3Jlc2l6ZS1kaXNhYmxlLWFuaW1hdGlvbicpLFxuICAgICAgREVCT1VOQ0VfVElNRSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5wb3BvdmVyID0gJ21hbnVhbCc7XG4gICAgaWYgKHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fY29uZmlndXJlVHJpZ2dlcigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX3RyaWdnZXJFbGVtZW50ID0gbnVsbDtcbiAgICB0aGlzLl90cmlnZ2VyQWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgIHRoaXMuX3Njcm9sbEhhbmRsZXIuZW5hYmxlU2Nyb2xsKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcblxuICAgIGlmICghaXNTZXJ2ZXIgJiYgKCFuYW1lIHx8IG5hbWUgPT09ICd0cmlnZ2VyJykgJiYgdGhpcy5oYXNVcGRhdGVkKSB7XG4gICAgICB0aGlzLl9jb25maWd1cmVUcmlnZ2VyKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIHRoaXMuX2NvbmZpZ3VyZVRyaWdnZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGNsb3NlQnV0dG9uID0gaHRtbGBcbiAgICAgIDxzYmItdHJhbnNwYXJlbnQtYnV0dG9uXG4gICAgICAgIGlkPVwic2JiLW5hdmlnYXRpb24tY2xvc2UtYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJzYmItbmF2aWdhdGlvbl9fY2xvc2VcIlxuICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5hY2Nlc3NpYmlsaXR5Q2xvc2VMYWJlbCB8fCBpMThuQ2xvc2VOYXZpZ2F0aW9uW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfVxuICAgICAgICBhcmlhLWNvbnRyb2xzPVwic2JiLW5hdmlnYXRpb24tb3ZlcmxheVwiXG4gICAgICAgIG5lZ2F0aXZlXG4gICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGljb24tbmFtZT1cImNyb3NzLXNtYWxsXCJcbiAgICAgICAgc2JiLW5hdmlnYXRpb24tY2xvc2VcbiAgICAgID48L3NiYi10cmFuc3BhcmVudC1idXR0b24+XG4gICAgYDtcblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uX19jb250YWluZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGlkPVwic2JiLW5hdmlnYXRpb24tb3ZlcmxheVwiXG4gICAgICAgICAgQGFuaW1hdGlvbmVuZD0ke3RoaXMuX29uQW5pbWF0aW9uRW5kfVxuICAgICAgICAgIGNsYXNzPVwic2JiLW5hdmlnYXRpb25cIlxuICAgICAgICAgICR7cmVmKChuYXZpZ2F0aW9uUmVmPzogRWxlbWVudCkgPT4gKHRoaXMuX25hdmlnYXRpb24gPSBuYXZpZ2F0aW9uUmVmIGFzIEhUTUxEaXZFbGVtZW50KSl9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb25fX2hlYWRlclwiPiR7Y2xvc2VCdXR0b259PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1uYXZpZ2F0aW9uX193cmFwcGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLW5hdmlnYXRpb25fX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8c2xvdCBuYW1lPVwibmF2aWdhdGlvbi1zZWN0aW9uXCI+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLW5hdmlnYXRpb24nOiBTYmJOYXZpZ2F0aW9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQ3NDQSxJQUFNLGdCQUFnQjs7Ozs7Ozs7O0lBVVQsOEJBQW9CO21CQUFTLHdCQUF3Qix3QkFBd0I7Ozs7Ozs7Ozs7Y0FBN0UsNkJBQTZCLFlBQWdEOzs7MEJBV3ZGLGFBQWEsRUFDYixVQUFVLENBQUE7MENBSVYsV0FBVyxF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
@@ -369,4 +369,4 @@ var SbbOptionBaseElement = (() => {
369
369
  //#endregion
370
370
  export { SbbOptionBaseElement };
371
371
 
372
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLWJhc2UtZWxlbWVudC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvb3B0aW9uL29wdGlvbi9vcHRpb24tYmFzZS1lbGVtZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE11dGF0aW9uQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvbXV0YXRpb24tY29udHJvbGxlci5qcyc7XG5pbXBvcnQge1xuICBodG1sLFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5RGVjbGFyYXRpb24sXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7XG4gIGlzQW5kcm9pZCxcbiAgaXNCbGluayxcbiAgaXNTYWZhcmksXG4gIFNiYkRpc2FibGVkTWl4aW4sXG4gIFNiYkVsZW1lbnQsXG4gIHR5cGUgU2JiRWxlbWVudFR5cGUsXG4gIFNiYlNjcmVlblJlYWRlck9ubHlFbGVtZW50LFxuICBzZXRPclJlbW92ZUF0dHJpYnV0ZSxcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJJY29uTmFtZU1peGluIH0gZnJvbSAnLi4vLi4vaWNvbi5wdXJlLnRzJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogT24gU2FmYXJpLCB0aGUgZ3JvdXBzIGxhYmVscyBhcmUgbm90IHJlYWQgYnkgVm9pY2VPdmVyLlxuICogVG8gc29sdmUgdGhlIHByb2JsZW0sIHdlIHJlbW92ZSB0aGUgcm9sZT1cImdyb3VwXCIgYW5kIGFkZCBhbiBoaWRkZW4gc3BhbiBjb250YWluaW5nIHRoZSBncm91cCBuYW1lXG4gKiBUT0RPOiBXZSBzaG91bGQgcGVyaW9kaWNhbGx5IGNoZWNrIGlmIGl0IGhhcyBiZWVuIHNvbHZlZCBhbmQsIGlmIHNvLCByZW1vdmUgdGhlIHByb3BlcnR5LlxuICovXG5jb25zdCBpbmVydEFyaWFHcm91cHMgPSBpc1NhZmFyaTtcblxuLyoqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBhdHRyaWJ1dGUgdG8gbG9vayBhdCBpZiBjb21wb25lbnQgaXMgbmVzdGVkIGluIGFuIG9wdGlvbiBncm91cCAqL1xuY29uc3Qgb3B0aW9uT2JzZXJ2ZXJDb25maWc6IE11dGF0aW9uT2JzZXJ2ZXJJbml0ID0ge1xuICBjaGlsZExpc3Q6IHRydWUsXG4gIHN1YnRyZWU6IHRydWUsXG4gIGNoYXJhY3RlckRhdGE6IHRydWUsXG59O1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiT3B0aW9uQmFzZUVsZW1lbnQ8VCA9IHN0cmluZz4gZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFxuICBTYmJJY29uTmFtZU1peGluKFNiYkVsZW1lbnQpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtTYmJTY3JlZW5SZWFkZXJPbmx5RWxlbWVudF07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIG9wdGlvbnNlbGVjdGVkOiAnb3B0aW9uc2VsZWN0ZWQnLFxuICB9IGFzIGNvbnN0O1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBvcHRpb25JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWYWx1ZSBvZiB0aGUgb3B0aW9uLlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gRGV2ZWxvcGVyIG5vdGU6IEluIHRoaXMgY2FzZSB1cGRhdGluZyB0aGUgYXR0cmlidXRlIG11c3QgYmUgc3luY2hyb25vdXMuXG4gICAqIER1ZSB0byB0aGlzLCBpdCBpcyBpbXBsZW1lbnRlZCBhcyBhIGdldHRlci9zZXR0ZXIgYW5kIHRoZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soKSBoYW5kbGVzIHRoZSBkaWZmIGNoZWNrLlxuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogVCkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBgJHt2YWx1ZX1gKTtcbiAgICAgIHRoaXMuX3ZhbHVlID0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBUIHtcbiAgICByZXR1cm4gKHRoaXMuX3ZhbHVlID8/IHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpKSBhcyBUO1xuICB9XG4gIHByaXZhdGUgX3ZhbHVlOiBUIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZC4gKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ3NlbGVjdGVkJywgdmFsdWUpO1xuICAgIHRoaXMuX3VwZGF0ZUFyaWFTZWxlY3RlZCgpO1xuICB9XG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBtdXN0IGJlIHNldCBkaXNhYmxlZCBkdWUgZGlzYWJsZWQgYXR0cmlidXRlIG9uIHNiYi1vcHRncm91cC4gKi9cbiAgQHN0YXRlKCkgcHJvdGVjdGVkIGFjY2Vzc29yIGRpc2FibGVkRnJvbUdyb3VwID0gZmFsc2U7XG5cbiAgQHN0YXRlKCkgcHJvdGVjdGVkIGFjY2Vzc29yIGdyb3VwTGFiZWwgPSAnJztcblxuICBAc3RhdGUoKSBwcm90ZWN0ZWQgYWNjZXNzb3IgbGFiZWwhOiBzdHJpbmc7XG5cbiAgLyoqIERpc2FibGUgdGhlIGhpZ2hsaWdodCBvZiB0aGUgbGFiZWwuICovXG4gIEBzdGF0ZSgpIHByb3RlY3RlZCBhY2Nlc3NvciBkaXNhYmxlTGFiZWxIaWdobGlnaHQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogVGhlIHBvcnRpb24gb2YgdGhlIGhpZ2hsaWdodGVkIGxhYmVsLiAqL1xuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9oaWdobGlnaHRTdHJpbmc6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2luZXJ0QXJpYUdyb3VwcyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjbGljaycsIChlOiBNb3VzZUV2ZW50KSA9PiB0aGlzLnNlbGVjdEJ5Q2xpY2soZSksIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZENvbnRyb2xsZXIoXG4gICAgICBuZXcgTXV0YXRpb25Db250cm9sbGVyKHRoaXMsIHtcbiAgICAgICAgY29uZmlnOiBvcHRpb25PYnNlcnZlckNvbmZpZyxcbiAgICAgICAgY2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLmhhbmRsZUhpZ2hsaWdodFN0YXRlKCk7XG4gICAgICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ29wdGlvbkxhYmVsQ2hhbmdlZCcsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgaWYgKGluZXJ0QXJpYUdyb3Vwcykge1xuICAgICAgaWYgKHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgICAgdGhpcy5oeWRyYXRpb25Db21wbGV0ZS50aGVuKCgpID0+ICh0aGlzLl9pbmVydEFyaWFHcm91cHMgPSBpbmVydEFyaWFHcm91cHMpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2luZXJ0QXJpYUdyb3VwcyA9IGluZXJ0QXJpYUdyb3VwcztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBvbGQ6IHN0cmluZyB8IG51bGwsXG4gICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICk6IHZvaWQge1xuICAgIGlmIChuYW1lICE9PSAndmFsdWUnIHx8IG9sZCAhPT0gdmFsdWUpIHtcbiAgICAgIHN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhuYW1lLCBvbGQsIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGlnaGxpZ2h0IHRoZSBsYWJlbCBvZiB0aGUgb3B0aW9uXG4gICAqIEBwYXJhbSB2YWx1ZSB0aGUgaGlnaGxpZ2h0ZWQgcG9ydGlvbiBvZiB0aGUgbGFiZWxcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgaGlnaGxpZ2h0KHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9oaWdobGlnaHRTdHJpbmcgPSB2YWx1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RWaWFVc2VySW50ZXJhY3Rpb24oc2VsZWN0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgIC8qKiBFbWl0cyB3aGVuIGFuIG9wdGlvbiB3YXMgc2VsZWN0ZWQgYnkgdXNlci4gKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ29wdGlvbnNlbGVjdGVkJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5pZCB8fD0gYCR7dGhpcy5vcHRpb25JZH0tJHtuZXh0SWQrK31gO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZCB7XG4gICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG4gICAgaWYgKG5hbWUgPT09ICdkaXNhYmxlZCcgfHwgbmFtZSA9PT0gJ2Rpc2FibGVkRnJvbUdyb3VwJykge1xuICAgICAgdGhpcy50b2dnbGVTdGF0ZSgnZGlzYWJsZWQnLCB0aGlzLmRpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWRGcm9tR3JvdXApO1xuICAgICAgc2V0T3JSZW1vdmVBdHRyaWJ1dGUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgICd0YWJpbmRleCcsXG4gICAgICAgIGlzQW5kcm9pZCAmJiAhdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5kaXNhYmxlZEZyb21Hcm91cCA/IDAgOiBudWxsLFxuICAgICAgKTtcbiAgICAgIHRoaXMudXBkYXRlQXJpYURpc2FibGVkKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgLy8gSW5pdCBmaXJzdCBzZWxlY3Qgc3RhdGUgYmVjYXVzZSBmYWxzZSB3b3VsZCBub3QgY2FsbCBzZXR0ZXIgb2Ygc2VsZWN0ZWQgcHJvcGVydHkuXG4gICAgdGhpcy5fdXBkYXRlQXJpYVNlbGVjdGVkKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2VsZWN0QnlDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZURpc2FibGVIaWdobGlnaHQoZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVMYWJlbEhpZ2hsaWdodCA9IGRpc2FibGVkO1xuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ2Rpc2FibGUtaGlnaGxpZ2h0JywgZGlzYWJsZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIG9wdGlvbiBpcyBjdXJyZW50bHkgYWN0aXZlLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzZXRBY3RpdmUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdhY3RpdmUnLCB2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlQXJpYURpc2FibGVkKCk6IHZvaWQge1xuICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFEaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZEZyb21Hcm91cCA/ICd0cnVlJyA6IG51bGw7XG5cbiAgICAvLyBMaXN0ZW5lZCBieSBhdXRvY29tcGxldGVcbiAgICAvKiogQGludGVybmFsICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnybVkaXNhYmxlZGNoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVBcmlhU2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnRlcm5hbHMuYXJpYVNlbGVjdGVkID0gYCR7dGhpcy5zZWxlY3RlZH1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUhpZ2hsaWdodFN0YXRlKCk6IHZvaWQge1xuICAgIGNvbnN0IHNsb3ROb2RlcyA9IEFycmF5LmZyb20odGhpcy5jaGlsZE5vZGVzID8/IFtdKS5maWx0ZXIoXG4gICAgICAobikgPT4gbi5ub2RlVHlwZSAhPT0gTm9kZS5DT01NRU5UX05PREUgJiYgKCEobiBpbnN0YW5jZW9mIEVsZW1lbnQpIHx8IG4uc2xvdCAhPT0gJ2ljb24nKSxcbiAgICApO1xuICAgIGNvbnN0IGxhYmVsTm9kZXMgPSBzbG90Tm9kZXMuZmlsdGVyKChlbCkgPT4gZWwubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSBhcyBUZXh0W107XG5cbiAgICAvLyBEaXNhYmxlIHRoZSBoaWdobGlnaHQgaWYgdGhlIHNsb3QgY29udGFpbiBtb3JlIHRoYW4ganVzdCB0ZXh0IG5vZGVzLlxuICAgIC8vIFdlIG5lZWQgdG8gaWdub3JlIHRlbXBsYXRlIGVsZW1lbnRzLCBhcyBTU1IgYWRkcyBhIGRlY2xhcmF0aXZlIHNoYWRvdyBET01cbiAgICAvLyBpbiB0aGUgZm9ybSBvZiBhIHRlbXBsYXRlIGVsZW1lbnQuXG4gICAgaWYgKFxuICAgICAgbGFiZWxOb2Rlcy5sZW5ndGggPT09IDAgfHxcbiAgICAgIHNsb3ROb2Rlcy5maWx0ZXIoKG4pID0+ICEobiBpbnN0YW5jZW9mIEVsZW1lbnQpIHx8IG4ubG9jYWxOYW1lICE9PSAndGVtcGxhdGUnKS5sZW5ndGggIT09XG4gICAgICAgIGxhYmVsTm9kZXMubGVuZ3RoXG4gICAgKSB7XG4gICAgICB0aGlzLnVwZGF0ZURpc2FibGVIaWdobGlnaHQodHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubGFiZWwgPSBsYWJlbE5vZGVzXG4gICAgICAubWFwKChsKSA9PiBsLndob2xlVGV4dClcbiAgICAgIC5maWx0ZXIoKGwpID0+IGwudHJpbSgpKVxuICAgICAgLmpvaW4oJycpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEhpZ2hsaWdodGVkTGFiZWwoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGlmICghdGhpcy5faGlnaGxpZ2h0U3RyaW5nIHx8ICF0aGlzLl9oaWdobGlnaHRTdHJpbmcudHJpbSgpKSB7XG4gICAgICByZXR1cm4gaHRtbGAke3RoaXMubGFiZWx9YDtcbiAgICB9XG5cbiAgICBjb25zdCBtYXRjaEluZGV4ID0gdGhpcy5sYWJlbCEudG9Mb3dlckNhc2UoKS5pbmRleE9mKHRoaXMuX2hpZ2hsaWdodFN0cmluZy50b0xvd2VyQ2FzZSgpKTtcblxuICAgIGlmIChtYXRjaEluZGV4ID09PSAtMSkge1xuICAgICAgcmV0dXJuIGh0bWxgJHt0aGlzLmxhYmVsfWA7XG4gICAgfVxuXG4gICAgY29uc3QgcHJlZml4ID0gdGhpcy5sYWJlbCEuc3Vic3RyaW5nKDAsIG1hdGNoSW5kZXgpO1xuICAgIGNvbnN0IGhpZ2hsaWdodGVkID0gdGhpcy5sYWJlbCEuc3Vic3RyaW5nKFxuICAgICAgbWF0Y2hJbmRleCxcbiAgICAgIG1hdGNoSW5kZXggKyB0aGlzLl9oaWdobGlnaHRTdHJpbmcubGVuZ3RoLFxuICAgICk7XG4gICAgY29uc3QgcG9zdGZpeCA9IHRoaXMubGFiZWwhLnN1YnN0cmluZyhtYXRjaEluZGV4ICsgdGhpcy5faGlnaGxpZ2h0U3RyaW5nLmxlbmd0aCk7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLW9wdGlvbl9fbGFiZWwtLWhpZ2hsaWdodFwiPiR7cHJlZml4fTwvc3Bhbj48c3Bhbj4ke2hpZ2hsaWdodGVkfTwvc3BhblxuICAgICAgPjxzcGFuIGNsYXNzPVwic2JiLW9wdGlvbl9fbGFiZWwtLWhpZ2hsaWdodFwiPiR7cG9zdGZpeH08L3NwYW4+XG4gICAgYDtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJJY29uKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1vcHRpb25fX2ljb25cIj4gJHt0aGlzLnJlbmRlckljb25TbG90KCl9IDwvc3Bhbj5gO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbmRlckxhYmVsKCk6IFRlbXBsYXRlUmVzdWx0IHwgdHlwZW9mIG5vdGhpbmcge1xuICAgIHJldHVybiB0aGlzLmxhYmVsICYmICF0aGlzLmRpc2FibGVMYWJlbEhpZ2hsaWdodCA/IHRoaXMuZ2V0SGlnaGxpZ2h0ZWRMYWJlbCgpIDogbm90aGluZztcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJUaWNrKCk6IFRlbXBsYXRlUmVzdWx0IHwgdHlwZW9mIG5vdGhpbmcge1xuICAgIHJldHVybiBub3RoaW5nO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLW9wdGlvblwiPlxuICAgICAgICAke3RoaXMucmVuZGVySWNvbigpfVxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1vcHRpb25fX2xhYmVsXCI+XG4gICAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLmhhbmRsZUhpZ2hsaWdodFN0YXRlfT48L3Nsb3Q+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPSR7XG4gICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgKiBTY3JlZW4gcmVhZGVycyB3aXRoIENocm9taXVtIHJlYWQgdGhlIG9wdGlvbiB0d2ljZS5cbiAgICAgICAgICAgICAgICogV2UgdGhlcmVmb3JlIGhhdmUgdG8gaGlkZSB0aGUgb3B0aW9uIGZvciB0aGUgc2NyZWVuIHJlYWRlcnMuXG4gICAgICAgICAgICAgICAqIFRPRE86IFJlY2hlY2sgcGVyaW9kaWNhbGx5IGlmIHRoaXMgaXMgc3RpbGwgbmVjZXNzYXJ5LlxuICAgICAgICAgICAgICAgKiBodHRwczovL2lzc3Vlcy5jaHJvbWl1bS5vcmcvaXNzdWVzLzQ2MDE2NTc0MVxuICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgaXNCbGluayA/ICd0cnVlJyA6IG5vdGhpbmdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICAke3RoaXMucmVuZGVyTGFiZWwoKX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgJHt0aGlzLl9pbmVydEFyaWFHcm91cHMgJiYgdGhpcy5ncm91cExhYmVsXG4gICAgICAgICAgICA/IGh0bWxgPHNiYi1zY3JlZW4tcmVhZGVyLW9ubHk+ICgke3RoaXMuZ3JvdXBMYWJlbH0pPC9zYmItc2NyZWVuLXJlYWRlci1vbmx5PmBcbiAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICAke3RoaXMucmVuZGVyVGljaygpfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBHbG9iYWxFdmVudEhhbmRsZXJzRXZlbnRNYXAge1xuICAgIG9wdGlvbnNlbGVjdGVkOiBFdmVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBc0JBLElBQUksU0FBUzs7Ozs7O0FBT2IsSUFBTSxrQkFBa0I7O0FBR3hCLElBQU0sdUJBQTZDO0NBQ2pELFdBQVc7Q0FDWCxTQUFTO0NBQ1QsZUFBZTtDQUNoQjtJQUVxQiw4QkFBb0I7bUJBQXFCLGlCQUM3RCxpQkFBaUIsV0FBVyxDQUM3Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztjQUZxQiw2QkFBeUMsWUFFOUQ7Ozs0QkFjRSxVQUFVLENBQUE7K0JBZVYsU0FBUyxFQUFFLE1BQU0sU0FBUyxDQUFDLENBQUE7b0NBVTNCLE9BQU8sQ0FBQTs2QkFFUCxPQUFPLENBQUE7d0JBRVAsT0FBTyxDQUFBO3dDQUdQLE9BQU8sQ0FBQTttQ0FHUCxPQUFPLENBQUE7bUNBRVAsT0FBTyxDQUFBO0FBcENSLGdCQUFBLE1BQUEsTUFBQSx1QkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLFdBQUE7S0FBQSxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVcsUUFBSzs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLE1BQUEsMkJBQUE7QUFlaEIsZ0JBQUEsTUFBQSxNQUFBLDBCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsY0FBQTtLQUFB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
372
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLWJhc2UtZWxlbWVudC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvb3B0aW9uL29wdGlvbi9vcHRpb24tYmFzZS1lbGVtZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE11dGF0aW9uQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvbXV0YXRpb24tY29udHJvbGxlci5qcyc7XG5pbXBvcnQge1xuICBodG1sLFxuICBub3RoaW5nLFxuICB0eXBlIFByb3BlcnR5RGVjbGFyYXRpb24sXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7XG4gIGlzQW5kcm9pZCxcbiAgaXNCbGluayxcbiAgaXNTYWZhcmksXG4gIFNiYkRpc2FibGVkTWl4aW4sXG4gIFNiYkVsZW1lbnQsXG4gIHR5cGUgU2JiRWxlbWVudFR5cGUsXG4gIFNiYlNjcmVlblJlYWRlck9ubHlFbGVtZW50LFxuICBzZXRPclJlbW92ZUF0dHJpYnV0ZSxcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJJY29uTmFtZU1peGluIH0gZnJvbSAnLi4vLi4vaWNvbi5wdXJlLnRzJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogT24gU2FmYXJpLCB0aGUgZ3JvdXBzIGxhYmVscyBhcmUgbm90IHJlYWQgYnkgVm9pY2VPdmVyLlxuICogVG8gc29sdmUgdGhlIHByb2JsZW0sIHdlIHJlbW92ZSB0aGUgcm9sZT1cImdyb3VwXCIgYW5kIGFkZCBhbiBoaWRkZW4gc3BhbiBjb250YWluaW5nIHRoZSBncm91cCBuYW1lXG4gKiBUT0RPOiBXZSBzaG91bGQgcGVyaW9kaWNhbGx5IGNoZWNrIGlmIGl0IGhhcyBiZWVuIHNvbHZlZCBhbmQsIGlmIHNvLCByZW1vdmUgdGhlIHByb3BlcnR5LlxuICovXG5jb25zdCBpbmVydEFyaWFHcm91cHMgPSBpc1NhZmFyaTtcblxuLyoqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBhdHRyaWJ1dGUgdG8gbG9vayBhdCBpZiBjb21wb25lbnQgaXMgbmVzdGVkIGluIGFuIG9wdGlvbiBncm91cCAqL1xuY29uc3Qgb3B0aW9uT2JzZXJ2ZXJDb25maWc6IE11dGF0aW9uT2JzZXJ2ZXJJbml0ID0ge1xuICBjaGlsZExpc3Q6IHRydWUsXG4gIHN1YnRyZWU6IHRydWUsXG4gIGNoYXJhY3RlckRhdGE6IHRydWUsXG59O1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiT3B0aW9uQmFzZUVsZW1lbnQ8VCA9IHN0cmluZz4gZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFxuICBTYmJJY29uTmFtZU1peGluKFNiYkVsZW1lbnQpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtTYmJTY3JlZW5SZWFkZXJPbmx5RWxlbWVudF07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIG9wdGlvbnNlbGVjdGVkOiAnb3B0aW9uc2VsZWN0ZWQnLFxuICB9IGFzIGNvbnN0O1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBvcHRpb25JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWYWx1ZSBvZiB0aGUgb3B0aW9uLlxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gRGV2ZWxvcGVyIG5vdGU6IEluIHRoaXMgY2FzZSB1cGRhdGluZyB0aGUgYXR0cmlidXRlIG11c3QgYmUgc3luY2hyb25vdXMuXG4gICAqIER1ZSB0byB0aGlzLCBpdCBpcyBpbXBsZW1lbnRlZCBhcyBhIGdldHRlci9zZXR0ZXIgYW5kIHRoZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2soKSBoYW5kbGVzIHRoZSBkaWZmIGNoZWNrLlxuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogVCkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBgJHt2YWx1ZX1gKTtcbiAgICAgIHRoaXMuX3ZhbHVlID0gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBUIHtcbiAgICByZXR1cm4gKHRoaXMuX3ZhbHVlID8/IHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpKSBhcyBUO1xuICB9XG4gIHByaXZhdGUgX3ZhbHVlOiBUIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZC4gKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ3NlbGVjdGVkJywgdmFsdWUpO1xuICAgIHRoaXMuX3VwZGF0ZUFyaWFTZWxlY3RlZCgpO1xuICB9XG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzQXR0cmlidXRlKCdzZWxlY3RlZCcpO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBtdXN0IGJlIHNldCBkaXNhYmxlZCBkdWUgZGlzYWJsZWQgYXR0cmlidXRlIG9uIHNiYi1vcHRncm91cC4gKi9cbiAgQHN0YXRlKCkgcHJvdGVjdGVkIGFjY2Vzc29yIGRpc2FibGVkRnJvbUdyb3VwID0gZmFsc2U7XG5cbiAgQHN0YXRlKCkgcHJvdGVjdGVkIGFjY2Vzc29yIGdyb3VwTGFiZWwgPSAnJztcblxuICBAc3RhdGUoKSBwcm90ZWN0ZWQgYWNjZXNzb3IgbGFiZWwhOiBzdHJpbmc7XG5cbiAgLyoqIERpc2FibGUgdGhlIGhpZ2hsaWdodCBvZiB0aGUgbGFiZWwuICovXG4gIEBzdGF0ZSgpIHByb3RlY3RlZCBhY2Nlc3NvciBkaXNhYmxlTGFiZWxIaWdobGlnaHQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogVGhlIHBvcnRpb24gb2YgdGhlIGhpZ2hsaWdodGVkIGxhYmVsLiAqL1xuICBAc3RhdGUoKSBwcml2YXRlIGFjY2Vzc29yIF9oaWdobGlnaHRTdHJpbmc6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIEBzdGF0ZSgpIHByaXZhdGUgYWNjZXNzb3IgX2luZXJ0QXJpYUdyb3VwcyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjbGljaycsIChlOiBNb3VzZUV2ZW50KSA9PiB0aGlzLnNlbGVjdEJ5Q2xpY2soZSksIHtcbiAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZENvbnRyb2xsZXIoXG4gICAgICBuZXcgTXV0YXRpb25Db250cm9sbGVyKHRoaXMsIHtcbiAgICAgICAgY29uZmlnOiBvcHRpb25PYnNlcnZlckNvbmZpZyxcbiAgICAgICAgY2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLmhhbmRsZUhpZ2hsaWdodFN0YXRlKCk7XG4gICAgICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ29wdGlvbkxhYmVsQ2hhbmdlZCcsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgaWYgKGluZXJ0QXJpYUdyb3Vwcykge1xuICAgICAgaWYgKHRoaXMuaHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgICAgdGhpcy5oeWRyYXRpb25Db21wbGV0ZS50aGVuKCgpID0+ICh0aGlzLl9pbmVydEFyaWFHcm91cHMgPSBpbmVydEFyaWFHcm91cHMpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2luZXJ0QXJpYUdyb3VwcyA9IGluZXJ0QXJpYUdyb3VwcztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBvbGQ6IHN0cmluZyB8IG51bGwsXG4gICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICk6IHZvaWQge1xuICAgIGlmIChuYW1lICE9PSAndmFsdWUnIHx8IG9sZCAhPT0gdmFsdWUpIHtcbiAgICAgIHN1cGVyLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayhuYW1lLCBvbGQsIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGlnaGxpZ2h0IHRoZSBsYWJlbCBvZiB0aGUgb3B0aW9uXG4gICAqIEBwYXJhbSB2YWx1ZSB0aGUgaGlnaGxpZ2h0ZWQgcG9ydGlvbiBvZiB0aGUgbGFiZWxcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgaGlnaGxpZ2h0KHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9oaWdobGlnaHRTdHJpbmcgPSB2YWx1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RWaWFVc2VySW50ZXJhY3Rpb24oc2VsZWN0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgIC8qKiBFbWl0cyB3aGVuIGFuIG9wdGlvbiB3YXMgc2VsZWN0ZWQgYnkgdXNlci4gKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ29wdGlvbnNlbGVjdGVkJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5pZCB8fD0gYCR7dGhpcy5vcHRpb25JZH0tJHtuZXh0SWQrK31gO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgbmFtZT86IFByb3BlcnR5S2V5LFxuICAgIG9sZFZhbHVlPzogdW5rbm93bixcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZCB7XG4gICAgc3VwZXIucmVxdWVzdFVwZGF0ZShuYW1lLCBvbGRWYWx1ZSwgb3B0aW9ucyk7XG4gICAgaWYgKG5hbWUgPT09ICdkaXNhYmxlZCcgfHwgbmFtZSA9PT0gJ2Rpc2FibGVkRnJvbUdyb3VwJykge1xuICAgICAgdGhpcy50b2dnbGVTdGF0ZSgnZGlzYWJsZWQnLCB0aGlzLmRpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWRGcm9tR3JvdXApO1xuICAgICAgc2V0T3JSZW1vdmVBdHRyaWJ1dGUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgICd0YWJpbmRleCcsXG4gICAgICAgIGlzQW5kcm9pZCAmJiAhdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5kaXNhYmxlZEZyb21Hcm91cCA/IDAgOiBudWxsLFxuICAgICAgKTtcbiAgICAgIHRoaXMudXBkYXRlQXJpYURpc2FibGVkKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgLy8gSW5pdCBmaXJzdCBzZWxlY3Qgc3RhdGUgYmVjYXVzZSBmYWxzZSB3b3VsZCBub3QgY2FsbCBzZXR0ZXIgb2Ygc2VsZWN0ZWQgcHJvcGVydHkuXG4gICAgdGhpcy5fdXBkYXRlQXJpYVNlbGVjdGVkKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2VsZWN0QnlDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZURpc2FibGVIaWdobGlnaHQoZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVMYWJlbEhpZ2hsaWdodCA9IGRpc2FibGVkO1xuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ2Rpc2FibGUtaGlnaGxpZ2h0JywgZGlzYWJsZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIG9wdGlvbiBpcyBjdXJyZW50bHkgYWN0aXZlLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzZXRBY3RpdmUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdhY3RpdmUnLCB2YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlQXJpYURpc2FibGVkKCk6IHZvaWQge1xuICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFEaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZEZyb21Hcm91cCA/ICd0cnVlJyA6IG51bGw7XG5cbiAgICAvLyBMaXN0ZW5lZCBieSBhdXRvY29tcGxldGVcbiAgICAvKiogQGludGVybmFsICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnybVkaXNhYmxlZGNoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVBcmlhU2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnRlcm5hbHMuYXJpYVNlbGVjdGVkID0gYCR7dGhpcy5zZWxlY3RlZH1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUhpZ2hsaWdodFN0YXRlKCk6IHZvaWQge1xuICAgIGNvbnN0IHNsb3ROb2RlcyA9IEFycmF5LmZyb20odGhpcy5jaGlsZE5vZGVzID8/IFtdKS5maWx0ZXIoXG4gICAgICAobikgPT4gbi5ub2RlVHlwZSAhPT0gTm9kZS5DT01NRU5UX05PREUgJiYgKCEobiBpbnN0YW5jZW9mIEVsZW1lbnQpIHx8IG4uc2xvdCAhPT0gJ2ljb24nKSxcbiAgICApO1xuICAgIGNvbnN0IGxhYmVsTm9kZXMgPSBzbG90Tm9kZXMuZmlsdGVyKChlbCkgPT4gZWwubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSBhcyBUZXh0W107XG5cbiAgICAvLyBEaXNhYmxlIHRoZSBoaWdobGlnaHQgaWYgdGhlIHNsb3QgY29udGFpbiBtb3JlIHRoYW4ganVzdCB0ZXh0IG5vZGVzLlxuICAgIC8vIFdlIG5lZWQgdG8gaWdub3JlIHRlbXBsYXRlIGVsZW1lbnRzLCBhcyBTU1IgYWRkcyBhIGRlY2xhcmF0aXZlIHNoYWRvdyBET01cbiAgICAvLyBpbiB0aGUgZm9ybSBvZiBhIHRlbXBsYXRlIGVsZW1lbnQuXG4gICAgaWYgKFxuICAgICAgbGFiZWxOb2Rlcy5sZW5ndGggPT09IDAgfHxcbiAgICAgIHNsb3ROb2Rlcy5maWx0ZXIoKG4pID0+ICEobiBpbnN0YW5jZW9mIEVsZW1lbnQpIHx8IG4ubG9jYWxOYW1lICE9PSAndGVtcGxhdGUnKS5sZW5ndGggIT09XG4gICAgICAgIGxhYmVsTm9kZXMubGVuZ3RoXG4gICAgKSB7XG4gICAgICB0aGlzLnVwZGF0ZURpc2FibGVIaWdobGlnaHQodHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubGFiZWwgPSBsYWJlbE5vZGVzXG4gICAgICAubWFwKChsKSA9PiBsLndob2xlVGV4dClcbiAgICAgIC5maWx0ZXIoKGwpID0+IGwudHJpbSgpKVxuICAgICAgLmpvaW4oJycpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEhpZ2hsaWdodGVkTGFiZWwoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGlmICghdGhpcy5faGlnaGxpZ2h0U3RyaW5nIHx8ICF0aGlzLl9oaWdobGlnaHRTdHJpbmcudHJpbSgpKSB7XG4gICAgICByZXR1cm4gaHRtbGAke3RoaXMubGFiZWx9YDtcbiAgICB9XG5cbiAgICBjb25zdCBtYXRjaEluZGV4ID0gdGhpcy5sYWJlbCEudG9Mb3dlckNhc2UoKS5pbmRleE9mKHRoaXMuX2hpZ2hsaWdodFN0cmluZy50b0xvd2VyQ2FzZSgpKTtcblxuICAgIGlmIChtYXRjaEluZGV4ID09PSAtMSkge1xuICAgICAgcmV0dXJuIGh0bWxgJHt0aGlzLmxhYmVsfWA7XG4gICAgfVxuXG4gICAgY29uc3QgcHJlZml4ID0gdGhpcy5sYWJlbCEuc3Vic3RyaW5nKDAsIG1hdGNoSW5kZXgpO1xuICAgIGNvbnN0IGhpZ2hsaWdodGVkID0gdGhpcy5sYWJlbCEuc3Vic3RyaW5nKFxuICAgICAgbWF0Y2hJbmRleCxcbiAgICAgIG1hdGNoSW5kZXggKyB0aGlzLl9oaWdobGlnaHRTdHJpbmcubGVuZ3RoLFxuICAgICk7XG4gICAgY29uc3QgcG9zdGZpeCA9IHRoaXMubGFiZWwhLnN1YnN0cmluZyhtYXRjaEluZGV4ICsgdGhpcy5faGlnaGxpZ2h0U3RyaW5nLmxlbmd0aCk7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLW9wdGlvbl9fbGFiZWwtLWhpZ2hsaWdodFwiPiR7cHJlZml4fTwvc3Bhbj48c3Bhbj4ke2hpZ2hsaWdodGVkfTwvc3BhblxuICAgICAgPjxzcGFuIGNsYXNzPVwic2JiLW9wdGlvbl9fbGFiZWwtLWhpZ2hsaWdodFwiPiR7cG9zdGZpeH08L3NwYW4+XG4gICAgYDtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJJY29uKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1vcHRpb25fX2ljb25cIj4gJHt0aGlzLnJlbmRlckljb25TbG90KCl9IDwvc3Bhbj5gO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbmRlckxhYmVsKCk6IFRlbXBsYXRlUmVzdWx0IHwgdHlwZW9mIG5vdGhpbmcge1xuICAgIHJldHVybiB0aGlzLmxhYmVsICYmICF0aGlzLmRpc2FibGVMYWJlbEhpZ2hsaWdodCA/IHRoaXMuZ2V0SGlnaGxpZ2h0ZWRMYWJlbCgpIDogbm90aGluZztcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJUaWNrKCk6IFRlbXBsYXRlUmVzdWx0IHwgdHlwZW9mIG5vdGhpbmcge1xuICAgIHJldHVybiBub3RoaW5nO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLW9wdGlvblwiPlxuICAgICAgICAke3RoaXMucmVuZGVySWNvbigpfVxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1vcHRpb25fX2xhYmVsXCI+XG4gICAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLmhhbmRsZUhpZ2hsaWdodFN0YXRlfT48L3Nsb3Q+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPSR7XG4gICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgKiBTY3JlZW4gcmVhZGVycyB3aXRoIENocm9taXVtIHJlYWQgdGhlIG9wdGlvbiB0d2ljZS5cbiAgICAgICAgICAgICAgICogV2UgdGhlcmVmb3JlIGhhdmUgdG8gaGlkZSB0aGUgb3B0aW9uIGZvciB0aGUgc2NyZWVuIHJlYWRlcnMuXG4gICAgICAgICAgICAgICAqIFRPRE86IFJlY2hlY2sgcGVyaW9kaWNhbGx5IGlmIHRoaXMgaXMgc3RpbGwgbmVjZXNzYXJ5LlxuICAgICAgICAgICAgICAgKiBodHRwczovL2lzc3Vlcy5jaHJvbWl1bS5vcmcvaXNzdWVzLzQ2MDE2NTc0MVxuICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgaXNCbGluayA/ICd0cnVlJyA6IG5vdGhpbmdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICAke3RoaXMucmVuZGVyTGFiZWwoKX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgJHt0aGlzLl9pbmVydEFyaWFHcm91cHMgJiYgdGhpcy5ncm91cExhYmVsXG4gICAgICAgICAgICA/IGh0bWxgPHNiYi1zY3JlZW4tcmVhZGVyLW9ubHk+ICgke3RoaXMuZ3JvdXBMYWJlbH0pPC9zYmItc2NyZWVuLXJlYWRlci1vbmx5PmBcbiAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICAke3RoaXMucmVuZGVyVGljaygpfVxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBHbG9iYWxFdmVudEhhbmRsZXJzRXZlbnRNYXAge1xuICAgIG9wdGlvbnNlbGVjdGVkOiBFdmVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBc0JBLElBQUksU0FBUzs7Ozs7O0FBT2IsSUFBTSxrQkFBa0I7O0FBR3hCLElBQU0sdUJBQTZDO0NBQ2pELFdBQVc7Q0FDWCxTQUFTO0NBQ1QsZUFBZTtDQUNoQjtJQUVxQiw4QkFBb0I7bUJBQXFCLGlCQUM3RCxpQkFBaUIsV0FBVyxDQUM3Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztjQUZxQiw2QkFBeUMsWUFFOUQ7Ozs0QkFjRSxVQUFVLENBQUE7K0JBZVYsU0FBUyxFQUFFLE1BQU0sU0FBUyxDQUFDLENBQUE7b0NBVTNCLE9BQU8sQ0FBQTs2QkFFUCxPQUFPLENBQUE7d0JBRVAsT0FBTyxDQUFBO3dDQUdQLE9BQU8sQ0FBQTttQ0FHUCxPQUFPLENBQUE7bUNBRVAsT0FBTyxDQUFBO0FBcENSLGdCQUFBLE1BQUEsTUFBQSx1QkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLFdBQUE7S0FBQSxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVcsUUFBSzs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLE1BQUEsMkJBQUE7QUFlaEIsZ0JBQUEsTUFBQSxNQUFBLDBCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsY0FBQTtLQUFB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