@eui/ecl 18.0.0-next.5 → 18.0.0-next.6

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 (221) hide show
  1. package/assets/i18n-ecl/bg.json +1 -1
  2. package/assets/i18n-ecl/cs.json +1 -1
  3. package/assets/i18n-ecl/da.json +1 -1
  4. package/assets/i18n-ecl/de.json +1 -1
  5. package/assets/i18n-ecl/el.json +1 -1
  6. package/assets/i18n-ecl/en.json +1 -1
  7. package/assets/i18n-ecl/es.json +1 -1
  8. package/assets/i18n-ecl/et.json +1 -1
  9. package/assets/i18n-ecl/fi.json +1 -1
  10. package/assets/i18n-ecl/fr.json +1 -1
  11. package/assets/i18n-ecl/ga.json +1 -1
  12. package/assets/i18n-ecl/hr.json +1 -1
  13. package/assets/i18n-ecl/hu.json +1 -1
  14. package/assets/i18n-ecl/it.json +1 -1
  15. package/assets/i18n-ecl/lt.json +1 -1
  16. package/assets/i18n-ecl/lv.json +1 -1
  17. package/assets/i18n-ecl/mt.json +1 -1
  18. package/assets/i18n-ecl/nl.json +1 -1
  19. package/assets/i18n-ecl/pl.json +1 -1
  20. package/assets/i18n-ecl/pt.json +1 -1
  21. package/assets/i18n-ecl/ro.json +1 -1
  22. package/assets/i18n-ecl/sk.json +1 -1
  23. package/assets/i18n-ecl/sl.json +1 -1
  24. package/assets/i18n-ecl/sv.json +1 -1
  25. package/docs/classes/{EclMessageCloseEvent.html → EclNotificationCloseEvent.html} +3 -3
  26. package/docs/components/EclAccordionComponent.html +2 -2
  27. package/docs/components/EclAccordionItemComponent.html +2 -2
  28. package/docs/components/EclAppComponent.html +2 -2
  29. package/docs/components/EclBannerComponent.html +2 -2
  30. package/docs/components/EclBlockquoteComponent.html +2 -2
  31. package/docs/components/EclBreadcrumbComponent.html +2 -2
  32. package/docs/components/EclBreadcrumbSegmentComponent.html +2 -2
  33. package/docs/components/EclButtonComponent.html +2 -2
  34. package/docs/components/EclCardBodyComponent.html +2 -2
  35. package/docs/components/EclCardComponent.html +2 -2
  36. package/docs/components/EclCarouselComponent.html +71 -26
  37. package/docs/components/EclCarouselItemComponent.html +2 -2
  38. package/docs/components/EclCategoryFilterComponent.html +2 -2
  39. package/docs/components/EclCategoryFilterItemComponent.html +2 -2
  40. package/docs/components/EclCategoryFilterListComponent.html +2 -2
  41. package/docs/components/EclCheckboxHelpComponent.html +2 -2
  42. package/docs/components/EclCheckboxLabelComponent.html +2 -2
  43. package/docs/components/EclContentBlockComponent.html +2 -2
  44. package/docs/components/EclContentItemComponent.html +2 -2
  45. package/docs/components/EclDateBlockComponent.html +2 -2
  46. package/docs/components/EclDescriptionListDefinitionComponent.html +2 -2
  47. package/docs/components/EclExpandableComponent.html +2 -2
  48. package/docs/components/EclFactFiguresComponent.html +2 -2
  49. package/docs/components/EclFactFiguresDescriptionComponent.html +2 -2
  50. package/docs/components/EclFactFiguresItemComponent.html +2 -2
  51. package/docs/components/EclFactFiguresTitleComponent.html +2 -2
  52. package/docs/components/EclFactFiguresValueComponent.html +2 -2
  53. package/docs/components/EclFactFiguresViewAllComponent.html +2 -2
  54. package/docs/components/EclFeaturedComponent.html +2 -2
  55. package/docs/components/EclFeaturedItemComponent.html +2 -2
  56. package/docs/components/EclFeaturedItemDescriptionComponent.html +2 -2
  57. package/docs/components/EclFileComponent.html +2 -2
  58. package/docs/components/EclFileItemComponent.html +2 -2
  59. package/docs/components/EclFileItemsComponent.html +2 -2
  60. package/docs/components/EclFileTaxonomyComponent.html +2 -2
  61. package/docs/components/EclFormGroupComponent.html +2 -2
  62. package/docs/components/EclFormLabelComponent.html +2 -2
  63. package/docs/components/EclGalleryComponent.html +2 -2
  64. package/docs/components/EclGalleryFooterComponent.html +2 -2
  65. package/docs/components/EclGalleryItemComponent.html +2 -2
  66. package/docs/components/EclIconComponent.html +2 -2
  67. package/docs/components/EclInpageNavigationComponent.html +2 -2
  68. package/docs/components/EclInpageNavigationItemComponent.html +2 -2
  69. package/docs/components/EclListIllustrationComponent.html +2 -2
  70. package/docs/components/EclListIllustrationItemComponent.html +2 -2
  71. package/docs/components/{EclSpinnerComponent.html → EclLoadingIndicatorComponent.html} +13 -13
  72. package/docs/components/EclMediaContainerComponent.html +2 -2
  73. package/docs/components/EclMenuComponent.html +2 -2
  74. package/docs/components/EclMenuItemComponent.html +2 -2
  75. package/docs/components/EclMenuMegaComponent.html +2 -2
  76. package/docs/components/EclMenuMegaItemComponent.html +2 -2
  77. package/docs/components/EclModalBodyComponent.html +2 -2
  78. package/docs/components/EclModalComponent.html +2 -2
  79. package/docs/components/EclModalFooterComponent.html +2 -2
  80. package/docs/components/EclModalHeaderComponent.html +3 -3
  81. package/docs/components/EclMultiselectComponent.html +2 -2
  82. package/docs/components/EclMultiselectDropdownComponent.html +2 -2
  83. package/docs/components/EclMultiselectInputComponent.html +2 -2
  84. package/docs/components/EclMultiselectOptgroupComponent.html +2 -2
  85. package/docs/components/EclMultiselectOptionComponent.html +2 -2
  86. package/docs/components/EclNavigationListComponent.html +2 -2
  87. package/docs/components/EclNavigationListImageComponent.html +2 -2
  88. package/docs/components/EclNavigationListItemComponent.html +2 -2
  89. package/docs/components/EclNewsTickerComponent.html +2 -2
  90. package/docs/components/EclNewsTickerItemComponent.html +2 -2
  91. package/docs/components/{EclMessageComponent.html → EclNotificationComponent.html} +103 -48
  92. package/docs/components/EclPageHeaderComponent.html +2 -2
  93. package/docs/components/EclPageHeaderDescriptionContainerComponent.html +2 -2
  94. package/docs/components/EclPaginationComponent.html +2 -2
  95. package/docs/components/EclPaginationItemComponent.html +2 -2
  96. package/docs/components/EclPopoverComponent.html +265 -77
  97. package/docs/components/EclRadioHelpComponent.html +2 -2
  98. package/docs/components/EclRadioLabelComponent.html +2 -2
  99. package/docs/components/EclRangeValueComponent.html +2 -2
  100. package/docs/components/EclRatingFieldComponent.html +2 -2
  101. package/docs/components/EclSearchFormComponent.html +2 -2
  102. package/docs/components/EclSelectContainerComponent.html +2 -2
  103. package/docs/components/EclSiteFooterComponent.html +2 -2
  104. package/docs/components/EclSiteFooterFixedContentECComponent.html +2 -2
  105. package/docs/components/EclSiteFooterFixedContentEUComponent.html +2 -2
  106. package/docs/components/EclSiteHeaderActionComponent.html +2 -2
  107. package/docs/components/EclSiteHeaderBannerTopComponent.html +2 -2
  108. package/docs/components/EclSiteHeaderComponent.html +2 -2
  109. package/docs/components/EclSiteHeaderEnvironmentComponent.html +2 -2
  110. package/docs/components/EclSiteHeaderLanguageComponent.html +2 -2
  111. package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +2 -2
  112. package/docs/components/EclSiteHeaderLoginComponent.html +2 -2
  113. package/docs/components/EclSiteHeaderMessageComponent.html +2 -2
  114. package/docs/components/EclSiteHeaderSearchComponent.html +2 -2
  115. package/docs/components/EclSocialMediaFollowComponent.html +2 -2
  116. package/docs/components/EclSocialMediaFollowItemComponent.html +2 -2
  117. package/docs/components/EclSocialMediaShareComponent.html +2 -2
  118. package/docs/components/EclSocialMediaShareItemComponent.html +2 -2
  119. package/docs/components/EclStickyContainerComponent.html +2 -2
  120. package/docs/components/EclTabComponent.html +2 -2
  121. package/docs/components/EclTabLabelComponent.html +2 -2
  122. package/docs/components/EclTabMoreComponent.html +2 -2
  123. package/docs/components/EclTableSortButtonComponent.html +2 -2
  124. package/docs/components/EclTabsComponent.html +2 -2
  125. package/docs/components/EclTagComponent.html +2 -2
  126. package/docs/components/EclTimelineComponent.html +2 -2
  127. package/docs/components/EclTimelineItemComponent.html +2 -2
  128. package/docs/components/EclTimelineItemTogglerComponent.html +2 -2
  129. package/docs/dependencies.html +5 -7
  130. package/docs/directives/{EclSpinnerLabelDirective.html → EclLoadingIndicatorLabelDirective.html} +4 -4
  131. package/docs/directives/{EclPopoverItemDirective.html → EclLoadingIndicatorOverlayDirective.html} +4 -4
  132. package/docs/directives/{EclPopoverListDirective.html → EclNotificationTitleDirective.html} +4 -4
  133. package/docs/index.html +1 -1
  134. package/docs/js/menu-wc.js +86 -92
  135. package/docs/js/menu-wc_es5.js +1 -1
  136. package/docs/js/search/search_index.js +2 -2
  137. package/docs/miscellaneous/variables.html +2 -55
  138. package/docs/modules/EclAllModule.html +12 -12
  139. package/docs/modules/{EclSpinnerComponentModule.html → EclLoadingIndicatorComponentModule.html} +13 -7
  140. package/docs/modules/{EclMessageComponentModule.html → EclNotificationComponentModule.html} +7 -7
  141. package/docs/modules.html +18 -18
  142. package/esm2022/lib/components/ecl-carousel/ecl-carousel.component.mjs +2 -4
  143. package/esm2022/lib/components/ecl-loading-indicator/ecl-loading-indicator-label.directive.mjs +19 -0
  144. package/esm2022/lib/components/ecl-loading-indicator/ecl-loading-indicator-overlay.directive.mjs +20 -0
  145. package/esm2022/lib/components/ecl-loading-indicator/ecl-loading-indicator.component.mjs +43 -0
  146. package/esm2022/lib/components/ecl-loading-indicator/ecl-loading-indicator.module.mjs +21 -0
  147. package/esm2022/lib/components/ecl-loading-indicator/index.mjs +5 -0
  148. package/esm2022/lib/components/ecl-modal/ecl-modal-header.component.mjs +3 -3
  149. package/esm2022/lib/components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.mjs +1 -1
  150. package/esm2022/lib/components/ecl-notification/ecl-notification-title.directive.mjs +20 -0
  151. package/esm2022/lib/components/ecl-notification/ecl-notification.component.mjs +82 -0
  152. package/esm2022/lib/components/ecl-notification/ecl-notification.module.mjs +23 -0
  153. package/esm2022/lib/components/ecl-notification/index.mjs +4 -0
  154. package/esm2022/lib/components/ecl-popover/ecl-popover.component.mjs +177 -36
  155. package/esm2022/lib/components/ecl-popover/ecl-popover.module.mjs +8 -17
  156. package/esm2022/lib/components/ecl-popover/index.mjs +1 -2
  157. package/esm2022/lib/components/index.mjs +3 -3
  158. package/esm2022/lib/shared/ecl-all.module.mjs +11 -11
  159. package/fesm2022/eui-ecl.mjs +4012 -3914
  160. package/fesm2022/eui-ecl.mjs.map +4 -4
  161. package/lib/components/ecl-carousel/ecl-carousel.component.d.ts +2 -2
  162. package/lib/components/ecl-carousel/ecl-carousel.component.d.ts.map +1 -1
  163. package/lib/components/ecl-loading-indicator/ecl-loading-indicator-label.directive.d.ts +7 -0
  164. package/lib/components/ecl-loading-indicator/ecl-loading-indicator-label.directive.d.ts.map +1 -0
  165. package/lib/components/ecl-loading-indicator/ecl-loading-indicator-overlay.directive.d.ts +8 -0
  166. package/lib/components/ecl-loading-indicator/ecl-loading-indicator-overlay.directive.d.ts.map +1 -0
  167. package/lib/components/ecl-loading-indicator/ecl-loading-indicator.component.d.ts +14 -0
  168. package/lib/components/ecl-loading-indicator/ecl-loading-indicator.component.d.ts.map +1 -0
  169. package/lib/components/ecl-loading-indicator/ecl-loading-indicator.module.d.ts +12 -0
  170. package/lib/components/ecl-loading-indicator/ecl-loading-indicator.module.d.ts.map +1 -0
  171. package/lib/components/ecl-loading-indicator/index.d.ts +5 -0
  172. package/lib/components/ecl-loading-indicator/index.d.ts.map +1 -0
  173. package/lib/components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.d.ts +4 -4
  174. package/lib/components/ecl-multiselect/ecl-multiselect-input/ecl-multiselect-input.component.d.ts.map +1 -1
  175. package/lib/components/ecl-notification/ecl-notification-title.directive.d.ts +8 -0
  176. package/lib/components/ecl-notification/ecl-notification-title.directive.d.ts.map +1 -0
  177. package/lib/components/ecl-notification/ecl-notification.component.d.ts +26 -0
  178. package/lib/components/ecl-notification/ecl-notification.component.d.ts.map +1 -0
  179. package/lib/components/ecl-notification/ecl-notification.module.d.ts +14 -0
  180. package/lib/components/ecl-notification/ecl-notification.module.d.ts.map +1 -0
  181. package/lib/components/ecl-notification/index.d.ts +4 -0
  182. package/lib/components/ecl-notification/index.d.ts.map +1 -0
  183. package/lib/components/ecl-popover/ecl-popover.component.d.ts +29 -6
  184. package/lib/components/ecl-popover/ecl-popover.component.d.ts.map +1 -1
  185. package/lib/components/ecl-popover/ecl-popover.module.d.ts +5 -5
  186. package/lib/components/ecl-popover/ecl-popover.module.d.ts.map +1 -1
  187. package/lib/components/ecl-popover/index.d.ts +0 -1
  188. package/lib/components/ecl-popover/index.d.ts.map +1 -1
  189. package/lib/components/index.d.ts +2 -2
  190. package/lib/components/index.d.ts.map +1 -1
  191. package/lib/shared/ecl-all.module.d.ts +20 -20
  192. package/package.json +1 -1
  193. package/docs/directives/EclMessageTitleDirective.html +0 -472
  194. package/docs/directives/EclPopoverLinkDirective.html +0 -472
  195. package/esm2022/lib/components/ecl-message/ecl-message-title.directive.mjs +0 -20
  196. package/esm2022/lib/components/ecl-message/ecl-message.component.mjs +0 -88
  197. package/esm2022/lib/components/ecl-message/ecl-message.module.mjs +0 -22
  198. package/esm2022/lib/components/ecl-message/index.mjs +0 -4
  199. package/esm2022/lib/components/ecl-popover/ecl-popover-list.directive.mjs +0 -52
  200. package/esm2022/lib/components/ecl-spinner/ecl-spinner-label.directive.mjs +0 -19
  201. package/esm2022/lib/components/ecl-spinner/ecl-spinner.component.mjs +0 -51
  202. package/esm2022/lib/components/ecl-spinner/ecl-spinner.module.mjs +0 -20
  203. package/esm2022/lib/components/ecl-spinner/index.mjs +0 -4
  204. package/lib/components/ecl-message/ecl-message-title.directive.d.ts +0 -8
  205. package/lib/components/ecl-message/ecl-message-title.directive.d.ts.map +0 -1
  206. package/lib/components/ecl-message/ecl-message.component.d.ts +0 -21
  207. package/lib/components/ecl-message/ecl-message.component.d.ts.map +0 -1
  208. package/lib/components/ecl-message/ecl-message.module.d.ts +0 -13
  209. package/lib/components/ecl-message/ecl-message.module.d.ts.map +0 -1
  210. package/lib/components/ecl-message/index.d.ts +0 -4
  211. package/lib/components/ecl-message/index.d.ts.map +0 -1
  212. package/lib/components/ecl-popover/ecl-popover-list.directive.d.ts +0 -18
  213. package/lib/components/ecl-popover/ecl-popover-list.directive.d.ts.map +0 -1
  214. package/lib/components/ecl-spinner/ecl-spinner-label.directive.d.ts +0 -7
  215. package/lib/components/ecl-spinner/ecl-spinner-label.directive.d.ts.map +0 -1
  216. package/lib/components/ecl-spinner/ecl-spinner.component.d.ts +0 -12
  217. package/lib/components/ecl-spinner/ecl-spinner.component.d.ts.map +0 -1
  218. package/lib/components/ecl-spinner/ecl-spinner.module.d.ts +0 -11
  219. package/lib/components/ecl-spinner/ecl-spinner.module.d.ts.map +0 -1
  220. package/lib/components/ecl-spinner/index.d.ts +0 -4
  221. package/lib/components/ecl-spinner/index.d.ts.map +0 -1
@@ -494,7 +494,7 @@ export class EclCarouselComponent extends ECLBaseDirective {
494
494
  }
495
495
  }
