simpo-component-library 3.6.870 → 3.6.871

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 (31) hide show
  1. package/esm2022/lib/components/hover-elements/hover-elements.component.mjs +5 -4
  2. package/esm2022/lib/elements/add-section/add-section.component.mjs +113 -17
  3. package/esm2022/lib/elements/editor-service.service.mjs +5 -1
  4. package/esm2022/lib/elements/text-editor/text-editor.component.mjs +5 -3
  5. package/fesm2022/simpo-component-library.mjs +122 -20
  6. package/fesm2022/simpo-component-library.mjs.map +1 -1
  7. package/lib/components/input-fields/input-fields.component.d.ts +1 -1
  8. package/lib/directive/background-directive.d.ts +1 -1
  9. package/lib/directive/button-directive.directive.d.ts +1 -1
  10. package/lib/directive/color.directive.d.ts +1 -1
  11. package/lib/ecommerce/sections/featured-category/featured-category.component.d.ts +1 -1
  12. package/lib/ecommerce/sections/featured-category/featured-collection.component.d.ts +1 -1
  13. package/lib/ecommerce/sections/new-collection/new-collection.component.d.ts +2 -2
  14. package/lib/ecommerce/sections/product-desc/product-desc.component.d.ts +2 -2
  15. package/lib/ecommerce/sections/product-list/product-list.component.d.ts +1 -1
  16. package/lib/ecommerce/sections/schemes/schemes.component.d.ts +1 -1
  17. package/lib/ecommerce/sections/store-list/store-list.component.d.ts +1 -1
  18. package/lib/ecommerce/sections/store-page/store-page.component.d.ts +1 -1
  19. package/lib/elements/add-section/add-section.component.d.ts +8 -0
  20. package/lib/elements/editor-service.service.d.ts +1 -0
  21. package/lib/elements/link-editor/link-editor.component.d.ts +1 -1
  22. package/lib/sections/banner-grid-section/banner-grid-section.component.d.ts +1 -1
  23. package/lib/sections/contact-us/contact-us.component.d.ts +1 -1
  24. package/lib/sections/header-section/header-section.component.d.ts +1 -1
  25. package/lib/sections/image-grid-hotspot/image-grid-hotspot.component.d.ts +1 -1
  26. package/lib/sections/image-grid-section/image-grid-section.component.d.ts +1 -1
  27. package/lib/sections/moving-text/moving-text.component.d.ts +1 -1
  28. package/lib/sections/pricing-section/pricing-section.component.d.ts +2 -2
  29. package/package.json +1 -1
  30. package/simpo-component-library-3.6.871.tgz +0 -0
  31. package/simpo-component-library-3.6.870.tgz +0 -0
@@ -8,7 +8,8 @@ import { CdkDrag } from '@angular/cdk/drag-drop';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "../../services/events.service";
10
10
  import * as i2 from "@angular/material/dialog";
