simpo-component-library 3.1.31 → 3.2.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 (88) hide show
  1. package/esm2022/lib/components/hover-elements/hover-elements.component.mjs +3 -3
  2. package/esm2022/lib/directive/button-editor.directive.mjs +79 -0
  3. package/esm2022/lib/directive/image-editor.directive.mjs +56 -26
  4. package/esm2022/lib/directive/spacing-around.directive.mjs +2 -2
  5. package/esm2022/lib/directive/sticky-directive.mjs +2 -2
  6. package/esm2022/lib/elements/add-section/add-section.component.mjs +70 -14
  7. package/esm2022/lib/elements/below-image-card/below-image-card.component.mjs +10 -4
  8. package/esm2022/lib/elements/covering-image-card/covering-image-card.component.mjs +8 -3
  9. package/esm2022/lib/elements/editor-service.service.mjs +40 -0
  10. package/esm2022/lib/elements/image-editor/image-editor.component.mjs +9 -4
  11. package/esm2022/lib/elements/link-editor/link-editor.component.mjs +9 -9
  12. package/esm2022/lib/elements/media-selector/media-selector.component.mjs +11 -11
  13. package/esm2022/lib/elements/navbar-button-element/navbar-button-element.component.mjs +6 -3
  14. package/esm2022/lib/elements/simpo-button/simpo-button.component.mjs +7 -3
  15. package/esm2022/lib/elements/text-editor/text-editor.component.mjs +89 -37
  16. package/esm2022/lib/elements/top-of-image-card/top-of-image-card.component.mjs +6 -3
  17. package/esm2022/lib/sections/add-new-section/add-new-section.component.mjs +9 -6
  18. package/esm2022/lib/sections/appointment-form/appointment-form.component.mjs +6 -4
  19. package/esm2022/lib/sections/banner-carousel/banner-carousel.component.mjs +8 -4
  20. package/esm2022/lib/sections/banner-grid-section/banner-grid-section.component.mjs +10 -6
  21. package/esm2022/lib/sections/banner-section/banner-section.component.mjs +6 -4
  22. package/esm2022/lib/sections/carousel-banner/carousel-banner.component.mjs +6 -4
  23. package/esm2022/lib/sections/choose-us-section/choose-us-section.component.mjs +6 -4
  24. package/esm2022/lib/sections/contact-us/contact-us.component.mjs +5 -3
  25. package/esm2022/lib/sections/faq-section/faq-section.component.mjs +9 -5
  26. package/esm2022/lib/sections/features-section/features-section.component.mjs +8 -4
  27. package/esm2022/lib/sections/footer/footer.component.mjs +18 -4
  28. package/esm2022/lib/sections/footer-section/footer-section.component.mjs +3 -3
  29. package/esm2022/lib/sections/header-section/header-section.component.mjs +277 -0
  30. package/esm2022/lib/sections/header-section/header-section.model.mjs +2 -0
  31. package/esm2022/lib/sections/header-text/header-text.component.mjs +6 -4
  32. package/esm2022/lib/sections/image-carousel-section/image-carousel-section.component.mjs +9 -5
  33. package/esm2022/lib/sections/image-grid-section/image-grid-section.component.mjs +9 -5
  34. package/esm2022/lib/sections/image-section/image-section.component.mjs +7 -5
  35. package/esm2022/lib/sections/location-section/location-section.component.mjs +6 -4
  36. package/esm2022/lib/sections/logo-showcase/logo-showcase.component.mjs +5 -3
  37. package/esm2022/lib/sections/navbar-section/navbar-section.component.mjs +3 -3
  38. package/esm2022/lib/sections/pricing-section/pricing-section.component.mjs +8 -4
  39. package/esm2022/lib/sections/process-modern/process-modern.component.mjs +9 -4
  40. package/esm2022/lib/sections/process-section/process-section.component.mjs +7 -3
  41. package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.component.mjs +6 -4
  42. package/esm2022/lib/sections/service-section/service-section.component.mjs +6 -4
  43. package/esm2022/lib/sections/team-member-section/team-member-section.component.mjs +6 -4
  44. package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.component.mjs +11 -5
  45. package/esm2022/lib/sections/testimonial-section/testimonial-section.component.mjs +9 -5
  46. package/esm2022/lib/sections/testimonial-video/testimonial-video.component.mjs +6 -4
  47. package/esm2022/lib/sections/text-image-section/text-image-section.component.mjs +9 -6
  48. package/esm2022/lib/sections/text-section/text-section.component.mjs +9 -8
  49. package/esm2022/lib/sections/video-section/video-section.component.mjs +5 -3
  50. package/esm2022/lib/services/rest.service.mjs +19 -7
  51. package/esm2022/lib/styles/index.mjs +8 -1
  52. package/esm2022/lib/tokens/api-token.mjs +4 -0
  53. package/esm2022/public-api.mjs +3 -1
  54. package/fesm2022/simpo-component-library.mjs +6954 -6384
  55. package/fesm2022/simpo-component-library.mjs.map +1 -1
  56. package/lib/directive/background-directive.d.ts +1 -1
  57. package/lib/directive/button-directive.directive.d.ts +1 -1
  58. package/lib/directive/button-editor.directive.d.ts +22 -0
  59. package/lib/directive/color.directive.d.ts +1 -1
  60. package/lib/directive/image-editor.directive.d.ts +12 -7
  61. package/lib/ecommerce/sections/authentication-required/authentication-required.component.d.ts +1 -1
  62. package/lib/elements/add-section/add-section.component.d.ts +12 -2
  63. package/lib/elements/below-image-card/below-image-card.component.d.ts +2 -1
  64. package/lib/elements/covering-image-card/covering-image-card.component.d.ts +2 -1
  65. package/lib/elements/editor-service.service.d.ts +14 -0
  66. package/lib/elements/image-editor/image-editor.component.d.ts +1 -0
  67. package/lib/elements/link-editor/link-editor.component.d.ts +3 -3
  68. package/lib/elements/media-selector/media-selector.component.d.ts +4 -4
  69. package/lib/elements/navbar-button-element/navbar-button-element.component.d.ts +2 -1
  70. package/lib/elements/simpo-button/simpo-button.component.d.ts +2 -1
  71. package/lib/elements/text-editor/text-editor.component.d.ts +15 -4
  72. package/lib/elements/top-of-image-card/top-of-image-card.component.d.ts +2 -1
  73. package/lib/sections/add-new-section/add-new-section.component.d.ts +3 -1
  74. package/lib/sections/banner-carousel/banner-carousel.component.d.ts +3 -3
  75. package/lib/sections/carousel-banner/carousel-banner.component.d.ts +1 -1
  76. package/lib/sections/footer/footer.component.d.ts +1 -0
  77. package/lib/sections/header-section/header-section.component.d.ts +72 -0
  78. package/lib/sections/header-section/header-section.model.d.ts +31 -0
  79. package/lib/sections/image-section/image-section.component.d.ts +2 -2
  80. package/lib/sections/pricing-section/pricing-section.component.d.ts +1 -1
  81. package/lib/services/rest.service.d.ts +2 -1
  82. package/lib/styles/index.d.ts +6 -0
  83. package/lib/tokens/api-token.d.ts +3 -0
  84. package/package.json +1 -1
  85. package/public-api.d.ts +2 -0
  86. package/simpo-component-library-3.2.6.tgz +0 -0
  87. package/src/lib/styles/global-styles.css +8 -0
  88. package/simpo-component-library-3.1.31.tgz +0 -0
@@ -15,6 +15,8 @@ import { ObjectPositionDirective } from '../../directive/image-position.directiv
15
15
  import { CornerDirective } from '../../directive/corner-directive';
16
16
  import { SanitizeHtmlPipe } from '../../services/sanitizeHtml';
17
17
  import { SvgDividerComponent } from '../../elements/svg-divider/svg-divider.component';
18
+ import { TextEditorComponent } from '../../elements/text-editor/text-editor.component';
19
+ import { ImageEditorDirective } from '../../directive/image-editor.directive';
18
20
  import * as i0 from "@angular/core";
19
21
  import * as i1 from "../../services/events.service";
20
22
  import * as i2 from "@angular/common";
@@ -51,7 +53,7 @@ export class FeaturesSectionComponent extends BaseSection {
51
53
  }, 100);
52
54
  }
53
55
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: FeaturesSectionComponent, deps: [{ token: i1.EventsService }], target: i0.ɵɵFactoryTarget.Component }); }
54
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: FeaturesSectionComponent, isStandalone: true, selector: "simpo-features-section", inputs: { data: "data", edit: "edit", customClass: "customClass", delete: "delete", index: "index", nextComponentColor: "nextComponentColor" }, host: { listeners: { "window:resize": "getScreenSize($event)" } }, usesInheritance: true, ngImport: i0, template: "<section [id]=\"data?.id\" [simpoBackground]=\"styles?.background\" simpoHover (hovering)=\"showEditTabs($event)\"\r\n class=\"total-container\" [simpoBorder]=\"styles?.border\" [attr.style]=\"customClass\">\r\n <div #mainContainer [id]=\"data?.id\" [simpoOverlay]=\"styles?.background\">\r\n <div class=\"container-fluid d-flex flex-column\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\">\r\n <div class=\"row\" *ngIf=\"screenWidth > 475\" [id]=\"data?.id\" [simpoAnimation]=\"styles?.animation\">\r\n <div *ngFor=\"let text of data?.content?.inputText\">\r\n <div class=\"heading-medium mb-1 content-side\" [innerHTML]=\"text.value | sanitizeHtml\"></div>\r\n </div>\r\n <div class=\" box justify-center d-flex g-25 mt-5 mb-5\">\r\n <div *ngFor=\"let tab of content?.listItem?.data; let index = index\">\r\n <div class=\"tab\" [ngClass]=\"{'active': index === selectedTabIndex}\" [style.borderColor]=\"index === selectedTabIndex ? styles?.background?.accentColor : ''\" [style.color]=\"index === selectedTabIndex ? styles?.background?.accentColor : ''\" (click)=\"changetab(index)\">\r\n {{ tab.inputText[0].value }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row-container\" *ngIf=\"screenWidth <= 475\" [id]=\"data?.id\" [simpoAnimation]=\"styles?.animation\">\r\n <div *ngFor=\"let text of data?.content?.inputText\">\r\n <div class=\"heading-medium mb-1 content-side\" [innerHTML]=\"text.value | sanitizeHtml\"></div>\r\n </div>\r\n <div class=\" box d-flex g-25 mt-5 mb-5\">\r\n <div *ngFor=\"let tab of content?.listItem?.data; let index = index\">\r\n <div class=\"tab\" [ngClass]=\"{'active': index === selectedTabIndex}\" [style.borderColor]=\"index === selectedTabIndex ? styles?.background?.accentColor : ''\" [style.color]=\"index === selectedTabIndex ? styles?.background?.accentColor : ''\" (click)=\"changetab(index)\">\r\n {{ tab.inputText[0].value }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"content d-flex g-15 mt-5\" *ngIf=\"currentData?.image?.url\">\r\n <div class=\"image\">\r\n <img loading=\"lazy\" [src]=\"currentData?.image?.url\" alt=\"\" [id]=\"data?.id\"\r\n [simpoImageDirective]=\"styles?.image\" [id]=\"data?.id\" [simpoObjectPosition]=\"currentData?.image?.position\"\r\n [simpoCorner]=\"styles?.corners\"\r\n class=\"d-block mx-lg-auto img-fluid h-100\"\r\n loading=\"lazy\">\r\n </div>\r\n <div class=\"content-heading\">\r\n <div class=\"heading-large content-side\" [innerHtml]=\"currentData?.inputText?.[1]?.value\" [id]=\"data?.id\">\r\n </div>\r\n <div class=\"content-description body-large mt-1 content-side\" [innerHtml]=\"currentData?.inputText?.[2]?.value\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"content justify-center d-flex g-15 mt-5\" *ngIf=\"!currentData?.image?.url\">\r\n <div class=\"content-heading text-center\">\r\n <div class=\"heading-large content-side\" [innerHtml]=\"currentData?.inputText?.[1]?.value\" [id]=\"data?.id\">\r\n </div>\r\n <div class=\"content-description body-large mt-1 text-center\" [innerHtml]=\"currentData?.inputText?.[2]?.value\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <ng-container *ngIf=\"styles?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\" [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n\r\n</section>\r\n", styles: [".hover_effect{position:absolute;width:100%;top:0;left:0;height:100%}.total-container{position:relative;height:auto}.content{padding:0px 10rem;width:90%;gap:3rem;margin-bottom:4%}.image{width:40%;flex:1}.image img{width:100%}.content-heading{width:60%;text-align:start}.content-description{width:100%;text-align:start}.active{font-weight:700;letter-spacing:.8px;border-bottom:2px solid;padding-bottom:20px}.tab{letter-spacing:.8px;border-bottom:2px solid;padding-bottom:20px;cursor:pointer}@media only screen and (max-width: 768px){.content{flex-direction:column;padding:0 2rem;width:100%;gap:2rem}.image{order:-1;width:100%}.image img,.content-heading{width:100%}.box{overflow-x:scroll;gap:10%;margin:auto!important;padding:10px;width:85%!important}.row-container{width:100%!important}.tab{letter-spacing:.5px;border-bottom:1px solid;padding-bottom:10px;cursor:pointer}.image{width:100%}}@media screen and (max-width: 475px){.content{padding:0;margin-bottom:30px}}.g-25{gap:55px}.mt-1{margin-top:1rem}.justify-center{justify-content:center}\n"], dependencies: [{ kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "component", type: HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: OverlayDirective, selector: "[simpoOverlay]", inputs: ["simpoOverlay"] }, { kind: "directive", type: BorderDirective, selector: "[simpoBorder]", inputs: ["simpoBorder"] }, { kind: "directive", type: AnimationDirective, selector: "[simpoAnimation]", inputs: ["simpoAnimation"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "directive", type: ImageDirectiveDirective, selector: "[simpoImageDirective]", inputs: ["simpoImageDirective"] }, { kind: "directive", type: ObjectPositionDirective, selector: "[simpoObjectPosition]", inputs: ["simpoObjectPosition"] }, { kind: "directive", type: CornerDirective, selector: "[simpoCorner]", inputs: ["simpoCorner"] }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "component", type: SvgDividerComponent, selector: "simpo-svg-divider", inputs: ["dividerType", "color"] }] }); }
56
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: FeaturesSectionComponent, isStandalone: true, selector: "simpo-features-section", inputs: { data: "data", edit: "edit", customClass: "customClass", delete: "delete", index: "index", nextComponentColor: "nextComponentColor" }, host: { listeners: { "window:resize": "getScreenSize($event)" } }, usesInheritance: true, ngImport: i0, template: "<section [id]=\"data?.id\" [simpoBackground]=\"styles?.background\" simpoHover (hovering)=\"showEditTabs($event)\"\r\n class=\"total-container\" [simpoBorder]=\"styles?.border\" [attr.style]=\"customClass\">\r\n <div #mainContainer [id]=\"data?.id\" [simpoOverlay]=\"styles?.background\">\r\n <div class=\"container-fluid d-flex flex-column\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\">\r\n <div class=\"row\" *ngIf=\"screenWidth > 475\" [id]=\"data?.id\" [simpoAnimation]=\"styles?.animation\">\r\n <div *ngFor=\"let text of data?.content?.inputText\">\r\n <!-- <div class=\"heading-medium mb-1 content-side\" [innerHTML]=\"text.value | sanitizeHtml\"></div> -->\r\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n\r\n </div>\r\n <div class=\" box justify-center d-flex g-25 mt-5 mb-5\">\r\n <div *ngFor=\"let tab of content?.listItem?.data; let index = index\">\r\n <div class=\"tab\" [ngClass]=\"{'active': index === selectedTabIndex}\" [style.borderColor]=\"index === selectedTabIndex ? styles?.background?.accentColor : ''\" [style.color]=\"index === selectedTabIndex ? styles?.background?.accentColor : ''\" (click)=\"changetab(index)\">\r\n <!-- {{ tab.inputText[0].value }} -->\r\n <simpo-text-editor [(value)]=\"tab.inputText[0].value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row-container\" *ngIf=\"screenWidth <= 475\" [id]=\"data?.id\" [simpoAnimation]=\"styles?.animation\">\r\n <div *ngFor=\"let text of data?.content?.inputText\">\r\n <!-- <div class=\"heading-medium mb-1 content-side\" [innerHTML]=\"text.value | sanitizeHtml\"></div> -->\r\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </div>\r\n <div class=\" box d-flex g-25 mt-5 mb-5\">\r\n <div *ngFor=\"let tab of content?.listItem?.data; let index = index\">\r\n <div class=\"tab\" [ngClass]=\"{'active': index === selectedTabIndex}\" [style.borderColor]=\"index === selectedTabIndex ? styles?.background?.accentColor : ''\" [style.color]=\"index === selectedTabIndex ? styles?.background?.accentColor : ''\" (click)=\"changetab(index)\">\r\n <!-- {{ tab.inputText[0].value }} -->\r\n <simpo-text-editor [(value)]=\"tab.inputText[0].value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"content d-flex g-15 mt-5\" *ngIf=\"currentData?.image?.url\">\r\n <div class=\"image\">\r\n <img loading=\"lazy\" [src]=\"currentData?.image?.url\" alt=\"\" [id]=\"data?.id\"\r\n [simpoImageDirective]=\"styles?.image\" [simpoObjectPosition]=\"currentData?.image?.position\"\r\n [simpoCorner]=\"styles?.corners\"\r\n class=\"d-block mx-lg-auto img-fluid h-100 \" [class]=\"data?.id+(currentData?.image?.id || '')\"\r\n loading=\"lazy\" [appImageEditor]=\"true\" [imageData]=\"currentData?.image\" [sectionId]=\"data?.id\">\r\n </div>\r\n <div class=\"content-heading\">\r\n <div class=\"heading-large content-side\" >\r\n <ng-container *ngIf=\"currentData?.inputText?.[1] as textItem\">\r\n <simpo-text-editor [(value)]=\"textItem.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </ng-container>\r\n </div>\r\n <div class=\"content-description body-large mt-1 content-side\" >\r\n <ng-container *ngIf=\"currentData?.inputText?.[2] as textitem\">\r\n <simpo-text-editor [(value)]=\"textitem.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"content justify-center d-flex g-15 mt-5\" *ngIf=\"!currentData?.image?.url\">\r\n <div class=\"content-heading text-center\">\r\n <div class=\"heading-large content-side\" [innerHtml]=\"currentData?.inputText?.[1]?.value\" [id]=\"data?.id\">\r\n </div>\r\n <div class=\"content-description body-large mt-1 text-center\" [innerHtml]=\"currentData?.inputText?.[2]?.value\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <ng-container *ngIf=\"styles?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\" [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n\r\n</section>\r\n", styles: [".hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.total-container{position:relative;height:auto}.content{padding:0px 10rem;width:90%;gap:3rem;margin-bottom:4%}.image{width:40%;flex:1}.image img{width:100%}.content-heading{width:60%;text-align:start}.content-description{width:100%;text-align:start}.active{font-weight:700;letter-spacing:.8px;border-bottom:2px solid;padding-bottom:20px}.tab{letter-spacing:.8px;border-bottom:2px solid;padding-bottom:20px;cursor:pointer}@media only screen and (max-width: 768px){.content{flex-direction:column;padding:0 2rem;width:100%;gap:2rem}.image{order:-1;width:100%}.image img,.content-heading{width:100%}.box{overflow-x:scroll;gap:10%;margin:auto!important;padding:10px;width:85%!important}.row-container{width:100%!important}.tab{letter-spacing:.5px;border-bottom:1px solid;padding-bottom:10px;cursor:pointer}.image{width:100%}}@media screen and (max-width: 475px){.content{padding:0;margin-bottom:30px}}.g-25{gap:55px}.mt-1{margin-top:1rem}.justify-center{justify-content:center}\n"], dependencies: [{ kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "component", type: HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: OverlayDirective, selector: "[simpoOverlay]", inputs: ["simpoOverlay"] }, { kind: "directive", type: BorderDirective, selector: "[simpoBorder]", inputs: ["simpoBorder"] }, { kind: "directive", type: AnimationDirective, selector: "[simpoAnimation]", inputs: ["simpoAnimation"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "directive", type: ImageDirectiveDirective, selector: "[simpoImageDirective]", inputs: ["simpoImageDirective"] }, { kind: "directive", type: ObjectPositionDirective, selector: "[simpoObjectPosition]", inputs: ["simpoObjectPosition"] }, { kind: "directive", type: CornerDirective, selector: "[simpoCorner]", inputs: ["simpoCorner"] }, { kind: "component", type: SvgDividerComponent, selector: "simpo-svg-divider", inputs: ["dividerType", "color"] }, { kind: "component", type: TextEditorComponent, selector: "simpo-text-editor", inputs: ["value", "editable", "sectionId", "label"], outputs: ["valueChange"] }, { kind: "directive", type: ImageEditorDirective, selector: "img[appImageEditor]", inputs: ["appImageEditor", "imageData", "sectionId"] }] }); }
55
57
  }