496
496
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i0, type: EclCarouselComponent, deps: [{ token: i1.BreakpointObserver }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i2.EclRtlService }], target: i0.ɵɵFactoryTarget.Component }); }
497
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0-next.2", type: EclCarouselComponent, selector: "ecl-carousel", inputs: { ariaLabel: ["aria-label", "ariaLabel"], ariaRoleDescription: "ariaRoleDescription", isAutoplay: ["isAutoplay", "isAutoplay", booleanAttribute], playInterval: ["playInterval", "playInterval", numberAttribute] }, outputs: { slide: "slide" }, host: { properties: { "attr.aria-label": "this.ariaLabel", "attr.aria-roledescription": "this.ariaRoleDescription", "class": "this.cssClasses" } }, queries: [{ propertyName: "slides", predicate: i0.forwardRef(() => EclCarouselItemComponent) }], viewQueries: [{ propertyName: "carouselContainerElement", first: true, predicate: ["carouselContainer"], descendants: true }, { propertyName: "playButton", first: true, predicate: ["playButton"], descendants: true }, { propertyName: "pauseButton", first: true, predicate: ["pauseButton"], descendants: true }, { propertyName: "prevButton", first: true, predicate: ["prevButton"], descendants: true }, { propertyName: "nextButton", first: true, predicate: ["nextButton"], descendants: true }, { propertyName: "firstHiddenItem", first: true, predicate: ["firstHiddenItem"], descendants: true }, { propertyName: "lastHiddenItem", first: true, predicate: ["lastHiddenItem"], descendants: true }, { propertyName: "slidesContainer", first: true, predicate: ["slidesContainer"], descendants: true }, { propertyName: "navigationButtons", predicate: ["currButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #carouselContainer class=\"ecl-carousel__container\" [class.ecl-carousel-container--padded]=\"isPadded()\">\n <div #slidesContainer (keyup)=\"onFirstCarouselElementPress($event)\" class=\"ecl-carousel__slides\"\n [style.width.px]=\"getCarouselSlidesWidth()\" [style.left.px]=\"!isRtl ? getCarouselSlidesOffsetLeft() : null\"\n [style.right.px]=\"isRtl ? getCarouselSlidesOffsetRight() : null\"\n [style.transition-duration.s]=\"transitionDuration\" (mouseover)=\"onSlideHover()\" (mouseout)=\"onSlideHoverout()\">\n\n @if(hasControls()){\n <ecl-carousel-item #firstHiddenItem [style.width.%]=\"slideWidth\"></ecl-carousel-item>\n }\n <ng-content></ng-content>\n\n @if(hasControls()){\n <ecl-carousel-item #lastHiddenItem [style.width.%]=\"slideWidth\"></ecl-carousel-item>\n }\n\n </div>\n</div>\n@if(isButtonNavVisible) {\n<button #prevButton class=\"ecl-button ecl-button--ghost ecl-carousel__prev ecl-button--icon-only\" type=\"button\"\n (click)=\"onPreviousSlideClick()\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.carousel.NEXT-SLIDES' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-270\" class=\"ecl-button__icon\"> </ecl-icon>\n </span>\n</button>\n}\n\n@if(hasControls()){\n<div class=\"ecl-carousel__controls\">\n <div class=\"ecl-container\">\n <div class=\"ecl-carousel__autoplay\">\n <button #playButton class=\"ecl-button ecl-button--ghost ecl-carousel__play ecl-button--icon-only\"\n type=\"button\" [style.display]=\"isPlaying ? 'none' : 'flex'\" (keydown)=\"onPlayKeyboardPress($event)\"\n (click)=\"onPlayClick()\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.carousel.PLAY' | translate }}\n </span>\n <ecl-icon icon=\"play-outline\" size=\"m\" class=\"ecl-button__icon ecl-carousel__icon-default\">\n </ecl-icon>\n </span>\n\n </button>\n\n <button #pauseButton class=\"ecl-button ecl-button--ghost ecl-carousel__pause ecl-button--icon-only\"\n type=\"button\" [style.display]=\"isPlaying ? 'flex' : 'none'\" (keydown)=\"onPlayKeyboardPress($event)\"\n (click)=\"onPauseClick()\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.carousel.PAUSE' | translate }}\n </span>\n <ecl-icon icon=\"pause\" size=\"m\" class=\"ecl-button__icon ecl-carousel__icon-default\"> </ecl-icon>\n </span>\n\n </button>\n </div>\n\n <div class=\"ecl-carousel__navigation\">\n @for (slide of slides; let i = $index; track slide) {\n <button #currButton [attr.aria-current]=\"i === getCurrentSlideIndex()\"\n class=\"ecl-button ecl-button--ghost ecl-carousel__navigation-item\" (click)=\"onSlideControlClick(slide)\"\n (keydown)=\"onNavBtnKeyboardPress($event, i)\">\n {{ i + 1 }}\n </button>\n }\n </div>\n </div>\n</div>\n}\n@if(isButtonNavVisible) {\n<button #nextButton class=\"ecl-button ecl-button--ghost ecl-carousel__next ecl-button--icon-only\" type=\"button\"\n (click)=\"onNextSlideClick()\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.carousel.NEXT-SLIDES' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-90\" class=\"ecl-button__icon\"> </ecl-icon>\n </span>\n\n</button>\n}", styles: [":host{display:block}.ecl-carousel__container{width:100%}.ecl-carousel__slides{transition-duration:.4s}\n"], dependencies: [{ kind: "component", type: i3.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "ariaHidden", "focusable"] }, { kind: "component", type: i4.EclCarouselItemComponent, selector: "ecl-carousel-item", inputs: ["id", "isCurrent"], outputs: ["slideClick"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
497
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0-next.2", type: EclCarouselComponent, selector: "ecl-carousel", inputs: { ariaLabel: ["aria-label", "ariaLabel"], isAutoplay: ["isAutoplay", "isAutoplay", booleanAttribute], playInterval: ["playInterval", "playInterval", numberAttribute] }, outputs: { slide: "slide" }, host: { properties: { "attr.aria-label": "this.ariaLabel", "attr.aria-roledescription": "this.ariaRoleDescription", "class": "this.cssClasses" } }, queries: [{ propertyName: "slides", predicate: i0.forwardRef(() => EclCarouselItemComponent) }], viewQueries: [{ propertyName: "carouselContainerElement", first: true, predicate: ["carouselContainer"], descendants: true }, { propertyName: "playButton", first: true, predicate: ["playButton"], descendants: true }, { propertyName: "pauseButton", first: true, predicate: ["pauseButton"], descendants: true }, { propertyName: "prevButton", first: true, predicate: ["prevButton"], descendants: true }, { propertyName: "nextButton", first: true, predicate: ["nextButton"], descendants: true }, { propertyName: "firstHiddenItem", first: true, predicate: ["firstHiddenItem"], descendants: true }, { propertyName: "lastHiddenItem", first: true, predicate: ["lastHiddenItem"], descendants: true }, { propertyName: "slidesContainer", first: true, predicate: ["slidesContainer"], descendants: true }, { propertyName: "navigationButtons", predicate: ["currButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #carouselContainer class=\"ecl-carousel__container\" [class.ecl-carousel-container--padded]=\"isPadded()\">\n <div #slidesContainer (keyup)=\"onFirstCarouselElementPress($event)\" class=\"ecl-carousel__slides\"\n [style.width.px]=\"getCarouselSlidesWidth()\" [style.left.px]=\"!isRtl ? getCarouselSlidesOffsetLeft() : null\"\n [style.right.px]=\"isRtl ? getCarouselSlidesOffsetRight() : null\"\n [style.transition-duration.s]=\"transitionDuration\" (mouseover)=\"onSlideHover()\" (mouseout)=\"onSlideHoverout()\">\n\n @if(hasControls()){\n <ecl-carousel-item #firstHiddenItem [style.width.%]=\"slideWidth\"></ecl-carousel-item>\n }\n <ng-content></ng-content>\n\n @if(hasControls()){\n <ecl-carousel-item #lastHiddenItem [style.width.%]=\"slideWidth\"></ecl-carousel-item>\n }\n\n </div>\n</div>\n@if(isButtonNavVisible) {\n<button #prevButton class=\"ecl-button ecl-button--ghost ecl-carousel__prev ecl-button--icon-only\" type=\"button\"\n (click)=\"onPreviousSlideClick()\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.carousel.NEXT-SLIDES' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-270\" class=\"ecl-button__icon\"> </ecl-icon>\n </span>\n</button>\n}\n\n@if(hasControls()){\n<div class=\"ecl-carousel__controls\">\n <div class=\"ecl-container\">\n <div class=\"ecl-carousel__autoplay\">\n <button #playButton class=\"ecl-button ecl-button--ghost ecl-carousel__play ecl-button--icon-only\"\n type=\"button\" [style.display]=\"isPlaying ? 'none' : 'flex'\" (keydown)=\"onPlayKeyboardPress($event)\"\n (click)=\"onPlayClick()\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.carousel.PLAY' | translate }}\n </span>\n <ecl-icon icon=\"play-outline\" size=\"m\" class=\"ecl-button__icon ecl-carousel__icon-default\">\n </ecl-icon>\n </span>\n\n </button>\n\n <button #pauseButton class=\"ecl-button ecl-button--ghost ecl-carousel__pause ecl-button--icon-only\"\n type=\"button\" [style.display]=\"isPlaying ? 'flex' : 'none'\" (keydown)=\"onPlayKeyboardPress($event)\"\n (click)=\"onPauseClick()\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.carousel.PAUSE' | translate }}\n </span>\n <ecl-icon icon=\"pause\" size=\"m\" class=\"ecl-button__icon ecl-carousel__icon-default\"> </ecl-icon>\n </span>\n\n </button>\n </div>\n\n <div class=\"ecl-carousel__navigation\">\n @for (slide of slides; let i = $index; track slide) {\n <button #currButton [attr.aria-current]=\"i === getCurrentSlideIndex()\"\n class=\"ecl-button ecl-button--ghost ecl-carousel__navigation-item\" (click)=\"onSlideControlClick(slide)\"\n (keydown)=\"onNavBtnKeyboardPress($event, i)\">\n {{ i + 1 }}\n </button>\n }\n </div>\n </div>\n</div>\n}\n@if(isButtonNavVisible) {\n<button #nextButton class=\"ecl-button ecl-button--ghost ecl-carousel__next ecl-button--icon-only\" type=\"button\"\n (click)=\"onNextSlideClick()\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.carousel.NEXT-SLIDES' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-90\" class=\"ecl-button__icon\"> </ecl-icon>\n </span>\n\n</button>\n}", styles: [":host{display:block}.ecl-carousel__container{width:100%}.ecl-carousel__slides{transition-duration:.4s}\n"], dependencies: [{ kind: "component", type: i3.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "ariaHidden", "focusable"] }, { kind: "component", type: i4.EclCarouselItemComponent, selector: "ecl-carousel-item", inputs: ["id", "isCurrent"], outputs: ["slideClick"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
498
498
  }
499
499
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i0, type: EclCarouselComponent, decorators: [{
500
500
  type: Component,
@@ -508,8 +508,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2",
508
508
  }], ariaRoleDescription: [{
509
509
  type: HostBinding,
510
510
  args: ['attr.aria-roledescription']
511
- }, {
512
- type: Input
513
511
  }], isAutoplay: [{
514
512
  type: Input,
515
513
  args: [{ transform: booleanAttribute }]
@@ -552,4 +550,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2",
552
550
  type: HostBinding,
553
551
  args: ['class']
554
552
  }] } });
