simpo-component-library 1.6.17 → 1.6.19

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.component.mjs +3 -3
  2. package/esm2022/lib/ecommerce/sections/order-details/order-details.component.mjs +3 -3
  3. package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +3 -3
  4. package/esm2022/lib/ecommerce/sections/small-product-listing/small-product-listing.component.mjs +5 -4
  5. package/esm2022/lib/ecommerce/sections/user-profile/user-profile.component.mjs +3 -3
  6. package/esm2022/lib/sections/banner-carousel/banner-carousel.component.mjs +3 -1
  7. package/esm2022/lib/sections/banner-grid-section/banner-grid-section.component.mjs +3 -1
  8. package/esm2022/lib/sections/blog-list/blog-list.component.mjs +3 -1
  9. package/esm2022/lib/sections/choose-us-section/choose-us-section.component.mjs +3 -1
  10. package/esm2022/lib/sections/contact-us/contact-us.component.mjs +3 -1
  11. package/esm2022/lib/sections/features-section/features-section.component.mjs +3 -1
  12. package/esm2022/lib/sections/footer-section/footer-section.component.mjs +3 -1
  13. package/esm2022/lib/sections/image-carousel-section/image-carousel-section.component.mjs +3 -1
  14. package/esm2022/lib/sections/image-grid-section/image-grid-section.component.mjs +3 -1
  15. package/esm2022/lib/sections/image-section/image-section.component.mjs +3 -1
  16. package/esm2022/lib/sections/location-section/location-section.component.mjs +3 -1
  17. package/esm2022/lib/sections/logo-showcase/logo-showcase.component.mjs +3 -1
  18. package/esm2022/lib/sections/navbar-section/navbar-section.component.mjs +3 -3
  19. package/esm2022/lib/sections/pricing-section/pricing-section.component.mjs +3 -1
  20. package/esm2022/lib/sections/process-modern/process-modern.component.mjs +3 -1
  21. package/esm2022/lib/sections/process-section/process-section.component.mjs +3 -1
  22. package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.component.mjs +3 -1
  23. package/esm2022/lib/sections/service-section/service-section.component.mjs +3 -1
  24. package/esm2022/lib/sections/team-member-section/team-member-section.component.mjs +3 -1
  25. package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.component.mjs +3 -1
  26. package/esm2022/lib/sections/testimonial-section/testimonial-section.component.mjs +3 -1
  27. package/esm2022/lib/sections/text-image-section/text-image-section.component.mjs +3 -1
  28. package/esm2022/lib/sections/text-section/text-section.component.mjs +3 -1
  29. package/esm2022/lib/sections/video-section/video-section.component.mjs +3 -1
  30. package/fesm2022/simpo-component-library.mjs +60 -13
  31. package/fesm2022/simpo-component-library.mjs.map +1 -1
  32. package/lib/ecommerce/sections/small-product-listing/small-product-listing.component.d.ts +1 -1
  33. package/package.json +1 -1
  34. package/simpo-component-library-1.6.18.tgz +0 -0
  35. package/simpo-component-library-1.6.19.tgz +0 -0
  36. package/simpo-component-library-1.6.17.tgz +0 -0
@@ -17,7 +17,7 @@ export class SmallProductListingComponent {
17
17
  }
18
18
  ngOnInit() {
19
19
  }