56
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: FeaturesSectionComponent, decorators: [{
57
59
  type: Component,
@@ -69,8 +71,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
69
71
  ImageDirectiveDirective,
70
72
  ObjectPositionDirective,
71
73
  CornerDirective,
72
- SanitizeHtmlPipe, SvgDividerComponent
73
- ], template: "<section [id]=\"data?.id\" [simpoBackground]=\"styles?.background\" simpoHover (hovering)=\"showEditTabs($event)\"\r\n class=\"total-container\" [simpoBorder]=\"styles?.border\" [attr.style]=\"customClass\">\r\n <div #mainContainer [id]=\"data?.id\" [simpoOverlay]=\"styles?.background\">\r\n <div class=\"container-fluid d-flex flex-column\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\">\r\n <div class=\"row\" *ngIf=\"screenWidth > 475\" [id]=\"data?.id\" [simpoAnimation]=\"styles?.animation\">\r\n <div *ngFor=\"let text of data?.content?.inputText\">\r\n <div class=\"heading-medium mb-1 content-side\" [innerHTML]=\"text.value | sanitizeHtml\"></div>\r\n </div>\r\n <div class=\" box justify-center d-flex g-25 mt-5 mb-5\">\r\n <div *ngFor=\"let tab of content?.listItem?.data; let index = index\">\r\n <div class=\"tab\" [ngClass]=\"{'active': index === selectedTabIndex}\" [style.borderColor]=\"index === selectedTabIndex ? styles?.background?.accentColor : ''\" [style.color]=\"index === selectedTabIndex ? styles?.background?.accentColor : ''\" (click)=\"changetab(index)\">\r\n {{ tab.inputText[0].value }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row-container\" *ngIf=\"screenWidth <= 475\" [id]=\"data?.id\" [simpoAnimation]=\"styles?.animation\">\r\n <div *ngFor=\"let text of data?.content?.inputText\">\r\n <div class=\"heading-medium mb-1 content-side\" [innerHTML]=\"text.value | sanitizeHtml\"></div>\r\n </div>\r\n <div class=\" box d-flex g-25 mt-5 mb-5\">\r\n <div *ngFor=\"let tab of content?.listItem?.data; let index = index\">\r\n <div class=\"tab\" [ngClass]=\"{'active': index === selectedTabIndex}\" [style.borderColor]=\"index === selectedTabIndex ? styles?.background?.accentColor : ''\" [style.color]=\"index === selectedTabIndex ? styles?.background?.accentColor : ''\" (click)=\"changetab(index)\">\r\n {{ tab.inputText[0].value }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"content d-flex g-15 mt-5\" *ngIf=\"currentData?.image?.url\">\r\n <div class=\"image\">\r\n <img loading=\"lazy\" [src]=\"currentData?.image?.url\" alt=\"\" [id]=\"data?.id\"\r\n [simpoImageDirective]=\"styles?.image\" [id]=\"data?.id\" [simpoObjectPosition]=\"currentData?.image?.position\"\r\n [simpoCorner]=\"styles?.corners\"\r\n class=\"d-block mx-lg-auto img-fluid h-100\"\r\n loading=\"lazy\">\r\n </div>\r\n <div class=\"content-heading\">\r\n <div class=\"heading-large content-side\" [innerHtml]=\"currentData?.inputText?.[1]?.value\" [id]=\"data?.id\">\r\n </div>\r\n <div class=\"content-description body-large mt-1 content-side\" [innerHtml]=\"currentData?.inputText?.[2]?.value\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"content justify-center d-flex g-15 mt-5\" *ngIf=\"!currentData?.image?.url\">\r\n <div class=\"content-heading text-center\">\r\n <div class=\"heading-large content-side\" [innerHtml]=\"currentData?.inputText?.[1]?.value\" [id]=\"data?.id\">\r\n </div>\r\n <div class=\"content-description body-large mt-1 text-center\" [innerHtml]=\"currentData?.inputText?.[2]?.value\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <ng-container *ngIf=\"styles?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\" [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n\r\n</section>\r\n", styles: [".hover_effect{position:absolute;width:100%;top:0;left:0;height:100%}.total-container{position:relative;height:auto}.content{padding:0px 10rem;width:90%;gap:3rem;margin-bottom:4%}.image{width:40%;flex:1}.image img{width:100%}.content-heading{width:60%;text-align:start}.content-description{width:100%;text-align:start}.active{font-weight:700;letter-spacing:.8px;border-bottom:2px solid;padding-bottom:20px}.tab{letter-spacing:.8px;border-bottom:2px solid;padding-bottom:20px;cursor:pointer}@media only screen and (max-width: 768px){.content{flex-direction:column;padding:0 2rem;width:100%;gap:2rem}.image{order:-1;width:100%}.image img,.content-heading{width:100%}.box{overflow-x:scroll;gap:10%;margin:auto!important;padding:10px;width:85%!important}.row-container{width:100%!important}.tab{letter-spacing:.5px;border-bottom:1px solid;padding-bottom:10px;cursor:pointer}.image{width:100%}}@media screen and (max-width: 475px){.content{padding:0;margin-bottom:30px}}.g-25{gap:55px}.mt-1{margin-top:1rem}.justify-center{justify-content:center}\n"] }]
74
+ SanitizeHtmlPipe, SvgDividerComponent,
75
+ TextEditorComponent,
76
+ ImageEditorDirective
77
+ ], template: "<section [id]=\"data?.id\" [simpoBackground]=\"styles?.background\" simpoHover (hovering)=\"showEditTabs($event)\"\r\n class=\"total-container\" [simpoBorder]=\"styles?.border\" [attr.style]=\"customClass\">\r\n <div #mainContainer [id]=\"data?.id\" [simpoOverlay]=\"styles?.background\">\r\n <div class=\"container-fluid d-flex flex-column\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\">\r\n <div class=\"row\" *ngIf=\"screenWidth > 475\" [id]=\"data?.id\" [simpoAnimation]=\"styles?.animation\">\r\n <div *ngFor=\"let text of data?.content?.inputText\">\r\n <!-- <div class=\"heading-medium mb-1 content-side\" [innerHTML]=\"text.value | sanitizeHtml\"></div> -->\r\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n\r\n </div>\r\n <div class=\" box justify-center d-flex g-25 mt-5 mb-5\">\r\n <div *ngFor=\"let tab of content?.listItem?.data; let index = index\">\r\n <div class=\"tab\" [ngClass]=\"{'active': index === selectedTabIndex}\" [style.borderColor]=\"index === selectedTabIndex ? styles?.background?.accentColor : ''\" [style.color]=\"index === selectedTabIndex ? styles?.background?.accentColor : ''\" (click)=\"changetab(index)\">\r\n <!-- {{ tab.inputText[0].value }} -->\r\n <simpo-text-editor [(value)]=\"tab.inputText[0].value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row-container\" *ngIf=\"screenWidth <= 475\" [id]=\"data?.id\" [simpoAnimation]=\"styles?.animation\">\r\n <div *ngFor=\"let text of data?.content?.inputText\">\r\n <!-- <div class=\"heading-medium mb-1 content-side\" [innerHTML]=\"text.value | sanitizeHtml\"></div> -->\r\n <simpo-text-editor [(value)]=\"text.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </div>\r\n <div class=\" box d-flex g-25 mt-5 mb-5\">\r\n <div *ngFor=\"let tab of content?.listItem?.data; let index = index\">\r\n <div class=\"tab\" [ngClass]=\"{'active': index === selectedTabIndex}\" [style.borderColor]=\"index === selectedTabIndex ? styles?.background?.accentColor : ''\" [style.color]=\"index === selectedTabIndex ? styles?.background?.accentColor : ''\" (click)=\"changetab(index)\">\r\n <!-- {{ tab.inputText[0].value }} -->\r\n <simpo-text-editor [(value)]=\"tab.inputText[0].value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"content d-flex g-15 mt-5\" *ngIf=\"currentData?.image?.url\">\r\n <div class=\"image\">\r\n <img loading=\"lazy\" [src]=\"currentData?.image?.url\" alt=\"\" [id]=\"data?.id\"\r\n [simpoImageDirective]=\"styles?.image\" [simpoObjectPosition]=\"currentData?.image?.position\"\r\n [simpoCorner]=\"styles?.corners\"\r\n class=\"d-block mx-lg-auto img-fluid h-100 \" [class]=\"data?.id+(currentData?.image?.id || '')\"\r\n loading=\"lazy\" [appImageEditor]=\"true\" [imageData]=\"currentData?.image\" [sectionId]=\"data?.id\">\r\n </div>\r\n <div class=\"content-heading\">\r\n <div class=\"heading-large content-side\" >\r\n <ng-container *ngIf=\"currentData?.inputText?.[1] as textItem\">\r\n <simpo-text-editor [(value)]=\"textItem.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </ng-container>\r\n </div>\r\n <div class=\"content-description body-large mt-1 content-side\" >\r\n <ng-container *ngIf=\"currentData?.inputText?.[2] as textitem\">\r\n <simpo-text-editor [(value)]=\"textitem.value\" [editable]=\"edit || false\"></simpo-text-editor>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"content justify-center d-flex g-15 mt-5\" *ngIf=\"!currentData?.image?.url\">\r\n <div class=\"content-heading text-center\">\r\n <div class=\"heading-large content-side\" [innerHtml]=\"currentData?.inputText?.[1]?.value\" [id]=\"data?.id\">\r\n </div>\r\n <div class=\"content-description body-large mt-1 text-center\" [innerHtml]=\"currentData?.inputText?.[2]?.value\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <ng-container *ngIf=\"styles?.devider?.display\">\r\n <simpo-svg-divider [dividerType]=\"styles?.devider?.deviderType\" [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\r\n </ng-container>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n\r\n</section>\r\n", styles: [".hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.total-container{position:relative;height:auto}.content{padding:0px 10rem;width:90%;gap:3rem;margin-bottom:4%}.image{width:40%;flex:1}.image img{width:100%}.content-heading{width:60%;text-align:start}.content-description{width:100%;text-align:start}.active{font-weight:700;letter-spacing:.8px;border-bottom:2px solid;padding-bottom:20px}.tab{letter-spacing:.8px;border-bottom:2px solid;padding-bottom:20px;cursor:pointer}@media only screen and (max-width: 768px){.content{flex-direction:column;padding:0 2rem;width:100%;gap:2rem}.image{order:-1;width:100%}.image img,.content-heading{width:100%}.box{overflow-x:scroll;gap:10%;margin:auto!important;padding:10px;width:85%!important}.row-container{width:100%!important}.tab{letter-spacing:.5px;border-bottom:1px solid;padding-bottom:10px;cursor:pointer}.image{width:100%}}@media screen and (max-width: 475px){.content{padding:0;margin-bottom:30px}}.g-25{gap:55px}.mt-1{margin-top:1rem}.justify-center{justify-content:center}\n"] }]
74
78
  }], ctorParameters: () => [{ type: i1.EventsService }], propDecorators: { data: [{
75
79
  type: Input
76
80
  }], edit: [{
@@ -87,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
87
91
  type: HostListener,
88
92
  args: ['window:resize', ['$event']]
89
93
  }] } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZXMtc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2ZlYXR1cmVzLXNlY3Rpb24vZmVhdHVyZXMtc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2ZlYXR1cmVzLXNlY3Rpb24vZmVhdHVyZXMtc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxXQUFXLE1BQU0sZ0JBQWdCLENBQUM7QUFHekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDN0YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDcEYsT0FB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TUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBcUJOLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgQmFzZVNlY3Rpb24gZnJvbSAnLi4vQmFzZVNlY3Rpb24nO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGZWF0dXJlQ29udGVudE1vZGVsLCBGZWF0dXJlU3R5bGVzTW9kZWwsIEZlYXR1cmVTZWN0aW9uTW9kZWwsIEZlYXR1cmVJdGVtTW9kZWwgIH0gZnJvbSAnLi9mZWF0dXJlcy1zZWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2hvdmVyLWVsZW1lbnQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSG92ZXJFbGVtZW50c0NvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2hvdmVyLWVsZW1lbnRzL2hvdmVyLWVsZW1lbnRzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBEZWxldGVIb3ZlckVsZW1lbnRDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9kZWxldGUtaG92ZXItZWxlbWVudC9kZWxldGUtaG92ZXItZWxlbWVudC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgT3ZlcmxheURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9vdmVybGF5LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJvcmRlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9ib3JkZXItZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQW5pbWF0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2FuaW1hdGlvbi1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IHNpbXBvQ29uZXRlbkFsaWdubWVudERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWFsaWdubWVudC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBJbWFnZURpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9pbWFnZS1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgT2JqZWN0UG9zaXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaW1hZ2UtcG9zaXRpb24uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29ybmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2Nvcm5lci1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTYW5pdGl6ZUh0bWxQaXBlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2FuaXRpemVIdG1sJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZE1vZGVsIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgU3ZnRGl2aWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL3N2Zy1kaXZpZGVyL3N2Zy1kaXZpZGVyLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLWZlYXR1cmVzLXNlY3Rpb24nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQmFja2dyb3VuZERpcmVjdGl2ZSxcclxuICAgIEhvdmVyRGlyZWN0aXZlLFxyXG4gICAgSG92ZXJFbGVtZW50c0NvbXBvbmVudCxcclxuICAgIERlbGV0ZUhvdmVyRWxlbWVudENvbXBvbmVudCxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE92ZXJsYXlEaXJlY3RpdmUsXHJcbiAgICBCb3JkZXJEaXJlY3RpdmUsXHJcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXHJcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxyXG4gICAgc2ltcG9Db25ldGVuQWxpZ25tZW50RGlyZWN0aXZlLFxyXG4gICAgSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBPYmplY3RQb3NpdGlvbkRpcmVjdGl2ZSxcclxuICAgIENvcm5lckRpcmVjdGl2ZSxcclxuICAgIFNhbml0aXplSHRtbFBpcGUsU3ZnRGl2aWRlckNvbXBvbmVudFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZlYXR1cmVzLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9mZWF0dXJlcy1zZWN0aW9uLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGZWF0dXJlc1NlY3Rpb25Db21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgZGF0YT86IEZlYXR1cmVTZWN0aW9uTW9kZWw7XHJcbiAgQElucHV0KCkgZWRpdD86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY29udGVudD86IEZlYXR1cmVDb250ZW50TW9kZWw7XHJcbiAgc3R5bGVzPzogRmVhdHVyZVN0eWxlc01vZGVsO1xyXG4gIEBJbnB1dCgpIGRlbGV0ZT8gOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGluZGV4PyA6IG51bWJlcjtcclxuICBASW5wdXQoKSBuZXh0Q29tcG9uZW50Q29sb3I/OiBCYWNrZ3JvdW5kTW9kZWw7XHJcblxyXG5cclxuICBsaXN0SXRlbXMgOiBhbnk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ldmVudFNlcnZpY2UgOiBFdmVudHNTZXJ2aWNlLFxyXG4gICl7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5nZXRTY3JlZW5TaXplKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpe1xyXG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5kYXRhPy5jb250ZW50O1xyXG4gICAgdGhpcy5saXN0SXRlbXMgPSB0aGlzLmRhdGE/LmNvbnRlbnQubGlzdEl0ZW0uZGF0YVxyXG4gICAgdGhpcy5zdHlsZXMgPSB0aGlzLmRhdGE/LnN0eWxlcztcclxuICAgIHRoaXMuZGVsZXRlU2VsZWN0ZWQgPSB0aGlzLmRlbGV0ZVxyXG4gICAgdGhpcy5jaGFuZ2V0YWIoMCk7XHJcbiAgfVxyXG5cclxuICBzY3JlZW5XaWR0aDpudW1iZXI9MDtcclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBnZXRTY3JlZW5TaXplKGV2ZW50PzphbnkpIHtcclxuICAgIGlmKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIHRoaXMuc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBzZWxlY3RlZFRhYkluZGV4ID0gMDtcclxuICBjdXJyZW50RGF0YT86IEZlYXR1cmVJdGVtTW9kZWw7XHJcbiAgY2hhbmdldGFiKGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRUYWJJbmRleCA9IGluZGV4O1xyXG4gICAgdGhpcy5jdXJyZW50RGF0YSA9IHRoaXMuZGF0YT8uY29udGVudC5saXN0SXRlbS5kYXRhW3RoaXMuc2VsZWN0ZWRUYWJJbmRleF07XHJcbiAgfVxyXG4gIGVkaXRTZWN0aW9uKCl7XHJcbiAgICBpZih3aW5kb3cuaW5uZXJXaWR0aCA8PSA0NzUpXHJcbiAgICAgIHJldHVyblxyXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnRvZ2dsZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xyXG4gICAgc2V0VGltZW91dCgoKT0+IHtcclxuICAgICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmVkaXRTZWN0aW9uLmVtaXQoe2RhdGE6dGhpcy5kYXRhfSk7XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPHNlY3Rpb24gW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvQmFja2dyb3VuZF09XCJzdHlsZXM/LmJhY2tncm91bmRcIiBzaW1wb0hvdmVyIChob3ZlcmluZyk9XCJzaG93RWRpdFRhYnMoJGV2ZW50KVwiXHJcbiAgY2xhc3M9XCJ0b3RhbC1jb250YWluZXJcIiBbc2ltcG9Cb3JkZXJdPVwic3R5bGVzPy5ib3JkZXJcIiAgW2F0dHIuc3R5bGVdPVwiY3VzdG9tQ2xhc3NcIj5cclxuICA8ZGl2ICAjbWFpbkNvbnRhaW5lciBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9PdmVybGF5XT1cInN0eWxlcz8uYmFja2dyb3VuZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCBkLWZsZXggZmxleC1jb2x1bW5cIiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9MYXlvdXRdPVwic3R5bGVzPy5sYXlvdXRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwic2NyZWVuV2lkdGggPiA0NzVcIiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9BbmltYXRpb25dPVwic3R5bGVzPy5hbmltYXRpb25cIj5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB0ZXh0IG9mIGRhdGE/LmNvbnRlbnQ/LmlucHV0VGV4dFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVkaXVtIG1iLTEgY29udGVudC1zaWRlXCIgW2lubmVySFRNTF09XCJ0ZXh0LnZhbHVlIHwgc2FuaXRpemVIdG1sXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIiBib3gganVzdGlmeS1jZW50ZXIgZC1mbGV4IGctMjUgbXQtNSBtYi01XCI+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB0YWIgb2YgY29udGVudD8ubGlzdEl0ZW0/LmRhdGE7IGxldCBpbmRleCA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJcIiBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IGluZGV4ID09PSBzZWxlY3RlZFRhYkluZGV4fVwiIFtzdHlsZS5ib3JkZXJDb2xvcl09XCJpbmRleCA9PT0gc2VsZWN0ZWRUYWJJbmRleCA/IHN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3IgOiAnJ1wiIFtzdHlsZS5jb2xvcl09XCJpbmRleCA9PT0gc2VsZWN0ZWRUYWJJbmRleCA/IHN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3IgOiAnJ1wiIChjbGljayk9XCJjaGFuZ2V0YWIoaW5kZXgpXCI+XHJcbiAgICAgICAgICAgICAge3sgdGFiLmlucHV0VGV4dFswXS52YWx1ZSB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvdy1jb250YWluZXJcIiAqbmdJZj1cInNjcmVlbldpZHRoIDw9IDQ3NVwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0FuaW1hdGlvbl09XCJzdHlsZXM/LmFuaW1hdGlvblwiPlxyXG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHRleHQgb2YgZGF0YT8uY29udGVudD8uaW5wdXRUZXh0XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZWRpdW0gbWItMSBjb250ZW50LXNpZGVcIiBbaW5uZXJIVE1MXT1cInRleHQudmFsdWUgfCBzYW5pdGl6ZUh0bWxcIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiIGJveCBkLWZsZXggZy0yNSBtdC01IG1iLTVcIj5cclxuICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHRhYiBvZiBjb250ZW50Py5saXN0SXRlbT8uZGF0YTsgbGV0IGluZGV4ID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYlwiIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogaW5kZXggPT09IHNlbGVjdGVkVGFiSW5kZXh9XCIgW3N0eWxlLmJvcmRlckNvbG9yXT1cImluZGV4ID09PSBzZWxlY3RlZFRhYkluZGV4ID8gc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvciA6ICcnXCIgW3N0eWxlLmNvbG9yXT1cImluZGV4ID09PSBzZWxlY3RlZFRhYkluZGV4ID8gc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvciA6ICcnXCIgKGNsaWNrKT1cImNoYW5nZXRhYihpbmRleClcIj5cclxuICAgICAgICAgICAgICB7eyB0YWIuaW5wdXRUZXh0WzBdLnZhbHVlIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudCBkLWZsZXggZy0xNSBtdC01XCIgKm5nSWY9XCJjdXJyZW50RGF0YT8uaW1hZ2U/LnVybFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxyXG4gICAgICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiICBbc3JjXT1cImN1cnJlbnREYXRhPy5pbWFnZT8udXJsXCIgYWx0PVwiXCIgW2lkXT1cImRhdGE/LmlkXCJcclxuICAgICAgICAgIFtzaW1wb0ltYWdlRGlyZWN0aXZlXT1cInN0eWxlcz8uaW1hZ2VcIiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9PYmplY3RQb3NpdGlvbl09XCJjdXJyZW50RGF0YT8uaW1hZ2U/LnBvc2l0aW9uXCJcclxuICAgICAgICAgIFtzaW1wb0Nvcm5lcl09XCJzdHlsZXM/LmNvcm5lcnNcIlxyXG4gICAgICAgICAgY2xhc3M9XCJkLWJsb2NrIG14LWxnLWF1dG8gaW1nLWZsdWlkIGgtMTAwXCJcclxuICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtaGVhZGluZ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbGFyZ2UgY29udGVudC1zaWRlXCIgW2lubmVySHRtbF09XCJjdXJyZW50RGF0YT8uaW5wdXRUZXh0Py5bMV0/LnZhbHVlXCIgW2lkXT1cImRhdGE/LmlkXCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWRlc2NyaXB0aW9uIGJvZHktbGFyZ2UgbXQtMSBjb250ZW50LXNpZGVcIiBbaW5uZXJIdG1sXT1cImN1cnJlbnREYXRhPy5pbnB1dFRleHQ/LlsyXT8udmFsdWVcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQganVzdGlmeS1jZW50ZXIgZC1mbGV4IGctMTUgbXQtNVwiICpuZ0lmPVwiIWN1cnJlbnREYXRhPy5pbWFnZT8udXJsXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtaGVhZGluZyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbGFyZ2UgY29udGVudC1zaWRlXCIgW2lubmVySHRtbF09XCJjdXJyZW50RGF0YT8uaW5wdXRUZXh0Py5bMV0/LnZhbHVlXCIgW2lkXT1cImRhdGE/LmlkXCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWRlc2NyaXB0aW9uIGJvZHktbGFyZ2UgbXQtMSB0ZXh0LWNlbnRlclwiIFtpbm5lckh0bWxdPVwiY3VycmVudERhdGE/LmlucHV0VGV4dD8uWzJdPy52YWx1ZVwiPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlcz8uZGV2aWRlcj8uZGlzcGxheVwiPlxyXG4gICAgPHNpbXBvLXN2Zy1kaXZpZGVyIFtkaXZpZGVyVHlwZV09XCJzdHlsZXM/LmRldmlkZXI/LmRldmlkZXJUeXBlXCIgW2NvbG9yXT1cIm5leHRDb21wb25lbnRDb2xvcj8uY29sb3JcIj48L3NpbXBvLXN2Zy1kaXZpZGVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cclxuICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XHJcbiAgICA8c2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiPjwvc2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQ+XHJcbiAgPC9kaXY+XHJcblxyXG48L3NlY3Rpb24+XHJcbiJdfQ==
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZXMtc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2ZlYXR1cmVzLXNlY3Rpb24vZmVhdHVyZXMtc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2ZlYXR1cmVzLXNlY3Rpb24vZmVhdHVyZXMtc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxXQUFXLE1BQU0sZ0JBQWdCLENBQUM7QUFHekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDN0YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDcEYsT0FB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QkFDZixnQkFBZ0IsRUFBQyxtQkFBbUI7d0JBQ3BDLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3FCQUNyQjtrRkFLUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBcUJOLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgQmFzZVNlY3Rpb24gZnJvbSAnLi4vQmFzZVNlY3Rpb24nO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGZWF0dXJlQ29udGVudE1vZGVsLCBGZWF0dXJlU3R5bGVzTW9kZWwsIEZlYXR1cmVTZWN0aW9uTW9kZWwsIEZlYXR1cmVJdGVtTW9kZWwgIH0gZnJvbSAnLi9mZWF0dXJlcy1zZWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2hvdmVyLWVsZW1lbnQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSG92ZXJFbGVtZW50c0NvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2hvdmVyLWVsZW1lbnRzL2hvdmVyLWVsZW1lbnRzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBEZWxldGVIb3ZlckVsZW1lbnRDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9kZWxldGUtaG92ZXItZWxlbWVudC9kZWxldGUtaG92ZXItZWxlbWVudC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgT3ZlcmxheURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9vdmVybGF5LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJvcmRlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9ib3JkZXItZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQW5pbWF0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2FuaW1hdGlvbi1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IHNpbXBvQ29uZXRlbkFsaWdubWVudERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWFsaWdubWVudC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBJbWFnZURpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9pbWFnZS1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgT2JqZWN0UG9zaXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaW1hZ2UtcG9zaXRpb24uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29ybmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2Nvcm5lci1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTYW5pdGl6ZUh0bWxQaXBlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2FuaXRpemVIdG1sJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZE1vZGVsIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgU3ZnRGl2aWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL3N2Zy1kaXZpZGVyL3N2Zy1kaXZpZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRleHRFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbWFnZUVkaXRvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9pbWFnZS1lZGl0b3IuZGlyZWN0aXZlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8tZmVhdHVyZXMtc2VjdGlvbicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBCYWNrZ3JvdW5kRGlyZWN0aXZlLFxyXG4gICAgSG92ZXJEaXJlY3RpdmUsXHJcbiAgICBIb3ZlckVsZW1lbnRzQ29tcG9uZW50LFxyXG4gICAgRGVsZXRlSG92ZXJFbGVtZW50Q29tcG9uZW50LFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgT3ZlcmxheURpcmVjdGl2ZSxcclxuICAgIEJvcmRlckRpcmVjdGl2ZSxcclxuICAgIEFuaW1hdGlvbkRpcmVjdGl2ZSxcclxuICAgIENvbnRlbnRGaXREaXJlY3RpdmUsXHJcbiAgICBzaW1wb0NvbmV0ZW5BbGlnbm1lbnREaXJlY3RpdmUsXHJcbiAgICBJbWFnZURpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIE9iamVjdFBvc2l0aW9uRGlyZWN0aXZlLFxyXG4gICAgQ29ybmVyRGlyZWN0aXZlLFxyXG4gICAgU2FuaXRpemVIdG1sUGlwZSxTdmdEaXZpZGVyQ29tcG9uZW50LFxyXG4gICAgVGV4dEVkaXRvckNvbXBvbmVudCxcclxuICAgIEltYWdlRWRpdG9yRGlyZWN0aXZlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmVhdHVyZXMtc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2ZlYXR1cmVzLXNlY3Rpb24uY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEZlYXR1cmVzU2VjdGlvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VTZWN0aW9uIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBkYXRhPzogRmVhdHVyZVNlY3Rpb25Nb2RlbDtcclxuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBjdXN0b21DbGFzcz86IHN0cmluZztcclxuICBjb250ZW50PzogRmVhdHVyZUNvbnRlbnRNb2RlbDtcclxuICBzdHlsZXM/OiBGZWF0dXJlU3R5bGVzTW9kZWw7XHJcbiAgQElucHV0KCkgZGVsZXRlPyA6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaW5kZXg/IDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIG5leHRDb21wb25lbnRDb2xvcj86IEJhY2tncm91bmRNb2RlbDtcclxuXHJcblxyXG4gIGxpc3RJdGVtcyA6IGFueTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2V2ZW50U2VydmljZSA6IEV2ZW50c1NlcnZpY2UsXHJcbiAgKXtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLmdldFNjcmVlblNpemUoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCl7XHJcbiAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLmRhdGE/LmNvbnRlbnQ7XHJcbiAgICB0aGlzLmxpc3RJdGVtcyA9IHRoaXMuZGF0YT8uY29udGVudC5saXN0SXRlbS5kYXRhXHJcbiAgICB0aGlzLnN0eWxlcyA9IHRoaXMuZGF0YT8uc3R5bGVzO1xyXG4gICAgdGhpcy5kZWxldGVTZWxlY3RlZCA9IHRoaXMuZGVsZXRlXHJcbiAgICB0aGlzLmNoYW5nZXRhYigwKTtcclxuICB9XHJcblxyXG4gIHNjcmVlbldpZHRoOm51bWJlcj0wO1xyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIGdldFNjcmVlblNpemUoZXZlbnQ/OmFueSkge1xyXG4gICAgaWYodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgdGhpcy5zY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHNlbGVjdGVkVGFiSW5kZXggPSAwO1xyXG4gIGN1cnJlbnREYXRhPzogRmVhdHVyZUl0ZW1Nb2RlbDtcclxuICBjaGFuZ2V0YWIoaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5zZWxlY3RlZFRhYkluZGV4ID0gaW5kZXg7XHJcbiAgICB0aGlzLmN1cnJlbnREYXRhID0gdGhpcy5kYXRhPy5jb250ZW50Lmxpc3RJdGVtLmRhdGFbdGhpcy5zZWxlY3RlZFRhYkluZGV4XTtcclxuICB9XHJcbiAgZWRpdFNlY3Rpb24oKXtcclxuICAgIGlmKHdpbmRvdy5pbm5lcldpZHRoIDw9IDQ3NSlcclxuICAgICAgcmV0dXJuXHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UudG9nZ2xlRWRpdG9yRXZlbnQuZW1pdChmYWxzZSk7XHJcbiAgICBzZXRUaW1lb3V0KCgpPT4ge1xyXG4gICAgICB0aGlzLl9ldmVudFNlcnZpY2UuZWRpdFNlY3Rpb24uZW1pdCh7ZGF0YTp0aGlzLmRhdGF9KTtcclxuICAgIH0sIDEwMCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8c2VjdGlvbiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9CYWNrZ3JvdW5kXT1cInN0eWxlcz8uYmFja2dyb3VuZFwiIHNpbXBvSG92ZXIgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCJcclxuICBjbGFzcz1cInRvdGFsLWNvbnRhaW5lclwiIFtzaW1wb0JvcmRlcl09XCJzdHlsZXM/LmJvcmRlclwiICBbYXR0ci5zdHlsZV09XCJjdXN0b21DbGFzc1wiPlxyXG4gIDxkaXYgICNtYWluQ29udGFpbmVyIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb092ZXJsYXldPVwic3R5bGVzPy5iYWNrZ3JvdW5kXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWZsdWlkIGQtZmxleCBmbGV4LWNvbHVtblwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0xheW91dF09XCJzdHlsZXM/LmxheW91dFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJzY3JlZW5XaWR0aCA+IDQ3NVwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0FuaW1hdGlvbl09XCJzdHlsZXM/LmFuaW1hdGlvblwiPlxyXG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHRleHQgb2YgZGF0YT8uY29udGVudD8uaW5wdXRUZXh0XCI+XHJcbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJoZWFkaW5nLW1lZGl1bSBtYi0xIGNvbnRlbnQtc2lkZVwiIFtpbm5lckhUTUxdPVwidGV4dC52YWx1ZSB8IHNhbml0aXplSHRtbFwiPjwvZGl2PiAtLT5cclxuICAgICAgICAgIDxzaW1wby10ZXh0LWVkaXRvciBbKHZhbHVlKV09XCJ0ZXh0LnZhbHVlXCIgW2VkaXRhYmxlXT1cImVkaXQgfHwgZmFsc2VcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiIGJveCBqdXN0aWZ5LWNlbnRlciBkLWZsZXggZy0yNSBtdC01IG1iLTVcIj5cclxuICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHRhYiBvZiBjb250ZW50Py5saXN0SXRlbT8uZGF0YTsgbGV0IGluZGV4ID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYlwiIFtuZ0NsYXNzXT1cInsnYWN0aXZlJzogaW5kZXggPT09IHNlbGVjdGVkVGFiSW5kZXh9XCIgW3N0eWxlLmJvcmRlckNvbG9yXT1cImluZGV4ID09PSBzZWxlY3RlZFRhYkluZGV4ID8gc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvciA6ICcnXCIgW3N0eWxlLmNvbG9yXT1cImluZGV4ID09PSBzZWxlY3RlZFRhYkluZGV4ID8gc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvciA6ICcnXCIgKGNsaWNrKT1cImNoYW5nZXRhYihpbmRleClcIj5cclxuICAgICAgICAgICAgICA8IS0tIHt7IHRhYi5pbnB1dFRleHRbMF0udmFsdWUgfX0gLS0+XHJcbiAgICAgICAgICAgICAgPHNpbXBvLXRleHQtZWRpdG9yIFsodmFsdWUpXT1cInRhYi5pbnB1dFRleHRbMF0udmFsdWVcIiBbZWRpdGFibGVdPVwiZWRpdCB8fCBmYWxzZVwiPjwvc2ltcG8tdGV4dC1lZGl0b3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93LWNvbnRhaW5lclwiICpuZ0lmPVwic2NyZWVuV2lkdGggPD0gNDc1XCIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvQW5pbWF0aW9uXT1cInN0eWxlcz8uYW5pbWF0aW9uXCI+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdGV4dCBvZiBkYXRhPy5jb250ZW50Py5pbnB1dFRleHRcIj5cclxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImhlYWRpbmctbWVkaXVtIG1iLTEgY29udGVudC1zaWRlXCIgW2lubmVySFRNTF09XCJ0ZXh0LnZhbHVlIHwgc2FuaXRpemVIdG1sXCI+PC9kaXY+IC0tPlxyXG4gICAgICAgIDxzaW1wby10ZXh0LWVkaXRvciBbKHZhbHVlKV09XCJ0ZXh0LnZhbHVlXCIgW2VkaXRhYmxlXT1cImVkaXQgfHwgZmFsc2VcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCIgYm94IGQtZmxleCBnLTI1IG10LTUgbWItNVwiPlxyXG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdGFiIG9mIGNvbnRlbnQ/Lmxpc3RJdGVtPy5kYXRhOyBsZXQgaW5kZXggPSBpbmRleFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiXCIgW25nQ2xhc3NdPVwieydhY3RpdmUnOiBpbmRleCA9PT0gc2VsZWN0ZWRUYWJJbmRleH1cIiBbc3R5bGUuYm9yZGVyQ29sb3JdPVwiaW5kZXggPT09IHNlbGVjdGVkVGFiSW5kZXggPyBzdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yIDogJydcIiBbc3R5bGUuY29sb3JdPVwiaW5kZXggPT09IHNlbGVjdGVkVGFiSW5kZXggPyBzdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yIDogJydcIiAoY2xpY2spPVwiY2hhbmdldGFiKGluZGV4KVwiPlxyXG4gICAgICAgICAgICAgIDwhLS0ge3sgdGFiLmlucHV0VGV4dFswXS52YWx1ZSB9fSAtLT5cclxuICAgICAgICAgICAgICA8c2ltcG8tdGV4dC1lZGl0b3IgWyh2YWx1ZSldPVwidGFiLmlucHV0VGV4dFswXS52YWx1ZVwiIFtlZGl0YWJsZV09XCJlZGl0IHx8IGZhbHNlXCI+PC9zaW1wby10ZXh0LWVkaXRvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50IGQtZmxleCBnLTE1IG10LTVcIiAqbmdJZj1cImN1cnJlbnREYXRhPy5pbWFnZT8udXJsXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgIFtzcmNdPVwiY3VycmVudERhdGE/LmltYWdlPy51cmxcIiBhbHQ9XCJcIiBbaWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgICAgICAgW3NpbXBvSW1hZ2VEaXJlY3RpdmVdPVwic3R5bGVzPy5pbWFnZVwiICBbc2ltcG9PYmplY3RQb3NpdGlvbl09XCJjdXJyZW50RGF0YT8uaW1hZ2U/LnBvc2l0aW9uXCJcclxuICAgICAgICAgIFtzaW1wb0Nvcm5lcl09XCJzdHlsZXM/LmNvcm5lcnNcIlxyXG4gICAgICAgICAgY2xhc3M9XCJkLWJsb2NrIG14LWxnLWF1dG8gaW1nLWZsdWlkIGgtMTAwIFwiIFtjbGFzc109XCJkYXRhPy5pZCsoY3VycmVudERhdGE/LmltYWdlPy5pZCB8fCAnJylcIlxyXG4gICAgICAgICAgbG9hZGluZz1cImxhenlcIiAgW2FwcEltYWdlRWRpdG9yXT1cInRydWVcIiBbaW1hZ2VEYXRhXT1cImN1cnJlbnREYXRhPy5pbWFnZVwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1oZWFkaW5nXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1sYXJnZSBjb250ZW50LXNpZGVcIiA+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50RGF0YT8uaW5wdXRUZXh0Py5bMV0gYXMgdGV4dEl0ZW1cIj5cclxuICAgICAgICAgICAgICA8c2ltcG8tdGV4dC1lZGl0b3IgWyh2YWx1ZSldPVwidGV4dEl0ZW0udmFsdWVcIiAgW2VkaXRhYmxlXT1cImVkaXQgfHwgZmFsc2VcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtZGVzY3JpcHRpb24gYm9keS1sYXJnZSBtdC0xIGNvbnRlbnQtc2lkZVwiID5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnREYXRhPy5pbnB1dFRleHQ/LlsyXSBhcyB0ZXh0aXRlbVwiPlxyXG4gICAgICAgICAgPHNpbXBvLXRleHQtZWRpdG9yIFsodmFsdWUpXT1cInRleHRpdGVtLnZhbHVlXCIgW2VkaXRhYmxlXT1cImVkaXQgfHwgZmFsc2VcIj48L3NpbXBvLXRleHQtZWRpdG9yPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQganVzdGlmeS1jZW50ZXIgZC1mbGV4IGctMTUgbXQtNVwiICpuZ0lmPVwiIWN1cnJlbnREYXRhPy5pbWFnZT8udXJsXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtaGVhZGluZyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbGFyZ2UgY29udGVudC1zaWRlXCIgW2lubmVySHRtbF09XCJjdXJyZW50RGF0YT8uaW5wdXRUZXh0Py5bMV0/LnZhbHVlXCIgW2lkXT1cImRhdGE/LmlkXCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWRlc2NyaXB0aW9uIGJvZHktbGFyZ2UgbXQtMSB0ZXh0LWNlbnRlclwiIFtpbm5lckh0bWxdPVwiY3VycmVudERhdGE/LmlucHV0VGV4dD8uWzJdPy52YWx1ZVwiPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlcz8uZGV2aWRlcj8uZGlzcGxheVwiPlxyXG4gICAgPHNpbXBvLXN2Zy1kaXZpZGVyIFtkaXZpZGVyVHlwZV09XCJzdHlsZXM/LmRldmlkZXI/LmRldmlkZXJUeXBlXCIgW2NvbG9yXT1cIm5leHRDb21wb25lbnRDb2xvcj8uY29sb3JcIj48L3NpbXBvLXN2Zy1kaXZpZGVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cclxuICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XHJcbiAgICA8c2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiPjwvc2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQ+XHJcbiAgPC9kaXY+XHJcblxyXG48L3NlY3Rpb24+XHJcbiJdfQ==
@@ -90,10 +90,24 @@ export class FooterComponent extends BaseSection {
90
90
  }