555
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLWNhcm91c2VsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtY2Fyb3VzZWwvZWNsLWNhcm91c2VsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtY2Fyb3VzZWwvZWNsLWNhcm91c2VsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFJSCxTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1QsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsZUFBZSxHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7O0FBc0JyRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZ0JBQWdCO0lBc0N0RCxZQUNZLHFCQUF5QyxFQUN6QyxFQUFxQixFQUNyQixTQUFvQixFQUNwQixhQUE0QjtRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQUxBLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBb0I7UUFDekMsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQXhDYSxjQUFTLEdBQWtCLDJCQUEyQixDQUFDO1FB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O3VCQUFDLGFBQWE7Z0JBQ0MsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUNFLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFDTyxlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFDQyxjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQjtnQkFDRyxlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkE4QnhCLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBSZW5kZXJlcjIsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIGZvcndhcmRSZWYsXG4gICAgbnVtYmVyQXR0cmlidXRlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUVsZW1lbnQgfSBmcm9tICdAZXVpL2Jhc2UnO1xuaW1wb3J0IHsgU3ViamVjdCwgaW50ZXJ2YWwsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFY2xSdGxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWNsLXJ0bC5zZXJ2aWNlJztcbmltcG9ydCB7IEtleUNvZGUgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVjbENhcm91c2VsSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZWNsLWNhcm91c2VsLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEVjbFNsaWRlRXZlbnQgfSBmcm9tICcuL2VjbC1jYXJvdXNlbC5ldmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWNsLWNhcm91c2VsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWNsLWNhcm91c2VsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgYFxuICAgICAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBUT0RPOiByZW1vdmUgYnkgaW1wbGVtZW50aW5nIGZ1bGwgRUNMIHNwZWNzICovXG4gICAgICAgICAgICAuZWNsLWNhcm91c2VsX19jb250YWluZXIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuZWNsLWNhcm91c2VsX19zbGlkZXMge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuNHM7XG4gICAgICAgICAgICB9XG4gICAgICAgIGAsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRWNsQ2Fyb3VzZWxDb21wb25lbnQgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWwnKSBASW5wdXQoJ2FyaWEtbGFiZWwnKSBhcmlhTGFiZWw6IHN0cmluZyB8IG51bGwgPSAnQ2Fyb3VzZWwgZGVzY3JpcHRpb24gaGVyZSc7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtcm9sZWRlc2NyaXB0aW9uJykgQElucHV0KCkgYXJpYVJvbGVEZXNjcmlwdGlvbjogc3RyaW5nIHwgbnVsbCA9ICdjYXJvdXNlbCc7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNBdXRvcGxheSA9IHRydWU7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgcGxheUludGVydmFsID0gNTAwMDtcbiAgICBAT3V0cHV0KCkgc2xpZGUgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbFNsaWRlRXZlbnQ+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdjYXJvdXNlbENvbnRhaW5lcicpIGNhcm91c2VsQ29udGFpbmVyRWxlbWVudDogRWxlbWVudFJlZjtcbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRWNsQ2Fyb3VzZWxJdGVtQ29tcG9uZW50KSkgc2xpZGVzOiBRdWVyeUxpc3Q8RWNsQ2Fyb3VzZWxJdGVtQ29tcG9uZW50PjtcbiAgICBAVmlld0NoaWxkcmVuKCdjdXJyQnV0dG9uJykgbmF2aWdhdGlvbkJ1dHRvbnM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcbiAgICBAVmlld0NoaWxkKCdwbGF5QnV0dG9uJykgcGxheUJ1dHRvbjogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdwYXVzZUJ1dHRvbicpIHBhdXNlQnV0dG9uOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ3ByZXZCdXR0b24nKSBwcmV2QnV0dG9uOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ25leHRCdXR0b24nKSBuZXh0QnV0dG9uOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2ZpcnN0SGlkZGVuSXRlbScpIGZpcnN0SGlkZGVuSXRlbTogRWNsQ2Fyb3VzZWxJdGVtQ29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoJ2xhc3RIaWRkZW5JdGVtJykgbGFzdEhpZGRlbkl0ZW06IEVjbENhcm91c2VsSXRlbUNvbXBvbmVudDtcbiAgICBAVmlld0NoaWxkKCdzbGlkZXNDb250YWluZXInKSBzbGlkZXNDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBwdWJsaWMgaXNCdXR0b25OYXZWaXNpYmxlPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNQbGF5aW5nID0gZmFsc2U7XG4gICAgcHVibGljIGlzUGF1c2VkRm9yY2VkID0gZmFsc2U7XG4gICAgcHVibGljIGlzUnRsID0gZmFsc2U7XG4gICAgc2xpZGVXaWR0aDogbnVtYmVyO1xuICAgIHRyYW5zaXRpb25EdXJhdGlvbiA9IDAuNDtcblxuICAgIHByaXZhdGUgaXNUYWJsZXRCcmVha3BvaW50ID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBpc0Rlc2t0b3BCcmVha3BvaW50ID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBpc0xhcmdlRGVza3RvcEJyZWFrcG9pbnQgPSBmYWxzZTtcbiAgICBwcml2YXRlIGlzTW9iaWxlQnJlYWtwb2ludCA9IGZhbHNlO1xuICAgIHByaXZhdGUgcGxheVN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHByaXZhdGUgc3RvcFN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgcHJpdmF0ZSB1bnN1YnNjcmliZUxpc3RlbmVyOiAoKSA9PiB2b2lkO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgVElNRU9VVF9JTlRFUlZBTCA9IDQwMDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNka0JyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyLFxuICAgICAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBlY2xSdGxTZXJ2aWNlOiBFY2xSdGxTZXJ2aWNlLFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZWNsLWNhcm91c2VsJyldLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdEF1dG9wbGF5KCk7XG4gICAgICAgIHRoaXMuaGFuZGxlUnRsQ2hhbmdlU3RhdGUoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplU2xpZGVyKCk7XG4gICAgICAgICAgICB0aGlzLmlzQnV0dG9uRGlzcGxheSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZUVsZW1lbnRTaXplQ2hhbmdlcygpO1xuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm9ic2VydmVCcmVha3BvaW50Q2hhbmdlcygpLCAyMDApO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgaWYgKHRoaXMudW5zdWJzY3JpYmVMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy51bnN1YnNjcmliZUxpc3RlbmVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblBsYXlDbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdGFydFBsYXlpbmcoKTtcbiAgICAgICAgdGhpcy5zaG93QnV0dG9uKHRoaXMucGF1c2VCdXR0b24pO1xuICAgICAgICB0aGlzLmZvY3VzT25CdXR0b24odGhpcy5wYXVzZUJ1dHRvbik7XG4gICAgfVxuXG4gICAgb25QYXVzZUNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3BQbGF5aW5nKCk7XG4gICAgICAgIHRoaXMuc2hvd0J1dHRvbih0aGlzLnBsYXlCdXR0b24pO1xuICAgICAgICB0aGlzLmZvY3VzT25CdXR0b24odGhpcy5wbGF5QnV0dG9uKTtcbiAgICB9XG5cbiAgICBvbkZpcnN0Q2Fyb3VzZWxFbGVtZW50UHJlc3MoZSk6IHZvaWQge1xuICAgICAgICBpZiAoZS5rZXkgPT09IEtleUNvZGUuVEFCKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc1BsYXlpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3BQbGF5aW5nKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblBsYXlLZXlib2FyZFByZXNzKGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKGUua2V5ID09PSBLZXlDb2RlLlRBQiAmJiBlLnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFtLZXlDb2RlLlRBQl0uaW5jbHVkZXMoZS5rZXkpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc1BsYXlpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2YXRlU2xpZGUodGhpcy5zbGlkZXMuZ2V0KDApLCB0cnVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzT25CdXR0b24odGhpcy5uYXZpZ2F0aW9uQnV0dG9ucy5nZXQoMCkpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcFBsYXlpbmcoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c09uQnV0dG9uKHRoaXMubmF2aWdhdGlvbkJ1dHRvbnMuZ2V0KHRoaXMuZ2V0Q3VycmVudFNsaWRlSW5kZXgoKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmlzUGxheWluZyAmJiBbS2V5Q29kZS5BUlJPV19SSUdIVF0uaW5jbHVkZXMoZS5rZXkpKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzT25CdXR0b24odGhpcy5uYXZpZ2F0aW9uQnV0dG9ucy5nZXQodGhpcy5nZXRDdXJyZW50U2xpZGVJbmRleCgpKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk5hdkJ0bktleWJvYXJkUHJlc3MoZTogS2V5Ym9hcmRFdmVudCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoZS5rZXkgPT09IEtleUNvZGUuVEFCICYmIGUuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgIHRoaXMub25OYXZpZ2F0aW9uQnV0dG9uVGFiQW5kU2hpZnQoZSwgaW5kZXgpO1xuICAgICAgICB9IGVsc2UgaWYgKGUua2V5ID09PSBLZXlDb2RlLkFSUk9XX1JJR0hUKSB7XG4gICAgICAgICAgICB0aGlzLm9uTmF2aWdhdGlvbkJ1dHRvbkFycm93UmlnaHQoZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09IEtleUNvZGUuVEFCKSB7XG4gICAgICAgICAgICB0aGlzLm9uTmF2aWdhdGlvbkJ1dHRvblRhYihlLCBpbmRleCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09IEtleUNvZGUuQVJST1dfTEVGVCkge1xuICAgICAgICAgICAgdGhpcy5vbk5hdmlnYXRpb25CdXR0b25BcnJvd0xlZnQoZSwgaW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpc0J1dHRvblZpc2libGUoYnV0dG9uOiBFbGVtZW50UmVmKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghYnV0dG9uKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJ1dHRvbi5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPT09ICcnO1xuICAgIH1cblxuICAgIHNob3dCdXR0b24oYnV0dG9uOiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIyLnNldFN0eWxlKGJ1dHRvbi5uYXRpdmVFbGVtZW50LCAnZGlzcGxheScsICcnKVxuICAgIH1cblxuICAgIGZvY3VzT25CdXR0b24oYnV0dG9uOiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgICAgIGlmICghYnV0dG9uKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYnV0dG9uLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBvblNsaWRlQ29udHJvbENsaWNrKHNsaWRlOiBFY2xDYXJvdXNlbEl0ZW1Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9wUGxheWluZygpO1xuICAgICAgICB0aGlzLmFjdGl2YXRlU2xpZGUoc2xpZGUsIHRydWUpO1xuICAgIH1cblxuICAgIG9uTmV4dFNsaWRlQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcFBsYXlpbmcoKTtcbiAgICAgICAgdGhpcy5nb1RvTmV4dFNsaWRlKHRydWUpO1xuICAgIH1cblxuICAgIG9uUHJldmlvdXNTbGlkZUNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3BQbGF5aW5nKCk7XG4gICAgICAgIHRoaXMuZ29Ub1ByZXZpb3VzU2xpZGUodHJ1ZSk7XG4gICAgfVxuXG4gICAgb25TbGlkZUhvdmVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhdXNlUGxheWluZygpO1xuICAgIH1cblxuICAgIG9uU2xpZGVIb3Zlcm91dCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzU3RvcEJ1dHRvblByZXNzZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5yZXN1bWVQbGF5aW5nKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaXNTdG9wQnV0dG9uUHJlc3NlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNQYXVzZWRGb3JjZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGlzUGFkZGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0Rlc2t0b3BCcmVha3BvaW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNDb250cm9scygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2xpZGVzQ291bnQoKSA+IDE7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEN1cnJlbnRTbGlkZUluZGV4KCk6IG51bWJlciB7XG4gICAgICAgIGxldCBjdXJyZW50SW5kZXg6IG51bWJlcjtcblxuICAgICAgICB0aGlzLmdldEFsbFNsaWRlc0FycmF5KCkuZm9yRWFjaCgoaXRlbSwgaWR4KSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbSAmJiBpdGVtLmlzQ3VycmVudCkge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRJbmRleCA9IGlkeDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChjdXJyZW50SW5kZXggPT09IHRoaXMuZ2V0QWxsU2xpZGVzQ291bnQoKSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH0gZWxzZSBpZiAoY3VycmVudEluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTbGlkZXNDb3VudCgpIC0gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3VycmVudEluZGV4IC0gMTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q2Fyb3VzZWxTbGlkZXNXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jYXJvdXNlbENvbnRhaW5lckVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggKiB0aGlzLmdldEFsbFNsaWRlc0NvdW50KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENhcm91c2VsU2xpZGVzT2Zmc2V0TGVmdCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gLTEgKiB0aGlzLmNhcm91c2VsQ29udGFpbmVyRWxlbWVudD8ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAqIHRoaXMuZ2V0Q3VycmVudEl0ZW1JbmRleCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDYXJvdXNlbFNsaWRlc09mZnNldFJpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAtMSAqIHRoaXMuY2Fyb3VzZWxDb250YWluZXJFbGVtZW50Py5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICogdGhpcy5nZXRDdXJyZW50SXRlbUluZGV4KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVSdGxDaGFuZ2VTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lY2xSdGxTZXJ2aWNlLmN1cnJlbnRSdGxTdGF0ZSQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgocnRsU3RhdGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNSdGwgPSBydGxTdGF0ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0QXV0b3BsYXkoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0YXJ0JCA9IHRoaXMucGxheVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgICAgIGNvbnN0IHN0b3AkID0gdGhpcy5zdG9wU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICAgICAgICBzdGFydCRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiBpbnRlcnZhbCh0aGlzLnBsYXlJbnRlcnZhbCkucGlwZSh0YWtlVW50aWwoc3RvcCQpKSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5nb1RvTmV4dFNsaWRlKHRydWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDdXJyZW50SXRlbUluZGV4KCk6IG51bWJlciB7XG4gICAgICAgIGxldCByZXN1bHQgPSAwO1xuICAgICAgICB0aGlzLmdldEFsbFNsaWRlc0FycmF5KCkuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtICYmIGl0ZW0uaXNDdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gaW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZVNsaWRlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zbGlkZXMuZm9yRWFjaCgoaXRlbSwgaWR4KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmluaXRTbGlkZShpdGVtLCBpZHgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5oYXNDb250cm9scygpKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRIaWRkZW5JdGVtcygpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNOb1NsaWRlU2VsZWN0ZWQoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZhdGVTbGlkZSh0aGlzLnNsaWRlcy5maXJzdCwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5pc0F1dG9wbGF5ICYmIHRoaXMuaXNUYWJsZXRCcmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydFBsYXlpbmcoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdEhpZGRlbkl0ZW1zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpcnN0SGlkZGVuSXRlbS5lbC5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9IHRoaXMuZ2V0TGFzdENvbnRlbnRDaGlsZCgpO1xuICAgICAgICB0aGlzLmZpcnN0SGlkZGVuSXRlbS5pc0N1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5sYXN0SGlkZGVuSXRlbS5lbC5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9IHRoaXMuZ2V0Rmlyc3RDb250ZW50Q2hpbGQoKTtcbiAgICAgICAgdGhpcy5sYXN0SGlkZGVuSXRlbS5pc0N1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zbGlkZVdpZHRoID0gdGhpcy5zbGlkZXMuZmlyc3Qud2lkdGg7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmVMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIyLmxpc3Rlbih0aGlzLnNsaWRlc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LCAndHJhbnNpdGlvbmVuZCcsICgpID0+IHRoaXMuY2hlY2tJbmRleCgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrSW5kZXgoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmdldEN1cnJlbnRJdGVtSW5kZXgoKSA9PT0gdGhpcy5nZXRBbGxTbGlkZXNDb3VudCgpIC0gMSkge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuc2xpZGVzLmZpcnN0O1xuICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZVNsaWRlKGl0ZW0sIGZhbHNlKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmdldEN1cnJlbnRJdGVtSW5kZXgoKSA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuc2xpZGVzLmxhc3Q7XG4gICAgICAgICAgICB0aGlzLmFjdGl2YXRlU2xpZGUoaXRlbSwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRMYXN0Q29udGVudENoaWxkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFNsaWRlc0NvdW50KCkgPiAwID8gdGhpcy5zbGlkZXMuZ2V0KHRoaXMuZ2V0U2xpZGVzQ291bnQoKSAtIDEpLmVsLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MIDogJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGaXJzdENvbnRlbnRDaGlsZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRTbGlkZXNDb3VudCgpID4gMCA/IHRoaXMuc2xpZGVzLmdldCgwKS5lbC5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA6ICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFNsaWRlKGl0ZW06IEVjbENhcm91c2VsSXRlbUNvbXBvbmVudCwgaWR4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaXRlbS5pbmRleCA9IGlkeDtcbiAgICAgICAgaXRlbS5hcmlhTGFiZWwgPSBgc2xpZGUgJHtpZHggKyAxfSBvZiAke3RoaXMuZ2V0U2xpZGVzQ291bnQoKX1gO1xuICAgICAgICBpdGVtLndpZHRoID0gMTAwIC8gdGhpcy5nZXRBbGxTbGlkZXNDb3VudCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ29Ub05leHRTbGlkZShpc0xvb3A6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZVNsaWRlKHRoaXMuZ2V0TmV4dFNsaWRlKGlzTG9vcCksIHRydWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ29Ub1ByZXZpb3VzU2xpZGUoaXNMb29wOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZhdGVTbGlkZSh0aGlzLmdldFByZXZpb3VzU2xpZGUoaXNMb29wKSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZVNsaWRlKHNsaWRlOiBFY2xDYXJvdXNlbEl0ZW1Db21wb25lbnQsIHdpdGhUcmFuc2l0aW9uOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh3aXRoVHJhbnNpdGlvbikge1xuICAgICAgICAgICAgdGhpcy50cmFuc2l0aW9uRHVyYXRpb24gPSAwLjQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRyYW5zaXRpb25EdXJhdGlvbiA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNsaWRlKSB7XG4gICAgICAgICAgICB0aGlzLmdldEFsbFNsaWRlc0FycmF5KCkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIGl0ZW0uaXNDdXJyZW50ID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHNsaWRlLmlzQ3VycmVudCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdpdGhUcmFuc2l0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnNsaWRlLm5leHQobmV3IEVjbFNsaWRlRXZlbnQodGhpcy5zbGlkZXMuZ2V0KHRoaXMuZ2V0Q3VycmVudFNsaWRlSW5kZXgoKSkpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNMYXN0QnV0dG9uKGluZGV4KTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGJ1dHRvbnNMaXN0ID0gdGhpcy5uYXZpZ2F0aW9uQnV0dG9ucztcbiAgICAgICAgcmV0dXJuIGluZGV4ICsgMSA+PSBidXR0b25zTGlzdC5sZW5ndGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0ZpcnN0QnV0dG9uKGluZGV4KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBpbmRleCA8PSAwO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhcnRQbGF5aW5nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzUGxheWluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuaXNQYXVzZWRGb3JjZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5wbGF5U3ViamVjdC5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdG9wUGxheWluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1BsYXlpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc1BhdXNlZEZvcmNlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuc3RvcFN1YmplY3QubmV4dCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGF1c2VQbGF5aW5nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzUGxheWluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnN0b3BTdWJqZWN0Lm5leHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc3VtZVBsYXlpbmcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNQbGF5aW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wbGF5U3ViamVjdC5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXROZXh0U2xpZGUoaXNMb29wOiBib29sZWFuKTogRWNsQ2Fyb3VzZWxJdGVtQ29tcG9uZW50IHtcbiAgICAgICAgY29uc3Qgc2xpZGVzQ291bnQgPSB0aGlzLmdldFNsaWRlc0NvdW50KCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuZ2V0Q3VycmVudFNsaWRlSW5kZXgoKTtcblxuICAgICAgICBpZiAoY3VycmVudEluZGV4ID49IHNsaWRlc0NvdW50IC0gMSkge1xuICAgICAgICAgICAgaWYgKGlzTG9vcCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEFsbFNsaWRlc0FycmF5KClbdGhpcy5nZXRBbGxTbGlkZXNDb3VudCgpIC0xXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2xpZGVzLmxhc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zbGlkZXMuZ2V0KGN1cnJlbnRJbmRleCArIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBbGxTbGlkZXNBcnJheSgpOiBFY2xDYXJvdXNlbEl0ZW1Db21wb25lbnRbXSB7XG4gICAgICAgIHJldHVybiBbLi4uW3RoaXMuZmlyc3RIaWRkZW5JdGVtXSwgLi4udGhpcy5zbGlkZXMudG9BcnJheSgpLCAuLi5bdGhpcy5sYXN0SGlkZGVuSXRlbV1dO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UHJldmlvdXNTbGlkZShpc0xvb3A6IGJvb2xlYW4pOiBFY2xDYXJvdXNlbEl0ZW1Db21wb25lbnQge1xuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLmdldEN1cnJlbnRTbGlkZUluZGV4KCk7XG5cbiAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA8PSAwKSB7XG4gICAgICAgICAgICBpZihpc0xvb3ApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRBbGxTbGlkZXNBcnJheSgpWzBdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zbGlkZXMuZmlyc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zbGlkZXMuZ2V0KGN1cnJlbnRJbmRleCAtIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTbGlkZXNDb3VudCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zbGlkZXMubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QWxsU2xpZGVzQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzQ29udHJvbHMoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2xpZGVzLmxlbmd0aCArIDI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zbGlkZXMubGVuZ3RoXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTm9TbGlkZVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuc2xpZGVzLnNvbWUoKGl0ZW0pID0+IGl0ZW0uaXNDdXJyZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTmF2aWdhdGlvbkJ1dHRvblRhYkFuZFNoaWZ0KGU6IEtleWJvYXJkRXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYnV0dG9uOiBFbGVtZW50UmVmID0gdGhpcy5uYXZpZ2F0aW9uQnV0dG9ucy5nZXQodGhpcy5nZXRDdXJyZW50U2xpZGVJbmRleCgpKTtcbiAgICAgICAgaWYgKGJ1dHRvbikge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNQbGF5aW5nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wUGxheWluZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzRmlyc3RCdXR0b24oaW5kZXgpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wbGF5QnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c09uQnV0dG9uKHRoaXMucGxheUJ1dHRvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5wYXVzZUJ1dHRvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNPbkJ1dHRvbih0aGlzLnBhdXNlQnV0dG9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZ29Ub1ByZXZpb3VzU2xpZGUoZmFsc2UpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ1dHRvbjogRWxlbWVudFJlZiA9IHRoaXMubmF2aWdhdGlvbkJ1dHRvbnMuZ2V0KHRoaXMuZ2V0Q3VycmVudFNsaWRlSW5kZXgoKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c09uQnV0dG9uKGJ1dHRvbik7XG4gICAgICAgICAgICB9LCB0aGlzLlRJTUVPVVRfSU5URVJWQUwpO1xuICAgICAgICB9XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTmF2aWdhdGlvbkJ1dHRvblRhYihlLCBpbmRleCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0xhc3RCdXR0b24oaW5kZXgpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0J1dHRvblZpc2libGUodGhpcy5wcmV2QnV0dG9uKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNPbkJ1dHRvbih0aGlzLnByZXZCdXR0b24pO1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZ29Ub05leHRTbGlkZShmYWxzZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgYnV0dG9uOiBFbGVtZW50UmVmID0gdGhpcy5uYXZpZ2F0aW9uQnV0dG9ucy5nZXQodGhpcy5nZXRDdXJyZW50U2xpZGVJbmRleCgpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzT25CdXR0b24oYnV0dG9uKTtcbiAgICAgICAgICAgIH0sIHRoaXMuVElNRU9VVF9JTlRFUlZBTCk7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTmF2aWdhdGlvbkJ1dHRvbkFycm93UmlnaHQoZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZ29Ub05leHRTbGlkZShmYWxzZSk7XG4gICAgICAgICAgICBjb25zdCBidXR0b246IEVsZW1lbnRSZWYgPSB0aGlzLm5hdmlnYXRpb25CdXR0b25zLmdldCh0aGlzLmdldEN1cnJlbnRTbGlkZUluZGV4KCkpO1xuICAgICAgICAgICAgdGhpcy5mb2N1c09uQnV0dG9uKGJ1dHRvbik7XG4gICAgICAgIH0sIHRoaXMuVElNRU9VVF9JTlRFUlZBTCk7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTmF2aWdhdGlvbkJ1dHRvbkFycm93TGVmdChlOiBLZXlib2FyZEV2ZW50LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRmlyc3RCdXR0b24oaW5kZXgpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wbGF5QnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c09uQnV0dG9uKHRoaXMucGxheUJ1dHRvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5wYXVzZUJ1dHRvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNPbkJ1dHRvbih0aGlzLnBhdXNlQnV0dG9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZ29Ub1ByZXZpb3VzU2xpZGUoZmFsc2UpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJ1dHRvbjogRWxlbWVudFJlZiA9IHRoaXMubmF2aWdhdGlvbkJ1dHRvbnMuZ2V0KHRoaXMuZ2V0Q3VycmVudFNsaWRlSW5kZXgoKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c09uQnV0dG9uKGJ1dHRvbik7XG4gICAgICAgICAgICB9LCB0aGlzLlRJTUVPVVRfSU5URVJWQUwpO1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvYnNlcnZlQnJlYWtwb2ludENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2RrQnJlYWtwb2ludE9ic2VydmVyXG4gICAgICAgICAgICAub2JzZXJ2ZShbXG4gICAgICAgICAgICAgICAgJyhtYXgtd2lkdGg6IDc2OHB4KScsXG4gICAgICAgICAgICAgICAgJyhtYXgtd2lkdGg6IDk5N3B4KScsXG4gICAgICAgICAgICAgICAgJyhtaW4td2lkdGg6IDk5OHB4KScsXG4gICAgICAgICAgICAgICAgJyhtaW4td2lkdGg6IDExNDBweCkgYW5kIChtYXgtd2lkdGg6IDEyNjBweCknLFxuICAgICAgICAgICAgICAgICcobWluLXdpZHRoOiAxMTQwcHgpJyxcbiAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCA9IHJlc3VsdC5icmVha3BvaW50c1snKG1heC13aWR0aDogNzY4cHgpJ107XG4gICAgICAgICAgICAgICAgdGhpcy5pc1RhYmxldEJyZWFrcG9pbnQgPSByZXN1bHQuYnJlYWtwb2ludHNbJyhtaW4td2lkdGg6IDk5OHB4KSddO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNEZXNrdG9wQnJlYWtwb2ludCA9IHJlc3VsdC5icmVha3BvaW50c1snKG1pbi13aWR0aDogMTE0MHB4KSBhbmQgKG1heC13aWR0aDogMTI2MHB4KSddO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNMYXJnZURlc2t0b3BCcmVha3BvaW50ID0gcmVzdWx0LmJyZWFrcG9pbnRzWycobWluLXdpZHRoOiAxMTQwcHgpJ107XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5icmVha3BvaW50c1snKG1heC13aWR0aDogOTk3cHgpJ10pIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlc2V0SGVpZ2h0KCksIDIwMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTW9iaWxlQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3BQbGF5aW5nKCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNUYWJsZXRCcmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaGVja0Jhbm5lckhlaWdodHMoKSwgMjAwKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0xhcmdlRGVza3RvcEJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0J1dHRvbkRpc3BsYXkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9ic2VydmVFbGVtZW50U2l6ZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSkub2JzZXJ2ZSh0aGlzLmNhcm91c2VsQ29udGFpbmVyRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQnV0dG9uRGlzcGxheSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0J1dHRvbk5hdlZpc2libGUgPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy5nZXRTbGlkZXNDb3VudCgpIDw9IDEpIHtcbiAgICAgICAgICAgIHRoaXMuaXNCdXR0b25OYXZWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrQmFubmVySGVpZ2h0cygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaGVpZ2h0VmFsdWVzID0gdGhpcy5zbGlkZXMubWFwKChzbGlkZSk9PiB7XG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBzbGlkZS5iYW5uZXI/LmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ2hlaWdodCcsIGhlaWdodCk7XG4gICAgICAgICAgICBpZiAoaGVpZ2h0ID09PSAnYXV0bycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChOdW1iZXIuaXNOYU4oaGVpZ2h0KSB8fCBoZWlnaHQgPT09IDEwMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGhlaWdodDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgZWxlbWVudEhlaWdodHMgPSBoZWlnaHRWYWx1ZXMuZmlsdGVyKChoZWlnaHQpPT4gaGVpZ2h0ICE9PSB1bmRlZmluZWQpXG4gICAgICAgIGNvbnN0IHRhbGxlc3RFbGVtZW50SGVpZ2h0ID0gTWF0aC5tYXgoLi4uZWxlbWVudEhlaWdodHMpO1xuICAgICAgICBpZiAodGFsbGVzdEVsZW1lbnRIZWlnaHQgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnNsaWRlcy5mb3JFYWNoKChzbGlkZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJhbm5lciA9IHNsaWRlLmJhbm5lcjtcbiAgICAgICAgICAgICAgICBpZiAoYmFubmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJhbm5lckltYWdlID0gYmFubmVyLmVjbEJhbm5lckltYWdlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyMi5zZXRTdHlsZShiYW5uZXIuZWwubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke3RhbGxlc3RFbGVtZW50SGVpZ2h0fXB4YClcbiAgICAgICAgICAgICAgICAgICAgaWYgKGJhbm5lckltYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyMi5zZXRTdHlsZShiYW5uZXJJbWFnZS5lbC5uYXRpdmVFbGVtZW50LCAnYXNwZWN0UmF0aW8nLCAnYXV0bycpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnJlc2V0SGlkZGVuSXRlbXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRIZWlnaHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2V0QWxsU2xpZGVzQXJyYXkoKS5mb3JFYWNoKChzbGlkZSk9PiB7XG4gICAgICAgICAgICBjb25zdCBiYW5uZXIgPSBzbGlkZS5iYW5uZXI7XG4gICAgICAgICAgICBpZiAoYmFubmVyKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmFubmVySW1hZ2UgPSBzbGlkZS5iYW5uZXIuZWNsQmFubmVySW1hZ2U7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlcjIuc2V0U3R5bGUoYmFubmVyLmVsLm5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCAnJylcbiAgICAgICAgICAgICAgICBpZiAoYmFubmVySW1hZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlcjIuc2V0U3R5bGUoYmFubmVySW1hZ2UuZWwubmF0aXZlRWxlbWVudCwgJ2FzcGVjdFJhdGlvJywgJycpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZXNldEhpZGRlbkl0ZW1zKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldEhpZGRlbkl0ZW1zKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5oYXNDb250cm9scygpKSB7XG4gICAgICAgICAgICB0aGlzLmZpcnN0SGlkZGVuSXRlbS5lbC5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9IHRoaXMuZ2V0TGFzdENvbnRlbnRDaGlsZCgpO1xuICAgICAgICAgICAgdGhpcy5sYXN0SGlkZGVuSXRlbS5lbC5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9IHRoaXMuZ2V0Rmlyc3RDb250ZW50Q2hpbGQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgI2Nhcm91c2VsQ29udGFpbmVyIGNsYXNzPVwiZWNsLWNhcm91c2VsX19jb250YWluZXJcIiBbY2xhc3MuZWNsLWNhcm91c2VsLWNvbnRhaW5lci0tcGFkZGVkXT1cImlzUGFkZGVkKClcIj5cbiAgICA8ZGl2ICNzbGlkZXNDb250YWluZXIgKGtleXVwKT1cIm9uRmlyc3RDYXJvdXNlbEVsZW1lbnRQcmVzcygkZXZlbnQpXCIgY2xhc3M9XCJlY2wtY2Fyb3VzZWxfX3NsaWRlc1wiXG4gICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJnZXRDYXJvdXNlbFNsaWRlc1dpZHRoKClcIiBbc3R5bGUubGVmdC5weF09XCIhaXNSdGwgPyBnZXRDYXJvdXNlbFNsaWRlc09mZnNldExlZnQoKSA6IG51bGxcIlxuICAgICAgICBbc3R5bGUucmlnaHQucHhdPVwiaXNSdGwgPyBnZXRDYXJvdXNlbFNsaWRlc09mZnNldFJpZ2h0KCkgOiBudWxsXCJcbiAgICAgICAgW3N0eWxlLnRyYW5zaXRpb24tZHVyYXRpb24uc109XCJ0cmFuc2l0aW9uRHVyYXRpb25cIiAobW91c2VvdmVyKT1cIm9uU2xpZGVIb3ZlcigpXCIgKG1vdXNlb3V0KT1cIm9uU2xpZGVIb3Zlcm91dCgpXCI+XG5cbiAgICAgICAgQGlmKGhhc0NvbnRyb2xzKCkpe1xuICAgICAgICA8ZWNsLWNhcm91c2VsLWl0ZW0gI2ZpcnN0SGlkZGVuSXRlbSBbc3R5bGUud2lkdGguJV09XCJzbGlkZVdpZHRoXCI+PC9lY2wtY2Fyb3VzZWwtaXRlbT5cbiAgICAgICAgfVxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgICAgICAgQGlmKGhhc0NvbnRyb2xzKCkpe1xuICAgICAgICA8ZWNsLWNhcm91c2VsLWl0ZW0gI2xhc3RIaWRkZW5JdGVtIFtzdHlsZS53aWR0aC4lXT1cInNsaWRlV2lkdGhcIj48L2VjbC1jYXJvdXNlbC1pdGVtPlxuICAgICAgICB9XG5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuQGlmKGlzQnV0dG9uTmF2VmlzaWJsZSkge1xuPGJ1dHRvbiAjcHJldkJ1dHRvbiBjbGFzcz1cImVjbC1idXR0b24gZWNsLWJ1dHRvbi0tZ2hvc3QgZWNsLWNhcm91c2VsX19wcmV2IGVjbC1idXR0b24tLWljb24tb25seVwiIHR5cGU9XCJidXR0b25cIlxuICAgIChjbGljayk9XCJvblByZXZpb3VzU2xpZGVDbGljaygpXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJlY2wtYnV0dG9uX19jb250YWluZXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJlY2wtYnV0dG9uX19sYWJlbFwiPlxuICAgICAgICAgICAge3sgJ2VjbC5jYXJvdXNlbC5ORVhULVNMSURFUycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiIHNpemU9XCJtXCIgdHJhbnNmb3JtPVwicm90YXRlLTI3MFwiIGNsYXNzPVwiZWNsLWJ1dHRvbl9faWNvblwiPiA8L2VjbC1pY29uPlxuICAgIDwvc3Bhbj5cbjwvYnV0dG9uPlxufVxuXG5AaWYoaGFzQ29udHJvbHMoKSl7XG48ZGl2IGNsYXNzPVwiZWNsLWNhcm91c2VsX19jb250cm9sc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJlY2wtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlY2wtY2Fyb3VzZWxfX2F1dG9wbGF5XCI+XG4gICAgICAgICAgICA8YnV0dG9uICNwbGF5QnV0dG9uIGNsYXNzPVwiZWNsLWJ1dHRvbiBlY2wtYnV0dG9uLS1naG9zdCBlY2wtY2Fyb3VzZWxfX3BsYXkgZWNsLWJ1dHRvbi0taWNvbi1vbmx5XCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgW3N0eWxlLmRpc3BsYXldPVwiaXNQbGF5aW5nID8gJ25vbmUnIDogJ2ZsZXgnXCIgKGtleWRvd24pPVwib25QbGF5S2V5Ym9hcmRQcmVzcygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25QbGF5Q2xpY2soKVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZWNsLWJ1dHRvbl9fY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZWNsLWJ1dHRvbl9fbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdlY2wuY2Fyb3VzZWwuUExBWScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8ZWNsLWljb24gaWNvbj1cInBsYXktb3V0bGluZVwiIHNpemU9XCJtXCIgY2xhc3M9XCJlY2wtYnV0dG9uX19pY29uIGVjbC1jYXJvdXNlbF9faWNvbi1kZWZhdWx0XCI+XG4gICAgICAgICAgICAgICAgICAgIDwvZWNsLWljb24+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgPGJ1dHRvbiAjcGF1c2VCdXR0b24gY2xhc3M9XCJlY2wtYnV0dG9uIGVjbC1idXR0b24tLWdob3N0IGVjbC1jYXJvdXNlbF9fcGF1c2UgZWNsLWJ1dHRvbi0taWNvbi1vbmx5XCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgW3N0eWxlLmRpc3BsYXldPVwiaXNQbGF5aW5nID8gJ2ZsZXgnIDogJ25vbmUnXCIgKGtleWRvd24pPVwib25QbGF5S2V5Ym9hcmRQcmVzcygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25QYXVzZUNsaWNrKClcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVjbC1idXR0b25fX2NvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVjbC1idXR0b25fX2xhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnZWNsLmNhcm91c2VsLlBBVVNFJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxlY2wtaWNvbiBpY29uPVwicGF1c2VcIiBzaXplPVwibVwiIGNsYXNzPVwiZWNsLWJ1dHRvbl9faWNvbiBlY2wtY2Fyb3VzZWxfX2ljb24tZGVmYXVsdFwiPiA8L2VjbC1pY29uPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlY2wtY2Fyb3VzZWxfX25hdmlnYXRpb25cIj5cbiAgICAgICAgICAgIEBmb3IgKHNsaWRlIG9mIHNsaWRlczsgbGV0IGkgPSAkaW5kZXg7IHRyYWNrIHNsaWRlKSB7XG4gICAgICAgICAgICA8YnV0dG9uICNjdXJyQnV0dG9uIFthdHRyLmFyaWEtY3VycmVudF09XCJpID09PSBnZXRDdXJyZW50U2xpZGVJbmRleCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImVjbC1idXR0b24gZWNsLWJ1dHRvbi0tZ2hvc3QgZWNsLWNhcm91c2VsX19uYXZpZ2F0aW9uLWl0ZW1cIiAoY2xpY2spPVwib25TbGlkZUNvbnRyb2xDbGljayhzbGlkZSlcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIm9uTmF2QnRuS2V5Ym9hcmRQcmVzcygkZXZlbnQsIGkpXCI+XG4gICAgICAgICAgICAgICAge3sgaSArIDEgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxufVxuQGlmKGlzQnV0dG9uTmF2VmlzaWJsZSkge1xuPGJ1dHRvbiAjbmV4dEJ1dHRvbiBjbGFzcz1cImVjbC1idXR0b24gZWNsLWJ1dHRvbi0tZ2hvc3QgZWNsLWNhcm91c2VsX19uZXh0IGVjbC1idXR0b24tLWljb24tb25seVwiIHR5cGU9XCJidXR0b25cIlxuICAgIChjbGljayk9XCJvbk5leHRTbGlkZUNsaWNrKClcIj5cbiAgICA8c3BhbiBjbGFzcz1cImVjbC1idXR0b25fX2NvbnRhaW5lclwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImVjbC1idXR0b25fX2xhYmVsXCI+XG4gICAgICAgICAgICB7eyAnZWNsLmNhcm91c2VsLk5FWFQtU0xJREVTJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxlY2wtaWNvbiBpY29uPVwiY29ybmVyLWFycm93XCIgc2l6ZT1cIm1cIiB0cmFuc2Zvcm09XCJyb3RhdGUtOTBcIiBjbGFzcz1cImVjbC1idXR0b25fX2ljb25cIj4gPC9lY2wtaWNvbj5cbiAgICA8L3NwYW4+XG5cbjwvYnV0dG9uPlxufSJdfQ==
553
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLWNhcm91c2VsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtY2Fyb3VzZWwvZWNsLWNhcm91c2VsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtY2Fyb3VzZWwvZWNsLWNhcm91c2VsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFJSCxTQUFTLEVBQ1QsZUFBZSxFQUVmLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1QsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsZUFBZSxHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7O0FBc0JyRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZ0JBQWdCO0lBc0N0RCxZQUNZLHFCQUF5QyxFQUN6QyxFQUFxQixFQUNyQixTQUFvQixFQUNwQixhQUE0QjtRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQUxBLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBb0I7UUFDekMsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQXhDYSxjQUFTLEdBQWtCLDJCQUEyQixDQUFDO1FB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QkFDQyxVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ0UsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUNPLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUNDLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUNHLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQThCeEIsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgZm9yd2FyZFJlZixcbiAgICBudW1iZXJBdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlRWxlbWVudCB9IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBpbnRlcnZhbCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVjbFJ0bFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lY2wtcnRsLnNlcnZpY2UnO1xuaW1wb3J0IHsgS2V5Q29kZSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWNsQ2Fyb3VzZWxJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9lY2wtY2Fyb3VzZWwtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWNsU2xpZGVFdmVudCB9IGZyb20gJy4vZWNsLWNhcm91c2VsLmV2ZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlY2wtY2Fyb3VzZWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lY2wtY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgICAgICAgICA6aG9zdCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIFRPRE86IHJlbW92ZSBieSBpbXBsZW1lbnRpbmcgZnVsbCBFQ0wgc3BlY3MgKi9cbiAgICAgICAgICAgIC5lY2wtY2Fyb3VzZWxfX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5lY2wtY2Fyb3VzZWxfX3NsaWRlcyB7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC40cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgYCxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xDYXJvdXNlbENvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbCcpIEBJbnB1dCgnYXJpYS1sYWJlbCcpIGFyaWFMYWJlbDogc3RyaW5nIHwgbnVsbCA9ICdDYXJvdXNlbCBkZXNjcmlwdGlvbiBoZXJlJztcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1yb2xlZGVzY3JpcHRpb24nKSBhcmlhUm9sZURlc2NyaXB0aW9uID0gJ2Nhcm91c2VsJztcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0F1dG9wbGF5ID0gdHJ1ZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBwbGF5SW50ZXJ2YWwgPSA1MDAwO1xuICAgIEBPdXRwdXQoKSBzbGlkZSA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsU2xpZGVFdmVudD4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2Nhcm91c2VsQ29udGFpbmVyJykgY2Fyb3VzZWxDb250YWluZXJFbGVtZW50OiBFbGVtZW50UmVmO1xuICAgIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBFY2xDYXJvdXNlbEl0ZW1Db21wb25lbnQpKSBzbGlkZXM6IFF1ZXJ5TGlzdDxFY2xDYXJvdXNlbEl0ZW1Db21wb25lbnQ+O1xuICAgIEBWaWV3Q2hpbGRyZW4oJ2N1cnJCdXR0b24nKSBuYXZpZ2F0aW9uQnV0dG9uczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuICAgIEBWaWV3Q2hpbGQoJ3BsYXlCdXR0b24nKSBwbGF5QnV0dG9uOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ3BhdXNlQnV0dG9uJykgcGF1c2VCdXR0b246IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgncHJldkJ1dHRvbicpIHByZXZCdXR0b246IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnbmV4dEJ1dHRvbicpIG5leHRCdXR0b246IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnZmlyc3RIaWRkZW5JdGVtJykgZmlyc3RIaWRkZW5JdGVtOiBFY2xDYXJvdXNlbEl0ZW1Db21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZCgnbGFzdEhpZGRlbkl0ZW0nKSBsYXN0SGlkZGVuSXRlbTogRWNsQ2Fyb3VzZWxJdGVtQ29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoJ3NsaWRlc0NvbnRhaW5lcicpIHNsaWRlc0NvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICAgIHB1YmxpYyBpc0J1dHRvbk5hdlZpc2libGU9IGZhbHNlO1xuICAgIHB1YmxpYyBpc1BsYXlpbmcgPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNQYXVzZWRGb3JjZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNSdGwgPSBmYWxzZTtcbiAgICBzbGlkZVdpZHRoOiBudW1iZXI7XG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uID0gMC40O1xuXG4gICAgcHJpdmF0ZSBpc1RhYmxldEJyZWFrcG9pbnQgPSBmYWxzZTtcbiAgICBwcml2YXRlIGlzRGVza3RvcEJyZWFrcG9pbnQgPSBmYWxzZTtcbiAgICBwcml2YXRlIGlzTGFyZ2VEZXNrdG9wQnJlYWtwb2ludCA9IGZhbHNlO1xuICAgIHByaXZhdGUgaXNNb2JpbGVCcmVha3BvaW50ID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBwbGF5U3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBzdG9wU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIHVuc3Vic2NyaWJlTGlzdGVuZXI6ICgpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBUSU1FT1VUX0lOVEVSVkFMID0gNDAwO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY2RrQnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXIsXG4gICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyMjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGVjbFJ0bFNlcnZpY2U6IEVjbFJ0bFNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtY2Fyb3VzZWwnKV0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0QXV0b3BsYXkoKTtcbiAgICAgICAgdGhpcy5oYW5kbGVSdGxDaGFuZ2VTdGF0ZSgpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVTbGlkZXIoKTtcbiAgICAgICAgICAgIHRoaXMuaXNCdXR0b25EaXNwbGF5KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlRWxlbWVudFNpemVDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMub2JzZXJ2ZUJyZWFrcG9pbnRDaGFuZ2VzKCksIDIwMCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC51bnN1YnNjcmliZSgpO1xuICAgICAgICBpZiAodGhpcy51bnN1YnNjcmliZUxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLnVuc3Vic2NyaWJlTGlzdGVuZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUGxheUNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0YXJ0UGxheWluZygpO1xuICAgICAgICB0aGlzLnNob3dCdXR0b24odGhpcy5wYXVzZUJ1dHRvbik7XG4gICAgICAgIHRoaXMuZm9jdXNPbkJ1dHRvbih0aGlzLnBhdXNlQnV0dG9uKTtcbiAgICB9XG5cbiAgICBvblBhdXNlQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcFBsYXlpbmcoKTtcbiAgICAgICAgdGhpcy5zaG93QnV0dG9uKHRoaXMucGxheUJ1dHRvbik7XG4gICAgICAgIHRoaXMuZm9jdXNPbkJ1dHRvbih0aGlzLnBsYXlCdXR0b24pO1xuICAgIH1cblxuICAgIG9uRmlyc3RDYXJvdXNlbEVsZW1lbnRQcmVzcyhlKTogdm9pZCB7XG4gICAgICAgIGlmIChlLmtleSA9PT0gS2V5Q29kZS5UQUIpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzUGxheWluZykge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcFBsYXlpbmcoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUGxheUtleWJvYXJkUHJlc3MoZSk6IHZvaWQge1xuICAgICAgICBpZiAoZS5rZXkgPT09IEtleUNvZGUuVEFCICYmIGUuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoW0tleUNvZGUuVEFCXS5pbmNsdWRlcyhlLmtleSkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzUGxheWluZykge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZhdGVTbGlkZSh0aGlzLnNsaWRlcy5nZXQoMCksIHRydWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNPbkJ1dHRvbih0aGlzLm5hdmlnYXRpb25CdXR0b25zLmdldCgwKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wUGxheWluZygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzT25CdXR0b24odGhpcy5uYXZpZ2F0aW9uQnV0dG9ucy5nZXQodGhpcy5nZXRDdXJyZW50U2xpZGVJbmRleCgpKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNQbGF5aW5nICYmIFtLZXlDb2RlLkFSUk9XX1JJR0hUXS5pbmNsdWRlcyhlLmtleSkpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNPbkJ1dHRvbih0aGlzLm5hdmlnYXRpb25CdXR0b25zLmdldCh0aGlzLmdldEN1cnJlbnRTbGlkZUluZGV4KCkpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTmF2QnRuS2V5Ym9hcmRQcmVzcyhlOiBLZXlib2FyZEV2ZW50LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmIChlLmtleSA9PT0gS2V5Q29kZS5UQUIgJiYgZS5zaGlmdEtleSkge1xuICAgICAgICAgICAgdGhpcy5vbk5hdmlnYXRpb25CdXR0b25UYWJBbmRTaGlmdChlLCBpbmRleCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09IEtleUNvZGUuQVJST1dfUklHSFQpIHtcbiAgICAgICAgICAgIHRoaXMub25OYXZpZ2F0aW9uQnV0dG9uQXJyb3dSaWdodChlKTtcbiAgICAgICAgfSBlbHNlIGlmIChlLmtleSA9PT0gS2V5Q29kZS5UQUIpIHtcbiAgICAgICAgICAgIHRoaXMub25OYXZpZ2F0aW9uQnV0dG9uVGFiKGUsIGluZGV4KTtcbiAgICAgICAgfSBlbHNlIGlmIChlLmtleSA9PT0gS2V5Q29kZS5BUlJPV19MRUZUKSB7XG4gICAgICAgICAgICB0aGlzLm9uTmF2aWdhdGlvbkJ1dHRvbkFycm93TGVmdChlLCBpbmRleCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlzQnV0dG9uVmlzaWJsZShidXR0b246IEVsZW1lbnRSZWYpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFidXR0b24pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYnV0dG9uLm5hdGl2ZUVsZW1lbnQuc3R5bGUuZGlzcGxheSA9PT0gJyc7XG4gICAgfVxuXG4gICAgc2hvd0J1dHRvbihidXR0b246IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlcjIuc2V0U3R5bGUoYnV0dG9uLm5hdGl2ZUVsZW1lbnQsICdkaXNwbGF5JywgJycpXG4gICAgfVxuXG4gICAgZm9jdXNPbkJ1dHRvbihidXR0b246IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFidXR0b24pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBidXR0b24ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIG9uU2xpZGVDb250cm9sQ2xpY2soc2xpZGU6IEVjbENhcm91c2VsSXRlbUNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3BQbGF5aW5nKCk7XG4gICAgICAgIHRoaXMuYWN0aXZhdGVTbGlkZShzbGlkZSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgb25OZXh0U2xpZGVDbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9wUGxheWluZygpO1xuICAgICAgICB0aGlzLmdvVG9OZXh0U2xpZGUodHJ1ZSk7XG4gICAgfVxuXG4gICAgb25QcmV2aW91c1NsaWRlQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcFBsYXlpbmcoKTtcbiAgICAgICAgdGhpcy5nb1RvUHJldmlvdXNTbGlkZSh0cnVlKTtcbiAgICB9XG5cbiAgICBvblNsaWRlSG92ZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGF1c2VQbGF5aW5nKCk7XG4gICAgfVxuXG4gICAgb25TbGlkZUhvdmVyb3V0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNTdG9wQnV0dG9uUHJlc3NlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLnJlc3VtZVBsYXlpbmcoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpc1N0b3BCdXR0b25QcmVzc2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1BhdXNlZEZvcmNlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNQYWRkZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzRGVza3RvcEJyZWFrcG9pbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGhhc0NvbnRyb2xzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRTbGlkZXNDb3VudCgpID4gMTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q3VycmVudFNsaWRlSW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IGN1cnJlbnRJbmRleDogbnVtYmVyO1xuXG4gICAgICAgIHRoaXMuZ2V0QWxsU2xpZGVzQXJyYXkoKS5mb3JFYWNoKChpdGVtLCBpZHgpID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtICYmIGl0ZW0uaXNDdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgY3VycmVudEluZGV4ID0gaWR4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA9PT0gdGhpcy5nZXRBbGxTbGlkZXNDb3VudCgpIC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50SW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFNsaWRlc0NvdW50KCkgLSAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjdXJyZW50SW5kZXggLSAxO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDYXJvdXNlbFNsaWRlc1dpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhcm91c2VsQ29udGFpbmVyRWxlbWVudD8ubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAqIHRoaXMuZ2V0QWxsU2xpZGVzQ291bnQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q2Fyb3VzZWxTbGlkZXNPZmZzZXRMZWZ0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAtMSAqIHRoaXMuY2Fyb3VzZWxDb250YWluZXJFbGVtZW50Py5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICogdGhpcy5nZXRDdXJyZW50SXRlbUluZGV4KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENhcm91c2VsU2xpZGVzT2Zmc2V0UmlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIC0xICogdGhpcy5jYXJvdXNlbENvbnRhaW5lckVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggKiB0aGlzLmdldEN1cnJlbnRJdGVtSW5kZXgoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZVJ0bENoYW5nZVN0YXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVjbFJ0bFNlcnZpY2UuY3VycmVudFJ0bFN0YXRlJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChydGxTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc1J0bCA9IHJ0bFN0YXRlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRBdXRvcGxheSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RhcnQkID0gdGhpcy5wbGF5U3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICAgICAgY29uc3Qgc3RvcCQgPSB0aGlzLnN0b3BTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgICAgIHN0YXJ0JFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IGludGVydmFsKHRoaXMucGxheUludGVydmFsKS5waXBlKHRha2VVbnRpbChzdG9wJCkpKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmdvVG9OZXh0U2xpZGUodHJ1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEN1cnJlbnRJdGVtSW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IDA7XG4gICAgICAgIHRoaXMuZ2V0QWxsU2xpZGVzQXJyYXkoKS5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0gJiYgaXRlbS5pc0N1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBpbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplU2xpZGVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNsaWRlcy5mb3JFYWNoKChpdGVtLCBpZHgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW5pdFNsaWRlKGl0ZW0sIGlkeCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmhhc0NvbnRyb2xzKCkpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdEhpZGRlbkl0ZW1zKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5pc05vU2xpZGVTZWxlY3RlZCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmF0ZVNsaWRlKHRoaXMuc2xpZGVzLmZpcnN0LCBmYWxzZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzQXV0b3BsYXkgJiYgdGhpcy5pc1RhYmxldEJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0UGxheWluZygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0SGlkZGVuSXRlbXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlyc3RIaWRkZW5JdGVtLmVsLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5nZXRMYXN0Q29udGVudENoaWxkKCk7XG4gICAgICAgIHRoaXMuZmlyc3RIaWRkZW5JdGVtLmlzQ3VycmVudCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxhc3RIaWRkZW5JdGVtLmVsLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5nZXRGaXJzdENvbnRlbnRDaGlsZCgpO1xuICAgICAgICB0aGlzLmxhc3RIaWRkZW5JdGVtLmlzQ3VycmVudCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNsaWRlV2lkdGggPSB0aGlzLnNsaWRlcy5maXJzdC53aWR0aDtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlcjIubGlzdGVuKHRoaXMuc2xpZGVzQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsICd0cmFuc2l0aW9uZW5kJywgKCkgPT4gdGhpcy5jaGVja0luZGV4KCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tJbmRleCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZ2V0Q3VycmVudEl0ZW1JbmRleCgpID09PSB0aGlzLmdldEFsbFNsaWRlc0NvdW50KCkgLSAxKSB7XG4gICAgICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5zbGlkZXMuZmlyc3Q7XG4gICAgICAgICAgICB0aGlzLmFjdGl2YXRlU2xpZGUoaXRlbSwgZmFsc2UpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZ2V0Q3VycmVudEl0ZW1JbmRleCgpID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5zbGlkZXMubGFzdDtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZhdGVTbGlkZShpdGVtLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldExhc3RDb250ZW50Q2hpbGQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2xpZGVzQ291bnQoKSA+IDAgPyB0aGlzLnNsaWRlcy5nZXQodGhpcy5nZXRTbGlkZXNDb3VudCgpIC0gMSkuZWwubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgOiAnJztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpcnN0Q29udGVudENoaWxkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFNsaWRlc0NvdW50KCkgPiAwID8gdGhpcy5zbGlkZXMuZ2V0KDApLmVsLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MIDogJyc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0U2xpZGUoaXRlbTogRWNsQ2Fyb3VzZWxJdGVtQ29tcG9uZW50LCBpZHg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpdGVtLmluZGV4ID0gaWR4O1xuICAgICAgICBpdGVtLmFyaWFMYWJlbCA9IGBzbGlkZSAke2lkeCArIDF9IG9mICR7dGhpcy5nZXRTbGlkZXNDb3VudCgpfWA7XG4gICAgICAgIGl0ZW0ud2lkdGggPSAxMDAgLyB0aGlzLmdldEFsbFNsaWRlc0NvdW50KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnb1RvTmV4dFNsaWRlKGlzTG9vcDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2YXRlU2xpZGUodGhpcy5nZXROZXh0U2xpZGUoaXNMb29wKSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnb1RvUHJldmlvdXNTbGlkZShpc0xvb3A6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZVNsaWRlKHRoaXMuZ2V0UHJldmlvdXNTbGlkZShpc0xvb3ApLCB0cnVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFjdGl2YXRlU2xpZGUoc2xpZGU6IEVjbENhcm91c2VsSXRlbUNvbXBvbmVudCwgd2l0aFRyYW5zaXRpb246IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHdpdGhUcmFuc2l0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnRyYW5zaXRpb25EdXJhdGlvbiA9IDAuNDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudHJhbnNpdGlvbkR1cmF0aW9uID0gMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2xpZGUpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0QWxsU2xpZGVzQXJyYXkoKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbS5pc0N1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc2xpZGUuaXNDdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAod2l0aFRyYW5zaXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc2xpZGUubmV4dChuZXcgRWNsU2xpZGVFdmVudCh0aGlzLnNsaWRlcy5nZXQodGhpcy5nZXRDdXJyZW50U2xpZGVJbmRleCgpKSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0xhc3RCdXR0b24oaW5kZXgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgYnV0dG9uc0xpc3QgPSB0aGlzLm5hdmlnYXRpb25CdXR0b25zO1xuICAgICAgICByZXR1cm4gaW5kZXggKyAxID49IGJ1dHRvbnNMaXN0Lmxlbmd0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRmlyc3RCdXR0b24oaW5kZXgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGluZGV4IDw9IDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGFydFBsYXlpbmcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNQbGF5aW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pc1BhdXNlZEZvcmNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnBsYXlTdWJqZWN0Lm5leHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0b3BQbGF5aW5nKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzUGxheWluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzUGF1c2VkRm9yY2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zdG9wU3ViamVjdC5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwYXVzZVBsYXlpbmcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNQbGF5aW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc3RvcFN1YmplY3QubmV4dCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzdW1lUGxheWluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1BsYXlpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLnBsYXlTdWJqZWN0Lm5leHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE5leHRTbGlkZShpc0xvb3A6IGJvb2xlYW4pOiBFY2xDYXJvdXNlbEl0ZW1Db21wb25lbnQge1xuICAgICAgICBjb25zdCBzbGlkZXNDb3VudCA9IHRoaXMuZ2V0U2xpZGVzQ291bnQoKTtcbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5nZXRDdXJyZW50U2xpZGVJbmRleCgpO1xuXG4gICAgICAgIGlmIChjdXJyZW50SW5kZXggPj0gc2xpZGVzQ291bnQgLSAxKSB7XG4gICAgICAgICAgICBpZiAoaXNMb29wKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWxsU2xpZGVzQXJyYXkoKVt0aGlzLmdldEFsbFNsaWRlc0NvdW50KCkgLTFdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zbGlkZXMubGFzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNsaWRlcy5nZXQoY3VycmVudEluZGV4ICsgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEFsbFNsaWRlc0FycmF5KCk6IEVjbENhcm91c2VsSXRlbUNvbXBvbmVudFtdIHtcbiAgICAgICAgcmV0dXJuIFsuLi5bdGhpcy5maXJzdEhpZGRlbkl0ZW1dLCAuLi50aGlzLnNsaWRlcy50b0FycmF5KCksIC4uLlt0aGlzLmxhc3RIaWRkZW5JdGVtXV07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQcmV2aW91c1NsaWRlKGlzTG9vcDogYm9vbGVhbik6IEVjbENhcm91c2VsSXRlbUNvbXBvbmVudCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuZ2V0Q3VycmVudFNsaWRlSW5kZXgoKTtcblxuICAgICAgICBpZiAoY3VycmVudEluZGV4IDw9IDApIHtcbiAgICAgICAgICAgIGlmKGlzTG9vcCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEFsbFNsaWRlc0FycmF5KClbMF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNsaWRlcy5maXJzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNsaWRlcy5nZXQoY3VycmVudEluZGV4IC0gMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNsaWRlc0NvdW50KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnNsaWRlcy5sZW5ndGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBbGxTbGlkZXNDb3VudCgpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5oYXNDb250cm9scygpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zbGlkZXMubGVuZ3RoICsgMjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNsaWRlcy5sZW5ndGhcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaXNOb1NsaWRlU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5zbGlkZXMuc29tZSgoaXRlbSkgPT4gaXRlbS5pc0N1cnJlbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25OYXZpZ2F0aW9uQnV0dG9uVGFiQW5kU2hpZnQoZTogS2V5Ym9hcmRFdmVudCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBidXR0b246IEVsZW1lbnRSZWYgPSB0aGlzLm5hdmlnYXRpb25CdXR0b25zLmdldCh0aGlzLmdldEN1cnJlbnRTbGlkZUluZGV4KCkpO1xuICAgICAgICBpZiAoYnV0dG9uKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc1BsYXlpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3BQbGF5aW5nKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNGaXJzdEJ1dHRvbihpbmRleCkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnBsYXlCdXR0b24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzT25CdXR0b24odGhpcy5wbGF5QnV0dG9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnBhdXNlQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c09uQnV0dG9uKHRoaXMucGF1c2VCdXR0b24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5nb1RvUHJldmlvdXNTbGlkZShmYWxzZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgYnV0dG9uOiBFbGVtZW50UmVmID0gdGhpcy5uYXZpZ2F0aW9uQnV0dG9ucy5nZXQodGhpcy5nZXRDdXJyZW50U2xpZGVJbmRleCgpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzT25CdXR0b24oYnV0dG9uKTtcbiAgICAgICAgICAgIH0sIHRoaXMuVElNRU9VVF9JTlRFUlZBTCk7XG4gICAgICAgIH1cbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25OYXZpZ2F0aW9uQnV0dG9uVGFiKGUsIGluZGV4KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTGFzdEJ1dHRvbihpbmRleCkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzQnV0dG9uVmlzaWJsZSh0aGlzLnByZXZCdXR0b24pKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c09uQnV0dG9uKHRoaXMucHJldkJ1dHRvbik7XG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5nb1RvTmV4dFNsaWRlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBidXR0b246IEVsZW1lbnRSZWYgPSB0aGlzLm5hdmlnYXRpb25CdXR0b25zLmdldCh0aGlzLmdldEN1cnJlbnRTbGlkZUluZGV4KCkpO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNPbkJ1dHRvbihidXR0b24pO1xuICAgICAgICAgICAgfSwgdGhpcy5USU1FT1VUX0lOVEVSVkFMKTtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25OYXZpZ2F0aW9uQnV0dG9uQXJyb3dSaWdodChlOiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5nb1RvTmV4dFNsaWRlKGZhbHNlKTtcbiAgICAgICAgICAgIGNvbnN0IGJ1dHRvbjogRWxlbWVudFJlZiA9IHRoaXMubmF2aWdhdGlvbkJ1dHRvbnMuZ2V0KHRoaXMuZ2V0Q3VycmVudFNsaWRlSW5kZXgoKSk7XG4gICAgICAgICAgICB0aGlzLmZvY3VzT25CdXR0b24oYnV0dG9uKTtcbiAgICAgICAgfSwgdGhpcy5USU1FT1VUX0lOVEVSVkFMKTtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25OYXZpZ2F0aW9uQnV0dG9uQXJyb3dMZWZ0KGU6IEtleWJvYXJkRXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNGaXJzdEJ1dHRvbihpbmRleCkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnBsYXlCdXR0b24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzT25CdXR0b24odGhpcy5wbGF5QnV0dG9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnBhdXNlQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb2N1c09uQnV0dG9uKHRoaXMucGF1c2VCdXR0b24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5nb1RvUHJldmlvdXNTbGlkZShmYWxzZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgYnV0dG9uOiBFbGVtZW50UmVmID0gdGhpcy5uYXZpZ2F0aW9uQnV0dG9ucy5nZXQodGhpcy5nZXRDdXJyZW50U2xpZGVJbmRleCgpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzT25CdXR0b24oYnV0dG9uKTtcbiAgICAgICAgICAgIH0sIHRoaXMuVElNRU9VVF9JTlRFUlZBTCk7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9ic2VydmVCcmVha3BvaW50Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jZGtCcmVha3BvaW50T2JzZXJ2ZXJcbiAgICAgICAgICAgIC5vYnNlcnZlKFtcbiAgICAgICAgICAgICAgICAnKG1heC13aWR0aDogNzY4cHgpJyxcbiAgICAgICAgICAgICAgICAnKG1heC13aWR0aDogOTk3cHgpJyxcbiAgICAgICAgICAgICAgICAnKG1pbi13aWR0aDogOTk4cHgpJyxcbiAgICAgICAgICAgICAgICAnKG1pbi13aWR0aDogMTE0MHB4KSBhbmQgKG1heC13aWR0aDogMTI2MHB4KScsXG4gICAgICAgICAgICAgICAgJyhtaW4td2lkdGg6IDExNDBweCknLFxuICAgICAgICAgICAgXSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNNb2JpbGVCcmVha3BvaW50ID0gcmVzdWx0LmJyZWFrcG9pbnRzWycobWF4LXdpZHRoOiA3NjhweCknXTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzVGFibGV0QnJlYWtwb2ludCA9IHJlc3VsdC5icmVha3BvaW50c1snKG1pbi13aWR0aDogOTk4cHgpJ107XG4gICAgICAgICAgICAgICAgdGhpcy5pc0Rlc2t0b3BCcmVha3BvaW50ID0gcmVzdWx0LmJyZWFrcG9pbnRzWycobWluLXdpZHRoOiAxMTQwcHgpIGFuZCAobWF4LXdpZHRoOiAxMjYwcHgpJ107XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xhcmdlRGVza3RvcEJyZWFrcG9pbnQgPSByZXN1bHQuYnJlYWtwb2ludHNbJyhtaW4td2lkdGg6IDExNDBweCknXTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmJyZWFrcG9pbnRzWycobWF4LXdpZHRoOiA5OTdweCknXSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVzZXRIZWlnaHQoKSwgMjAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNNb2JpbGVCcmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcFBsYXlpbmcoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1RhYmxldEJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNoZWNrQmFubmVySGVpZ2h0cygpLCAyMDApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTGFyZ2VEZXNrdG9wQnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzQnV0dG9uRGlzcGxheSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgb2JzZXJ2ZUVsZW1lbnRTaXplQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KS5vYnNlcnZlKHRoaXMuY2Fyb3VzZWxDb250YWluZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNCdXR0b25EaXNwbGF5KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzQnV0dG9uTmF2VmlzaWJsZSA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLmdldFNsaWRlc0NvdW50KCkgPD0gMSkge1xuICAgICAgICAgICAgdGhpcy5pc0J1dHRvbk5hdlZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tCYW5uZXJIZWlnaHRzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBoZWlnaHRWYWx1ZXMgPSB0aGlzLnNsaWRlcy5tYXAoKHNsaWRlKT0+IHtcbiAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IHNsaWRlLmJhbm5lcj8uZWwubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnaGVpZ2h0JywgaGVpZ2h0KTtcbiAgICAgICAgICAgIGlmIChoZWlnaHQgPT09ICdhdXRvJykge1xuICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKE51bWJlci5pc05hTihoZWlnaHQpIHx8IGhlaWdodCA9PT0gMTAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaGVpZ2h0O1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBlbGVtZW50SGVpZ2h0cyA9IGhlaWdodFZhbHVlcy5maWx0ZXIoKGhlaWdodCk9PiBoZWlnaHQgIT09IHVuZGVmaW5lZClcbiAgICAgICAgY29uc3QgdGFsbGVzdEVsZW1lbnRIZWlnaHQgPSBNYXRoLm1heCguLi5lbGVtZW50SGVpZ2h0cyk7XG4gICAgICAgIGlmICh0YWxsZXN0RWxlbWVudEhlaWdodCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuc2xpZGVzLmZvckVhY2goKHNsaWRlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmFubmVyID0gc2xpZGUuYmFubmVyO1xuICAgICAgICAgICAgICAgIGlmIChiYW5uZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmFubmVySW1hZ2UgPSBiYW5uZXIuZWNsQmFubmVySW1hZ2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIyLnNldFN0eWxlKGJhbm5lci5lbC5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgYCR7dGFsbGVzdEVsZW1lbnRIZWlnaHR9cHhgKVxuICAgICAgICAgICAgICAgICAgICBpZiAoYmFubmVySW1hZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIyLnNldFN0eWxlKGJhbm5lckltYWdlLmVsLm5hdGl2ZUVsZW1lbnQsICdhc3BlY3RSYXRpbycsICdhdXRvJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMucmVzZXRIaWRkZW5JdGVtcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXNldEhlaWdodCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZXRBbGxTbGlkZXNBcnJheSgpLmZvckVhY2goKHNsaWRlKT0+IHtcbiAgICAgICAgICAgIGNvbnN0IGJhbm5lciA9IHNsaWRlLmJhbm5lcjtcbiAgICAgICAgICAgIGlmIChiYW5uZXIpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBiYW5uZXJJbWFnZSA9IHNsaWRlLmJhbm5lci5lY2xCYW5uZXJJbWFnZTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyMi5zZXRTdHlsZShiYW5uZXIuZWwubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsICcnKVxuICAgICAgICAgICAgICAgIGlmIChiYW5uZXJJbWFnZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyMi5zZXRTdHlsZShiYW5uZXJJbWFnZS5lbC5uYXRpdmVFbGVtZW50LCAnYXNwZWN0UmF0aW8nLCAnJylcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlc2V0SGlkZGVuSXRlbXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0SGlkZGVuSXRlbXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmhhc0NvbnRyb2xzKCkpIHtcbiAgICAgICAgICAgIHRoaXMuZmlyc3RIaWRkZW5JdGVtLmVsLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5nZXRMYXN0Q29udGVudENoaWxkKCk7XG4gICAgICAgICAgICB0aGlzLmxhc3RIaWRkZW5JdGVtLmVsLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5nZXRGaXJzdENvbnRlbnRDaGlsZCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiAjY2Fyb3VzZWxDb250YWluZXIgY2xhc3M9XCJlY2wtY2Fyb3VzZWxfX2NvbnRhaW5lclwiIFtjbGFzcy5lY2wtY2Fyb3VzZWwtY29udGFpbmVyLS1wYWRkZWRdPVwiaXNQYWRkZWQoKVwiPlxuICAgIDxkaXYgI3NsaWRlc0NvbnRhaW5lciAoa2V5dXApPVwib25GaXJzdENhcm91c2VsRWxlbWVudFByZXNzKCRldmVudClcIiBjbGFzcz1cImVjbC1jYXJvdXNlbF9fc2xpZGVzXCJcbiAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImdldENhcm91c2VsU2xpZGVzV2lkdGgoKVwiIFtzdHlsZS5sZWZ0LnB4XT1cIiFpc1J0bCA/IGdldENhcm91c2VsU2xpZGVzT2Zmc2V0TGVmdCgpIDogbnVsbFwiXG4gICAgICAgIFtzdHlsZS5yaWdodC5weF09XCJpc1J0bCA/IGdldENhcm91c2VsU2xpZGVzT2Zmc2V0UmlnaHQoKSA6IG51bGxcIlxuICAgICAgICBbc3R5bGUudHJhbnNpdGlvbi1kdXJhdGlvbi5zXT1cInRyYW5zaXRpb25EdXJhdGlvblwiIChtb3VzZW92ZXIpPVwib25TbGlkZUhvdmVyKClcIiAobW91c2VvdXQpPVwib25TbGlkZUhvdmVyb3V0KClcIj5cblxuICAgICAgICBAaWYoaGFzQ29udHJvbHMoKSl7XG4gICAgICAgIDxlY2wtY2Fyb3VzZWwtaXRlbSAjZmlyc3RIaWRkZW5JdGVtIFtzdHlsZS53aWR0aC4lXT1cInNsaWRlV2lkdGhcIj48L2VjbC1jYXJvdXNlbC1pdGVtPlxuICAgICAgICB9XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgICAgICBAaWYoaGFzQ29udHJvbHMoKSl7XG4gICAgICAgIDxlY2wtY2Fyb3VzZWwtaXRlbSAjbGFzdEhpZGRlbkl0ZW0gW3N0eWxlLndpZHRoLiVdPVwic2xpZGVXaWR0aFwiPjwvZWNsLWNhcm91c2VsLWl0ZW0+XG4gICAgICAgIH1cblxuICAgIDwvZGl2PlxuPC9kaXY+XG5AaWYoaXNCdXR0b25OYXZWaXNpYmxlKSB7XG48YnV0dG9uICNwcmV2QnV0dG9uIGNsYXNzPVwiZWNsLWJ1dHRvbiBlY2wtYnV0dG9uLS1naG9zdCBlY2wtY2Fyb3VzZWxfX3ByZXYgZWNsLWJ1dHRvbi0taWNvbi1vbmx5XCIgdHlwZT1cImJ1dHRvblwiXG4gICAgKGNsaWNrKT1cIm9uUHJldmlvdXNTbGlkZUNsaWNrKClcIj5cbiAgICA8c3BhbiBjbGFzcz1cImVjbC1idXR0b25fX2NvbnRhaW5lclwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImVjbC1idXR0b25fX2xhYmVsXCI+XG4gICAgICAgICAgICB7eyAnZWNsLmNhcm91c2VsLk5FWFQtU0xJREVTJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxlY2wtaWNvbiBpY29uPVwiY29ybmVyLWFycm93XCIgc2l6ZT1cIm1cIiB0cmFuc2Zvcm09XCJyb3RhdGUtMjcwXCIgY2xhc3M9XCJlY2wtYnV0dG9uX19pY29uXCI+IDwvZWNsLWljb24+XG4gICAgPC9zcGFuPlxuPC9idXR0b24+XG59XG5cbkBpZihoYXNDb250cm9scygpKXtcbjxkaXYgY2xhc3M9XCJlY2wtY2Fyb3VzZWxfX2NvbnRyb2xzXCI+XG4gICAgPGRpdiBjbGFzcz1cImVjbC1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVjbC1jYXJvdXNlbF9fYXV0b3BsYXlcIj5cbiAgICAgICAgICAgIDxidXR0b24gI3BsYXlCdXR0b24gY2xhc3M9XCJlY2wtYnV0dG9uIGVjbC1idXR0b24tLWdob3N0IGVjbC1jYXJvdXNlbF9fcGxheSBlY2wtYnV0dG9uLS1pY29uLW9ubHlcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIiBbc3R5bGUuZGlzcGxheV09XCJpc1BsYXlpbmcgPyAnbm9uZScgOiAnZmxleCdcIiAoa2V5ZG93bik9XCJvblBsYXlLZXlib2FyZFByZXNzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblBsYXlDbGljaygpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlY2wtYnV0dG9uX19jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlY2wtYnV0dG9uX19sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2VjbC5jYXJvdXNlbC5QTEFZJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxlY2wtaWNvbiBpY29uPVwicGxheS1vdXRsaW5lXCIgc2l6ZT1cIm1cIiBjbGFzcz1cImVjbC1idXR0b25fX2ljb24gZWNsLWNhcm91c2VsX19pY29uLWRlZmF1bHRcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9lY2wtaWNvbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICA8YnV0dG9uICNwYXVzZUJ1dHRvbiBjbGFzcz1cImVjbC1idXR0b24gZWNsLWJ1dHRvbi0tZ2hvc3QgZWNsLWNhcm91c2VsX19wYXVzZSBlY2wtYnV0dG9uLS1pY29uLW9ubHlcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIiBbc3R5bGUuZGlzcGxheV09XCJpc1BsYXlpbmcgPyAnZmxleCcgOiAnbm9uZSdcIiAoa2V5ZG93bik9XCJvblBsYXlLZXlib2FyZFByZXNzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblBhdXNlQ2xpY2soKVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZWNsLWJ1dHRvbl9fY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZWNsLWJ1dHRvbl9fbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdlY2wuY2Fyb3VzZWwuUEFVU0UnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGVjbC1pY29uIGljb249XCJwYXVzZVwiIHNpemU9XCJtXCIgY2xhc3M9XCJlY2wtYnV0dG9uX19pY29uIGVjbC1jYXJvdXNlbF9faWNvbi1kZWZhdWx0XCI+IDwvZWNsLWljb24+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVjbC1jYXJvdXNlbF9fbmF2aWdhdGlvblwiPlxuICAgICAgICAgICAgQGZvciAoc2xpZGUgb2Ygc2xpZGVzOyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgc2xpZGUpIHtcbiAgICAgICAgICAgIDxidXR0b24gI2N1cnJCdXR0b24gW2F0dHIuYXJpYS1jdXJyZW50XT1cImkgPT09IGdldEN1cnJlbnRTbGlkZUluZGV4KClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZWNsLWJ1dHRvbiBlY2wtYnV0dG9uLS1naG9zdCBlY2wtY2Fyb3VzZWxfX25hdmlnYXRpb24taXRlbVwiIChjbGljayk9XCJvblNsaWRlQ29udHJvbENsaWNrKHNsaWRlKVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25OYXZCdG5LZXlib2FyZFByZXNzKCRldmVudCwgaSlcIj5cbiAgICAgICAgICAgICAgICB7eyBpICsgMSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG59XG5AaWYoaXNCdXR0b25OYXZWaXNpYmxlKSB7XG48YnV0dG9uICNuZXh0QnV0dG9uIGNsYXNzPVwiZWNsLWJ1dHRvbiBlY2wtYnV0dG9uLS1naG9zdCBlY2wtY2Fyb3VzZWxfX25leHQgZWNsLWJ1dHRvbi0taWNvbi1vbmx5XCIgdHlwZT1cImJ1dHRvblwiXG4gICAgKGNsaWNrKT1cIm9uTmV4dFNsaWRlQ2xpY2soKVwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZWNsLWJ1dHRvbl9fY29udGFpbmVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZWNsLWJ1dHRvbl9fbGFiZWxcIj5cbiAgICAgICAgICAgIHt7ICdlY2wuY2Fyb3VzZWwuTkVYVC1TTElERVMnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGVjbC1pY29uIGljb249XCJjb3JuZXItYXJyb3dcIiBzaXplPVwibVwiIHRyYW5zZm9ybT1cInJvdGF0ZS05MFwiIGNsYXNzPVwiZWNsLWJ1dHRvbl9faWNvblwiPiA8L2VjbC1pY29uPlxuICAgIDwvc3Bhbj5cblxuPC9idXR0b24+XG59Il19
@@ -0,0 +1,19 @@
1
+ import { Directive, HostBinding } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class EclLoadingIndicatorLabelDirective {
4
+ constructor() {
5
+ this.className = true;
6
+ }
7
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i0, type: EclLoadingIndicatorLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
8
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.2", type: EclLoadingIndicatorLabelDirective, selector: "[eclLoadingIndicatorLabel]", host: { properties: { "class.ecl-spinner__text": "this.className" } }, ngImport: i0 }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i0, type: EclLoadingIndicatorLabelDirective, decorators: [{
11
+ type: Directive,
12
+ args: [{
13
+ selector: '[eclLoadingIndicatorLabel]',
14
+ }]
15
+ }], propDecorators: { className: [{
16
+ type: HostBinding,
17
+ args: ['class.ecl-spinner__text']
18
+ }] } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLWxvYWRpbmctaW5kaWNhdG9yLWxhYmVsLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbG9hZGluZy1pbmRpY2F0b3IvZWNsLWxvYWRpbmctaW5kaWNhdG9yLWxhYmVsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLdkQsTUFBTSxPQUFPLGlDQUFpQztJQUg5QztRQUk0QyxjQUFTLEdBQUcsSUFBSSxDQUFDO0tBQzVEO3dJQUZZLGlDQUFpQzs0SEFBakMsaUNBQWlDOztrR0FBakMsaUNBQWlDO2tCQUg3QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw0QkFBNEI7aUJBQ3pDOzhCQUUyQyxTQUFTO3NCQUFoRCxXQUFXO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZWNsTG9hZGluZ0luZGljYXRvckxhYmVsXScsXG59KVxuZXhwb3J0IGNsYXNzIEVjbExvYWRpbmdJbmRpY2F0b3JMYWJlbERpcmVjdGl2ZSB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5lY2wtc3Bpbm5lcl9fdGV4dCcpIGNsYXNzTmFtZSA9IHRydWU7XG59XG4iXX0=
@@ -0,0 +1,20 @@
1
+ import { Directive, HostBinding } from '@angular/core';
2
+ import { ECLBaseDirective } from '../ecl-base.directive';
3
+ import * as i0 from "@angular/core";
4
+ export class EclLoadingIndicatorOverlayDirective extends ECLBaseDirective {
5
+ get cssClasses() {
6
+ return [super.getCssClasses('ecl-spinner__overlay ecl-spinner__overlay--visible')].join(' ').trim();
7
+ }
8
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i0, type: EclLoadingIndicatorOverlayDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
9
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.2", type: EclLoadingIndicatorOverlayDirective, selector: "[eclLoadingIndicatorOverlay]", host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i0, type: EclLoadingIndicatorOverlayDirective, decorators: [{
12
+ type: Directive,
13
+ args: [{
14
+ selector: '[eclLoadingIndicatorOverlay]',
15
+ }]
16
+ }], propDecorators: { cssClasses: [{
17
+ type: HostBinding,
18
+ args: ['class']
19
+ }] } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLWxvYWRpbmctaW5kaWNhdG9yLW92ZXJsYXkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VjbC1sb2FkaW5nLWluZGljYXRvci9lY2wtbG9hZGluZy1pbmRpY2F0b3Itb3ZlcmxheS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBS3pELE1BQU0sT0FBTyxtQ0FBb0MsU0FBUSxnQkFBZ0I7SUFDckUsSUFDSSxVQUFVO1FBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsb0RBQW9ELENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4RyxDQUFDO3dJQUpRLG1DQUFtQzs0SEFBbkMsbUNBQW1DOztrR0FBbkMsbUNBQW1DO2tCQUgvQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw4QkFBOEI7aUJBQzNDOzhCQUdPLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0QmluZGluZyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRUNMQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4uL2VjbC1iYXNlLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2VjbExvYWRpbmdJbmRpY2F0b3JPdmVybGF5XScsXG59KVxuZXhwb3J0IGNsYXNzIEVjbExvYWRpbmdJbmRpY2F0b3JPdmVybGF5RGlyZWN0aXZlIGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtzdXBlci5nZXRDc3NDbGFzc2VzKCdlY2wtc3Bpbm5lcl9fb3ZlcmxheSBlY2wtc3Bpbm5lcl9fb3ZlcmxheS0tdmlzaWJsZScpXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,43 @@
1
+ import { Component, HostBinding, Input, booleanAttribute } from '@angular/core';
2
+ import { ECLBaseDirective } from '../ecl-base.directive';
3
+ import * as i0 from "@angular/core";
4
+ export class EclLoadingIndicatorComponent extends ECLBaseDirective {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.size = 'm';
8
+ this.variant = 'primary';
9
+ this.isCentered = true;
10
+ this.isVisible = true;
11
+ }
12
+ get cssClasses() {
13
+ return [
14
+ super.getCssClasses('ecl-spinner'),
15
+ `ecl-spinner--${this.size}`,
16
+ `ecl-spinner--${this.variant}`,
17
+ this.isCentered ? 'ecl-spinner--centered' : '',
18
+ this.isVisible ? 'ecl-spinner--visible' : '',
19
+ ]
20
+ .join(' ')
21
+ .trim();
22
+ }
23
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i0, type: EclLoadingIndicatorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
24
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0-next.2", type: EclLoadingIndicatorComponent, selector: "ecl-loading-indicator", inputs: { size: "size", variant: "variant", isCentered: ["isCentered", "isCentered", booleanAttribute], isVisible: ["isVisible", "isVisible", booleanAttribute] }, host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<svg class=\"ecl-spinner__loader\" viewBox=\"25 25 50 50\">\n <circle\n class=\"ecl-spinner__circle\"\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n stroke-width=\"4px\"\n stroke-miterlimit=\"10\"\n vector-effect=\"non-scaling-stroke\"></circle>\n</svg>\n<ng-content></ng-content>\n" }); }
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i0, type: EclLoadingIndicatorComponent, decorators: [{
27
+ type: Component,
28
+ args: [{ selector: 'ecl-loading-indicator', template: "<svg class=\"ecl-spinner__loader\" viewBox=\"25 25 50 50\">\n <circle\n class=\"ecl-spinner__circle\"\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n stroke-width=\"4px\"\n stroke-miterlimit=\"10\"\n vector-effect=\"non-scaling-stroke\"></circle>\n</svg>\n<ng-content></ng-content>\n" }]
29
+ }], propDecorators: { cssClasses: [{
30
+ type: HostBinding,
31
+ args: ['class']
32
+ }], size: [{
33
+ type: Input
34
+ }], variant: [{
35
+ type: Input
36
+ }], isCentered: [{
37
+ type: Input,
38
+ args: [{ transform: booleanAttribute }]
39
+ }], isVisible: [{
40
+ type: Input,
41
+ args: [{ transform: booleanAttribute }]
42
+ }] } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLWxvYWRpbmctaW5kaWNhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbG9hZGluZy1pbmRpY2F0b3IvZWNsLWxvYWRpbmctaW5kaWNhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbG9hZGluZy1pbmRpY2F0b3IvZWNsLWxvYWRpbmctaW5kaWNhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFNekQsTUFBTSxPQUFPLDRCQUE2QixTQUFRLGdCQUFnQjtJQUpsRTs7UUFrQmEsU0FBSSxHQUFvQixHQUFHLENBQUM7UUFDNUIsWUFBTyxHQUEyQixTQUFTLENBQUM7UUFDYixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGNBQVMsR0FBRyxJQUFJLENBQUM7S0FDNUQ7SUFqQkcsSUFDSSxVQUFVO1FBQ1YsT0FBTztZQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDO1lBQ2xDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxFQUFFO1lBQzNCLGdCQUFnQixJQUFJLENBQUMsT0FBTyxFQUFFO1lBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQy9DO2FBQ0ksSUFBSSxDQUFDLEdBQUcsQ0FBQzthQUNULElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7d0lBWlEsNEJBQTRCOzRIQUE1Qiw0QkFBNEIsMEhBZ0JqQixnQkFBZ0IseUNBQ2hCLGdCQUFnQiwwR0N6QnhDLDZWQVlBOztrR0RKYSw0QkFBNEI7a0JBSnhDLFNBQVM7K0JBQ0ksdUJBQXVCOzhCQUs3QixVQUFVO3NCQURiLFdBQVc7dUJBQUMsT0FBTztnQkFhWCxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNrQyxVQUFVO3NCQUFqRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLFNBQVM7c0JBQWhELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgYm9vbGVhbkF0dHJpYnV0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlY2wtbG9hZGluZy1pbmRpY2F0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lY2wtbG9hZGluZy1pbmRpY2F0b3IuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xMb2FkaW5nSW5kaWNhdG9yQ29tcG9uZW50IGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHN1cGVyLmdldENzc0NsYXNzZXMoJ2VjbC1zcGlubmVyJyksXG4gICAgICAgICAgICBgZWNsLXNwaW5uZXItLSR7dGhpcy5zaXplfWAsXG4gICAgICAgICAgICBgZWNsLXNwaW5uZXItLSR7dGhpcy52YXJpYW50fWAsXG4gICAgICAgICAgICB0aGlzLmlzQ2VudGVyZWQgPyAnZWNsLXNwaW5uZXItLWNlbnRlcmVkJyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5pc1Zpc2libGUgPyAnZWNsLXNwaW5uZXItLXZpc2libGUnIDogJycsXG4gICAgICAgIF1cbiAgICAgICAgICAgIC5qb2luKCcgJylcbiAgICAgICAgICAgIC50cmltKCk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2l6ZTogJ3MnIHwgJ20nIHwgJ2wnID0gJ20nO1xuICAgIEBJbnB1dCgpIHZhcmlhbnQ6ICdwcmltYXJ5JyB8ICdpbnZlcnRlZCcgPSAncHJpbWFyeSc7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzQ2VudGVyZWQgPSB0cnVlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc1Zpc2libGUgPSB0cnVlO1xufVxuIiwiPHN2ZyBjbGFzcz1cImVjbC1zcGlubmVyX19sb2FkZXJcIiB2aWV3Qm94PVwiMjUgMjUgNTAgNTBcIj5cbiAgICA8Y2lyY2xlXG4gICAgICAgIGNsYXNzPVwiZWNsLXNwaW5uZXJfX2NpcmNsZVwiXG4gICAgICAgIGN4PVwiNTBcIlxuICAgICAgICBjeT1cIjUwXCJcbiAgICAgICAgcj1cIjIwXCJcbiAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICBzdHJva2Utd2lkdGg9XCI0cHhcIlxuICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdD1cIjEwXCJcbiAgICAgICAgdmVjdG9yLWVmZmVjdD1cIm5vbi1zY2FsaW5nLXN0cm9rZVwiPjwvY2lyY2xlPlxuPC9zdmc+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { EclLoadingIndicatorComponent } from './ecl-loading-indicator.component';
4
+ import { TranslateModule } from '@ngx-translate/core';
5
+ import { EclLoadingIndicatorLabelDirective } from './ecl-loading-indicator-label.directive';
6
+ import { EclLoadingIndicatorOverlayDirective } from './ecl-loading-indicator-overlay.directive';
7
+ import * as i0 from "@angular/core";
8
+ export class EclLoadingIndicatorComponentModule {
9
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i0, type: EclLoadingIndicatorComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0-next.2", ngImport: i0, type: EclLoadingIndicatorComponentModule, declarations: [EclLoadingIndicatorComponent, EclLoadingIndicatorLabelDirective, EclLoadingIndicatorOverlayDirective], imports: [CommonModule, TranslateModule], exports: [EclLoadingIndicatorComponent, EclLoadingIndicatorLabelDirective, EclLoadingIndicatorOverlayDirective] }); }
11
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i0, type: EclLoadingIndicatorComponentModule, imports: [CommonModule, TranslateModule] }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i0, type: EclLoadingIndicatorComponentModule, decorators: [{
14
+ type: NgModule,
15
+ args: [{
16
+ imports: [CommonModule, TranslateModule],
17
+ exports: [EclLoadingIndicatorComponent, EclLoadingIndicatorLabelDirective, EclLoadingIndicatorOverlayDirective],
18
+ declarations: [EclLoadingIndicatorComponent, EclLoadingIndicatorLabelDirective, EclLoadingIndicatorOverlayDirective],
19
+ }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLWxvYWRpbmctaW5kaWNhdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbG9hZGluZy1pbmRpY2F0b3IvZWNsLWxvYWRpbmctaW5kaWNhdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDNUYsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7O0FBT2hHLE1BQU0sT0FBTyxrQ0FBa0M7d0lBQWxDLGtDQUFrQzt5SUFBbEMsa0NBQWtDLGlCQUY1Qiw0QkFBNEIsRUFBRSxpQ0FBaUMsRUFBRSxtQ0FBbUMsYUFGekcsWUFBWSxFQUFFLGVBQWUsYUFDN0IsNEJBQTRCLEVBQUUsaUNBQWlDLEVBQUUsbUNBQW1DO3lJQUdyRyxrQ0FBa0MsWUFKakMsWUFBWSxFQUFFLGVBQWU7O2tHQUk5QixrQ0FBa0M7a0JBTDlDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQztvQkFDeEMsT0FBTyxFQUFFLENBQUMsNEJBQTRCLEVBQUUsaUNBQWlDLEVBQUUsbUNBQW1DLENBQUM7b0JBQy9HLFlBQVksRUFBRSxDQUFDLDRCQUE0QixFQUFFLGlDQUFpQyxFQUFFLG1DQUFtQyxDQUFDO2lCQUN2SCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRWNsTG9hZGluZ0luZGljYXRvckNvbXBvbmVudCB9IGZyb20gJy4vZWNsLWxvYWRpbmctaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEVjbExvYWRpbmdJbmRpY2F0b3JMYWJlbERpcmVjdGl2ZSB9IGZyb20gJy4vZWNsLWxvYWRpbmctaW5kaWNhdG9yLWxhYmVsLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBFY2xMb2FkaW5nSW5kaWNhdG9yT3ZlcmxheURpcmVjdGl2ZSB9IGZyb20gJy4vZWNsLWxvYWRpbmctaW5kaWNhdG9yLW92ZXJsYXkuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtFY2xMb2FkaW5nSW5kaWNhdG9yQ29tcG9uZW50LCBFY2xMb2FkaW5nSW5kaWNhdG9yTGFiZWxEaXJlY3RpdmUsIEVjbExvYWRpbmdJbmRpY2F0b3JPdmVybGF5RGlyZWN0aXZlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtFY2xMb2FkaW5nSW5kaWNhdG9yQ29tcG9uZW50LCBFY2xMb2FkaW5nSW5kaWNhdG9yTGFiZWxEaXJlY3RpdmUsIEVjbExvYWRpbmdJbmRpY2F0b3JPdmVybGF5RGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgRWNsTG9hZGluZ0luZGljYXRvckNvbXBvbmVudE1vZHVsZSB7fVxuIl19
@@ -0,0 +1,5 @@
1
+ export * from './ecl-loading-indicator.module';
2
+ export * from './ecl-loading-indicator.component';
3
+ export * from './ecl-loading-indicator-label.directive';
4
+ export * from './ecl-loading-indicator-overlay.directive';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLWxvYWRpbmctaW5kaWNhdG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsMkNBQTJDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VjbC1sb2FkaW5nLWluZGljYXRvci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9lY2wtbG9hZGluZy1pbmRpY2F0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZWNsLWxvYWRpbmctaW5kaWNhdG9yLWxhYmVsLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2VjbC1sb2FkaW5nLWluZGljYXRvci1vdmVybGF5LmRpcmVjdGl2ZSc7XG4iXX0=
@@ -46,11 +46,11 @@ export class EclModalHeaderComponent extends ECLBaseDirective {
46
46
  }
47
47
  }
48
48
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i0, type: EclModalHeaderComponent, deps: [{ token: i1.EclThemeService }], target: i0.ɵɵFactoryTarget.Component }); }
49
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0-next.2", type: EclModalHeaderComponent, selector: "[eclModalHeader]", inputs: { variant: "variant" }, outputs: { modalClose: "modalClose" }, host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "@if(getIcon()) {\n <ecl-icon [icon]=\"getIcon()\" size=\"l\" class=\"ecl-modal__icon\"> </ecl-icon>\n}\n<div class=\"ecl-modal__header-content\">\n <ng-content></ng-content>\n</div>\n<button eclButton variant=\"tertiary\" isIconOnly class=\"ecl-modal__close\" type=\"button\" (click)=\"onCloseClick()\">\n <span eclButtonLabel>Close</span>\n <ecl-icon [icon]=\"getCloseIcon()\" size=\"m\"></ecl-icon>\n</button>\n", dependencies: [{ kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "ariaHidden", "focusable"] }, { kind: "component", type: i3.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "containerStyleClass"] }, { kind: "directive", type: i4.EclButtonLabelDirective, selector: "[eclButtonLabel]" }] }); }
49
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0-next.2", type: EclModalHeaderComponent, selector: "[eclModalHeader]", inputs: { variant: "variant" }, outputs: { modalClose: "modalClose" }, host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "@if(getIcon()) {\n <ecl-icon [icon]=\"getIcon()\" size=\"l\" class=\"ecl-modal__icon\"> </ecl-icon>\n}\n<div class=\"ecl-modal__header-content\">\n <ng-content></ng-content>\n</div>\n<button eclButton variant=\"tertiary\" isIconOnly class=\"ecl-modal__close\" type=\"button\" (click)=\"onCloseClick()\">\n <span eclButtonLabel>Close</span>\n <ecl-icon icon=\"getCloseIcon()\" size=\"m\"></ecl-icon>\n</button>\n", dependencies: [{ kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "ariaHidden", "focusable"] }, { kind: "component", type: i3.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "containerStyleClass"] }, { kind: "directive", type: i4.EclButtonLabelDirective, selector: "[eclButtonLabel]" }] }); }
50
50
  }