11
- import * as i3 from "@angular/common";
11
+ import * as i3 from "@angular/material/icon";
12
+ import * as i4 from "@angular/common";
12
13
  export class HoverElementsComponent {
13
14
  constructor(_eventService, dialog) {
14
15
  this._eventService = _eventService;
@@ -80,11 +81,11 @@ export class HoverElementsComponent {
80
81
  event.stopPropagation();
81
82
  }
82
83
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HoverElementsComponent, deps: [{ token: i1.EventsService }, { token: i2.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
83
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: HoverElementsComponent, isStandalone: true, selector: "simpo-hover-elements", inputs: { data: "data", index: "index", editOptions: "editOptions", isMerged: "isMerged", isEcommerce: "isEcommerce" }, outputs: { edit: "edit" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "<mat-dialog-content class=\"mat-typography\" *ngIf=\"editOptions\">\r\n <div class=\"top-btn\" [ngClass]=\"{'adjust-top-btn': isMerged && index == 1}\"\r\n *ngIf=\"data.sectionType != 'footer' && data.sectionType != 'header' && data.sectionType != 'blogList' && !isEcommerce\">\r\n <button class=\"add_btn_top\" (click)=\"addSection('ABOVE', $event)\">Add Section +</button>\r\n </div>\r\n <section class=\"hover-tab\" [ngClass]=\"{'adjustPosition': isMerged && index == 1}\" cdkDrag>\r\n <div class=\"tabs-section\" [ngStyle]=\"{'z-index' : data.sectionType === 'header' ? '10000' : '100'}\">\r\n\r\n <div class=\"section-name\" cdkDragHandle>\r\n {{ data?.sectionName || 'Section' }}\r\n </div>\r\n\r\n <button class=\"edit-btn\" (click)=\"editSection()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\r\n class=\"lucide lucide-pencil\" aria-hidden=\"true\">\r\n <path\r\n d=\"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z\">\r\n </path>\r\n <path d=\"m15 5 4 4\"></path>\r\n </svg>\r\n <span class=\"edit-text\">Edit</span>\r\n </button>\r\n\r\n <ng-container\r\n *ngIf=\"data.sectionType != 'footer' && data.sectionType != 'header' && data.sectionType != 'blogList'\">\r\n <button class=\"icon-btn\" (click)=\"moveUp($event)\" [disabled]=\"index == 1\">\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <polyline points=\"18 15 12 9 6 15\"></polyline>\r\n </svg>\r\n </button>\r\n\r\n <button class=\"icon-btn\" (click)=\"moveDown($event)\">\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <polyline points=\"6 9 12 15 18 9\"></polyline>\r\n </svg>\r\n </button>\r\n\r\n <div class=\"position-relative d-flex align-items-center\" (click)=\"$event.stopPropagation()\">\r\n <button class=\"icon-btn more-btn\" (click)=\"toggleMenu($event)\">\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <circle cx=\"12\" cy=\"12\" r=\"1\"></circle>\r\n <circle cx=\"19\" cy=\"12\" r=\"1\"></circle>\r\n <circle cx=\"5\" cy=\"12\" r=\"1\"></circle>\r\n </svg>\r\n </button>\r\n\r\n <div class=\"simpo-custom-menu px-2 py-1\" *ngIf=\"isMenuOpen\">\r\n <button class=\"menu-item-custom\" (click)=\"changeContent($event); isMenuOpen = false\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"menu-icon\">\r\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect>\r\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect>\r\n <rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect>\r\n <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect>\r\n </svg>\r\n <span class=\"menu-item-text\">Change Layout</span>\r\n </button>\r\n <!-- <button class=\"menu-item-custom\" (click)=\"restyleSection($event); isMenuOpen = false\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"menu-icon\">\r\n <path\r\n d=\"m12 3-1.912 5.813a2 2 0 0 1-1.275 1.275L3 12l5.813 1.912a2 2 0 0 1 1.275 1.275L12 21l1.912-5.813a2 2 0 0 1 1.275-1.275L21 12l-5.813-1.912a2 2 0 0 1-1.275-1.275L12 3Z\" />\r\n </svg>\r\n <span>Restyle with AI</span>\r\n <span class=\"ai-badge\">AI</span>\r\n </button> -->\r\n <button class=\"menu-item-custom\" (click)=\"duplicateSection($event); isMenuOpen = false\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\"\r\n fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" class=\"lucide lucide-copy menu-icon\" aria-hidden=\"true\">\r\n <rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"></rect>\r\n <path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"></path>\r\n </svg>\r\n <span class=\"menu-item-text\">Duplicate</span>\r\n </button>\r\n <div class=\"menu-divider\"></div>\r\n <button class=\"menu-item-custom delete-item\"\r\n (click)=\"deleteSection($event); isMenuOpen = false\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\r\n class=\"menu-icon delete-icon\">\r\n <polyline points=\"3 6 5 6 21 6\"></polyline>\r\n <path\r\n d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\">\r\n </path>\r\n <line x1=\"10\" y1=\"11\" x2=\"10\" y2=\"17\"></line>\r\n <line x1=\"14\" y1=\"11\" x2=\"14\" y2=\"17\"></line>\r\n </svg>\r\n <span class=\"delete-text menu-item-text\">Delete Section</span>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </section>\r\n <div class=\"bottom-btn\"\r\n *ngIf=\"data.sectionType != 'footer' && data.sectionType != 'header' && data.sectionType != 'blogList' && !isEcommerce\">\r\n <button class=\"add_btn\" (click)=\"addSection('BELOW', $event)\">Add Section +</button>\r\n </div>\r\n</mat-dialog-content>", styles: ["*{font-family:var(--primary-font-family)}mat-icon{font-family:Material Icons!important}.hover-tab{display:flex;justify-content:flex-end;align-items:center;position:absolute;right:30px;top:40px;height:auto;cursor:grab}.adjustPosition{top:200px}.bottom-btn{position:absolute;top:100%;left:0%;z-index:101;border:3px solid var(--primary-bg-color);width:100%}.bottom-btn .add_btn{width:140px!important;height:36px;font-size:16px!important;background:var(--primary-bg-color);border-radius:4px;transform:translate(-50%,-50%);color:#fff;cursor:pointer;border:none;outline:none;position:absolute;top:100%;left:50%;box-shadow:#00000059 0 5px 15px}.adjust-top-btn{top:170px!important}.top-btn{position:absolute;top:0%;left:0%;z-index:101;width:100%;border:3px solid var(--primary-bg-color)}.top-btn .add_btn_top{top:0!important;width:140px!important;height:36px;background:var(--primary-bg-color);border-radius:4px;font-size:16px!important;position:absolute;left:50%;transform:translate(-50%,-50%);color:#fff;cursor:pointer;border:none;outline:none;z-index:1001;box-shadow:#00000059 0 5px 15px}.tabs-section{width:auto;padding:6px 6px 6px 16px;box-shadow:#0000001a 0 4px 12px;border-radius:8px;display:flex;align-items:center;height:48px;background-color:#fff;gap:8px}.section-name{font-size:14px;color:#8c98a4;font-weight:500;margin-right:8px;cursor:grab;-webkit-user-select:none;user-select:none;white-space:nowrap}.edit-btn{display:flex;align-items:center;justify-content:center;gap:6px;background-color:#f6f0ff;color:#4a2b6d;border:none;border-radius:6px;padding:6px 12px;font-size:14px!important;font-weight:500;cursor:pointer;transition:background-color .2s ease}.edit-btn:hover{background-color:var(--primary-bg-color);color:#fff}.icon-btn{display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#8c98a4;cursor:pointer;padding:4px;border-radius:4px;transition:background-color .2s ease,color .2s ease}.icon-btn:hover{background-color:#f5f5f5;color:#4a2b6d}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.more-btn{margin-left:4px}.simpo-custom-menu{position:absolute;top:100%;right:0;margin-top:8px;background:#fff;border-radius:8px;box-shadow:#0000001a 0 4px 12px;min-width:180px;padding:4px 0;z-index:1000;display:flex;flex-direction:column}.simpo-custom-menu .menu-item-custom{display:flex;align-items:center;width:100%;padding:0 16px;min-height:40px;background:transparent;white-space:nowrap;border:none;font-size:14px;color:#333;cursor:pointer;text-align:left;transition:background-color .2s;border-radius:6px}.simpo-custom-menu .menu-item-custom .menu-item-text{font-size:14px!important;font-weight:500!important}.simpo-custom-menu .menu-item-custom:hover{background-color:#f5f5f5}.simpo-custom-menu .menu-icon{margin-right:12px;color:#333;flex-shrink:0}.simpo-custom-menu .ai-badge{margin-left:auto;background-color:#a855f7;color:#fff;font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;line-height:1}.simpo-custom-menu .menu-divider{height:1px;background-color:#e0e0e0;margin:4px 0}.simpo-custom-menu .delete-item,.simpo-custom-menu .delete-item .menu-icon,.simpo-custom-menu .delete-item .delete-text{color:#e03131!important;font-size:14px!important}@media only screen and (max-width: 475px){.tabs-section{position:relative;left:27px;height:48px}}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }] }); }
84
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: HoverElementsComponent, isStandalone: true, selector: "simpo-hover-elements", inputs: { data: "data", index: "index", editOptions: "editOptions", isMerged: "isMerged", isEcommerce: "isEcommerce" }, outputs: { edit: "edit" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "<mat-dialog-content class=\"mat-typography\" *ngIf=\"editOptions\">\r\n <div class=\"top-btn\" [ngClass]=\"{'adjust-top-btn': isMerged && index == 1}\"\r\n *ngIf=\"data.sectionType != 'footer' && data.sectionType != 'header' && data.sectionType != 'blogList' && !isEcommerce\">\r\n <button class=\"add_btn_top d-flex align-items-center justify-content-center border-radius-50 p-0\"\r\n (click)=\"addSection('ABOVE', $event)\"><mat-icon>add</mat-icon></button>\r\n </div>\r\n <section class=\"hover-tab\" [ngClass]=\"{'adjustPosition': isMerged && index == 1}\" cdkDrag>\r\n <div class=\"tabs-section\" [ngStyle]=\"{'z-index' : data.sectionType === 'header' ? '10000' : '100'}\">\r\n\r\n <div class=\"section-name\" cdkDragHandle>\r\n {{ data?.sectionName || 'Section' }}\r\n </div>\r\n\r\n <button class=\"edit-btn\" (click)=\"editSection()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\r\n class=\"lucide lucide-pencil\" aria-hidden=\"true\">\r\n <path\r\n d=\"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z\">\r\n </path>\r\n <path d=\"m15 5 4 4\"></path>\r\n </svg>\r\n <span class=\"edit-text\">Edit</span>\r\n </button>\r\n\r\n <ng-container\r\n *ngIf=\"data.sectionType != 'footer' && data.sectionType != 'header' && data.sectionType != 'blogList'\">\r\n <button class=\"icon-btn\" (click)=\"moveUp($event)\" [disabled]=\"index == 1\">\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <polyline points=\"18 15 12 9 6 15\"></polyline>\r\n </svg>\r\n </button>\r\n\r\n <button class=\"icon-btn\" (click)=\"moveDown($event)\">\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <polyline points=\"6 9 12 15 18 9\"></polyline>\r\n </svg>\r\n </button>\r\n\r\n <div class=\"position-relative d-flex align-items-center\" (click)=\"$event.stopPropagation()\">\r\n <button class=\"icon-btn more-btn\" (click)=\"toggleMenu($event)\">\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <circle cx=\"12\" cy=\"12\" r=\"1\"></circle>\r\n <circle cx=\"19\" cy=\"12\" r=\"1\"></circle>\r\n <circle cx=\"5\" cy=\"12\" r=\"1\"></circle>\r\n </svg>\r\n </button>\r\n\r\n <div class=\"simpo-custom-menu px-2 py-1\" *ngIf=\"isMenuOpen\">\r\n <button class=\"menu-item-custom\" (click)=\"changeContent($event); isMenuOpen = false\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"menu-icon\">\r\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect>\r\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect>\r\n <rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect>\r\n <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect>\r\n </svg>\r\n <span class=\"menu-item-text\">Change Layout</span>\r\n </button>\r\n <!-- <button class=\"menu-item-custom\" (click)=\"restyleSection($event); isMenuOpen = false\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"menu-icon\">\r\n <path\r\n d=\"m12 3-1.912 5.813a2 2 0 0 1-1.275 1.275L3 12l5.813 1.912a2 2 0 0 1 1.275 1.275L12 21l1.912-5.813a2 2 0 0 1 1.275-1.275L21 12l-5.813-1.912a2 2 0 0 1-1.275-1.275L12 3Z\" />\r\n </svg>\r\n <span>Restyle with AI</span>\r\n <span class=\"ai-badge\">AI</span>\r\n </button> -->\r\n <button class=\"menu-item-custom\" (click)=\"duplicateSection($event); isMenuOpen = false\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\"\r\n fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" class=\"lucide lucide-copy menu-icon\" aria-hidden=\"true\">\r\n <rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"></rect>\r\n <path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"></path>\r\n </svg>\r\n <span class=\"menu-item-text\">Duplicate</span>\r\n </button>\r\n <div class=\"menu-divider\"></div>\r\n <button class=\"menu-item-custom delete-item\"\r\n (click)=\"deleteSection($event); isMenuOpen = false\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\r\n class=\"menu-icon delete-icon\">\r\n <polyline points=\"3 6 5 6 21 6\"></polyline>\r\n <path\r\n d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\">\r\n </path>\r\n <line x1=\"10\" y1=\"11\" x2=\"10\" y2=\"17\"></line>\r\n <line x1=\"14\" y1=\"11\" x2=\"14\" y2=\"17\"></line>\r\n </svg>\r\n <span class=\"delete-text menu-item-text\">Delete Section</span>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </section>\r\n <div class=\"bottom-btn\"\r\n *ngIf=\"data.sectionType != 'footer' && data.sectionType != 'header' && data.sectionType != 'blogList' && !isEcommerce\">\r\n <button class=\"add_btn d-flex align-items-center justify-content-center border-radius-50 p-0\"\r\n (click)=\"addSection('BELOW', $event)\"><mat-icon>add</mat-icon></button>\r\n </div>\r\n</mat-dialog-content>", styles: ["*{font-family:var(--primary-font-family)}mat-icon{font-family:Material Icons!important}.hover-tab{display:flex;justify-content:flex-end;align-items:center;position:absolute;right:30px;top:40px;height:auto;cursor:grab}.adjustPosition{top:200px}.bottom-btn{position:absolute;top:100%;left:0%;z-index:101;border:1px solid var(--primary-bg-color);width:100%}.bottom-btn .add_btn{width:30px!important;height:30px;background:var(--primary-bg-color);border-radius:4px;transform:translate(-50%,-50%);color:#fff;cursor:pointer;border:none;outline:none;position:absolute;top:100%;left:50%;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease,border-color .2s ease}.bottom-btn .add_btn:hover{background-color:var(--primary-bg-color);color:#fff;border-color:var(--primary-bg-color);transform:translate(-50%,-60%);box-shadow:#0003 0 8px 20px}.border-radius-50{border-radius:50%!important}:is(.bottom-btn,.top-btn) mat-icon{font-size:21px!important;width:21px!important;display:flex;align-items:center;justify-content:center}.adjust-top-btn{top:170px!important}.top-btn{position:absolute;top:0%;left:0%;z-index:101;width:100%;border:1px solid var(--primary-bg-color)}.top-btn .add_btn_top{top:0!important;width:30px!important;height:30px;background:var(--primary-bg-color);border-radius:4px;position:absolute;left:50%;transform:translate(-50%,-50%);border:none;color:#fff;cursor:pointer;outline:none;z-index:1001;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease,border-color .2s ease}.top-btn .add_btn_top:hover{background-color:var(--primary-bg-color);color:#fff;border-color:var(--primary-bg-color);transform:translate(-50%,-60%);box-shadow:#0003 0 8px 20px}.tabs-section{width:auto;padding:6px 6px 6px 16px;box-shadow:#0000001a 0 4px 12px;border-radius:8px;display:flex;align-items:center;height:48px;background-color:#fff;gap:8px}.section-name{font-size:14px;color:#8c98a4;font-weight:500;margin-right:8px;cursor:grab;-webkit-user-select:none;user-select:none;white-space:nowrap}.edit-btn{display:flex;align-items:center;justify-content:center;gap:6px;background-color:#f6f0ff;color:#4a2b6d;border:none;border-radius:6px;padding:6px 12px;font-size:14px!important;font-weight:500;cursor:pointer;transition:background-color .2s ease}.edit-btn:hover{background-color:var(--primary-bg-color);color:#fff}.icon-btn{display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#8c98a4;cursor:pointer;padding:4px;border-radius:4px;transition:background-color .2s ease,color .2s ease}.icon-btn:hover{background-color:#f5f5f5;color:#4a2b6d}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.more-btn{margin-left:4px}.simpo-custom-menu{position:absolute;top:100%;right:0;margin-top:8px;background:#fff;border-radius:8px;box-shadow:#0000001a 0 4px 12px;min-width:180px;padding:4px 0;z-index:1000;display:flex;flex-direction:column}.simpo-custom-menu .menu-item-custom{display:flex;align-items:center;width:100%;padding:0 16px;min-height:40px;background:transparent;white-space:nowrap;border:none;font-size:14px;color:#333;cursor:pointer;text-align:left;transition:background-color .2s;border-radius:6px}.simpo-custom-menu .menu-item-custom .menu-item-text{font-size:14px!important;font-weight:500!important}.simpo-custom-menu .menu-item-custom:hover{background-color:#f5f5f5}.simpo-custom-menu .menu-icon{margin-right:12px;color:#333;flex-shrink:0}.simpo-custom-menu .ai-badge{margin-left:auto;background-color:#a855f7;color:#fff;font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;line-height:1}.simpo-custom-menu .menu-divider{height:1px;background-color:#e0e0e0;margin:4px 0}.simpo-custom-menu .delete-item,.simpo-custom-menu .delete-item .menu-icon,.simpo-custom-menu .delete-item .delete-text{color:#e03131!important;font-size:14px!important}@media only screen and (max-width: 475px){.tabs-section{position:relative;left:27px;height:48px}}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }] }); }
84
85
  }
85
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HoverElementsComponent, decorators: [{
86
87
  type: Component,
87
- args: [{ selector: 'simpo-hover-elements', standalone: true, imports: [MatIconModule, MatDialogModule, MatMenuModule, CommonModule, AddSectionComponent, CdkDrag], template: "<mat-dialog-content class=\"mat-typography\" *ngIf=\"editOptions\">\r\n <div class=\"top-btn\" [ngClass]=\"{'adjust-top-btn': isMerged && index == 1}\"\r\n *ngIf=\"data.sectionType != 'footer' && data.sectionType != 'header' && data.sectionType != 'blogList' && !isEcommerce\">\r\n <button class=\"add_btn_top\" (click)=\"addSection('ABOVE', $event)\">Add Section +</button>\r\n </div>\r\n <section class=\"hover-tab\" [ngClass]=\"{'adjustPosition': isMerged && index == 1}\" cdkDrag>\r\n <div class=\"tabs-section\" [ngStyle]=\"{'z-index' : data.sectionType === 'header' ? '10000' : '100'}\">\r\n\r\n <div class=\"section-name\" cdkDragHandle>\r\n {{ data?.sectionName || 'Section' }}\r\n </div>\r\n\r\n <button class=\"edit-btn\" (click)=\"editSection()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\r\n class=\"lucide lucide-pencil\" aria-hidden=\"true\">\r\n <path\r\n d=\"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z\">\r\n </path>\r\n <path d=\"m15 5 4 4\"></path>\r\n </svg>\r\n <span class=\"edit-text\">Edit</span>\r\n </button>\r\n\r\n <ng-container\r\n *ngIf=\"data.sectionType != 'footer' && data.sectionType != 'header' && data.sectionType != 'blogList'\">\r\n <button class=\"icon-btn\" (click)=\"moveUp($event)\" [disabled]=\"index == 1\">\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <polyline points=\"18 15 12 9 6 15\"></polyline>\r\n </svg>\r\n </button>\r\n\r\n <button class=\"icon-btn\" (click)=\"moveDown($event)\">\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <polyline points=\"6 9 12 15 18 9\"></polyline>\r\n </svg>\r\n </button>\r\n\r\n <div class=\"position-relative d-flex align-items-center\" (click)=\"$event.stopPropagation()\">\r\n <button class=\"icon-btn more-btn\" (click)=\"toggleMenu($event)\">\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <circle cx=\"12\" cy=\"12\" r=\"1\"></circle>\r\n <circle cx=\"19\" cy=\"12\" r=\"1\"></circle>\r\n <circle cx=\"5\" cy=\"12\" r=\"1\"></circle>\r\n </svg>\r\n </button>\r\n\r\n <div class=\"simpo-custom-menu px-2 py-1\" *ngIf=\"isMenuOpen\">\r\n <button class=\"menu-item-custom\" (click)=\"changeContent($event); isMenuOpen = false\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"menu-icon\">\r\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect>\r\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect>\r\n <rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect>\r\n <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect>\r\n </svg>\r\n <span class=\"menu-item-text\">Change Layout</span>\r\n </button>\r\n <!-- <button class=\"menu-item-custom\" (click)=\"restyleSection($event); isMenuOpen = false\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"menu-icon\">\r\n <path\r\n d=\"m12 3-1.912 5.813a2 2 0 0 1-1.275 1.275L3 12l5.813 1.912a2 2 0 0 1 1.275 1.275L12 21l1.912-5.813a2 2 0 0 1 1.275-1.275L21 12l-5.813-1.912a2 2 0 0 1-1.275-1.275L12 3Z\" />\r\n </svg>\r\n <span>Restyle with AI</span>\r\n <span class=\"ai-badge\">AI</span>\r\n </button> -->\r\n <button class=\"menu-item-custom\" (click)=\"duplicateSection($event); isMenuOpen = false\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\"\r\n fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" class=\"lucide lucide-copy menu-icon\" aria-hidden=\"true\">\r\n <rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"></rect>\r\n <path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"></path>\r\n </svg>\r\n <span class=\"menu-item-text\">Duplicate</span>\r\n </button>\r\n <div class=\"menu-divider\"></div>\r\n <button class=\"menu-item-custom delete-item\"\r\n (click)=\"deleteSection($event); isMenuOpen = false\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\r\n class=\"menu-icon delete-icon\">\r\n <polyline points=\"3 6 5 6 21 6\"></polyline>\r\n <path\r\n d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\">\r\n </path>\r\n <line x1=\"10\" y1=\"11\" x2=\"10\" y2=\"17\"></line>\r\n <line x1=\"14\" y1=\"11\" x2=\"14\" y2=\"17\"></line>\r\n </svg>\r\n <span class=\"delete-text menu-item-text\">Delete Section</span>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </section>\r\n <div class=\"bottom-btn\"\r\n *ngIf=\"data.sectionType != 'footer' && data.sectionType != 'header' && data.sectionType != 'blogList' && !isEcommerce\">\r\n <button class=\"add_btn\" (click)=\"addSection('BELOW', $event)\">Add Section +</button>\r\n </div>\r\n</mat-dialog-content>", styles: ["*{font-family:var(--primary-font-family)}mat-icon{font-family:Material Icons!important}.hover-tab{display:flex;justify-content:flex-end;align-items:center;position:absolute;right:30px;top:40px;height:auto;cursor:grab}.adjustPosition{top:200px}.bottom-btn{position:absolute;top:100%;left:0%;z-index:101;border:3px solid var(--primary-bg-color);width:100%}.bottom-btn .add_btn{width:140px!important;height:36px;font-size:16px!important;background:var(--primary-bg-color);border-radius:4px;transform:translate(-50%,-50%);color:#fff;cursor:pointer;border:none;outline:none;position:absolute;top:100%;left:50%;box-shadow:#00000059 0 5px 15px}.adjust-top-btn{top:170px!important}.top-btn{position:absolute;top:0%;left:0%;z-index:101;width:100%;border:3px solid var(--primary-bg-color)}.top-btn .add_btn_top{top:0!important;width:140px!important;height:36px;background:var(--primary-bg-color);border-radius:4px;font-size:16px!important;position:absolute;left:50%;transform:translate(-50%,-50%);color:#fff;cursor:pointer;border:none;outline:none;z-index:1001;box-shadow:#00000059 0 5px 15px}.tabs-section{width:auto;padding:6px 6px 6px 16px;box-shadow:#0000001a 0 4px 12px;border-radius:8px;display:flex;align-items:center;height:48px;background-color:#fff;gap:8px}.section-name{font-size:14px;color:#8c98a4;font-weight:500;margin-right:8px;cursor:grab;-webkit-user-select:none;user-select:none;white-space:nowrap}.edit-btn{display:flex;align-items:center;justify-content:center;gap:6px;background-color:#f6f0ff;color:#4a2b6d;border:none;border-radius:6px;padding:6px 12px;font-size:14px!important;font-weight:500;cursor:pointer;transition:background-color .2s ease}.edit-btn:hover{background-color:var(--primary-bg-color);color:#fff}.icon-btn{display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#8c98a4;cursor:pointer;padding:4px;border-radius:4px;transition:background-color .2s ease,color .2s ease}.icon-btn:hover{background-color:#f5f5f5;color:#4a2b6d}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.more-btn{margin-left:4px}.simpo-custom-menu{position:absolute;top:100%;right:0;margin-top:8px;background:#fff;border-radius:8px;box-shadow:#0000001a 0 4px 12px;min-width:180px;padding:4px 0;z-index:1000;display:flex;flex-direction:column}.simpo-custom-menu .menu-item-custom{display:flex;align-items:center;width:100%;padding:0 16px;min-height:40px;background:transparent;white-space:nowrap;border:none;font-size:14px;color:#333;cursor:pointer;text-align:left;transition:background-color .2s;border-radius:6px}.simpo-custom-menu .menu-item-custom .menu-item-text{font-size:14px!important;font-weight:500!important}.simpo-custom-menu .menu-item-custom:hover{background-color:#f5f5f5}.simpo-custom-menu .menu-icon{margin-right:12px;color:#333;flex-shrink:0}.simpo-custom-menu .ai-badge{margin-left:auto;background-color:#a855f7;color:#fff;font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;line-height:1}.simpo-custom-menu .menu-divider{height:1px;background-color:#e0e0e0;margin:4px 0}.simpo-custom-menu .delete-item,.simpo-custom-menu .delete-item .menu-icon,.simpo-custom-menu .delete-item .delete-text{color:#e03131!important;font-size:14px!important}@media only screen and (max-width: 475px){.tabs-section{position:relative;left:27px;height:48px}}\n"] }]
88
+ args: [{ selector: 'simpo-hover-elements', standalone: true, imports: [MatIconModule, MatDialogModule, MatMenuModule, CommonModule, AddSectionComponent, CdkDrag], template: "<mat-dialog-content class=\"mat-typography\" *ngIf=\"editOptions\">\r\n <div class=\"top-btn\" [ngClass]=\"{'adjust-top-btn': isMerged && index == 1}\"\r\n *ngIf=\"data.sectionType != 'footer' && data.sectionType != 'header' && data.sectionType != 'blogList' && !isEcommerce\">\r\n <button class=\"add_btn_top d-flex align-items-center justify-content-center border-radius-50 p-0\"\r\n (click)=\"addSection('ABOVE', $event)\"><mat-icon>add</mat-icon></button>\r\n </div>\r\n <section class=\"hover-tab\" [ngClass]=\"{'adjustPosition': isMerged && index == 1}\" cdkDrag>\r\n <div class=\"tabs-section\" [ngStyle]=\"{'z-index' : data.sectionType === 'header' ? '10000' : '100'}\">\r\n\r\n <div class=\"section-name\" cdkDragHandle>\r\n {{ data?.sectionName || 'Section' }}\r\n </div>\r\n\r\n <button class=\"edit-btn\" (click)=\"editSection()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\r\n class=\"lucide lucide-pencil\" aria-hidden=\"true\">\r\n <path\r\n d=\"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z\">\r\n </path>\r\n <path d=\"m15 5 4 4\"></path>\r\n </svg>\r\n <span class=\"edit-text\">Edit</span>\r\n </button>\r\n\r\n <ng-container\r\n *ngIf=\"data.sectionType != 'footer' && data.sectionType != 'header' && data.sectionType != 'blogList'\">\r\n <button class=\"icon-btn\" (click)=\"moveUp($event)\" [disabled]=\"index == 1\">\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <polyline points=\"18 15 12 9 6 15\"></polyline>\r\n </svg>\r\n </button>\r\n\r\n <button class=\"icon-btn\" (click)=\"moveDown($event)\">\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <polyline points=\"6 9 12 15 18 9\"></polyline>\r\n </svg>\r\n </button>\r\n\r\n <div class=\"position-relative d-flex align-items-center\" (click)=\"$event.stopPropagation()\">\r\n <button class=\"icon-btn more-btn\" (click)=\"toggleMenu($event)\">\r\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <circle cx=\"12\" cy=\"12\" r=\"1\"></circle>\r\n <circle cx=\"19\" cy=\"12\" r=\"1\"></circle>\r\n <circle cx=\"5\" cy=\"12\" r=\"1\"></circle>\r\n </svg>\r\n </button>\r\n\r\n <div class=\"simpo-custom-menu px-2 py-1\" *ngIf=\"isMenuOpen\">\r\n <button class=\"menu-item-custom\" (click)=\"changeContent($event); isMenuOpen = false\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"menu-icon\">\r\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect>\r\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect>\r\n <rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect>\r\n <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect>\r\n </svg>\r\n <span class=\"menu-item-text\">Change Layout</span>\r\n </button>\r\n <!-- <button class=\"menu-item-custom\" (click)=\"restyleSection($event); isMenuOpen = false\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"menu-icon\">\r\n <path\r\n d=\"m12 3-1.912 5.813a2 2 0 0 1-1.275 1.275L3 12l5.813 1.912a2 2 0 0 1 1.275 1.275L12 21l1.912-5.813a2 2 0 0 1 1.275-1.275L21 12l-5.813-1.912a2 2 0 0 1-1.275-1.275L12 3Z\" />\r\n </svg>\r\n <span>Restyle with AI</span>\r\n <span class=\"ai-badge\">AI</span>\r\n </button> -->\r\n <button class=\"menu-item-custom\" (click)=\"duplicateSection($event); isMenuOpen = false\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\"\r\n fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" class=\"lucide lucide-copy menu-icon\" aria-hidden=\"true\">\r\n <rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"></rect>\r\n <path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"></path>\r\n </svg>\r\n <span class=\"menu-item-text\">Duplicate</span>\r\n </button>\r\n <div class=\"menu-divider\"></div>\r\n <button class=\"menu-item-custom delete-item\"\r\n (click)=\"deleteSection($event); isMenuOpen = false\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\"\r\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\r\n class=\"menu-icon delete-icon\">\r\n <polyline points=\"3 6 5 6 21 6\"></polyline>\r\n <path\r\n d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\">\r\n </path>\r\n <line x1=\"10\" y1=\"11\" x2=\"10\" y2=\"17\"></line>\r\n <line x1=\"14\" y1=\"11\" x2=\"14\" y2=\"17\"></line>\r\n </svg>\r\n <span class=\"delete-text menu-item-text\">Delete Section</span>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </section>\r\n <div class=\"bottom-btn\"\r\n *ngIf=\"data.sectionType != 'footer' && data.sectionType != 'header' && data.sectionType != 'blogList' && !isEcommerce\">\r\n <button class=\"add_btn d-flex align-items-center justify-content-center border-radius-50 p-0\"\r\n (click)=\"addSection('BELOW', $event)\"><mat-icon>add</mat-icon></button>\r\n </div>\r\n</mat-dialog-content>", styles: ["*{font-family:var(--primary-font-family)}mat-icon{font-family:Material Icons!important}.hover-tab{display:flex;justify-content:flex-end;align-items:center;position:absolute;right:30px;top:40px;height:auto;cursor:grab}.adjustPosition{top:200px}.bottom-btn{position:absolute;top:100%;left:0%;z-index:101;border:1px solid var(--primary-bg-color);width:100%}.bottom-btn .add_btn{width:30px!important;height:30px;background:var(--primary-bg-color);border-radius:4px;transform:translate(-50%,-50%);color:#fff;cursor:pointer;border:none;outline:none;position:absolute;top:100%;left:50%;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease,border-color .2s ease}.bottom-btn .add_btn:hover{background-color:var(--primary-bg-color);color:#fff;border-color:var(--primary-bg-color);transform:translate(-50%,-60%);box-shadow:#0003 0 8px 20px}.border-radius-50{border-radius:50%!important}:is(.bottom-btn,.top-btn) mat-icon{font-size:21px!important;width:21px!important;display:flex;align-items:center;justify-content:center}.adjust-top-btn{top:170px!important}.top-btn{position:absolute;top:0%;left:0%;z-index:101;width:100%;border:1px solid var(--primary-bg-color)}.top-btn .add_btn_top{top:0!important;width:30px!important;height:30px;background:var(--primary-bg-color);border-radius:4px;position:absolute;left:50%;transform:translate(-50%,-50%);border:none;color:#fff;cursor:pointer;outline:none;z-index:1001;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease,border-color .2s ease}.top-btn .add_btn_top:hover{background-color:var(--primary-bg-color);color:#fff;border-color:var(--primary-bg-color);transform:translate(-50%,-60%);box-shadow:#0003 0 8px 20px}.tabs-section{width:auto;padding:6px 6px 6px 16px;box-shadow:#0000001a 0 4px 12px;border-radius:8px;display:flex;align-items:center;height:48px;background-color:#fff;gap:8px}.section-name{font-size:14px;color:#8c98a4;font-weight:500;margin-right:8px;cursor:grab;-webkit-user-select:none;user-select:none;white-space:nowrap}.edit-btn{display:flex;align-items:center;justify-content:center;gap:6px;background-color:#f6f0ff;color:#4a2b6d;border:none;border-radius:6px;padding:6px 12px;font-size:14px!important;font-weight:500;cursor:pointer;transition:background-color .2s ease}.edit-btn:hover{background-color:var(--primary-bg-color);color:#fff}.icon-btn{display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#8c98a4;cursor:pointer;padding:4px;border-radius:4px;transition:background-color .2s ease,color .2s ease}.icon-btn:hover{background-color:#f5f5f5;color:#4a2b6d}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.more-btn{margin-left:4px}.simpo-custom-menu{position:absolute;top:100%;right:0;margin-top:8px;background:#fff;border-radius:8px;box-shadow:#0000001a 0 4px 12px;min-width:180px;padding:4px 0;z-index:1000;display:flex;flex-direction:column}.simpo-custom-menu .menu-item-custom{display:flex;align-items:center;width:100%;padding:0 16px;min-height:40px;background:transparent;white-space:nowrap;border:none;font-size:14px;color:#333;cursor:pointer;text-align:left;transition:background-color .2s;border-radius:6px}.simpo-custom-menu .menu-item-custom .menu-item-text{font-size:14px!important;font-weight:500!important}.simpo-custom-menu .menu-item-custom:hover{background-color:#f5f5f5}.simpo-custom-menu .menu-icon{margin-right:12px;color:#333;flex-shrink:0}.simpo-custom-menu .ai-badge{margin-left:auto;background-color:#a855f7;color:#fff;font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;line-height:1}.simpo-custom-menu .menu-divider{height:1px;background-color:#e0e0e0;margin:4px 0}.simpo-custom-menu .delete-item,.simpo-custom-menu .delete-item .menu-icon,.simpo-custom-menu .delete-item .delete-text{color:#e03131!important;font-size:14px!important}@media only screen and (max-width: 475px){.tabs-section{position:relative;left:27px;height:48px}}\n"] }]
88
89
  }], ctorParameters: () => [{ type: i1.EventsService }, { type: i2.MatDialog }], propDecorators: { edit: [{
89
90
  type: Output
90
91
  }], data: [{
@@ -101,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
101
102
  type: HostListener,
102
103
  args: ['document:click', ['$event']]
103
104
  }] } });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG92ZXItZWxlbWVudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9jb21wb25lbnRzL2hvdmVyLWVsZW1lbnRzL2hvdmVyLWVsZW1lbnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvY29tcG9uZW50cy9ob3Zlci1lbGVtZW50cy9ob3Zlci1lbGVtZW50cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFhLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdkYsT0FBTyxFQUFFLE9BQU8sRUFBUyxNQUFNLHdCQUF3QixDQUFDOzs7OztBQVN4RCxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDLFlBQ1UsYUFBNEIsRUFDNUIsTUFBaUI7UUFEakIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUdqQixTQUFJLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFJM0QsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQU10QyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBd0VuQixVQUFLLEdBQVUsRUFBRSxDQUFDLEVBQUUs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YixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQWNOLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBZGRTZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvYWRkLXNlY3Rpb24vYWRkLXNlY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2RrRHJhZywgUG9pbnQgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8taG92ZXItZWxlbWVudHMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW01hdEljb25Nb2R1bGUsIE1hdERpYWxvZ01vZHVsZSwgTWF0TWVudU1vZHVsZSwgQ29tbW9uTW9kdWxlLCBBZGRTZWN0aW9uQ29tcG9uZW50LCBDZGtEcmFnXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vaG92ZXItZWxlbWVudHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9ob3Zlci1lbGVtZW50cy5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSG92ZXJFbGVtZW50c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZ1xyXG4gICkgeyB9XHJcblxyXG4gIEBPdXRwdXQoKSBlZGl0OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQElucHV0KCkgZGF0YTogYW55O1xyXG4gIEBJbnB1dCgpIGluZGV4OiBhbnk7XHJcbiAgQElucHV0KCkgZWRpdE9wdGlvbnM/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGlzTWVyZ2VkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNFY29tbWVyY2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmRhdGEsIHRoaXMuaW5kZXgsIHRoaXMuZWRpdE9wdGlvbnMsIHRoaXMuaXNNZXJnZWQsIHRoaXMuaXNFY29tbWVyY2UpO1xyXG4gIH1cclxuXHJcbiAgaXNNZW51T3BlbiA9IGZhbHNlO1xyXG5cclxuICB0b2dnbGVNZW51KGV2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy5pc01lbnVPcGVuID0gIXRoaXMuaXNNZW51T3BlbjtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxyXG4gIG9uRG9jdW1lbnRDbGljaygpIHtcclxuICAgIHRoaXMuaXNNZW51T3BlbiA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZWRpdFNlY3Rpb24oKSB7XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UudG9nZ2xlRWRpdG9yRXZlbnQuZW1pdChmYWxzZSk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmVkaXRTZWN0aW9uLmVtaXQoeyBkYXRhOiB0aGlzLmRhdGEgfSk7XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuXHJcbiAgcmVzdHlsZVNlY3Rpb24oZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmNsb3NlRWRpdG9yRXZlbnQuZW1pdChmYWxzZSk7XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UucmVzdHlsZVNlY3Rpb24uZW1pdCh7IGluZGV4OiB0aGlzLmluZGV4IH0pO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VDb250ZW50KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS5jaGFuZ2VDb250ZW50LmVtaXQoeyBzZWN0aW9uSWQ6IHRoaXMuZGF0YS5jb21wb25lbnRJZCwgaW5kZXg6IHRoaXMuaW5kZXgsIHNlY3Rpb25UeXBlOiB0aGlzLmRhdGEuc2VjdGlvblR5cGUgfSk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIG1vdmVVcChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UuY2hhbmdlUG9zaXRpb24uZW1pdCh7IGluZGV4OiB0aGlzLmluZGV4LCBwb3NpdGlvbjogXCJVUFwiIH0pO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG4gIG1vdmVEb3duKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS5jaGFuZ2VQb3NpdGlvbi5lbWl0KHsgaW5kZXg6IHRoaXMuaW5kZXgsIHBvc2l0aW9uOiBcIkRPV05cIiB9KTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICBkZWxldGVTZWN0aW9uKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS5kZWxldGUuZW1pdCh7IGluZGV4OiB0aGlzLmluZGV4IH0pO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBhZGRTZWN0aW9uKHBvc2l0aW9uOiBcIkFCT1ZFXCIgfCBcIkJFTE9XXCIsIGV2ZW50OiBhbnkpIHtcclxuICAgIC8vIHRoaXMuX2V2ZW50U2VydmljZS5hZGROZXdTZWN0aW9uQ2xpY2suZW1pdCh7IHN0YXR1czogdHJ1ZSwgaW5kZXg6IHRoaXMuaW5kZXgsIHBvc2l0aW9uOiBwb3NpdGlvbiwgd2ViQ29tcE5hbWU6dGhpcy5kYXRhfSk7XHJcbiAgICAvLyBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGxldCBkaWFsb2c6IGFueSA9IHRoaXMuZGlhbG9nLm9wZW4oQWRkU2VjdGlvbkNvbXBvbmVudCwgeyBwYW5lbENsYXNzOiBcImFkZC1zZWN0aW9uXCIsIGRhdGE6IHsgc3RhdHVzOiB0cnVlLCBpbmRleDogdGhpcy5pbmRleCwgcG9zaXRpb246IHBvc2l0aW9uIH0gfSlcclxuXHJcbiAgICBkaWFsb2cuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZShcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgZGlhbG9nRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hZGQtc2VjdGlvbicpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgIGlmIChkaWFsb2dFbGVtZW50KSB7XHJcbiAgICAgICAgICBkaWFsb2dFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2Nsb3NpbmcnKTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBkaWFsb2cuY2xvc2UoKVxyXG4gICAgICAgICAgfSwgMTAwMDApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgZGlhbG9nLmNsb3NlKClcclxuICAgICAgICAgIH0sIDEwMDAwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcbiAgICApXHJcblxyXG4gIH1cclxuXHJcbiAgZHVwbGljYXRlU2VjdGlvbihldmVudDogYW55KSB7XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UuZHVwbGljYXRlLmVtaXQoeyBpbmRleDogdGhpcy5pbmRleCwgZGF0YTogdGhpcy5kYXRhIH0pO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBwb2ludDogUG9pbnQgPSB7IHg6IDIwLCB5OiAtNTAgfTtcclxuXHJcblxyXG59XHJcbiIsIjxtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiICpuZ0lmPVwiZWRpdE9wdGlvbnNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0b3AtYnRuXCIgW25nQ2xhc3NdPVwieydhZGp1c3QtdG9wLWJ0bic6IGlzTWVyZ2VkICYmIGluZGV4ID09IDF9XCJcclxuICAgICAgICAqbmdJZj1cImRhdGEuc2VjdGlvblR5cGUgIT0gJ2Zvb3RlcicgJiYgZGF0YS5zZWN0aW9uVHlwZSAhPSAnaGVhZGVyJyAmJiBkYXRhLnNlY3Rpb25UeXBlICE9ICdibG9nTGlzdCcgJiYgIWlzRWNvbW1lcmNlXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImFkZF9idG5fdG9wXCIgKGNsaWNrKT1cImFkZFNlY3Rpb24oJ0FCT1ZFJywgJGV2ZW50KVwiPkFkZCBTZWN0aW9uICs8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJob3Zlci10YWJcIiBbbmdDbGFzc109XCJ7J2FkanVzdFBvc2l0aW9uJzogaXNNZXJnZWQgJiYgaW5kZXggPT0gMX1cIiBjZGtEcmFnPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJzLXNlY3Rpb25cIiBbbmdTdHlsZV09XCJ7J3otaW5kZXgnIDogZGF0YS5zZWN0aW9uVHlwZSA9PT0gJ2hlYWRlcicgPyAnMTAwMDAnIDogJzEwMCd9XCI+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1uYW1lXCIgY2RrRHJhZ0hhbmRsZT5cclxuICAgICAgICAgICAgICAgIHt7IGRhdGE/LnNlY3Rpb25OYW1lIHx8ICdTZWN0aW9uJyB9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJlZGl0LWJ0blwiIChjbGljayk9XCJlZGl0U2VjdGlvbigpXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEzXCIgaGVpZ2h0PVwiMTNcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibHVjaWRlIGx1Y2lkZS1wZW5jaWxcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIxLjE3NCA2LjgxMmExIDEgMCAwIDAtMy45ODYtMy45ODdMMy44NDIgMTYuMTc0YTIgMiAwIDAgMC0uNS44M2wtMS4zMjEgNC4zNTJhLjUuNSAwIDAgMCAuNjIzLjYyMmw0LjM1My0xLjMyYTIgMiAwIDAgMCAuODMtLjQ5N3pcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIm0xNSA1IDQgNFwiPjwvcGF0aD5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlZGl0LXRleHRcIj5FZGl0PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiZGF0YS5zZWN0aW9uVHlwZSAhPSAnZm9vdGVyJyAmJiBkYXRhLnNlY3Rpb25UeXBlICE9ICdoZWFkZXInICYmIGRhdGEuc2VjdGlvblR5cGUgIT0gJ2Jsb2dMaXN0J1wiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImljb24tYnRuXCIgKGNsaWNrKT1cIm1vdmVVcCgkZXZlbnQpXCIgW2Rpc2FibGVkXT1cImluZGV4ID09IDFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz1cIjE4IDE1IDEyIDkgNiAxNVwiPjwvcG9seWxpbmU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiaWNvbi1idG5cIiAoY2xpY2spPVwibW92ZURvd24oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cG9seWxpbmUgcG9pbnRzPVwiNiA5IDEyIDE1IDE4IDlcIj48L3BvbHlsaW5lPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImljb24tYnRuIG1vcmUtYnRuXCIgKGNsaWNrKT1cInRvZ2dsZU1lbnUoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTJcIiBjeT1cIjEyXCIgcj1cIjFcIj48L2NpcmNsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxOVwiIGN5PVwiMTJcIiByPVwiMVwiPjwvY2lyY2xlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjVcIiBjeT1cIjEyXCIgcj1cIjFcIj48L2NpcmNsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaW1wby1jdXN0b20tbWVudSBweC0yIHB5LTFcIiAqbmdJZj1cImlzTWVudU9wZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1lbnUtaXRlbS1jdXN0b21cIiAoY2xpY2spPVwiY2hhbmdlQ29udGVudCgkZXZlbnQpOyBpc01lbnVPcGVuID0gZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgY2xhc3M9XCJtZW51LWljb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiM1wiIHk9XCIzXCIgd2lkdGg9XCI3XCIgaGVpZ2h0PVwiN1wiIHJ4PVwiMVwiPjwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMTRcIiB5PVwiM1wiIHdpZHRoPVwiN1wiIGhlaWdodD1cIjdcIiByeD1cIjFcIj48L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjE0XCIgeT1cIjE0XCIgd2lkdGg9XCI3XCIgaGVpZ2h0PVwiN1wiIHJ4PVwiMVwiPjwvcmVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiM1wiIHk9XCIxNFwiIHdpZHRoPVwiN1wiIGhlaWdodD1cIjdcIiByeD1cIjFcIj48L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5DaGFuZ2UgTGF5b3V0PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uIGNsYXNzPVwibWVudS1pdGVtLWN1c3RvbVwiIChjbGljayk9XCJyZXN0eWxlU2VjdGlvbigkZXZlbnQpOyBpc01lbnVPcGVuID0gZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgY2xhc3M9XCJtZW51LWljb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwibTEyIDMtMS45MTIgNS44MTNhMiAyIDAgMCAxLTEuMjc1IDEuMjc1TDMgMTJsNS44MTMgMS45MTJhMiAyIDAgMCAxIDEuMjc1IDEuMjc1TDEyIDIxbDEuOTEyLTUuODEzYTIgMiAwIDAgMSAxLjI3NS0xLjI3NUwyMSAxMmwtNS44MTMtMS45MTJhMiAyIDAgMCAxLTEuMjc1LTEuMjc1TDEyIDNaXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+UmVzdHlsZSB3aXRoIEFJPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhaS1iYWRnZVwiPkFJPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtZW51LWl0ZW0tY3VzdG9tXCIgKGNsaWNrKT1cImR1cGxpY2F0ZVNlY3Rpb24oJGV2ZW50KTsgaXNNZW51T3BlbiA9IGZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIGNsYXNzPVwibHVjaWRlIGx1Y2lkZS1jb3B5IG1lbnUtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHg9XCI4XCIgeT1cIjhcIiByeD1cIjJcIiByeT1cIjJcIj48L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDJcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1pdGVtLXRleHRcIj5EdXBsaWNhdGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1kaXZpZGVyXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtZW51LWl0ZW0tY3VzdG9tIGRlbGV0ZS1pdGVtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVTZWN0aW9uKCRldmVudCk7IGlzTWVudU9wZW4gPSBmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWVudS1pY29uIGRlbGV0ZS1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz1cIjMgNiA1IDYgMjEgNlwiPjwvcG9seWxpbmU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOSA2djE0YTIgMiAwIDAgMS0yIDJIN2EyIDIgMCAwIDEtMi0yVjZtMyAwVjRhMiAyIDAgMCAxIDItMmg0YTIgMiAwIDAgMSAyIDJ2MlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT1cIjEwXCIgeTE9XCIxMVwiIHgyPVwiMTBcIiB5Mj1cIjE3XCI+PC9saW5lPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPVwiMTRcIiB5MT1cIjExXCIgeDI9XCIxNFwiIHkyPVwiMTdcIj48L2xpbmU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGVsZXRlLXRleHQgbWVudS1pdGVtLXRleHRcIj5EZWxldGUgU2VjdGlvbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYm90dG9tLWJ0blwiXHJcbiAgICAgICAgKm5nSWY9XCJkYXRhLnNlY3Rpb25UeXBlICE9ICdmb290ZXInICYmIGRhdGEuc2VjdGlvblR5cGUgIT0gJ2hlYWRlcicgJiYgZGF0YS5zZWN0aW9uVHlwZSAhPSAnYmxvZ0xpc3QnICYmICFpc0Vjb21tZXJjZVwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJhZGRfYnRuXCIgKGNsaWNrKT1cImFkZFNlY3Rpb24oJ0JFTE9XJywgJGV2ZW50KVwiPkFkZCBTZWN0aW9uICs8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG48L21hdC1kaWFsb2ctY29udGVudD4iXX0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG92ZXItZWxlbWVudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9jb21wb25lbnRzL2hvdmVyLWVsZW1lbnRzL2hvdmVyLWVsZW1lbnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvY29tcG9uZW50cy9ob3Zlci1lbGVtZW50cy9ob3Zlci1lbGVtZW50cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFhLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdkYsT0FBTyxFQUFFLE9BQU8sRUFBUyxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFTeEQsTUFBTSxPQUFPLHNCQUFzQjtJQUVqQyxZQUNVLGFBQTRCLEVBQzVCLE1BQWlCO1FBRGpCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFHakIsU0FBSSxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBSTNELGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFNdEMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQXdFbkIsVUFBSyxHQUFVLEVBQUUsQ0FBQyxFQUFF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QWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFjTixlQUFlO3NCQURkLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQWRkU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VsZW1lbnRzL2FkZC1zZWN0aW9uL2FkZC1zZWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENka0RyYWcsIFBvaW50IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLWhvdmVyLWVsZW1lbnRzJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtNYXRJY29uTW9kdWxlLCBNYXREaWFsb2dNb2R1bGUsIE1hdE1lbnVNb2R1bGUsIENvbW1vbk1vZHVsZSwgQWRkU2VjdGlvbkNvbXBvbmVudCwgQ2RrRHJhZ10sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hvdmVyLWVsZW1lbnRzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vaG92ZXItZWxlbWVudHMuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEhvdmVyRWxlbWVudHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2V2ZW50U2VydmljZTogRXZlbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2dcclxuICApIHsgfVxyXG5cclxuICBAT3V0cHV0KCkgZWRpdDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBJbnB1dCgpIGRhdGE6IGFueTtcclxuICBASW5wdXQoKSBpbmRleDogYW55O1xyXG4gIEBJbnB1dCgpIGVkaXRPcHRpb25zPzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpc01lcmdlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzRWNvbW1lcmNlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2codGhpcy5kYXRhLCB0aGlzLmluZGV4LCB0aGlzLmVkaXRPcHRpb25zLCB0aGlzLmlzTWVyZ2VkLCB0aGlzLmlzRWNvbW1lcmNlKTtcclxuICB9XHJcblxyXG4gIGlzTWVudU9wZW4gPSBmYWxzZTtcclxuXHJcbiAgdG9nZ2xlTWVudShldmVudDogRXZlbnQpIHtcclxuICAgIHRoaXMuaXNNZW51T3BlbiA9ICF0aGlzLmlzTWVudU9wZW47XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkRvY3VtZW50Q2xpY2soKSB7XHJcbiAgICB0aGlzLmlzTWVudU9wZW4gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGVkaXRTZWN0aW9uKCkge1xyXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnRvZ2dsZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2V2ZW50U2VydmljZS5lZGl0U2VjdGlvbi5lbWl0KHsgZGF0YTogdGhpcy5kYXRhIH0pO1xyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcblxyXG4gIHJlc3R5bGVTZWN0aW9uKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS5jbG9zZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xyXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnJlc3R5bGVTZWN0aW9uLmVtaXQoeyBpbmRleDogdGhpcy5pbmRleCB9KTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlQ29udGVudChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UuY2hhbmdlQ29udGVudC5lbWl0KHsgc2VjdGlvbklkOiB0aGlzLmRhdGEuY29tcG9uZW50SWQsIGluZGV4OiB0aGlzLmluZGV4LCBzZWN0aW9uVHlwZTogdGhpcy5kYXRhLnNlY3Rpb25UeXBlIH0pO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBtb3ZlVXAoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmNoYW5nZVBvc2l0aW9uLmVtaXQoeyBpbmRleDogdGhpcy5pbmRleCwgcG9zaXRpb246IFwiVVBcIiB9KTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICBtb3ZlRG93bihldmVudDogYW55KSB7XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UuY2hhbmdlUG9zaXRpb24uZW1pdCh7IGluZGV4OiB0aGlzLmluZGV4LCBwb3NpdGlvbjogXCJET1dOXCIgfSk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcbiAgZGVsZXRlU2VjdGlvbihldmVudDogYW55KSB7XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UuZGVsZXRlLmVtaXQoeyBpbmRleDogdGhpcy5pbmRleCB9KTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgYWRkU2VjdGlvbihwb3NpdGlvbjogXCJBQk9WRVwiIHwgXCJCRUxPV1wiLCBldmVudDogYW55KSB7XHJcbiAgICAvLyB0aGlzLl9ldmVudFNlcnZpY2UuYWRkTmV3U2VjdGlvbkNsaWNrLmVtaXQoeyBzdGF0dXM6IHRydWUsIGluZGV4OiB0aGlzLmluZGV4LCBwb3NpdGlvbjogcG9zaXRpb24sIHdlYkNvbXBOYW1lOnRoaXMuZGF0YX0pO1xyXG4gICAgLy8gZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBsZXQgZGlhbG9nOiBhbnkgPSB0aGlzLmRpYWxvZy5vcGVuKEFkZFNlY3Rpb25Db21wb25lbnQsIHsgcGFuZWxDbGFzczogXCJhZGQtc2VjdGlvblwiLCBkYXRhOiB7IHN0YXR1czogdHJ1ZSwgaW5kZXg6IHRoaXMuaW5kZXgsIHBvc2l0aW9uOiBwb3NpdGlvbiB9IH0pXHJcblxyXG4gICAgZGlhbG9nLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGRpYWxvZ0VsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYWRkLXNlY3Rpb24nKSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBpZiAoZGlhbG9nRWxlbWVudCkge1xyXG4gICAgICAgICAgZGlhbG9nRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdjbG9zaW5nJyk7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgZGlhbG9nLmNsb3NlKClcclxuICAgICAgICAgIH0sIDEwMDAwKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGRpYWxvZy5jbG9zZSgpXHJcbiAgICAgICAgICB9LCAxMDAwMCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG4gICAgKVxyXG5cclxuICB9XHJcblxyXG4gIGR1cGxpY2F0ZVNlY3Rpb24oZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmR1cGxpY2F0ZS5lbWl0KHsgaW5kZXg6IHRoaXMuaW5kZXgsIGRhdGE6IHRoaXMuZGF0YSB9KTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgcG9pbnQ6IFBvaW50ID0geyB4OiAyMCwgeTogLTUwIH07XHJcblxyXG5cclxufVxyXG4iLCI8bWF0LWRpYWxvZy1jb250ZW50IGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIiAqbmdJZj1cImVkaXRPcHRpb25zXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidG9wLWJ0blwiIFtuZ0NsYXNzXT1cInsnYWRqdXN0LXRvcC1idG4nOiBpc01lcmdlZCAmJiBpbmRleCA9PSAxfVwiXHJcbiAgICAgICAgKm5nSWY9XCJkYXRhLnNlY3Rpb25UeXBlICE9ICdmb290ZXInICYmIGRhdGEuc2VjdGlvblR5cGUgIT0gJ2hlYWRlcicgJiYgZGF0YS5zZWN0aW9uVHlwZSAhPSAnYmxvZ0xpc3QnICYmICFpc0Vjb21tZXJjZVwiPlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJhZGRfYnRuX3RvcCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgYm9yZGVyLXJhZGl1cy01MCBwLTBcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiYWRkU2VjdGlvbignQUJPVkUnLCAkZXZlbnQpXCI+PG1hdC1pY29uPmFkZDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwiaG92ZXItdGFiXCIgW25nQ2xhc3NdPVwieydhZGp1c3RQb3NpdGlvbic6IGlzTWVyZ2VkICYmIGluZGV4ID09IDF9XCIgY2RrRHJhZz5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFicy1zZWN0aW9uXCIgW25nU3R5bGVdPVwieyd6LWluZGV4JyA6IGRhdGEuc2VjdGlvblR5cGUgPT09ICdoZWFkZXInID8gJzEwMDAwJyA6ICcxMDAnfVwiPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tbmFtZVwiIGNka0RyYWdIYW5kbGU+XHJcbiAgICAgICAgICAgICAgICB7eyBkYXRhPy5zZWN0aW9uTmFtZSB8fCAnU2VjdGlvbicgfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZWRpdC1idG5cIiAoY2xpY2spPVwiZWRpdFNlY3Rpb24oKVwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxM1wiIGhlaWdodD1cIjEzXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImx1Y2lkZSBsdWNpZGUtcGVuY2lsXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yMS4xNzQgNi44MTJhMSAxIDAgMCAwLTMuOTg2LTMuOTg3TDMuODQyIDE2LjE3NGEyIDIgMCAwIDAtLjUuODNsLTEuMzIxIDQuMzUyYS41LjUgMCAwIDAgLjYyMy42MjJsNC4zNTMtMS4zMmEyIDIgMCAwIDAgLjgzLS40OTd6XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJtMTUgNSA0IDRcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZWRpdC10ZXh0XCI+RWRpdDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImRhdGEuc2VjdGlvblR5cGUgIT0gJ2Zvb3RlcicgJiYgZGF0YS5zZWN0aW9uVHlwZSAhPSAnaGVhZGVyJyAmJiBkYXRhLnNlY3Rpb25UeXBlICE9ICdibG9nTGlzdCdcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJpY29uLWJ0blwiIChjbGljayk9XCJtb3ZlVXAoJGV2ZW50KVwiIFtkaXNhYmxlZF09XCJpbmRleCA9PSAxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9XCIxOCAxNSAxMiA5IDYgMTVcIj48L3BvbHlsaW5lPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImljb24tYnRuXCIgKGNsaWNrKT1cIm1vdmVEb3duKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz1cIjYgOSAxMiAxNSAxOCA5XCI+PC9wb2x5bGluZT5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJpY29uLWJ0biBtb3JlLWJ0blwiIChjbGljayk9XCJ0b2dnbGVNZW51KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjEyXCIgY3k9XCIxMlwiIHI9XCIxXCI+PC9jaXJjbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTlcIiBjeT1cIjEyXCIgcj1cIjFcIj48L2NpcmNsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI1XCIgY3k9XCIxMlwiIHI9XCIxXCI+PC9jaXJjbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2ltcG8tY3VzdG9tLW1lbnUgcHgtMiBweS0xXCIgKm5nSWY9XCJpc01lbnVPcGVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtZW51LWl0ZW0tY3VzdG9tXCIgKGNsaWNrKT1cImNoYW5nZUNvbnRlbnQoJGV2ZW50KTsgaXNNZW51T3BlbiA9IGZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIGNsYXNzPVwibWVudS1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjNcIiB5PVwiM1wiIHdpZHRoPVwiN1wiIGhlaWdodD1cIjdcIiByeD1cIjFcIj48L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjE0XCIgeT1cIjNcIiB3aWR0aD1cIjdcIiBoZWlnaHQ9XCI3XCIgcng9XCIxXCI+PC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIxNFwiIHk9XCIxNFwiIHdpZHRoPVwiN1wiIGhlaWdodD1cIjdcIiByeD1cIjFcIj48L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjNcIiB5PVwiMTRcIiB3aWR0aD1cIjdcIiBoZWlnaHQ9XCI3XCIgcng9XCIxXCI+PC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+Q2hhbmdlIExheW91dDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBjbGFzcz1cIm1lbnUtaXRlbS1jdXN0b21cIiAoY2xpY2spPVwicmVzdHlsZVNlY3Rpb24oJGV2ZW50KTsgaXNNZW51T3BlbiA9IGZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIGNsYXNzPVwibWVudS1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIm0xMiAzLTEuOTEyIDUuODEzYTIgMiAwIDAgMS0xLjI3NSAxLjI3NUwzIDEybDUuODEzIDEuOTEyYTIgMiAwIDAgMSAxLjI3NSAxLjI3NUwxMiAyMWwxLjkxMi01LjgxM2EyIDIgMCAwIDEgMS4yNzUtMS4yNzVMMjEgMTJsLTUuODEzLTEuOTEyYTIgMiAwIDAgMS0xLjI3NS0xLjI3NUwxMiAzWlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlJlc3R5bGUgd2l0aCBBSTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWktYmFkZ2VcIj5BSTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWVudS1pdGVtLWN1c3RvbVwiIChjbGljayk9XCJkdXBsaWNhdGVTZWN0aW9uKCRldmVudCk7IGlzTWVudU9wZW4gPSBmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBjbGFzcz1cImx1Y2lkZSBsdWNpZGUtY29weSBtZW51LWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB4PVwiOFwiIHk9XCI4XCIgcng9XCIyXCIgcnk9XCIyXCI+PC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNCAxNmMtMS4xIDAtMi0uOS0yLTJWNGMwLTEuMS45LTIgMi0yaDEwYzEuMSAwIDIgLjkgMiAyXCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtaXRlbS10ZXh0XCI+RHVwbGljYXRlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtZGl2aWRlclwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWVudS1pdGVtLWN1c3RvbSBkZWxldGUtaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlU2VjdGlvbigkZXZlbnQpOyBpc01lbnVPcGVuID0gZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1lbnUtaWNvbiBkZWxldGUtaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9XCIzIDYgNSA2IDIxIDZcIj48L3BvbHlsaW5lPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTkgNnYxNGEyIDIgMCAwIDEtMiAySDdhMiAyIDAgMCAxLTItMlY2bTMgMFY0YTIgMiAwIDAgMSAyLTJoNGEyIDIgMCAwIDEgMiAydjJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9XCIxMFwiIHkxPVwiMTFcIiB4Mj1cIjEwXCIgeTI9XCIxN1wiPjwvbGluZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT1cIjE0XCIgeTE9XCIxMVwiIHgyPVwiMTRcIiB5Mj1cIjE3XCI+PC9saW5lPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRlbGV0ZS10ZXh0IG1lbnUtaXRlbS10ZXh0XCI+RGVsZXRlIFNlY3Rpb248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICAgPGRpdiBjbGFzcz1cImJvdHRvbS1idG5cIlxyXG4gICAgICAgICpuZ0lmPVwiZGF0YS5zZWN0aW9uVHlwZSAhPSAnZm9vdGVyJyAmJiBkYXRhLnNlY3Rpb25UeXBlICE9ICdoZWFkZXInICYmIGRhdGEuc2VjdGlvblR5cGUgIT0gJ2Jsb2dMaXN0JyAmJiAhaXNFY29tbWVyY2VcIj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYWRkX2J0biBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgYm9yZGVyLXJhZGl1cy01MCBwLTBcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiYWRkU2VjdGlvbignQkVMT1cnLCAkZXZlbnQpXCI+PG1hdC1pY29uPmFkZDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+Il19