20
- addItemToCart(product, type) {
20
+ addItemToCart(event, product, type) {
21
21
  // if (this.isItemOutOfStock(product)) {
22
22
  // this.messageService.add({ severity: 'warn', summary: 'Cart', detail: 'Item is not available as of now. We will notify you once available' });
23
23
  // return;
@@ -54,6 +54,7 @@ export class SmallProductListingComponent {
54
54
  else {
55
55
  this.USER_CART = this.USER_CART?.filter((item) => item.varientId != product.varientId) ?? [];
56
56
  }
57
+ event.stopPropagation();
57
58
  }
58
59
  getItemVarient(product, varientId) {
59
60
  let selectedVarient = null;
@@ -84,7 +85,7 @@ export class SmallProductListingComponent {
84
85
  return BUSINESS_CONSTANTS.CURRENCY;
85
86
  }
86
87
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SmallProductListingComponent, deps: [{ token: i1.CartService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
87
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: SmallProductListingComponent, isStandalone: true, selector: "simpo-small-product-listing", inputs: { product: "product", data: "data", isScrollable: "isScrollable", isCategoryProductList: "isCategoryProductList" }, ngImport: i0, template: "<div class=\"product\" [ngClass]=\"{'width' : isScrollable, 'adjustHeightWidth': isCategoryProductList}\" [style.opacity]=\"product?.itemInventory?.openingStock == 0 ? 0.5 : 1\">\r\n <div class=\"prod-img\" (click)=\"goToProductDetail(product)\">\r\n <img [src]=\"product.itemImages?.[0]?.imgUrl\" alt=\"\">\r\n <div class=\"discount\" [style.backgroundColor]=\"data?.styles?.background?.color\" [simpoColor]=\"data?.styles?.background?.color\"\r\n *ngIf=\"getPercentage(product) > '0'\">{{getPercentage(product)}}% off</div>\r\n </div>\r\n <div class=\"p-2 h-40\">\r\n <span class=\"trim-text color\">{{product.name}}</span>\r\n <div class=\"bottom\">\r\n <span class=\"m-1\">\r\n <span class=\"discount-price color\"><span [innerHTML]=\"currency\"></span> {{product.price.discountedPrice}}</span>\r\n <span class=\"strike-through\"><span [innerHTML]=\"currency\"></span> {{product.price.sellingPrice}}</span>\r\n </span>\r\n <div class=\"add-to-cart\"\r\n [style.borderColor]=\"data.styles?.background?.accentColor\"\r\n [ngClass]=\"{'justify-content-between p-0 d-flex': product.quantity, 'justify-content-center': !product.quantity}\">\r\n <ng-container *ngIf=\"product?.itemInventory?.openingStock\">\r\n <ng-container *ngIf=\"!product.quantity\">\r\n <span (click)=\"addItemToCart(product, 'ADD')\" [style.color]=\"data.styles?.background?.accentColor\">Add to Cart</span>\r\n </ng-container>\r\n <ng-container *ngIf=\"product.quantity\">\r\n <span class=\"quantity-btn\" (click)=\"addItemToCart(product, 'SUBSTRACT')\" [style.backgroundColor]=\"getSupportingColor(data.styles?.background?.accentColor)\" [style.color]=\"data.styles?.background?.accentColor\">-</span>\r\n <span class=\"quantity\" [style.color]=\"data.styles?.background?.accentColor\">{{product.quantity}}</span>\r\n <span class=\"quantity-btn\" (click)=\"addItemToCart(product, 'ADD')\" [style.backgroundColor]=\"getSupportingColor(data.styles?.background?.accentColor)\" [style.color]=\"data.styles?.background?.accentColor\">+</span>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!product?.itemInventory?.openingStock\">\r\n <span class=\"d-flex align-items-center justify-content-center w-100\">\r\n <mat-icon>notification_important</mat-icon>\r\n <span class=\"ml-2\">Notify</span>\r\n </span>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- <ng-template #loadingScreen>\r\n <ngx-skeleton-loader *ngIf=\"filterLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\r\n width: '100%',\r\n height: '100%',\r\n 'border-radius': '10px',\r\n 'position': 'relative',\r\n 'right': '5px'\r\n }\" />\r\n</ng-template> -->\r\n", styles: [".product{position:relative;display:flex;flex-direction:column;cursor:pointer;margin-bottom:10px;border-radius:10px;overflow:hidden;height:350px;background-color:#fff}.product .prod-img{position:relative;height:55%;width:100%;overflow:hidden;border:1.8px solid;border-radius:10px;border-color:#e5e7eb}.product .prod-img img{height:100%;width:100%;object-fit:cover}.product img:hover{-webkit-animation:scale-up-center .2s linear both;animation:scale-up-center .2s linear both}.width{margin-right:10px;min-width:195px;max-width:195px}.styling{height:30px;width:30px;border-radius:50%;background-color:#fff;position:absolute;bottom:0;right:-12px}.strike-through{text-decoration:line-through;color:#d3d3d3;font-size:12px;margin-left:5px;position:relative}.add-to-cart{width:100%;cursor:pointer;background-color:#fff;border:1.5px solid transparent;border-radius:5px;padding:5px;text-align:center;align-items:center}.add-to-cart .quantity-btn{padding:5px 10px;font-weight:700}.discount{position:absolute;top:0;padding:5px;width:60px;text-align:center;font-size:12px;border-bottom-right-radius:3px}@media screen and (max-width: 475px){.width{max-width:160px;min-width:160px;height:300px}.adjustHeightWidth{max-width:140px;min-width:140px}}@-webkit-keyframes scale-up-center{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.08);transform:scale(1.08)}}@keyframes scale-up-center{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.08);transform:scale(1.08)}}.h-40{height:45%;position:relative}.bottom{position:absolute;bottom:10px;width:93%;display:flex;flex-direction:column}.discount-price{font-weight:600;font-size:14px}.color{color:#000}\n"], dependencies: [{ 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: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: ColorDirective, selector: "[simpoColor]", inputs: ["simpoColor"] }] }); }
88
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: SmallProductListingComponent, isStandalone: true, selector: "simpo-small-product-listing", inputs: { product: "product", data: "data", isScrollable: "isScrollable", isCategoryProductList: "isCategoryProductList" }, ngImport: i0, template: "<div class=\"product\" [ngClass]=\"{'width' : isScrollable, 'adjustHeightWidth': isCategoryProductList}\" [style.opacity]=\"product?.itemInventory?.openingStock == 0 ? 0.5 : 1\" (click)=\"goToProductDetail(product)\">\r\n <div class=\"prod-img\">\r\n <img [src]=\"product.itemImages?.[0]?.imgUrl\" alt=\"\">\r\n <div class=\"discount\" [style.backgroundColor]=\"data?.styles?.background?.color\" [simpoColor]=\"data?.styles?.background?.color\"\r\n *ngIf=\"getPercentage(product) > '0'\">{{getPercentage(product)}}% off</div>\r\n </div>\r\n <div class=\"p-2 h-40\">\r\n <span class=\"trim-text color\">{{product.name}}</span>\r\n <div class=\"bottom\">\r\n <span class=\"m-1\">\r\n <span class=\"discount-price color\"><span [innerHTML]=\"currency\"></span> {{product.price.discountedPrice}}</span>\r\n <span class=\"strike-through\"><span [innerHTML]=\"currency\"></span> {{product.price.sellingPrice}}</span>\r\n </span>\r\n <div class=\"add-to-cart\"\r\n [style.borderColor]=\"data.styles?.background?.accentColor\"\r\n [ngClass]=\"{'justify-content-between p-0 d-flex': product.quantity, 'justify-content-center': !product.quantity}\">\r\n <ng-container *ngIf=\"product?.itemInventory?.openingStock\">\r\n <ng-container *ngIf=\"!product.quantity\">\r\n <div (click)=\"addItemToCart($event, product, 'ADD')\" [style.color]=\"data.styles?.background?.accentColor\">Add to Cart</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"product.quantity\">\r\n <span class=\"quantity-btn\" (click)=\"addItemToCart($event, product, 'SUBSTRACT')\" [style.backgroundColor]=\"getSupportingColor(data.styles?.background?.accentColor)\" [style.color]=\"data.styles?.background?.accentColor\">-</span>\r\n <span class=\"quantity\" [style.color]=\"data.styles?.background?.accentColor\">{{product.quantity}}</span>\r\n <span class=\"quantity-btn\" (click)=\"addItemToCart($event, product, 'ADD')\" [style.backgroundColor]=\"getSupportingColor(data.styles?.background?.accentColor)\" [style.color]=\"data.styles?.background?.accentColor\">+</span>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!product?.itemInventory?.openingStock\">\r\n <span class=\"d-flex align-items-center justify-content-center w-100\">\r\n <mat-icon>notification_important</mat-icon>\r\n <span class=\"ml-2\">Notify</span>\r\n </span>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- <ng-template #loadingScreen>\r\n <ngx-skeleton-loader *ngIf=\"filterLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\r\n width: '100%',\r\n height: '100%',\r\n 'border-radius': '10px',\r\n 'position': 'relative',\r\n 'right': '5px'\r\n }\" />\r\n</ng-template> -->\r\n", styles: [".product{position:relative;display:flex;flex-direction:column;cursor:pointer;margin-bottom:10px;border-radius:10px;overflow:hidden;height:350px;background-color:#fff}.product .prod-img{position:relative;height:55%;width:100%;overflow:hidden;border:1.8px solid;border-radius:10px;border-color:#e5e7eb}.product .prod-img img{height:100%;width:100%;object-fit:cover}.product img:hover{-webkit-animation:scale-up-center .2s linear both;animation:scale-up-center .2s linear both}.width{margin-right:10px;min-width:195px;max-width:195px}.styling{height:30px;width:30px;border-radius:50%;background-color:#fff;position:absolute;bottom:0;right:-12px}.strike-through{text-decoration:line-through;color:#d3d3d3;font-size:12px;margin-left:5px;position:relative}.add-to-cart{width:100%;cursor:pointer;background-color:#fff;border:1.5px solid transparent;border-radius:5px;padding:5px;text-align:center;align-items:center}.add-to-cart .quantity-btn{padding:5px 10px;font-weight:700}.discount{position:absolute;top:0;padding:5px;width:60px;text-align:center;font-size:12px;border-bottom-right-radius:3px}@media screen and (max-width: 475px){.width{max-width:160px;min-width:160px;height:300px}.adjustHeightWidth{max-width:140px;min-width:140px}}@-webkit-keyframes scale-up-center{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.08);transform:scale(1.08)}}@keyframes scale-up-center{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.08);transform:scale(1.08)}}.h-40{height:45%;position:relative}.bottom{position:absolute;bottom:10px;width:93%;display:flex;flex-direction:column}.discount-price{font-weight:600;font-size:14px}.color{color:#000}\n"], dependencies: [{ 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: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: ColorDirective, selector: "[simpoColor]", inputs: ["simpoColor"] }] }); }
88
89
  }