51
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i0, type: EclModalHeaderComponent, decorators: [{
52
52
  type: Component,
53
- args: [{ selector: '[eclModalHeader]', template: "@if(getIcon()) {\n <ecl-icon [icon]=\"getIcon()\" size=\"l\" class=\"ecl-modal__icon\"> </ecl-icon>\n}\n<div class=\"ecl-modal__header-content\">\n <ng-content></ng-content>\n</div>\n<button eclButton variant=\"tertiary\" isIconOnly class=\"ecl-modal__close\" type=\"button\" (click)=\"onCloseClick()\">\n <span eclButtonLabel>Close</span>\n <ecl-icon [icon]=\"getCloseIcon()\" size=\"m\"></ecl-icon>\n</button>\n" }]
53
+ args: [{ selector: '[eclModalHeader]', template: "@if(getIcon()) {\n <ecl-icon [icon]=\"getIcon()\" size=\"l\" class=\"ecl-modal__icon\"> </ecl-icon>\n}\n<div class=\"ecl-modal__header-content\">\n <ng-content></ng-content>\n</div>\n<button eclButton variant=\"tertiary\" isIconOnly class=\"ecl-modal__close\" type=\"button\" (click)=\"onCloseClick()\">\n <span eclButtonLabel>Close</span>\n <ecl-icon icon=\"getCloseIcon()\" size=\"m\"></ecl-icon>\n</button>\n" }]
54
54
  }], ctorParameters: () => [{ type: i1.EclThemeService }], propDecorators: { variant: [{
55
55
  type: Input
56
56
  }], modalClose: [{
@@ -59,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2",
59
59
  type: HostBinding,
60
60
  args: ['class']
61
61
  }] } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1vZGFsLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1vZGFsL2VjbC1tb2RhbC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VjbC1tb2RhbC9lY2wtbW9kYWwtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7QUFRM0QsOERBQThEO0FBQzlELE1BQU0sT0FBTyx1QkFBaUMsU0FBUSxnQkFBZ0I7SUFJbEUsSUFDSSxVQUFVO1FBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2RSxDQUFDO0lBRUQsWUFBbUIsZUFBZ0M7UUFDL0MsS0FBSyxFQUFFLENBQUM7UUFETyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFSMUMsWUFBTyxHQUF5RSxTQUFTLENBQUM7UUFDekYsZUFBVSxHQUFHLElBQUksWUFBWSxFQUF5QixDQUFDO0lBU2pFLENBQUM7SUFFRCxZQUFZO1FBQ1IsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDbkMsT0FBTyxPQUFPLENBQUM7UUFDbkIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLGNBQWMsQ0FBQTtRQUN6QixDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVk7UUFDUixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsT0FBTztRQUNILElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxhQUFhLEVBQUUsQ0FBQztZQUNqQyxPQUFPLGFBQWEsQ0FBQztRQUN6QixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sU0FBUyxDQUFDO1FBQ3JCLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDcEMsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUNsQyxPQUFPLE9BQU8sQ0FBQztRQUNuQixDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7SUFDTCxDQUFDO3dJQXJDUSx1QkFBdUI7NEhBQXZCLHVCQUF1Qiw0TUNYcEMsMmFBVUE7O2tHRENhLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFFSSxrQkFBa0I7b0ZBS25CLE9BQU87c0JBQWYsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNO2dCQUdILFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3V0cHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWNsTW9kYWxDbG9zZUV2ZW50IH0gZnJvbSAnLi9lY2wtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IEVjbFRoZW1lU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tlY2xNb2RhbEhlYWRlcl0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lY2wtbW9kYWwtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbn0pXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZXhwb3J0IGNsYXNzIEVjbE1vZGFsSGVhZGVyQ29tcG9uZW50PFQgPSBhbnk+IGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSB7XG4gICAgQElucHV0KCkgdmFyaWFudDogJ2RlZmF1bHQnIHwgJ2luZm9ybWF0aW9uJyB8ICdzdWNjZXNzJyB8ICd3YXJuaW5nJyB8ICdlcnJvcicgfCBzdHJpbmcgPSAnZGVmYXVsdCc7XG4gICAgQE91dHB1dCgpIG1vZGFsQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE1vZGFsQ2xvc2VFdmVudDxUPj4oKTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZWNsLW1vZGFsX19oZWFkZXInKV0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWNsVGhlbWVTZXJ2aWNlOiBFY2xUaGVtZVNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBnZXRDbG9zZUljb24oKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuZWNsVGhlbWVTZXJ2aWNlLmlzRUNUaGVtZSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2Nsb3NlJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAnY2xvc2UtZmlsbGVkJ1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DbG9zZUNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vZGFsQ2xvc2UubmV4dChuZXcgRWNsTW9kYWxDbG9zZUV2ZW50KCkpO1xuICAgIH1cblxuICAgIGdldEljb24oKTogJ2luZm9ybWF0aW9uJyB8ICdzdWNjZXNzJyB8ICd3YXJuaW5nJyB8ICdlcnJvcicgfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMudmFyaWFudCA9PT0gJ2luZm9ybWF0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuICdpbmZvcm1hdGlvbic7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy52YXJpYW50ID09PSAnc3VjY2VzcycpIHtcbiAgICAgICAgICAgIHJldHVybiAnc3VjY2Vzcyc7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy52YXJpYW50ID09PSAnd2FybmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiAnd2FybmluZyc7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy52YXJpYW50ID09PSAnZXJyb3InKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2Vycm9yJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGlmKGdldEljb24oKSkge1xuICAgIDxlY2wtaWNvbiBbaWNvbl09XCJnZXRJY29uKClcIiBzaXplPVwibFwiIGNsYXNzPVwiZWNsLW1vZGFsX19pY29uXCI+IDwvZWNsLWljb24+XG59XG48ZGl2IGNsYXNzPVwiZWNsLW1vZGFsX19oZWFkZXItY29udGVudFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuPGJ1dHRvbiBlY2xCdXR0b24gdmFyaWFudD1cInRlcnRpYXJ5XCIgaXNJY29uT25seSBjbGFzcz1cImVjbC1tb2RhbF9fY2xvc2VcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uQ2xvc2VDbGljaygpXCI+XG4gICAgPHNwYW4gZWNsQnV0dG9uTGFiZWw+Q2xvc2U8L3NwYW4+XG4gICAgPGVjbC1pY29uIFtpY29uXT1cImdldENsb3NlSWNvbigpXCIgc2l6ZT1cIm1cIj48L2VjbC1pY29uPlxuPC9idXR0b24+XG4iXX0=
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1vZGFsLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1vZGFsL2VjbC1tb2RhbC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VjbC1tb2RhbC9lY2wtbW9kYWwtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7QUFRM0QsOERBQThEO0FBQzlELE1BQU0sT0FBTyx1QkFBaUMsU0FBUSxnQkFBZ0I7SUFJbEUsSUFDSSxVQUFVO1FBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2RSxDQUFDO0lBRUQsWUFBbUIsZUFBZ0M7UUFDL0MsS0FBSyxFQUFFLENBQUM7UUFETyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFSMUMsWUFBTyxHQUF5RSxTQUFTLENBQUM7UUFDekYsZUFBVSxHQUFHLElBQUksWUFBWSxFQUF5QixDQUFDO0lBU2pFLENBQUM7SUFFRCxZQUFZO1FBQ1IsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDbkMsT0FBTyxPQUFPLENBQUM7UUFDbkIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLGNBQWMsQ0FBQTtRQUN6QixDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVk7UUFDUixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsT0FBTztRQUNILElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxhQUFhLEVBQUUsQ0FBQztZQUNqQyxPQUFPLGFBQWEsQ0FBQztRQUN6QixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sU0FBUyxDQUFDO1FBQ3JCLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDcEMsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUNsQyxPQUFPLE9BQU8sQ0FBQztRQUNuQixDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7SUFDTCxDQUFDO3dJQXJDUSx1QkFBdUI7NEhBQXZCLHVCQUF1Qiw0TUNYcEMseWFBVUE7O2tHRENhLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFFSSxrQkFBa0I7b0ZBS25CLE9BQU87c0JBQWYsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNO2dCQUdILFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3V0cHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWNsTW9kYWxDbG9zZUV2ZW50IH0gZnJvbSAnLi9lY2wtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IEVjbFRoZW1lU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tlY2xNb2RhbEhlYWRlcl0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lY2wtbW9kYWwtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbn0pXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZXhwb3J0IGNsYXNzIEVjbE1vZGFsSGVhZGVyQ29tcG9uZW50PFQgPSBhbnk+IGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSB7XG4gICAgQElucHV0KCkgdmFyaWFudDogJ2RlZmF1bHQnIHwgJ2luZm9ybWF0aW9uJyB8ICdzdWNjZXNzJyB8ICd3YXJuaW5nJyB8ICdlcnJvcicgfCBzdHJpbmcgPSAnZGVmYXVsdCc7XG4gICAgQE91dHB1dCgpIG1vZGFsQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE1vZGFsQ2xvc2VFdmVudDxUPj4oKTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZWNsLW1vZGFsX19oZWFkZXInKV0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWNsVGhlbWVTZXJ2aWNlOiBFY2xUaGVtZVNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBnZXRDbG9zZUljb24oKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuZWNsVGhlbWVTZXJ2aWNlLmlzRUNUaGVtZSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2Nsb3NlJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAnY2xvc2UtZmlsbGVkJ1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DbG9zZUNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vZGFsQ2xvc2UubmV4dChuZXcgRWNsTW9kYWxDbG9zZUV2ZW50KCkpO1xuICAgIH1cblxuICAgIGdldEljb24oKTogJ2luZm9ybWF0aW9uJyB8ICdzdWNjZXNzJyB8ICd3YXJuaW5nJyB8ICdlcnJvcicgfCBudWxsIHtcbiAgICAgICAgaWYgKHRoaXMudmFyaWFudCA9PT0gJ2luZm9ybWF0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuICdpbmZvcm1hdGlvbic7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy52YXJpYW50ID09PSAnc3VjY2VzcycpIHtcbiAgICAgICAgICAgIHJldHVybiAnc3VjY2Vzcyc7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy52YXJpYW50ID09PSAnd2FybmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiAnd2FybmluZyc7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy52YXJpYW50ID09PSAnZXJyb3InKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2Vycm9yJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGlmKGdldEljb24oKSkge1xuICAgIDxlY2wtaWNvbiBbaWNvbl09XCJnZXRJY29uKClcIiBzaXplPVwibFwiIGNsYXNzPVwiZWNsLW1vZGFsX19pY29uXCI+IDwvZWNsLWljb24+XG59XG48ZGl2IGNsYXNzPVwiZWNsLW1vZGFsX19oZWFkZXItY29udGVudFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuPGJ1dHRvbiBlY2xCdXR0b24gdmFyaWFudD1cInRlcnRpYXJ5XCIgaXNJY29uT25seSBjbGFzcz1cImVjbC1tb2RhbF9fY2xvc2VcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uQ2xvc2VDbGljaygpXCI+XG4gICAgPHNwYW4gZWNsQnV0dG9uTGFiZWw+Q2xvc2U8L3NwYW4+XG4gICAgPGVjbC1pY29uIGljb249XCJnZXRDbG9zZUljb24oKVwiIHNpemU9XCJtXCI+PC9lY2wtaWNvbj5cbjwvYnV0dG9uPlxuIl19
@@ -104,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2",
104
104
  }], mainInputKeydown: [{
105
105
  type: Output
106
106
  }] } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW11bHRpc2VsZWN0LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbXVsdGlzZWxlY3QvZWNsLW11bHRpc2VsZWN0LWlucHV0L2VjbC1tdWx0aXNlbGVjdC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW11bHRpc2VsZWN0L2VjbC1tdWx0aXNlbGVjdC1pbnB1dC9lY2wtbXVsdGlzZWxlY3QtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBRTVELE1BQU0sT0FBTyxpQ0FBaUM7SUFDMUMsWUFBbUIsS0FBWTtRQUFaLFVBQUssR0FBTCxLQUFLLENBQU87SUFBRyxDQUFDO0NBQ3RDO0FBT0QsTUFBTSxPQUFPLDRCQUE2QixTQUFRLGdCQUFnQjtJQWM5RCxJQUNJLFVBQVU7UUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLDBCQUEwQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckgsQ0FBQztJQVlEO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUE1QkgsWUFBTyxHQUFHLEdBQUcsQ0FBQztRQUV2Qiw4REFBOEQ7UUFJOUQsZUFBVSxHQUF3QixLQUFLLENBQUM7UUFDeEMsOERBQThEO1FBSTlELGNBQVMsR0FBd0IsS0FBSyxDQUFDO1FBTTlCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ1QsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLGlCQUFZLEdBQXVCLFNBQVMsQ0FBQztRQUM3QyxvQkFBZSxHQUF1QixTQUFTLENBQUM7UUFDaEQsa0JBQWEsR0FBdUIsU0FBUyxDQUFDO1FBR3ZELG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQXFDLENBQUM7UUFDdkUscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztJQUl2RCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFVO1FBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxpQ0FBaUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBa0I7UUFDeEIsUUFBUSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZCxLQUFLLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUN0QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQyxNQUFNO1lBQ1YsQ0FBQztZQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ04sTUFBTTtZQUNWLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hELENBQUM7d0lBL0RRLDRCQUE0Qjs0SEFBNUIsNEJBQTRCLHd3QkNkekMsOHlCQW1CQTs7QURHSTtJQUhDLGFBQWE7Z0VBRzBCO0FBS3hDO0lBSEMsYUFBYTsrREFHeUI7a0dBYjlCLDRCQUE0QjtrQkFMeEMsU0FBUzsrQkFFSSwwQkFBMEI7d0RBSzNCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtOLFVBQVU7c0JBRlQsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyx1Q0FBdUM7Z0JBTXBELFNBQVM7c0JBRlIsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxzQ0FBc0M7Z0JBRy9DLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxPQUFPO2dCQUlYLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNhLGtCQUFrQjtzQkFBcEMsS0FBSztnQkFDYSxZQUFZO3NCQUE5QixLQUFLO2dCQUNhLGVBQWU7c0JBQWpDLEtBQUs7Z0JBQ2EsYUFBYTtzQkFBL0IsS0FBSztnQkFFeUIsZ0JBQWdCO3NCQUE5QyxTQUFTO3VCQUFDLGtCQUFrQjtnQkFDbkIsY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhbiB9IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBLZXlDb2RlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgRUNMQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2VjbC1iYXNlLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjbGFzcyBFY2xNdWx0aXNlbGVjdE1haW5JbnB1dENsaWNrRXZlbnQge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBldmVudDogRXZlbnQpIHt9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdkaXZbZWNsTXVsdGlzZWxlY3RJbnB1dF0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lY2wtbXVsdGlzZWxlY3QtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xNdWx0aXNlbGVjdElucHV0Q29tcG9uZW50IGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSB7XG4gICAgXG4gICAgQElucHV0KCkgZWNsU2l6ZSA9ICdtJztcbiAgICBASW5wdXQoKSB0b2dnbGVJZDogc3RyaW5nO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLXNlbGVjdF9fY29udGFpbmVyLS1kaXNhYmxlZCcpXG4gICAgaXNEaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLXNlbGVjdF9fY29udGFpbmVyLS1pbnZhbGlkJylcbiAgICBpc0ludmFsaWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW3N1cGVyLmdldENzc0NsYXNzZXMoJ2VjbC1zZWxlY3RfX2NvbnRhaW5lcicpLCBgZWNsLXNlbGVjdF9fY29udGFpbmVyLS0ke3RoaXMuZWNsU2l6ZX1gXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cbiAgICBASW5wdXQoKSBpbnB1dFBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgIEBJbnB1dCgpIHByb3RlY3RlZCBpc0Ryb3Bkb3duRXhwYW5kZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBwcm90ZWN0ZWQgYXJpYUNvbnRyb2xzOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgcHJvdGVjdGVkIGFyaWFEZXNjcmliZWRieTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHByb3RlY3RlZCBhcmlhTGFiZWxlZGJ5OiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgICBAVmlld0NoaWxkKCdpbnB1dE11bHRpc2VsZWN0JykgaW5wdXRNdWx0aXNlbGVjdDogRWxlbWVudFJlZjtcbiAgICBAT3V0cHV0KCkgbWFpbklucHV0Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE11bHRpc2VsZWN0TWFpbklucHV0Q2xpY2tFdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgbWFpbklucHV0S2V5ZG93biA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBnZXQgYnV0dG9uVGV4dCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA9PT0gMCA/IHRoaXMuaW5wdXRQbGFjZWhvbGRlciA6IHRoaXMuc2VsZWN0ZWRJdGVtcy5qb2luKCcsJyk7XG4gICAgfVxuXG4gICAgZ2V0IHNlbGVjdGVkSXRlbXNDb3VudCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aDtcbiAgICB9XG5cbiAgICBnZXQgaXNTaG93Q291bnRlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcyAmJiB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBvbkNsaWNrKGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tYWluSW5wdXRDbGljay5lbWl0KG5ldyBFY2xNdWx0aXNlbGVjdE1haW5JbnB1dENsaWNrRXZlbnQoZXZ0KSk7XG4gICAgfVxuXG4gICAgb25LZXlkb3duKGV2dDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5BUlJPV19ET1dOOiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tYWluSW5wdXRLZXlkb3duLmVtaXQoZXZ0KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRNdWx0aXNlbGVjdC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxufVxuIiwiPGRpdiBbY2xhc3MuZWNsLXNlbGVjdC1tdWx0aXBsZS1zZWxlY3Rpb25zLWNvdW50ZXItLXZpc2libGVdPVwiaXNTaG93Q291bnRlclwiIGNsYXNzPVwiZWNsLXNlbGVjdC1tdWx0aXBsZS1zZWxlY3Rpb25zLWNvdW50ZXJcIj5cbiAgICA8c3Bhbj57eyBzZWxlY3RlZEl0ZW1zQ291bnQgfX08L3NwYW4+XG48L2Rpdj5cbjxidXR0b25cbiAgICBjbGFzcz1cImVjbC1zZWxlY3QgZWNsLXNlbGVjdF9fbXVsdGlwbGUtdG9nZ2xlXCJcbiAgICAjaW5wdXRNdWx0aXNlbGVjdFxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIFtpZF09XCJ0b2dnbGVJZFwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc0Ryb3Bkb3duRXhwYW5kZWRcIlxuICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiYXJpYUNvbnRyb2xzXCJcbiAgICBbYXR0ci5kaXNhYmxlZF09XCJpc0Rpc2FibGVkID8gdHJ1ZSA6IHVuZGVmaW5lZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGVkYnlcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZGJ5XCJcbiAgICAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiXG4gICAgKGNsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiPiB7eyBidXR0b25UZXh0IH19XG48L2J1dHRvbj5cbjxkaXYgY2xhc3M9XCJlY2wtc2VsZWN0X19pY29uXCI+XG4gICAgPGVjbC1pY29uIGljb249XCJjb3JuZXItYXJyb3dcIiBzaXplPVwic1wiIGNsYXNzPVwiZWNsLXNlbGVjdF9faWNvbi1zaGFwZVwiIHRyYW5zZm9ybT1cInJvdGF0ZS0xODBcIj48L2VjbC1pY29uPlxuPC9kaXY+XG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW11bHRpc2VsZWN0LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtbXVsdGlzZWxlY3QvZWNsLW11bHRpc2VsZWN0LWlucHV0L2VjbC1tdWx0aXNlbGVjdC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW11bHRpc2VsZWN0L2VjbC1tdWx0aXNlbGVjdC1pbnB1dC9lY2wtbXVsdGlzZWxlY3QtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBRTVELE1BQU0sT0FBTyxpQ0FBaUM7SUFDMUMsWUFBbUIsS0FBWTtRQUFaLFVBQUssR0FBTCxLQUFLLENBQU87SUFBRyxDQUFDO0NBQ3RDO0FBT0QsTUFBTSxPQUFPLDRCQUE2QixTQUFRLGdCQUFnQjtJQWM5RCxJQUNJLFVBQVU7UUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLDBCQUEwQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckgsQ0FBQztJQVlEO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUE1QkgsWUFBTyxHQUFHLEdBQUcsQ0FBQztRQUV2Qiw4REFBOEQ7UUFJOUQsZUFBVSxHQUF3QixLQUFLLENBQUM7UUFDeEMsOERBQThEO1FBSTlELGNBQVMsR0FBd0IsS0FBSyxDQUFDO1FBTTlCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUMzQixpQkFBWSxHQUF1QixTQUFTLENBQUM7UUFDN0Msb0JBQWUsR0FBdUIsU0FBUyxDQUFDO1FBQ2hELGtCQUFhLEdBQXVCLFNBQVMsQ0FBQztRQUc3QyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFxQyxDQUFDO1FBQ3ZFLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7SUFJdkQsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNsQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxPQUFPLENBQUMsR0FBVTtRQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksaUNBQWlDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQWtCO1FBQ3hCLFFBQVEsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2QsS0FBSyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDaEMsTUFBTTtZQUNWLENBQUM7WUFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNOLE1BQU07WUFDVixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNoRCxDQUFDO3dJQS9EUSw0QkFBNEI7NEhBQTVCLDRCQUE0Qix3d0JDZHpDLDh5QkFtQkE7O0FER0k7SUFIQyxhQUFhO2dFQUcwQjtBQUt4QztJQUhDLGFBQWE7K0RBR3lCO2tHQWI5Qiw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBRUksMEJBQTBCO3dEQUszQixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFLTixVQUFVO3NCQUZULEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsdUNBQXVDO2dCQU1wRCxTQUFTO3NCQUZSLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsc0NBQXNDO2dCQUcvQyxVQUFVO3NCQURiLFdBQVc7dUJBQUMsT0FBTztnQkFJWCxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRXlCLGdCQUFnQjtzQkFBOUMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBQ25CLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW4gfSBmcm9tICdAZXVpL2Jhc2UnO1xuaW1wb3J0IHsgS2V5Q29kZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY2xhc3MgRWNsTXVsdGlzZWxlY3RNYWluSW5wdXRDbGlja0V2ZW50IHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZXZlbnQ6IEV2ZW50KSB7fVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnZGl2W2VjbE11bHRpc2VsZWN0SW5wdXRdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWNsLW11bHRpc2VsZWN0LWlucHV0LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgRWNsTXVsdGlzZWxlY3RJbnB1dENvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUge1xuXG4gICAgQElucHV0KCkgZWNsU2l6ZSA9ICdtJztcbiAgICBASW5wdXQoKSB0b2dnbGVJZDogc3RyaW5nO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLXNlbGVjdF9fY29udGFpbmVyLS1kaXNhYmxlZCcpXG4gICAgaXNEaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQGNvZXJjZUJvb2xlYW5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZWNsLXNlbGVjdF9fY29udGFpbmVyLS1pbnZhbGlkJylcbiAgICBpc0ludmFsaWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW3N1cGVyLmdldENzc0NsYXNzZXMoJ2VjbC1zZWxlY3RfX2NvbnRhaW5lcicpLCBgZWNsLXNlbGVjdF9fY29udGFpbmVyLS0ke3RoaXMuZWNsU2l6ZX1gXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cbiAgICBASW5wdXQoKSBpbnB1dFBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgIEBJbnB1dCgpIGlzRHJvcGRvd25FeHBhbmRlZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGFyaWFDb250cm9sczogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIGFyaWFEZXNjcmliZWRieTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIGFyaWFMYWJlbGVkYnk6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0TXVsdGlzZWxlY3QnKSBpbnB1dE11bHRpc2VsZWN0OiBFbGVtZW50UmVmO1xuICAgIEBPdXRwdXQoKSBtYWluSW5wdXRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTXVsdGlzZWxlY3RNYWluSW5wdXRDbGlja0V2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBtYWluSW5wdXRLZXlkb3duID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGdldCBidXR0b25UZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID09PSAwID8gdGhpcy5pbnB1dFBsYWNlaG9sZGVyIDogdGhpcy5zZWxlY3RlZEl0ZW1zLmpvaW4oJywnKTtcbiAgICB9XG5cbiAgICBnZXQgc2VsZWN0ZWRJdGVtc0NvdW50KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoO1xuICAgIH1cblxuICAgIGdldCBpc1Nob3dDb3VudGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zICYmIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIG9uQ2xpY2soZXZ0OiBFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1haW5JbnB1dENsaWNrLmVtaXQobmV3IEVjbE11bHRpc2VsZWN0TWFpbklucHV0Q2xpY2tFdmVudChldnQpKTtcbiAgICB9XG5cbiAgICBvbktleWRvd24oZXZ0OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgICAgY2FzZSBLZXlDb2RlLkFSUk9XX0RPV046IHtcbiAgICAgICAgICAgICAgICB0aGlzLm1haW5JbnB1dEtleWRvd24uZW1pdChldnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Gb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dE11bHRpc2VsZWN0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG59XG4iLCI8ZGl2IFtjbGFzcy5lY2wtc2VsZWN0LW11bHRpcGxlLXNlbGVjdGlvbnMtY291bnRlci0tdmlzaWJsZV09XCJpc1Nob3dDb3VudGVyXCIgY2xhc3M9XCJlY2wtc2VsZWN0LW11bHRpcGxlLXNlbGVjdGlvbnMtY291bnRlclwiPlxuICAgIDxzcGFuPnt7IHNlbGVjdGVkSXRlbXNDb3VudCB9fTwvc3Bhbj5cbjwvZGl2PlxuPGJ1dHRvblxuICAgIGNsYXNzPVwiZWNsLXNlbGVjdCBlY2wtc2VsZWN0X19tdWx0aXBsZS10b2dnbGVcIlxuICAgICNpbnB1dE11bHRpc2VsZWN0XG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgW2lkXT1cInRvZ2dsZUlkXCJcbiAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzRHJvcGRvd25FeHBhbmRlZFwiXG4gICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJhcmlhQ29udHJvbHNcIlxuICAgIFthdHRyLmRpc2FibGVkXT1cImlzRGlzYWJsZWQgPyB0cnVlIDogdW5kZWZpbmVkXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsZWRieVwiXG4gICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpYmVkYnlcIlxuICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcbiAgICAoY2xpY2spPVwib25DbGljaygkZXZlbnQpXCI+IHt7IGJ1dHRvblRleHQgfX1cbjwvYnV0dG9uPlxuPGRpdiBjbGFzcz1cImVjbC1zZWxlY3RfX2ljb25cIj5cbiAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiIHNpemU9XCJzXCIgY2xhc3M9XCJlY2wtc2VsZWN0X19pY29uLXNoYXBlXCIgdHJhbnNmb3JtPVwicm90YXRlLTE4MFwiPjwvZWNsLWljb24+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { Directive, HostBinding } from '@angular/core';