91
91
  });
92
92
  }
93
+ createNewFolder() {
94
+ const editorComponent = this.matDialog.open(LinkEditorComponent, { panelClass: 'link-editor' });
95
+ editorComponent.afterClosed().subscribe((res) => {
96
+ if (res.link) {
97
+ let folder = {
98
+ label: "Add folder name",
99
+ links: [res.link]
100
+ };
101
+ if (this.content && !this.content?.folder)
102
+ this.content.folder = [];
103
+ this.content?.folder.push(folder);
104
+ }
105
+ });
106
+ }
93
107
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: FooterComponent, deps: [{ token: i1.EventsService }, { token: i2.RestService }, { token: i3.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
94
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: FooterComponent, isStandalone: true, selector: "simpo-footer", inputs: { data: "data", index: "index", edit: "edit", delete: "delete" }, host: { listeners: { "window:resize": "getScreenSize($event)" } }, usesInheritance: true, ngImport: i0, template: "<section class=\"total-container\" simpoHover\r\n(hovering)=\"showEditTabs($event)\"[spacingHorizontal]=\"stylesLayout\" [simpoBackground]=\"style?.background\" [simpoLayout]=\"style?.layout\" [id]=\"data?.id\">\r\n <div>\r\n <ng-container *ngIf=\"style?.footerType == 'Footer1'\">\r\n <ng-container *ngTemplateOutlet=\"Footer1\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"style?.footerType == 'Footer2'\">\r\n <ng-container *ngTemplateOutlet=\"Footer2\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"style?.footerType == 'Footer3'\">\r\n <ng-container *ngTemplateOutlet=\"Footer3\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"style?.footerType == 'Footer4'\">\r\n <ng-container *ngTemplateOutlet=\"Footer4\"></ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n\r\n</section>\r\n\r\n<ng-template #Footer1>\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-md-4\">\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"descSection\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth > 475\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"col-md-8\">\r\n <div class=\"row\">\r\n <ng-container *ngTemplateOutlet=\"foldersVertical\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth < 475\" class=\"d-flex justify-content-center\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <hr *ngIf=\"content?.displayBranding\">\r\n <div *ngIf=\"content?.displayBranding\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #Footer2>\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-md-3\">\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"descSection\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth > 475\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"col-md-9\">\r\n <div class=\"row\">\r\n <ng-container *ngTemplateOutlet=\"pagesHorizontal\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth < 475\" class=\"d-flex justify-content-center\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <hr *ngIf=\"content?.displayBranding\">\r\n <div *ngIf=\"content?.displayBranding\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #Footer3>\r\n <div class=\"row\" [class.align-items-start]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"foldersVertical\"></ng-container>\r\n </div>\r\n <hr>\r\n <div class=\"row justify-content-between\">\r\n <div class=\"col-md-4\" [class.w-30]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-center align-items-start\" *ngIf=\"content?.socialLinks?.display\"\r\n [class.w-30]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-end\" *ngIf=\"content?.displayBranding\" [class.w-30]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n</ng-template>\r\n\r\n<ng-template #Footer4>\r\n <div class=\"row align-items-center\">\r\n <ng-container *ngTemplateOutlet=\"pagesHorizontal\"></ng-container>\r\n </div>\r\n <hr>\r\n <div class=\"row justify-content-between\">\r\n <div class=\"col-md-4\">\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-center align-items-start\" *ngIf=\"content?.socialLinks?.display\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-end\" *ngIf=\"content?.displayBranding\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n</ng-template>\r\n\r\n<ng-template #logoSection>\r\n <div class=\"d-flex\" [class.justify-content-center]=\"screenWidth < 475\">\r\n <div class=\"d-flex gap-3 align-items-lg-center cursor-pointer mb-4\"\r\n *ngIf=\"!content?.logo?.isImage || !content?.logo?.image?.url\">\r\n <div *ngIf=\"content?.logo?.text?.isIcon && content?.logo?.text?.url\">\r\n <img loading=\"lazy\" [src]=\"content?.logo?.text?.url\" alt=\"logo\" [width]=\"content?.logo?.size\" loading=\"lazy\">\r\n </div>\r\n <div class=\"heading-small\" *ngIf=\"content?.logo?.text?.isText\" [simpoColor]=\"style?.background?.color\">\r\n <b [ngStyle]=\"{'font-family': content?.logo?.text?.fontFamily}\">{{content?.siteName?.value}}</b>\r\n </div>\r\n </div>\r\n <div class=\"d-flex gap-3 align-items-lg-center cursor-pointer mb-4\"\r\n *ngIf=\"content?.logo?.isImage && content?.logo?.image?.url\">\r\n <img loading=\"lazy\" [src]=\"content?.logo?.image?.url\" alt=\"logo\"\r\n [style.width.%]=\"screenWidth > 475 || (content?.logo?.size || 10) < 50 ? content?.logo?.size : ((content?.logo?.size || 10) - 10)\"\r\n loading=\"lazy\">\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #descSection>\r\n <simpo-text-editor [value]=\"content?.additionalDetails?.value || ''\" [editable]=\"edit || false\"></simpo-text-editor>\r\n <!-- <div class=\"description\" [innerHTML]=\"content?.additionalDetails?.value ?? '' | sanitizeHtml\"></div> -->\r\n</ng-template>\r\n\r\n<ng-template #socialIcons>\r\n <div class=\"d-flex align-items-start align-items-lg-center flex-column flex-lg-row gap-lg-0 gap-3\"\r\n [ngClass]=\"content?.socialLinks?.display ? 'justify-content-between' : 'justify-content-end'\">\r\n <div class=\"d-flex mt-0\" *ngIf=\"content?.socialLinks?.display\">\r\n <ng-container *ngFor=\"let item of content?.socialLinks?.channels\">\r\n <div class=\"icons\">\r\n <simpo-socia-icons [iconColor]=\"data?.styles?.background?.accentColor\" [socialIconData]=\"item\"\r\n [color]=\"style?.background?.color\" [sectionId]=\"data?.id\"></simpo-socia-icons>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #branding>\r\n <div class=\"heading-small text-center branding-text\">Made with <a class=\"branding-text fw-600\"\r\n href=\"https://simpo.ai\" target=\"_blank\">Simpo</a></div>\r\n</ng-template>\r\n\r\n<ng-template #pagesHorizontal>\r\n <div class=\"col-md-3 mb-3 pageType\" *ngFor=\"let page of pages\" [class.w-50]=\"screenWidth < 475\" [class.text-center]=\"screenWidth < 475\" (click)=\"redirectToPage(page)\">\r\n {{page.pageName}}\r\n </div>\r\n</ng-template>\r\n\r\n<!-- <ng-template #pagesVertical>\r\n <div class=\"page-container col-md-3 mb-3\" [class.w-50]=\"screenWidth < 475\">\r\n <div class=\"pageType mb-3\">{{pageLink}}</div>\r\n <ng-container *ngFor=\"let page of pages\">\r\n <div class=\"pages mb-2\" (click)=\"redirectToPage(page)\">{{page?.pageName}}</div>\r\n </ng-container>\r\n </div>\r\n</ng-template> -->\r\n\r\n<ng-template #foldersVertical>\r\n <div class=\"page-container col-md-3 mb-3\" *ngFor=\"let folder of content?.folder;let folderIndex = index\" [class.w-50]=\"screenWidth < 475\">\r\n <simpo-text-editor [value]=\"folder.label\" [editable]=\"edit || false\"></simpo-text-editor>\r\n <div class=\"mt-15\">\r\n <ng-container *ngFor=\"let page of folder.links;let linkIndex = index\">\r\n <div class=\"folder-page\" [ngClass]=\"{'hoverWhenEditable' : edit}\">\r\n <div class=\"pages mb-2\" (click)=\"redirectTo(page)\">{{page.label}}</div>\r\n <mat-icon (click)=\"deleteFolderLinks(folderIndex, linkIndex)\">delete</mat-icon>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngTemplateOutlet=\"edit ? addLinks : null; context: {data: folderIndex}\"></ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #addLinks let-folderIndex=\"data\">\r\n <div class=\"addLinks\" (click)=\"createNewLink(folderIndex)\">\r\n <mat-icon>add</mat-icon>\r\n </div>\r\n</ng-template>\r\n", styles: [".total-container{height:auto;position:relative}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.pageType{font-size:16px;font-weight:600;line-height:22px}.pages{font-size:16px;font-weight:400;line-height:22px;cursor:pointer}.branding-text{font-size:16px;font-weight:400;line-height:22px;text-decoration:unset}.fw-600{font-weight:600!important}.w-50{width:50%!important}.w-30{width:30%!important}.align-items-start{align-items:start!important}.mt-15{margin-top:15px}.folder-page{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.folder-page mat-icon{font-size:17px;display:flex;align-items:center;justify-content:center;display:none}.hoverWhenEditable:hover{border:1px solid #E9E9E9;border-radius:5px;cursor:pointer}.hoverWhenEditable:hover mat-icon{display:inline}.addLinks{padding-bottom:8px;padding-top:9px;border:1px dashed;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:5px}.addLinks mat-icon{border:1px solid rgb(219,223,225);display:flex;border-radius:100%;align-items:center;justify-content:center;font-size:16px;color:#dbdfe1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: ColorDirective, selector: "[simpoColor]", inputs: ["simpoColor"] }, { kind: "component", type: SociaIconsComponent, selector: "simpo-socia-icons", inputs: ["socialIconData", "color", "sectionId", "iconColor"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i5.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i6.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type:
108
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: FooterComponent, isStandalone: true, selector: "simpo-footer", inputs: { data: "data", index: "index", edit: "edit", delete: "delete" }, host: { listeners: { "window:resize": "getScreenSize($event)" } }, usesInheritance: true, ngImport: i0, template: "<section class=\"total-container\" simpoHover\r\n(hovering)=\"showEditTabs($event)\"[spacingHorizontal]=\"stylesLayout\" [simpoBackground]=\"style?.background\" [simpoLayout]=\"style?.layout\" [id]=\"data?.id\">\r\n <div>\r\n <ng-container *ngIf=\"style?.footerType == 'Footer1'\">\r\n <ng-container *ngTemplateOutlet=\"Footer1\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"style?.footerType == 'Footer2'\">\r\n <ng-container *ngTemplateOutlet=\"Footer2\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"style?.footerType == 'Footer3'\">\r\n <ng-container *ngTemplateOutlet=\"Footer3\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"style?.footerType == 'Footer4'\">\r\n <ng-container *ngTemplateOutlet=\"Footer4\"></ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n\r\n</section>\r\n\r\n<ng-template #Footer1>\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-md-4\">\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"descSection\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth > 475\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"col-md-8\">\r\n <div class=\"row\">\r\n <ng-container *ngTemplateOutlet=\"foldersVertical\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth < 475\" class=\"d-flex justify-content-center\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <hr *ngIf=\"content?.displayBranding\">\r\n <div *ngIf=\"content?.displayBranding\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #Footer2>\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-md-3\">\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"descSection\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth > 475\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"col-md-9\">\r\n <div class=\"row\">\r\n <ng-container *ngTemplateOutlet=\"pagesHorizontal\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth < 475\" class=\"d-flex justify-content-center\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <hr *ngIf=\"content?.displayBranding\">\r\n <div *ngIf=\"content?.displayBranding\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #Footer3>\r\n <div class=\"row\" [class.align-items-start]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"foldersVertical\"></ng-container>\r\n </div>\r\n <hr>\r\n <div class=\"row justify-content-between\">\r\n <div class=\"col-md-4\" [class.w-30]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-center align-items-start\" *ngIf=\"content?.socialLinks?.display\"\r\n [class.w-30]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-end\" *ngIf=\"content?.displayBranding\" [class.w-30]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n</ng-template>\r\n\r\n<ng-template #Footer4>\r\n <div class=\"row align-items-center\">\r\n <ng-container *ngTemplateOutlet=\"pagesHorizontal\"></ng-container>\r\n </div>\r\n <hr>\r\n <div class=\"row justify-content-between\">\r\n <div class=\"col-md-4\">\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-center align-items-start\" *ngIf=\"content?.socialLinks?.display\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-end\" *ngIf=\"content?.displayBranding\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n</ng-template>\r\n\r\n<ng-template #logoSection>\r\n <div class=\"d-flex\" [class.justify-content-center]=\"screenWidth < 475\">\r\n <div class=\"d-flex gap-3 align-items-lg-center cursor-pointer mb-4\"\r\n *ngIf=\"!content?.logo?.isImage || !content?.logo?.image?.url\">\r\n <div *ngIf=\"content?.logo?.text?.isIcon && content?.logo?.text?.url\">\r\n <img loading=\"lazy\" [src]=\"content?.logo?.text?.url\" alt=\"logo\" [width]=\"content?.logo?.size\" loading=\"lazy\">\r\n </div>\r\n <div class=\"heading-small\" *ngIf=\"content?.logo?.text?.isText\" [simpoColor]=\"style?.background?.color\">\r\n <b [ngStyle]=\"{'font-family': content?.logo?.text?.fontFamily}\">{{content?.siteName?.value}}</b>\r\n </div>\r\n </div>\r\n <div class=\"d-flex gap-3 align-items-lg-center cursor-pointer mb-4\"\r\n *ngIf=\"content?.logo?.isImage && content?.logo?.image?.url\">\r\n <img loading=\"lazy\" [src]=\"content?.logo?.image?.url\" alt=\"logo\"\r\n [style.width.%]=\"screenWidth > 475 || (content?.logo?.size || 10) < 50 ? content?.logo?.size : ((content?.logo?.size || 10) - 10)\"\r\n loading=\"lazy\">\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #descSection>\r\n <ng-container *ngIf = \"content?.additionalDetails as textItem\" >\r\n <simpo-text-editor [(value)]=\"textItem.value \" [editable]=\"edit || false\" [sectionId]=\"data?.id\" [label]=\"content?.additionalDetails?.label || ''\"></simpo-text-editor>\r\n </ng-container> <!-- <div class=\"description\" [innerHTML]=\"content?.additionalDetails?.value ?? '' | sanitizeHtml\"></div> -->\r\n</ng-template>\r\n\r\n<ng-template #socialIcons>\r\n <div class=\"d-flex align-items-start align-items-lg-center flex-column flex-lg-row gap-lg-0 gap-3\"\r\n [ngClass]=\"content?.socialLinks?.display ? 'justify-content-between' : 'justify-content-end'\">\r\n <div class=\"d-flex mt-0\" *ngIf=\"content?.socialLinks?.display\">\r\n <ng-container *ngFor=\"let item of content?.socialLinks?.channels\">\r\n <div class=\"icons\">\r\n <simpo-socia-icons [iconColor]=\"data?.styles?.background?.accentColor\" [socialIconData]=\"item\"\r\n [color]=\"style?.background?.color\" [sectionId]=\"data?.id\"></simpo-socia-icons>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #branding>\r\n <div class=\"heading-small text-center branding-text\">Made with <a class=\"branding-text fw-600\"\r\n href=\"https://simpo.ai\" target=\"_blank\">Simpo</a></div>\r\n</ng-template>\r\n\r\n<ng-template #pagesHorizontal>\r\n <div class=\"col-md-3 mb-3 pageType\" *ngFor=\"let page of pages\" [class.w-50]=\"screenWidth < 475\" [class.text-center]=\"screenWidth < 475\" (click)=\"redirectToPage(page)\">\r\n {{page.pageName}}\r\n </div>\r\n</ng-template>\r\n\r\n<!-- <ng-template #pagesVertical>\r\n <div class=\"page-container col-md-3 mb-3\" [class.w-50]=\"screenWidth < 475\">\r\n <div class=\"pageType mb-3\">{{pageLink}}</div>\r\n <ng-container *ngFor=\"let page of pages\">\r\n <div class=\"pages mb-2\" (click)=\"redirectToPage(page)\">{{page?.pageName}}</div>\r\n </ng-container>\r\n </div>\r\n</ng-template> -->\r\n\r\n<ng-template #foldersVertical>\r\n <div class=\"page-container col-md-3 mb-3\" *ngFor=\"let folder of content?.folder;let folderIndex = index\" [class.w-50]=\"screenWidth < 475\">\r\n <simpo-text-editor [(value)]=\"folder.label\" [editable]=\"edit || false\" [sectionId]=\"data?.id\"></simpo-text-editor>\r\n <div class=\"mt-15\">\r\n <ng-container *ngFor=\"let page of folder.links;let linkIndex = index\">\r\n <div class=\"folder-page\" [ngClass]=\"{'hoverWhenEditable' : edit}\">\r\n <div class=\"pages mb-2\" (click)=\"redirectTo(page)\">{{page.label}}</div>\r\n <mat-icon (click)=\"deleteFolderLinks(folderIndex, linkIndex)\">delete</mat-icon>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngTemplateOutlet=\"edit ? addLinks : null; context: {data: folderIndex}\"></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"col-md-3\" *ngIf=\"(content?.folder?.length || 0) < 4\" [class.w-50]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"edit ? addFolder : null\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #addLinks let-folderIndex=\"data\">\r\n <div class=\"addLinks\" (click)=\"createNewLink(folderIndex)\">\r\n <mat-icon>add</mat-icon>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #addFolder>\r\n <div class=\"addLinks h-100\" (click)=\"createNewFolder()\">\r\n <mat-icon>add</mat-icon>\r\n </div>\r\n</ng-template>\r\n", styles: [".total-container{height:auto;position:relative}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.pageType{font-size:16px;font-weight:600;line-height:22px}.pages{font-size:16px;font-weight:400;line-height:22px;cursor:pointer}.branding-text{font-size:16px;font-weight:400;line-height:22px;text-decoration:unset}.fw-600{font-weight:600!important}.w-50{width:50%!important}.w-30{width:30%!important}.align-items-start{align-items:start!important}.mt-15{margin-top:15px}.folder-page{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.folder-page mat-icon{font-size:17px;display:flex;align-items:center;justify-content:center;display:none}.hoverWhenEditable:hover{border:1px solid #E9E9E9;border-radius:5px;cursor:pointer}.hoverWhenEditable:hover mat-icon{display:inline}.addLinks{padding-bottom:8px;padding-top:9px;border:1px dashed;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:5px}.addLinks mat-icon{border:1px solid rgb(219,223,225);display:flex;border-radius:100%;align-items:center;justify-content:center;font-size:16px;color:#dbdfe1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: ColorDirective, selector: "[simpoColor]", inputs: ["simpoColor"] }, { kind: "component", type: SociaIconsComponent, selector: "simpo-socia-icons", inputs: ["socialIconData", "color", "sectionId", "iconColor"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i5.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i6.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type:
95
109
  //directives
96
- SpacingHorizontalDirective, selector: "[spacingHorizontal]", inputs: ["spacingHorizontal", "isHeader"] }, { kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "component", type: TextEditorComponent, selector: "simpo-text-editor", inputs: ["value", "editable"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }] }); }
110
+ SpacingHorizontalDirective, selector: "[spacingHorizontal]", inputs: ["spacingHorizontal", "isHeader"] }, { kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "component", type: TextEditorComponent, selector: "simpo-text-editor", inputs: ["value", "editable", "sectionId", "label"], outputs: ["valueChange"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }] }); }
97
111
  }