89
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SmallProductListingComponent, decorators: [{
90
91
  type: Component,
@@ -92,7 +93,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
92
93
  CommonModule,
93
94
  MatIcon,
94
95
  ColorDirective
95
- ], template: "<div class=\"product\" [ngClass]=\"{'width' : isScrollable, 'adjustHeightWidth': isCategoryProductList}\" [style.opacity]=\"product?.itemInventory?.openingStock == 0 ? 0.5 : 1\">\r\n <div class=\"prod-img\" (click)=\"goToProductDetail(product)\">\r\n <img [src]=\"product.itemImages?.[0]?.imgUrl\" alt=\"\">\r\n <div class=\"discount\" [style.backgroundColor]=\"data?.styles?.background?.color\" [simpoColor]=\"data?.styles?.background?.color\"\r\n *ngIf=\"getPercentage(product) > '0'\">{{getPercentage(product)}}% off</div>\r\n </div>\r\n <div class=\"p-2 h-40\">\r\n <span class=\"trim-text color\">{{product.name}}</span>\r\n <div class=\"bottom\">\r\n <span class=\"m-1\">\r\n <span class=\"discount-price color\"><span [innerHTML]=\"currency\"></span> {{product.price.discountedPrice}}</span>\r\n <span class=\"strike-through\"><span [innerHTML]=\"currency\"></span> {{product.price.sellingPrice}}</span>\r\n </span>\r\n <div class=\"add-to-cart\"\r\n [style.borderColor]=\"data.styles?.background?.accentColor\"\r\n [ngClass]=\"{'justify-content-between p-0 d-flex': product.quantity, 'justify-content-center': !product.quantity}\">\r\n <ng-container *ngIf=\"product?.itemInventory?.openingStock\">\r\n <ng-container *ngIf=\"!product.quantity\">\r\n <span (click)=\"addItemToCart(product, 'ADD')\" [style.color]=\"data.styles?.background?.accentColor\">Add to Cart</span>\r\n </ng-container>\r\n <ng-container *ngIf=\"product.quantity\">\r\n <span class=\"quantity-btn\" (click)=\"addItemToCart(product, 'SUBSTRACT')\" [style.backgroundColor]=\"getSupportingColor(data.styles?.background?.accentColor)\" [style.color]=\"data.styles?.background?.accentColor\">-</span>\r\n <span class=\"quantity\" [style.color]=\"data.styles?.background?.accentColor\">{{product.quantity}}</span>\r\n <span class=\"quantity-btn\" (click)=\"addItemToCart(product, 'ADD')\" [style.backgroundColor]=\"getSupportingColor(data.styles?.background?.accentColor)\" [style.color]=\"data.styles?.background?.accentColor\">+</span>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!product?.itemInventory?.openingStock\">\r\n <span class=\"d-flex align-items-center justify-content-center w-100\">\r\n <mat-icon>notification_important</mat-icon>\r\n <span class=\"ml-2\">Notify</span>\r\n </span>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- <ng-template #loadingScreen>\r\n <ngx-skeleton-loader *ngIf=\"filterLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\r\n width: '100%',\r\n height: '100%',\r\n 'border-radius': '10px',\r\n 'position': 'relative',\r\n 'right': '5px'\r\n }\" />\r\n</ng-template> -->\r\n", styles: [".product{position:relative;display:flex;flex-direction:column;cursor:pointer;margin-bottom:10px;border-radius:10px;overflow:hidden;height:350px;background-color:#fff}.product .prod-img{position:relative;height:55%;width:100%;overflow:hidden;border:1.8px solid;border-radius:10px;border-color:#e5e7eb}.product .prod-img img{height:100%;width:100%;object-fit:cover}.product img:hover{-webkit-animation:scale-up-center .2s linear both;animation:scale-up-center .2s linear both}.width{margin-right:10px;min-width:195px;max-width:195px}.styling{height:30px;width:30px;border-radius:50%;background-color:#fff;position:absolute;bottom:0;right:-12px}.strike-through{text-decoration:line-through;color:#d3d3d3;font-size:12px;margin-left:5px;position:relative}.add-to-cart{width:100%;cursor:pointer;background-color:#fff;border:1.5px solid transparent;border-radius:5px;padding:5px;text-align:center;align-items:center}.add-to-cart .quantity-btn{padding:5px 10px;font-weight:700}.discount{position:absolute;top:0;padding:5px;width:60px;text-align:center;font-size:12px;border-bottom-right-radius:3px}@media screen and (max-width: 475px){.width{max-width:160px;min-width:160px;height:300px}.adjustHeightWidth{max-width:140px;min-width:140px}}@-webkit-keyframes scale-up-center{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.08);transform:scale(1.08)}}@keyframes scale-up-center{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.08);transform:scale(1.08)}}.h-40{height:45%;position:relative}.bottom{position:absolute;bottom:10px;width:93%;display:flex;flex-direction:column}.discount-price{font-weight:600;font-size:14px}.color{color:#000}\n"] }]
96
+ ], template: "<div class=\"product\" [ngClass]=\"{'width' : isScrollable, 'adjustHeightWidth': isCategoryProductList}\" [style.opacity]=\"product?.itemInventory?.openingStock == 0 ? 0.5 : 1\" (click)=\"goToProductDetail(product)\">\r\n <div class=\"prod-img\">\r\n <img [src]=\"product.itemImages?.[0]?.imgUrl\" alt=\"\">\r\n <div class=\"discount\" [style.backgroundColor]=\"data?.styles?.background?.color\" [simpoColor]=\"data?.styles?.background?.color\"\r\n *ngIf=\"getPercentage(product) > '0'\">{{getPercentage(product)}}% off</div>\r\n </div>\r\n <div class=\"p-2 h-40\">\r\n <span class=\"trim-text color\">{{product.name}}</span>\r\n <div class=\"bottom\">\r\n <span class=\"m-1\">\r\n <span class=\"discount-price color\"><span [innerHTML]=\"currency\"></span> {{product.price.discountedPrice}}</span>\r\n <span class=\"strike-through\"><span [innerHTML]=\"currency\"></span> {{product.price.sellingPrice}}</span>\r\n </span>\r\n <div class=\"add-to-cart\"\r\n [style.borderColor]=\"data.styles?.background?.accentColor\"\r\n [ngClass]=\"{'justify-content-between p-0 d-flex': product.quantity, 'justify-content-center': !product.quantity}\">\r\n <ng-container *ngIf=\"product?.itemInventory?.openingStock\">\r\n <ng-container *ngIf=\"!product.quantity\">\r\n <div (click)=\"addItemToCart($event, product, 'ADD')\" [style.color]=\"data.styles?.background?.accentColor\">Add to Cart</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"product.quantity\">\r\n <span class=\"quantity-btn\" (click)=\"addItemToCart($event, product, 'SUBSTRACT')\" [style.backgroundColor]=\"getSupportingColor(data.styles?.background?.accentColor)\" [style.color]=\"data.styles?.background?.accentColor\">-</span>\r\n <span class=\"quantity\" [style.color]=\"data.styles?.background?.accentColor\">{{product.quantity}}</span>\r\n <span class=\"quantity-btn\" (click)=\"addItemToCart($event, product, 'ADD')\" [style.backgroundColor]=\"getSupportingColor(data.styles?.background?.accentColor)\" [style.color]=\"data.styles?.background?.accentColor\">+</span>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"!product?.itemInventory?.openingStock\">\r\n <span class=\"d-flex align-items-center justify-content-center w-100\">\r\n <mat-icon>notification_important</mat-icon>\r\n <span class=\"ml-2\">Notify</span>\r\n </span>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!-- <ng-template #loadingScreen>\r\n <ngx-skeleton-loader *ngIf=\"filterLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\r\n width: '100%',\r\n height: '100%',\r\n 'border-radius': '10px',\r\n 'position': 'relative',\r\n 'right': '5px'\r\n }\" />\r\n</ng-template> -->\r\n", styles: [".product{position:relative;display:flex;flex-direction:column;cursor:pointer;margin-bottom:10px;border-radius:10px;overflow:hidden;height:350px;background-color:#fff}.product .prod-img{position:relative;height:55%;width:100%;overflow:hidden;border:1.8px solid;border-radius:10px;border-color:#e5e7eb}.product .prod-img img{height:100%;width:100%;object-fit:cover}.product img:hover{-webkit-animation:scale-up-center .2s linear both;animation:scale-up-center .2s linear both}.width{margin-right:10px;min-width:195px;max-width:195px}.styling{height:30px;width:30px;border-radius:50%;background-color:#fff;position:absolute;bottom:0;right:-12px}.strike-through{text-decoration:line-through;color:#d3d3d3;font-size:12px;margin-left:5px;position:relative}.add-to-cart{width:100%;cursor:pointer;background-color:#fff;border:1.5px solid transparent;border-radius:5px;padding:5px;text-align:center;align-items:center}.add-to-cart .quantity-btn{padding:5px 10px;font-weight:700}.discount{position:absolute;top:0;padding:5px;width:60px;text-align:center;font-size:12px;border-bottom-right-radius:3px}@media screen and (max-width: 475px){.width{max-width:160px;min-width:160px;height:300px}.adjustHeightWidth{max-width:140px;min-width:140px}}@-webkit-keyframes scale-up-center{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.08);transform:scale(1.08)}}@keyframes scale-up-center{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(1.08);transform:scale(1.08)}}.h-40{height:45%;position:relative}.bottom{position:absolute;bottom:10px;width:93%;display:flex;flex-direction:column}.discount-price{font-weight:600;font-size:14px}.color{color:#000}\n"] }]
96
97
  }], ctorParameters: () => [{ type: i1.CartService }, { type: i2.Router }], propDecorators: { product: [{
97
98
  type: Input
98
99
  }], data: [{
@@ -102,4 +103,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
102
103
  }], isCategoryProductList: [{
103
104
  type: Input
104
105
  }] } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hbGwtcHJvZHVjdC1saXN0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZWNvbW1lcmNlL3NlY3Rpb25zL3NtYWxsLXByb2R1Y3QtbGlzdGluZy9zbWFsbC1wcm9kdWN0LWxpc3RpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvc21hbGwtcHJvZHVjdC1saXN0aW5nL3NtYWxsLXByb2R1Y3QtbGlzdGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7O0FBY3BFLE1BQU0sT0FBTyw0QkFBNEI7SUFFdkMsWUFDbUIsV0FBd0IsRUFDeEIsTUFBYztRQURkLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFHekIsY0FBUyxHQUEwQixJQUFJLENBQUM7UUFJdkMsMEJBQXFCLEdBQVksS0FBSyxDQUFDO0lBTjdDLENBQUM7SUFRSixRQUFRO0lBRVIsQ0FBQztJQUVELGFBQWEsQ0FBQyxPQUFnQixFQUFFLElBQXlCO1FBQ3ZELHdDQUF3QztRQUN4QyxrSkFBa0o7UUFDbEosWUFBWTtRQUNaLElBQUk7UUFFSixJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVE7WUFDcEIsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDdkIsSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDbEIsT0FBTyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUM7UUFDeEIsQ0FBQzthQUNJLENBQUM7WUFDSixPQUFPLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQztRQUN4QixDQUFDO1FBRUQsSUFBSSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ2pDLE1BQU0sV0FBVyxHQUF1QixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDeEYsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDaEIsV0FBVyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO2dCQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2pFLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyQixJQUFJLFNBQVMsR0FBWSxLQUFLLENBQUM7WUFDL0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFrQixFQUFFLEVBQUU7Z0JBQzdDLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztvQkFDakMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDbkIsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFBO1lBQ0YsSUFBSSxDQUFDLFNBQVM7Z0JBQ1osSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxZQUFZLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3RyxDQUFDO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUFnQixFQUFFLFNBQWlCO1FBQ2hELElBQUksZUFBZSxHQUF1QixJQUFJLENBQUM7UUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFvQixFQUFFLEVBQUU7WUFDckQsSUFBSSxPQUFPLENBQUMsU0FBUyxJQUFJLFNBQVM7Z0JBQ2hDLGVBQWUsR0FBRyxPQUFPLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUE7UUFFRixPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsYUFBYSxDQUFDLE9BQWdCO1FBQzVCLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4SCxDQUFDO0lBQ0QsaUJBQWlCLENBQUMsT0FBZ0I7UUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxLQUFhO1FBQzlCLElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQztRQUNoQixJQUFJLENBQUMsR0FBRztZQUNOLE9BQU8sS0FBSyxDQUFDO1FBQ2YsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTVCLElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUM1QixJQUFJLENBQUMsR0FBRyxNQUFNLEdBQUcsR0FBRyxDQUFDO1FBRXJCLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLGtCQUFrQixDQUFDLFFBQVEsQ0FBQztJQUNyQyxDQUFDOzhHQXZGVSw0QkFBNEI7a0dBQTVCLDRCQUE0QixtTkNyQnpDLHcyRkE4Q0EsaXRERGhDSSxZQUFZLGlPQUNaLE9BQU8sMklBQ1AsY0FBYzs7MkZBS0wsNEJBQTRCO2tCQVh4QyxTQUFTOytCQUNFLDZCQUE2QixjQUMzQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixPQUFPO3dCQUNQLGNBQWM7cUJBQ2Y7cUdBWVEsT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJdGVtVmFyaWFudCwgUHJvZHVjdCB9IGZyb20gJy4uLy4uL3N0eWxlcy9wcm9kdWN0Lm1vZGFsJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQlVTSU5FU1NfQ09OU1RBTlRTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2J1c2luZXNzLmNvbnN0YW50JztcclxuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBPcmRlcmVkSXRlbXMgfSBmcm9tICcuLi8uLi9zdHlsZXMvT3JkZXJlZEl0ZW1zLm1vZGFsJztcclxuaW1wb3J0IHsgQ2FydFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb2xvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb2xvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1zbWFsbC1wcm9kdWN0LWxpc3RpbmcnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0SWNvbixcclxuICAgIENvbG9yRGlyZWN0aXZlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vc21hbGwtcHJvZHVjdC1saXN0aW5nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vc21hbGwtcHJvZHVjdC1saXN0aW5nLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbWFsbFByb2R1Y3RMaXN0aW5nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXJcclxuICApIHt9XHJcblxyXG4gIHByaXZhdGUgVVNFUl9DQVJUOiBPcmRlcmVkSXRlbXNbXSB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHByb2R1Y3QhOiBQcm9kdWN0O1xyXG4gIEBJbnB1dCgpIGRhdGE/OiBhbnk7XHJcbiAgQElucHV0KCkgaXNTY3JvbGxhYmxlPzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpc0NhdGVnb3J5UHJvZHVjdExpc3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgYWRkSXRlbVRvQ2FydChwcm9kdWN0OiBQcm9kdWN0LCB0eXBlOiAnQUREJyB8ICdTVUJTVFJBQ1QnKSB7XHJcbiAgICAvLyBpZiAodGhpcy5pc0l0ZW1PdXRPZlN0b2NrKHByb2R1Y3QpKSB7XHJcbiAgICAvLyAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICd3YXJuJywgc3VtbWFyeTogJ0NhcnQnLCBkZXRhaWw6ICdJdGVtIGlzIG5vdCBhdmFpbGFibGUgYXMgb2Ygbm93LiBXZSB3aWxsIG5vdGlmeSB5b3Ugb25jZSBhdmFpbGFibGUnIH0pO1xyXG4gICAgLy8gICByZXR1cm47XHJcbiAgICAvLyB9XHJcblxyXG4gICAgaWYgKCFwcm9kdWN0Py5xdWFudGl0eSlcclxuICAgICAgcHJvZHVjdC5xdWFudGl0eSA9IDA7XHJcbiAgICBpZiAodHlwZSA9PSAnQUREJykge1xyXG4gICAgICBwcm9kdWN0LnF1YW50aXR5ICs9IDE7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcHJvZHVjdC5xdWFudGl0eSAtPSAxO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChwcm9kdWN0Py5pdGVtVmFyaWFudD8ubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnN0IGl0ZW1WYXJpZW50OiBJdGVtVmFyaWFudCB8IG51bGwgPSB0aGlzLmdldEl0ZW1WYXJpZW50KHByb2R1Y3QsIHByb2R1Y3QudmFyaWVudElkKTtcclxuICAgICAgaWYgKGl0ZW1WYXJpZW50KSB7XHJcbiAgICAgICAgaXRlbVZhcmllbnQucXVhbnRpdHkgPSBwcm9kdWN0LnF1YW50aXR5O1xyXG4gICAgICAgIHRoaXMuY2FydFNlcnZpY2UuYWRkSXRlbVRvQ2FydChwcm9kdWN0LCBpdGVtVmFyaWVudC52YXJpYW50SWQpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNhcnRTZXJ2aWNlLmFkZEl0ZW1Ub0NhcnQocHJvZHVjdCk7XHJcbiAgICB9XHJcbiAgICBpZiAocHJvZHVjdC5xdWFudGl0eSkge1xyXG4gICAgICBsZXQgaXNQcmVzZW50OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuVVNFUl9DQVJUPy5mb3JFYWNoKChpdGVtOiBPcmRlcmVkSXRlbXMpID0+IHtcclxuICAgICAgICBpZiAoaXRlbS52YXJpZW50SWQgPT0gcHJvZHVjdC52YXJpZW50SWQpIHtcclxuICAgICAgICAgIGl0ZW0ucXVhbnRpdHkgPSBwcm9kdWN0LnF1YW50aXR5O1xyXG4gICAgICAgICAgaXNQcmVzZW50ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIGlmICghaXNQcmVzZW50KVxyXG4gICAgICAgIHRoaXMuVVNFUl9DQVJUPy5wdXNoKG5ldyBPcmRlcmVkSXRlbXMocHJvZHVjdCwgcHJvZHVjdC52YXJpZW50SWQpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuVVNFUl9DQVJUID0gdGhpcy5VU0VSX0NBUlQ/LmZpbHRlcigoaXRlbTogT3JkZXJlZEl0ZW1zKSA9PiBpdGVtLnZhcmllbnRJZCAhPSBwcm9kdWN0LnZhcmllbnRJZCkgPz8gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtVmFyaWVudChwcm9kdWN0OiBQcm9kdWN0LCB2YXJpZW50SWQ6IHN0cmluZyk6IEl0ZW1WYXJpYW50IHwgbnVsbCB7XHJcbiAgICBsZXQgc2VsZWN0ZWRWYXJpZW50OiBJdGVtVmFyaWFudCB8IG51bGwgPSBudWxsO1xyXG4gICAgcHJvZHVjdD8uaXRlbVZhcmlhbnQ/LmZvckVhY2goKHZhcmllbnQ6IEl0ZW1WYXJpYW50KSA9PiB7XHJcbiAgICAgIGlmICh2YXJpZW50LnZhcmlhbnRJZCA9PSB2YXJpZW50SWQpXHJcbiAgICAgICAgc2VsZWN0ZWRWYXJpZW50ID0gdmFyaWVudDtcclxuICAgIH0pXHJcblxyXG4gICAgcmV0dXJuIHNlbGVjdGVkVmFyaWVudDtcclxuICB9XHJcbiAgZ2V0UGVyY2VudGFnZShwcm9kdWN0OiBQcm9kdWN0KSB7XHJcbiAgICByZXR1cm4gKCgocHJvZHVjdC5wcmljZS5zZWxsaW5nUHJpY2UgLSBwcm9kdWN0LnByaWNlLmRpc2NvdW50ZWRQcmljZSkgLyBwcm9kdWN0LnByaWNlLnNlbGxpbmdQcmljZSkgKiAxMDApLnRvRml4ZWQoMCk7XHJcbiAgfVxyXG4gIGdvVG9Qcm9kdWN0RGV0YWlsKHByb2R1Y3Q6IFByb2R1Y3QpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgZGV0YWlsc2BdLCB7IHF1ZXJ5UGFyYW1zOiB7IGlkOiBwcm9kdWN0Lml0ZW1JZCB9IH0pO1xyXG4gIH1cclxuICBnZXRTdXBwb3J0aW5nQ29sb3IoY29sb3I6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgaGV4ID0gY29sb3I7XHJcbiAgICBpZiAoIWhleClcclxuICAgICAgcmV0dXJuIGNvbG9yO1xyXG4gICAgaGV4ID0gaGV4LnJlcGxhY2UoL14jLywgJycpO1xyXG5cclxuICAgIGxldCBiaWdpbnQgPSBwYXJzZUludChoZXgsIDE2KTtcclxuICAgIGxldCByID0gKGJpZ2ludCA+PiAxNikgJiAyNTU7XHJcbiAgICBsZXQgZyA9IChiaWdpbnQgPj4gOCkgJiAyNTU7XHJcbiAgICBsZXQgYiA9IGJpZ2ludCAmIDI1NTtcclxuXHJcbiAgICByZXR1cm4gYHJnYmEoJHtyfSwgJHtnfSwgJHtifSwgMC40KWA7XHJcbiAgfVxyXG5cclxuICBnZXQgY3VycmVuY3koKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBCVVNJTkVTU19DT05TVEFOVFMuQ1VSUkVOQ1k7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwcm9kdWN0XCIgW25nQ2xhc3NdPVwieyd3aWR0aCcgOiBpc1Njcm9sbGFibGUsICdhZGp1c3RIZWlnaHRXaWR0aCc6IGlzQ2F0ZWdvcnlQcm9kdWN0TGlzdH1cIiBbc3R5bGUub3BhY2l0eV09XCJwcm9kdWN0Py5pdGVtSW52ZW50b3J5Py5vcGVuaW5nU3RvY2sgPT0gMCA/IDAuNSA6IDFcIj5cclxuICA8ZGl2IGNsYXNzPVwicHJvZC1pbWdcIiAoY2xpY2spPVwiZ29Ub1Byb2R1Y3REZXRhaWwocHJvZHVjdClcIj5cclxuICAgIDxpbWcgW3NyY109XCJwcm9kdWN0Lml0ZW1JbWFnZXM/LlswXT8uaW1nVXJsXCIgYWx0PVwiXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZGlzY291bnRcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uY29sb3JcIiBbc2ltcG9Db2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmNvbG9yXCJcclxuICAgICAgKm5nSWY9XCJnZXRQZXJjZW50YWdlKHByb2R1Y3QpID4gJzAnXCI+e3tnZXRQZXJjZW50YWdlKHByb2R1Y3QpfX0lIG9mZjwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJwLTIgaC00MFwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJ0cmltLXRleHQgY29sb3JcIj57e3Byb2R1Y3QubmFtZX19PC9zcGFuPlxyXG4gICAgPGRpdiBjbGFzcz1cImJvdHRvbVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm0tMVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGlzY291bnQtcHJpY2UgY29sb3JcIj48c3BhbiBbaW5uZXJIVE1MXT1cImN1cnJlbmN5XCI+PC9zcGFuPiB7e3Byb2R1Y3QucHJpY2UuZGlzY291bnRlZFByaWNlfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzdHJpa2UtdGhyb3VnaFwiPjxzcGFuIFtpbm5lckhUTUxdPVwiY3VycmVuY3lcIj48L3NwYW4+IHt7cHJvZHVjdC5wcmljZS5zZWxsaW5nUHJpY2V9fTwvc3Bhbj5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWRkLXRvLWNhcnRcIlxyXG4gICAgICAgIFtzdHlsZS5ib3JkZXJDb2xvcl09XCJkYXRhLnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnanVzdGlmeS1jb250ZW50LWJldHdlZW4gcC0wIGQtZmxleCc6IHByb2R1Y3QucXVhbnRpdHksICdqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJzogIXByb2R1Y3QucXVhbnRpdHl9XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb2R1Y3Q/Lml0ZW1JbnZlbnRvcnk/Lm9wZW5pbmdTdG9ja1wiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFwcm9kdWN0LnF1YW50aXR5XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJhZGRJdGVtVG9DYXJ0KHByb2R1Y3QsICdBREQnKVwiICBbc3R5bGUuY29sb3JdPVwiZGF0YS5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+QWRkIHRvIENhcnQ8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9kdWN0LnF1YW50aXR5XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicXVhbnRpdHktYnRuXCIgKGNsaWNrKT1cImFkZEl0ZW1Ub0NhcnQocHJvZHVjdCwgJ1NVQlNUUkFDVCcpXCIgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJnZXRTdXBwb3J0aW5nQ29sb3IoZGF0YS5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yKVwiIFtzdHlsZS5jb2xvcl09XCJkYXRhLnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj4tPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInF1YW50aXR5XCIgIFtzdHlsZS5jb2xvcl09XCJkYXRhLnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj57e3Byb2R1Y3QucXVhbnRpdHl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJxdWFudGl0eS1idG5cIiAoY2xpY2spPVwiYWRkSXRlbVRvQ2FydChwcm9kdWN0LCAnQUREJylcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImdldFN1cHBvcnRpbmdDb2xvcihkYXRhLnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3IpXCIgW3N0eWxlLmNvbG9yXT1cImRhdGEuc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPis8L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXByb2R1Y3Q/Lml0ZW1JbnZlbnRvcnk/Lm9wZW5pbmdTdG9ja1wiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgdy0xMDBcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPm5vdGlmaWNhdGlvbl9pbXBvcnRhbnQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTJcIj5Ob3RpZnk8L3NwYW4+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPCEtLSA8bmctdGVtcGxhdGUgI2xvYWRpbmdTY3JlZW4+XHJcbiAgPG5neC1za2VsZXRvbi1sb2FkZXIgKm5nSWY9XCJmaWx0ZXJMb2FkaW5nXCIgY291bnQ9XCIxXCIgYXBwZWFyYW5jZT1cImNpcmNsZVwiIFt0aGVtZV09XCJ7XHJcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXHJcbiAgICAgICAgICAnYm9yZGVyLXJhZGl1cyc6ICcxMHB4JyxcclxuICAgICAgICAgICdwb3NpdGlvbic6ICdyZWxhdGl2ZScsXHJcbiAgICAgICAgICAncmlnaHQnOiAnNXB4J1xyXG4gICAgICAgIH1cIiAvPlxyXG48L25nLXRlbXBsYXRlPiAtLT5cclxuIl19
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hbGwtcHJvZHVjdC1saXN0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZWNvbW1lcmNlL3NlY3Rpb25zL3NtYWxsLXByb2R1Y3QtbGlzdGluZy9zbWFsbC1wcm9kdWN0LWxpc3RpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvc21hbGwtcHJvZHVjdC1saXN0aW5nL3NtYWxsLXByb2R1Y3QtbGlzdGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7O0FBY3BFLE1BQU0sT0FBTyw0QkFBNEI7SUFFdkMsWUFDbUIsV0FBd0IsRUFDeEIsTUFBYztRQURkLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFHekIsY0FBUyxHQUEwQixJQUFJLENBQUM7UUFJdkMsMEJBQXFCLEdBQVksS0FBSyxDQUFDO0lBTjdDLENBQUM7SUFRSixRQUFRO0lBRVIsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFnQyxFQUFFLE9BQWdCLEVBQUUsSUFBeUI7UUFDekYsd0NBQXdDO1FBQ3hDLGtKQUFrSjtRQUNsSixZQUFZ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QUksR0FBRyxHQUFHLEtBQUssQ0FBQztRQUNoQixJQUFJLENBQUMsR0FBRztZQUNOLE9BQU8sS0FBSyxDQUFDO1FBQ2YsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTVCLElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUM1QixJQUFJLENBQUMsR0FBRyxNQUFNLEdBQUcsR0FBRyxDQUFDO1FBRXJCLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLGtCQUFrQixDQUFDLFFBQVEsQ0FBQztJQUNyQyxDQUFDOzhHQXhGVSw0QkFBNEI7a0dBQTVCLDRCQUE0QixtTkNyQnpDLDgzRkE4Q0EsaXRERGhDSSxZQUFZLGlPQUNaLE9BQU8sMklBQ1AsY0FBYzs7MkZBS0wsNEJBQTRCO2tCQVh4QyxTQUFTOytCQUNFLDZCQUE2QixjQUMzQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixPQUFPO3dCQUNQLGNBQWM7cUJBQ2Y7cUdBWVEsT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJdGVtVmFyaWFudCwgUHJvZHVjdCB9IGZyb20gJy4uLy4uL3N0eWxlcy9wcm9kdWN0Lm1vZGFsJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQlVTSU5FU1NfQ09OU1RBTlRTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2J1c2luZXNzLmNvbnN0YW50JztcclxuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBPcmRlcmVkSXRlbXMgfSBmcm9tICcuLi8uLi9zdHlsZXMvT3JkZXJlZEl0ZW1zLm1vZGFsJztcclxuaW1wb3J0IHsgQ2FydFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb2xvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb2xvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1zbWFsbC1wcm9kdWN0LWxpc3RpbmcnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0SWNvbixcclxuICAgIENvbG9yRGlyZWN0aXZlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vc21hbGwtcHJvZHVjdC1saXN0aW5nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vc21hbGwtcHJvZHVjdC1saXN0aW5nLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbWFsbFByb2R1Y3RMaXN0aW5nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXJcclxuICApIHt9XHJcblxyXG4gIHByaXZhdGUgVVNFUl9DQVJUOiBPcmRlcmVkSXRlbXNbXSB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHByb2R1Y3QhOiBQcm9kdWN0O1xyXG4gIEBJbnB1dCgpIGRhdGE/OiBhbnk7XHJcbiAgQElucHV0KCkgaXNTY3JvbGxhYmxlPzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpc0NhdGVnb3J5UHJvZHVjdExpc3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgYWRkSXRlbVRvQ2FydChldmVudDogUG9pbnRlckV2ZW50IHwgTW91c2VFdmVudCwgcHJvZHVjdDogUHJvZHVjdCwgdHlwZTogJ0FERCcgfCAnU1VCU1RSQUNUJykge1xyXG4gICAgLy8gaWYgKHRoaXMuaXNJdGVtT3V0T2ZTdG9jayhwcm9kdWN0KSkge1xyXG4gICAgLy8gICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnd2FybicsIHN1bW1hcnk6ICdDYXJ0JywgZGV0YWlsOiAnSXRlbSBpcyBub3QgYXZhaWxhYmxlIGFzIG9mIG5vdy4gV2Ugd2lsbCBub3RpZnkgeW91IG9uY2UgYXZhaWxhYmxlJyB9KTtcclxuICAgIC8vICAgcmV0dXJuO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIGlmICghcHJvZHVjdD8ucXVhbnRpdHkpXHJcbiAgICAgIHByb2R1Y3QucXVhbnRpdHkgPSAwO1xyXG4gICAgaWYgKHR5cGUgPT0gJ0FERCcpIHtcclxuICAgICAgcHJvZHVjdC5xdWFudGl0eSArPSAxO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHByb2R1Y3QucXVhbnRpdHkgLT0gMTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocHJvZHVjdD8uaXRlbVZhcmlhbnQ/Lmxlbmd0aCkge1xyXG4gICAgICBjb25zdCBpdGVtVmFyaWVudDogSXRlbVZhcmlhbnQgfCBudWxsID0gdGhpcy5nZXRJdGVtVmFyaWVudChwcm9kdWN0LCBwcm9kdWN0LnZhcmllbnRJZCk7XHJcbiAgICAgIGlmIChpdGVtVmFyaWVudCkge1xyXG4gICAgICAgIGl0ZW1WYXJpZW50LnF1YW50aXR5ID0gcHJvZHVjdC5xdWFudGl0eTtcclxuICAgICAgICB0aGlzLmNhcnRTZXJ2aWNlLmFkZEl0ZW1Ub0NhcnQocHJvZHVjdCwgaXRlbVZhcmllbnQudmFyaWFudElkKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jYXJ0U2VydmljZS5hZGRJdGVtVG9DYXJ0KHByb2R1Y3QpO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb2R1Y3QucXVhbnRpdHkpIHtcclxuICAgICAgbGV0IGlzUHJlc2VudDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLlVTRVJfQ0FSVD8uZm9yRWFjaCgoaXRlbTogT3JkZXJlZEl0ZW1zKSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0udmFyaWVudElkID09IHByb2R1Y3QudmFyaWVudElkKSB7XHJcbiAgICAgICAgICBpdGVtLnF1YW50aXR5ID0gcHJvZHVjdC5xdWFudGl0eTtcclxuICAgICAgICAgIGlzUHJlc2VudCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICBpZiAoIWlzUHJlc2VudClcclxuICAgICAgICB0aGlzLlVTRVJfQ0FSVD8ucHVzaChuZXcgT3JkZXJlZEl0ZW1zKHByb2R1Y3QsIHByb2R1Y3QudmFyaWVudElkKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLlVTRVJfQ0FSVCA9IHRoaXMuVVNFUl9DQVJUPy5maWx0ZXIoKGl0ZW06IE9yZGVyZWRJdGVtcykgPT4gaXRlbS52YXJpZW50SWQgIT0gcHJvZHVjdC52YXJpZW50SWQpID8/IFtdO1xyXG4gICAgfVxyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBnZXRJdGVtVmFyaWVudChwcm9kdWN0OiBQcm9kdWN0LCB2YXJpZW50SWQ6IHN0cmluZyk6IEl0ZW1WYXJpYW50IHwgbnVsbCB7XHJcbiAgICBsZXQgc2VsZWN0ZWRWYXJpZW50OiBJdGVtVmFyaWFudCB8IG51bGwgPSBudWxsO1xyXG4gICAgcHJvZHVjdD8uaXRlbVZhcmlhbnQ/LmZvckVhY2goKHZhcmllbnQ6IEl0ZW1WYXJpYW50KSA9PiB7XHJcbiAgICAgIGlmICh2YXJpZW50LnZhcmlhbnRJZCA9PSB2YXJpZW50SWQpXHJcbiAgICAgICAgc2VsZWN0ZWRWYXJpZW50ID0gdmFyaWVudDtcclxuICAgIH0pXHJcblxyXG4gICAgcmV0dXJuIHNlbGVjdGVkVmFyaWVudDtcclxuICB9XHJcbiAgZ2V0UGVyY2VudGFnZShwcm9kdWN0OiBQcm9kdWN0KSB7XHJcbiAgICByZXR1cm4gKCgocHJvZHVjdC5wcmljZS5zZWxsaW5nUHJpY2UgLSBwcm9kdWN0LnByaWNlLmRpc2NvdW50ZWRQcmljZSkgLyBwcm9kdWN0LnByaWNlLnNlbGxpbmdQcmljZSkgKiAxMDApLnRvRml4ZWQoMCk7XHJcbiAgfVxyXG4gIGdvVG9Qcm9kdWN0RGV0YWlsKHByb2R1Y3Q6IFByb2R1Y3QpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgZGV0YWlsc2BdLCB7IHF1ZXJ5UGFyYW1zOiB7IGlkOiBwcm9kdWN0Lml0ZW1JZCB9IH0pO1xyXG4gIH1cclxuICBnZXRTdXBwb3J0aW5nQ29sb3IoY29sb3I6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgaGV4ID0gY29sb3I7XHJcbiAgICBpZiAoIWhleClcclxuICAgICAgcmV0dXJuIGNvbG9yO1xyXG4gICAgaGV4ID0gaGV4LnJlcGxhY2UoL14jLywgJycpO1xyXG5cclxuICAgIGxldCBiaWdpbnQgPSBwYXJzZUludChoZXgsIDE2KTtcclxuICAgIGxldCByID0gKGJpZ2ludCA+PiAxNikgJiAyNTU7XHJcbiAgICBsZXQgZyA9IChiaWdpbnQgPj4gOCkgJiAyNTU7XHJcbiAgICBsZXQgYiA9IGJpZ2ludCAmIDI1NTtcclxuXHJcbiAgICByZXR1cm4gYHJnYmEoJHtyfSwgJHtnfSwgJHtifSwgMC40KWA7XHJcbiAgfVxyXG5cclxuICBnZXQgY3VycmVuY3koKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBCVVNJTkVTU19DT05TVEFOVFMuQ1VSUkVOQ1k7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwcm9kdWN0XCIgW25nQ2xhc3NdPVwieyd3aWR0aCcgOiBpc1Njcm9sbGFibGUsICdhZGp1c3RIZWlnaHRXaWR0aCc6IGlzQ2F0ZWdvcnlQcm9kdWN0TGlzdH1cIiBbc3R5bGUub3BhY2l0eV09XCJwcm9kdWN0Py5pdGVtSW52ZW50b3J5Py5vcGVuaW5nU3RvY2sgPT0gMCA/IDAuNSA6IDFcIiAoY2xpY2spPVwiZ29Ub1Byb2R1Y3REZXRhaWwocHJvZHVjdClcIj5cclxuICA8ZGl2IGNsYXNzPVwicHJvZC1pbWdcIj5cclxuICAgIDxpbWcgW3NyY109XCJwcm9kdWN0Lml0ZW1JbWFnZXM/LlswXT8uaW1nVXJsXCIgYWx0PVwiXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZGlzY291bnRcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uY29sb3JcIiBbc2ltcG9Db2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmNvbG9yXCJcclxuICAgICAgKm5nSWY9XCJnZXRQZXJjZW50YWdlKHByb2R1Y3QpID4gJzAnXCI+e3tnZXRQZXJjZW50YWdlKHByb2R1Y3QpfX0lIG9mZjwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJwLTIgaC00MFwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJ0cmltLXRleHQgY29sb3JcIj57e3Byb2R1Y3QubmFtZX19PC9zcGFuPlxyXG4gICAgPGRpdiBjbGFzcz1cImJvdHRvbVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cIm0tMVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGlzY291bnQtcHJpY2UgY29sb3JcIj48c3BhbiBbaW5uZXJIVE1MXT1cImN1cnJlbmN5XCI+PC9zcGFuPiB7e3Byb2R1Y3QucHJpY2UuZGlzY291bnRlZFByaWNlfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzdHJpa2UtdGhyb3VnaFwiPjxzcGFuIFtpbm5lckhUTUxdPVwiY3VycmVuY3lcIj48L3NwYW4+IHt7cHJvZHVjdC5wcmljZS5zZWxsaW5nUHJpY2V9fTwvc3Bhbj5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWRkLXRvLWNhcnRcIlxyXG4gICAgICAgIFtzdHlsZS5ib3JkZXJDb2xvcl09XCJkYXRhLnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnanVzdGlmeS1jb250ZW50LWJldHdlZW4gcC0wIGQtZmxleCc6IHByb2R1Y3QucXVhbnRpdHksICdqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJzogIXByb2R1Y3QucXVhbnRpdHl9XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb2R1Y3Q/Lml0ZW1JbnZlbnRvcnk/Lm9wZW5pbmdTdG9ja1wiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFwcm9kdWN0LnF1YW50aXR5XCI+XHJcbiAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImFkZEl0ZW1Ub0NhcnQoJGV2ZW50LCBwcm9kdWN0LCAnQUREJylcIiAgW3N0eWxlLmNvbG9yXT1cImRhdGEuc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPkFkZCB0byBDYXJ0PC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9kdWN0LnF1YW50aXR5XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicXVhbnRpdHktYnRuXCIgKGNsaWNrKT1cImFkZEl0ZW1Ub0NhcnQoJGV2ZW50LCBwcm9kdWN0LCAnU1VCU1RSQUNUJylcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImdldFN1cHBvcnRpbmdDb2xvcihkYXRhLnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3IpXCIgW3N0eWxlLmNvbG9yXT1cImRhdGEuc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPi08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicXVhbnRpdHlcIiAgW3N0eWxlLmNvbG9yXT1cImRhdGEuc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPnt7cHJvZHVjdC5xdWFudGl0eX19PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInF1YW50aXR5LWJ0blwiIChjbGljayk9XCJhZGRJdGVtVG9DYXJ0KCRldmVudCwgcHJvZHVjdCwgJ0FERCcpXCIgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJnZXRTdXBwb3J0aW5nQ29sb3IoZGF0YS5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yKVwiIFtzdHlsZS5jb2xvcl09XCJkYXRhLnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj4rPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFwcm9kdWN0Py5pdGVtSW52ZW50b3J5Py5vcGVuaW5nU3RvY2tcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHctMTAwXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5ub3RpZmljYXRpb25faW1wb3J0YW50PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC0yXCI+Tm90aWZ5PC9zcGFuPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gPG5nLXRlbXBsYXRlICNsb2FkaW5nU2NyZWVuPlxyXG4gIDxuZ3gtc2tlbGV0b24tbG9hZGVyICpuZ0lmPVwiZmlsdGVyTG9hZGluZ1wiIGNvdW50PVwiMVwiIGFwcGVhcmFuY2U9XCJjaXJjbGVcIiBbdGhlbWVdPVwie1xyXG4gICAgICAgICAgd2lkdGg6ICcxMDAlJyxcclxuICAgICAgICAgIGhlaWdodDogJzEwMCUnLFxyXG4gICAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiAnMTBweCcsXHJcbiAgICAgICAgICAncG9zaXRpb24nOiAncmVsYXRpdmUnLFxyXG4gICAgICAgICAgJ3JpZ2h0JzogJzVweCdcclxuICAgICAgICB9XCIgLz5cclxuPC9uZy10ZW1wbGF0ZT4gLS0+XHJcbiJdfQ==