2
+ import { ECLBaseDirective } from '../ecl-base.directive';
3
+ import * as i0 from "@angular/core";
4
+ export class EclNotificationTitleDirective extends ECLBaseDirective {
5
+ get cssClasses() {
6
+ return [super.getCssClasses('ecl-notification__title')].join(' ').trim();
7
+ }
8
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i0, type: EclNotificationTitleDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
9
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.2", type: EclNotificationTitleDirective, selector: "[eclNotificationTitle]", host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.2", ngImport: i0, type: EclNotificationTitleDirective, decorators: [{
12
+ type: Directive,
13
+ args: [{
14
+ selector: '[eclNotificationTitle]',
15
+ }]
16
+ }], propDecorators: { cssClasses: [{
17
+ type: HostBinding,
18
+ args: ['class']
19
+ }] } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW5vdGlmaWNhdGlvbi10aXRsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW5vdGlmaWNhdGlvbi9lY2wtbm90aWZpY2F0aW9uLXRpdGxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFLekQsTUFBTSxPQUFPLDZCQUE4QixTQUFRLGdCQUFnQjtJQUMvRCxJQUNJLFVBQVU7UUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdFLENBQUM7d0lBSlEsNkJBQTZCOzRIQUE3Qiw2QkFBNkI7O2tHQUE3Qiw2QkFBNkI7a0JBSHpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHdCQUF3QjtpQkFDckM7OEJBR08sVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZWNsTm90aWZpY2F0aW9uVGl0bGVdJyxcbn0pXG5leHBvcnQgY2xhc3MgRWNsTm90aWZpY2F0aW9uVGl0bGVEaXJlY3RpdmUgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW3N1cGVyLmdldENzc0NsYXNzZXMoJ2VjbC1ub3RpZmljYXRpb25fX3RpdGxlJyldLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxufVxuIl19