@eui/components 17.0.0-next.5 → 17.0.0-next.7

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 (149) hide show
  1. package/esm2022/eui-autocomplete/eui-autocomplete.component.mjs +5 -6
  2. package/esm2022/eui-buttons/eui-buttons.component.mjs +3 -3
  3. package/esm2022/eui-datepicker/eui-datepicker.component.mjs +6 -6
  4. package/esm2022/eui-dimmer/dimmer.component.mjs +3 -3
  5. package/esm2022/eui-disable-content/eui-disable-content.component.mjs +2 -2
  6. package/esm2022/eui-dropdown/eui-dropdown.component.mjs +9 -4
  7. package/esm2022/eui-growl/eui-growl.component.mjs +1 -1
  8. package/esm2022/eui-growl/index.mjs +1 -3
  9. package/esm2022/eui-overlay/components/eui-overlay-body/eui-overlay-body.component.mjs +2 -2
  10. package/esm2022/eui-overlay/components/eui-overlay-footer/eui-overlay-footer.component.mjs +2 -2
  11. package/esm2022/eui-overlay/components/eui-overlay-header/eui-overlay-header-title/eui-overlay-header-title.component.mjs +3 -3
  12. package/esm2022/eui-overlay/components/eui-overlay-header/eui-overlay-header.component.mjs +2 -2
  13. package/esm2022/eui-overlay/eui-overlay.component.mjs +9 -6
  14. package/esm2022/eui-page/components/eui-page-column/eui-page-column.component.mjs +3 -3
  15. package/esm2022/eui-page/components/eui-page-header/eui-page-header.component.mjs +7 -3
  16. package/esm2022/eui-paginator/eui-paginator.component.mjs +7 -7
  17. package/esm2022/eui-timebar/eui-timebar.component.mjs +3 -3
  18. package/esm2022/layout/eui-app/eui-app-breadcrumb/breadcrumb.component.mjs +3 -3
  19. package/esm2022/layout/eui-app/eui-app-header/header.component.mjs +3 -3
  20. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-footer/sidebar-footer.component.mjs +3 -3
  21. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-header/sidebar-header.component.mjs +3 -3
  22. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-header-user-profile/sidebar-header-user-profile.component.mjs +3 -3
  23. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.mjs +3 -3
  24. package/esm2022/layout/eui-app/eui-app-sidebar/sidebar.component.mjs +3 -3
  25. package/esm2022/layout/eui-app/eui-app-toolbar/toolbar.component.mjs +3 -3
  26. package/esm2022/layout/eui-app/eui-app-top-message/top-message.component.mjs +3 -3
  27. package/esm2022/layout/eui-app/eui-app.component.mjs +15 -14
  28. package/esm2022/layout/eui-breadcrumb/breadcrumb.component.mjs +3 -3
  29. package/esm2022/layout/eui-header/header-app/header-app.component.mjs +3 -3
  30. package/esm2022/layout/eui-header/header-app-name/header-app-name.component.mjs +3 -3
  31. package/esm2022/layout/eui-header/header-app-subtitle/header-app-subtitle.component.mjs +3 -3
  32. package/esm2022/layout/eui-header/header-environment/header-environment.component.mjs +3 -3
  33. package/esm2022/layout/eui-header/header-logo/header-logo.component.mjs +3 -3
  34. package/esm2022/layout/eui-language-selector/language-selector.component.mjs +3 -3
  35. package/esm2022/layout/eui-notifications-v2/eui-notification-item.component.mjs +3 -3
  36. package/esm2022/layout/eui-notifications-v2/eui-notifications.component.mjs +3 -3
  37. package/esm2022/layout/eui-sidebar-toggle/sidebar-toggle.component.mjs +3 -3
  38. package/esm2022/layout/eui-toolbar/toolbar-item-user-profile/toolbar-item-user-profile.component.mjs +19 -4
  39. package/esm2022/layout/eui-toolbar/toolbar-menu/toolbar-menu.component.mjs +3 -3
  40. package/esm2022/layout/eui-toolbar/toolbar.component.mjs +3 -3
  41. package/esm2022/layout/eui-user-profile/user-profile-card/user-profile-card.component.mjs +11 -5
  42. package/esm2022/layout/eui-user-profile/user-profile.component.mjs +12 -6
  43. package/esm2022/shared/eui-common-header/common-header.component.mjs +12 -6
  44. package/eui-autocomplete/eui-autocomplete.component.d.ts +2 -3
  45. package/eui-autocomplete/eui-autocomplete.component.d.ts.map +1 -1
  46. package/eui-buttons/eui-buttons.component.d.ts +3 -3
  47. package/eui-buttons/eui-buttons.component.d.ts.map +1 -1
  48. package/eui-datepicker/eui-datepicker.component.d.ts +3 -3
  49. package/eui-datepicker/eui-datepicker.component.d.ts.map +1 -1
  50. package/eui-dimmer/dimmer.component.d.ts +3 -3
  51. package/eui-dimmer/dimmer.component.d.ts.map +1 -1
  52. package/eui-disable-content/eui-disable-content.component.d.ts +1 -1
  53. package/eui-disable-content/eui-disable-content.component.d.ts.map +1 -1
  54. package/eui-dropdown/eui-dropdown.component.d.ts.map +1 -1
  55. package/eui-growl/eui-growl.component.d.ts +1 -1
  56. package/eui-growl/eui-growl.component.d.ts.map +1 -1
  57. package/eui-growl/index.d.ts +0 -2
  58. package/eui-growl/index.d.ts.map +1 -1
  59. package/eui-overlay/eui-overlay.component.d.ts +3 -1
  60. package/eui-overlay/eui-overlay.component.d.ts.map +1 -1
  61. package/eui-page/components/eui-page-column/eui-page-column.component.d.ts +3 -3
  62. package/eui-page/components/eui-page-column/eui-page-column.component.d.ts.map +1 -1
  63. package/eui-page/components/eui-page-header/eui-page-header.component.d.ts +3 -1
  64. package/eui-page/components/eui-page-header/eui-page-header.component.d.ts.map +1 -1
  65. package/eui-paginator/eui-paginator.component.d.ts +3 -3
  66. package/eui-paginator/eui-paginator.component.d.ts.map +1 -1
  67. package/eui-timebar/eui-timebar.component.d.ts +2 -2
  68. package/eui-timebar/eui-timebar.component.d.ts.map +1 -1
  69. package/fesm2022/eui-components-eui-autocomplete.mjs +4 -5
  70. package/fesm2022/eui-components-eui-autocomplete.mjs.map +1 -1
  71. package/fesm2022/eui-components-eui-buttons.mjs +2 -2
  72. package/fesm2022/eui-components-eui-buttons.mjs.map +1 -1
  73. package/fesm2022/eui-components-eui-datepicker.mjs +5 -5
  74. package/fesm2022/eui-components-eui-datepicker.mjs.map +1 -1
  75. package/fesm2022/eui-components-eui-dimmer.mjs +2 -2
  76. package/fesm2022/eui-components-eui-dimmer.mjs.map +1 -1
  77. package/fesm2022/eui-components-eui-disable-content.mjs +1 -1
  78. package/fesm2022/eui-components-eui-disable-content.mjs.map +1 -1
  79. package/fesm2022/eui-components-eui-dropdown.mjs +8 -3
  80. package/fesm2022/eui-components-eui-dropdown.mjs.map +1 -1
  81. package/fesm2022/eui-components-eui-growl.mjs +2 -79
  82. package/fesm2022/eui-components-eui-growl.mjs.map +1 -1
  83. package/fesm2022/eui-components-eui-overlay.mjs +16 -13
  84. package/fesm2022/eui-components-eui-overlay.mjs.map +1 -1
  85. package/fesm2022/eui-components-eui-page.mjs +8 -4
  86. package/fesm2022/eui-components-eui-page.mjs.map +1 -1
  87. package/fesm2022/eui-components-eui-paginator.mjs +6 -6
  88. package/fesm2022/eui-components-eui-paginator.mjs.map +1 -1
  89. package/fesm2022/eui-components-eui-timebar.mjs +2 -2
  90. package/fesm2022/eui-components-eui-timebar.mjs.map +1 -1
  91. package/fesm2022/eui-components-layout.mjs +88 -60
  92. package/fesm2022/eui-components-layout.mjs.map +1 -1
  93. package/fesm2022/eui-components-shared.mjs +11 -5
  94. package/fesm2022/eui-components-shared.mjs.map +1 -1
  95. package/layout/eui-app/eui-app-breadcrumb/breadcrumb.component.d.ts +2 -2
  96. package/layout/eui-app/eui-app-breadcrumb/breadcrumb.component.d.ts.map +1 -1
  97. package/layout/eui-app/eui-app-header/header.component.d.ts +3 -3
  98. package/layout/eui-app/eui-app-header/header.component.d.ts.map +1 -1
  99. package/layout/eui-app/eui-app-sidebar/sidebar-footer/sidebar-footer.component.d.ts +2 -2
  100. package/layout/eui-app/eui-app-sidebar/sidebar-footer/sidebar-footer.component.d.ts.map +1 -1
  101. package/layout/eui-app/eui-app-sidebar/sidebar-header/sidebar-header.component.d.ts +2 -2
  102. package/layout/eui-app/eui-app-sidebar/sidebar-header/sidebar-header.component.d.ts.map +1 -1
  103. package/layout/eui-app/eui-app-sidebar/sidebar-header-user-profile/sidebar-header-user-profile.component.d.ts +3 -3
  104. package/layout/eui-app/eui-app-sidebar/sidebar-header-user-profile/sidebar-header-user-profile.component.d.ts.map +1 -1
  105. package/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.d.ts +3 -3
  106. package/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.d.ts.map +1 -1
  107. package/layout/eui-app/eui-app-sidebar/sidebar.component.d.ts +3 -3
  108. package/layout/eui-app/eui-app-sidebar/sidebar.component.d.ts.map +1 -1
  109. package/layout/eui-app/eui-app-toolbar/toolbar.component.d.ts +3 -3
  110. package/layout/eui-app/eui-app-toolbar/toolbar.component.d.ts.map +1 -1
  111. package/layout/eui-app/eui-app-top-message/top-message.component.d.ts +3 -3
  112. package/layout/eui-app/eui-app-top-message/top-message.component.d.ts.map +1 -1
  113. package/layout/eui-app/eui-app.component.d.ts +4 -4
  114. package/layout/eui-app/eui-app.component.d.ts.map +1 -1
  115. package/layout/eui-breadcrumb/breadcrumb.component.d.ts +2 -2
  116. package/layout/eui-breadcrumb/breadcrumb.component.d.ts.map +1 -1
  117. package/layout/eui-header/header-app/header-app.component.d.ts +3 -3
  118. package/layout/eui-header/header-app/header-app.component.d.ts.map +1 -1
  119. package/layout/eui-header/header-app-name/header-app-name.component.d.ts +3 -3
  120. package/layout/eui-header/header-app-name/header-app-name.component.d.ts.map +1 -1
  121. package/layout/eui-header/header-app-subtitle/header-app-subtitle.component.d.ts +3 -3
  122. package/layout/eui-header/header-app-subtitle/header-app-subtitle.component.d.ts.map +1 -1
  123. package/layout/eui-header/header-environment/header-environment.component.d.ts +2 -2
  124. package/layout/eui-header/header-environment/header-environment.component.d.ts.map +1 -1
  125. package/layout/eui-header/header-logo/header-logo.component.d.ts +2 -2
  126. package/layout/eui-header/header-logo/header-logo.component.d.ts.map +1 -1
  127. package/layout/eui-language-selector/language-selector.component.d.ts +3 -3
  128. package/layout/eui-language-selector/language-selector.component.d.ts.map +1 -1
  129. package/layout/eui-sidebar-toggle/sidebar-toggle.component.d.ts +3 -3
  130. package/layout/eui-sidebar-toggle/sidebar-toggle.component.d.ts.map +1 -1
  131. package/layout/eui-toolbar/toolbar-item-user-profile/toolbar-item-user-profile.component.d.ts +7 -2
  132. package/layout/eui-toolbar/toolbar-item-user-profile/toolbar-item-user-profile.component.d.ts.map +1 -1
  133. package/layout/eui-toolbar/toolbar-menu/toolbar-menu.component.d.ts +3 -3
  134. package/layout/eui-toolbar/toolbar-menu/toolbar-menu.component.d.ts.map +1 -1
  135. package/layout/eui-toolbar/toolbar.component.d.ts +3 -3
  136. package/layout/eui-toolbar/toolbar.component.d.ts.map +1 -1
  137. package/layout/eui-user-profile/user-profile-card/user-profile-card.component.d.ts +6 -4
  138. package/layout/eui-user-profile/user-profile-card/user-profile-card.component.d.ts.map +1 -1
  139. package/layout/eui-user-profile/user-profile.component.d.ts +6 -3
  140. package/layout/eui-user-profile/user-profile.component.d.ts.map +1 -1
  141. package/package.json +7 -7
  142. package/shared/eui-common-header/common-header.component.d.ts +5 -2
  143. package/shared/eui-common-header/common-header.component.d.ts.map +1 -1
  144. package/esm2022/eui-growl/models/eui-growl-message.model.mjs +0 -2
  145. package/esm2022/eui-growl/services/eui-growl.service.mjs +0 -79
  146. package/eui-growl/models/eui-growl-message.model.d.ts +0 -9
  147. package/eui-growl/models/eui-growl-message.model.d.ts.map +0 -1
  148. package/eui-growl/services/eui-growl.service.d.ts +0 -22
  149. package/eui-growl/services/eui-growl.service.d.ts.map +0 -1
@@ -30,8 +30,8 @@ export class EuiPaginatorComponent {
30
30
  set hasDynamicLength(value) {
31
31
  this._hasDynamicLength = coerceBooleanProperty(value);
32
32
  }
33
- constructor(uxAppShellService, decimal) {
34
- this.uxAppShellService = uxAppShellService;
33
+ constructor(EuiAppShellService, decimal) {
34
+ this.EuiAppShellService = EuiAppShellService;
35
35
  this.decimal = decimal;
36
36
  this.e2eAttr = 'eui-paginator';
37
37
  this.string = 'eui-paginator';
@@ -178,13 +178,13 @@ export class EuiPaginatorComponent {
178
178
  this.goToPage(page);
179
179
  });
180
180
  }
181
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiPaginatorComponent, deps: [{ token: i1.UxAppShellService }, { token: i2.DecimalPipe }], target: i0.ɵɵFactoryTarget.Component }); }
182
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.4", type: EuiPaginatorComponent, selector: "eui-paginator", inputs: { e2eAttr: "e2eAttr", pageSizeOptions: "pageSizeOptions", pageSize: "pageSize", page: "page", length: "length", nbPageNumberNavigation: "nbPageNumberNavigation", isHidden: "isHidden", hasPageNumberNavigation: "hasPageNumberNavigation", hasDynamicLength: "hasDynamicLength" }, outputs: { pageChange: "pageChange" }, host: { properties: { "attr.data-e2e": "this.e2eAttr", "class": "this.string" } }, providers: [DecimalPipe], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"!isHidden && !(uxAppShellService.breakpoints$ | async).isMobile\" class=\"eui-paginator__page\">\n <div class=\"eui-paginator__page-selector\">\n {{ 'eui.euitable.ITEMS-PER-PAGE' | translate }}:\n <eui-dropdown>\n <button type=\"button\" euiButton euiBasicButton euiSizeS>\n <span euiLabel\n ><strong>{{ pageSize | number }}</strong></span\n >\n <eui-icon-svg\n icon=\"eui-caret-down\"\n fillColor=\"primary\"\n size=\"s\"\n aria-label=\"Select Items per page\"\n class=\"eui-u-ml-2xs\"></eui-icon-svg>\n </button>\n <eui-dropdown-content>\n <div>\n <button\n type=\"button\"\n euiDropdownItem\n euiSizeS\n *ngFor=\"let pageSizeOption of pageSizeOptions\"\n (click)=\"changePageSize(pageSizeOption)\">\n {{ pageSizeOption }}\n </button>\n </div>\n </eui-dropdown-content>\n </eui-dropdown>\n </div>\n <div *ngIf=\"(length$ | async) > 0\" class=\"eui-paginator__page-range\">\n {{ 'eui.euitable.SHOWING-RANGE' | translate: { range: range } }} {{ 'eui.euitable.RANGE-LABEL' | translate }}\n {{ rangeLength | number }}\n </div>\n</div>\n\n<div *ngIf=\"!isHidden\" class=\"eui-paginator__page-navigation\">\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(uxAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n [attr.disabled]=\"page === 0 || length === 0 ? 'disabled' : null\"\n (click)=\"goFirstPage()\">\n <eui-icon-svg icon=\"eui-caret-first\" aria-label=\"Go to first page\" fillColor=\"primary\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(uxAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n [attr.disabled]=\"page === 0 || length === 0 ? 'disabled' : null\"\n (click)=\"goPreviousPage()\">\n <!-- to be compliant with DS as play-back is not existing in ionicons -->\n <eui-icon-svg icon=\"eui-caret-left\" aria-label=\"Go to previous page\" fillColor=\"primary\"></eui-icon-svg>\n </button>\n </div>\n <div\n class=\"eui-paginator__page-navigation-numbers\"\n *ngIf=\"hasPageNumberNavigation && !(uxAppShellService.breakpoints$ | async).isMobile\">\n <button\n type=\"button\"\n euiSizeS\n *ngFor=\"let pageNumber of pageNumberNavigation\"\n euiButton\n euiBasicButton\n euiPrimary\n euiRounded\n euiIconButton\n [euiOutline]=\"pageNumber === page\"\n (click)=\"goToPage(pageNumber)\">\n {{ pageNumber + 1 | number }}\n </button>\n </div>\n <div *ngIf=\"(length$ | async) > 0 && (uxAppShellService.breakpoints$ | async).isMobile\" class=\"eui-paginator__page-range\">\n {{ range }} {{ 'eui.euitable.RANGE-LABEL' | translate }} {{ rangeLength }}\n </div>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(uxAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n [attr.disabled]=\"page + 1 === nbPage || length === 0 ? 'disabled' : null\"\n (click)=\"goNextPage()\">\n <eui-icon-svg icon=\"eui-caret-right\" aria-label=\"Go to next page\" fillColor=\"primary\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(uxAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n [attr.disabled]=\"page + 1 === nbPage || length === 0 ? 'disabled' : null\"\n (click)=\"goLastPage()\">\n <eui-icon-svg icon=\"eui-caret-last\" aria-label=\"Go to last page\" fillColor=\"primary\"></eui-icon-svg>\n </button>\n </div>\n</div>\n", styles: [".eui-paginator{--eui-paginator-font-size: var(--eui-base-font-size-m);--eui-paginator-padding: var(--eui-base-spacing-s);align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:var(--eui-paginator-padding) 0;position:relative;width:100%}.eui-paginator__page{display:flex;flex-direction:column;font-size:var(--eui-paginator-font-size)}.eui-paginator__page-selector{align-items:center;display:inline-flex;flex-wrap:wrap;font-size:var(--eui-base-font-size-s)}.eui-paginator__page-range{align-items:center;display:inline-flex;font-size:var(--eui-base-font-size-s)}.eui-paginator__page-navigation{align-items:center;display:flex}.eui-paginator__page-navigation-item,.eui-paginator__page-navigation-numbers{align-items:center;display:inline-flex}.eui-card.eui-card--no-content-padding .eui-card-content .eui-paginator{padding:var(--eui-paginator-padding)}@media screen and (max-width: 767px){.eui-paginator{align-items:center;display:flex;justify-content:center;margin:var(--eui-base-spacing-s) 0;width:100%}.eui-paginator__page-range{margin:0 var(--eui-base-spacing-m)}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i4.EuiDropdownComponent, selector: "eui-dropdown", inputs: ["e2eAttr", "tabIndex", "width", "position", "isDropDownRightAligned", "isClosedOnClickInside", "isLabelUpdatedFromSelectedItem", "isExpandOnHover", "hasTabNavigation"] }, { kind: "component", type: i4.EuiDropdownItemComponent, selector: "eui-dropdown-item, [euiDropdownItem]", inputs: ["subDropdown", "isActive"] }, { kind: "directive", type: i4.EuiDropdownContentDirective, selector: "eui-dropdown-content" }, { kind: "component", type: i5.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
181
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiPaginatorComponent, deps: [{ token: i1.EuiAppShellService }, { token: i2.DecimalPipe }], target: i0.ɵɵFactoryTarget.Component }); }
182
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.4", type: EuiPaginatorComponent, selector: "eui-paginator", inputs: { e2eAttr: "e2eAttr", pageSizeOptions: "pageSizeOptions", pageSize: "pageSize", page: "page", length: "length", nbPageNumberNavigation: "nbPageNumberNavigation", isHidden: "isHidden", hasPageNumberNavigation: "hasPageNumberNavigation", hasDynamicLength: "hasDynamicLength" }, outputs: { pageChange: "pageChange" }, host: { properties: { "attr.data-e2e": "this.e2eAttr", "class": "this.string" } }, providers: [DecimalPipe], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"!isHidden && !(EuiAppShellService.breakpoints$ | async).isMobile\" class=\"eui-paginator__page\">\n <div class=\"eui-paginator__page-selector\">\n {{ 'eui.euitable.ITEMS-PER-PAGE' | translate }}:\n <eui-dropdown>\n <button type=\"button\" euiButton euiBasicButton euiSizeS>\n <span euiLabel\n ><strong>{{ pageSize | number }}</strong></span\n >\n <eui-icon-svg\n icon=\"eui-caret-down\"\n fillColor=\"primary\"\n size=\"s\"\n aria-label=\"Select Items per page\"\n class=\"eui-u-ml-2xs\"></eui-icon-svg>\n </button>\n <eui-dropdown-content>\n <div>\n <button\n type=\"button\"\n euiDropdownItem\n euiSizeS\n *ngFor=\"let pageSizeOption of pageSizeOptions\"\n (click)=\"changePageSize(pageSizeOption)\">\n {{ pageSizeOption }}\n </button>\n </div>\n </eui-dropdown-content>\n </eui-dropdown>\n </div>\n <div *ngIf=\"(length$ | async) > 0\" class=\"eui-paginator__page-range\">\n {{ 'eui.euitable.SHOWING-RANGE' | translate: { range: range } }} {{ 'eui.euitable.RANGE-LABEL' | translate }}\n {{ rangeLength | number }}\n </div>\n</div>\n\n<div *ngIf=\"!isHidden\" class=\"eui-paginator__page-navigation\">\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n [attr.disabled]=\"page === 0 || length === 0 ? 'disabled' : null\"\n (click)=\"goFirstPage()\">\n <eui-icon-svg icon=\"eui-caret-first\" aria-label=\"Go to first page\" fillColor=\"primary\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n [attr.disabled]=\"page === 0 || length === 0 ? 'disabled' : null\"\n (click)=\"goPreviousPage()\">\n <!-- to be compliant with DS as play-back is not existing in ionicons -->\n <eui-icon-svg icon=\"eui-caret-left\" aria-label=\"Go to previous page\" fillColor=\"primary\"></eui-icon-svg>\n </button>\n </div>\n <div\n class=\"eui-paginator__page-navigation-numbers\"\n *ngIf=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\">\n <button\n type=\"button\"\n euiSizeS\n *ngFor=\"let pageNumber of pageNumberNavigation\"\n euiButton\n euiBasicButton\n euiPrimary\n euiRounded\n euiIconButton\n [euiOutline]=\"pageNumber === page\"\n (click)=\"goToPage(pageNumber)\">\n {{ pageNumber + 1 | number }}\n </button>\n </div>\n <div *ngIf=\"(length$ | async) > 0 && (EuiAppShellService.breakpoints$ | async).isMobile\" class=\"eui-paginator__page-range\">\n {{ range }} {{ 'eui.euitable.RANGE-LABEL' | translate }} {{ rangeLength }}\n </div>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n [attr.disabled]=\"page + 1 === nbPage || length === 0 ? 'disabled' : null\"\n (click)=\"goNextPage()\">\n <eui-icon-svg icon=\"eui-caret-right\" aria-label=\"Go to next page\" fillColor=\"primary\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n [attr.disabled]=\"page + 1 === nbPage || length === 0 ? 'disabled' : null\"\n (click)=\"goLastPage()\">\n <eui-icon-svg icon=\"eui-caret-last\" aria-label=\"Go to last page\" fillColor=\"primary\"></eui-icon-svg>\n </button>\n </div>\n</div>\n", styles: [".eui-paginator{--eui-paginator-font-size: var(--eui-base-font-size-m);--eui-paginator-padding: var(--eui-base-spacing-s);align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:var(--eui-paginator-padding) 0;position:relative;width:100%}.eui-paginator__page{display:flex;flex-direction:column;font-size:var(--eui-paginator-font-size)}.eui-paginator__page-selector{align-items:center;display:inline-flex;flex-wrap:wrap;font-size:var(--eui-base-font-size-s)}.eui-paginator__page-range{align-items:center;display:inline-flex;font-size:var(--eui-base-font-size-s)}.eui-paginator__page-navigation{align-items:center;display:flex}.eui-paginator__page-navigation-item,.eui-paginator__page-navigation-numbers{align-items:center;display:inline-flex}.eui-card.eui-card--no-content-padding .eui-card-content .eui-paginator{padding:var(--eui-paginator-padding)}@media screen and (max-width: 767px){.eui-paginator{align-items:center;display:flex;justify-content:center;margin:var(--eui-base-spacing-s) 0;width:100%}.eui-paginator__page-range{margin:0 var(--eui-base-spacing-m)}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "size", "fillColor", "set", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading"] }, { kind: "component", type: i4.EuiDropdownComponent, selector: "eui-dropdown", inputs: ["e2eAttr", "tabIndex", "width", "position", "isDropDownRightAligned", "isClosedOnClickInside", "isLabelUpdatedFromSelectedItem", "isExpandOnHover", "hasTabNavigation"] }, { kind: "component", type: i4.EuiDropdownItemComponent, selector: "eui-dropdown-item, [euiDropdownItem]", inputs: ["subDropdown", "isActive"] }, { kind: "directive", type: i4.EuiDropdownContentDirective, selector: "eui-dropdown-content" }, { kind: "component", type: i5.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "isLoading", "euiIconButton", "euiLineWrap"], outputs: ["buttonClick"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
183
183
  }
184
184
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiPaginatorComponent, decorators: [{
185
185
  type: Component,
186
- args: [{ selector: 'eui-paginator', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, providers: [DecimalPipe], template: "<div *ngIf=\"!isHidden && !(uxAppShellService.breakpoints$ | async).isMobile\" class=\"eui-paginator__page\">\n <div class=\"eui-paginator__page-selector\">\n {{ 'eui.euitable.ITEMS-PER-PAGE' | translate }}:\n <eui-dropdown>\n <button type=\"button\" euiButton euiBasicButton euiSizeS>\n <span euiLabel\n ><strong>{{ pageSize | number }}</strong></span\n >\n <eui-icon-svg\n icon=\"eui-caret-down\"\n fillColor=\"primary\"\n size=\"s\"\n aria-label=\"Select Items per page\"\n class=\"eui-u-ml-2xs\"></eui-icon-svg>\n </button>\n <eui-dropdown-content>\n <div>\n <button\n type=\"button\"\n euiDropdownItem\n euiSizeS\n *ngFor=\"let pageSizeOption of pageSizeOptions\"\n (click)=\"changePageSize(pageSizeOption)\">\n {{ pageSizeOption }}\n </button>\n </div>\n </eui-dropdown-content>\n </eui-dropdown>\n </div>\n <div *ngIf=\"(length$ | async) > 0\" class=\"eui-paginator__page-range\">\n {{ 'eui.euitable.SHOWING-RANGE' | translate: { range: range } }} {{ 'eui.euitable.RANGE-LABEL' | translate }}\n {{ rangeLength | number }}\n </div>\n</div>\n\n<div *ngIf=\"!isHidden\" class=\"eui-paginator__page-navigation\">\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(uxAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n [attr.disabled]=\"page === 0 || length === 0 ? 'disabled' : null\"\n (click)=\"goFirstPage()\">\n <eui-icon-svg icon=\"eui-caret-first\" aria-label=\"Go to first page\" fillColor=\"primary\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(uxAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n [attr.disabled]=\"page === 0 || length === 0 ? 'disabled' : null\"\n (click)=\"goPreviousPage()\">\n <!-- to be compliant with DS as play-back is not existing in ionicons -->\n <eui-icon-svg icon=\"eui-caret-left\" aria-label=\"Go to previous page\" fillColor=\"primary\"></eui-icon-svg>\n </button>\n </div>\n <div\n class=\"eui-paginator__page-navigation-numbers\"\n *ngIf=\"hasPageNumberNavigation && !(uxAppShellService.breakpoints$ | async).isMobile\">\n <button\n type=\"button\"\n euiSizeS\n *ngFor=\"let pageNumber of pageNumberNavigation\"\n euiButton\n euiBasicButton\n euiPrimary\n euiRounded\n euiIconButton\n [euiOutline]=\"pageNumber === page\"\n (click)=\"goToPage(pageNumber)\">\n {{ pageNumber + 1 | number }}\n </button>\n </div>\n <div *ngIf=\"(length$ | async) > 0 && (uxAppShellService.breakpoints$ | async).isMobile\" class=\"eui-paginator__page-range\">\n {{ range }} {{ 'eui.euitable.RANGE-LABEL' | translate }} {{ rangeLength }}\n </div>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(uxAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n [attr.disabled]=\"page + 1 === nbPage || length === 0 ? 'disabled' : null\"\n (click)=\"goNextPage()\">\n <eui-icon-svg icon=\"eui-caret-right\" aria-label=\"Go to next page\" fillColor=\"primary\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(uxAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n [attr.disabled]=\"page + 1 === nbPage || length === 0 ? 'disabled' : null\"\n (click)=\"goLastPage()\">\n <eui-icon-svg icon=\"eui-caret-last\" aria-label=\"Go to last page\" fillColor=\"primary\"></eui-icon-svg>\n </button>\n </div>\n</div>\n", styles: [".eui-paginator{--eui-paginator-font-size: var(--eui-base-font-size-m);--eui-paginator-padding: var(--eui-base-spacing-s);align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:var(--eui-paginator-padding) 0;position:relative;width:100%}.eui-paginator__page{display:flex;flex-direction:column;font-size:var(--eui-paginator-font-size)}.eui-paginator__page-selector{align-items:center;display:inline-flex;flex-wrap:wrap;font-size:var(--eui-base-font-size-s)}.eui-paginator__page-range{align-items:center;display:inline-flex;font-size:var(--eui-base-font-size-s)}.eui-paginator__page-navigation{align-items:center;display:flex}.eui-paginator__page-navigation-item,.eui-paginator__page-navigation-numbers{align-items:center;display:inline-flex}.eui-card.eui-card--no-content-padding .eui-card-content .eui-paginator{padding:var(--eui-paginator-padding)}@media screen and (max-width: 767px){.eui-paginator{align-items:center;display:flex;justify-content:center;margin:var(--eui-base-spacing-s) 0;width:100%}.eui-paginator__page-range{margin:0 var(--eui-base-spacing-m)}}\n"] }]
187
- }], ctorParameters: function () { return [{ type: i1.UxAppShellService }, { type: i2.DecimalPipe }]; }, propDecorators: { e2eAttr: [{
186
+ args: [{ selector: 'eui-paginator', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, providers: [DecimalPipe], template: "<div *ngIf=\"!isHidden && !(EuiAppShellService.breakpoints$ | async).isMobile\" class=\"eui-paginator__page\">\n <div class=\"eui-paginator__page-selector\">\n {{ 'eui.euitable.ITEMS-PER-PAGE' | translate }}:\n <eui-dropdown>\n <button type=\"button\" euiButton euiBasicButton euiSizeS>\n <span euiLabel\n ><strong>{{ pageSize | number }}</strong></span\n >\n <eui-icon-svg\n icon=\"eui-caret-down\"\n fillColor=\"primary\"\n size=\"s\"\n aria-label=\"Select Items per page\"\n class=\"eui-u-ml-2xs\"></eui-icon-svg>\n </button>\n <eui-dropdown-content>\n <div>\n <button\n type=\"button\"\n euiDropdownItem\n euiSizeS\n *ngFor=\"let pageSizeOption of pageSizeOptions\"\n (click)=\"changePageSize(pageSizeOption)\">\n {{ pageSizeOption }}\n </button>\n </div>\n </eui-dropdown-content>\n </eui-dropdown>\n </div>\n <div *ngIf=\"(length$ | async) > 0\" class=\"eui-paginator__page-range\">\n {{ 'eui.euitable.SHOWING-RANGE' | translate: { range: range } }} {{ 'eui.euitable.RANGE-LABEL' | translate }}\n {{ rangeLength | number }}\n </div>\n</div>\n\n<div *ngIf=\"!isHidden\" class=\"eui-paginator__page-navigation\">\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n [attr.disabled]=\"page === 0 || length === 0 ? 'disabled' : null\"\n (click)=\"goFirstPage()\">\n <eui-icon-svg icon=\"eui-caret-first\" aria-label=\"Go to first page\" fillColor=\"primary\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n [attr.disabled]=\"page === 0 || length === 0 ? 'disabled' : null\"\n (click)=\"goPreviousPage()\">\n <!-- to be compliant with DS as play-back is not existing in ionicons -->\n <eui-icon-svg icon=\"eui-caret-left\" aria-label=\"Go to previous page\" fillColor=\"primary\"></eui-icon-svg>\n </button>\n </div>\n <div\n class=\"eui-paginator__page-navigation-numbers\"\n *ngIf=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\">\n <button\n type=\"button\"\n euiSizeS\n *ngFor=\"let pageNumber of pageNumberNavigation\"\n euiButton\n euiBasicButton\n euiPrimary\n euiRounded\n euiIconButton\n [euiOutline]=\"pageNumber === page\"\n (click)=\"goToPage(pageNumber)\">\n {{ pageNumber + 1 | number }}\n </button>\n </div>\n <div *ngIf=\"(length$ | async) > 0 && (EuiAppShellService.breakpoints$ | async).isMobile\" class=\"eui-paginator__page-range\">\n {{ range }} {{ 'eui.euitable.RANGE-LABEL' | translate }} {{ rangeLength }}\n </div>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n [attr.disabled]=\"page + 1 === nbPage || length === 0 ? 'disabled' : null\"\n (click)=\"goNextPage()\">\n <eui-icon-svg icon=\"eui-caret-right\" aria-label=\"Go to next page\" fillColor=\"primary\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-paginator__page-navigation-item\">\n <button\n type=\"button\"\n [euiSizeS]=\"hasPageNumberNavigation && !(EuiAppShellService.breakpoints$ | async).isMobile\"\n euiButton\n euiIconButton\n euiBasicButton\n euiRounded\n [attr.disabled]=\"page + 1 === nbPage || length === 0 ? 'disabled' : null\"\n (click)=\"goLastPage()\">\n <eui-icon-svg icon=\"eui-caret-last\" aria-label=\"Go to last page\" fillColor=\"primary\"></eui-icon-svg>\n </button>\n </div>\n</div>\n", styles: [".eui-paginator{--eui-paginator-font-size: var(--eui-base-font-size-m);--eui-paginator-padding: var(--eui-base-spacing-s);align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:var(--eui-paginator-padding) 0;position:relative;width:100%}.eui-paginator__page{display:flex;flex-direction:column;font-size:var(--eui-paginator-font-size)}.eui-paginator__page-selector{align-items:center;display:inline-flex;flex-wrap:wrap;font-size:var(--eui-base-font-size-s)}.eui-paginator__page-range{align-items:center;display:inline-flex;font-size:var(--eui-base-font-size-s)}.eui-paginator__page-navigation{align-items:center;display:flex}.eui-paginator__page-navigation-item,.eui-paginator__page-navigation-numbers{align-items:center;display:inline-flex}.eui-card.eui-card--no-content-padding .eui-card-content .eui-paginator{padding:var(--eui-paginator-padding)}@media screen and (max-width: 767px){.eui-paginator{align-items:center;display:flex;justify-content:center;margin:var(--eui-base-spacing-s) 0;width:100%}.eui-paginator__page-range{margin:0 var(--eui-base-spacing-m)}}\n"] }]
187
+ }], ctorParameters: function () { return [{ type: i1.EuiAppShellService }, { type: i2.DecimalPipe }]; }, propDecorators: { e2eAttr: [{
188
188
  type: HostBinding,
189
189
  args: ['attr.data-e2e']
190
190
  }, {
@@ -211,4 +211,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4",
211
211
  }], hasDynamicLength: [{
212
212
  type: Input
213
213
  }] } });
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXBhZ2luYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9ldWktcGFnaW5hdG9yL2V1aS1wYWdpbmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXBhZ2luYXRvci9ldWktcGFnaW5hdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsS0FBSyxFQUVMLFlBQVksRUFDWixNQUFNLEVBR04sV0FBVyxFQUNYLGlCQUFpQixFQUNqQix1QkFBdUIsR0FDMUIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUc1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7O0FBVTlDLE1BQU0sT0FBTyxxQkFBcUI7SUFROUIsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFtQjtRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFXRCxJQUNJLHVCQUF1QjtRQUN2QixPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsSUFBSSx1QkFBdUIsQ0FBQyxLQUFtQjtRQUMzQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELElBQ0ksZ0JBQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFJLGdCQUFnQixDQUFDLEtBQW1CO1FBQ3BDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBTUQsWUFDVyxpQkFBb0MsRUFDbkMsT0FBb0I7UUFEckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNuQyxZQUFPLEdBQVAsT0FBTyxDQUFhO1FBOUNPLFlBQU8sR0FBRyxlQUFlLENBQUM7UUFDM0MsV0FBTSxHQUFHLGVBQWUsQ0FBQztRQUN0QyxvQkFBZSxHQUFhLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ1QsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUNYLDJCQUFzQixHQUFHLENBQUMsQ0FBQztRQVFwQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRVIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFzQixDQUFDO1FBRXZELFVBQUssR0FBd0MsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkUsWUFBTyxHQUE0QixJQUFJLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQVl6RCw2QkFBd0IsR0FBRyxLQUFLLENBQUM7UUFRakMsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBRzFCLGFBQVEsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQUt6RCxDQUFDO0lBRUosV0FBVyxDQUFDLENBQWdCO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNuQjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3JILElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNuQjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNySCxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ25CO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbEM7UUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztRQUVuRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNyRixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7YUFDakI7WUFDRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFFaEIsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtnQkFDM0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO2FBQ3RDO2lCQUFNO2dCQUNILElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDO2FBQ3REO1lBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9HLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDcEIsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2xDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDakI7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDdkIsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1NBQzdCO2FBQU07WUFDSCxLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQ2I7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQy9ELEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7U0FDOUM7UUFFRCxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDWCxLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQ2I7UUFFRCxNQUFNLEdBQUcsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUN6QyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxjQUFjLENBQUMsSUFBWTtRQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0csSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWhCLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDM0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3RDO2FBQU07WUFDSCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztTQUN0RDtRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFTSxRQUFRLENBQUMsSUFBWTtRQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0csSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0csSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFTSxjQUFjO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksa0JBQWtCLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVNLFVBQVU7UUFDYixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0csSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFTSxVQUFVO1FBQ2IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0csSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFTSxPQUFPLENBQUMsSUFBd0I7UUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVNLFNBQVMsQ0FBQyxNQUFjO1FBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTSxRQUFRO1FBQ1gsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN4RCxNQUFNLEVBQUUsR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3RELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM5RyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE9BQU8sQ0FBQyxJQUFZO1FBQ3ZCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzt3SUF2TVEscUJBQXFCOzRIQUFyQixxQkFBcUIsOGJBRm5CLENBQUMsV0FBVyxDQUFDLCtDQzNCNUIsOHVKQThHQTs7a0dEakZhLHFCQUFxQjtrQkFSakMsU0FBUzsrQkFDSSxlQUFlLGlCQUdWLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE9BQU8sYUFDckMsQ0FBQyxXQUFXLENBQUM7a0lBR2UsT0FBTztzQkFBN0MsV0FBVzt1QkFBQyxlQUFlOztzQkFBRyxLQUFLO2dCQUNkLE1BQU07c0JBQTNCLFdBQVc7dUJBQUMsT0FBTztnQkFDWCxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBRUYsUUFBUTtzQkFEWCxLQUFLO2dCQVNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBU0gsdUJBQXVCO3NCQUQxQixLQUFLO2dCQVNGLGdCQUFnQjtzQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIE9uSW5pdCxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIE91dHB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBIb3N0QmluZGluZyxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBVeEFwcFNoZWxsU2VydmljZSB9IGZyb20gJ0BldWkvY29yZSc7XG5cbmltcG9ydCB7IEV1aVBhZ2luYXRpb25FdmVudCB9IGZyb20gJy4vbW9kZWxzL3BhZ2luYXRpb24tZXZlbnQubW9kZWwnO1xuaW1wb3J0IHsgRGVjaW1hbFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS1wYWdpbmF0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktcGFnaW5hdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbiAgICBwcm92aWRlcnM6IFtEZWNpbWFsUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIEV1aVBhZ2luYXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWUyZScpIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLXBhZ2luYXRvcic7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIHN0cmluZyA9ICdldWktcGFnaW5hdG9yJztcbiAgICBASW5wdXQoKSBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdID0gWzUsIDEwLCAyNSwgNTAsIDEwMF07XG4gICAgQElucHV0KCkgcGFnZVNpemUgPSAxMDtcbiAgICBASW5wdXQoKSBwYWdlID0gMDtcbiAgICBASW5wdXQoKSBsZW5ndGggPSAwO1xuICAgIEBJbnB1dCgpIG5iUGFnZU51bWJlck5hdmlnYXRpb24gPSA1O1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzSGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNIaWRkZW47XG4gICAgfVxuICAgIHNldCBpc0hpZGRlbih2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzSGlkZGVuID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgX2lzSGlkZGVuID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RXVpUGFnaW5hdGlvbkV2ZW50PigpO1xuXG4gICAgcHVibGljIHBhZ2UkOiBCZWhhdmlvclN1YmplY3Q8RXVpUGFnaW5hdGlvbkV2ZW50PiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG4gICAgcHVibGljIGxlbmd0aCQ6IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCgwKTtcbiAgICBwdWJsaWMgcmFuZ2U6IHN0cmluZztcbiAgICBwdWJsaWMgcmFuZ2VMZW5ndGg6IHN0cmluZztcbiAgICBwdWJsaWMgbmJQYWdlOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBoYXNQYWdlTnVtYmVyTmF2aWdhdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc1BhZ2VOdW1iZXJOYXZpZ2F0aW9uO1xuICAgIH1cbiAgICBzZXQgaGFzUGFnZU51bWJlck5hdmlnYXRpb24odmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9oYXNQYWdlTnVtYmVyTmF2aWdhdGlvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2hhc1BhZ2VOdW1iZXJOYXZpZ2F0aW9uID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaGFzRHluYW1pY0xlbmd0aCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc0R5bmFtaWNMZW5ndGg7XG4gICAgfVxuICAgIHNldCBoYXNEeW5hbWljTGVuZ3RoKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faGFzRHluYW1pY0xlbmd0aCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2hhc0R5bmFtaWNMZW5ndGggPSBmYWxzZTtcblxuICAgIHByaXZhdGUgbmJQYWdlTnVtYmVyTmF2OiBudW1iZXI7XG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHV4QXBwU2hlbGxTZXJ2aWNlOiBVeEFwcFNoZWxsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkZWNpbWFsOiBEZWNpbWFsUGlwZVxuICAgICkge31cblxuICAgIG5nT25DaGFuZ2VzKGM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGMgJiYgYy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoJC5uZXh0KGMubGVuZ3RoLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLmdldFJhbmdlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGMgJiYgYy5wYWdlKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2UkLm5leHQobmV3IEV1aVBhZ2luYXRpb25FdmVudCh7IHBhZ2U6IGMucGFnZS5jdXJyZW50VmFsdWUsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pKTtcbiAgICAgICAgICAgIHRoaXMuZ2V0UmFuZ2UoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYyAmJiBjLnBhZ2VTaXplKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2UkLm5leHQobmV3IEV1aVBhZ2luYXRpb25FdmVudCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IGMucGFnZVNpemUuY3VycmVudFZhbHVlLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pKTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlUGFnZVNpemUoYy5wYWdlU2l6ZS5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5nZXRSYW5nZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5sZW5ndGgkLm5leHQodGhpcy5sZW5ndGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5uYlBhZ2VOdW1iZXJOYXYgPSB0aGlzLm5iUGFnZU51bWJlck5hdmlnYXRpb247XG5cbiAgICAgICAgdGhpcy5sZW5ndGgkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUoKGxlbmd0aCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sZW5ndGggPSBsZW5ndGg7XG4gICAgICAgICAgICB0aGlzLm5iUGFnZSA9IE1hdGguY2VpbCh0aGlzLmxlbmd0aCAvIHRoaXMucGFnZVNpemUpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmhhc0R5bmFtaWNMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2UgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5nZXRSYW5nZSgpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5uYlBhZ2UgPCB0aGlzLm5iUGFnZU51bWJlck5hdmlnYXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5iUGFnZU51bWJlck5hdiA9IHRoaXMubmJQYWdlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5iUGFnZU51bWJlck5hdiA9IHRoaXMubmJQYWdlTnVtYmVyTmF2aWdhdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5wYWdlJC5uZXh0KG5ldyBFdWlQYWdpbmF0aW9uRXZlbnQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucGFnZSQubmV4dChuZXcgRXVpUGFnaW5hdGlvbkV2ZW50KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwgbmJQYWdlOiB0aGlzLm5iUGFnZSB9KSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGdldCBwYWdlTnVtYmVyTmF2aWdhdGlvbigpOiBudW1iZXJbXSB7XG4gICAgICAgIGNvbnN0IHBhZ2VzID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5uYlBhZ2U7IGkrKykge1xuICAgICAgICAgICAgcGFnZXMucHVzaChpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlbHRhID0gTWF0aC5mbG9vcih0aGlzLm5iUGFnZU51bWJlck5hdiAvIDIpO1xuICAgICAgICBsZXQgc3RhcnQgPSAwO1xuICAgICAgICBpZiAodGhpcy5wYWdlIC0gZGVsdGEgPiAwKSB7XG4gICAgICAgICAgICBzdGFydCA9IHRoaXMucGFnZSAtIGRlbHRhO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhcnQgPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubmJQYWdlIC0gdGhpcy5wYWdlIDw9IHRoaXMubmJQYWdlTnVtYmVyTmF2IC0gKGRlbHRhICsgMSkpIHtcbiAgICAgICAgICAgIHN0YXJ0ID0gdGhpcy5uYlBhZ2UgLSB0aGlzLm5iUGFnZU51bWJlck5hdjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdGFydCA8IDApIHtcbiAgICAgICAgICAgIHN0YXJ0ID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVuZCA9IHN0YXJ0ICsgdGhpcy5uYlBhZ2VOdW1iZXJOYXY7XG4gICAgICAgIHJldHVybiBwYWdlcy5zbGljZShzdGFydCwgZW5kKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hhbmdlUGFnZVNpemUoc2l6ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZVNpemUgPSBzaXplO1xuICAgICAgICB0aGlzLm5iUGFnZSA9IE1hdGguY2VpbCh0aGlzLmxlbmd0aCAvIHRoaXMucGFnZVNpemUpO1xuICAgICAgICB0aGlzLnBhZ2UgPSAwO1xuICAgICAgICB0aGlzLnBhZ2UkLm5leHQobmV3IEV1aVBhZ2luYXRpb25FdmVudCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSkpO1xuICAgICAgICB0aGlzLmdldFJhbmdlKCk7XG5cbiAgICAgICAgaWYgKHRoaXMubmJQYWdlIDwgdGhpcy5uYlBhZ2VOdW1iZXJOYXZpZ2F0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLm5iUGFnZU51bWJlck5hdiA9IHRoaXMubmJQYWdlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5uYlBhZ2VOdW1iZXJOYXYgPSB0aGlzLm5iUGFnZU51bWJlck5hdmlnYXRpb247XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdvVG9QYWdlKHBhZ2U6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2UgPSBwYWdlO1xuICAgICAgICB0aGlzLnBhZ2UkLm5leHQobmV3IEV1aVBhZ2luYXRpb25FdmVudCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSkpO1xuICAgICAgICB0aGlzLmdldFJhbmdlKCk7XG4gICAgICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwgbmJQYWdlOiB0aGlzLm5iUGFnZSB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ29GaXJzdFBhZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZSA9IDA7XG4gICAgICAgIHRoaXMucGFnZSQubmV4dChuZXcgRXVpUGFnaW5hdGlvbkV2ZW50KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwgbmJQYWdlOiB0aGlzLm5iUGFnZSB9KSk7XG4gICAgICAgIHRoaXMuZ2V0UmFuZ2UoKTtcbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnb1ByZXZpb3VzUGFnZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlLS07XG4gICAgICAgIHRoaXMucGFnZSQubmV4dChuZXcgRXVpUGFnaW5hdGlvbkV2ZW50KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwgbmJQYWdlOiB0aGlzLm5iUGFnZSB9KSk7XG4gICAgICAgIHRoaXMuZ2V0UmFuZ2UoKTtcbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnb05leHRQYWdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2UrKztcbiAgICAgICAgdGhpcy5wYWdlJC5uZXh0KG5ldyBFdWlQYWdpbmF0aW9uRXZlbnQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pKTtcbiAgICAgICAgdGhpcy5nZXRSYW5nZSgpO1xuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdvTGFzdFBhZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZSA9IHRoaXMubmJQYWdlIC0gMTtcbiAgICAgICAgdGhpcy5wYWdlJC5uZXh0KG5ldyBFdWlQYWdpbmF0aW9uRXZlbnQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pKTtcbiAgICAgICAgdGhpcy5nZXRSYW5nZSgpO1xuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFBhZ2UocGFnZTogRXVpUGFnaW5hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZSQubmV4dChwYWdlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0TGVuZ3RoKGxlbmd0aDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGVuZ3RoJC5uZXh0KGxlbmd0aCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJhbmdlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmcm9tID0gdGhpcy5sZW5ndGggPiAwID8gdGhpcy5wYWdlICogdGhpcy5wYWdlU2l6ZSArIDEgOiAwO1xuICAgICAgICBjb25zdCBsaW1pdCA9IHRoaXMucGFnZSAqIHRoaXMucGFnZVNpemUgKyB0aGlzLnBhZ2VTaXplO1xuICAgICAgICBjb25zdCB0byA9IGxpbWl0IDw9IHRoaXMubGVuZ3RoID8gbGltaXQgOiB0aGlzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5yYW5nZSA9IGZyb20gJiYgdG8gJiYgdGhpcy5sZW5ndGggPyB0aGlzLmRlY2ltYWwudHJhbnNmb3JtKGZyb20pICsgJ+KAkycgKyB0aGlzLmRlY2ltYWwudHJhbnNmb3JtKHRvKSA6ICcnO1xuICAgICAgICB0aGlzLnJhbmdlTGVuZ3RoID0gdGhpcy5sZW5ndGggPyB0aGlzLmxlbmd0aC50b1N0cmluZygpIDogJyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIHRoZSBwYWdpbmF0aW9uIHRvIHRoZSBnaXZlbiBwYWdlIG51bWJlclxuICAgICAqXG4gICAgICogQHBhcmFtIHBhZ2UgMC1iYXNlZCBwYWdlIG51bWJlciB0byBiZSBkaXNwbGF5ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UGFnZShwYWdlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdvVG9QYWdlKHBhZ2UpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiIWlzSGlkZGVuICYmICEodXhBcHBTaGVsbFNlcnZpY2UuYnJlYWtwb2ludHMkIHwgYXN5bmMpLmlzTW9iaWxlXCIgY2xhc3M9XCJldWktcGFnaW5hdG9yX19wYWdlXCI+XG4gICAgPGRpdiBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2Utc2VsZWN0b3JcIj5cbiAgICAgICAge3sgJ2V1aS5ldWl0YWJsZS5JVEVNUy1QRVItUEFHRScgfCB0cmFuc2xhdGUgfX06XG4gICAgICAgIDxldWktZHJvcGRvd24+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBldWlCdXR0b24gZXVpQmFzaWNCdXR0b24gZXVpU2l6ZVM+XG4gICAgICAgICAgICAgICAgPHNwYW4gZXVpTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgPjxzdHJvbmc+e3sgcGFnZVNpemUgfCBudW1iZXIgfX08L3N0cm9uZz48L3NwYW5cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2Z1xuICAgICAgICAgICAgICAgICAgICBpY29uPVwiZXVpLWNhcmV0LWRvd25cIlxuICAgICAgICAgICAgICAgICAgICBmaWxsQ29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VsZWN0IEl0ZW1zIHBlciBwYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktdS1tbC0yeHNcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGV1aS1kcm9wZG93bi1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZXVpRHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICBldWlTaXplU1xuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHBhZ2VTaXplT3B0aW9uIG9mIHBhZ2VTaXplT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlUGFnZVNpemUocGFnZVNpemVPcHRpb24pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBwYWdlU2l6ZU9wdGlvbiB9fVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZXVpLWRyb3Bkb3duLWNvbnRlbnQ+XG4gICAgICAgIDwvZXVpLWRyb3Bkb3duPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIobGVuZ3RoJCB8IGFzeW5jKSA+IDBcIiBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2UtcmFuZ2VcIj5cbiAgICAgICAge3sgJ2V1aS5ldWl0YWJsZS5TSE9XSU5HLVJBTkdFJyB8IHRyYW5zbGF0ZTogeyByYW5nZTogcmFuZ2UgfSB9fSB7eyAnZXVpLmV1aXRhYmxlLlJBTkdFLUxBQkVMJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICB7eyByYW5nZUxlbmd0aCB8IG51bWJlciB9fVxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCIhaXNIaWRkZW5cIiBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2UtbmF2aWdhdGlvblwiPlxuICAgIDxkaXYgY2xhc3M9XCJldWktcGFnaW5hdG9yX19wYWdlLW5hdmlnYXRpb24taXRlbVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtldWlTaXplU109XCJoYXNQYWdlTnVtYmVyTmF2aWdhdGlvbiAmJiAhKHV4QXBwU2hlbGxTZXJ2aWNlLmJyZWFrcG9pbnRzJCB8IGFzeW5jKS5pc01vYmlsZVwiXG4gICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgICAgICBldWlSb3VuZGVkXG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJwYWdlID09PSAwIHx8IGxlbmd0aCA9PT0gMCA/ICdkaXNhYmxlZCcgOiBudWxsXCJcbiAgICAgICAgICAgIChjbGljayk9XCJnb0ZpcnN0UGFnZSgpXCI+XG4gICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktY2FyZXQtZmlyc3RcIiBhcmlhLWxhYmVsPVwiR28gdG8gZmlyc3QgcGFnZVwiIGZpbGxDb2xvcj1cInByaW1hcnlcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2UtbmF2aWdhdGlvbi1pdGVtXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2V1aVNpemVTXT1cImhhc1BhZ2VOdW1iZXJOYXZpZ2F0aW9uICYmICEodXhBcHBTaGVsbFNlcnZpY2UuYnJlYWtwb2ludHMkIHwgYXN5bmMpLmlzTW9iaWxlXCJcbiAgICAgICAgICAgIGV1aUJ1dHRvblxuICAgICAgICAgICAgZXVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgZXVpQmFzaWNCdXR0b25cbiAgICAgICAgICAgIGV1aVJvdW5kZWRcbiAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cInBhZ2UgPT09IDAgfHwgbGVuZ3RoID09PSAwID8gJ2Rpc2FibGVkJyA6IG51bGxcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImdvUHJldmlvdXNQYWdlKClcIj5cbiAgICAgICAgICAgIDwhLS0gdG8gYmUgY29tcGxpYW50IHdpdGggRFMgYXMgcGxheS1iYWNrIGlzIG5vdCBleGlzdGluZyBpbiBpb25pY29ucyAtLT5cbiAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1jYXJldC1sZWZ0XCIgYXJpYS1sYWJlbD1cIkdvIHRvIHByZXZpb3VzIHBhZ2VcIiBmaWxsQ29sb3I9XCJwcmltYXJ5XCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJldWktcGFnaW5hdG9yX19wYWdlLW5hdmlnYXRpb24tbnVtYmVyc1wiXG4gICAgICAgICpuZ0lmPVwiaGFzUGFnZU51bWJlck5hdmlnYXRpb24gJiYgISh1eEFwcFNoZWxsU2VydmljZS5icmVha3BvaW50cyQgfCBhc3luYykuaXNNb2JpbGVcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBldWlTaXplU1xuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHBhZ2VOdW1iZXIgb2YgcGFnZU51bWJlck5hdmlnYXRpb25cIlxuICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICBldWlCYXNpY0J1dHRvblxuICAgICAgICAgICAgZXVpUHJpbWFyeVxuICAgICAgICAgICAgZXVpUm91bmRlZFxuICAgICAgICAgICAgZXVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgW2V1aU91dGxpbmVdPVwicGFnZU51bWJlciA9PT0gcGFnZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZ29Ub1BhZ2UocGFnZU51bWJlcilcIj5cbiAgICAgICAgICAgIHt7IHBhZ2VOdW1iZXIgKyAxIHwgbnVtYmVyIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIobGVuZ3RoJCB8IGFzeW5jKSA+IDAgJiYgKHV4QXBwU2hlbGxTZXJ2aWNlLmJyZWFrcG9pbnRzJCB8IGFzeW5jKS5pc01vYmlsZVwiIGNsYXNzPVwiZXVpLXBhZ2luYXRvcl9fcGFnZS1yYW5nZVwiPlxuICAgICAgICB7eyByYW5nZSB9fSB7eyAnZXVpLmV1aXRhYmxlLlJBTkdFLUxBQkVMJyB8IHRyYW5zbGF0ZSB9fSB7eyByYW5nZUxlbmd0aCB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJldWktcGFnaW5hdG9yX19wYWdlLW5hdmlnYXRpb24taXRlbVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtldWlTaXplU109XCJoYXNQYWdlTnVtYmVyTmF2aWdhdGlvbiAmJiAhKHV4QXBwU2hlbGxTZXJ2aWNlLmJyZWFrcG9pbnRzJCB8IGFzeW5jKS5pc01vYmlsZVwiXG4gICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgICAgICBldWlSb3VuZGVkXG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJwYWdlICsgMSA9PT0gbmJQYWdlIHx8IGxlbmd0aCA9PT0gMCA/ICdkaXNhYmxlZCcgOiBudWxsXCJcbiAgICAgICAgICAgIChjbGljayk9XCJnb05leHRQYWdlKClcIj5cbiAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1jYXJldC1yaWdodFwiIGFyaWEtbGFiZWw9XCJHbyB0byBuZXh0IHBhZ2VcIiBmaWxsQ29sb3I9XCJwcmltYXJ5XCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJldWktcGFnaW5hdG9yX19wYWdlLW5hdmlnYXRpb24taXRlbVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtldWlTaXplU109XCJoYXNQYWdlTnVtYmVyTmF2aWdhdGlvbiAmJiAhKHV4QXBwU2hlbGxTZXJ2aWNlLmJyZWFrcG9pbnRzJCB8IGFzeW5jKS5pc01vYmlsZVwiXG4gICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgICAgICBldWlSb3VuZGVkXG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJwYWdlICsgMSA9PT0gbmJQYWdlIHx8IGxlbmd0aCA9PT0gMCA/ICdkaXNhYmxlZCcgOiBudWxsXCJcbiAgICAgICAgICAgIChjbGljayk9XCJnb0xhc3RQYWdlKClcIj5cbiAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1jYXJldC1sYXN0XCIgYXJpYS1sYWJlbD1cIkdvIHRvIGxhc3QgcGFnZVwiIGZpbGxDb2xvcj1cInByaW1hcnlcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXBhZ2luYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9ldWktcGFnaW5hdG9yL2V1aS1wYWdpbmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXBhZ2luYXRvci9ldWktcGFnaW5hdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsS0FBSyxFQUVMLFlBQVksRUFDWixNQUFNLEVBR04sV0FBVyxFQUNYLGlCQUFpQixFQUNqQix1QkFBdUIsR0FDMUIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUc1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7O0FBVTlDLE1BQU0sT0FBTyxxQkFBcUI7SUFROUIsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFtQjtRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFXRCxJQUNJLHVCQUF1QjtRQUN2QixPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsSUFBSSx1QkFBdUIsQ0FBQyxLQUFtQjtRQUMzQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELElBQ0ksZ0JBQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFJLGdCQUFnQixDQUFDLEtBQW1CO1FBQ3BDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBTUQsWUFDVyxrQkFBc0MsRUFDckMsT0FBb0I7UUFEckIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUNyQyxZQUFPLEdBQVAsT0FBTyxDQUFhO1FBOUNPLFlBQU8sR0FBRyxlQUFlLENBQUM7UUFDM0MsV0FBTSxHQUFHLGVBQWUsQ0FBQztRQUN0QyxvQkFBZSxHQUFhLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ1QsV0FBTSxHQUFHLENBQUMsQ0FBQztRQUNYLDJCQUFzQixHQUFHLENBQUMsQ0FBQztRQVFwQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRVIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFzQixDQUFDO1FBRXZELFVBQUssR0FBd0MsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkUsWUFBTyxHQUE0QixJQUFJLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQVl6RCw2QkFBd0IsR0FBRyxLQUFLLENBQUM7UUFRakMsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBRzFCLGFBQVEsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQUt6RCxDQUFDO0lBRUosV0FBVyxDQUFDLENBQWdCO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNuQjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3JILElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNuQjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNySCxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ25CO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbEM7UUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztRQUVuRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNyRixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7YUFDakI7WUFDRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFFaEIsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtnQkFDM0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO2FBQ3RDO2lCQUFNO2dCQUNILElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDO2FBQ3REO1lBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9HLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDcEIsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2xDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDakI7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDdkIsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1NBQzdCO2FBQU07WUFDSCxLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQ2I7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQy9ELEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7U0FDOUM7UUFFRCxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDWCxLQUFLLEdBQUcsQ0FBQyxDQUFDO1NBQ2I7UUFFRCxNQUFNLEdBQUcsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUN6QyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxjQUFjLENBQUMsSUFBWTtRQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0csSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWhCLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDM0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3RDO2FBQU07WUFDSCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztTQUN0RDtRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFTSxRQUFRLENBQUMsSUFBWTtRQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0csSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0csSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFTSxjQUFjO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksa0JBQWtCLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVNLFVBQVU7UUFDYixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0csSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFTSxVQUFVO1FBQ2IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0csSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFTSxPQUFPLENBQUMsSUFBd0I7UUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVNLFNBQVMsQ0FBQyxNQUFjO1FBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTSxRQUFRO1FBQ1gsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN4RCxNQUFNLEVBQUUsR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3RELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM5RyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE9BQU8sQ0FBQyxJQUFZO1FBQ3ZCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzt3SUF2TVEscUJBQXFCOzRIQUFyQixxQkFBcUIsOGJBRm5CLENBQUMsV0FBVyxDQUFDLCtDQzNCNUIscXZKQThHQTs7a0dEakZhLHFCQUFxQjtrQkFSakMsU0FBUzsrQkFDSSxlQUFlLGlCQUdWLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE9BQU8sYUFDckMsQ0FBQyxXQUFXLENBQUM7bUlBR2UsT0FBTztzQkFBN0MsV0FBVzt1QkFBQyxlQUFlOztzQkFBRyxLQUFLO2dCQUNkLE1BQU07c0JBQTNCLFdBQVc7dUJBQUMsT0FBTztnQkFDWCxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBRUYsUUFBUTtzQkFEWCxLQUFLO2dCQVNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBU0gsdUJBQXVCO3NCQUQxQixLQUFLO2dCQVNGLGdCQUFnQjtzQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIE9uSW5pdCxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIE91dHB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBIb3N0QmluZGluZyxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBFdWlBcHBTaGVsbFNlcnZpY2UgfSBmcm9tICdAZXVpL2NvcmUnO1xuXG5pbXBvcnQgeyBFdWlQYWdpbmF0aW9uRXZlbnQgfSBmcm9tICcuL21vZGVscy9wYWdpbmF0aW9uLWV2ZW50Lm1vZGVsJztcbmltcG9ydCB7IERlY2ltYWxQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktcGFnaW5hdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXVpLXBhZ2luYXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gICAgcHJvdmlkZXJzOiBbRGVjaW1hbFBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlQYWdpbmF0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1lMmUnKSBASW5wdXQoKSBlMmVBdHRyID0gJ2V1aS1wYWdpbmF0b3InO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBzdHJpbmcgPSAnZXVpLXBhZ2luYXRvcic7XG4gICAgQElucHV0KCkgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFs1LCAxMCwgMjUsIDUwLCAxMDBdO1xuICAgIEBJbnB1dCgpIHBhZ2VTaXplID0gMTA7XG4gICAgQElucHV0KCkgcGFnZSA9IDA7XG4gICAgQElucHV0KCkgbGVuZ3RoID0gMDtcbiAgICBASW5wdXQoKSBuYlBhZ2VOdW1iZXJOYXZpZ2F0aW9uID0gNTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0hpZGRlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSGlkZGVuO1xuICAgIH1cbiAgICBzZXQgaXNIaWRkZW4odmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0hpZGRlbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIF9pc0hpZGRlbiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEV1aVBhZ2luYXRpb25FdmVudD4oKTtcblxuICAgIHB1YmxpYyBwYWdlJDogQmVoYXZpb3JTdWJqZWN0PEV1aVBhZ2luYXRpb25FdmVudD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuICAgIHB1YmxpYyBsZW5ndGgkOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XG4gICAgcHVibGljIHJhbmdlOiBzdHJpbmc7XG4gICAgcHVibGljIHJhbmdlTGVuZ3RoOiBzdHJpbmc7XG4gICAgcHVibGljIG5iUGFnZTogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgaGFzUGFnZU51bWJlck5hdmlnYXRpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNQYWdlTnVtYmVyTmF2aWdhdGlvbjtcbiAgICB9XG4gICAgc2V0IGhhc1BhZ2VOdW1iZXJOYXZpZ2F0aW9uKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faGFzUGFnZU51bWJlck5hdmlnYXRpb24gPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9oYXNQYWdlTnVtYmVyTmF2aWdhdGlvbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGhhc0R5bmFtaWNMZW5ndGgoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNEeW5hbWljTGVuZ3RoO1xuICAgIH1cbiAgICBzZXQgaGFzRHluYW1pY0xlbmd0aCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2hhc0R5bmFtaWNMZW5ndGggPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9oYXNEeW5hbWljTGVuZ3RoID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIG5iUGFnZU51bWJlck5hdjogbnVtYmVyO1xuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBFdWlBcHBTaGVsbFNlcnZpY2U6IEV1aUFwcFNoZWxsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkZWNpbWFsOiBEZWNpbWFsUGlwZVxuICAgICkge31cblxuICAgIG5nT25DaGFuZ2VzKGM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGMgJiYgYy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoJC5uZXh0KGMubGVuZ3RoLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLmdldFJhbmdlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGMgJiYgYy5wYWdlKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2UkLm5leHQobmV3IEV1aVBhZ2luYXRpb25FdmVudCh7IHBhZ2U6IGMucGFnZS5jdXJyZW50VmFsdWUsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pKTtcbiAgICAgICAgICAgIHRoaXMuZ2V0UmFuZ2UoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYyAmJiBjLnBhZ2VTaXplKSB7XG4gICAgICAgICAgICB0aGlzLnBhZ2UkLm5leHQobmV3IEV1aVBhZ2luYXRpb25FdmVudCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IGMucGFnZVNpemUuY3VycmVudFZhbHVlLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pKTtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlUGFnZVNpemUoYy5wYWdlU2l6ZS5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5nZXRSYW5nZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5sZW5ndGgkLm5leHQodGhpcy5sZW5ndGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5uYlBhZ2VOdW1iZXJOYXYgPSB0aGlzLm5iUGFnZU51bWJlck5hdmlnYXRpb247XG5cbiAgICAgICAgdGhpcy5sZW5ndGgkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUoKGxlbmd0aCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sZW5ndGggPSBsZW5ndGg7XG4gICAgICAgICAgICB0aGlzLm5iUGFnZSA9IE1hdGguY2VpbCh0aGlzLmxlbmd0aCAvIHRoaXMucGFnZVNpemUpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmhhc0R5bmFtaWNMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhZ2UgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5nZXRSYW5nZSgpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5uYlBhZ2UgPCB0aGlzLm5iUGFnZU51bWJlck5hdmlnYXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5iUGFnZU51bWJlck5hdiA9IHRoaXMubmJQYWdlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5iUGFnZU51bWJlck5hdiA9IHRoaXMubmJQYWdlTnVtYmVyTmF2aWdhdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5wYWdlJC5uZXh0KG5ldyBFdWlQYWdpbmF0aW9uRXZlbnQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucGFnZSQubmV4dChuZXcgRXVpUGFnaW5hdGlvbkV2ZW50KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwgbmJQYWdlOiB0aGlzLm5iUGFnZSB9KSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGdldCBwYWdlTnVtYmVyTmF2aWdhdGlvbigpOiBudW1iZXJbXSB7XG4gICAgICAgIGNvbnN0IHBhZ2VzID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5uYlBhZ2U7IGkrKykge1xuICAgICAgICAgICAgcGFnZXMucHVzaChpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlbHRhID0gTWF0aC5mbG9vcih0aGlzLm5iUGFnZU51bWJlck5hdiAvIDIpO1xuICAgICAgICBsZXQgc3RhcnQgPSAwO1xuICAgICAgICBpZiAodGhpcy5wYWdlIC0gZGVsdGEgPiAwKSB7XG4gICAgICAgICAgICBzdGFydCA9IHRoaXMucGFnZSAtIGRlbHRhO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhcnQgPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubmJQYWdlIC0gdGhpcy5wYWdlIDw9IHRoaXMubmJQYWdlTnVtYmVyTmF2IC0gKGRlbHRhICsgMSkpIHtcbiAgICAgICAgICAgIHN0YXJ0ID0gdGhpcy5uYlBhZ2UgLSB0aGlzLm5iUGFnZU51bWJlck5hdjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdGFydCA8IDApIHtcbiAgICAgICAgICAgIHN0YXJ0ID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVuZCA9IHN0YXJ0ICsgdGhpcy5uYlBhZ2VOdW1iZXJOYXY7XG4gICAgICAgIHJldHVybiBwYWdlcy5zbGljZShzdGFydCwgZW5kKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hhbmdlUGFnZVNpemUoc2l6ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZVNpemUgPSBzaXplO1xuICAgICAgICB0aGlzLm5iUGFnZSA9IE1hdGguY2VpbCh0aGlzLmxlbmd0aCAvIHRoaXMucGFnZVNpemUpO1xuICAgICAgICB0aGlzLnBhZ2UgPSAwO1xuICAgICAgICB0aGlzLnBhZ2UkLm5leHQobmV3IEV1aVBhZ2luYXRpb25FdmVudCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSkpO1xuICAgICAgICB0aGlzLmdldFJhbmdlKCk7XG5cbiAgICAgICAgaWYgKHRoaXMubmJQYWdlIDwgdGhpcy5uYlBhZ2VOdW1iZXJOYXZpZ2F0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLm5iUGFnZU51bWJlck5hdiA9IHRoaXMubmJQYWdlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5uYlBhZ2VOdW1iZXJOYXYgPSB0aGlzLm5iUGFnZU51bWJlck5hdmlnYXRpb247XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdvVG9QYWdlKHBhZ2U6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2UgPSBwYWdlO1xuICAgICAgICB0aGlzLnBhZ2UkLm5leHQobmV3IEV1aVBhZ2luYXRpb25FdmVudCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSkpO1xuICAgICAgICB0aGlzLmdldFJhbmdlKCk7XG4gICAgICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwgbmJQYWdlOiB0aGlzLm5iUGFnZSB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ29GaXJzdFBhZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZSA9IDA7XG4gICAgICAgIHRoaXMucGFnZSQubmV4dChuZXcgRXVpUGFnaW5hdGlvbkV2ZW50KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwgbmJQYWdlOiB0aGlzLm5iUGFnZSB9KSk7XG4gICAgICAgIHRoaXMuZ2V0UmFuZ2UoKTtcbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnb1ByZXZpb3VzUGFnZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlLS07XG4gICAgICAgIHRoaXMucGFnZSQubmV4dChuZXcgRXVpUGFnaW5hdGlvbkV2ZW50KHsgcGFnZTogdGhpcy5wYWdlLCBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZSwgbmJQYWdlOiB0aGlzLm5iUGFnZSB9KSk7XG4gICAgICAgIHRoaXMuZ2V0UmFuZ2UoKTtcbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnb05leHRQYWdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2UrKztcbiAgICAgICAgdGhpcy5wYWdlJC5uZXh0KG5ldyBFdWlQYWdpbmF0aW9uRXZlbnQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pKTtcbiAgICAgICAgdGhpcy5nZXRSYW5nZSgpO1xuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdvTGFzdFBhZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZSA9IHRoaXMubmJQYWdlIC0gMTtcbiAgICAgICAgdGhpcy5wYWdlJC5uZXh0KG5ldyBFdWlQYWdpbmF0aW9uRXZlbnQoeyBwYWdlOiB0aGlzLnBhZ2UsIHBhZ2VTaXplOiB0aGlzLnBhZ2VTaXplLCBuYlBhZ2U6IHRoaXMubmJQYWdlIH0pKTtcbiAgICAgICAgdGhpcy5nZXRSYW5nZSgpO1xuICAgICAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh7IHBhZ2U6IHRoaXMucGFnZSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUsIG5iUGFnZTogdGhpcy5uYlBhZ2UgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFBhZ2UocGFnZTogRXVpUGFnaW5hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZSQubmV4dChwYWdlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0TGVuZ3RoKGxlbmd0aDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGVuZ3RoJC5uZXh0KGxlbmd0aCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJhbmdlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmcm9tID0gdGhpcy5sZW5ndGggPiAwID8gdGhpcy5wYWdlICogdGhpcy5wYWdlU2l6ZSArIDEgOiAwO1xuICAgICAgICBjb25zdCBsaW1pdCA9IHRoaXMucGFnZSAqIHRoaXMucGFnZVNpemUgKyB0aGlzLnBhZ2VTaXplO1xuICAgICAgICBjb25zdCB0byA9IGxpbWl0IDw9IHRoaXMubGVuZ3RoID8gbGltaXQgOiB0aGlzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5yYW5nZSA9IGZyb20gJiYgdG8gJiYgdGhpcy5sZW5ndGggPyB0aGlzLmRlY2ltYWwudHJhbnNmb3JtKGZyb20pICsgJ+KAkycgKyB0aGlzLmRlY2ltYWwudHJhbnNmb3JtKHRvKSA6ICcnO1xuICAgICAgICB0aGlzLnJhbmdlTGVuZ3RoID0gdGhpcy5sZW5ndGggPyB0aGlzLmxlbmd0aC50b1N0cmluZygpIDogJyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIHRoZSBwYWdpbmF0aW9uIHRvIHRoZSBnaXZlbiBwYWdlIG51bWJlclxuICAgICAqXG4gICAgICogQHBhcmFtIHBhZ2UgMC1iYXNlZCBwYWdlIG51bWJlciB0byBiZSBkaXNwbGF5ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0UGFnZShwYWdlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdvVG9QYWdlKHBhZ2UpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiIWlzSGlkZGVuICYmICEoRXVpQXBwU2hlbGxTZXJ2aWNlLmJyZWFrcG9pbnRzJCB8IGFzeW5jKS5pc01vYmlsZVwiIGNsYXNzPVwiZXVpLXBhZ2luYXRvcl9fcGFnZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJldWktcGFnaW5hdG9yX19wYWdlLXNlbGVjdG9yXCI+XG4gICAgICAgIHt7ICdldWkuZXVpdGFibGUuSVRFTVMtUEVSLVBBR0UnIHwgdHJhbnNsYXRlIH19OlxuICAgICAgICA8ZXVpLWRyb3Bkb3duPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZXVpQnV0dG9uIGV1aUJhc2ljQnV0dG9uIGV1aVNpemVTPlxuICAgICAgICAgICAgICAgIDxzcGFuIGV1aUxhYmVsXG4gICAgICAgICAgICAgICAgICAgID48c3Ryb25nPnt7IHBhZ2VTaXplIHwgbnVtYmVyIH19PC9zdHJvbmc+PC9zcGFuXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmdcbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cImV1aS1jYXJldC1kb3duXCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbENvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlNlbGVjdCBJdGVtcyBwZXIgcGFnZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXUtbWwtMnhzXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxldWktZHJvcGRvd24tY29udGVudD5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV1aURyb3Bkb3duSXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgZXVpU2l6ZVNcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwYWdlU2l6ZU9wdGlvbiBvZiBwYWdlU2l6ZU9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVBhZ2VTaXplKHBhZ2VTaXplT3B0aW9uKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgcGFnZVNpemVPcHRpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2V1aS1kcm9wZG93bi1jb250ZW50PlxuICAgICAgICA8L2V1aS1kcm9wZG93bj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiKGxlbmd0aCQgfCBhc3luYykgPiAwXCIgY2xhc3M9XCJldWktcGFnaW5hdG9yX19wYWdlLXJhbmdlXCI+XG4gICAgICAgIHt7ICdldWkuZXVpdGFibGUuU0hPV0lORy1SQU5HRScgfCB0cmFuc2xhdGU6IHsgcmFuZ2U6IHJhbmdlIH0gfX0ge3sgJ2V1aS5ldWl0YWJsZS5SQU5HRS1MQUJFTCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAge3sgcmFuZ2VMZW5ndGggfCBudW1iZXIgfX1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwiIWlzSGlkZGVuXCIgY2xhc3M9XCJldWktcGFnaW5hdG9yX19wYWdlLW5hdmlnYXRpb25cIj5cbiAgICA8ZGl2IGNsYXNzPVwiZXVpLXBhZ2luYXRvcl9fcGFnZS1uYXZpZ2F0aW9uLWl0ZW1cIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbZXVpU2l6ZVNdPVwiaGFzUGFnZU51bWJlck5hdmlnYXRpb24gJiYgIShFdWlBcHBTaGVsbFNlcnZpY2UuYnJlYWtwb2ludHMkIHwgYXN5bmMpLmlzTW9iaWxlXCJcbiAgICAgICAgICAgIGV1aUJ1dHRvblxuICAgICAgICAgICAgZXVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgZXVpQmFzaWNCdXR0b25cbiAgICAgICAgICAgIGV1aVJvdW5kZWRcbiAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cInBhZ2UgPT09IDAgfHwgbGVuZ3RoID09PSAwID8gJ2Rpc2FibGVkJyA6IG51bGxcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImdvRmlyc3RQYWdlKClcIj5cbiAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1jYXJldC1maXJzdFwiIGFyaWEtbGFiZWw9XCJHbyB0byBmaXJzdCBwYWdlXCIgZmlsbENvbG9yPVwicHJpbWFyeVwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZXVpLXBhZ2luYXRvcl9fcGFnZS1uYXZpZ2F0aW9uLWl0ZW1cIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbZXVpU2l6ZVNdPVwiaGFzUGFnZU51bWJlck5hdmlnYXRpb24gJiYgIShFdWlBcHBTaGVsbFNlcnZpY2UuYnJlYWtwb2ludHMkIHwgYXN5bmMpLmlzTW9iaWxlXCJcbiAgICAgICAgICAgIGV1aUJ1dHRvblxuICAgICAgICAgICAgZXVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgZXVpQmFzaWNCdXR0b25cbiAgICAgICAgICAgIGV1aVJvdW5kZWRcbiAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cInBhZ2UgPT09IDAgfHwgbGVuZ3RoID09PSAwID8gJ2Rpc2FibGVkJyA6IG51bGxcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImdvUHJldmlvdXNQYWdlKClcIj5cbiAgICAgICAgICAgIDwhLS0gdG8gYmUgY29tcGxpYW50IHdpdGggRFMgYXMgcGxheS1iYWNrIGlzIG5vdCBleGlzdGluZyBpbiBpb25pY29ucyAtLT5cbiAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1jYXJldC1sZWZ0XCIgYXJpYS1sYWJlbD1cIkdvIHRvIHByZXZpb3VzIHBhZ2VcIiBmaWxsQ29sb3I9XCJwcmltYXJ5XCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJldWktcGFnaW5hdG9yX19wYWdlLW5hdmlnYXRpb24tbnVtYmVyc1wiXG4gICAgICAgICpuZ0lmPVwiaGFzUGFnZU51bWJlck5hdmlnYXRpb24gJiYgIShFdWlBcHBTaGVsbFNlcnZpY2UuYnJlYWtwb2ludHMkIHwgYXN5bmMpLmlzTW9iaWxlXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgZXVpU2l6ZVNcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwYWdlTnVtYmVyIG9mIHBhZ2VOdW1iZXJOYXZpZ2F0aW9uXCJcbiAgICAgICAgICAgIGV1aUJ1dHRvblxuICAgICAgICAgICAgZXVpQmFzaWNCdXR0b25cbiAgICAgICAgICAgIGV1aVByaW1hcnlcbiAgICAgICAgICAgIGV1aVJvdW5kZWRcbiAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgIFtldWlPdXRsaW5lXT1cInBhZ2VOdW1iZXIgPT09IHBhZ2VcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9QYWdlKHBhZ2VOdW1iZXIpXCI+XG4gICAgICAgICAgICB7eyBwYWdlTnVtYmVyICsgMSB8IG51bWJlciB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiKGxlbmd0aCQgfCBhc3luYykgPiAwICYmIChFdWlBcHBTaGVsbFNlcnZpY2UuYnJlYWtwb2ludHMkIHwgYXN5bmMpLmlzTW9iaWxlXCIgY2xhc3M9XCJldWktcGFnaW5hdG9yX19wYWdlLXJhbmdlXCI+XG4gICAgICAgIHt7IHJhbmdlIH19IHt7ICdldWkuZXVpdGFibGUuUkFOR0UtTEFCRUwnIHwgdHJhbnNsYXRlIH19IHt7IHJhbmdlTGVuZ3RoIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImV1aS1wYWdpbmF0b3JfX3BhZ2UtbmF2aWdhdGlvbi1pdGVtXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2V1aVNpemVTXT1cImhhc1BhZ2VOdW1iZXJOYXZpZ2F0aW9uICYmICEoRXVpQXBwU2hlbGxTZXJ2aWNlLmJyZWFrcG9pbnRzJCB8IGFzeW5jKS5pc01vYmlsZVwiXG4gICAgICAgICAgICBldWlCdXR0b25cbiAgICAgICAgICAgIGV1aUljb25CdXR0b25cbiAgICAgICAgICAgIGV1aUJhc2ljQnV0dG9uXG4gICAgICAgICAgICBldWlSb3VuZGVkXG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJwYWdlICsgMSA9PT0gbmJQYWdlIHx8IGxlbmd0aCA9PT0gMCA/ICdkaXNhYmxlZCcgOiBudWxsXCJcbiAgICAgICAgICAgIChjbGljayk9XCJnb05leHRQYWdlKClcIj5cbiAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1jYXJldC1yaWdodFwiIGFyaWEtbGFiZWw9XCJHbyB0byBuZXh0IHBhZ2VcIiBmaWxsQ29sb3I9XCJwcmltYXJ5XCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJldWktcGFnaW5hdG9yX19wYWdlLW5hdmlnYXRpb24taXRlbVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtldWlTaXplU109XCJoYXNQYWdlTnVtYmVyTmF2aWdhdGlvbiAmJiAhKEV1aUFwcFNoZWxsU2VydmljZS5icmVha3BvaW50cyQgfCBhc3luYykuaXNNb2JpbGVcIlxuICAgICAgICAgICAgZXVpQnV0dG9uXG4gICAgICAgICAgICBldWlJY29uQnV0dG9uXG4gICAgICAgICAgICBldWlCYXNpY0J1dHRvblxuICAgICAgICAgICAgZXVpUm91bmRlZFxuICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwicGFnZSArIDEgPT09IG5iUGFnZSB8fCBsZW5ndGggPT09IDAgPyAnZGlzYWJsZWQnIDogbnVsbFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZ29MYXN0UGFnZSgpXCI+XG4gICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktY2FyZXQtbGFzdFwiIGFyaWEtbGFiZWw9XCJHbyB0byBsYXN0IHBhZ2VcIiBmaWxsQ29sb3I9XCJwcmltYXJ5XCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -274,13 +274,13 @@ export class EuiTimebarComponent {
274
274
  return 0;
275
275
  }
276
276
  }
277
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiTimebarComponent, deps: [{ token: i1.UxAppShellService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
277
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiTimebarComponent, deps: [{ token: i1.EuiAppShellService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
278
278
  /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.4", type: EuiTimebarComponent, selector: "eui-timebar", inputs: { e2eAttr: "e2eAttr", markedDate: "markedDate", items: "items", startLabel: "startLabel", endLabel: "endLabel", dateFormat: "dateFormat", isShowLegend: "isShowLegend", isShowLegendAsIndex: "isShowLegendAsIndex", isShowCurrentDateMarker: "isShowCurrentDateMarker", isCurrentDateMarkerAlwaysInRange: "isCurrentDateMarkerAlwaysInRange", isGroupOverlappingLabels: "isGroupOverlappingLabels" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"row flex-container\" #container>\n <div *ngIf=\"startLabel\" class=\"col-2 eui-timebar__start-label\">\n {{ startLabel }}\n </div>\n <div class=\"{{ timebarColumnClass }}\">\n <div class=\"eui-timebar\" [style.marginBottom.px]=\"extraTimelineLabelSpace\" attr.data-e2e=\"{{ e2eAttr }}\">\n <div\n *ngIf=\"isShowCurrentDateMarker\"\n class=\"eui-timebar__current-progress\"\n [style.width.%]=\"currentPerc >= 100 ? 100 : currentPerc\"></div>\n <div *ngIf=\"markedDate\" class=\"eui-timebar__current-progress\" [style.width.%]=\"markedPerc >= 100 ? 100 : markedPerc\"></div>\n <ng-template [ngIf]=\"!isMobile\">\n <ng-container *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <ng-container *ngIf=\"!item.isGrouped\">\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n <div class=\"eui-timebar__step-date-item\" [class.eui-timebar__step-date-item--with-end-date]=\"item.groupEndDate\">\n <span\n *ngIf=\"item.groupEndDate\"\n class=\"timebar__grouped__step {{\n item.stepTypeClass ? 'eui-timebar__step--' + item.stepTypeClass : ''\n }}\">\n {{ item.groupEndDate | date: dateFormat }}\n </span>\n <span\n class=\"{{ item.tooltipColor ? 'eui-timebar__step--' + item.tooltipColor : '' }}\"\n [class.timebar__grouped__step]=\"item.groupEndDate\">\n {{ item.item.date | date: dateFormat }}\n </span>\n </div>\n <div *ngIf=\"!isShowLegendGenerated\" [style.left.%]=\"item.perc\" class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n <span title=\"{{ item.groupLabel }}\">{{ item.groupLabel }}</span>\n </ng-container>\n </div>\n <div\n *ngIf=\"isShowLegendGenerated && isShowLegendAsIndexGenerated\"\n [style.left.%]=\"item.perc\"\n class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n {{ i + 1 }}\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <ng-template [ngIf]=\"isMobile\">\n <ng-container *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <ng-container *ngIf=\"!item.isGrouped\">\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n <div *ngIf=\"!isShowLegendGenerated\" class=\"eui-timebar__step-label\" title=\"{{ item.item.label }}\">\n <ng-container *ngIf=\"!item.groupLabel\">\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n <div *ngIf=\"isShowLegendGenerated && isShowLegendAsIndexGenerated\" class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n {{ i + 1 }}\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <div\n *ngIf=\"isShowCurrentDateMarker\"\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"currentPerc\"\n title=\"{{ currentDate | date: dateFormat }}\">\n <span class=\"ux-icon ux-icon-map-marker\"></span>\n </div>\n <div *ngIf=\"isShowCurrentDateMarker\" class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"currentPerc\">\n <span class=\"ux-icon ux-icon-circle\"></span>\n </div>\n <div\n *ngIf=\"markedDate\"\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"markedPerc\"\n title=\"{{ markedDate | date: dateFormat }}\">\n <span class=\"ux-icon ux-icon-map-marker\"></span>\n </div>\n <div *ngIf=\"markedDate\" class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"markedPerc\">\n <span class=\"ux-icon ux-icon-circle\"></span>\n </div>\n </div>\n </div>\n <div *ngIf=\"endLabel\" class=\"col-2 eui-timebar__end-label\">\n {{ endLabel }}\n </div>\n</div>\n<div class=\"row flex-container\">\n <div *ngIf=\"startLabel\" class=\"col-2\"></div>\n <div class=\"{{ timebarColumnClass }}\">\n <div *ngIf=\"isShowLegendGenerated || isSomeStepsAreGrouped\" class=\"eui-timebar__legend\">\n <ng-container *ngIf=\"isShowLegendGenerated\">\n <div class=\"eui-timebar__legend-item\" *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <div *ngIf=\"!isShowLegendAsIndexGenerated\" class=\"eui-timebar__legend-item-icon\">\n <span class=\"ux-icon ux-icon-fw ux-icon-circle eui-timebar__legend-item-icon--{{ item.item.stepType }}\"></span>\n </div>\n <div *ngIf=\"isShowLegendAsIndexGenerated\" class=\"eui-timebar__legend-item-index-wrapper\">\n {{ i + 1 }}\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <ng-template [ngIf]=\"isMobile\">\n <strong>{{ item.item.date | date: dateFormat }}</strong> - {{ item.item.label }}\n </ng-template>\n <ng-template [ngIf]=\"!isMobile\">\n {{ item.item.label }}\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!isShowLegendGenerated\">\n <ng-container *ngFor=\"let item of itemsUI; trackBy: trackByFn\">\n <div *ngIf=\"item.groupLabel || item.isGrouped\" class=\"eui-timebar__legend-item\">\n <div class=\"eui-timebar__legend-item-index-wrapper\">\n {{ item.groupIndex }}\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <strong>{{ item.item.date | date: dateFormat }}</strong> - {{ item.item.label }}\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"endLabel\" class=\"col-2\"></div>\n</div>\n", styles: [".eui-timebar{border-bottom:2px solid var(--eui-base-color-grey-25);margin:6rem 3rem;padding:5px;position:relative}.eui-timebar__step{border:7px solid var(--eui-base-color-primary-110);border-radius:16px;height:14px;position:absolute;width:14px}.eui-timebar__step-date-item{background-color:var(--eui-base-color-grey-80);border-radius:var(--eui-border-radius-base);color:var(--eui-base-color-white);font-size:var(--eui-base-font-size-s);max-width:8rem;min-width:6rem;padding:var(--eui-base-spacing-xs);position:absolute;text-align:center;top:-2.5rem;transform:rotate(65deg);transform-origin:50% -175%;white-space:normal}.eui-timebar__step-date-item--with-end-date{left:2.5rem;top:-1.75rem}.eui-timebar__step--with-current-date-marker.hint--top:before,.eui-timebar__step--with-current-date-marker.hint--top:after{bottom:25px}.eui-timebar__current-progress{border-bottom:3px solid var(--eui-base-color-primary-100);padding-top:5px;position:absolute}.eui-timebar__current-date-marker{color:var(--eui-base-color-danger-100);font-size:var(--eui-base-font-size-xl);margin-left:-2px;margin-top:-22px;position:absolute}.eui-timebar__current-date-marker-step{color:var(--eui-base-color-danger-100);font-size:var(--eui-base-font-size-xs);position:absolute}.eui-timebar__start-label,.eui-timebar__end-label{font-size:var(--eui-base-font-size-s);font-weight:700;margin-top:6.5rem}.eui-timebar__start-label{text-align:right}.eui-timebar__step-date-item--with-end-date{margin:0;padding:0}.timebar__grouped__step{border-radius:3px;display:block;padding:3px 8px}.timebar__grouped__step.eui-timebar__step--info{background-color:var(--eui-base-color-info-110)}.timebar__grouped__step.eui-timebar__step--success{background-color:var(--eui-base-color-success-110)}.timebar__grouped__step.eui-timebar__step--warning{background-color:var(--eui-base-color-warning-110)}.timebar__grouped__step.eui-timebar__step--danger{background-color:var(--eui-base-color-danger-110)}.eui-timebar__step--info{border-color:var(--eui-base-color-info-110)}.eui-timebar__step--info .eui-timebar__step-date-item{background-color:var(--eui-base-color-info-110)}.eui-timebar__step--success{border-color:var(--eui-base-color-success-110)}.eui-timebar__step--success .eui-timebar__step-date-item{background-color:var(--eui-base-color-success-110)}.eui-timebar__step--warning{border-color:var(--eui-base-color-warning-110)}.eui-timebar__step--warning .eui-timebar__step-date-item{background-color:var(--eui-base-color-warning-110)}.eui-timebar__step--danger{border-color:var(--eui-base-color-danger-110)}.eui-timebar__step--danger .eui-timebar__step-date-item{background-color:var(--eui-base-color-danger-110)}.eui-timebar__step-label{margin-left:-4rem;margin-top:.7rem;overflow:hidden;position:absolute;text-align:center;width:8rem}.eui-timebar__legend{margin-left:var(--eui-base-spacing-s);margin-top:3rem}.eui-timebar__legend-item{align-items:center;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-xs) var(--eui-base-spacing-xs) 0;width:100%}.eui-timebar__legend-item-icon{color:var(--eui-base-color-primary-100);font-size:16px;width:40px}.eui-timebar__legend-item-label{flex:1}.eui-timebar__legend-item-icon--info{color:var(--eui-base-color-info-110)}.eui-timebar__legend-item-icon--success{color:var(--eui-base-color-success-110)}.eui-timebar__legend-item-icon--warning{color:var(--eui-base-color-warning-110)}.eui-timebar__legend-item-icon--danger{color:var(--eui-base-color-danger-110)}.eui-timebar__legend-item-index-wrapper{background-color:var(--eui-base-color-primary-100);border-radius:100%;color:var(--eui-base-color-white);margin-right:var(--eui-base-spacing-m);padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s)}@media screen and (max-width: 767px){.eui-timebar{margin:5rem var(--eui-base-spacing-m)}.eui-timebar__legend{margin-bottom:var(--eui-base-spacing-l);margin-left:18px}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }], encapsulation: i0.ViewEncapsulation.None }); }
279
279
  }
280
280
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiTimebarComponent, decorators: [{
281
281
  type: Component,
282
282
  args: [{ selector: 'eui-timebar', encapsulation: ViewEncapsulation.None, template: "<div class=\"row flex-container\" #container>\n <div *ngIf=\"startLabel\" class=\"col-2 eui-timebar__start-label\">\n {{ startLabel }}\n </div>\n <div class=\"{{ timebarColumnClass }}\">\n <div class=\"eui-timebar\" [style.marginBottom.px]=\"extraTimelineLabelSpace\" attr.data-e2e=\"{{ e2eAttr }}\">\n <div\n *ngIf=\"isShowCurrentDateMarker\"\n class=\"eui-timebar__current-progress\"\n [style.width.%]=\"currentPerc >= 100 ? 100 : currentPerc\"></div>\n <div *ngIf=\"markedDate\" class=\"eui-timebar__current-progress\" [style.width.%]=\"markedPerc >= 100 ? 100 : markedPerc\"></div>\n <ng-template [ngIf]=\"!isMobile\">\n <ng-container *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <ng-container *ngIf=\"!item.isGrouped\">\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n <div class=\"eui-timebar__step-date-item\" [class.eui-timebar__step-date-item--with-end-date]=\"item.groupEndDate\">\n <span\n *ngIf=\"item.groupEndDate\"\n class=\"timebar__grouped__step {{\n item.stepTypeClass ? 'eui-timebar__step--' + item.stepTypeClass : ''\n }}\">\n {{ item.groupEndDate | date: dateFormat }}\n </span>\n <span\n class=\"{{ item.tooltipColor ? 'eui-timebar__step--' + item.tooltipColor : '' }}\"\n [class.timebar__grouped__step]=\"item.groupEndDate\">\n {{ item.item.date | date: dateFormat }}\n </span>\n </div>\n <div *ngIf=\"!isShowLegendGenerated\" [style.left.%]=\"item.perc\" class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n <span title=\"{{ item.groupLabel }}\">{{ item.groupLabel }}</span>\n </ng-container>\n </div>\n <div\n *ngIf=\"isShowLegendGenerated && isShowLegendAsIndexGenerated\"\n [style.left.%]=\"item.perc\"\n class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n {{ i + 1 }}\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <ng-template [ngIf]=\"isMobile\">\n <ng-container *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <ng-container *ngIf=\"!item.isGrouped\">\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n <div *ngIf=\"!isShowLegendGenerated\" class=\"eui-timebar__step-label\" title=\"{{ item.item.label }}\">\n <ng-container *ngIf=\"!item.groupLabel\">\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n <div *ngIf=\"isShowLegendGenerated && isShowLegendAsIndexGenerated\" class=\"eui-timebar__step-label\">\n <ng-container *ngIf=\"!item.groupLabel\">\n {{ i + 1 }}\n </ng-container>\n <ng-container *ngIf=\"item.groupLabel\">\n {{ item.groupLabel }}\n </ng-container>\n </div>\n </div>\n </ng-container>\n </ng-container>\n </ng-template>\n\n <div\n *ngIf=\"isShowCurrentDateMarker\"\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"currentPerc\"\n title=\"{{ currentDate | date: dateFormat }}\">\n <span class=\"ux-icon ux-icon-map-marker\"></span>\n </div>\n <div *ngIf=\"isShowCurrentDateMarker\" class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"currentPerc\">\n <span class=\"ux-icon ux-icon-circle\"></span>\n </div>\n <div\n *ngIf=\"markedDate\"\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"markedPerc\"\n title=\"{{ markedDate | date: dateFormat }}\">\n <span class=\"ux-icon ux-icon-map-marker\"></span>\n </div>\n <div *ngIf=\"markedDate\" class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"markedPerc\">\n <span class=\"ux-icon ux-icon-circle\"></span>\n </div>\n </div>\n </div>\n <div *ngIf=\"endLabel\" class=\"col-2 eui-timebar__end-label\">\n {{ endLabel }}\n </div>\n</div>\n<div class=\"row flex-container\">\n <div *ngIf=\"startLabel\" class=\"col-2\"></div>\n <div class=\"{{ timebarColumnClass }}\">\n <div *ngIf=\"isShowLegendGenerated || isSomeStepsAreGrouped\" class=\"eui-timebar__legend\">\n <ng-container *ngIf=\"isShowLegendGenerated\">\n <div class=\"eui-timebar__legend-item\" *ngFor=\"let item of itemsUI; let i = index; trackBy: trackByFn\">\n <div *ngIf=\"!isShowLegendAsIndexGenerated\" class=\"eui-timebar__legend-item-icon\">\n <span class=\"ux-icon ux-icon-fw ux-icon-circle eui-timebar__legend-item-icon--{{ item.item.stepType }}\"></span>\n </div>\n <div *ngIf=\"isShowLegendAsIndexGenerated\" class=\"eui-timebar__legend-item-index-wrapper\">\n {{ i + 1 }}\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <ng-template [ngIf]=\"isMobile\">\n <strong>{{ item.item.date | date: dateFormat }}</strong> - {{ item.item.label }}\n </ng-template>\n <ng-template [ngIf]=\"!isMobile\">\n {{ item.item.label }}\n </ng-template>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!isShowLegendGenerated\">\n <ng-container *ngFor=\"let item of itemsUI; trackBy: trackByFn\">\n <div *ngIf=\"item.groupLabel || item.isGrouped\" class=\"eui-timebar__legend-item\">\n <div class=\"eui-timebar__legend-item-index-wrapper\">\n {{ item.groupIndex }}\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <strong>{{ item.item.date | date: dateFormat }}</strong> - {{ item.item.label }}\n </div>\n </div>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"endLabel\" class=\"col-2\"></div>\n</div>\n", styles: [".eui-timebar{border-bottom:2px solid var(--eui-base-color-grey-25);margin:6rem 3rem;padding:5px;position:relative}.eui-timebar__step{border:7px solid var(--eui-base-color-primary-110);border-radius:16px;height:14px;position:absolute;width:14px}.eui-timebar__step-date-item{background-color:var(--eui-base-color-grey-80);border-radius:var(--eui-border-radius-base);color:var(--eui-base-color-white);font-size:var(--eui-base-font-size-s);max-width:8rem;min-width:6rem;padding:var(--eui-base-spacing-xs);position:absolute;text-align:center;top:-2.5rem;transform:rotate(65deg);transform-origin:50% -175%;white-space:normal}.eui-timebar__step-date-item--with-end-date{left:2.5rem;top:-1.75rem}.eui-timebar__step--with-current-date-marker.hint--top:before,.eui-timebar__step--with-current-date-marker.hint--top:after{bottom:25px}.eui-timebar__current-progress{border-bottom:3px solid var(--eui-base-color-primary-100);padding-top:5px;position:absolute}.eui-timebar__current-date-marker{color:var(--eui-base-color-danger-100);font-size:var(--eui-base-font-size-xl);margin-left:-2px;margin-top:-22px;position:absolute}.eui-timebar__current-date-marker-step{color:var(--eui-base-color-danger-100);font-size:var(--eui-base-font-size-xs);position:absolute}.eui-timebar__start-label,.eui-timebar__end-label{font-size:var(--eui-base-font-size-s);font-weight:700;margin-top:6.5rem}.eui-timebar__start-label{text-align:right}.eui-timebar__step-date-item--with-end-date{margin:0;padding:0}.timebar__grouped__step{border-radius:3px;display:block;padding:3px 8px}.timebar__grouped__step.eui-timebar__step--info{background-color:var(--eui-base-color-info-110)}.timebar__grouped__step.eui-timebar__step--success{background-color:var(--eui-base-color-success-110)}.timebar__grouped__step.eui-timebar__step--warning{background-color:var(--eui-base-color-warning-110)}.timebar__grouped__step.eui-timebar__step--danger{background-color:var(--eui-base-color-danger-110)}.eui-timebar__step--info{border-color:var(--eui-base-color-info-110)}.eui-timebar__step--info .eui-timebar__step-date-item{background-color:var(--eui-base-color-info-110)}.eui-timebar__step--success{border-color:var(--eui-base-color-success-110)}.eui-timebar__step--success .eui-timebar__step-date-item{background-color:var(--eui-base-color-success-110)}.eui-timebar__step--warning{border-color:var(--eui-base-color-warning-110)}.eui-timebar__step--warning .eui-timebar__step-date-item{background-color:var(--eui-base-color-warning-110)}.eui-timebar__step--danger{border-color:var(--eui-base-color-danger-110)}.eui-timebar__step--danger .eui-timebar__step-date-item{background-color:var(--eui-base-color-danger-110)}.eui-timebar__step-label{margin-left:-4rem;margin-top:.7rem;overflow:hidden;position:absolute;text-align:center;width:8rem}.eui-timebar__legend{margin-left:var(--eui-base-spacing-s);margin-top:3rem}.eui-timebar__legend-item{align-items:center;display:flex;padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-xs) var(--eui-base-spacing-xs) 0;width:100%}.eui-timebar__legend-item-icon{color:var(--eui-base-color-primary-100);font-size:16px;width:40px}.eui-timebar__legend-item-label{flex:1}.eui-timebar__legend-item-icon--info{color:var(--eui-base-color-info-110)}.eui-timebar__legend-item-icon--success{color:var(--eui-base-color-success-110)}.eui-timebar__legend-item-icon--warning{color:var(--eui-base-color-warning-110)}.eui-timebar__legend-item-icon--danger{color:var(--eui-base-color-danger-110)}.eui-timebar__legend-item-index-wrapper{background-color:var(--eui-base-color-primary-100);border-radius:100%;color:var(--eui-base-color-white);margin-right:var(--eui-base-spacing-m);padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s)}@media screen and (max-width: 767px){.eui-timebar{margin:5rem var(--eui-base-spacing-m)}.eui-timebar__legend{margin-bottom:var(--eui-base-spacing-l);margin-left:18px}}\n"] }]
283
- }], ctorParameters: function () { return [{ type: i1.UxAppShellService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { container: [{
283
+ }], ctorParameters: function () { return [{ type: i1.EuiAppShellService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { container: [{
284
284
  type: ViewChild,
285
285
  args: ['container']
286
286
  }], e2eAttr: [{
@@ -319,4 +319,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4",
319
319
  declarations: [EuiTimebarComponent],
320
320
  }]
321
321
  }] });
322
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRpbWViYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXRpbWViYXIvZXVpLXRpbWViYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXRpbWViYXIvZXVpLXRpbWViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlILFNBQVMsRUFFVCxLQUFLLEVBQ0wsUUFBUSxFQU1SLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUc1RSxPQUFPLEVBQXFCLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQzs7OztBQUc1RCxNQUFNLE9BQU8sZ0JBQWdCO0NBUzVCO0FBUUQsTUFBTSxPQUFPLG1CQUFtQjtJQXFCNUIsSUFDSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFJLFlBQVksQ0FBQyxLQUFtQjtRQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUNJLG1CQUFtQjtRQUNuQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsSUFBSSxtQkFBbUIsQ0FBQyxLQUFtQjtRQUN2QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQ0ksdUJBQXVCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDO0lBQ3pDLENBQUM7SUFDRCxJQUFJLHVCQUF1QixDQUFDLEtBQW1CO1FBQzNDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxxQkFBcUIsQ0FBQyxLQUFL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Z0NBQWdDLEVBQUU7d0JBQ3ZDLFVBQVUsR0FBRyxDQUFDLENBQUM7cUJBQ2xCO3lCQUFNO3dCQUNILFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQztxQkFDbkI7aUJBQ0o7YUFDSjtZQUVELE9BQU8sVUFBVSxDQUFDO1NBQ3JCO2FBQU07WUFDSCxPQUFPLENBQUMsQ0FBQztTQUNaO0lBQ0wsQ0FBQzt3SUE5U1EsbUJBQW1COzRIQUFuQixtQkFBbUIsOGpCQ3hDaEMsdWxSQXNKQTs7a0dEOUdhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDSSxhQUFhLGlCQUdSLGlCQUFpQixDQUFDLElBQUk7d0lBZ0JiLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDYixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUYsWUFBWTtzQkFEZixLQUFLO2dCQVNGLG1CQUFtQjtzQkFEdEIsS0FBSztnQkFTRix1QkFBdUI7c0JBRDFCLEtBQUs7Z0JBU0YsZ0NBQWdDO3NCQURuQyxLQUFLO2dCQVNGLHdCQUF3QjtzQkFEM0IsS0FBSzs7QUFpUVYsTUFBTSxPQUFPLGdCQUFnQjt3SUFBaEIsZ0JBQWdCO3lJQUFoQixnQkFBZ0IsaUJBdFRoQixtQkFBbUIsYUFrVGxCLFlBQVksYUFsVGIsbUJBQW1CO3lJQXNUbkIsZ0JBQWdCLFlBSmYsWUFBWTs7a0dBSWIsZ0JBQWdCO2tCQUw1QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQzlCLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdDaGVja2VkLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIElucHV0LFxuICAgIE5nTW9kdWxlLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFNpbXBsZUNoYW5nZSxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFV4QXBwU2hlbGxTZXJ2aWNlLCBmb3JtYXROdW1iZXIgfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgRXVpVGltZWJhckl0ZW0gfSBmcm9tICcuL2V1aS10aW1lYmFyLWl0ZW0ubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgRXVpVGltZWJhckl0ZW1VSSB7XG4gICAgcGVyYzogbnVtYmVyO1xuICAgIHN0ZXBUeXBlQ2xhc3M6IHN0cmluZztcbiAgICB0b29sdGlwQ29sb3I6IHN0cmluZztcbiAgICBpc0dyb3VwZWQ/OiBib29sZWFuO1xuICAgIGdyb3VwSW5kZXg/OiBudW1iZXI7XG4gICAgZ3JvdXBMYWJlbD86IHN0cmluZztcbiAgICBncm91cEVuZERhdGU/OiBEYXRlO1xuICAgIGl0ZW06IEV1aVRpbWViYXJJdGVtO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS10aW1lYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXVpLXRpbWViYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEV1aVRpbWViYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0NoZWNrZWQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICBpdGVtc1VJOiBFdWlUaW1lYmFySXRlbVVJW10gPSBbXTtcbiAgICBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgY3VycmVudFBlcmM6IG51bWJlcjtcbiAgICBtYXJrZWRQZXJjOiBudW1iZXI7XG4gICAgdGltZWJhckNvbHVtbkNsYXNzID0gJ2NvbC0xMic7XG4gICAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgaXNTaG93TGVnZW5kR2VuZXJhdGVkOiBib29sZWFuO1xuICAgIGlzU2hvd0xlZ2VuZEFzSW5kZXhHZW5lcmF0ZWQ6IGJvb2xlYW47XG4gICAgaXNHcm91cE92ZXJsYXBwaW5nTGFiZWxzR2VuZXJhdGVkOiBib29sZWFuO1xuICAgIGlzTW9iaWxlID0gZmFsc2U7XG4gICAgaXNTb21lU3RlcHNBcmVHcm91cGVkID0gZmFsc2U7XG4gICAgZXh0cmFUaW1lbGluZUxhYmVsU3BhY2UgPSAyMTtcblxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIGNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gICAgQElucHV0KCkgZTJlQXR0ciA9ICdldWktdGltZWJhcic7XG4gICAgQElucHV0KCkgbWFya2VkRGF0ZTogRGF0ZTtcbiAgICBASW5wdXQoKSBpdGVtczogRXVpVGltZWJhckl0ZW1bXTtcbiAgICBASW5wdXQoKSBzdGFydExhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZW5kTGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBkYXRlRm9ybWF0ID0gJ1lZWVktTU0tZGQnO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzU2hvd0xlZ2VuZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzU2hvd0xlZ2VuZDtcbiAgICB9XG4gICAgc2V0IGlzU2hvd0xlZ2VuZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzU2hvd0xlZ2VuZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzU2hvd0xlZ2VuZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzU2hvd0xlZ2VuZEFzSW5kZXgoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Nob3dMZWdlbmRBc0luZGV4O1xuICAgIH1cbiAgICBzZXQgaXNTaG93TGVnZW5kQXNJbmRleCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzU2hvd0xlZ2VuZEFzSW5kZXggPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1Nob3dMZWdlbmRBc0luZGV4ID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1Nob3dDdXJyZW50RGF0ZU1hcmtlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzU2hvd0N1cnJlbnREYXRlTWFya2VyO1xuICAgIH1cbiAgICBzZXQgaXNTaG93Q3VycmVudERhdGVNYXJrZXIodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1Nob3dDdXJyZW50RGF0ZU1hcmtlciA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzU2hvd0N1cnJlbnREYXRlTWFya2VyID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0N1cnJlbnREYXRlTWFya2VyQWx3YXlzSW5SYW5nZTtcbiAgICB9XG4gICAgc2V0IGlzQ3VycmVudERhdGVNYXJrZXJBbHdheXNJblJhbmdlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2UgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0N1cnJlbnREYXRlTWFya2VyQWx3YXlzSW5SYW5nZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzR3JvdXBPdmVybGFwcGluZ0xhYmVscygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzR3JvdXBPdmVybGFwcGluZ0xhYmVscztcbiAgICB9XG4gICAgc2V0IGlzR3JvdXBPdmVybGFwcGluZ0xhYmVscyh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzR3JvdXBPdmVybGFwcGluZ0xhYmVscyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzR3JvdXBPdmVybGFwcGluZ0xhYmVscyA9IGZhbHNlO1xuXG4gICAgcHJvdGVjdGVkIG1heFN0ZXBXaWR0aCA9IDExMjsgLy8gMTEycHggPSA4cmVtID0gMiB4IDRyZW0gbWFyZ2luIGFyb3VuZCBzdGFydGluZyBhbmQgZW5kaW5nIGJ1bGxldC5cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGFzU2VydmljZTogVXhBcHBTaGVsbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5hc1NlcnZpY2UuYnJlYWtwb2ludHMkLnN1YnNjcmliZSgoYmtwcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbkJyZWFrcG9pbnRDaGFuZ2UoYmtwcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmVOdWxsSXRlbXMoKTtcbiAgICAgICAgdGhpcy5zb3J0SXRlbXMoKTtcblxuICAgICAgICBjb25zdCBzdGFydERhdGU6IERhdGUgPSB0aGlzLml0ZW1zWzBdLmRhdGU7XG4gICAgICAgIGNvbnN0IGVuZERhdGU6IERhdGUgPSB0aGlzLml0ZW1zW3RoaXMuaXRlbXMubGVuZ3RoIC0gMV0uZGF0ZTtcbiAgICAgICAgdGhpcy5pdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBsZXQgc3RlcFR5cGVDbGFzcyA9ICcnO1xuICAgICAgICAgICAgbGV0IHRvb2x0aXBDb2xvciA9ICdub25lJztcblxuICAgICAgICAgICAgaWYgKGl0ZW0uc3RlcFR5cGUpIHtcbiAgICAgICAgICAgICAgICBzdGVwVHlwZUNsYXNzID0gJ2V1aS10aW1lYmFyX19zdGVwLS0nICsgaXRlbS5zdGVwVHlwZTtcbiAgICAgICAgICAgICAgICB0b29sdGlwQ29sb3IgPSBpdGVtLnN0ZXBUeXBlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBpc051bWJlciA9IC9eXFxkK1xcLlxcZCskLy50ZXN0KGl0ZW0ubGFiZWwpIHx8IC9eXFxkKyQvLnRlc3QoaXRlbS5sYWJlbCk7XG5cbiAgICAgICAgICAgIGlmIChpc051bWJlcikge1xuICAgICAgICAgICAgICAgIGl0ZW0ubGFiZWwgPSBmb3JtYXROdW1iZXIoaXRlbS5sYWJlbCwgMik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuaXRlbXNVSS5wdXNoKHtcbiAgICAgICAgICAgICAgICBwZXJjOiB0aGlzLmNhbGN1bGF0ZVBlcmNlbnRhZ2UoaXRlbS5kYXRlLCBzdGFydERhdGUsIGVuZERhdGUpLFxuICAgICAgICAgICAgICAgIGl0ZW0sXG4gICAgICAgICAgICAgICAgc3RlcFR5cGVDbGFzcyxcbiAgICAgICAgICAgICAgICB0b29sdGlwQ29sb3IsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jdXJyZW50UGVyYyA9IHRoaXMuY2FsY3VsYXRlUGVyY2VudGFnZSh0aGlzLmN1cnJlbnREYXRlLCBzdGFydERhdGUsIGVuZERhdGUsIHRydWUpO1xuICAgICAgICB0aGlzLm1hcmtlZFBlcmMgPSB0aGlzLmNhbGN1bGF0ZVBlcmNlbnRhZ2UodGhpcy5tYXJrZWREYXRlLCBzdGFydERhdGUsIGVuZERhdGUsIHRydWUpO1xuXG4gICAgICAgIGlmICh0aGlzLnN0YXJ0TGFiZWwgJiYgdGhpcy5lbmRMYWJlbCkge1xuICAgICAgICAgICAgdGhpcy50aW1lYmFyQ29sdW1uQ2xhc3MgPSAnY29sLTgnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RhcnRMYWJlbCB8fCB0aGlzLmVuZExhYmVsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50aW1lYmFyQ29sdW1uQ2xhc3MgPSAnY29sLTEwJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGluaXRpYWxpemUgYXR0cmlidXRlc1xuICAgICAgICB0aGlzLmlzU2hvd0xlZ2VuZEdlbmVyYXRlZCA9IHRoaXMuaXNTaG93TGVnZW5kO1xuICAgICAgICB0aGlzLmlzU2hvd0xlZ2VuZEFzSW5kZXhHZW5lcmF0ZWQgPSB0aGlzLmlzU2hvd0xlZ2VuZEFzSW5kZXg7XG4gICAgICAgIHRoaXMuaXNHcm91cE92ZXJsYXBwaW5nTGFiZWxzR2VuZXJhdGVkID0gdGhpcy5pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHM7XG4gICAgICAgIHRoaXMuaXNNb2JpbGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ3JvdXBPdmVybGFwcGluZ0xhYmVscygpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzKSB7XG4gICAgICAgICAgICBjb25zdCBjaGFuZ2U6IFNpbXBsZUNoYW5nZSA9IGNoYW5nZXNbJ21hcmtlZERhdGUnXTtcbiAgICAgICAgICAgIGlmIChjaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydERhdGU6IERhdGUgPSB0aGlzLml0ZW1zWzBdLmRhdGU7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5kRGF0ZTogRGF0ZSA9IHRoaXMuaXRlbXNbdGhpcy5pdGVtcy5sZW5ndGggLSAxXS5kYXRlO1xuICAgICAgICAgICAgICAgIHRoaXMubWFya2VkUGVyYyA9IHRoaXMuY2FsY3VsYXRlUGVyY2VudGFnZShjaGFuZ2UuY3VycmVudFZhbHVlIGFzIERhdGUsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkJyZWFrcG9pbnRDaGFuZ2UoYmtwczogYW55KTogdm9pZCB7XG4gICAgICAgIGlmIChia3BzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0xlZ2VuZEdlbmVyYXRlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0xlZ2VuZEFzSW5kZXhHZW5lcmF0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5pc01vYmlsZSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0xlZ2VuZEdlbmVyYXRlZCA9IHRoaXMuaXNTaG93TGVnZW5kO1xuICAgICAgICAgICAgdGhpcy5pc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkID0gdGhpcy5pc1Nob3dMZWdlbmRBc0luZGV4O1xuICAgICAgICAgICAgdGhpcy5pc01vYmlsZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGl0ZW06IEV1aVRpbWViYXJJdGVtVUkpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaXRlbS5pdGVtLmxhYmVsO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZW1vdmVOdWxsSXRlbXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuaXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXRlbXNbaV0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgICAgIGktLTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc29ydEl0ZW1zKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pdGVtcykge1xuICAgICAgICAgICAgLy8gU29ydCBieSBhc2NlbmRpbmcgZGF0ZTpcbiAgICAgICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLml0ZW1zLnNvcnQoKGE6IEV1aVRpbWViYXJJdGVtLCBiOiBFdWlUaW1lYmFySXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChhICYmIGIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxhbnk+YS5kYXRlIC0gPGFueT5iLmRhdGU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ3JvdXBPdmVybGFwcGluZ0xhYmVscygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNHcm91cE92ZXJsYXBwaW5nTGFiZWxzR2VuZXJhdGVkKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyR3JvdXBpbmcoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyICYmIHRoaXMuaXRlbXNVSSAmJiB0aGlzLmlzU2hvd0xlZ2VuZEFzSW5kZXhHZW5lcmF0ZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXJFbGVtZW50ID0gdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IGNvbnRhaW5lckVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgLy8gY29uc3QgZ3JvdXBpbmdUaHJlc2hvbGQgPSB0aGlzLm1heFN0ZXBXaWR0aCAvIDI7XG4gICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBpbmdUaHJlc2hvbGQgPSAodGhpcy5tYXhTdGVwV2lkdGggKiAxMDApIC8gY29udGFpbmVyV2lkdGg7XG4gICAgICAgICAgICAgICAgbGV0IGdyb3VwaW5nQ291bnRlciA9IDA7XG4gICAgICAgICAgICAgICAgbGV0IG1vYmlsZUluZGV4RGlzcGxhY2VtZW50ID0gMDtcbiAgICAgICAgICAgICAgICBsZXQgcHJldmlvdXNVaUl0ZW0gPSBudWxsO1xuICAgICAgICAgICAgICAgIGxldCBsYXN0TW9iaWxlSW5kZXggPSAwO1xuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLml0ZW1zVUkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdWlJdGVtID0gdGhpcy5pdGVtc1VJW2ldO1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNVaUl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlID0gTWF0aC5hYnModWlJdGVtLnBlcmMgLSBwcmV2aW91c1VpSXRlbS5wZXJjKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaXN0YW5jZSA8PSBncm91cGluZ1RocmVzaG9sZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEdyb3VwIHRoZSAyIGl0ZW1zOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpID4gMCAmJiB0aGlzLml0ZW1zVUlbaSAtIDFdLmlzR3JvdXBlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2JpbGVJbmRleERpc3BsYWNlbWVudCA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzU2hvd0xlZ2VuZEdlbmVyYXRlZCAmJiBtb2JpbGVJbmRleERpc3BsYWNlbWVudCA8PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2JpbGVJbmRleERpc3BsYWNlbWVudCA9IGdyb3VwaW5nQ291bnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RNb2JpbGVJbmRleCA9IG1vYmlsZUluZGV4RGlzcGxhY2VtZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwaW5nQ291bnRlciA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBpbmdDb3VudGVyKys7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByZXZpb3VzVWlJdGVtLmdyb3VwTGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0uZ3JvdXBJbmRleCA9IGdyb3VwaW5nQ291bnRlciArIGxhc3RNb2JpbGVJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzU2hvd0xlZ2VuZEdlbmVyYXRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0uZ3JvdXBMYWJlbCA9ICcnICsgKGxhc3RNb2JpbGVJbmRleCArIGdyb3VwaW5nQ291bnRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1VpSXRlbS5ncm91cExhYmVsID0gJycgKyBpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwaW5nQ291bnRlcisrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVWlJdGVtLmdyb3VwTGFiZWwgKz0gJywgJyArIChsYXN0TW9iaWxlSW5kZXggKyBncm91cGluZ0NvdW50ZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVWlJdGVtLmdyb3VwTGFiZWwgKz0gJywgJyArIChpICsgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVWlJdGVtLmdyb3VwRW5kRGF0ZSA9IHVpSXRlbS5pdGVtLmRhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0uc3RlcFR5cGVDbGFzcyA9IHVpSXRlbS5pdGVtLnN0ZXBUeXBlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlJdGVtLmlzR3JvdXBlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlJdGVtLmdyb3VwSW5kZXggPSBncm91cGluZ0NvdW50ZXIgKyBsYXN0TW9iaWxlSW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1NvbWVTdGVwc0FyZUdyb3VwZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1VpSXRlbSA9IHVpSXRlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVWlJdGVtID0gdWlJdGVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNsZWFyR3JvdXBpbmcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNTb21lU3RlcHNBcmVHcm91cGVkID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zVUkpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLml0ZW1zVUkpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgaXRlbS5pc0dyb3VwZWQ7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0uZ3JvdXBJbmRleDtcbiAgICAgICAgICAgICAgICBkZWxldGUgaXRlbS5ncm91cExhYmVsO1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLmdyb3VwRW5kRGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmV4dHJhVGltZWxpbmVMYWJlbFNwYWNlID0gMjE7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNhbGN1bGF0ZUV4dHJhVGltZWxpbmVMYWJlbFNwYWNlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pdGVtc1VJKSB7XG4gICAgICAgICAgICBsZXQgbWF4TGFiZWxMZW5ndGggPSAwO1xuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuaXRlbXNVSSkge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLml0ZW0gJiYgaXRlbS5pdGVtLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgIG1heExhYmVsTGVuZ3RoID0gTWF0aC5tYXgobWF4TGFiZWxMZW5ndGgsIGl0ZW0uaXRlbS5sYWJlbC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG1heExhYmVsTGVuZ3RoID4gNTYpIHtcbiAgICAgICAgICAgICAgICAvLyA1NnB4ID0gNHJlbSBtYXJnaW4gb2YgdGhlIHRpbWVsaW5lIGl0c2VsZi5cbiAgICAgICAgICAgICAgICB0aGlzLmV4dHJhVGltZWxpbmVMYWJlbFNwYWNlID0gbWF4TGFiZWxMZW5ndGggKyAyODsgLy8gMjhweCA9IDJyZW0gPSAxIGxpbmUgb2YgdGV4dCBpbiBoZWlnaHQgKyBtYXJnaW5zXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2FsY3VsYXRlUGVyY2VudGFnZShkYXRlOiBEYXRlLCBzdGFydERhdGU6IERhdGUsIGVuZERhdGU6IERhdGUsIGNvbXBlbnNhdGVGb3JSYW5nZSA9IGZhbHNlKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKGRhdGUgJiYgc3RhcnREYXRlICYmIGVuZERhdGUpIHtcbiAgICAgICAgICAgIGxldCBwZXJjZW50YWdlID0gKChkYXRlLmdldFRpbWUoKSAtIHN0YXJ0RGF0ZS5nZXRUaW1lKCkpIC8gKGVuZERhdGUuZ2V0VGltZSgpIC0gc3RhcnREYXRlLmdldFRpbWUoKSkpICogMTAwO1xuXG4gICAgICAgICAgICBpZiAoY29tcGVuc2F0ZUZvclJhbmdlKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIGRhdGUgaXMgb3ZlciB0aGUgZW5kIGRhdGUsIG9yIGJlbG93IHRoZSBzdGFydCBkYXRlXG4gICAgICAgICAgICAgICAgLy8gc2ltdWxhdGUgaXRzIHBvc2l0aW9uaW5nIHRvIG5vdCBtZXNzIHVwIHRoZSB0aW1lYmFyIGdsb2JhbCB3aWR0aFxuICAgICAgICAgICAgICAgIGlmIChwZXJjZW50YWdlID4gMTAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzQ3VycmVudERhdGVNYXJrZXJBbHdheXNJblJhbmdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50YWdlID0gMTAwO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVyY2VudGFnZSA9IDEwMztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocGVyY2VudGFnZSA8PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzQ3VycmVudERhdGVNYXJrZXJBbHdheXNJblJhbmdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50YWdlID0gMDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnRhZ2UgPSAtMztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHBlcmNlbnRhZ2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICBleHBvcnRzOiBbRXVpVGltZWJhckNvbXBvbmVudF0sXG4gICAgZGVjbGFyYXRpb25zOiBbRXVpVGltZWJhckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEV1aVRpbWViYXJNb2R1bGUge31cbiIsIjxkaXYgY2xhc3M9XCJyb3cgZmxleC1jb250YWluZXJcIiAjY29udGFpbmVyPlxuICAgIDxkaXYgKm5nSWY9XCJzdGFydExhYmVsXCIgY2xhc3M9XCJjb2wtMiBldWktdGltZWJhcl9fc3RhcnQtbGFiZWxcIj5cbiAgICAgICAge3sgc3RhcnRMYWJlbCB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ7eyB0aW1lYmFyQ29sdW1uQ2xhc3MgfX1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10aW1lYmFyXCIgW3N0eWxlLm1hcmdpbkJvdHRvbS5weF09XCJleHRyYVRpbWVsaW5lTGFiZWxTcGFjZVwiIGF0dHIuZGF0YS1lMmU9XCJ7eyBlMmVBdHRyIH19XCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc1Nob3dDdXJyZW50RGF0ZU1hcmtlclwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJldWktdGltZWJhcl9fY3VycmVudC1wcm9ncmVzc1wiXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLiVdPVwiY3VycmVudFBlcmMgPj0gMTAwID8gMTAwIDogY3VycmVudFBlcmNcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtYXJrZWREYXRlXCIgY2xhc3M9XCJldWktdGltZWJhcl9fY3VycmVudC1wcm9ncmVzc1wiIFtzdHlsZS53aWR0aC4lXT1cIm1hcmtlZFBlcmMgPj0gMTAwID8gMTAwIDogbWFya2VkUGVyY1wiPjwvZGl2PlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFpc01vYmlsZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNVSTsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXRlbS5pc0dyb3VwZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10aW1lYmFyX19zdGVwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLnN0ZXBUeXBlQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LiVdPVwiaXRlbS5wZXJjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRpbWViYXJfX3N0ZXAtLXdpdGgtY3VycmVudC1kYXRlLW1hcmtlcl09XCJpc1Nob3dDdXJyZW50RGF0ZU1hcmtlciB8fCBtYXJrZWREYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10aW1lYmFyX19zdGVwLWRhdGUtaXRlbVwiIFtjbGFzcy5ldWktdGltZWJhcl9fc3RlcC1kYXRlLWl0ZW0tLXdpdGgtZW5kLWRhdGVdPVwiaXRlbS5ncm91cEVuZERhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5ncm91cEVuZERhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0aW1lYmFyX19ncm91cGVkX19zdGVwIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5zdGVwVHlwZUNsYXNzID8gJ2V1aS10aW1lYmFyX19zdGVwLS0nICsgaXRlbS5zdGVwVHlwZUNsYXNzIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmdyb3VwRW5kRGF0ZSB8IGRhdGU6IGRhdGVGb3JtYXQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ7eyBpdGVtLnRvb2x0aXBDb2xvciA/ICdldWktdGltZWJhcl9fc3RlcC0tJyArIGl0ZW0udG9vbHRpcENvbG9yIDogJycgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnRpbWViYXJfX2dyb3VwZWRfX3N0ZXBdPVwiaXRlbS5ncm91cEVuZERhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uaXRlbS5kYXRlIHwgZGF0ZTogZGF0ZUZvcm1hdCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc1Nob3dMZWdlbmRHZW5lcmF0ZWRcIiBbc3R5bGUubGVmdC4lXT1cIml0ZW0ucGVyY1wiIGNsYXNzPVwiZXVpLXRpbWViYXJfX3N0ZXAtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmdyb3VwTGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHRpdGxlPVwie3sgaXRlbS5pdGVtLmxhYmVsIH19XCI+e3sgaXRlbS5pdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9XCJ7eyBpdGVtLmdyb3VwTGFiZWwgfX1cIj57eyBpdGVtLmdyb3VwTGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc1Nob3dMZWdlbmRHZW5lcmF0ZWQgJiYgaXNTaG93TGVnZW5kQXNJbmRleEdlbmVyYXRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LiVdPVwiaXRlbS5wZXJjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldWktdGltZWJhcl9fc3RlcC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaSArIDEgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmdyb3VwTGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZ3JvdXBMYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJpc01vYmlsZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNVSTsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXRlbS5pc0dyb3VwZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10aW1lYmFyX19zdGVwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtLnN0ZXBUeXBlQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LiVdPVwiaXRlbS5wZXJjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXRpbWViYXJfX3N0ZXAtLXdpdGgtY3VycmVudC1kYXRlLW1hcmtlcl09XCJpc1Nob3dDdXJyZW50RGF0ZU1hcmtlciB8fCBtYXJrZWREYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc1Nob3dMZWdlbmRHZW5lcmF0ZWRcIiBjbGFzcz1cImV1aS10aW1lYmFyX19zdGVwLWxhYmVsXCIgdGl0bGU9XCJ7eyBpdGVtLml0ZW0ubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmdyb3VwTGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHRpdGxlPVwie3sgaXRlbS5pdGVtLmxhYmVsIH19XCI+e3sgaXRlbS5pdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5ncm91cExhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1Nob3dMZWdlbmRHZW5lcmF0ZWQgJiYgaXNTaG93TGVnZW5kQXNJbmRleEdlbmVyYXRlZFwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX3N0ZXAtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmdyb3VwTGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkgKyAxIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5ncm91cExhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmdyb3VwTGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc1Nob3dDdXJyZW50RGF0ZU1hcmtlclwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJldWktdGltZWJhcl9fY3VycmVudC1kYXRlLW1hcmtlclwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQuJV09XCJjdXJyZW50UGVyY1wiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBjdXJyZW50RGF0ZSB8IGRhdGU6IGRhdGVGb3JtYXQgfX1cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInV4LWljb24gdXgtaWNvbi1tYXAtbWFya2VyXCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNTaG93Q3VycmVudERhdGVNYXJrZXJcIiBjbGFzcz1cImV1aS10aW1lYmFyX19jdXJyZW50LWRhdGUtbWFya2VyLXN0ZXBcIiBbc3R5bGUubGVmdC4lXT1cImN1cnJlbnRQZXJjXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1eC1pY29uIHV4LWljb24tY2lyY2xlXCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJtYXJrZWREYXRlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10aW1lYmFyX19jdXJyZW50LWRhdGUtbWFya2VyXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC4lXT1cIm1hcmtlZFBlcmNcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgbWFya2VkRGF0ZSB8IGRhdGU6IGRhdGVGb3JtYXQgfX1cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInV4LWljb24gdXgtaWNvbi1tYXAtbWFya2VyXCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibWFya2VkRGF0ZVwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX2N1cnJlbnQtZGF0ZS1tYXJrZXItc3RlcFwiIFtzdHlsZS5sZWZ0LiVdPVwibWFya2VkUGVyY1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXgtaWNvbiB1eC1pY29uLWNpcmNsZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiZW5kTGFiZWxcIiBjbGFzcz1cImNvbC0yIGV1aS10aW1lYmFyX19lbmQtbGFiZWxcIj5cbiAgICAgICAge3sgZW5kTGFiZWwgfX1cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInJvdyBmbGV4LWNvbnRhaW5lclwiPlxuICAgIDxkaXYgKm5nSWY9XCJzdGFydExhYmVsXCIgY2xhc3M9XCJjb2wtMlwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ7eyB0aW1lYmFyQ29sdW1uQ2xhc3MgfX1cIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImlzU2hvd0xlZ2VuZEdlbmVyYXRlZCB8fCBpc1NvbWVTdGVwc0FyZUdyb3VwZWRcIiBjbGFzcz1cImV1aS10aW1lYmFyX19sZWdlbmRcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1Nob3dMZWdlbmRHZW5lcmF0ZWRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRpbWViYXJfX2xlZ2VuZC1pdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNVSTsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhaXNTaG93TGVnZW5kQXNJbmRleEdlbmVyYXRlZFwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX2xlZ2VuZC1pdGVtLWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXgtaWNvbiB1eC1pY29uLWZ3IHV4LWljb24tY2lyY2xlIGV1aS10aW1lYmFyX19sZWdlbmQtaXRlbS1pY29uLS17eyBpdGVtLml0ZW0uc3RlcFR5cGUgfX1cIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNTaG93TGVnZW5kQXNJbmRleEdlbmVyYXRlZFwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX2xlZ2VuZC1pdGVtLWluZGV4LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkgKyAxIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRpbWViYXJfX2xlZ2VuZC1pdGVtLWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiaXNNb2JpbGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IGl0ZW0uaXRlbS5kYXRlIHwgZGF0ZTogZGF0ZUZvcm1hdCB9fTwvc3Ryb25nPiAtIHt7IGl0ZW0uaXRlbS5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCIhaXNNb2JpbGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLml0ZW0ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzU2hvd0xlZ2VuZEdlbmVyYXRlZFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNVSTsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLmdyb3VwTGFiZWwgfHwgaXRlbS5pc0dyb3VwZWRcIiBjbGFzcz1cImV1aS10aW1lYmFyX19sZWdlbmQtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10aW1lYmFyX19sZWdlbmQtaXRlbS1pbmRleC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5ncm91cEluZGV4IH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW0tbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IGl0ZW0uaXRlbS5kYXRlIHwgZGF0ZTogZGF0ZUZvcm1hdCB9fTwvc3Ryb25nPiAtIHt7IGl0ZW0uaXRlbS5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJlbmRMYWJlbFwiIGNsYXNzPVwiY29sLTJcIj48L2Rpdj5cbjwvZGl2PlxuIl19
322
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLXRpbWViYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZXVpLXRpbWViYXIvZXVpLXRpbWViYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLXRpbWViYXIvZXVpLXRpbWViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlILFNBQVMsRUFFVCxLQUFLLEVBQ0wsUUFBUSxFQU1SLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUc1RSxPQUFPLEVBQXNCLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQzs7OztBQUc3RCxNQUFNLE9BQU8sZ0JBQWdCO0NBUzVCO0FBUUQsTUFBTSxPQUFPLG1CQUFtQjtJQXFCNUIsSUFDSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFJLFlBQVksQ0FBQyxLQUFtQjtRQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUNJLG1CQUFtQjtRQUNuQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsSUFBSSxtQkFBbUIsQ0FBQyxLQUFtQjtRQUN2QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQ0ksdUJBQXVCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDO0lBQ3pDLENBQUM7SUFDRCxJQUFJLHVCQUF1QixDQUFDLEtBQW1CO1FBQzNDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxxQkFBcUIsQ0FBQyxLQUFL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Z0NBQWdDLEVBQUU7d0JBQ3ZDLFVBQVUsR0FBRyxDQUFDLENBQUM7cUJBQ2xCO3lCQUFNO3dCQUNILFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQztxQkFDbkI7aUJBQ0o7YUFDSjtZQUVELE9BQU8sVUFBVSxDQUFDO1NBQ3JCO2FBQU07WUFDSCxPQUFPLENBQUMsQ0FBQztTQUNaO0lBQ0wsQ0FBQzt3SUE5U1EsbUJBQW1COzRIQUFuQixtQkFBbUIsOGpCQ3hDaEMsdWxSQXNKQTs7a0dEOUdhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDSSxhQUFhLGlCQUdSLGlCQUFpQixDQUFDLElBQUk7eUlBZ0JiLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDYixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUYsWUFBWTtzQkFEZixLQUFLO2dCQVNGLG1CQUFtQjtzQkFEdEIsS0FBSztnQkFTRix1QkFBdUI7c0JBRDFCLEtBQUs7Z0JBU0YsZ0NBQWdDO3NCQURuQyxLQUFLO2dCQVNGLHdCQUF3QjtzQkFEM0IsS0FBSzs7QUFpUVYsTUFBTSxPQUFPLGdCQUFnQjt3SUFBaEIsZ0JBQWdCO3lJQUFoQixnQkFBZ0IsaUJBdFRoQixtQkFBbUIsYUFrVGxCLFlBQVksYUFsVGIsbUJBQW1CO3lJQXNUbkIsZ0JBQWdCLFlBSmYsWUFBWTs7a0dBSWIsZ0JBQWdCO2tCQUw1QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQzlCLFlBQVksRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdDaGVja2VkLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIElucHV0LFxuICAgIE5nTW9kdWxlLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFNpbXBsZUNoYW5nZSxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEV1aUFwcFNoZWxsU2VydmljZSwgZm9ybWF0TnVtYmVyIH0gZnJvbSAnQGV1aS9jb3JlJztcbmltcG9ydCB7IEV1aVRpbWViYXJJdGVtIH0gZnJvbSAnLi9ldWktdGltZWJhci1pdGVtLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIEV1aVRpbWViYXJJdGVtVUkge1xuICAgIHBlcmM6IG51bWJlcjtcbiAgICBzdGVwVHlwZUNsYXNzOiBzdHJpbmc7XG4gICAgdG9vbHRpcENvbG9yOiBzdHJpbmc7XG4gICAgaXNHcm91cGVkPzogYm9vbGVhbjtcbiAgICBncm91cEluZGV4PzogbnVtYmVyO1xuICAgIGdyb3VwTGFiZWw/OiBzdHJpbmc7XG4gICAgZ3JvdXBFbmREYXRlPzogRGF0ZTtcbiAgICBpdGVtOiBFdWlUaW1lYmFySXRlbTtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktdGltZWJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V1aS10aW1lYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlUaW1lYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdDaGVja2VkLCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgaXRlbXNVSTogRXVpVGltZWJhckl0ZW1VSVtdID0gW107XG4gICAgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIGN1cnJlbnRQZXJjOiBudW1iZXI7XG4gICAgbWFya2VkUGVyYzogbnVtYmVyO1xuICAgIHRpbWViYXJDb2x1bW5DbGFzcyA9ICdjb2wtMTInO1xuICAgIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIGlzU2hvd0xlZ2VuZEdlbmVyYXRlZDogYm9vbGVhbjtcbiAgICBpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkOiBib29sZWFuO1xuICAgIGlzR3JvdXBPdmVybGFwcGluZ0xhYmVsc0dlbmVyYXRlZDogYm9vbGVhbjtcbiAgICBpc01vYmlsZSA9IGZhbHNlO1xuICAgIGlzU29tZVN0ZXBzQXJlR3JvdXBlZCA9IGZhbHNlO1xuICAgIGV4dHJhVGltZWxpbmVMYWJlbFNwYWNlID0gMjE7XG5cbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICAgIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLXRpbWViYXInO1xuICAgIEBJbnB1dCgpIG1hcmtlZERhdGU6IERhdGU7XG4gICAgQElucHV0KCkgaXRlbXM6IEV1aVRpbWViYXJJdGVtW107XG4gICAgQElucHV0KCkgc3RhcnRMYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGVuZExhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGF0ZUZvcm1hdCA9ICdZWVlZLU1NLWRkJztcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1Nob3dMZWdlbmQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Nob3dMZWdlbmQ7XG4gICAgfVxuICAgIHNldCBpc1Nob3dMZWdlbmQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1Nob3dMZWdlbmQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1Nob3dMZWdlbmQgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1Nob3dMZWdlbmRBc0luZGV4KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNTaG93TGVnZW5kQXNJbmRleDtcbiAgICB9XG4gICAgc2V0IGlzU2hvd0xlZ2VuZEFzSW5kZXgodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1Nob3dMZWdlbmRBc0luZGV4ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNTaG93TGVnZW5kQXNJbmRleCA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNTaG93Q3VycmVudERhdGVNYXJrZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Nob3dDdXJyZW50RGF0ZU1hcmtlcjtcbiAgICB9XG4gICAgc2V0IGlzU2hvd0N1cnJlbnREYXRlTWFya2VyKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNTaG93Q3VycmVudERhdGVNYXJrZXIgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1Nob3dDdXJyZW50RGF0ZU1hcmtlciA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzQ3VycmVudERhdGVNYXJrZXJBbHdheXNJblJhbmdlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2U7XG4gICAgfVxuICAgIHNldCBpc0N1cnJlbnREYXRlTWFya2VyQWx3YXlzSW5SYW5nZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzQ3VycmVudERhdGVNYXJrZXJBbHdheXNJblJhbmdlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2UgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHM7XG4gICAgfVxuICAgIHNldCBpc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHModmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHMgPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBtYXhTdGVwV2lkdGggPSAxMTI7IC8vIDExMnB4ID0gOHJlbSA9IDIgeCA0cmVtIG1hcmdpbiBhcm91bmQgc3RhcnRpbmcgYW5kIGVuZGluZyBidWxsZXQuXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhc1NlcnZpY2U6IEV1aUFwcFNoZWxsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmFzU2VydmljZS5icmVha3BvaW50cyQuc3Vic2NyaWJlKChia3BzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uQnJlYWtwb2ludENoYW5nZShia3BzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZU51bGxJdGVtcygpO1xuICAgICAgICB0aGlzLnNvcnRJdGVtcygpO1xuXG4gICAgICAgIGNvbnN0IHN0YXJ0RGF0ZTogRGF0ZSA9IHRoaXMuaXRlbXNbMF0uZGF0ZTtcbiAgICAgICAgY29uc3QgZW5kRGF0ZTogRGF0ZSA9IHRoaXMuaXRlbXNbdGhpcy5pdGVtcy5sZW5ndGggLSAxXS5kYXRlO1xuICAgICAgICB0aGlzLml0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGxldCBzdGVwVHlwZUNsYXNzID0gJyc7XG4gICAgICAgICAgICBsZXQgdG9vbHRpcENvbG9yID0gJ25vbmUnO1xuXG4gICAgICAgICAgICBpZiAoaXRlbS5zdGVwVHlwZSkge1xuICAgICAgICAgICAgICAgIHN0ZXBUeXBlQ2xhc3MgPSAnZXVpLXRpbWViYXJfX3N0ZXAtLScgKyBpdGVtLnN0ZXBUeXBlO1xuICAgICAgICAgICAgICAgIHRvb2x0aXBDb2xvciA9IGl0ZW0uc3RlcFR5cGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGlzTnVtYmVyID0gL15cXGQrXFwuXFxkKyQvLnRlc3QoaXRlbS5sYWJlbCkgfHwgL15cXGQrJC8udGVzdChpdGVtLmxhYmVsKTtcblxuICAgICAgICAgICAgaWYgKGlzTnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5sYWJlbCA9IGZvcm1hdE51bWJlcihpdGVtLmxhYmVsLCAyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5pdGVtc1VJLnB1c2goe1xuICAgICAgICAgICAgICAgIHBlcmM6IHRoaXMuY2FsY3VsYXRlUGVyY2VudGFnZShpdGVtLmRhdGUsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSksXG4gICAgICAgICAgICAgICAgaXRlbSxcbiAgICAgICAgICAgICAgICBzdGVwVHlwZUNsYXNzLFxuICAgICAgICAgICAgICAgIHRvb2x0aXBDb2xvcixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmN1cnJlbnRQZXJjID0gdGhpcy5jYWxjdWxhdGVQZXJjZW50YWdlKHRoaXMuY3VycmVudERhdGUsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgdHJ1ZSk7XG4gICAgICAgIHRoaXMubWFya2VkUGVyYyA9IHRoaXMuY2FsY3VsYXRlUGVyY2VudGFnZSh0aGlzLm1hcmtlZERhdGUsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSwgdHJ1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuc3RhcnRMYWJlbCAmJiB0aGlzLmVuZExhYmVsKSB7XG4gICAgICAgICAgICB0aGlzLnRpbWViYXJDb2x1bW5DbGFzcyA9ICdjb2wtOCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zdGFydExhYmVsIHx8IHRoaXMuZW5kTGFiZWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWViYXJDb2x1bW5DbGFzcyA9ICdjb2wtMTAnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gaW5pdGlhbGl6ZSBhdHRyaWJ1dGVzXG4gICAgICAgIHRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkID0gdGhpcy5pc1Nob3dMZWdlbmQ7XG4gICAgICAgIHRoaXMuaXNTaG93TGVnZW5kQXNJbmRleEdlbmVyYXRlZCA9IHRoaXMuaXNTaG93TGVnZW5kQXNJbmRleDtcbiAgICAgICAgdGhpcy5pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHNHZW5lcmF0ZWQgPSB0aGlzLmlzR3JvdXBPdmVybGFwcGluZ0xhYmVscztcbiAgICAgICAgdGhpcy5pc01vYmlsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ncm91cE92ZXJsYXBwaW5nTGFiZWxzKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZTogU2ltcGxlQ2hhbmdlID0gY2hhbmdlc1snbWFya2VkRGF0ZSddO1xuICAgICAgICAgICAgaWYgKGNoYW5nZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0RGF0ZTogRGF0ZSA9IHRoaXMuaXRlbXNbMF0uZGF0ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmREYXRlOiBEYXRlID0gdGhpcy5pdGVtc1t0aGlzLml0ZW1zLmxlbmd0aCAtIDFdLmRhdGU7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXJrZWRQZXJjID0gdGhpcy5jYWxjdWxhdGVQZXJjZW50YWdlKGNoYW5nZS5jdXJyZW50VmFsdWUgYXMgRGF0ZSwgc3RhcnREYXRlLCBlbmREYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQnJlYWtwb2ludENoYW5nZShia3BzOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKGJrcHMuaXNNb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuaXNTaG93TGVnZW5kQXNJbmRleEdlbmVyYXRlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmlzTW9iaWxlID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkID0gdGhpcy5pc1Nob3dMZWdlbmQ7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd0xlZ2VuZEFzSW5kZXhHZW5lcmF0ZWQgPSB0aGlzLmlzU2hvd0xlZ2VuZEFzSW5kZXg7XG4gICAgICAgICAgICB0aGlzLmlzTW9iaWxlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogRXVpVGltZWJhckl0ZW1VSSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBpdGVtLml0ZW0ubGFiZWw7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlbW92ZU51bGxJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXMpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pdGVtc1tpXSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICAgICAgaS0tO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBzb3J0SXRlbXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zKSB7XG4gICAgICAgICAgICAvLyBTb3J0IGJ5IGFzY2VuZGluZyBkYXRlOlxuICAgICAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuaXRlbXMuc29ydCgoYTogRXVpVGltZWJhckl0ZW0sIGI6IEV1aVRpbWViYXJJdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGEgJiYgYikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gPGFueT5hLmRhdGUgLSA8YW55PmIuZGF0ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBncm91cE92ZXJsYXBwaW5nTGFiZWxzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0dyb3VwT3ZlcmxhcHBpbmdMYWJlbHNHZW5lcmF0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJHcm91cGluZygpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5jb250YWluZXIgJiYgdGhpcy5pdGVtc1VJICYmIHRoaXMuaXNTaG93TGVnZW5kQXNJbmRleEdlbmVyYXRlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gY29udGFpbmVyRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICAvLyBjb25zdCBncm91cGluZ1RocmVzaG9sZCA9IHRoaXMubWF4U3RlcFdpZHRoIC8gMjtcbiAgICAgICAgICAgICAgICBjb25zdCBncm91cGluZ1RocmVzaG9sZCA9ICh0aGlzLm1heFN0ZXBXaWR0aCAqIDEwMCkgLyBjb250YWluZXJXaWR0aDtcbiAgICAgICAgICAgICAgICBsZXQgZ3JvdXBpbmdDb3VudGVyID0gMDtcbiAgICAgICAgICAgICAgICBsZXQgbW9iaWxlSW5kZXhEaXNwbGFjZW1lbnQgPSAwO1xuICAgICAgICAgICAgICAgIGxldCBwcmV2aW91c1VpSXRlbSA9IG51bGw7XG4gICAgICAgICAgICAgICAgbGV0IGxhc3RNb2JpbGVJbmRleCA9IDA7XG5cbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuaXRlbXNVSS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1aUl0ZW0gPSB0aGlzLml0ZW1zVUlbaV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c1VpSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBNYXRoLmFicyh1aUl0ZW0ucGVyYyAtIHByZXZpb3VzVWlJdGVtLnBlcmMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRpc3RhbmNlIDw9IGdyb3VwaW5nVGhyZXNob2xkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gR3JvdXAgdGhlIDIgaXRlbXM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPiAwICYmIHRoaXMuaXRlbXNVSVtpIC0gMV0uaXNHcm91cGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vYmlsZUluZGV4RGlzcGxhY2VtZW50ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkICYmIG1vYmlsZUluZGV4RGlzcGxhY2VtZW50IDw9IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vYmlsZUluZGV4RGlzcGxhY2VtZW50ID0gZ3JvdXBpbmdDb3VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdE1vYmlsZUluZGV4ID0gbW9iaWxlSW5kZXhEaXNwbGFjZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBpbmdDb3VudGVyID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cGluZ0NvdW50ZXIrKztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcHJldmlvdXNVaUl0ZW0uZ3JvdXBMYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1VpSXRlbS5ncm91cEluZGV4ID0gZ3JvdXBpbmdDb3VudGVyICsgbGFzdE1vYmlsZUluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNTaG93TGVnZW5kR2VuZXJhdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1VpSXRlbS5ncm91cExhYmVsID0gJycgKyAobGFzdE1vYmlsZUluZGV4ICsgZ3JvdXBpbmdDb3VudGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVWlJdGVtLmdyb3VwTGFiZWwgPSAnJyArIGk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBpbmdDb3VudGVyKys7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc1Nob3dMZWdlbmRHZW5lcmF0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0uZ3JvdXBMYWJlbCArPSAnLCAnICsgKGxhc3RNb2JpbGVJbmRleCArIGdyb3VwaW5nQ291bnRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0uZ3JvdXBMYWJlbCArPSAnLCAnICsgKGkgKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0uZ3JvdXBFbmREYXRlID0gdWlJdGVtLml0ZW0uZGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1VpSXRlbS5zdGVwVHlwZUNsYXNzID0gdWlJdGVtLml0ZW0uc3RlcFR5cGU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aUl0ZW0uaXNHcm91cGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aUl0ZW0uZ3JvdXBJbmRleCA9IGdyb3VwaW5nQ291bnRlciArIGxhc3RNb2JpbGVJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU29tZVN0ZXBzQXJlR3JvdXBlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVWlJdGVtID0gdWlJdGVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNVaUl0ZW0gPSB1aUl0ZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2xlYXJHcm91cGluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1NvbWVTdGVwc0FyZUdyb3VwZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXNVSSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuaXRlbXNVSSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLmlzR3JvdXBlZDtcbiAgICAgICAgICAgICAgICBkZWxldGUgaXRlbS5ncm91cEluZGV4O1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLmdyb3VwTGFiZWw7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0uZ3JvdXBFbmREYXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZXh0cmFUaW1lbGluZUxhYmVsU3BhY2UgPSAyMTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2FsY3VsYXRlRXh0cmFUaW1lbGluZUxhYmVsU3BhY2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zVUkpIHtcbiAgICAgICAgICAgIGxldCBtYXhMYWJlbExlbmd0aCA9IDA7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5pdGVtc1VJKSB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uaXRlbSAmJiBpdGVtLml0ZW0ubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4TGFiZWxMZW5ndGggPSBNYXRoLm1heChtYXhMYWJlbExlbmd0aCwgaXRlbS5pdGVtLmxhYmVsLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobWF4TGFiZWxMZW5ndGggPiA1Nikge1xuICAgICAgICAgICAgICAgIC8vIDU2cHggPSA0cmVtIG1hcmdpbiBvZiB0aGUgdGltZWxpbmUgaXRzZWxmLlxuICAgICAgICAgICAgICAgIHRoaXMuZXh0cmFUaW1lbGluZUxhYmVsU3BhY2UgPSBtYXhMYWJlbExlbmd0aCArIDI4OyAvLyAyOHB4ID0gMnJlbSA9IDEgbGluZSBvZiB0ZXh0IGluIGhlaWdodCArIG1hcmdpbnNcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjYWxjdWxhdGVQZXJjZW50YWdlKGRhdGU6IERhdGUsIHN0YXJ0RGF0ZTogRGF0ZSwgZW5kRGF0ZTogRGF0ZSwgY29tcGVuc2F0ZUZvclJhbmdlID0gZmFsc2UpOiBudW1iZXIge1xuICAgICAgICBpZiAoZGF0ZSAmJiBzdGFydERhdGUgJiYgZW5kRGF0ZSkge1xuICAgICAgICAgICAgbGV0IHBlcmNlbnRhZ2UgPSAoKGRhdGUuZ2V0VGltZSgpIC0gc3RhcnREYXRlLmdldFRpbWUoKSkgLyAoZW5kRGF0ZS5nZXRUaW1lKCkgLSBzdGFydERhdGUuZ2V0VGltZSgpKSkgKiAxMDA7XG5cbiAgICAgICAgICAgIGlmIChjb21wZW5zYXRlRm9yUmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAvLyBpZiB0aGUgZGF0ZSBpcyBvdmVyIHRoZSBlbmQgZGF0ZSwgb3IgYmVsb3cgdGhlIHN0YXJ0IGRhdGVcbiAgICAgICAgICAgICAgICAvLyBzaW11bGF0ZSBpdHMgcG9zaXRpb25pbmcgdG8gbm90IG1lc3MgdXAgdGhlIHRpbWViYXIgZ2xvYmFsIHdpZHRoXG4gICAgICAgICAgICAgICAgaWYgKHBlcmNlbnRhZ2UgPiAxMDApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnRhZ2UgPSAxMDA7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50YWdlID0gMTAzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwZXJjZW50YWdlIDw9IDApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDdXJyZW50RGF0ZU1hcmtlckFsd2F5c0luUmFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmNlbnRhZ2UgPSAwO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVyY2VudGFnZSA9IC0zO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcGVyY2VudGFnZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtFdWlUaW1lYmFyQ29tcG9uZW50XSxcbiAgICBkZWNsYXJhdGlvbnM6IFtFdWlUaW1lYmFyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpVGltZWJhck1vZHVsZSB7fVxuIiwiPGRpdiBjbGFzcz1cInJvdyBmbGV4LWNvbnRhaW5lclwiICNjb250YWluZXI+XG4gICAgPGRpdiAqbmdJZj1cInN0YXJ0TGFiZWxcIiBjbGFzcz1cImNvbC0yIGV1aS10aW1lYmFyX19zdGFydC1sYWJlbFwiPlxuICAgICAgICB7eyBzdGFydExhYmVsIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInt7IHRpbWViYXJDb2x1bW5DbGFzcyB9fVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRpbWViYXJcIiBbc3R5bGUubWFyZ2luQm90dG9tLnB4XT1cImV4dHJhVGltZWxpbmVMYWJlbFNwYWNlXCIgYXR0ci5kYXRhLWUyZT1cInt7IGUyZUF0dHIgfX1cIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzU2hvd0N1cnJlbnREYXRlTWFya2VyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10aW1lYmFyX19jdXJyZW50LXByb2dyZXNzXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCJjdXJyZW50UGVyYyA+PSAxMDAgPyAxMDAgOiBjdXJyZW50UGVyY1wiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1hcmtlZERhdGVcIiBjbGFzcz1cImV1aS10aW1lYmFyX19jdXJyZW50LXByb2dyZXNzXCIgW3N0eWxlLndpZHRoLiVdPVwibWFya2VkUGVyYyA+PSAxMDAgPyAxMDAgOiBtYXJrZWRQZXJjXCI+PC9kaXY+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIWlzTW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1VJOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmlzR3JvdXBlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRpbWViYXJfX3N0ZXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uc3RlcFR5cGVDbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQuJV09XCJpdGVtLnBlcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGltZWJhcl9fc3RlcC0td2l0aC1jdXJyZW50LWRhdGUtbWFya2VyXT1cImlzU2hvd0N1cnJlbnREYXRlTWFya2VyIHx8IG1hcmtlZERhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRpbWViYXJfX3N0ZXAtZGF0ZS1pdGVtXCIgW2NsYXNzLmV1aS10aW1lYmFyX19zdGVwLWRhdGUtaXRlbS0td2l0aC1lbmQtZGF0ZV09XCJpdGVtLmdyb3VwRW5kRGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmdyb3VwRW5kRGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRpbWViYXJfX2dyb3VwZWRfX3N0ZXAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnN0ZXBUeXBlQ2xhc3MgPyAnZXVpLXRpbWViYXJfX3N0ZXAtLScgKyBpdGVtLnN0ZXBUeXBlQ2xhc3MgOiAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZ3JvdXBFbmREYXRlIHwgZGF0ZTogZGF0ZUZvcm1hdCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInt7IGl0ZW0udG9vbHRpcENvbG9yID8gJ2V1aS10aW1lYmFyX19zdGVwLS0nICsgaXRlbS50b29sdGlwQ29sb3IgOiAnJyB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MudGltZWJhcl9fZ3JvdXBlZF9fc3RlcF09XCJpdGVtLmdyb3VwRW5kRGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5pdGVtLmRhdGUgfCBkYXRlOiBkYXRlRm9ybWF0IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzU2hvd0xlZ2VuZEdlbmVyYXRlZFwiIFtzdHlsZS5sZWZ0LiVdPVwiaXRlbS5wZXJjXCIgY2xhc3M9XCJldWktdGltZWJhcl9fc3RlcC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9XCJ7eyBpdGVtLml0ZW0ubGFiZWwgfX1cIj57eyBpdGVtLml0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5ncm91cExhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiB0aXRsZT1cInt7IGl0ZW0uZ3JvdXBMYWJlbCB9fVwiPnt7IGl0ZW0uZ3JvdXBMYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzU2hvd0xlZ2VuZEdlbmVyYXRlZCAmJiBpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQuJV09XCJpdGVtLnBlcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10aW1lYmFyX19zdGVwLWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXRlbS5ncm91cExhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpICsgMSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5ncm91cExhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImlzTW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1VJOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmlzR3JvdXBlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRpbWViYXJfX3N0ZXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uc3RlcFR5cGVDbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmxlZnQuJV09XCJpdGVtLnBlcmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5ldWktdGltZWJhcl9fc3RlcC0td2l0aC1jdXJyZW50LWRhdGUtbWFya2VyXT1cImlzU2hvd0N1cnJlbnREYXRlTWFya2VyIHx8IG1hcmtlZERhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzU2hvd0xlZ2VuZEdlbmVyYXRlZFwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX3N0ZXAtbGFiZWxcIiB0aXRsZT1cInt7IGl0ZW0uaXRlbS5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdGl0bGU9XCJ7eyBpdGVtLml0ZW0ubGFiZWwgfX1cIj57eyBpdGVtLml0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5ncm91cExhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmdyb3VwTGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzU2hvd0xlZ2VuZEdlbmVyYXRlZCAmJiBpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkXCIgY2xhc3M9XCJldWktdGltZWJhcl9fc3RlcC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uZ3JvdXBMYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaSArIDEgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmdyb3VwTGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uZ3JvdXBMYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzU2hvd0N1cnJlbnREYXRlTWFya2VyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImV1aS10aW1lYmFyX19jdXJyZW50LWRhdGUtbWFya2VyXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC4lXT1cImN1cnJlbnRQZXJjXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7IGN1cnJlbnREYXRlIHwgZGF0ZTogZGF0ZUZvcm1hdCB9fVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXgtaWNvbiB1eC1pY29uLW1hcC1tYXJrZXJcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1Nob3dDdXJyZW50RGF0ZU1hcmtlclwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX2N1cnJlbnQtZGF0ZS1tYXJrZXItc3RlcFwiIFtzdHlsZS5sZWZ0LiVdPVwiY3VycmVudFBlcmNcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInV4LWljb24gdXgtaWNvbi1jaXJjbGVcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cIm1hcmtlZERhdGVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZXVpLXRpbWViYXJfX2N1cnJlbnQtZGF0ZS1tYXJrZXJcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5sZWZ0LiVdPVwibWFya2VkUGVyY1wiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBtYXJrZWREYXRlIHwgZGF0ZTogZGF0ZUZvcm1hdCB9fVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXgtaWNvbiB1eC1pY29uLW1hcC1tYXJrZXJcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtYXJrZWREYXRlXCIgY2xhc3M9XCJldWktdGltZWJhcl9fY3VycmVudC1kYXRlLW1hcmtlci1zdGVwXCIgW3N0eWxlLmxlZnQuJV09XCJtYXJrZWRQZXJjXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1eC1pY29uIHV4LWljb24tY2lyY2xlXCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJlbmRMYWJlbFwiIGNsYXNzPVwiY29sLTIgZXVpLXRpbWViYXJfX2VuZC1sYWJlbFwiPlxuICAgICAgICB7eyBlbmRMYWJlbCB9fVxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicm93IGZsZXgtY29udGFpbmVyXCI+XG4gICAgPGRpdiAqbmdJZj1cInN0YXJ0TGFiZWxcIiBjbGFzcz1cImNvbC0yXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInt7IHRpbWViYXJDb2x1bW5DbGFzcyB9fVwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNTaG93TGVnZW5kR2VuZXJhdGVkIHx8IGlzU29tZVN0ZXBzQXJlR3JvdXBlZFwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX2xlZ2VuZFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2hvd0xlZ2VuZEdlbmVyYXRlZFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1VJOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkXCIgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW0taWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1eC1pY29uIHV4LWljb24tZncgdXgtaWNvbi1jaXJjbGUgZXVpLXRpbWViYXJfX2xlZ2VuZC1pdGVtLWljb24tLXt7IGl0ZW0uaXRlbS5zdGVwVHlwZSB9fVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1Nob3dMZWdlbmRBc0luZGV4R2VuZXJhdGVkXCIgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW0taW5kZXgtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaSArIDEgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktdGltZWJhcl9fbGVnZW5kLWl0ZW0tbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJpc01vYmlsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgaXRlbS5pdGVtLmRhdGUgfCBkYXRlOiBkYXRlRm9ybWF0IH19PC9zdHJvbmc+IC0ge3sgaXRlbS5pdGVtLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFpc01vYmlsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uaXRlbS5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNTaG93TGVnZW5kR2VuZXJhdGVkXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1VJOyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uZ3JvdXBMYWJlbCB8fCBpdGVtLmlzR3JvdXBlZFwiIGNsYXNzPVwiZXVpLXRpbWViYXJfX2xlZ2VuZC1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXRpbWViYXJfX2xlZ2VuZC1pdGVtLWluZGV4LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmdyb3VwSW5kZXggfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS10aW1lYmFyX19sZWdlbmQtaXRlbS1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgaXRlbS5pdGVtLmRhdGUgfCBkYXRlOiBkYXRlRm9ybWF0IH19PC9zdHJvbmc+IC0ge3sgaXRlbS5pdGVtLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImVuZExhYmVsXCIgY2xhc3M9XCJjb2wtMlwiPjwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -15,17 +15,17 @@ export class EuiAppBreadcrumbComponent {
15
15
  getCssClasses() {
16
16
  return ['eui-app-breadcrumb'].join(' ');
17
17
  }
18
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiAppBreadcrumbComponent, deps: [{ token: i1.UxAppShellService }], target: i0.ɵɵFactoryTarget.Component }); }
18
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiAppBreadcrumbComponent, deps: [{ token: i1.EuiAppShellService }], target: i0.ɵɵFactoryTarget.Component }); }
19
19
  /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.4", type: EuiAppBreadcrumbComponent, selector: "eui-app-breadcrumb", host: { properties: { "class": "this.cssClasses", "attr.role": "this.role" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [".eui-app-breadcrumb{align-items:center;display:flex;flex-direction:row;height:var(--eui-app-breadcrumb-height);top:calc(var(--eui-app-header-height) + var(--eui-app-toolbar-height) + var(--eui-app-top-message-height));position:relative;margin:var(--eui-base-spacing-m) 0 var(--eui-base-spacing-xs) 0;width:100%;z-index:10}@media screen and (max-width: 767px){.eui-app-breadcrumb{visibility:hidden}}\n"], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
20
20
  }
21
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: EuiAppBreadcrumbComponent, decorators: [{
22
22
  type: Component,
23
23
  args: [{ selector: 'eui-app-breadcrumb', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, template: "<ng-content></ng-content>\n", styles: [".eui-app-breadcrumb{align-items:center;display:flex;flex-direction:row;height:var(--eui-app-breadcrumb-height);top:calc(var(--eui-app-header-height) + var(--eui-app-toolbar-height) + var(--eui-app-top-message-height));position:relative;margin:var(--eui-base-spacing-m) 0 var(--eui-base-spacing-xs) 0;width:100%;z-index:10}@media screen and (max-width: 767px){.eui-app-breadcrumb{visibility:hidden}}\n"] }]
24
- }], ctorParameters: function () { return [{ type: i1.UxAppShellService }]; }, propDecorators: { cssClasses: [{
24
+ }], ctorParameters: function () { return [{ type: i1.EuiAppShellService }]; }, propDecorators: { cssClasses: [{
25
25
  type: HostBinding,
26
26
  args: ['class']
27
27
  }], role: [{
28
28
  type: HostBinding,
29
29
  args: ['attr.role']
30
30
  }] } });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9sYXlvdXQvZXVpLWFwcC9ldWktYXBwLWJyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9sYXlvdXQvZXVpLWFwcC9ldWktYXBwLWJyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7O0FBVzNHLE1BQU0sT0FBTyx5QkFBeUI7SUFDbEMsSUFDSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUdELFlBQW9CLFNBQTRCO1FBQTVCLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBRnRCLFNBQUksR0FBRyxLQUFLLENBQUM7SUFFWSxDQUFDO0lBRXBELFFBQVE7UUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVPLGFBQWE7UUFDakIsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7d0lBZlEseUJBQXlCOzRIQUF6Qix5QkFBeUIsMElDWHRDLDZCQUNBOztrR0RVYSx5QkFBeUI7a0JBUHJDLFNBQVM7K0JBQ0ksb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE9BQU8saUJBQ2pDLGlCQUFpQixDQUFDLElBQUk7d0dBSWpDLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPO2dCQUlNLElBQUk7c0JBQTdCLFdBQVc7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBWaWV3RW5jYXBzdWxhdGlvbiwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFV4QXBwU2hlbGxTZXJ2aWNlIH0gZnJvbSAnQGV1aS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktYXBwLWJyZWFkY3J1bWInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9icmVhZGNydW1iLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9fc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEV1aUFwcEJyZWFkY3J1bWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENzc0NsYXNzZXMoKTtcbiAgICB9XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ25hdic7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFzU2VydmljZTogVXhBcHBTaGVsbFNlcnZpY2UpIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hc1NlcnZpY2UuYWN0aXZhdGVCcmVhZGNydW1iKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbJ2V1aS1hcHAtYnJlYWRjcnVtYiddLmpvaW4oJyAnKTtcbiAgICB9XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9sYXlvdXQvZXVpLWFwcC9ldWktYXBwLWJyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9sYXlvdXQvZXVpLWFwcC9ldWktYXBwLWJyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7O0FBVzNHLE1BQU0sT0FBTyx5QkFBeUI7SUFDbEMsSUFDSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUdELFlBQW9CLFNBQTZCO1FBQTdCLGNBQVMsR0FBVCxTQUFTLENBQW9CO1FBRnZCLFNBQUksR0FBRyxLQUFLLENBQUM7SUFFYSxDQUFDO0lBRXJELFFBQVE7UUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVPLGFBQWE7UUFDakIsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7d0lBZlEseUJBQXlCOzRIQUF6Qix5QkFBeUIsMElDWHRDLDZCQUNBOztrR0RVYSx5QkFBeUI7a0JBUHJDLFNBQVM7K0JBQ0ksb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE9BQU8saUJBQ2pDLGlCQUFpQixDQUFDLElBQUk7eUdBSWpDLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPO2dCQUlNLElBQUk7c0JBQTdCLFdBQVc7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBWaWV3RW5jYXBzdWxhdGlvbiwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEV1aUFwcFNoZWxsU2VydmljZSB9IGZyb20gJ0BldWkvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLWFwcC1icmVhZGNydW1iJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vX3N0eWxlcy9faW5kZXguc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlBcHBCcmVhZGNydW1iQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDc3NDbGFzc2VzKCk7XG4gICAgfVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJykgcm9sZSA9ICduYXYnO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhc1NlcnZpY2U6IEV1aUFwcFNoZWxsU2VydmljZSkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFzU2VydmljZS5hY3RpdmF0ZUJyZWFkY3J1bWIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFsnZXVpLWFwcC1icmVhZGNydW1iJ10uam9pbignICcpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==