98
112
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: FooterComponent, decorators: [{
99
113
  type: Component,
@@ -112,7 +126,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
112
126
  ContentFitDirective,
113
127
  TextEditorComponent,
114
128
  HoverDirective
115
- ], template: "<section class=\"total-container\" simpoHover\r\n(hovering)=\"showEditTabs($event)\"[spacingHorizontal]=\"stylesLayout\" [simpoBackground]=\"style?.background\" [simpoLayout]=\"style?.layout\" [id]=\"data?.id\">\r\n <div>\r\n <ng-container *ngIf=\"style?.footerType == 'Footer1'\">\r\n <ng-container *ngTemplateOutlet=\"Footer1\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"style?.footerType == 'Footer2'\">\r\n <ng-container *ngTemplateOutlet=\"Footer2\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"style?.footerType == 'Footer3'\">\r\n <ng-container *ngTemplateOutlet=\"Footer3\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"style?.footerType == 'Footer4'\">\r\n <ng-container *ngTemplateOutlet=\"Footer4\"></ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n\r\n</section>\r\n\r\n<ng-template #Footer1>\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-md-4\">\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"descSection\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth > 475\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"col-md-8\">\r\n <div class=\"row\">\r\n <ng-container *ngTemplateOutlet=\"foldersVertical\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth < 475\" class=\"d-flex justify-content-center\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <hr *ngIf=\"content?.displayBranding\">\r\n <div *ngIf=\"content?.displayBranding\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #Footer2>\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-md-3\">\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"descSection\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth > 475\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"col-md-9\">\r\n <div class=\"row\">\r\n <ng-container *ngTemplateOutlet=\"pagesHorizontal\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth < 475\" class=\"d-flex justify-content-center\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <hr *ngIf=\"content?.displayBranding\">\r\n <div *ngIf=\"content?.displayBranding\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #Footer3>\r\n <div class=\"row\" [class.align-items-start]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"foldersVertical\"></ng-container>\r\n </div>\r\n <hr>\r\n <div class=\"row justify-content-between\">\r\n <div class=\"col-md-4\" [class.w-30]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-center align-items-start\" *ngIf=\"content?.socialLinks?.display\"\r\n [class.w-30]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-end\" *ngIf=\"content?.displayBranding\" [class.w-30]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n</ng-template>\r\n\r\n<ng-template #Footer4>\r\n <div class=\"row align-items-center\">\r\n <ng-container *ngTemplateOutlet=\"pagesHorizontal\"></ng-container>\r\n </div>\r\n <hr>\r\n <div class=\"row justify-content-between\">\r\n <div class=\"col-md-4\">\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-center align-items-start\" *ngIf=\"content?.socialLinks?.display\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-end\" *ngIf=\"content?.displayBranding\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n</ng-template>\r\n\r\n<ng-template #logoSection>\r\n <div class=\"d-flex\" [class.justify-content-center]=\"screenWidth < 475\">\r\n <div class=\"d-flex gap-3 align-items-lg-center cursor-pointer mb-4\"\r\n *ngIf=\"!content?.logo?.isImage || !content?.logo?.image?.url\">\r\n <div *ngIf=\"content?.logo?.text?.isIcon && content?.logo?.text?.url\">\r\n <img loading=\"lazy\" [src]=\"content?.logo?.text?.url\" alt=\"logo\" [width]=\"content?.logo?.size\" loading=\"lazy\">\r\n </div>\r\n <div class=\"heading-small\" *ngIf=\"content?.logo?.text?.isText\" [simpoColor]=\"style?.background?.color\">\r\n <b [ngStyle]=\"{'font-family': content?.logo?.text?.fontFamily}\">{{content?.siteName?.value}}</b>\r\n </div>\r\n </div>\r\n <div class=\"d-flex gap-3 align-items-lg-center cursor-pointer mb-4\"\r\n *ngIf=\"content?.logo?.isImage && content?.logo?.image?.url\">\r\n <img loading=\"lazy\" [src]=\"content?.logo?.image?.url\" alt=\"logo\"\r\n [style.width.%]=\"screenWidth > 475 || (content?.logo?.size || 10) < 50 ? content?.logo?.size : ((content?.logo?.size || 10) - 10)\"\r\n loading=\"lazy\">\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #descSection>\r\n <simpo-text-editor [value]=\"content?.additionalDetails?.value || ''\" [editable]=\"edit || false\"></simpo-text-editor>\r\n <!-- <div class=\"description\" [innerHTML]=\"content?.additionalDetails?.value ?? '' | sanitizeHtml\"></div> -->\r\n</ng-template>\r\n\r\n<ng-template #socialIcons>\r\n <div class=\"d-flex align-items-start align-items-lg-center flex-column flex-lg-row gap-lg-0 gap-3\"\r\n [ngClass]=\"content?.socialLinks?.display ? 'justify-content-between' : 'justify-content-end'\">\r\n <div class=\"d-flex mt-0\" *ngIf=\"content?.socialLinks?.display\">\r\n <ng-container *ngFor=\"let item of content?.socialLinks?.channels\">\r\n <div class=\"icons\">\r\n <simpo-socia-icons [iconColor]=\"data?.styles?.background?.accentColor\" [socialIconData]=\"item\"\r\n [color]=\"style?.background?.color\" [sectionId]=\"data?.id\"></simpo-socia-icons>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #branding>\r\n <div class=\"heading-small text-center branding-text\">Made with <a class=\"branding-text fw-600\"\r\n href=\"https://simpo.ai\" target=\"_blank\">Simpo</a></div>\r\n</ng-template>\r\n\r\n<ng-template #pagesHorizontal>\r\n <div class=\"col-md-3 mb-3 pageType\" *ngFor=\"let page of pages\" [class.w-50]=\"screenWidth < 475\" [class.text-center]=\"screenWidth < 475\" (click)=\"redirectToPage(page)\">\r\n {{page.pageName}}\r\n </div>\r\n</ng-template>\r\n\r\n<!-- <ng-template #pagesVertical>\r\n <div class=\"page-container col-md-3 mb-3\" [class.w-50]=\"screenWidth < 475\">\r\n <div class=\"pageType mb-3\">{{pageLink}}</div>\r\n <ng-container *ngFor=\"let page of pages\">\r\n <div class=\"pages mb-2\" (click)=\"redirectToPage(page)\">{{page?.pageName}}</div>\r\n </ng-container>\r\n </div>\r\n</ng-template> -->\r\n\r\n<ng-template #foldersVertical>\r\n <div class=\"page-container col-md-3 mb-3\" *ngFor=\"let folder of content?.folder;let folderIndex = index\" [class.w-50]=\"screenWidth < 475\">\r\n <simpo-text-editor [value]=\"folder.label\" [editable]=\"edit || false\"></simpo-text-editor>\r\n <div class=\"mt-15\">\r\n <ng-container *ngFor=\"let page of folder.links;let linkIndex = index\">\r\n <div class=\"folder-page\" [ngClass]=\"{'hoverWhenEditable' : edit}\">\r\n <div class=\"pages mb-2\" (click)=\"redirectTo(page)\">{{page.label}}</div>\r\n <mat-icon (click)=\"deleteFolderLinks(folderIndex, linkIndex)\">delete</mat-icon>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngTemplateOutlet=\"edit ? addLinks : null; context: {data: folderIndex}\"></ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #addLinks let-folderIndex=\"data\">\r\n <div class=\"addLinks\" (click)=\"createNewLink(folderIndex)\">\r\n <mat-icon>add</mat-icon>\r\n </div>\r\n</ng-template>\r\n", styles: [".total-container{height:auto;position:relative}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.pageType{font-size:16px;font-weight:600;line-height:22px}.pages{font-size:16px;font-weight:400;line-height:22px;cursor:pointer}.branding-text{font-size:16px;font-weight:400;line-height:22px;text-decoration:unset}.fw-600{font-weight:600!important}.w-50{width:50%!important}.w-30{width:30%!important}.align-items-start{align-items:start!important}.mt-15{margin-top:15px}.folder-page{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.folder-page mat-icon{font-size:17px;display:flex;align-items:center;justify-content:center;display:none}.hoverWhenEditable:hover{border:1px solid #E9E9E9;border-radius:5px;cursor:pointer}.hoverWhenEditable:hover mat-icon{display:inline}.addLinks{padding-bottom:8px;padding-top:9px;border:1px dashed;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:5px}.addLinks mat-icon{border:1px solid rgb(219,223,225);display:flex;border-radius:100%;align-items:center;justify-content:center;font-size:16px;color:#dbdfe1}\n"] }]
129
+ ], template: "<section class=\"total-container\" simpoHover\r\n(hovering)=\"showEditTabs($event)\"[spacingHorizontal]=\"stylesLayout\" [simpoBackground]=\"style?.background\" [simpoLayout]=\"style?.layout\" [id]=\"data?.id\">\r\n <div>\r\n <ng-container *ngIf=\"style?.footerType == 'Footer1'\">\r\n <ng-container *ngTemplateOutlet=\"Footer1\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"style?.footerType == 'Footer2'\">\r\n <ng-container *ngTemplateOutlet=\"Footer2\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"style?.footerType == 'Footer3'\">\r\n <ng-container *ngTemplateOutlet=\"Footer3\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"style?.footerType == 'Footer4'\">\r\n <ng-container *ngTemplateOutlet=\"Footer4\"></ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n\r\n</section>\r\n\r\n<ng-template #Footer1>\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-md-4\">\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"descSection\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth > 475\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"col-md-8\">\r\n <div class=\"row\">\r\n <ng-container *ngTemplateOutlet=\"foldersVertical\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth < 475\" class=\"d-flex justify-content-center\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <hr *ngIf=\"content?.displayBranding\">\r\n <div *ngIf=\"content?.displayBranding\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #Footer2>\r\n <div class=\"row align-items-center\">\r\n <div class=\"col-md-3\">\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"descSection\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth > 475\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"col-md-9\">\r\n <div class=\"row\">\r\n <ng-container *ngTemplateOutlet=\"pagesHorizontal\"></ng-container>\r\n </div>\r\n <div *ngIf=\"content?.socialLinks?.display && screenWidth < 475\" class=\"d-flex justify-content-center\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <hr *ngIf=\"content?.displayBranding\">\r\n <div *ngIf=\"content?.displayBranding\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #Footer3>\r\n <div class=\"row\" [class.align-items-start]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"foldersVertical\"></ng-container>\r\n </div>\r\n <hr>\r\n <div class=\"row justify-content-between\">\r\n <div class=\"col-md-4\" [class.w-30]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-center align-items-start\" *ngIf=\"content?.socialLinks?.display\"\r\n [class.w-30]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-end\" *ngIf=\"content?.displayBranding\" [class.w-30]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n</ng-template>\r\n\r\n<ng-template #Footer4>\r\n <div class=\"row align-items-center\">\r\n <ng-container *ngTemplateOutlet=\"pagesHorizontal\"></ng-container>\r\n </div>\r\n <hr>\r\n <div class=\"row justify-content-between\">\r\n <div class=\"col-md-4\">\r\n <ng-container *ngTemplateOutlet=\"logoSection\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-center align-items-start\" *ngIf=\"content?.socialLinks?.display\">\r\n <ng-container *ngTemplateOutlet=\"socialIcons\"></ng-container>\r\n </div>\r\n <div class=\"col-md-4 d-flex justify-content-end\" *ngIf=\"content?.displayBranding\">\r\n <ng-container *ngTemplateOutlet=\"branding\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n</ng-template>\r\n\r\n<ng-template #logoSection>\r\n <div class=\"d-flex\" [class.justify-content-center]=\"screenWidth < 475\">\r\n <div class=\"d-flex gap-3 align-items-lg-center cursor-pointer mb-4\"\r\n *ngIf=\"!content?.logo?.isImage || !content?.logo?.image?.url\">\r\n <div *ngIf=\"content?.logo?.text?.isIcon && content?.logo?.text?.url\">\r\n <img loading=\"lazy\" [src]=\"content?.logo?.text?.url\" alt=\"logo\" [width]=\"content?.logo?.size\" loading=\"lazy\">\r\n </div>\r\n <div class=\"heading-small\" *ngIf=\"content?.logo?.text?.isText\" [simpoColor]=\"style?.background?.color\">\r\n <b [ngStyle]=\"{'font-family': content?.logo?.text?.fontFamily}\">{{content?.siteName?.value}}</b>\r\n </div>\r\n </div>\r\n <div class=\"d-flex gap-3 align-items-lg-center cursor-pointer mb-4\"\r\n *ngIf=\"content?.logo?.isImage && content?.logo?.image?.url\">\r\n <img loading=\"lazy\" [src]=\"content?.logo?.image?.url\" alt=\"logo\"\r\n [style.width.%]=\"screenWidth > 475 || (content?.logo?.size || 10) < 50 ? content?.logo?.size : ((content?.logo?.size || 10) - 10)\"\r\n loading=\"lazy\">\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #descSection>\r\n <ng-container *ngIf = \"content?.additionalDetails as textItem\" >\r\n <simpo-text-editor [(value)]=\"textItem.value \" [editable]=\"edit || false\" [sectionId]=\"data?.id\" [label]=\"content?.additionalDetails?.label || ''\"></simpo-text-editor>\r\n </ng-container> <!-- <div class=\"description\" [innerHTML]=\"content?.additionalDetails?.value ?? '' | sanitizeHtml\"></div> -->\r\n</ng-template>\r\n\r\n<ng-template #socialIcons>\r\n <div class=\"d-flex align-items-start align-items-lg-center flex-column flex-lg-row gap-lg-0 gap-3\"\r\n [ngClass]=\"content?.socialLinks?.display ? 'justify-content-between' : 'justify-content-end'\">\r\n <div class=\"d-flex mt-0\" *ngIf=\"content?.socialLinks?.display\">\r\n <ng-container *ngFor=\"let item of content?.socialLinks?.channels\">\r\n <div class=\"icons\">\r\n <simpo-socia-icons [iconColor]=\"data?.styles?.background?.accentColor\" [socialIconData]=\"item\"\r\n [color]=\"style?.background?.color\" [sectionId]=\"data?.id\"></simpo-socia-icons>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #branding>\r\n <div class=\"heading-small text-center branding-text\">Made with <a class=\"branding-text fw-600\"\r\n href=\"https://simpo.ai\" target=\"_blank\">Simpo</a></div>\r\n</ng-template>\r\n\r\n<ng-template #pagesHorizontal>\r\n <div class=\"col-md-3 mb-3 pageType\" *ngFor=\"let page of pages\" [class.w-50]=\"screenWidth < 475\" [class.text-center]=\"screenWidth < 475\" (click)=\"redirectToPage(page)\">\r\n {{page.pageName}}\r\n </div>\r\n</ng-template>\r\n\r\n<!-- <ng-template #pagesVertical>\r\n <div class=\"page-container col-md-3 mb-3\" [class.w-50]=\"screenWidth < 475\">\r\n <div class=\"pageType mb-3\">{{pageLink}}</div>\r\n <ng-container *ngFor=\"let page of pages\">\r\n <div class=\"pages mb-2\" (click)=\"redirectToPage(page)\">{{page?.pageName}}</div>\r\n </ng-container>\r\n </div>\r\n</ng-template> -->\r\n\r\n<ng-template #foldersVertical>\r\n <div class=\"page-container col-md-3 mb-3\" *ngFor=\"let folder of content?.folder;let folderIndex = index\" [class.w-50]=\"screenWidth < 475\">\r\n <simpo-text-editor [(value)]=\"folder.label\" [editable]=\"edit || false\" [sectionId]=\"data?.id\"></simpo-text-editor>\r\n <div class=\"mt-15\">\r\n <ng-container *ngFor=\"let page of folder.links;let linkIndex = index\">\r\n <div class=\"folder-page\" [ngClass]=\"{'hoverWhenEditable' : edit}\">\r\n <div class=\"pages mb-2\" (click)=\"redirectTo(page)\">{{page.label}}</div>\r\n <mat-icon (click)=\"deleteFolderLinks(folderIndex, linkIndex)\">delete</mat-icon>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngTemplateOutlet=\"edit ? addLinks : null; context: {data: folderIndex}\"></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"col-md-3\" *ngIf=\"(content?.folder?.length || 0) < 4\" [class.w-50]=\"screenWidth < 475\">\r\n <ng-container *ngTemplateOutlet=\"edit ? addFolder : null\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #addLinks let-folderIndex=\"data\">\r\n <div class=\"addLinks\" (click)=\"createNewLink(folderIndex)\">\r\n <mat-icon>add</mat-icon>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #addFolder>\r\n <div class=\"addLinks h-100\" (click)=\"createNewFolder()\">\r\n <mat-icon>add</mat-icon>\r\n </div>\r\n</ng-template>\r\n", styles: [".total-container{height:auto;position:relative}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.pageType{font-size:16px;font-weight:600;line-height:22px}.pages{font-size:16px;font-weight:400;line-height:22px;cursor:pointer}.branding-text{font-size:16px;font-weight:400;line-height:22px;text-decoration:unset}.fw-600{font-weight:600!important}.w-50{width:50%!important}.w-30{width:30%!important}.align-items-start{align-items:start!important}.mt-15{margin-top:15px}.folder-page{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.folder-page mat-icon{font-size:17px;display:flex;align-items:center;justify-content:center;display:none}.hoverWhenEditable:hover{border:1px solid #E9E9E9;border-radius:5px;cursor:pointer}.hoverWhenEditable:hover mat-icon{display:inline}.addLinks{padding-bottom:8px;padding-top:9px;border:1px dashed;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:5px}.addLinks mat-icon{border:1px solid rgb(219,223,225);display:flex;border-radius:100%;align-items:center;justify-content:center;font-size:16px;color:#dbdfe1}\n"] }]
116
130
  }], ctorParameters: () => [{ type: i1.EventsService }, { type: i2.RestService }, { type: i3.MatDialog }], propDecorators: { data: [{
117
131
  type: Input
118
132
  }], index: [{
@@ -125,4 +139,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
125
139
  type: HostListener,
126
140
  args: ['window:resize', ['$event']]
127
141
  }] } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFVLEtBQUssRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFHNUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDekYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3ZGLE9BQU8sV0FBVyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFh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b0I7d0JBQ3BCLGFBQWE7d0JBQ2IsZUFBZTt3QkFFZixZQUFZO3dCQUNaLDBCQUEwQjt3QkFDMUIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsY0FBYztxQkFDZjtvSUFLUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBMkJOLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQsIE5nWm9uZSwgUExBVEZPUk1fSUQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvb3RlckNvbnRlbnRNb2RlbCwgRm9vdGVyU2VjdGlvbk1vZGVsLCBGb290ZXJTdHlsZXNNb2RlbCB9IGZyb20gJy4vZm9vdGVyLm1vZGFsJztcclxuaW1wb3J0IHsgQnV0dG9uLCBMYXlPdXRNb2RlbCB9IGZyb20gJy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XHJcbmltcG9ydCB7IENvbG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbG9yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTb2NpYUljb25zQ29tcG9uZW50IH0gZnJvbSAnLi8uLi8uLi9lbGVtZW50cy9zb2NpYS1pY29ucy9zb2NpYS1pY29ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTYW5pdGl6ZUh0bWxQaXBlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2FuaXRpemVIdG1sJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNwYWNpbmdBcm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvc3BhY2luZy1hcm91bmQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3NwYWNpbmctaG9yaXpvbnRhbC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFRleHRFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgQmFzZVNlY3Rpb24gZnJvbSAnLi4vQmFzZVNlY3Rpb24nO1xyXG5pbXBvcnQgeyBIb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9ob3Zlci1lbGVtZW50LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNpbXBvQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9pbmRleCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBMaW5rRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvbGluay1lZGl0b3IvbGluay1lZGl0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLWZvb3RlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBDb2xvckRpcmVjdGl2ZSxcclxuICAgIFNvY2lhSWNvbnNDb21wb25lbnQsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFNhbml0aXplSHRtbFBpcGUsXHJcbiAgICBTaW1wb0NvbXBvbmVudE1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXREaWFsb2dNb2R1bGUsXHJcblxyXG4gICAgLy9kaXJlY3RpdmVzXHJcbiAgICBTcGFjaW5nSG9yaXpvbnRhbERpcmVjdGl2ZSxcclxuICAgIEJhY2tncm91bmREaXJlY3RpdmUsXHJcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxyXG4gICAgVGV4dEVkaXRvckNvbXBvbmVudCxcclxuICAgIEhvdmVyRGlyZWN0aXZlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9vdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZm9vdGVyLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb290ZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiB7XHJcbiAgQElucHV0KCkgZGF0YT86IEZvb3RlclNlY3Rpb25Nb2RlbDtcclxuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcclxuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgZGVsZXRlPyA9IGZhbHNlO1xyXG5cclxuICBjb250ZW50PzogRm9vdGVyQ29udGVudE1vZGVsO1xyXG4gIHN0eWxlPzogRm9vdGVyU3R5bGVzTW9kZWw7XHJcbiAgbGlua0VkaXRvclN1YnNjcmlwdGlvbj8gOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGZvb3RlclR5cGU6IHN0cmluZyA9IFwiMVwiO1xyXG4gIHNjcmVlbldpZHRoOiBudW1iZXIgPSA0NzU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2V2ZW50U2VydmljZTogRXZlbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtYXREaWFsb2c6IE1hdERpYWxvZykge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMuZ2V0U2NyZWVuU2l6ZSgpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnN0eWxlID0gdGhpcy5kYXRhPy5zdHlsZXM7XHJcbiAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLmRhdGE/LmNvbnRlbnQ7XHJcbiAgICB0aGlzLmdldFBhZ2VzKClcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCl7XHJcbiAgICB0aGlzLmxpbmtFZGl0b3JTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKClcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIGdldFNjcmVlblNpemUoZXZlbnQ/OiBudW1iZXIpIHtcclxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICB0aGlzLnNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgc3R5bGVzTGF5b3V0KCkge1xyXG4gICAgcmV0dXJuIHsgLi4udGhpcy5zdHlsZT8ubGF5b3V0IH0gYXMgTGF5T3V0TW9kZWw7XHJcbiAgfVxyXG5cclxuICBwYWdlTGluazogc3RyaW5nID0gXCJQYWdlc1wiXHJcbiAgcGFnZXM6IGFueSA9IFtdXHJcblxyXG4gIGRlbGV0ZUZvbGRlckxpbmtzKGZvbGRlckluZGV4OiBudW1iZXIsIGxpbmtJbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmNvbnRlbnQ/LmZvbGRlcltmb2xkZXJJbmRleF0ubGlua3Muc3BsaWNlKGxpbmtJbmRleCwgMSk7XHJcbiAgICBpZiAoKHRoaXMuY29udGVudD8uZm9sZGVyPy5bZm9sZGVySW5kZXhdPy5saW5rcz8ubGVuZ3RoIHx8IDApIDw9IDApIHtcclxuICAgICAgdGhpcy5jb250ZW50Py5mb2xkZXIuc3BsaWNlKGZvbGRlckluZGV4LCAxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGVkaXRMaW5rcygpIHtcclxuICAgIGNvbnNvbGUubG9nKCdMaW5rIEVkaXQgU3VjY2Vzc2Z1bGx5Jyk7XHJcbiAgfVxyXG5cclxuICByZWRpcmVjdFRvKGxpbms6IEJ1dHRvbikge1xyXG4gICAgaWYgKHRoaXMuZWRpdCkge1xyXG4gICAgICB0aGlzLm1hdERpYWxvZy5vcGVuKExpbmtFZGl0b3JDb21wb25lbnQsIHsgcGFuZWxDbGFzczogJ2xpbmstZWRpdG9yJywgZGF0YTogeyBsaW5rRGF0YTogbGluayB9IH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLl9ldmVudFNlcnZpY2UuYnV0dG9uUmVkaXJlY3Rpb24uZW1pdCh7IGRhdGE6IGxpbmsgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRQYWdlcygpIHtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0VGVtcGxhdGUoKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMucGFnZXMgPSByZXMuZGF0YVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHJlZGlyZWN0VG9QYWdlKHBhZ2VEYXRhOiBhbnkpIHtcclxuICAgIGxldCBkYXRhID0ge1xyXG4gICAgICBsYWJlbCA6IHBhZ2VEYXRhLnBhZ2VOYW1lLFxyXG4gICAgICByZWRpcmVjdGlvblVybDpwYWdlRGF0YS5wYXRoLFxyXG4gICAgICBwYWdlSWQ6IHBhZ2VEYXRhLmlkLFxyXG4gICAgICBzdGF0dXM6IHRydWUsXHJcbiAgICB9XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UucGFnZVJlZGlyZWN0aW9uQnV0dG9uLmVtaXQoeyBkYXRhOiBkYXRhIH0pXHJcbiAgfVxyXG5cclxuICBjcmVhdGVOZXdMaW5rKGZvbGRlckluZGV4OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGVkaXRvckNvbXBvbmVudCA9IHRoaXMubWF0RGlhbG9nLm9wZW4oTGlua0VkaXRvckNvbXBvbmVudCwgeyBwYW5lbENsYXNzOiAnbGluay1lZGl0b3InIH0pO1xyXG4gICAgdGhpcy5saW5rRWRpdG9yU3Vic2NyaXB0aW9uID0gZWRpdG9yQ29tcG9uZW50LmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzLmxpbmspIHtcclxuICAgICAgICB0aGlzLmNvbnRlbnQ/LmZvbGRlcltmb2xkZXJJbmRleF0ubGlua3MucHVzaChyZXMubGluayk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbiIsIjxzZWN0aW9uIGNsYXNzPVwidG90YWwtY29udGFpbmVyXCIgc2ltcG9Ib3ZlclxyXG4oaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIltzcGFjaW5nSG9yaXpvbnRhbF09XCJzdHlsZXNMYXlvdXRcIiBbc2ltcG9CYWNrZ3JvdW5kXT1cInN0eWxlPy5iYWNrZ3JvdW5kXCIgW3NpbXBvTGF5b3V0XT1cInN0eWxlPy5sYXlvdXRcIiBbaWRdPVwiZGF0YT8uaWRcIj5cclxuICA8ZGl2PlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5mb290ZXJUeXBlID09ICdGb290ZXIxJ1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiRm9vdGVyMVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3R5bGU/LmZvb3RlclR5cGUgPT0gJ0Zvb3RlcjInXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJGb290ZXIyXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZT8uZm9vdGVyVHlwZSA9PSAnRm9vdGVyMydcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIkZvb3RlcjNcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5mb290ZXJUeXBlID09ICdGb290ZXI0J1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiRm9vdGVyNFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cclxuICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XHJcbiAgICA8c2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiPjwvc2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQ+XHJcbiAgPC9kaXY+XHJcblxyXG48L3NlY3Rpb24+XHJcblxyXG48bmctdGVtcGxhdGUgI0Zvb3RlcjE+XHJcbiAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2dvU2VjdGlvblwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGVzY1NlY3Rpb25cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJjb250ZW50Py5zb2NpYWxMaW5rcz8uZGlzcGxheSAmJiBzY3JlZW5XaWR0aCA+IDQ3NVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb2NpYWxJY29uc1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC04XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9sZGVyc1ZlcnRpY2FsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udGVudD8uc29jaWFsTGlua3M/LmRpc3BsYXkgJiYgc2NyZWVuV2lkdGggPCA0NzVcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvY2lhbEljb25zXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGhyICpuZ0lmPVwiY29udGVudD8uZGlzcGxheUJyYW5kaW5nXCI+XHJcbiAgPGRpdiAqbmdJZj1cImNvbnRlbnQ/LmRpc3BsYXlCcmFuZGluZ1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJyYW5kaW5nXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI0Zvb3RlcjI+XHJcbiAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2dvU2VjdGlvblwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGVzY1NlY3Rpb25cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJjb250ZW50Py5zb2NpYWxMaW5rcz8uZGlzcGxheSAmJiBzY3JlZW5XaWR0aCA+IDQ3NVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb2NpYWxJY29uc1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC05XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFnZXNIb3Jpem9udGFsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udGVudD8uc29jaWFsTGlua3M/LmRpc3BsYXkgJiYgc2NyZWVuV2lkdGggPCA0NzVcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvY2lhbEljb25zXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGhyICpuZ0lmPVwiY29udGVudD8uZGlzcGxheUJyYW5kaW5nXCI+XHJcbiAgPGRpdiAqbmdJZj1cImNvbnRlbnQ/LmRpc3BsYXlCcmFuZGluZ1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJyYW5kaW5nXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI0Zvb3RlcjM+XHJcbiAgPGRpdiBjbGFzcz1cInJvd1wiIFtjbGFzcy5hbGlnbi1pdGVtcy1zdGFydF09XCJzY3JlZW5XaWR0aCA8IDQ3NVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZvbGRlcnNWZXJ0aWNhbFwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG4gIDxocj5cclxuICA8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIiBbY2xhc3Mudy0zMF09XCJzY3JlZW5XaWR0aCA8IDQ3NVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9nb1NlY3Rpb25cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLXN0YXJ0XCIgKm5nSWY9XCJjb250ZW50Py5zb2NpYWxMaW5rcz8uZGlzcGxheVwiXHJcbiAgICAgIFtjbGFzcy53LTMwXT1cInNjcmVlbldpZHRoIDwgNDc1XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb2NpYWxJY29uc1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIiAqbmdJZj1cImNvbnRlbnQ/LmRpc3BsYXlCcmFuZGluZ1wiIFtjbGFzcy53LTMwXT1cInNjcmVlbldpZHRoIDwgNDc1XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJicmFuZGluZ1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNGb290ZXI0PlxyXG4gIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFnZXNIb3Jpem9udGFsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbiAgPGhyPlxyXG4gIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9nb1NlY3Rpb25cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLXN0YXJ0XCIgKm5nSWY9XCJjb250ZW50Py5zb2NpYWxMaW5rcz8uZGlzcGxheVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic29jaWFsSWNvbnNcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCIgKm5nSWY9XCJjb250ZW50Py5kaXNwbGF5QnJhbmRpbmdcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJyYW5kaW5nXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2xvZ29TZWN0aW9uPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXhcIiBbY2xhc3MuanVzdGlmeS1jb250ZW50LWNlbnRlcl09XCJzY3JlZW5XaWR0aCA8IDQ3NVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMyBhbGlnbi1pdGVtcy1sZy1jZW50ZXIgY3Vyc29yLXBvaW50ZXIgbWItNFwiXHJcbiAgICAgICpuZ0lmPVwiIWNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgfHwgIWNvbnRlbnQ/LmxvZ28/LmltYWdlPy51cmxcIj5cclxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRlbnQ/LmxvZ28/LnRleHQ/LmlzSWNvbiAmJiBjb250ZW50Py5sb2dvPy50ZXh0Py51cmxcIj5cclxuICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJjb250ZW50Py5sb2dvPy50ZXh0Py51cmxcIiBhbHQ9XCJsb2dvXCIgW3dpZHRoXT1cImNvbnRlbnQ/LmxvZ28/LnNpemVcIiBsb2FkaW5nPVwibGF6eVwiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctc21hbGxcIiAqbmdJZj1cImNvbnRlbnQ/LmxvZ28/LnRleHQ/LmlzVGV4dFwiIFtzaW1wb0NvbG9yXT1cInN0eWxlPy5iYWNrZ3JvdW5kPy5jb2xvclwiPlxyXG4gICAgICAgIDxiIFtuZ1N0eWxlXT1cInsnZm9udC1mYW1pbHknOiBjb250ZW50Py5sb2dvPy50ZXh0Py5mb250RmFtaWx5fVwiPnt7Y29udGVudD8uc2l0ZU5hbWU/LnZhbHVlfX08L2I+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0zIGFsaWduLWl0ZW1zLWxnLWNlbnRlciBjdXJzb3ItcG9pbnRlciBtYi00XCJcclxuICAgICAgKm5nSWY9XCJjb250ZW50Py5sb2dvPy5pc0ltYWdlICYmIGNvbnRlbnQ/LmxvZ28/LmltYWdlPy51cmxcIj5cclxuICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzcmNdPVwiY29udGVudD8ubG9nbz8uaW1hZ2U/LnVybFwiIGFsdD1cImxvZ29cIlxyXG4gICAgICAgIFtzdHlsZS53aWR0aC4lXT1cInNjcmVlbldpZHRoID4gNDc1IHx8IChjb250ZW50Py5sb2dvPy5zaXplIHx8IDEwKSA8IDUwID8gY29udGVudD8ubG9nbz8uc2l6ZSA6ICgoY29udGVudD8ubG9nbz8uc2l6ZSB8fCAxMCkgLSAxMClcIlxyXG4gICAgICAgIGxvYWRpbmc9XCJsYXp5XCI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGVzY1NlY3Rpb24+XHJcbiAgPHNpbXBvLXRleHQtZWRpdG9yIFt2YWx1ZV09XCJjb250ZW50Py5hZGRpdGlvbmFsRGV0YWlscz8udmFsdWUgfHwgJydcIiBbZWRpdGFibGVdPVwiZWRpdCB8fCBmYWxzZVwiPjwvc2ltcG8tdGV4dC1lZGl0b3I+XHJcbiAgPCEtLSA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIiBbaW5uZXJIVE1MXT1cImNvbnRlbnQ/LmFkZGl0aW9uYWxEZXRhaWxzPy52YWx1ZSA/PyAnJyB8IHNhbml0aXplSHRtbFwiPjwvZGl2PiAtLT5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjc29jaWFsSWNvbnM+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1zdGFydCBhbGlnbi1pdGVtcy1sZy1jZW50ZXIgZmxleC1jb2x1bW4gZmxleC1sZy1yb3cgZ2FwLWxnLTAgZ2FwLTNcIlxyXG4gICAgW25nQ2xhc3NdPVwiY29udGVudD8uc29jaWFsTGlua3M/LmRpc3BsYXkgPyAnanVzdGlmeS1jb250ZW50LWJldHdlZW4nIDogJ2p1c3RpZnktY29udGVudC1lbmQnXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTBcIiAqbmdJZj1cImNvbnRlbnQ/LnNvY2lhbExpbmtzPy5kaXNwbGF5XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29udGVudD8uc29jaWFsTGlua3M/LmNoYW5uZWxzXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImljb25zXCI+XHJcbiAgICAgICAgICA8c2ltcG8tc29jaWEtaWNvbnMgW2ljb25Db2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgW3NvY2lhbEljb25EYXRhXT1cIml0ZW1cIlxyXG4gICAgICAgICAgICBbY29sb3JdPVwic3R5bGU/LmJhY2tncm91bmQ/LmNvbG9yXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiPjwvc2ltcG8tc29jaWEtaWNvbnM+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2JyYW5kaW5nPlxyXG4gIDxkaXYgY2xhc3M9XCJoZWFkaW5nLXNtYWxsIHRleHQtY2VudGVyICBicmFuZGluZy10ZXh0XCI+TWFkZSB3aXRoIDxhIGNsYXNzPVwiYnJhbmRpbmctdGV4dCBmdy02MDBcIlxyXG4gICAgICBocmVmPVwiaHR0cHM6Ly9zaW1wby5haVwiIHRhcmdldD1cIl9ibGFua1wiPlNpbXBvPC9hPjwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNwYWdlc0hvcml6b250YWw+XHJcbiAgPGRpdiBjbGFzcz1cImNvbC1tZC0zIG1iLTMgcGFnZVR5cGVcIiAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdlc1wiIFtjbGFzcy53LTUwXT1cInNjcmVlbldpZHRoIDwgNDc1XCIgW2NsYXNzLnRleHQtY2VudGVyXT1cInNjcmVlbldpZHRoIDwgNDc1XCIgKGNsaWNrKT1cInJlZGlyZWN0VG9QYWdlKHBhZ2UpXCI+XHJcbiAgICB7e3BhZ2UucGFnZU5hbWV9fVxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPCEtLSA8bmctdGVtcGxhdGUgI3BhZ2VzVmVydGljYWw+XHJcbiAgPGRpdiBjbGFzcz1cInBhZ2UtY29udGFpbmVyIGNvbC1tZC0zIG1iLTNcIiBbY2xhc3Mudy01MF09XCJzY3JlZW5XaWR0aCA8IDQ3NVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInBhZ2VUeXBlIG1iLTNcIj57e3BhZ2VMaW5rfX08L2Rpdj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHBhZ2Ugb2YgcGFnZXNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBhZ2VzIG1iLTJcIiAoY2xpY2spPVwicmVkaXJlY3RUb1BhZ2UocGFnZSlcIj57e3BhZ2U/LnBhZ2VOYW1lfX08L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPiAtLT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZm9sZGVyc1ZlcnRpY2FsPlxyXG4gIDxkaXYgY2xhc3M9XCJwYWdlLWNvbnRhaW5lciBjb2wtbWQtMyBtYi0zXCIgKm5nRm9yPVwibGV0IGZvbGRlciBvZiBjb250ZW50Py5mb2xkZXI7bGV0IGZvbGRlckluZGV4ID0gaW5kZXhcIiBbY2xhc3Mudy01MF09XCJzY3JlZW5XaWR0aCA8IDQ3NVwiPlxyXG4gICAgPHNpbXBvLXRleHQtZWRpdG9yIFt2YWx1ZV09XCJmb2xkZXIubGFiZWxcIiBbZWRpdGFibGVdPVwiZWRpdCB8fCBmYWxzZVwiPjwvc2ltcG8tdGV4dC1lZGl0b3I+XHJcbiAgICA8ZGl2IGNsYXNzPVwibXQtMTVcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcGFnZSBvZiBmb2xkZXIubGlua3M7bGV0IGxpbmtJbmRleCA9IGluZGV4XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvbGRlci1wYWdlXCIgW25nQ2xhc3NdPVwieydob3ZlcldoZW5FZGl0YWJsZScgOiBlZGl0fVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBhZ2VzIG1iLTJcIiAoY2xpY2spPVwicmVkaXJlY3RUbyhwYWdlKVwiPnt7cGFnZS5sYWJlbH19PC9kaXY+XHJcbiAgICAgICAgICA8bWF0LWljb24gKGNsaWNrKT1cImRlbGV0ZUZvbGRlckxpbmtzKGZvbGRlckluZGV4LCBsaW5rSW5kZXgpXCI+ZGVsZXRlPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlZGl0ID8gYWRkTGlua3MgOiBudWxsOyBjb250ZXh0OiB7ZGF0YTogZm9sZGVySW5kZXh9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjYWRkTGlua3MgbGV0LWZvbGRlckluZGV4PVwiZGF0YVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJhZGRMaW5rc1wiIChjbGljayk9XCJjcmVhdGVOZXdMaW5rKGZvbGRlckluZGV4KVwiPlxyXG4gICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvc2VjdGlvbnMvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFVLEtBQUssRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFHNUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDekYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3ZGLE9BQU8sV0FBVyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkQsT0FBTyxFQUFh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QU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTTtvQkFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO2dCQUUzQixJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs4R0F0R1UsZUFBZTtrR0FBZixlQUFlLDRPQy9DNUIsbWhUQWtOQSwycENEdExJLFlBQVksMGxCQUNaLGNBQWMsaUZBQ2QsbUJBQW1CLDRIQUNuQixXQUFXLDhCQUVYLG9CQUFvQixtV0FDcEIsYUFBYSxtTEFDYixlQUFlO2dCQUVmLFlBQVk7Z0JBQ1osMEJBQTBCLDJHQUMxQixtQkFBbUIsMEdBQ25CLG1CQUFtQixtRkFDbkIsbUJBQW1CLDZJQUNuQixjQUFjOzsyRkFLTCxlQUFlO2tCQXZCM0IsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLGFBQWE7d0JBQ2IsZUFBZTt3QkFFZixZQUFZO3dCQUNaLDBCQUEwQjt3QkFDMUIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsY0FBYztxQkFDZjtvSUFLUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBMkJOLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5wdXQsIE5nWm9uZSwgUExBVEZPUk1fSUQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvb3RlckNvbnRlbnRNb2RlbCwgRm9vdGVyU2VjdGlvbk1vZGVsLCBGb290ZXJTdHlsZXNNb2RlbCB9IGZyb20gJy4vZm9vdGVyLm1vZGFsJztcclxuaW1wb3J0IHsgQnV0dG9uLCBMYXlPdXRNb2RlbCB9IGZyb20gJy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XHJcbmltcG9ydCB7IENvbG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbG9yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTb2NpYUljb25zQ29tcG9uZW50IH0gZnJvbSAnLi8uLi8uLi9lbGVtZW50cy9zb2NpYS1pY29ucy9zb2NpYS1pY29ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTYW5pdGl6ZUh0bWxQaXBlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2FuaXRpemVIdG1sJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNwYWNpbmdBcm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvc3BhY2luZy1hcm91bmQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3NwYWNpbmctaG9yaXpvbnRhbC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFRleHRFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lbGVtZW50cy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgQmFzZVNlY3Rpb24gZnJvbSAnLi4vQmFzZVNlY3Rpb24nO1xyXG5pbXBvcnQgeyBIb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9ob3Zlci1lbGVtZW50LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNpbXBvQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9pbmRleCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBMaW5rRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvbGluay1lZGl0b3IvbGluay1lZGl0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLWZvb3RlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBDb2xvckRpcmVjdGl2ZSxcclxuICAgIFNvY2lhSWNvbnNDb21wb25lbnQsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFNhbml0aXplSHRtbFBpcGUsXHJcbiAgICBTaW1wb0NvbXBvbmVudE1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXREaWFsb2dNb2R1bGUsXHJcblxyXG4gICAgLy9kaXJlY3RpdmVzXHJcbiAgICBTcGFjaW5nSG9yaXpvbnRhbERpcmVjdGl2ZSxcclxuICAgIEJhY2tncm91bmREaXJlY3RpdmUsXHJcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxyXG4gICAgVGV4dEVkaXRvckNvbXBvbmVudCxcclxuICAgIEhvdmVyRGlyZWN0aXZlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9vdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZm9vdGVyLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb290ZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiB7XHJcbiAgQElucHV0KCkgZGF0YT86IEZvb3RlclNlY3Rpb25Nb2RlbDtcclxuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcclxuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgZGVsZXRlPyA9IGZhbHNlO1xyXG5cclxuICBjb250ZW50PzogRm9vdGVyQ29udGVudE1vZGVsO1xyXG4gIHN0eWxlPzogRm9vdGVyU3R5bGVzTW9kZWw7XHJcbiAgbGlua0VkaXRvclN1YnNjcmlwdGlvbj8gOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGZvb3RlclR5cGU6IHN0cmluZyA9IFwiMVwiO1xyXG4gIHNjcmVlbldpZHRoOiBudW1iZXIgPSA0NzU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2V2ZW50U2VydmljZTogRXZlbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtYXREaWFsb2c6IE1hdERpYWxvZykge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMuZ2V0U2NyZWVuU2l6ZSgpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnN0eWxlID0gdGhpcy5kYXRhPy5zdHlsZXM7XHJcbiAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLmRhdGE/LmNvbnRlbnQ7XHJcbiAgICB0aGlzLmdldFBhZ2VzKClcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCl7XHJcbiAgICB0aGlzLmxpbmtFZGl0b3JTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKClcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIGdldFNjcmVlblNpemUoZXZlbnQ/OiBudW1iZXIpIHtcclxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICB0aGlzLnNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgc3R5bGVzTGF5b3V0KCkge1xyXG4gICAgcmV0dXJuIHsgLi4udGhpcy5zdHlsZT8ubGF5b3V0IH0gYXMgTGF5T3V0TW9kZWw7XHJcbiAgfVxyXG5cclxuICBwYWdlTGluazogc3RyaW5nID0gXCJQYWdlc1wiXHJcbiAgcGFnZXM6IGFueSA9IFtdXHJcblxyXG4gIGRlbGV0ZUZvbGRlckxpbmtzKGZvbGRlckluZGV4OiBudW1iZXIsIGxpbmtJbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmNvbnRlbnQ/LmZvbGRlcltmb2xkZXJJbmRleF0ubGlua3Muc3BsaWNlKGxpbmtJbmRleCwgMSk7XHJcbiAgICBpZiAoKHRoaXMuY29udGVudD8uZm9sZGVyPy5bZm9sZGVySW5kZXhdPy5saW5rcz8ubGVuZ3RoIHx8IDApIDw9IDApIHtcclxuICAgICAgdGhpcy5jb250ZW50Py5mb2xkZXIuc3BsaWNlKGZvbGRlckluZGV4LCAxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGVkaXRMaW5rcygpIHtcclxuICAgIGNvbnNvbGUubG9nKCdMaW5rIEVkaXQgU3VjY2Vzc2Z1bGx5Jyk7XHJcbiAgfVxyXG5cclxuICByZWRpcmVjdFRvKGxpbms6IEJ1dHRvbikge1xyXG4gICAgaWYgKHRoaXMuZWRpdCkge1xyXG4gICAgICB0aGlzLm1hdERpYWxvZy5vcGVuKExpbmtFZGl0b3JDb21wb25lbnQsIHsgcGFuZWxDbGFzczogJ2xpbmstZWRpdG9yJywgZGF0YTogeyBsaW5rRGF0YTogbGluayB9IH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLl9ldmVudFNlcnZpY2UuYnV0dG9uUmVkaXJlY3Rpb24uZW1pdCh7IGRhdGE6IGxpbmsgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRQYWdlcygpIHtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0VGVtcGxhdGUoKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMucGFnZXMgPSByZXMuZGF0YVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHJlZGlyZWN0VG9QYWdlKHBhZ2VEYXRhOiBhbnkpIHtcclxuICAgIGxldCBkYXRhID0ge1xyXG4gICAgICBsYWJlbCA6IHBhZ2VEYXRhLnBhZ2VOYW1lLFxyXG4gICAgICByZWRpcmVjdGlvblVybDpwYWdlRGF0YS5wYXRoLFxyXG4gICAgICBwYWdlSWQ6IHBhZ2VEYXRhLmlkLFxyXG4gICAgICBzdGF0dXM6IHRydWUsXHJcbiAgICB9XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UucGFnZVJlZGlyZWN0aW9uQnV0dG9uLmVtaXQoeyBkYXRhOiBkYXRhIH0pXHJcbiAgfVxyXG5cclxuICBjcmVhdGVOZXdMaW5rKGZvbGRlckluZGV4OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGVkaXRvckNvbXBvbmVudCA9IHRoaXMubWF0RGlhbG9nLm9wZW4oTGlua0VkaXRvckNvbXBvbmVudCwgeyBwYW5lbENsYXNzOiAnbGluay1lZGl0b3InIH0pO1xyXG4gICAgdGhpcy5saW5rRWRpdG9yU3Vic2NyaXB0aW9uID0gZWRpdG9yQ29tcG9uZW50LmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzLmxpbmspIHtcclxuICAgICAgICB0aGlzLmNvbnRlbnQ/LmZvbGRlcltmb2xkZXJJbmRleF0ubGlua3MucHVzaChyZXMubGluayk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBjcmVhdGVOZXdGb2xkZXIoKSB7XHJcbiAgICBjb25zdCBlZGl0b3JDb21wb25lbnQgPSB0aGlzLm1hdERpYWxvZy5vcGVuKExpbmtFZGl0b3JDb21wb25lbnQsIHsgcGFuZWxDbGFzczogJ2xpbmstZWRpdG9yJyB9KTtcclxuICAgIGVkaXRvckNvbXBvbmVudC5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYocmVzLmxpbmspIHtcclxuICAgICAgICBsZXQgZm9sZGVyID0ge1xyXG4gICAgICAgICAgbGFiZWw6IFwiQWRkIGZvbGRlciBuYW1lXCIsXHJcbiAgICAgICAgICBsaW5rczogW3Jlcy5saW5rXVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZih0aGlzLmNvbnRlbnQgJiYgIXRoaXMuY29udGVudD8uZm9sZGVyKVxyXG4gICAgICAgICAgdGhpcy5jb250ZW50LmZvbGRlciA9IFtdO1xyXG5cclxuICAgICAgICB0aGlzLmNvbnRlbnQ/LmZvbGRlci5wdXNoKGZvbGRlcik7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbiIsIjxzZWN0aW9uIGNsYXNzPVwidG90YWwtY29udGFpbmVyXCIgc2ltcG9Ib3ZlclxyXG4oaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIltzcGFjaW5nSG9yaXpvbnRhbF09XCJzdHlsZXNMYXlvdXRcIiBbc2ltcG9CYWNrZ3JvdW5kXT1cInN0eWxlPy5iYWNrZ3JvdW5kXCIgW3NpbXBvTGF5b3V0XT1cInN0eWxlPy5sYXlvdXRcIiBbaWRdPVwiZGF0YT8uaWRcIj5cclxuICA8ZGl2PlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5mb290ZXJUeXBlID09ICdGb290ZXIxJ1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiRm9vdGVyMVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3R5bGU/LmZvb3RlclR5cGUgPT0gJ0Zvb3RlcjInXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJGb290ZXIyXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZT8uZm9vdGVyVHlwZSA9PSAnRm9vdGVyMydcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIkZvb3RlcjNcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5mb290ZXJUeXBlID09ICdGb290ZXI0J1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiRm9vdGVyNFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cclxuICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XHJcbiAgICA8c2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiPjwvc2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQ+XHJcbiAgPC9kaXY+XHJcblxyXG48L3NlY3Rpb24+XHJcblxyXG48bmctdGVtcGxhdGUgI0Zvb3RlcjE+XHJcbiAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2dvU2VjdGlvblwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGVzY1NlY3Rpb25cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJjb250ZW50Py5zb2NpYWxMaW5rcz8uZGlzcGxheSAmJiBzY3JlZW5XaWR0aCA+IDQ3NVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb2NpYWxJY29uc1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC04XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9sZGVyc1ZlcnRpY2FsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udGVudD8uc29jaWFsTGlua3M/LmRpc3BsYXkgJiYgc2NyZWVuV2lkdGggPCA0NzVcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvY2lhbEljb25zXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGhyICpuZ0lmPVwiY29udGVudD8uZGlzcGxheUJyYW5kaW5nXCI+XHJcbiAgPGRpdiAqbmdJZj1cImNvbnRlbnQ/LmRpc3BsYXlCcmFuZGluZ1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJyYW5kaW5nXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI0Zvb3RlcjI+XHJcbiAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2dvU2VjdGlvblwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGVzY1NlY3Rpb25cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJjb250ZW50Py5zb2NpYWxMaW5rcz8uZGlzcGxheSAmJiBzY3JlZW5XaWR0aCA+IDQ3NVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb2NpYWxJY29uc1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC05XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFnZXNIb3Jpem9udGFsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udGVudD8uc29jaWFsTGlua3M/LmRpc3BsYXkgJiYgc2NyZWVuV2lkdGggPCA0NzVcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvY2lhbEljb25zXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGhyICpuZ0lmPVwiY29udGVudD8uZGlzcGxheUJyYW5kaW5nXCI+XHJcbiAgPGRpdiAqbmdJZj1cImNvbnRlbnQ/LmRpc3BsYXlCcmFuZGluZ1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJyYW5kaW5nXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI0Zvb3RlcjM+XHJcbiAgPGRpdiBjbGFzcz1cInJvd1wiIFtjbGFzcy5hbGlnbi1pdGVtcy1zdGFydF09XCJzY3JlZW5XaWR0aCA8IDQ3NVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZvbGRlcnNWZXJ0aWNhbFwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG4gIDxocj5cclxuICA8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIiBbY2xhc3Mudy0zMF09XCJzY3JlZW5XaWR0aCA8IDQ3NVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9nb1NlY3Rpb25cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLXN0YXJ0XCIgKm5nSWY9XCJjb250ZW50Py5zb2NpYWxMaW5rcz8uZGlzcGxheVwiXHJcbiAgICAgIFtjbGFzcy53LTMwXT1cInNjcmVlbldpZHRoIDwgNDc1XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb2NpYWxJY29uc1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIiAqbmdJZj1cImNvbnRlbnQ/LmRpc3BsYXlCcmFuZGluZ1wiIFtjbGFzcy53LTMwXT1cInNjcmVlbldpZHRoIDwgNDc1XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJicmFuZGluZ1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNGb290ZXI0PlxyXG4gIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFnZXNIb3Jpem9udGFsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbiAgPGhyPlxyXG4gIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9nb1NlY3Rpb25cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLXN0YXJ0XCIgKm5nSWY9XCJjb250ZW50Py5zb2NpYWxMaW5rcz8uZGlzcGxheVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic29jaWFsSWNvbnNcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCIgKm5nSWY9XCJjb250ZW50Py5kaXNwbGF5QnJhbmRpbmdcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJyYW5kaW5nXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2xvZ29TZWN0aW9uPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXhcIiBbY2xhc3MuanVzdGlmeS1jb250ZW50LWNlbnRlcl09XCJzY3JlZW5XaWR0aCA8IDQ3NVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMyBhbGlnbi1pdGVtcy1sZy1jZW50ZXIgY3Vyc29yLXBvaW50ZXIgbWItNFwiXHJcbiAgICAgICpuZ0lmPVwiIWNvbnRlbnQ/LmxvZ28/LmlzSW1hZ2UgfHwgIWNvbnRlbnQ/LmxvZ28/LmltYWdlPy51cmxcIj5cclxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRlbnQ/LmxvZ28/LnRleHQ/LmlzSWNvbiAmJiBjb250ZW50Py5sb2dvPy50ZXh0Py51cmxcIj5cclxuICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJjb250ZW50Py5sb2dvPy50ZXh0Py51cmxcIiBhbHQ9XCJsb2dvXCIgW3dpZHRoXT1cImNvbnRlbnQ/LmxvZ28/LnNpemVcIiBsb2FkaW5nPVwibGF6eVwiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctc21hbGxcIiAqbmdJZj1cImNvbnRlbnQ/LmxvZ28/LnRleHQ/LmlzVGV4dFwiIFtzaW1wb0NvbG9yXT1cInN0eWxlPy5iYWNrZ3JvdW5kPy5jb2xvclwiPlxyXG4gICAgICAgIDxiIFtuZ1N0eWxlXT1cInsnZm9udC1mYW1pbHknOiBjb250ZW50Py5sb2dvPy50ZXh0Py5mb250RmFtaWx5fVwiPnt7Y29udGVudD8uc2l0ZU5hbWU/LnZhbHVlfX08L2I+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0zIGFsaWduLWl0ZW1zLWxnLWNlbnRlciBjdXJzb3ItcG9pbnRlciBtYi00XCJcclxuICAgICAgKm5nSWY9XCJjb250ZW50Py5sb2dvPy5pc0ltYWdlICYmIGNvbnRlbnQ/LmxvZ28/LmltYWdlPy51cmxcIj5cclxuICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIFtzcmNdPVwiY29udGVudD8ubG9nbz8uaW1hZ2U/LnVybFwiIGFsdD1cImxvZ29cIlxyXG4gICAgICAgIFtzdHlsZS53aWR0aC4lXT1cInNjcmVlbldpZHRoID4gNDc1IHx8IChjb250ZW50Py5sb2dvPy5zaXplIHx8IDEwKSA8IDUwID8gY29udGVudD8ubG9nbz8uc2l6ZSA6ICgoY29udGVudD8ubG9nbz8uc2l6ZSB8fCAxMCkgLSAxMClcIlxyXG4gICAgICAgIGxvYWRpbmc9XCJsYXp5XCI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGVzY1NlY3Rpb24+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZiA9IFwiY29udGVudD8uYWRkaXRpb25hbERldGFpbHMgYXMgdGV4dEl0ZW1cIiA+XHJcbiAgICA8c2ltcG8tdGV4dC1lZGl0b3IgWyh2YWx1ZSldPVwidGV4dEl0ZW0udmFsdWUgXCIgW2VkaXRhYmxlXT1cImVkaXQgfHwgZmFsc2VcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCIgW2xhYmVsXT1cImNvbnRlbnQ/LmFkZGl0aW9uYWxEZXRhaWxzPy5sYWJlbCB8fCAnJ1wiPjwvc2ltcG8tdGV4dC1lZGl0b3I+XHJcbiAgPC9uZy1jb250YWluZXI+ICA8IS0tIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiIFtpbm5lckhUTUxdPVwiY29udGVudD8uYWRkaXRpb25hbERldGFpbHM/LnZhbHVlID8/ICcnIHwgc2FuaXRpemVIdG1sXCI+PC9kaXY+IC0tPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNzb2NpYWxJY29ucz5cclxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLXN0YXJ0IGFsaWduLWl0ZW1zLWxnLWNlbnRlciBmbGV4LWNvbHVtbiBmbGV4LWxnLXJvdyBnYXAtbGctMCBnYXAtM1wiXHJcbiAgICBbbmdDbGFzc109XCJjb250ZW50Py5zb2NpYWxMaW5rcz8uZGlzcGxheSA/ICdqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbicgOiAnanVzdGlmeS1jb250ZW50LWVuZCdcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXQtMFwiICpuZ0lmPVwiY29udGVudD8uc29jaWFsTGlua3M/LmRpc3BsYXlcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb250ZW50Py5zb2NpYWxMaW5rcz8uY2hhbm5lbHNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbnNcIj5cclxuICAgICAgICAgIDxzaW1wby1zb2NpYS1pY29ucyBbaWNvbkNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiBbc29jaWFsSWNvbkRhdGFdPVwiaXRlbVwiXHJcbiAgICAgICAgICAgIFtjb2xvcl09XCJzdHlsZT8uYmFja2dyb3VuZD8uY29sb3JcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCI+PC9zaW1wby1zb2NpYS1pY29ucz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjYnJhbmRpbmc+XHJcbiAgPGRpdiBjbGFzcz1cImhlYWRpbmctc21hbGwgdGV4dC1jZW50ZXIgIGJyYW5kaW5nLXRleHRcIj5NYWRlIHdpdGggPGEgY2xhc3M9XCJicmFuZGluZy10ZXh0IGZ3LTYwMFwiXHJcbiAgICAgIGhyZWY9XCJodHRwczovL3NpbXBvLmFpXCIgdGFyZ2V0PVwiX2JsYW5rXCI+U2ltcG88L2E+PC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3BhZ2VzSG9yaXpvbnRhbD5cclxuICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgbWItMyBwYWdlVHlwZVwiICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VzXCIgW2NsYXNzLnctNTBdPVwic2NyZWVuV2lkdGggPCA0NzVcIiBbY2xhc3MudGV4dC1jZW50ZXJdPVwic2NyZWVuV2lkdGggPCA0NzVcIiAoY2xpY2spPVwicmVkaXJlY3RUb1BhZ2UocGFnZSlcIj5cclxuICAgIHt7cGFnZS5wYWdlTmFtZX19XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48IS0tIDxuZy10ZW1wbGF0ZSAjcGFnZXNWZXJ0aWNhbD5cclxuICA8ZGl2IGNsYXNzPVwicGFnZS1jb250YWluZXIgY29sLW1kLTMgbWItM1wiIFtjbGFzcy53LTUwXT1cInNjcmVlbldpZHRoIDwgNDc1XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicGFnZVR5cGUgbWItM1wiPnt7cGFnZUxpbmt9fTwvZGl2PlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdlc1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGFnZXMgbWItMlwiIChjbGljayk9XCJyZWRpcmVjdFRvUGFnZShwYWdlKVwiPnt7cGFnZT8ucGFnZU5hbWV9fTwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+IC0tPlxyXG5cclxuPG5nLXRlbXBsYXRlICNmb2xkZXJzVmVydGljYWw+XHJcbiAgPGRpdiBjbGFzcz1cInBhZ2UtY29udGFpbmVyIGNvbC1tZC0zIG1iLTNcIiAqbmdGb3I9XCJsZXQgZm9sZGVyIG9mIGNvbnRlbnQ/LmZvbGRlcjtsZXQgZm9sZGVySW5kZXggPSBpbmRleFwiIFtjbGFzcy53LTUwXT1cInNjcmVlbldpZHRoIDwgNDc1XCI+XHJcbiAgICA8c2ltcG8tdGV4dC1lZGl0b3IgWyh2YWx1ZSldPVwiZm9sZGVyLmxhYmVsXCIgW2VkaXRhYmxlXT1cImVkaXQgfHwgZmFsc2VcIiBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCI+PC9zaW1wby10ZXh0LWVkaXRvcj5cclxuICAgIDxkaXYgY2xhc3M9XCJtdC0xNVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwYWdlIG9mIGZvbGRlci5saW5rcztsZXQgbGlua0luZGV4ID0gaW5kZXhcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9sZGVyLXBhZ2VcIiBbbmdDbGFzc109XCJ7J2hvdmVyV2hlbkVkaXRhYmxlJyA6IGVkaXR9XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFnZXMgbWItMlwiIChjbGljayk9XCJyZWRpcmVjdFRvKHBhZ2UpXCI+e3twYWdlLmxhYmVsfX08L2Rpdj5cclxuICAgICAgICAgIDxtYXQtaWNvbiAoY2xpY2spPVwiZGVsZXRlRm9sZGVyTGlua3MoZm9sZGVySW5kZXgsIGxpbmtJbmRleClcIj5kZWxldGU8L21hdC1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVkaXQgPyBhZGRMaW5rcyA6IG51bGw7IGNvbnRleHQ6IHtkYXRhOiBmb2xkZXJJbmRleH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0lmPVwiKGNvbnRlbnQ/LmZvbGRlcj8ubGVuZ3RoIHx8IDApIDwgNFwiIFtjbGFzcy53LTUwXT1cInNjcmVlbldpZHRoIDwgNDc1XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWRpdCA/IGFkZEZvbGRlciA6IG51bGxcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjYWRkTGlua3MgbGV0LWZvbGRlckluZGV4PVwiZGF0YVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJhZGRMaW5rc1wiIChjbGljayk9XCJjcmVhdGVOZXdMaW5rKGZvbGRlckluZGV4KVwiPlxyXG4gICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2FkZEZvbGRlcj5cclxuICA8ZGl2IGNsYXNzPVwiYWRkTGlua3MgaC0xMDBcIiAoY2xpY2spPVwiY3JlYXRlTmV3Rm9sZGVyKClcIj5cclxuICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=