simpo-component-library 3.6.899 → 3.6.901

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 (25) hide show
  1. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.component.mjs +26 -3
  2. package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +10 -14
  3. package/esm2022/lib/ecommerce/sections/product-list/product-list.component.mjs +18 -3
  4. package/esm2022/lib/ecommerce/sections/small-product-listing/small-product-listing.component.mjs +12 -3
  5. package/esm2022/lib/ecommerce/styles/product.modal.mjs +3 -1
  6. package/fesm2022/simpo-component-library.mjs +64 -19
  7. package/fesm2022/simpo-component-library.mjs.map +1 -1
  8. package/lib/components/input-fields/input-fields.component.d.ts +1 -1
  9. package/lib/ecommerce/sections/authentication-required/authentication-required.component.d.ts +1 -1
  10. package/lib/ecommerce/sections/featured-category/featured-category.component.d.ts +1 -1
  11. package/lib/ecommerce/sections/featured-category/featured-collection.component.d.ts +1 -1
  12. package/lib/ecommerce/sections/featured-products/featured-products.component.d.ts +6 -0
  13. package/lib/ecommerce/sections/new-collection/new-collection.component.d.ts +1 -1
  14. package/lib/ecommerce/sections/product-desc/product-desc.component.d.ts +2 -1
  15. package/lib/ecommerce/sections/product-list/product-list.component.d.ts +8 -2
  16. package/lib/ecommerce/sections/schemes/schemes.component.d.ts +1 -1
  17. package/lib/ecommerce/sections/small-product-listing/small-product-listing.component.d.ts +5 -2
  18. package/lib/ecommerce/styles/product.modal.d.ts +2 -0
  19. package/lib/sections/banner-carousel/banner-carousel.component.d.ts +1 -1
  20. package/lib/sections/image-grid-hotspot/image-grid-hotspot.component.d.ts +1 -1
  21. package/lib/sections/image-grid-section/image-grid-section.component.d.ts +1 -1
  22. package/lib/sections/pricing-section/pricing-section.component.d.ts +1 -1
  23. package/package.json +1 -1
  24. package/simpo-component-library-3.6.901.tgz +0 -0
  25. package/simpo-component-library-3.6.899.tgz +0 -0
@@ -27,11 +27,20 @@ export class SmallProductListingComponent {
27
27
  this.USER_CART = null;
28
28
  this.isCategoryProductList = false;
29
29
  this.IsEcommerce = false;
30
+ this.currentTagIdx = 0;
30
31
  this.imageIndex = -1;
31
32
  }
32
33
  ngOnInit() {
33
34
  this.IsEcommerce = localStorage.getItem("websiteType") != 'STATIC' ? true : false;
34
35
  console.log(this.data, this.product);
36
+ if ((this.product?.tags?.length ?? 0) > 1) {
37
+ this.tagTimer = setInterval(() => {
38
+ this.currentTagIdx = (this.currentTagIdx + 1) % this.product.tags.length;
39
+ }, 3000);
40
+ }
41
+ }
42
+ ngOnDestroy() {
43
+ clearInterval(this.tagTimer);
35
44
  }
36
45
  addItemToCart(event, product, type) {
37
46
  // if (this.isItemOutOfStock(product)) {
@@ -223,7 +232,7 @@ export class SmallProductListingComponent {
223
232
  return brightness < 128;
224
233
  }
225
234
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SmallProductListingComponent, deps: [{ token: i1.CartService }, { token: i2.Router }, { token: i3.RestService }, { token: i4.StorageServiceService }, { token: i5.MessageService }], target: i0.ɵɵFactoryTarget.Component }); }
226
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SmallProductListingComponent, isStandalone: true, selector: "simpo-small-product-listing", inputs: { product: "product", data: "data", isScrollable: "isScrollable", isCategoryProductList: "isCategoryProductList", customClass: "customClass", index: "index" }, providers: [MessageService], ngImport: i0, template: "<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"></p-toast>\r\n<div class=\"product\" [ngClass]=\"{'width' : isScrollable, 'adjustHeightWidth': isCategoryProductList}\"\r\n [style.opacity]=\"product?.itemInventory?.openingStock == 0 ? 0.5 : 1\" [attr.style]=\"customClass\">\r\n <div class=\"prod-img\" [class.fade-out]=\"imageIndex == index\">\r\n <image-loading [imageUrl]=\"getProductImages(product)\" [hash]=\"product.itemImages?.[0]?.blurhash\"\r\n (click)=\"goToProductDetail(product)\" [theme]=\"data?.styles?.theme\"></image-loading>\r\n <div class=\"discount\" [style.backgroundColor]=\"data?.styles?.background?.color\"\r\n [simpoColor]=\"data?.styles?.background?.color\" *ngIf=\"getPercentage(product) > '0'\">{{getPercentage(product)}}%\r\n off</div>\r\n\r\n <div class=\"image-price\" *ngIf=\"product?.price\">\r\n <span class=\"selling-price\">\r\n <span [innerHTML]=\"currency\"></span> {{product?.price?.sellingPrice ?? 0}}\r\n </span>\r\n <span class=\"original-price\" *ngIf=\"product.price.value - product.price.discountedPrice > 2\">\r\n <span [innerHTML]=\"currency\"></span> {{product?.price?.value ?? 0}}\r\n </span>\r\n </div>\r\n\r\n <div class=\"carousel-buttons\" *ngIf=\"(product?.itemImages?.length || 0) > 1\">\r\n <div><mat-icon (click)=\"changeImage(product, 'PREV')\" class=\"clr-black\">keyboard_arrow_left</mat-icon></div>\r\n <div><mat-icon (click)=\"changeImage(product, 'NEXT')\" class=\"clr-black\">keyboard_arrow_right</mat-icon></div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"product-heading h-38 text-center\" (click)=\"goToProductDetail(product)\">\r\n <span class=\"trim-text\" [style.color]=\"getTextColor()\">{{product.name}}</span>\r\n <div class=\"bottom\">\r\n <div class=\"review-rating\" *ngIf=\"getDisplayRating(product)\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/795141c1774591394997svgviewer-output.svg\" width=\"18\"\r\n height=\"18\"> \r\n <span class=\"rating-value\" [style.color]=\"getTextColor()\">{{ getDisplayRating(product) }}</span>\r\n </div>\r\n\r\n <div class=\"add-to-cart\" [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 (click)=\"removeDefault($event)\">\r\n <!-- *ngIf=\"data?.content?.display?.showButton\" -->\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\"\r\n *ngIf=\"IsEcommerce\">\r\n Add to Cart</div>\r\n <div [style.color]=\"data.styles?.background?.accentColor\" *ngIf=\"!IsEcommerce\" (click)=\"raiseLead()\">Notify\r\n Me</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"product.quantity\">\r\n <span class=\"quantity-btn\" (click)=\"addItemToCart($event, product, 'SUBSTRACT')\"\r\n [style.backgroundColor]=\"getSupportingColor(data.styles?.background?.accentColor)\"\r\n [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')\"\r\n [style.backgroundColor]=\"getSupportingColor(data.styles?.background?.accentColor)\"\r\n [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\" [style.color]=\"getTextColor()\">\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> -->", styles: [".product{position:relative;display:flex;flex-direction:column;cursor:pointer;margin-bottom:10px;border-radius:10px;overflow:hidden;height:350px}.product .prod-img{position:relative;height:65%;width:100%;overflow:hidden;border:1.8px solid;border-radius:10px;border-color:#e5e7eb}.product .prod-img img{height:100%!important;width:100%!important;object-fit:cover}::ng-deep image-loading img{height:100%!important}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.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}.product-heading{padding:18px 10px 10px}.strike-through{text-decoration:line-through;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;left:0;padding:5px;width:60px;text-align:center;font-size:12px;border-bottom-right-radius:3px;z-index:2}.image-price{position:absolute;bottom:10px;right:10px;background:#fffffff2;padding:6px 10px;border-radius:8px;display:flex;align-items:center;gap:6px;z-index:2;box-shadow:0 2px 10px #0000001f;max-width:calc(100% - 20px);flex-wrap:wrap}.selling-price{font-weight:600;font-size:14px;line-height:1;color:#000}.original-price{text-decoration:line-through;font-size:12px;line-height:1}.review-rating{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 0}.rating-star{color:#e8e808;font-size:32px;line-height:1}.rating-value{font-size:16px;font-weight:600;line-height:1}@media screen and (max-width: 475px){.width{max-width:160px;min-width:160px;height:300px}.adjustHeightWidth{max-width:100%;min-width:100%}.image-price{bottom:8px;right:8px;padding:5px 8px;gap:4px}.selling-price{font-size:13px}.original-price{font-size:11px}.rating-star{font-size:22px}.rating-value{font-size:18px}}.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}.trim-text{text-align:inherit!important;font-weight:500}.product-img.fade-out{opacity:0;transform:scale(.95)}.gap-15{gap:15px}.flex-wrap{flex-wrap:wrap}.carousel-buttons{display:flex;gap:10px;position:absolute;bottom:-5px;left:10px;transform:translateY(-50%);pointer-events:none;color:#000}.carousel-buttons div{background:#fff;display:flex;align-items:center;border-radius:100%;height:30px;width:30px;justify-content:center;pointer-events:auto}.clr-black{color:#000!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ImageLoadingComponent, selector: "image-loading", inputs: ["hash", "imageUrl", "index", "product", "theme"] }, { kind: "directive", type: ColorDirective, selector: "[simpoColor]", inputs: ["simpoColor"] }, { kind: "ngmodule", type: RatingModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i7.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }] }); }
235
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SmallProductListingComponent, isStandalone: true, selector: "simpo-small-product-listing", inputs: { product: "product", data: "data", isScrollable: "isScrollable", isCategoryProductList: "isCategoryProductList", customClass: "customClass", index: "index" }, providers: [MessageService], ngImport: i0, template: "<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"></p-toast>\r\n<div class=\"product\" [ngClass]=\"{'width' : isScrollable, 'adjustHeightWidth': isCategoryProductList}\"\r\n [style.opacity]=\"product?.itemInventory?.openingStock == 0 ? 0.5 : 1\" [attr.style]=\"customClass\">\r\n <div class=\"prod-img\" [class.fade-out]=\"imageIndex == index\">\r\n <image-loading [imageUrl]=\"getProductImages(product)\" [hash]=\"product.itemImages?.[0]?.blurhash\"\r\n (click)=\"goToProductDetail(product)\" [theme]=\"data?.styles?.theme\"></image-loading>\r\n <div class=\"discount\" [style.backgroundColor]=\"data?.styles?.background?.color\"\r\n [simpoColor]=\"data?.styles?.background?.color\" *ngIf=\"getPercentage(product) > '0'\">{{getPercentage(product)}}%\r\n off</div>\r\n <div class=\"product-tag-badge\" *ngIf=\"product?.tags?.length\">\r\n <span *ngFor=\"let tag of product.tags; let i = index\"\r\n class=\"product-tag-label\"\r\n [class.tag-active]=\"i === currentTagIdx\"\r\n [style.background]=\"data?.styles?.background?.accentColor\"\r\n [style.color]=\"isDarkColor(data?.styles?.background?.accentColor) ? '#ffffff' : '#000000'\">\r\n {{ tag }}\r\n </span>\r\n </div>\r\n\r\n <div class=\"image-price\" *ngIf=\"product?.price\">\r\n <span class=\"selling-price\">\r\n <span [innerHTML]=\"currency\"></span> {{product?.price?.sellingPrice ?? 0}}\r\n </span>\r\n <span class=\"original-price\" *ngIf=\"product.price.value - product.price.discountedPrice > 2\">\r\n <span [innerHTML]=\"currency\"></span> {{product?.price?.value ?? 0}}\r\n </span>\r\n </div>\r\n\r\n <div class=\"carousel-buttons\" *ngIf=\"(product?.itemImages?.length || 0) > 1\">\r\n <div><mat-icon (click)=\"changeImage(product, 'PREV')\" class=\"clr-black\">keyboard_arrow_left</mat-icon></div>\r\n <div><mat-icon (click)=\"changeImage(product, 'NEXT')\" class=\"clr-black\">keyboard_arrow_right</mat-icon></div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"product-heading h-38 text-center\" (click)=\"goToProductDetail(product)\">\r\n <span class=\"trim-text\" [style.color]=\"getTextColor()\">{{product.name}}</span>\r\n <div class=\"bottom\">\r\n <div class=\"review-rating\" *ngIf=\"getDisplayRating(product)\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/795141c1774591394997svgviewer-output.svg\" width=\"18\"\r\n height=\"18\"> \r\n <span class=\"rating-value\" [style.color]=\"getTextColor()\">{{ getDisplayRating(product) }}</span>\r\n </div>\r\n\r\n <div class=\"add-to-cart\" [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 (click)=\"removeDefault($event)\">\r\n <!-- *ngIf=\"data?.content?.display?.showButton\" -->\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\"\r\n *ngIf=\"IsEcommerce\">\r\n Add to Cart</div>\r\n <div [style.color]=\"data.styles?.background?.accentColor\" *ngIf=\"!IsEcommerce\" (click)=\"raiseLead()\">Notify\r\n Me</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"product.quantity\">\r\n <span class=\"quantity-btn\" (click)=\"addItemToCart($event, product, 'SUBSTRACT')\"\r\n [style.backgroundColor]=\"getSupportingColor(data.styles?.background?.accentColor)\"\r\n [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')\"\r\n [style.backgroundColor]=\"getSupportingColor(data.styles?.background?.accentColor)\"\r\n [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\" [style.color]=\"getTextColor()\">\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> -->", styles: [".product{position:relative;display:flex;flex-direction:column;cursor:pointer;margin-bottom:10px;border-radius:10px;overflow:hidden;height:350px}.product .prod-img{position:relative;height:65%;width:100%;overflow:hidden;border:1.8px solid;border-radius:10px;border-color:#e5e7eb}.product .prod-img img{height:100%!important;width:100%!important;object-fit:cover}::ng-deep image-loading img{height:100%!important}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.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}.product-heading{padding:18px 10px 10px}.strike-through{text-decoration:line-through;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;left:0;padding:5px;width:60px;text-align:center;font-size:12px;border-bottom-right-radius:3px;z-index:2}.image-price{position:absolute;bottom:10px;right:10px;background:#fffffff2;padding:6px 10px;border-radius:8px;display:flex;align-items:center;gap:6px;z-index:2;box-shadow:0 2px 10px #0000001f;max-width:calc(100% - 20px);flex-wrap:wrap}.selling-price{font-weight:600;font-size:14px;line-height:1;color:#000}.original-price{text-decoration:line-through;font-size:12px;line-height:1}.review-rating{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 0}.rating-star{color:#e8e808;font-size:32px;line-height:1}.rating-value{font-size:16px;font-weight:600;line-height:1}@media screen and (max-width: 475px){.width{max-width:160px;min-width:160px;height:300px}.adjustHeightWidth{max-width:100%;min-width:100%}.image-price{bottom:8px;right:8px;padding:5px 8px;gap:4px}.selling-price{font-size:13px}.original-price{font-size:11px}.rating-star{font-size:22px}.rating-value{font-size:18px}}.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}.trim-text{text-align:inherit!important;font-weight:500}.product-img.fade-out{opacity:0;transform:scale(.95)}.gap-15{gap:15px}.flex-wrap{flex-wrap:wrap}.carousel-buttons{display:flex;gap:10px;position:absolute;bottom:-5px;left:10px;transform:translateY(-50%);pointer-events:none;color:#000}.carousel-buttons div{background:#fff;display:flex;align-items:center;border-radius:100%;height:30px;width:30px;justify-content:center;pointer-events:auto}.clr-black{color:#000!important}.product-tag-badge{position:absolute;top:8px;left:8px;z-index:2;pointer-events:none}.product-tag-label{position:absolute;top:0;left:0;font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;padding:5px 10px;border-radius:4px;white-space:nowrap;opacity:0;transform:translateY(6px);transition:opacity .4s ease,transform .4s ease;pointer-events:none}.product-tag-label.tag-active{opacity:1;transform:translateY(0)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ImageLoadingComponent, selector: "image-loading", inputs: ["hash", "imageUrl", "index", "product", "theme"] }, { kind: "directive", type: ColorDirective, selector: "[simpoColor]", inputs: ["simpoColor"] }, { kind: "ngmodule", type: RatingModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i7.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }] }); }
227
236
  }
228
237
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SmallProductListingComponent, decorators: [{
229
238
  type: Component,
@@ -235,7 +244,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
235
244
  RatingModule,
236
245
  FormsModule,
237
246
  ToastModule
238
- ], providers: [MessageService], template: "<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"></p-toast>\r\n<div class=\"product\" [ngClass]=\"{'width' : isScrollable, 'adjustHeightWidth': isCategoryProductList}\"\r\n [style.opacity]=\"product?.itemInventory?.openingStock == 0 ? 0.5 : 1\" [attr.style]=\"customClass\">\r\n <div class=\"prod-img\" [class.fade-out]=\"imageIndex == index\">\r\n <image-loading [imageUrl]=\"getProductImages(product)\" [hash]=\"product.itemImages?.[0]?.blurhash\"\r\n (click)=\"goToProductDetail(product)\" [theme]=\"data?.styles?.theme\"></image-loading>\r\n <div class=\"discount\" [style.backgroundColor]=\"data?.styles?.background?.color\"\r\n [simpoColor]=\"data?.styles?.background?.color\" *ngIf=\"getPercentage(product) > '0'\">{{getPercentage(product)}}%\r\n off</div>\r\n\r\n <div class=\"image-price\" *ngIf=\"product?.price\">\r\n <span class=\"selling-price\">\r\n <span [innerHTML]=\"currency\"></span> {{product?.price?.sellingPrice ?? 0}}\r\n </span>\r\n <span class=\"original-price\" *ngIf=\"product.price.value - product.price.discountedPrice > 2\">\r\n <span [innerHTML]=\"currency\"></span> {{product?.price?.value ?? 0}}\r\n </span>\r\n </div>\r\n\r\n <div class=\"carousel-buttons\" *ngIf=\"(product?.itemImages?.length || 0) > 1\">\r\n <div><mat-icon (click)=\"changeImage(product, 'PREV')\" class=\"clr-black\">keyboard_arrow_left</mat-icon></div>\r\n <div><mat-icon (click)=\"changeImage(product, 'NEXT')\" class=\"clr-black\">keyboard_arrow_right</mat-icon></div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"product-heading h-38 text-center\" (click)=\"goToProductDetail(product)\">\r\n <span class=\"trim-text\" [style.color]=\"getTextColor()\">{{product.name}}</span>\r\n <div class=\"bottom\">\r\n <div class=\"review-rating\" *ngIf=\"getDisplayRating(product)\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/795141c1774591394997svgviewer-output.svg\" width=\"18\"\r\n height=\"18\"> \r\n <span class=\"rating-value\" [style.color]=\"getTextColor()\">{{ getDisplayRating(product) }}</span>\r\n </div>\r\n\r\n <div class=\"add-to-cart\" [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 (click)=\"removeDefault($event)\">\r\n <!-- *ngIf=\"data?.content?.display?.showButton\" -->\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\"\r\n *ngIf=\"IsEcommerce\">\r\n Add to Cart</div>\r\n <div [style.color]=\"data.styles?.background?.accentColor\" *ngIf=\"!IsEcommerce\" (click)=\"raiseLead()\">Notify\r\n Me</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"product.quantity\">\r\n <span class=\"quantity-btn\" (click)=\"addItemToCart($event, product, 'SUBSTRACT')\"\r\n [style.backgroundColor]=\"getSupportingColor(data.styles?.background?.accentColor)\"\r\n [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')\"\r\n [style.backgroundColor]=\"getSupportingColor(data.styles?.background?.accentColor)\"\r\n [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\" [style.color]=\"getTextColor()\">\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> -->", styles: [".product{position:relative;display:flex;flex-direction:column;cursor:pointer;margin-bottom:10px;border-radius:10px;overflow:hidden;height:350px}.product .prod-img{position:relative;height:65%;width:100%;overflow:hidden;border:1.8px solid;border-radius:10px;border-color:#e5e7eb}.product .prod-img img{height:100%!important;width:100%!important;object-fit:cover}::ng-deep image-loading img{height:100%!important}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.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}.product-heading{padding:18px 10px 10px}.strike-through{text-decoration:line-through;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;left:0;padding:5px;width:60px;text-align:center;font-size:12px;border-bottom-right-radius:3px;z-index:2}.image-price{position:absolute;bottom:10px;right:10px;background:#fffffff2;padding:6px 10px;border-radius:8px;display:flex;align-items:center;gap:6px;z-index:2;box-shadow:0 2px 10px #0000001f;max-width:calc(100% - 20px);flex-wrap:wrap}.selling-price{font-weight:600;font-size:14px;line-height:1;color:#000}.original-price{text-decoration:line-through;font-size:12px;line-height:1}.review-rating{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 0}.rating-star{color:#e8e808;font-size:32px;line-height:1}.rating-value{font-size:16px;font-weight:600;line-height:1}@media screen and (max-width: 475px){.width{max-width:160px;min-width:160px;height:300px}.adjustHeightWidth{max-width:100%;min-width:100%}.image-price{bottom:8px;right:8px;padding:5px 8px;gap:4px}.selling-price{font-size:13px}.original-price{font-size:11px}.rating-star{font-size:22px}.rating-value{font-size:18px}}.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}.trim-text{text-align:inherit!important;font-weight:500}.product-img.fade-out{opacity:0;transform:scale(.95)}.gap-15{gap:15px}.flex-wrap{flex-wrap:wrap}.carousel-buttons{display:flex;gap:10px;position:absolute;bottom:-5px;left:10px;transform:translateY(-50%);pointer-events:none;color:#000}.carousel-buttons div{background:#fff;display:flex;align-items:center;border-radius:100%;height:30px;width:30px;justify-content:center;pointer-events:auto}.clr-black{color:#000!important}\n"] }]
247
+ ], providers: [MessageService], template: "<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"></p-toast>\r\n<div class=\"product\" [ngClass]=\"{'width' : isScrollable, 'adjustHeightWidth': isCategoryProductList}\"\r\n [style.opacity]=\"product?.itemInventory?.openingStock == 0 ? 0.5 : 1\" [attr.style]=\"customClass\">\r\n <div class=\"prod-img\" [class.fade-out]=\"imageIndex == index\">\r\n <image-loading [imageUrl]=\"getProductImages(product)\" [hash]=\"product.itemImages?.[0]?.blurhash\"\r\n (click)=\"goToProductDetail(product)\" [theme]=\"data?.styles?.theme\"></image-loading>\r\n <div class=\"discount\" [style.backgroundColor]=\"data?.styles?.background?.color\"\r\n [simpoColor]=\"data?.styles?.background?.color\" *ngIf=\"getPercentage(product) > '0'\">{{getPercentage(product)}}%\r\n off</div>\r\n <div class=\"product-tag-badge\" *ngIf=\"product?.tags?.length\">\r\n <span *ngFor=\"let tag of product.tags; let i = index\"\r\n class=\"product-tag-label\"\r\n [class.tag-active]=\"i === currentTagIdx\"\r\n [style.background]=\"data?.styles?.background?.accentColor\"\r\n [style.color]=\"isDarkColor(data?.styles?.background?.accentColor) ? '#ffffff' : '#000000'\">\r\n {{ tag }}\r\n </span>\r\n </div>\r\n\r\n <div class=\"image-price\" *ngIf=\"product?.price\">\r\n <span class=\"selling-price\">\r\n <span [innerHTML]=\"currency\"></span> {{product?.price?.sellingPrice ?? 0}}\r\n </span>\r\n <span class=\"original-price\" *ngIf=\"product.price.value - product.price.discountedPrice > 2\">\r\n <span [innerHTML]=\"currency\"></span> {{product?.price?.value ?? 0}}\r\n </span>\r\n </div>\r\n\r\n <div class=\"carousel-buttons\" *ngIf=\"(product?.itemImages?.length || 0) > 1\">\r\n <div><mat-icon (click)=\"changeImage(product, 'PREV')\" class=\"clr-black\">keyboard_arrow_left</mat-icon></div>\r\n <div><mat-icon (click)=\"changeImage(product, 'NEXT')\" class=\"clr-black\">keyboard_arrow_right</mat-icon></div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"product-heading h-38 text-center\" (click)=\"goToProductDetail(product)\">\r\n <span class=\"trim-text\" [style.color]=\"getTextColor()\">{{product.name}}</span>\r\n <div class=\"bottom\">\r\n <div class=\"review-rating\" *ngIf=\"getDisplayRating(product)\">\r\n <img src=\"https://d2z9497xp8xb12.cloudfront.net/prod-images/795141c1774591394997svgviewer-output.svg\" width=\"18\"\r\n height=\"18\"> \r\n <span class=\"rating-value\" [style.color]=\"getTextColor()\">{{ getDisplayRating(product) }}</span>\r\n </div>\r\n\r\n <div class=\"add-to-cart\" [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 (click)=\"removeDefault($event)\">\r\n <!-- *ngIf=\"data?.content?.display?.showButton\" -->\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\"\r\n *ngIf=\"IsEcommerce\">\r\n Add to Cart</div>\r\n <div [style.color]=\"data.styles?.background?.accentColor\" *ngIf=\"!IsEcommerce\" (click)=\"raiseLead()\">Notify\r\n Me</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"product.quantity\">\r\n <span class=\"quantity-btn\" (click)=\"addItemToCart($event, product, 'SUBSTRACT')\"\r\n [style.backgroundColor]=\"getSupportingColor(data.styles?.background?.accentColor)\"\r\n [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')\"\r\n [style.backgroundColor]=\"getSupportingColor(data.styles?.background?.accentColor)\"\r\n [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\" [style.color]=\"getTextColor()\">\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> -->", styles: [".product{position:relative;display:flex;flex-direction:column;cursor:pointer;margin-bottom:10px;border-radius:10px;overflow:hidden;height:350px}.product .prod-img{position:relative;height:65%;width:100%;overflow:hidden;border:1.8px solid;border-radius:10px;border-color:#e5e7eb}.product .prod-img img{height:100%!important;width:100%!important;object-fit:cover}::ng-deep image-loading img{height:100%!important}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.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}.product-heading{padding:18px 10px 10px}.strike-through{text-decoration:line-through;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;left:0;padding:5px;width:60px;text-align:center;font-size:12px;border-bottom-right-radius:3px;z-index:2}.image-price{position:absolute;bottom:10px;right:10px;background:#fffffff2;padding:6px 10px;border-radius:8px;display:flex;align-items:center;gap:6px;z-index:2;box-shadow:0 2px 10px #0000001f;max-width:calc(100% - 20px);flex-wrap:wrap}.selling-price{font-weight:600;font-size:14px;line-height:1;color:#000}.original-price{text-decoration:line-through;font-size:12px;line-height:1}.review-rating{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 0}.rating-star{color:#e8e808;font-size:32px;line-height:1}.rating-value{font-size:16px;font-weight:600;line-height:1}@media screen and (max-width: 475px){.width{max-width:160px;min-width:160px;height:300px}.adjustHeightWidth{max-width:100%;min-width:100%}.image-price{bottom:8px;right:8px;padding:5px 8px;gap:4px}.selling-price{font-size:13px}.original-price{font-size:11px}.rating-star{font-size:22px}.rating-value{font-size:18px}}.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}.trim-text{text-align:inherit!important;font-weight:500}.product-img.fade-out{opacity:0;transform:scale(.95)}.gap-15{gap:15px}.flex-wrap{flex-wrap:wrap}.carousel-buttons{display:flex;gap:10px;position:absolute;bottom:-5px;left:10px;transform:translateY(-50%);pointer-events:none;color:#000}.carousel-buttons div{background:#fff;display:flex;align-items:center;border-radius:100%;height:30px;width:30px;justify-content:center;pointer-events:auto}.clr-black{color:#000!important}.product-tag-badge{position:absolute;top:8px;left:8px;z-index:2;pointer-events:none}.product-tag-label{position:absolute;top:0;left:0;font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;padding:5px 10px;border-radius:4px;white-space:nowrap;opacity:0;transform:translateY(6px);transition:opacity .4s ease,transform .4s ease;pointer-events:none}.product-tag-label.tag-active{opacity:1;transform:translateY(0)}\n"] }]
239
248
  }], ctorParameters: () => [{ type: i1.CartService }, { type: i2.Router }, { type: i3.RestService }, { type: i4.StorageServiceService }, { type: i5.MessageService }], propDecorators: { product: [{
240
249
  type: Input
241
250
  }], data: [{
@@ -249,4 +258,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
249
258
  }], index: [{
250
259
  type: Input
251
260
  }] } });
252
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hbGwtcHJvZHVjdC1saXN0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZWNvbW1lcmNlL3NlY3Rpb25zL3NtYWxsLXByb2R1Y3QtbGlzdGluZy9zbWFsbC1wcm9kdWN0LWxpc3RpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvc21hbGwtcHJvZHVjdC1saXN0aW5nL3NtYWxsLXByb2R1Y3QtbGlzdGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDbEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7OztBQWtCNUMsTUFBTSxPQUFPLDRCQUE0QjtJQUV2QyxZQUNtQixXQUF3QixFQUN4QixNQUFj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QUUsQ0FBQztZQUMxQixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDdkMsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBRUQsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQixNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUV4RCxPQUFPLFVBQVUsR0FBRyxHQUFHLENBQUM7UUFDMUIsQ0FBQztRQUVELEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUUzQixJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFFRCxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFNUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUV4RCxPQUFPLFVBQVUsR0FBRyxHQUFHLENBQUM7SUFDMUIsQ0FBQzsrR0E3T1UsNEJBQTRCO21HQUE1Qiw0QkFBNEIsa1BBSjVCLENBQUMsY0FBYyxDQUFDLDBCQzdCN0IsaytJQTJFa0Isd3NGRHREZCxZQUFZLGlPQUNaLE9BQU8sMklBQ1AscUJBQXFCLHFIQUNyQixjQUFjLGdGQUNkLFlBQVksOEJBQ1osV0FBVyw4QkFDWCxXQUFXOzs0RkFNRiw0QkFBNEI7a0JBaEJ4QyxTQUFTOytCQUNFLDZCQUE2QixjQUMzQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixPQUFPO3dCQUNQLHFCQUFxQjt3QkFDckIsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsV0FBVztxQkFDWixhQUNVLENBQUMsY0FBYyxDQUFDO2dNQWVsQixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEl0ZW1WYXJpYW50LCBQcm9kdWN0IH0gZnJvbSAnLi4vLi4vc3R5bGVzL3Byb2R1Y3QubW9kYWwnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBCVVNJTkVTU19DT05TVEFOVFMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYnVzaW5lc3MuY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE9yZGVyZWRJdGVtcyB9IGZyb20gJy4uLy4uL3N0eWxlcy9PcmRlcmVkSXRlbXMubW9kYWwnO1xyXG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2NvbG9yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEltYWdlTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvaW1hZ2UtbG9hZGluZy9pbWFnZS1sb2FkaW5nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJhdGluZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcmF0aW5nJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLXNtYWxsLXByb2R1Y3QtbGlzdGluZycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRJY29uLFxyXG4gICAgSW1hZ2VMb2FkaW5nQ29tcG9uZW50LFxyXG4gICAgQ29sb3JEaXJlY3RpdmUsXHJcbiAgICBSYXRpbmdNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFRvYXN0TW9kdWxlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtNZXNzYWdlU2VydmljZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NtYWxsLXByb2R1Y3QtbGlzdGluZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3NtYWxsLXByb2R1Y3QtbGlzdGluZy5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hbGxQcm9kdWN0TGlzdGluZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXJ0U2VydmljZTogQ2FydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIHByaXZhdGUgVVNFUl9DQVJUOiBPcmRlcmVkSXRlbXNbXSB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHByb2R1Y3QhOiBQcm9kdWN0O1xyXG4gIEBJbnB1dCgpIGRhdGE/OiBhbnk7XHJcbiAgQElucHV0KCkgaXNTY3JvbGxhYmxlPzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpc0NhdGVnb3J5UHJvZHVjdExpc3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBjdXN0b21DbGFzcz86IHN0cmluZztcclxuICBASW5wdXQoKSBpbmRleCE6IG51bWJlclxyXG4gIElzRWNvbW1lcmNlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLklzRWNvbW1lcmNlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ3ZWJzaXRlVHlwZVwiKSAhPSAnU1RBVElDJyA/IHRydWUgOiBmYWxzZTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuZGF0YSwgdGhpcy5wcm9kdWN0KVxyXG4gIH1cclxuXHJcbiAgYWRkSXRlbVRvQ2FydChldmVudDogUG9pbnRlckV2ZW50IHwgTW91c2VFdmVudCwgcHJvZHVjdDogUHJvZHVjdCwgdHlwZTogJ0FERCcgfCAnU1VCU1RSQUNUJykge1xyXG4gICAgLy8gaWYgKHRoaXMuaXNJdGVtT3V0T2ZTdG9jayhwcm9kdWN0KSkge1xyXG4gICAgLy8gICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnd2FybicsIHN1bW1hcnk6ICdDYXJ0JywgZGV0YWlsOiAnSXRlbSBpcyBub3QgYXZhaWxhYmxlIGFzIG9mIG5vdy4gV2Ugd2lsbCBub3RpZnkgeW91IG9uY2UgYXZhaWxhYmxlJyB9KTtcclxuICAgIC8vICAgcmV0dXJuO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIGlmICghcHJvZHVjdD8ucXVhbnRpdHkpXHJcbiAgICAgIHByb2R1Y3QucXVhbnRpdHkgPSAwO1xyXG4gICAgaWYgKHR5cGUgPT0gJ0FERCcpIHtcclxuICAgICAgcHJvZHVjdC5xdWFudGl0eSArPSAxO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHByb2R1Y3QucXVhbnRpdHkgLT0gMTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocHJvZHVjdD8uaXRlbVZhcmlhbnQ/Lmxlbmd0aCkge1xyXG4gICAgICBjb25zdCBpdGVtVmFyaWVudDogSXRlbVZhcmlhbnQgfCBudWxsID0gdGhpcy5nZXRJdGVtVmFyaWVudChwcm9kdWN0LCBwcm9kdWN0LnZhcmllbnRJZCk7XHJcbiAgICAgIGlmIChpdGVtVmFyaWVudCkge1xyXG4gICAgICAgIGl0ZW1WYXJpZW50LnF1YW50aXR5ID0gcHJvZHVjdC5xdWFudGl0eTtcclxuICAgICAgICB0aGlzLmNhcnRTZXJ2aWNlLmFkZEl0ZW1Ub0NhcnQocHJvZHVjdCwgaXRlbVZhcmllbnQudmFyaWFudElkKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jYXJ0U2VydmljZS5hZGRJdGVtVG9DYXJ0KHByb2R1Y3QpO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb2R1Y3QucXVhbnRpdHkpIHtcclxuICAgICAgbGV0IGlzUHJlc2VudDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLlVTRVJfQ0FSVD8uZm9yRWFjaCgoaXRlbTogT3JkZXJlZEl0ZW1zKSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0udmFyaWVudElkID09IHByb2R1Y3QudmFyaWVudElkKSB7XHJcbiAgICAgICAgICBpdGVtLnF1YW50aXR5ID0gcHJvZHVjdC5xdWFudGl0eTtcclxuICAgICAgICAgIGlzUHJlc2VudCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICBpZiAoIWlzUHJlc2VudClcclxuICAgICAgICB0aGlzLlVTRVJfQ0FSVD8ucHVzaChuZXcgT3JkZXJlZEl0ZW1zKHByb2R1Y3QsIHByb2R1Y3QudmFyaWVudElkKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLlVTRVJfQ0FSVCA9IHRoaXMuVVNFUl9DQVJUPy5maWx0ZXIoKGl0ZW06IE9yZGVyZWRJdGVtcykgPT4gaXRlbS52YXJpZW50SWQgIT0gcHJvZHVjdC52YXJpZW50SWQpID8/IFtdO1xyXG4gICAgfVxyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVEZWZhdWx0KGV2ZW50OiBQb2ludGVyRXZlbnQgfCBNb3VzZUV2ZW50KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcbiAgcmFpc2VMZWFkKCkge1xyXG4gICAgY29uc3QgdXNlckRldGFpbHMgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKTtcclxuICAgIGxldCBwYXlsb2FkID0ge1xyXG4gICAgICBidXNpbmVzc0lkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYnVzaW5lc3NJZCcpLFxyXG4gICAgICBlbWFpbDogdXNlckRldGFpbHM/LmNvbnRhY3Q/LmVtYWlsLFxyXG4gICAgICBtZXNzYWdlOiBcIlwiLFxyXG4gICAgICBtb2JpbGVObzogXCJcIixcclxuICAgICAgbW9yZUluZm86IHtcclxuICAgICAgICBOYW1lOiB1c2VyRGV0YWlscz8uY29udGFjdD8ubmFtZSxcclxuICAgICAgICBcIk1vYmlsZSBOdW1iZXJcIjogdXNlckRldGFpbHM/LmNvbnRhY3Q/Lm1vYmlsZSxcclxuICAgICAgICBFbWFpbDogdXNlckRldGFpbHM/LmNvbnRhY3Q/LmVtYWlsLFxyXG4gICAgICAgIFwiTGVhZCBTb3VyY2VcIjogXCJXZWJzaXRlXCIsXHJcbiAgICAgICAgXCJMZWFkIFN0YXR1c1wiOiBcIk5FV1wiXHJcbiAgICAgIH0sXHJcbiAgICAgIG5hbWU6IHVzZXJEZXRhaWxzPy5jb250YWN0Py5uYW1lXHJcbiAgICB9XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmNyZWF0ZUxlYWQocGF5bG9hZCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcz8uZGF0YSkge1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ3N1Y2Nlc3MnLCBzdW1tYXJ5OiAnVGhhbmsgeW91JywgZGV0YWlsOiAnT3VyIHRlYW0gd2lsbCBjb250YWN0IHlvdSBzb29uJyB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnRXJyb3InLCBkZXRhaWw6ICdFcnJvciBvY2N1cmVkIHBsZWFzZSB0cnkgYWdhaW4gbGF0ZXInIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgZ2V0SXRlbVZhcmllbnQocHJvZHVjdDogUHJvZHVjdCwgdmFyaWVudElkOiBzdHJpbmcpOiBJdGVtVmFyaWFudCB8IG51bGwge1xyXG4gICAgbGV0IHNlbGVjdGVkVmFyaWVudDogSXRlbVZhcmlhbnQgfCBudWxsID0gbnVsbDtcclxuICAgIHByb2R1Y3Q/Lml0ZW1WYXJpYW50Py5mb3JFYWNoKCh2YXJpZW50OiBJdGVtVmFyaWFudCkgPT4ge1xyXG4gICAgICBpZiAodmFyaWVudC52YXJpYW50SWQgPT0gdmFyaWVudElkKVxyXG4gICAgICAgIHNlbGVjdGVkVmFyaWVudCA9IHZhcmllbnQ7XHJcbiAgICB9KVxyXG5cclxuICAgIHJldHVybiBzZWxlY3RlZFZhcmllbnQ7XHJcbiAgfVxyXG5cclxuICBnZXRQZXJjZW50YWdlKHByb2R1Y3Q6IFByb2R1Y3QpIHtcclxuICAgIHJldHVybiAoKChwcm9kdWN0Py5wcmljZT8udmFsdWUgLSBwcm9kdWN0Py5wcmljZT8uZGlzY291bnRlZFByaWNlKSAvIHByb2R1Y3Q/LnByaWNlPy52YWx1ZSkgKiAxMDApLnRvRml4ZWQoMCk7XHJcbiAgfVxyXG5cclxuICBnb1RvUHJvZHVjdERldGFpbChwcm9kdWN0OiBQcm9kdWN0KSB7XHJcbiAgICBjb25zdCBzbHVnID0gcHJvZHVjdC5zbHVnaWZpZWROYW1lIHx8IHRoaXMudG9TbHVnKHByb2R1Y3QubmFtZSk7XHJcbiAgICBpZiAoIXNsdWcpIHJldHVybjtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnZGV0YWlscycsIHNsdWddLCB7fSk7XHJcbiAgfVxyXG4gIHRvU2x1ZyhpbnB1dDogYW55KSB7XHJcbiAgICBpZiAoIWlucHV0KSByZXR1cm4gbnVsbDtcclxuICAgIGNvbnN0IG5vV2hpdGVzcGFjZSA9IGlucHV0LnJlcGxhY2UoL1xccysvZywgJy0nKTtcclxuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBub1doaXRlc3BhY2Uubm9ybWFsaXplKCdORkQnKTtcclxuICAgIGNvbnN0IHNsdWcgPSBub3JtYWxpemVkLnJlcGxhY2UoL1teXFx3LV0vZywgJycpO1xyXG4gICAgcmV0dXJuIHNsdWcudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC8tKy9nLCAnLScpLnJlcGxhY2UoL14tfC0kL2csICcnKTtcclxuICB9XHJcblxyXG4gIGdldFN1cHBvcnRpbmdDb2xvcihjb2xvcjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCBoZXggPSBjb2xvcjtcclxuICAgIGlmICghaGV4KVxyXG4gICAgICByZXR1cm4gY29sb3I7XHJcbiAgICBoZXggPSBoZXgucmVwbGFjZSgvXiMvLCAnJyk7XHJcblxyXG4gICAgbGV0IGJpZ2ludCA9IHBhcnNlSW50KGhleCwgMTYpO1xyXG4gICAgbGV0IHIgPSAoYmlnaW50ID4+IDE2KSAmIDI1NTtcclxuICAgIGxldCBnID0gKGJpZ2ludCA+PiA4KSAmIDI1NTtcclxuICAgIGxldCBiID0gYmlnaW50ICYgMjU1O1xyXG5cclxuICAgIHJldHVybiBgcmdiYSgke3J9LCAke2d9LCAke2J9LCAwLjQpYDtcclxuICB9XHJcblxyXG4gIGdldCBjdXJyZW5jeSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIEJVU0lORVNTX0NPTlNUQU5UUy5DVVJSRU5DWTtcclxuICB9XHJcblxyXG4gIGdldFByb2R1Y3RJbWFnZXMocHJvZHVjdDogYW55KSB7XHJcbiAgICBpZiAoIXByb2R1Y3RbJ2N1cnJlbnRJbWFnZUluZGV4J10pXHJcbiAgICAgIHByb2R1Y3RbJ2N1cnJlbnRJbWFnZUluZGV4J10gPSAwO1xyXG5cclxuICAgIGxldCBpbWFnZUluZGV4OiBudW1iZXIgPSBwcm9kdWN0WydjdXJyZW50SW1hZ2VJbmRleCddICUgcHJvZHVjdD8uWydpdGVtSW1hZ2VzJ10/Lmxlbmd0aDtcclxuICAgIHJldHVybiBwcm9kdWN0Py5bJ2l0ZW1JbWFnZXMnXT8uW2ltYWdlSW5kZXhdPy5pbWdVcmxcclxuICB9XHJcblxyXG4gIGltYWdlSW5kZXg6IG51bWJlciA9IC0xO1xyXG4gIGFzeW5jIGNoYW5nZUltYWdlKHByb2R1Y3Q6IGFueSwgYWN0aW9uOiAnUFJFVicgfCAnTkVYVCcpIHtcclxuICAgIHRoaXMuaW1hZ2VJbmRleCA9IHRoaXMuaW5kZXg7XHJcbiAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMzAwKSk7XHJcblxyXG4gICAgaWYgKGFjdGlvbiA9PT0gJ05FWFQnKSB7XHJcbiAgICAgIHByb2R1Y3RbJ2N1cnJlbnRJbWFnZUluZGV4J10rKztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHByb2R1Y3RbJ2N1cnJlbnRJbWFnZUluZGV4J10tLTtcclxuXHJcbiAgICAgIGlmIChwcm9kdWN0WydjdXJyZW50SW1hZ2VJbmRleCddIDwgMClcclxuICAgICAgICBwcm9kdWN0WydjdXJyZW50SW1hZ2VJbmRleCddID0gcHJvZHVjdD8uWydpdGVtSW1hZ2VzJ10/Lmxlbmd0aCAtIDE7XHJcbiAgICB9XHJcbiAgICB0aGlzLmltYWdlSW5kZXggPSAtMTtcclxuICB9XHJcblxyXG4gIGdldFJhdGluZ3Mobm9vZnJhdGluZ3M6IGFueSkge1xyXG4gICAgaWYgKG5vb2ZyYXRpbmdzID49IDEwMDAgJiYgbm9vZnJhdGluZ3MgPD0gMTAwMDApIHtcclxuICAgICAgcmV0dXJuIChub29mcmF0aW5ncyAvIDEwMDApLnRvRml4ZWQoMSkgKyBcIksrXCI7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChub29mcmF0aW5ncyA+IDEwMDAwICYmIG5vb2ZyYXRpbmdzIDw9IDEwMDAwMCkge1xyXG4gICAgICByZXR1cm4gKG5vb2ZyYXRpbmdzIC8gMTAwMDApLnRvRml4ZWQoMSkgKyBcIksrXCI7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChub29mcmF0aW5ncyA+IDEwMDAwMCAmJiBub29mcmF0aW5ncyA8PSAxMDAwMDAwKSB7XHJcbiAgICAgIHJldHVybiAobm9vZnJhdGluZ3MgLyAxMDAwMDApLnRvRml4ZWQoMSkgKyBcIkwrXCI7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChub29mcmF0aW5ncyA+IDEwMDAwMDApIHtcclxuICAgICAgcmV0dXJuIChub29mcmF0aW5ncyAvIDEwMDAwMDApLnRvRml4ZWQoMSkgKyBcIk0rXCI7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIG5vb2ZyYXRpbmdzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0RGlzcGxheVJhdGluZyhwcm9kdWN0OiBhbnkpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgcmF0aW5nID0gTnVtYmVyKHByb2R1Y3Q/LmF2ZXJhZ2VSYXRpbmcgPz8gMCk7XHJcbiAgICBpZiAoIXJhdGluZykge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmF0aW5nLnRvRml4ZWQoMSk7XHJcbiAgfVxyXG5cclxuICBnZXRCYWNrZ3JvdW5kQ29sb3IoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uY29sb3IgfHwgJyNmZmZmZmYnO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGV4dENvbG9yKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBiYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLmdldEJhY2tncm91bmRDb2xvcigpO1xyXG4gICAgcmV0dXJuIHRoaXMuaXNEYXJrQ29sb3IoYmFja2dyb3VuZENvbG9yKSA/ICcjZmZmZmZmJyA6ICcjMDAwMDAwJztcclxuICB9XHJcblxyXG4gIGlzRGFya0NvbG9yKGNvbG9yOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGlmICghY29sb3IpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBoZXggPSBjb2xvci50cmltKCk7XHJcblxyXG4gICAgaWYgKGhleC5zdGFydHNXaXRoKCdyZ2InKSkge1xyXG4gICAgICBjb25zdCByZ2JWYWx1ZXMgPSBoZXgubWF0Y2goL1xcZCsvZyk7XHJcbiAgICAgIGlmICghcmdiVmFsdWVzIHx8IHJnYlZhbHVlcy5sZW5ndGggPCAzKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCByID0gTnVtYmVyKHJnYlZhbHVlc1swXSk7XHJcbiAgICAgIGNvbnN0IGcgPSBOdW1iZXIocmdiVmFsdWVzWzFdKTtcclxuICAgICAgY29uc3QgYiA9IE51bWJlcihyZ2JWYWx1ZXNbMl0pO1xyXG4gICAgICBjb25zdCBicmlnaHRuZXNzID0gKHIgKiAyOTkgKyBnICogNTg3ICsgYiAqIDExNCkgLyAxMDAwO1xyXG5cclxuICAgICAgcmV0dXJuIGJyaWdodG5lc3MgPCAxMjg7XHJcbiAgICB9XHJcblxyXG4gICAgaGV4ID0gaGV4LnJlcGxhY2UoJyMnLCAnJyk7XHJcblxyXG4gICAgaWYgKGhleC5sZW5ndGggPT09IDMpIHtcclxuICAgICAgaGV4ID0gaGV4LnNwbGl0KCcnKS5tYXAoKGNoYXIpID0+IGNoYXIgKyBjaGFyKS5qb2luKCcnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaGV4Lmxlbmd0aCAhPT0gNikge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgciA9IHBhcnNlSW50KGhleC5zdWJzdHJpbmcoMCwgMiksIDE2KTtcclxuICAgIGNvbnN0IGcgPSBwYXJzZUludChoZXguc3Vic3RyaW5nKDIsIDQpLCAxNik7XHJcbiAgICBjb25zdCBiID0gcGFyc2VJbnQoaGV4LnN1YnN0cmluZyg0LCA2KSwgMTYpO1xyXG5cclxuICAgIGNvbnN0IGJyaWdodG5lc3MgPSAociAqIDI5OSArIGcgKiA1ODcgKyBiICogMTE0KSAvIDEwMDA7XHJcblxyXG4gICAgcmV0dXJuIGJyaWdodG5lc3MgPCAxMjg7XHJcbiAgfVxyXG59IiwiPHAtdG9hc3QgcG9zaXRpb249XCJib3R0b20tcmlnaHRcIiBbYmFzZVpJbmRleF09XCIxMDAwMDAwMDAwMFwiIFthdXRvWkluZGV4XT1cInRydWVcIj48L3AtdG9hc3Q+XHJcbjxkaXYgY2xhc3M9XCJwcm9kdWN0XCIgW25nQ2xhc3NdPVwieyd3aWR0aCcgOiBpc1Njcm9sbGFibGUsICdhZGp1c3RIZWlnaHRXaWR0aCc6IGlzQ2F0ZWdvcnlQcm9kdWN0TGlzdH1cIlxyXG4gIFtzdHlsZS5vcGFjaXR5XT1cInByb2R1Y3Q/Lml0ZW1JbnZlbnRvcnk/Lm9wZW5pbmdTdG9jayA9PSAwID8gMC41IDogMVwiIFthdHRyLnN0eWxlXT1cImN1c3RvbUNsYXNzXCI+XHJcbiAgPGRpdiBjbGFzcz1cInByb2QtaW1nXCIgW2NsYXNzLmZhZGUtb3V0XT1cImltYWdlSW5kZXggPT0gaW5kZXhcIj5cclxuICAgIDxpbWFnZS1sb2FkaW5nIFtpbWFnZVVybF09XCJnZXRQcm9kdWN0SW1hZ2VzKHByb2R1Y3QpXCIgW2hhc2hdPVwicHJvZHVjdC5pdGVtSW1hZ2VzPy5bMF0/LmJsdXJoYXNoXCJcclxuICAgICAgKGNsaWNrKT1cImdvVG9Qcm9kdWN0RGV0YWlsKHByb2R1Y3QpXCIgW3RoZW1lXT1cImRhdGE/LnN0eWxlcz8udGhlbWVcIj48L2ltYWdlLWxvYWRpbmc+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZGlzY291bnRcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uY29sb3JcIlxyXG4gICAgICBbc2ltcG9Db2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmNvbG9yXCIgKm5nSWY9XCJnZXRQZXJjZW50YWdlKHByb2R1Y3QpID4gJzAnXCI+e3tnZXRQZXJjZW50YWdlKHByb2R1Y3QpfX0lXHJcbiAgICAgIG9mZjwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJpbWFnZS1wcmljZVwiICpuZ0lmPVwicHJvZHVjdD8ucHJpY2VcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJzZWxsaW5nLXByaWNlXCI+XHJcbiAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJjdXJyZW5jeVwiPjwvc3Bhbj4ge3twcm9kdWN0Py5wcmljZT8uc2VsbGluZ1ByaWNlID8/IDB9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwib3JpZ2luYWwtcHJpY2VcIiAqbmdJZj1cInByb2R1Y3QucHJpY2UudmFsdWUgLSBwcm9kdWN0LnByaWNlLmRpc2NvdW50ZWRQcmljZSA+IDJcIj5cclxuICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImN1cnJlbmN5XCI+PC9zcGFuPiB7e3Byb2R1Y3Q/LnByaWNlPy52YWx1ZSA/PyAwfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWJ1dHRvbnNcIiAqbmdJZj1cIihwcm9kdWN0Py5pdGVtSW1hZ2VzPy5sZW5ndGggfHwgMCkgPiAxXCI+XHJcbiAgICAgIDxkaXY+PG1hdC1pY29uIChjbGljayk9XCJjaGFuZ2VJbWFnZShwcm9kdWN0LCAnUFJFVicpXCIgY2xhc3M9XCJjbHItYmxhY2tcIj5rZXlib2FyZF9hcnJvd19sZWZ0PC9tYXQtaWNvbj48L2Rpdj5cclxuICAgICAgPGRpdj48bWF0LWljb24gKGNsaWNrKT1cImNoYW5nZUltYWdlKHByb2R1Y3QsICdORVhUJylcIiBjbGFzcz1cImNsci1ibGFja1wiPmtleWJvYXJkX2Fycm93X3JpZ2h0PC9tYXQtaWNvbj48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1oZWFkaW5nIGgtMzggdGV4dC1jZW50ZXJcIiAoY2xpY2spPVwiZ29Ub1Byb2R1Y3REZXRhaWwocHJvZHVjdClcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwidHJpbS10ZXh0XCIgW3N0eWxlLmNvbG9yXT1cImdldFRleHRDb2xvcigpXCI+e3twcm9kdWN0Lm5hbWV9fTwvc3Bhbj5cclxuICAgIDxkaXYgY2xhc3M9XCJib3R0b21cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJldmlldy1yYXRpbmdcIiAqbmdJZj1cImdldERpc3BsYXlSYXRpbmcocHJvZHVjdClcIj5cclxuICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vZDJ6OTQ5N3hwOHhiMTIuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNzk1MTQxYzE3NzQ1OTEzOTQ5OTdzdmd2aWV3ZXItb3V0cHV0LnN2Z1wiIHdpZHRoPVwiMThcIlxyXG4gICAgICAgICAgaGVpZ2h0PVwiMThcIj4gXHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJyYXRpbmctdmFsdWVcIiBbc3R5bGUuY29sb3JdPVwiZ2V0VGV4dENvbG9yKClcIj57eyBnZXREaXNwbGF5UmF0aW5nKHByb2R1Y3QpIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhZGQtdG8tY2FydFwiIFtzdHlsZS5ib3JkZXJDb2xvcl09XCJkYXRhLnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnanVzdGlmeS1jb250ZW50LWJldHdlZW4gcC0wIGQtZmxleCc6IHByb2R1Y3QucXVhbnRpdHksICdqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJzogIXByb2R1Y3QucXVhbnRpdHl9XCJcclxuICAgICAgICAoY2xpY2spPVwicmVtb3ZlRGVmYXVsdCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPCEtLSAqbmdJZj1cImRhdGE/LmNvbnRlbnQ/LmRpc3BsYXk/LnNob3dCdXR0b25cIiAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicHJvZHVjdD8uaXRlbUludmVudG9yeT8ub3BlbmluZ1N0b2NrXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXByb2R1Y3QucXVhbnRpdHlcIj5cclxuICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiYWRkSXRlbVRvQ2FydCgkZXZlbnQsIHByb2R1Y3QsICdBREQnKVwiIFtzdHlsZS5jb2xvcl09XCJkYXRhLnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiSXNFY29tbWVyY2VcIj5cclxuICAgICAgICAgICAgICBBZGQgdG8gQ2FydDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IFtzdHlsZS5jb2xvcl09XCJkYXRhLnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiAqbmdJZj1cIiFJc0Vjb21tZXJjZVwiIChjbGljayk9XCJyYWlzZUxlYWQoKVwiPk5vdGlmeVxyXG4gICAgICAgICAgICAgIE1lPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9kdWN0LnF1YW50aXR5XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicXVhbnRpdHktYnRuXCIgKGNsaWNrKT1cImFkZEl0ZW1Ub0NhcnQoJGV2ZW50LCBwcm9kdWN0LCAnU1VCU1RSQUNUJylcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiZ2V0U3VwcG9ydGluZ0NvbG9yKGRhdGEuc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvcilcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJkYXRhLnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj4tPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInF1YW50aXR5XCIgW3N0eWxlLmNvbG9yXT1cImRhdGEuc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPnt7cHJvZHVjdC5xdWFudGl0eX19PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInF1YW50aXR5LWJ0blwiIChjbGljayk9XCJhZGRJdGVtVG9DYXJ0KCRldmVudCwgcHJvZHVjdCwgJ0FERCcpXCJcclxuICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImdldFN1cHBvcnRpbmdDb2xvcihkYXRhLnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3IpXCJcclxuICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiZGF0YS5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+Kzwvc3Bhbj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcHJvZHVjdD8uaXRlbUludmVudG9yeT8ub3BlbmluZ1N0b2NrXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciB3LTEwMFwiIFtzdHlsZS5jb2xvcl09XCJnZXRUZXh0Q29sb3IoKVwiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24+bm90aWZpY2F0aW9uX2ltcG9ydGFudDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWwtMlwiPk5vdGlmeTwvc3Bhbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48IS0tIDxuZy10ZW1wbGF0ZSAjbG9hZGluZ1NjcmVlbj5cclxuICA8bmd4LXNrZWxldG9uLWxvYWRlciAqbmdJZj1cImZpbHRlckxvYWRpbmdcIiBjb3VudD1cIjFcIiBhcHBlYXJhbmNlPVwiY2lyY2xlXCIgW3RoZW1lXT1cIntcclxuICAgICAgICAgIHdpZHRoOiAnMTAwJScsXHJcbiAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcclxuICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzEwcHgnLFxyXG4gICAgICAgICAgJ3Bvc2l0aW9uJzogJ3JlbGF0aXZlJyxcclxuICAgICAgICAgICdyaWdodCc6ICc1cHgnXHJcbiAgICAgICAgfVwiIC8+XHJcbjwvbmctdGVtcGxhdGU+IC0tPiJdfQ==
261
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hbGwtcHJvZHVjdC1saXN0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZWNvbW1lcmNlL3NlY3Rpb25zL3NtYWxsLXByb2R1Y3QtbGlzdGluZy9zbWFsbC1wcm9kdWN0LWxpc3RpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvc21hbGwtcHJvZHVjdC1saXN0aW5nL3NtYWxsLXByb2R1Y3QtbGlzdGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXBFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUFrQjVDLE1BQU0sT0FBTyw0QkFBNEI7SUFFdkMsWUFDbUIsV0FBd0IsRUFDeEIsTUFB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QkFDUCxZQUFZO3dCQUNaLE9BQU87d0JBQ1AscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxXQUFXO3FCQUNaLGFBQ1UsQ0FBQyxjQUFjLENBQUM7Z01BZWxCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJdGVtVmFyaWFudCwgUHJvZHVjdCB9IGZyb20gJy4uLy4uL3N0eWxlcy9wcm9kdWN0Lm1vZGFsJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQlVTSU5FU1NfQ09OU1RBTlRTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2J1c2luZXNzLmNvbnN0YW50JztcclxuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBPcmRlcmVkSXRlbXMgfSBmcm9tICcuLi8uLi9zdHlsZXMvT3JkZXJlZEl0ZW1zLm1vZGFsJztcclxuaW1wb3J0IHsgQ2FydFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb2xvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb2xvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBJbWFnZUxvYWRpbmdDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2ltYWdlLWxvYWRpbmcvaW1hZ2UtbG9hZGluZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSYXRpbmdNb2R1bGUgfSBmcm9tICdwcmltZW5nL3JhdGluZyc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb2FzdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9hc3QnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1zbWFsbC1wcm9kdWN0LWxpc3RpbmcnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0SWNvbixcclxuICAgIEltYWdlTG9hZGluZ0NvbXBvbmVudCxcclxuICAgIENvbG9yRGlyZWN0aXZlLFxyXG4gICAgUmF0aW5nTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBUb2FzdE1vZHVsZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbTWVzc2FnZVNlcnZpY2VdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zbWFsbC1wcm9kdWN0LWxpc3RpbmcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9zbWFsbC1wcm9kdWN0LWxpc3RpbmcuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYWxsUHJvZHVjdExpc3RpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXJ0U2VydmljZTogQ2FydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIHByaXZhdGUgVVNFUl9DQVJUOiBPcmRlcmVkSXRlbXNbXSB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHByb2R1Y3QhOiBQcm9kdWN0O1xyXG4gIEBJbnB1dCgpIGRhdGE/OiBhbnk7XHJcbiAgQElucHV0KCkgaXNTY3JvbGxhYmxlPzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpc0NhdGVnb3J5UHJvZHVjdExpc3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBjdXN0b21DbGFzcz86IHN0cmluZztcclxuICBASW5wdXQoKSBpbmRleCE6IG51bWJlclxyXG4gIElzRWNvbW1lcmNlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY3VycmVudFRhZ0lkeDogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIHRhZ1RpbWVyOiBhbnk7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5Jc0Vjb21tZXJjZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwid2Vic2l0ZVR5cGVcIikgIT0gJ1NUQVRJQycgPyB0cnVlIDogZmFsc2U7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmRhdGEsIHRoaXMucHJvZHVjdClcclxuICAgIGlmICgodGhpcy5wcm9kdWN0Py50YWdzPy5sZW5ndGggPz8gMCkgPiAxKSB7XHJcbiAgICAgIHRoaXMudGFnVGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50VGFnSWR4ID0gKHRoaXMuY3VycmVudFRhZ0lkeCArIDEpICUgdGhpcy5wcm9kdWN0LnRhZ3MubGVuZ3RoO1xyXG4gICAgICB9LCAzMDAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRhZ1RpbWVyKTtcclxuICB9XHJcblxyXG4gIGFkZEl0ZW1Ub0NhcnQoZXZlbnQ6IFBvaW50ZXJFdmVudCB8IE1vdXNlRXZlbnQsIHByb2R1Y3Q6IFByb2R1Y3QsIHR5cGU6ICdBREQnIHwgJ1NVQlNUUkFDVCcpIHtcclxuICAgIC8vIGlmICh0aGlzLmlzSXRlbU91dE9mU3RvY2socHJvZHVjdCkpIHtcclxuICAgIC8vICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ3dhcm4nLCBzdW1tYXJ5OiAnQ2FydCcsIGRldGFpbDogJ0l0ZW0gaXMgbm90IGF2YWlsYWJsZSBhcyBvZiBub3cuIFdlIHdpbGwgbm90aWZ5IHlvdSBvbmNlIGF2YWlsYWJsZScgfSk7XHJcbiAgICAvLyAgIHJldHVybjtcclxuICAgIC8vIH1cclxuXHJcbiAgICBpZiAoIXByb2R1Y3Q/LnF1YW50aXR5KVxyXG4gICAgICBwcm9kdWN0LnF1YW50aXR5ID0gMDtcclxuICAgIGlmICh0eXBlID09ICdBREQnKSB7XHJcbiAgICAgIHByb2R1Y3QucXVhbnRpdHkgKz0gMTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBwcm9kdWN0LnF1YW50aXR5IC09IDE7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHByb2R1Y3Q/Lml0ZW1WYXJpYW50Py5sZW5ndGgpIHtcclxuICAgICAgY29uc3QgaXRlbVZhcmllbnQ6IEl0ZW1WYXJpYW50IHwgbnVsbCA9IHRoaXMuZ2V0SXRlbVZhcmllbnQocHJvZHVjdCwgcHJvZHVjdC52YXJpZW50SWQpO1xyXG4gICAgICBpZiAoaXRlbVZhcmllbnQpIHtcclxuICAgICAgICBpdGVtVmFyaWVudC5xdWFudGl0eSA9IHByb2R1Y3QucXVhbnRpdHk7XHJcbiAgICAgICAgdGhpcy5jYXJ0U2VydmljZS5hZGRJdGVtVG9DYXJ0KHByb2R1Y3QsIGl0ZW1WYXJpZW50LnZhcmlhbnRJZCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2FydFNlcnZpY2UuYWRkSXRlbVRvQ2FydChwcm9kdWN0KTtcclxuICAgIH1cclxuICAgIGlmIChwcm9kdWN0LnF1YW50aXR5KSB7XHJcbiAgICAgIGxldCBpc1ByZXNlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgICAgdGhpcy5VU0VSX0NBUlQ/LmZvckVhY2goKGl0ZW06IE9yZGVyZWRJdGVtcykgPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnZhcmllbnRJZCA9PSBwcm9kdWN0LnZhcmllbnRJZCkge1xyXG4gICAgICAgICAgaXRlbS5xdWFudGl0eSA9IHByb2R1Y3QucXVhbnRpdHk7XHJcbiAgICAgICAgICBpc1ByZXNlbnQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICAgaWYgKCFpc1ByZXNlbnQpXHJcbiAgICAgICAgdGhpcy5VU0VSX0NBUlQ/LnB1c2gobmV3IE9yZGVyZWRJdGVtcyhwcm9kdWN0LCBwcm9kdWN0LnZhcmllbnRJZCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5VU0VSX0NBUlQgPSB0aGlzLlVTRVJfQ0FSVD8uZmlsdGVyKChpdGVtOiBPcmRlcmVkSXRlbXMpID0+IGl0ZW0udmFyaWVudElkICE9IHByb2R1Y3QudmFyaWVudElkKSA/PyBbXTtcclxuICAgIH1cclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlRGVmYXVsdChldmVudDogUG9pbnRlckV2ZW50IHwgTW91c2VFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG4gIHJhaXNlTGVhZCgpIHtcclxuICAgIGNvbnN0IHVzZXJEZXRhaWxzID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyKCk7XHJcbiAgICBsZXQgcGF5bG9hZCA9IHtcclxuICAgICAgYnVzaW5lc3NJZDogbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2J1c2luZXNzSWQnKSxcclxuICAgICAgZW1haWw6IHVzZXJEZXRhaWxzPy5jb250YWN0Py5lbWFpbCxcclxuICAgICAgbWVzc2FnZTogXCJcIixcclxuICAgICAgbW9iaWxlTm86IFwiXCIsXHJcbiAgICAgIG1vcmVJbmZvOiB7XHJcbiAgICAgICAgTmFtZTogdXNlckRldGFpbHM/LmNvbnRhY3Q/Lm5hbWUsXHJcbiAgICAgICAgXCJNb2JpbGUgTnVtYmVyXCI6IHVzZXJEZXRhaWxzPy5jb250YWN0Py5tb2JpbGUsXHJcbiAgICAgICAgRW1haWw6IHVzZXJEZXRhaWxzPy5jb250YWN0Py5lbWFpbCxcclxuICAgICAgICBcIkxlYWQgU291cmNlXCI6IFwiV2Vic2l0ZVwiLFxyXG4gICAgICAgIFwiTGVhZCBTdGF0dXNcIjogXCJORVdcIlxyXG4gICAgICB9LFxyXG4gICAgICBuYW1lOiB1c2VyRGV0YWlscz8uY29udGFjdD8ubmFtZVxyXG4gICAgfVxyXG4gICAgdGhpcy5yZXN0U2VydmljZS5jcmVhdGVMZWFkKHBheWxvYWQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXM/LmRhdGEpIHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ1RoYW5rIHlvdScsIGRldGFpbDogJ091ciB0ZWFtIHdpbGwgY29udGFjdCB5b3Ugc29vbicgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGVycikge1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0Vycm9yJywgZGV0YWlsOiAnRXJyb3Igb2NjdXJlZCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyJyB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIGdldEl0ZW1WYXJpZW50KHByb2R1Y3Q6IFByb2R1Y3QsIHZhcmllbnRJZDogc3RyaW5nKTogSXRlbVZhcmlhbnQgfCBudWxsIHtcclxuICAgIGxldCBzZWxlY3RlZFZhcmllbnQ6IEl0ZW1WYXJpYW50IHwgbnVsbCA9IG51bGw7XHJcbiAgICBwcm9kdWN0Py5pdGVtVmFyaWFudD8uZm9yRWFjaCgodmFyaWVudDogSXRlbVZhcmlhbnQpID0+IHtcclxuICAgICAgaWYgKHZhcmllbnQudmFyaWFudElkID09IHZhcmllbnRJZClcclxuICAgICAgICBzZWxlY3RlZFZhcmllbnQgPSB2YXJpZW50O1xyXG4gICAgfSlcclxuXHJcbiAgICByZXR1cm4gc2VsZWN0ZWRWYXJpZW50O1xyXG4gIH1cclxuXHJcbiAgZ2V0UGVyY2VudGFnZShwcm9kdWN0OiBQcm9kdWN0KSB7XHJcbiAgICByZXR1cm4gKCgocHJvZHVjdD8ucHJpY2U/LnZhbHVlIC0gcHJvZHVjdD8ucHJpY2U/LmRpc2NvdW50ZWRQcmljZSkgLyBwcm9kdWN0Py5wcmljZT8udmFsdWUpICogMTAwKS50b0ZpeGVkKDApO1xyXG4gIH1cclxuXHJcbiAgZ29Ub1Byb2R1Y3REZXRhaWwocHJvZHVjdDogUHJvZHVjdCkge1xyXG4gICAgY29uc3Qgc2x1ZyA9IHByb2R1Y3Quc2x1Z2lmaWVkTmFtZSB8fCB0aGlzLnRvU2x1Zyhwcm9kdWN0Lm5hbWUpO1xyXG4gICAgaWYgKCFzbHVnKSByZXR1cm47XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2RldGFpbHMnLCBzbHVnXSwge30pO1xyXG4gIH1cclxuICB0b1NsdWcoaW5wdXQ6IGFueSkge1xyXG4gICAgaWYgKCFpbnB1dCkgcmV0dXJuIG51bGw7XHJcbiAgICBjb25zdCBub1doaXRlc3BhY2UgPSBpbnB1dC5yZXBsYWNlKC9cXHMrL2csICctJyk7XHJcbiAgICBjb25zdCBub3JtYWxpemVkID0gbm9XaGl0ZXNwYWNlLm5vcm1hbGl6ZSgnTkZEJyk7XHJcbiAgICBjb25zdCBzbHVnID0gbm9ybWFsaXplZC5yZXBsYWNlKC9bXlxcdy1dL2csICcnKTtcclxuICAgIHJldHVybiBzbHVnLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvLSsvZywgJy0nKS5yZXBsYWNlKC9eLXwtJC9nLCAnJyk7XHJcbiAgfVxyXG5cclxuICBnZXRTdXBwb3J0aW5nQ29sb3IoY29sb3I6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgaGV4ID0gY29sb3I7XHJcbiAgICBpZiAoIWhleClcclxuICAgICAgcmV0dXJuIGNvbG9yO1xyXG4gICAgaGV4ID0gaGV4LnJlcGxhY2UoL14jLywgJycpO1xyXG5cclxuICAgIGxldCBiaWdpbnQgPSBwYXJzZUludChoZXgsIDE2KTtcclxuICAgIGxldCByID0gKGJpZ2ludCA+PiAxNikgJiAyNTU7XHJcbiAgICBsZXQgZyA9IChiaWdpbnQgPj4gOCkgJiAyNTU7XHJcbiAgICBsZXQgYiA9IGJpZ2ludCAmIDI1NTtcclxuXHJcbiAgICByZXR1cm4gYHJnYmEoJHtyfSwgJHtnfSwgJHtifSwgMC40KWA7XHJcbiAgfVxyXG5cclxuICBnZXQgY3VycmVuY3koKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBCVVNJTkVTU19DT05TVEFOVFMuQ1VSUkVOQ1k7XHJcbiAgfVxyXG5cclxuICBnZXRQcm9kdWN0SW1hZ2VzKHByb2R1Y3Q6IGFueSkge1xyXG4gICAgaWYgKCFwcm9kdWN0WydjdXJyZW50SW1hZ2VJbmRleCddKVxyXG4gICAgICBwcm9kdWN0WydjdXJyZW50SW1hZ2VJbmRleCddID0gMDtcclxuXHJcbiAgICBsZXQgaW1hZ2VJbmRleDogbnVtYmVyID0gcHJvZHVjdFsnY3VycmVudEltYWdlSW5kZXgnXSAlIHByb2R1Y3Q/LlsnaXRlbUltYWdlcyddPy5sZW5ndGg7XHJcbiAgICByZXR1cm4gcHJvZHVjdD8uWydpdGVtSW1hZ2VzJ10/LltpbWFnZUluZGV4XT8uaW1nVXJsXHJcbiAgfVxyXG5cclxuICBpbWFnZUluZGV4OiBudW1iZXIgPSAtMTtcclxuICBhc3luYyBjaGFuZ2VJbWFnZShwcm9kdWN0OiBhbnksIGFjdGlvbjogJ1BSRVYnIHwgJ05FWFQnKSB7XHJcbiAgICB0aGlzLmltYWdlSW5kZXggPSB0aGlzLmluZGV4O1xyXG4gICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDMwMCkpO1xyXG5cclxuICAgIGlmIChhY3Rpb24gPT09ICdORVhUJykge1xyXG4gICAgICBwcm9kdWN0WydjdXJyZW50SW1hZ2VJbmRleCddKys7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBwcm9kdWN0WydjdXJyZW50SW1hZ2VJbmRleCddLS07XHJcblxyXG4gICAgICBpZiAocHJvZHVjdFsnY3VycmVudEltYWdlSW5kZXgnXSA8IDApXHJcbiAgICAgICAgcHJvZHVjdFsnY3VycmVudEltYWdlSW5kZXgnXSA9IHByb2R1Y3Q/LlsnaXRlbUltYWdlcyddPy5sZW5ndGggLSAxO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbWFnZUluZGV4ID0gLTE7XHJcbiAgfVxyXG5cclxuICBnZXRSYXRpbmdzKG5vb2ZyYXRpbmdzOiBhbnkpIHtcclxuICAgIGlmIChub29mcmF0aW5ncyA+PSAxMDAwICYmIG5vb2ZyYXRpbmdzIDw9IDEwMDAwKSB7XHJcbiAgICAgIHJldHVybiAobm9vZnJhdGluZ3MgLyAxMDAwKS50b0ZpeGVkKDEpICsgXCJLK1wiO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAobm9vZnJhdGluZ3MgPiAxMDAwMCAmJiBub29mcmF0aW5ncyA8PSAxMDAwMDApIHtcclxuICAgICAgcmV0dXJuIChub29mcmF0aW5ncyAvIDEwMDAwKS50b0ZpeGVkKDEpICsgXCJLK1wiO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAobm9vZnJhdGluZ3MgPiAxMDAwMDAgJiYgbm9vZnJhdGluZ3MgPD0gMTAwMDAwMCkge1xyXG4gICAgICByZXR1cm4gKG5vb2ZyYXRpbmdzIC8gMTAwMDAwKS50b0ZpeGVkKDEpICsgXCJMK1wiO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAobm9vZnJhdGluZ3MgPiAxMDAwMDAwKSB7XHJcbiAgICAgIHJldHVybiAobm9vZnJhdGluZ3MgLyAxMDAwMDAwKS50b0ZpeGVkKDEpICsgXCJNK1wiO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBub29mcmF0aW5ncztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldERpc3BsYXlSYXRpbmcocHJvZHVjdDogYW55KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHJhdGluZyA9IE51bWJlcihwcm9kdWN0Py5hdmVyYWdlUmF0aW5nID8/IDApO1xyXG4gICAgaWYgKCFyYXRpbmcpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJhdGluZy50b0ZpeGVkKDEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QmFja2dyb3VuZENvbG9yKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmNvbG9yIHx8ICcjZmZmZmZmJztcclxuICB9XHJcblxyXG4gIGdldFRleHRDb2xvcigpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgYmFja2dyb3VuZENvbG9yID0gdGhpcy5nZXRCYWNrZ3JvdW5kQ29sb3IoKTtcclxuICAgIHJldHVybiB0aGlzLmlzRGFya0NvbG9yKGJhY2tncm91bmRDb2xvcikgPyAnI2ZmZmZmZicgOiAnIzAwMDAwMCc7XHJcbiAgfVxyXG5cclxuICBpc0RhcmtDb2xvcihjb2xvcjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIWNvbG9yKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgaGV4ID0gY29sb3IudHJpbSgpO1xyXG5cclxuICAgIGlmIChoZXguc3RhcnRzV2l0aCgncmdiJykpIHtcclxuICAgICAgY29uc3QgcmdiVmFsdWVzID0gaGV4Lm1hdGNoKC9cXGQrL2cpO1xyXG4gICAgICBpZiAoIXJnYlZhbHVlcyB8fCByZ2JWYWx1ZXMubGVuZ3RoIDwgMykge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgciA9IE51bWJlcihyZ2JWYWx1ZXNbMF0pO1xyXG4gICAgICBjb25zdCBnID0gTnVtYmVyKHJnYlZhbHVlc1sxXSk7XHJcbiAgICAgIGNvbnN0IGIgPSBOdW1iZXIocmdiVmFsdWVzWzJdKTtcclxuICAgICAgY29uc3QgYnJpZ2h0bmVzcyA9IChyICogMjk5ICsgZyAqIDU4NyArIGIgKiAxMTQpIC8gMTAwMDtcclxuXHJcbiAgICAgIHJldHVybiBicmlnaHRuZXNzIDwgMTI4O1xyXG4gICAgfVxyXG5cclxuICAgIGhleCA9IGhleC5yZXBsYWNlKCcjJywgJycpO1xyXG5cclxuICAgIGlmIChoZXgubGVuZ3RoID09PSAzKSB7XHJcbiAgICAgIGhleCA9IGhleC5zcGxpdCgnJykubWFwKChjaGFyKSA9PiBjaGFyICsgY2hhcikuam9pbignJyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGhleC5sZW5ndGggIT09IDYpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHIgPSBwYXJzZUludChoZXguc3Vic3RyaW5nKDAsIDIpLCAxNik7XHJcbiAgICBjb25zdCBnID0gcGFyc2VJbnQoaGV4LnN1YnN0cmluZygyLCA0KSwgMTYpO1xyXG4gICAgY29uc3QgYiA9IHBhcnNlSW50KGhleC5zdWJzdHJpbmcoNCwgNiksIDE2KTtcclxuXHJcbiAgICBjb25zdCBicmlnaHRuZXNzID0gKHIgKiAyOTkgKyBnICogNTg3ICsgYiAqIDExNCkgLyAxMDAwO1xyXG5cclxuICAgIHJldHVybiBicmlnaHRuZXNzIDwgMTI4O1xyXG4gIH1cclxufSIsIjxwLXRvYXN0IHBvc2l0aW9uPVwiYm90dG9tLXJpZ2h0XCIgW2Jhc2VaSW5kZXhdPVwiMTAwMDAwMDAwMDBcIiBbYXV0b1pJbmRleF09XCJ0cnVlXCI+PC9wLXRvYXN0PlxyXG48ZGl2IGNsYXNzPVwicHJvZHVjdFwiIFtuZ0NsYXNzXT1cInsnd2lkdGgnIDogaXNTY3JvbGxhYmxlLCAnYWRqdXN0SGVpZ2h0V2lkdGgnOiBpc0NhdGVnb3J5UHJvZHVjdExpc3R9XCJcclxuICBbc3R5bGUub3BhY2l0eV09XCJwcm9kdWN0Py5pdGVtSW52ZW50b3J5Py5vcGVuaW5nU3RvY2sgPT0gMCA/IDAuNSA6IDFcIiBbYXR0ci5zdHlsZV09XCJjdXN0b21DbGFzc1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJwcm9kLWltZ1wiIFtjbGFzcy5mYWRlLW91dF09XCJpbWFnZUluZGV4ID09IGluZGV4XCI+XHJcbiAgICA8aW1hZ2UtbG9hZGluZyBbaW1hZ2VVcmxdPVwiZ2V0UHJvZHVjdEltYWdlcyhwcm9kdWN0KVwiIFtoYXNoXT1cInByb2R1Y3QuaXRlbUltYWdlcz8uWzBdPy5ibHVyaGFzaFwiXHJcbiAgICAgIChjbGljayk9XCJnb1RvUHJvZHVjdERldGFpbChwcm9kdWN0KVwiIFt0aGVtZV09XCJkYXRhPy5zdHlsZXM/LnRoZW1lXCI+PC9pbWFnZS1sb2FkaW5nPlxyXG4gICAgPGRpdiBjbGFzcz1cImRpc2NvdW50XCIgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmNvbG9yXCJcclxuICAgICAgW3NpbXBvQ29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5jb2xvclwiICpuZ0lmPVwiZ2V0UGVyY2VudGFnZShwcm9kdWN0KSA+ICcwJ1wiPnt7Z2V0UGVyY2VudGFnZShwcm9kdWN0KX19JVxyXG4gICAgICBvZmY8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LXRhZy1iYWRnZVwiICpuZ0lmPVwicHJvZHVjdD8udGFncz8ubGVuZ3RoXCI+XHJcbiAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCB0YWcgb2YgcHJvZHVjdC50YWdzOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICBjbGFzcz1cInByb2R1Y3QtdGFnLWxhYmVsXCJcclxuICAgICAgICBbY2xhc3MudGFnLWFjdGl2ZV09XCJpID09PSBjdXJyZW50VGFnSWR4XCJcclxuICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCJcclxuICAgICAgICBbc3R5bGUuY29sb3JdPVwiaXNEYXJrQ29sb3IoZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvcikgPyAnI2ZmZmZmZicgOiAnIzAwMDAwMCdcIj5cclxuICAgICAgICB7eyB0YWcgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImltYWdlLXByaWNlXCIgKm5nSWY9XCJwcm9kdWN0Py5wcmljZVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInNlbGxpbmctcHJpY2VcIj5cclxuICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImN1cnJlbmN5XCI+PC9zcGFuPiB7e3Byb2R1Y3Q/LnByaWNlPy5zZWxsaW5nUHJpY2UgPz8gMH19XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJvcmlnaW5hbC1wcmljZVwiICpuZ0lmPVwicHJvZHVjdC5wcmljZS52YWx1ZSAtIHByb2R1Y3QucHJpY2UuZGlzY291bnRlZFByaWNlID4gMlwiPlxyXG4gICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiY3VycmVuY3lcIj48L3NwYW4+IHt7cHJvZHVjdD8ucHJpY2U/LnZhbHVlID8/IDB9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtYnV0dG9uc1wiICpuZ0lmPVwiKHByb2R1Y3Q/Lml0ZW1JbWFnZXM/Lmxlbmd0aCB8fCAwKSA+IDFcIj5cclxuICAgICAgPGRpdj48bWF0LWljb24gKGNsaWNrKT1cImNoYW5nZUltYWdlKHByb2R1Y3QsICdQUkVWJylcIiBjbGFzcz1cImNsci1ibGFja1wiPmtleWJvYXJkX2Fycm93X2xlZnQ8L21hdC1pY29uPjwvZGl2PlxyXG4gICAgICA8ZGl2PjxtYXQtaWNvbiAoY2xpY2spPVwiY2hhbmdlSW1hZ2UocHJvZHVjdCwgJ05FWFQnKVwiIGNsYXNzPVwiY2xyLWJsYWNrXCI+a2V5Ym9hcmRfYXJyb3dfcmlnaHQ8L21hdC1pY29uPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJwcm9kdWN0LWhlYWRpbmcgaC0zOCB0ZXh0LWNlbnRlclwiIChjbGljayk9XCJnb1RvUHJvZHVjdERldGFpbChwcm9kdWN0KVwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJ0cmltLXRleHRcIiBbc3R5bGUuY29sb3JdPVwiZ2V0VGV4dENvbG9yKClcIj57e3Byb2R1Y3QubmFtZX19PC9zcGFuPlxyXG4gICAgPGRpdiBjbGFzcz1cImJvdHRvbVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicmV2aWV3LXJhdGluZ1wiICpuZ0lmPVwiZ2V0RGlzcGxheVJhdGluZyhwcm9kdWN0KVwiPlxyXG4gICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9kMno5NDk3eHA4eGIxMi5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy83OTUxNDFjMTc3NDU5MTM5NDk5N3N2Z3ZpZXdlci1vdXRwdXQuc3ZnXCIgd2lkdGg9XCIxOFwiXHJcbiAgICAgICAgICBoZWlnaHQ9XCIxOFwiPiBcclxuICAgICAgICA8c3BhbiBjbGFzcz1cInJhdGluZy12YWx1ZVwiIFtzdHlsZS5jb2xvcl09XCJnZXRUZXh0Q29sb3IoKVwiPnt7IGdldERpc3BsYXlSYXRpbmcocHJvZHVjdCkgfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImFkZC10by1jYXJ0XCIgW3N0eWxlLmJvcmRlckNvbG9yXT1cImRhdGEuc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieydqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBwLTAgZC1mbGV4JzogcHJvZHVjdC5xdWFudGl0eSwgJ2p1c3RpZnktY29udGVudC1jZW50ZXInOiAhcHJvZHVjdC5xdWFudGl0eX1cIlxyXG4gICAgICAgIChjbGljayk9XCJyZW1vdmVEZWZhdWx0KCRldmVudClcIj5cclxuICAgICAgICA8IS0tICpuZ0lmPVwiZGF0YT8uY29udGVudD8uZGlzcGxheT8uc2hvd0J1dHRvblwiIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9kdWN0Py5pdGVtSW52ZW50b3J5Py5vcGVuaW5nU3RvY2tcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcHJvZHVjdC5xdWFudGl0eVwiPlxyXG4gICAgICAgICAgICA8ZGl2IChjbGljayk9XCJhZGRJdGVtVG9DYXJ0KCRldmVudCwgcHJvZHVjdCwgJ0FERCcpXCIgW3N0eWxlLmNvbG9yXT1cImRhdGEuc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJJc0Vjb21tZXJjZVwiPlxyXG4gICAgICAgICAgICAgIEFkZCB0byBDYXJ0PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgW3N0eWxlLmNvbG9yXT1cImRhdGEuc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiICpuZ0lmPVwiIUlzRWNvbW1lcmNlXCIgKGNsaWNrKT1cInJhaXNlTGVhZCgpXCI+Tm90aWZ5XHJcbiAgICAgICAgICAgICAgTWU8L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb2R1Y3QucXVhbnRpdHlcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJxdWFudGl0eS1idG5cIiAoY2xpY2spPVwiYWRkSXRlbVRvQ2FydCgkZXZlbnQsIHByb2R1Y3QsICdTVUJTVFJBQ1QnKVwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJnZXRTdXBwb3J0aW5nQ29sb3IoZGF0YS5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yKVwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImRhdGEuc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPi08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicXVhbnRpdHlcIiBbc3R5bGUuY29sb3JdPVwiZGF0YS5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+e3twcm9kdWN0LnF1YW50aXR5fX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicXVhbnRpdHktYnRuXCIgKGNsaWNrKT1cImFkZEl0ZW1Ub0NhcnQoJGV2ZW50LCBwcm9kdWN0LCAnQUREJylcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiZ2V0U3VwcG9ydGluZ0NvbG9yKGRhdGEuc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvcilcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJkYXRhLnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj4rPC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFwcm9kdWN0Py5pdGVtSW52ZW50b3J5Py5vcGVuaW5nU3RvY2tcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHctMTAwXCIgW3N0eWxlLmNvbG9yXT1cImdldFRleHRDb2xvcigpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5ub3RpZmljYXRpb25faW1wb3J0YW50PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC0yXCI+Tm90aWZ5PC9zcGFuPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gPG5nLXRlbXBsYXRlICNsb2FkaW5nU2NyZWVuPlxyXG4gIDxuZ3gtc2tlbGV0b24tbG9hZGVyICpuZ0lmPVwiZmlsdGVyTG9hZGluZ1wiIGNvdW50PVwiMVwiIGFwcGVhcmFuY2U9XCJjaXJjbGVcIiBbdGhlbWVdPVwie1xyXG4gICAgICAgICAgd2lkdGg6ICcxMDAlJyxcclxuICAgICAgICAgIGhlaWdodDogJzEwMCUnLFxyXG4gICAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiAnMTBweCcsXHJcbiAgICAgICAgICAncG9zaXRpb24nOiAncmVsYXRpdmUnLFxyXG4gICAgICAgICAgJ3JpZ2h0JzogJzVweCdcclxuICAgICAgICB9XCIgLz5cclxuPC9uZy10ZW1wbGF0ZT4gLS0+Il19
@@ -24,6 +24,8 @@ export class Product {
24
24
  this.rating = json?.["rating"];
25
25
  this.reviewCount = json?.["reviewCount"];
26
26
  this.brief = json?.["brief"];
27
+ this.itemCode = json?.["itemCode"];
28
+ this.tags = json?.["tags"] ?? [];
27
29
  this.recommended = json?.["recommended"];
28
30
  this.returnable = json?.["returnable"];
29
31
  this.availableOnCod = json?.["availableOnCod"];
@@ -65,4 +67,4 @@ export class checkItemAlreadyAdded {
65
67
  this.businessId = localStorage.getItem('bId') ?? '';
66
68
  }
67
69
  }
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC5tb2RhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZWNvbW1lcmNlL3N0eWxlcy9wcm9kdWN0Lm1vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxPQUFPO0lBbURsQiwyQkFBMkI7SUFDM0IsMkJBQTJCO0lBRTNCLFlBQVksSUFBNkI7UUFDdkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksRUFBRSxDQUFDLG9CQUFvQixDQUF1QixDQUFDO1FBQzdFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFrQixDQUFDO1FBQzlELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxFQUFFLENBQUMsWUFB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V0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDO1FBQzVELENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUE2TEQsTUFBTSxPQUFPLHlCQUF5QjtJQU9wQyxZQUFZLE1BQWMsRUFBRSxRQUE0QyxFQUFFLFNBQWdCO1FBQ3hGLElBQUksQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDbkQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUE7SUFDdkIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLHFCQUFxQjtJQU9oQyxZQUFZLE1BQWMsRUFBRSxTQUFpQixFQUFFLE1BQWMsRUFBRSxRQUE0QztRQUN6RyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQTtRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ3JELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBQcm9kdWN0IHtcclxuICBpdGVtSWQ6IHN0cmluZ1xyXG4gIHZhcmllbnRJZDogc3RyaW5nXHJcbiAgYnVzaW5lc3NJZDogc3RyaW5nXHJcbiAgc3RvcmVJZDogc3RyaW5nW11cclxuICBuYW1lOiBzdHJpbmdcclxuICBzbHVnaWZpZWROYW1lOiBzdHJpbmdcclxuICBpdGVtQ2F0ZWdvcmlzYXRpb246IEl0ZW1DYXRlZ29yaXNhdGlvblxyXG4gIGl0ZW1JbnZlbnRvcnk6IEl0ZW1JbnZlbnRvcnlcclxuICBpdGVtU3RhdHVzOiBzdHJpbmdcclxuICBpdGVtVHlwZTogc3RyaW5nXHJcbiAgaXRlbVZhcmlhbnQ6IEl0ZW1WYXJpYW50W11cclxuICBpdGVtSW1hZ2VzOiBJdGVtSW1hZ2VbXVxyXG4gIGl0ZW1QYWNrczogSXRlbVBhY2syW11cclxuICBhZGRPblRvSXRlbTogQWRkT25Ub0l0ZW1bXVxyXG4gIHByb3BlcnRpZXM6IGFueTtcclxuICB1bml0OiBVbml0O1xyXG4gIHF1YW50aXR5OiBudW1iZXI7XHJcbiAgcHJpY2U6IFByaWNlO1xyXG4gIHBydmlld0lkeDogbnVtYmVyO1xyXG4gIHdoaXNsaXN0OiBib29sZWFuO1xyXG4gIG1hdGVyaWFsczogYW55O1xyXG4gIG1ha2luZ0NoYXJnZVBlcmNlbnRhZ2U6IG51bWJlcjtcclxuICBqZXdlbGxlcnlQcmljZTogbnVtYmVyXHJcbiAgYmFzZVdlaWdodDogbnVtYmVyXHJcbiAgdG90YWxSZXZpZXdDb3VudDogbnVtYmVyO1xyXG4gIGF2ZXJhZ2VSYXRpbmc6IG51bWJlcjtcclxuICBwcm9kdWN0SWQ/OiBzdHJpbmc7XHJcblxyXG4gIC8vIGNyZWF0ZWREZXRhaWxzOiBDcmVhdGVkRGV0YWlsczJcclxuICAvLyBhdmFpbGFibGVPbmxpbmU6IGJvb2xlYW5cclxuICBjYXRlZ29yeUlkOiBzdHJpbmdcclxuICAvLyBmdWxmaWxsbWVudElkOiBzdHJpbmdcclxuICAvLyBsb2NhdGlvbklkOiBzdHJpbmdcclxuICBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yXHJcbiAgcmF0aW5nOiBudW1iZXI7XHJcbiAgcmV2aWV3Q291bnQ6IG51bWJlcjtcclxuICAvLyByZXR1cm5XaW5kb3c6IG51bWJlclxyXG4gIC8vIHRpbWVUb1NoaXA6IG51bWJlclxyXG4gIC8vIHJhdGVhYmxlOiBib29sZWFuXHJcbiAgLy8gbWF0Y2hlZDogYm9vbGVhblxyXG4gIC8vIHJlbGF0ZWQ6IGJvb2xlYW5cclxuICByZWNvbW1lbmRlZDogYm9vbGVhblxyXG4gIHJldHVybmFibGU6IGJvb2xlYW5cclxuICAvLyBhY3RpdmU6IGJvb2xlYW5cclxuICAvLyBjYW5jZWxsYWJsZTogYm9vbGVhblxyXG4gIC8vIHNlbGxlclJldHVyblBpY2tVcDogYm9vbGVhblxyXG4gIGF2YWlsYWJsZU9uQ29kOiBib29sZWFuXHJcbiAgYnJpZWY6IHN0cmluZ1xyXG4gIGpld2VscnlQcmljZUJyZWFrdXA6IGFueVxyXG4gIGNvbmZpZ3M6IGFueTtcclxuICAvLyBjcmVhdGVkVGltZVN0YW1wOiBzdHJpbmdcclxuICAvLyB1cGRhdGVkVGltZVN0YW1wOiBzdHJpbmdcclxuXHJcbiAgY29uc3RydWN0b3IoanNvbj86IHsgW2tleTogc3RyaW5nXTogYW55IH0pIHtcclxuICAgIHRoaXMuaXRlbUlkID0ganNvbj8uW1wiaXRlbUlkXCJdO1xyXG4gICAgdGhpcy5zdG9yZUlkID0ganNvbj8uW1wic3RvcmVJZFwiXTtcclxuICAgIHRoaXMudmFyaWVudElkID0ganNvbj8uW1wiaXRlbUlkXCJdO1xyXG4gICAgdGhpcy5idXNpbmVzc0lkID0ganNvbj8uW1wiYnVzaW5lc3NJZFwiXTtcclxuICAgIHRoaXMubmFtZSA9IGpzb24/LltcIm5hbWVcIl07XHJcbiAgICB0aGlzLnNsdWdpZmllZE5hbWUgPSBqc29uPy5bXCJzbHVnaWZpZWROYW1lXCJdO1xyXG4gICAgdGhpcy5pdGVtQ2F0ZWdvcmlzYXRpb24gPSBqc29uPy5bXCJpdGVtQ2F0ZWdvcmlzYXRpb25cIl0gYXMgSXRlbUNhdGVnb3Jpc2F0aW9uO1xyXG4gICAgdGhpcy5pdGVtSW52ZW50b3J5ID0ganNvbj8uW1wiaXRlbUludmVudG9yeVwiXSBhcyBJdGVtSW52ZW50b3J5O1xyXG4gICAgdGhpcy5pdGVtU3RhdHVzID0ganNvbj8uW1wiaXRlbVN0YXR1c1wiXTtcclxuICAgIHRoaXMuaXRlbVR5cGUgPSBqc29uPy5bXCJpdGVtVHlwZVwiXTtcclxuICAgIHRoaXMuaXRlbVZhcmlhbnQgPSBqc29uPy5bXCJpdGVtVmFyaWFudFwiXTtcclxuICAgIHRoaXMuaXRlbUltYWdlcyA9IGpzb24/LltcIml0ZW1JbWFnZXNcIl07XHJcbiAgICB0aGlzLml0ZW1QYWNrcyA9IGpzb24/LltcIml0ZW1QYWNrc1wiXTtcclxuICAgIHRoaXMuYWRkT25Ub0l0ZW0gPSBqc29uPy5bXCJhZGRPblRvSXRlbVwiXTtcclxuICAgIHRoaXMuc2x1Z2lmaWVkTmFtZSA9IGpzb24/LltcInNsdWdpZmllZE5hbWVcIl07XHJcbiAgICB0aGlzLnVuaXQgPSBqc29uPy5bXCJ1bml0XCJdO1xyXG4gICAgdGhpcy5wcmljZSA9IGpzb24/LltcInByaWNlXCJdO1xyXG4gICAgdGhpcy5jYXRlZ29yeUlkID0ganNvbj8uW1wiY2F0ZWdvcnlJZFwiXTtcclxuICAgIHRoaXMuZGVzY3JpcHRvciA9IGpzb24/LltcImRlc2NyaXB0b3JcIl07XHJcbiAgICB0aGlzLnJhdGluZyA9IGpzb24/LltcInJhdGluZ1wiXTtcclxuICAgIHRoaXMucmV2aWV3Q291bnQgPSBqc29uPy5bXCJyZXZpZXdDb3VudFwiXTtcclxuICAgIHRoaXMuYnJpZWYgPSBqc29uPy5bXCJicmllZlwiXTtcclxuICAgIHRoaXMucmVjb21tZW5kZWQgPSBqc29uPy5bXCJyZWNvbW1lbmRlZFwiXTtcclxuICAgIHRoaXMucmV0dXJuYWJsZSA9IGpzb24/LltcInJldHVybmFibGVcIl07XHJcbiAgICB0aGlzLmF2YWlsYWJsZU9uQ29kID0ganNvbj8uW1wiYXZhaWxhYmxlT25Db2RcIl07XHJcbiAgICB0aGlzLnBydmlld0lkeCA9IDA7XHJcbiAgICB0aGlzLnF1YW50aXR5ID0ganNvbj8uW1wicXVhbnRpdHlcIl0gPz8gMDtcclxuICAgIHRoaXMud2hpc2xpc3QgPSBmYWxzZTtcclxuICAgIHRoaXMuaXRlbVZhcmlhbnQgPSBqc29uPy5bXCJpdGVtVmFyaWFudFwiXSA/PyBbXTtcclxuICAgIHRoaXMubWFraW5nQ2hhcmdlUGVyY2VudGFnZSA9IGpzb24/LltcIm1ha2luZ0NoYXJnZVBlcmNlbnRhZ2VcIl0gPz8gMFxyXG4gICAgdGhpcy5qZXdlbGxlcnlQcmljZSA9IGpzb24/LltcImpld2VsbGVyeVByaWNlXCJdID8/IDBcclxuICAgIHRoaXMubWF0ZXJpYWxzID0ganNvbj8uW1wibWF0ZXJpYWxzXCJdXHJcbiAgICB0aGlzLmJhc2VXZWlnaHQgPSBqc29uPy5bXCJiYXNlV2VpZ2h0XCJdID8/IDBcclxuICAgIHRoaXMuamV3ZWxyeVByaWNlQnJlYWt1cCA9IGpzb24/LltcImpld2VscnlQcmljZUJyZWFrdXBcIl0gPz8ge31cclxuICAgIHRoaXMuY29uZmlncyA9IGpzb24/LltcImNvbmZpZ3NcIl0gPz8ge31cclxuICAgIHRoaXMudG90YWxSZXZpZXdDb3VudCA9IGpzb24/LltcInRvdGFsUmV2aWV3Q291bnRcIl0gPz8gMDtcclxuICAgIHRoaXMuYXZlcmFnZVJhdGluZyA9IGpzb24/LltcImF2ZXJhZ2VSYXRpbmdcIl0gPz8gMDtcclxuICAgIGlmICh0aGlzLml0ZW1WYXJpYW50Py5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuaXRlbUltYWdlcyA9IHRoaXMuaXRlbVZhcmlhbnQ/LlswXT8udmFyaWFudEltYWdlcztcclxuICAgICAgdGhpcy5wcmljZSA9IHRoaXMuaXRlbVZhcmlhbnQ/LlswXT8uaXRlbVZhcmlhbnRQcmljZTtcclxuICAgICAgdGhpcy52YXJpZW50SWQgPSB0aGlzLml0ZW1WYXJpYW50Py5bMF0/LnZhcmlhbnRJZDtcclxuICAgICAgdGhpcy5pdGVtSW52ZW50b3J5ID0gdGhpcy5pdGVtVmFyaWFudD8uWzBdPy5pdGVtSW52ZW50b3J5O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtQ2F0ZWdvcmlzYXRpb24ge1xyXG4gIGl0ZW1DYXRlZ29yaWVzOiBJdGVtQ2F0ZWdvcnlbXVxyXG4gIHByb2R1Y3RUYWdzOiBQcm9kdWN0VGFnW11cclxuICBpdGVtQ29sbGVjdGlvbjogSXRlbUNvbGxlY3Rpb25bXVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1DYXRlZ29yeSB7XHJcbiAgcmVmSWQ6IHN0cmluZ1xyXG4gIHJlZk5hbWU6IHN0cmluZ1xyXG4gIGltZ1VybDogc3RyaW5nXHJcbiAgbWF4UXVhbnRpdHk6IG51bWJlclxyXG4gIHByaWNlOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0VGFnIHtcclxuICB0YWdJZDogc3RyaW5nXHJcbiAgYnVzaW5lc3NJZDogc3RyaW5nXHJcbiAgc3RvcmVJZDogc3RyaW5nW11cclxuICBjb2xsZWN0aW9uSWQ6IHN0cmluZ1xyXG4gIHN1YkNhdGVnb3J5SWQ6IHN0cmluZ1xyXG4gIGNhdGVnb3J5SWQ6IHN0cmluZ1xyXG4gIGl0ZW1JZDogc3RyaW5nXHJcbiAgdGFnTmFtZTogc3RyaW5nXHJcbiAgYWN0aXZlOiBib29sZWFuXHJcbiAgb3RoZXJEZXRhaWxzOiBhbnk7XHJcbiAgY3JlYXRlZERldGFpbHM6IENyZWF0ZWREZXRhaWxzXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlZERldGFpbHMge1xyXG4gIGNyZWF0ZWRCeUlkOiBzdHJpbmdcclxuICBjcmVhdGVkQnlOYW1lOiBzdHJpbmdcclxuICBjcmVhdGVkVGltZVN0YW1wOiBzdHJpbmdcclxuICB1cGRhdGVkVGltZVN0YW1wOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtQ29sbGVjdGlvbiB7XHJcbiAgcmVmSWQ6IHN0cmluZ1xyXG4gIHJlZk5hbWU6IHN0cmluZ1xyXG4gIGltZ1VybDogc3RyaW5nXHJcbiAgbWF4UXVhbnRpdHk6IG51bWJlclxyXG4gIHByaWNlOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtSW52ZW50b3J5IHtcclxuICBvcGVuaW5nU3RvY2s6IG51bWJlclxyXG4gIHNrdTogc3RyaW5nXHJcbiAgYmFyY29kZTogc3RyaW5nXHJcbiAgcHJlc2VudFN0b2NrRGF0ZTogc3RyaW5nXHJcbiAgbG93U3RvY2tBbGVydDogYm9vbGVhblxyXG4gIGxvd1N0b2NrUXVhbnRpdHk6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1WYXJpYW50IHtcclxuICB2YXJpYW50SWQ6IHN0cmluZ1xyXG4gIGl0ZW1JZDogc3RyaW5nXHJcbiAgcXVhbnRpdHk6IG51bWJlclxyXG4gIHdpc2hsaXN0OiBib29sZWFuXHJcbiAgdmFyaWFudE5hbWU6IHN0cmluZ1xyXG4gIHZhcmlhbnRJbWFnZXM6IEl0ZW1JbWFnZVtdXHJcbiAgaXRlbVBhY2tzOiBJdGVtUGFja1tdXHJcbiAgcHJvcGVydGllczogYW55O1xyXG4gIGl0ZW1WYXJpYW50UHJpY2U6IEl0ZW1WYXJpYW50UHJpY2VcclxuICBpdGVtSW52ZW50b3J5OiBJdGVtSW52ZW50b3J5MlxyXG4gIGl0ZW1TdGF0dXM6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1QYWNrIHtcclxuICBpdGVtUGFja0lkOiBzdHJpbmdcclxuICBwYWNrTmFtZTogc3RyaW5nXHJcbiAgYWN0aXZlOiBib29sZWFuXHJcbiAgYWN0dWFsUHJpY2U6IG51bWJlclxyXG4gIG9mZmVyZWRQcmljZTogbnVtYmVyXHJcbiAgcGFja1F1YW50aXR5OiBudW1iZXJcclxuICBtYXhPcmRlclF1YW50aXR5OiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtVmFyaWFudFByaWNlIHtcclxuICBjdXJyZW5jeTogc3RyaW5nXHJcbiAgdmFsdWU6IG51bWJlclxyXG4gIGVzdGltYXRlZFZhbHVlOiBudW1iZXJcclxuICBjb21wdXRlZFZhbHVlOiBudW1iZXJcclxuICBsaXN0ZWRWYWx1ZTogbnVtYmVyXHJcbiAgb2ZmZXJlZFZhbHVlOiBudW1iZXJcclxuICBtaW5pbXVtVmFsdWU6IG51bWJlclxyXG4gIG1heGltdW1WYWx1ZTogbnVtYmVyXHJcbiAgcHVyY2hhc2VQcmljZTogbnVtYmVyXHJcbiAgd2hvbGVTYWxlUHJpY2U6IG51bWJlclxyXG4gIG1heFdob2xlU2FsZUxpbWl0OiBudW1iZXJcclxuICBtYXJnaW46IG51bWJlclxyXG4gIHByb2ZpdDogbnVtYmVyXHJcbiAgZGlzY291bnRlZFByaWNlOiBudW1iZXJcclxuICB0YXhSZWY6IFRheFJlZlxyXG4gIHRheEFtb3VudDogbnVtYmVyXHJcbiAgc2VsbGluZ1ByaWNlOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUYXhSZWYge1xyXG4gIHRheElkOiBzdHJpbmdcclxuICB0YXhQZXJjZW50OiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtSW52ZW50b3J5MiB7XHJcbiAgb3BlbmluZ1N0b2NrOiBudW1iZXJcclxuICBza3U6IHN0cmluZ1xyXG4gIGJhcmNvZGU6IHN0cmluZ1xyXG4gIHByZXNlbnRTdG9ja0RhdGU6IHN0cmluZ1xyXG4gIGxvd1N0b2NrQWxlcnQ6IGJvb2xlYW5cclxuICBsb3dTdG9ja1F1YW50aXR5OiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtSW1hZ2Uge1xyXG4gIGltZ1VybDogc3RyaW5nO1xyXG4gIGJsdXJoYXNoOiBzdHJpbmc7XHJcbiAgaW1nRGVzYzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1QYWNrMiB7XHJcbiAgaXRlbVBhY2tJZDogc3RyaW5nXHJcbiAgcGFja05hbWU6IHN0cmluZ1xyXG4gIGFjdGl2ZTogYm9vbGVhblxyXG4gIGFjdHVhbFByaWNlOiBudW1iZXJcclxuICBvZmZlcmVkUHJpY2U6IG51bWJlclxyXG4gIHBhY2tRdWFudGl0eTogbnVtYmVyXHJcbiAgbWF4T3JkZXJRdWFudGl0eTogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWRkT25Ub0l0ZW0ge1xyXG4gIHJlZklkOiBzdHJpbmdcclxuICByZWZOYW1lOiBzdHJpbmdcclxuICBpbWdVcmw6IHN0cmluZ1xyXG4gIG1heFF1YW50aXR5OiBudW1iZXJcclxuICBwcmljZTogbnVtYmVyXHJcbn1cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVuaXQge1xyXG4gIGlkOiBzdHJpbmdcclxuICBrZXk6IHN0cmluZ1xyXG4gIHZhbHVlOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQcmljZSB7XHJcbiAgY3VycmVuY3k6IHN0cmluZ1xyXG4gIHZhbHVlOiBudW1iZXJcclxuICBlc3RpbWF0ZWRWYWx1ZTogbnVtYmVyXHJcbiAgY29tcHV0ZWRWYWx1ZTogbnVtYmVyXHJcbiAgbGlzdGVkVmFsdWU6IG51bWJlclxyXG4gIG9mZmVyZWRWYWx1ZTogbnVtYmVyXHJcbiAgbWluaW11bVZhbHVlOiBudW1iZXJcclxuICBtYXhpbXVtVmFsdWU6IG51bWJlclxyXG4gIHB1cmNoYXNlUHJpY2U6IG51bWJlclxyXG4gIHdob2xlU2FsZVByaWNlOiBudW1iZXJcclxuICBtYXhXaG9sZVNhbGVMaW1pdDogbnVtYmVyXHJcbiAgbWFyZ2luOiBudW1iZXJcclxuICBwcm9maXQ6IG51bWJlclxyXG4gIGRpc2NvdW50ZWRQcmljZTogbnVtYmVyXHJcbiAgdGF4UmVmOiBUYXhSZWYyXHJcbiAgdGF4QW1vdW50OiBudW1iZXJcclxuICBzZWxsaW5nUHJpY2U6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRheFJlZjIge1xyXG4gIHRheElkOiBzdHJpbmdcclxuICB0YXhQZXJjZW50OiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVkRGV0YWlsczIge1xyXG4gIGNyZWF0ZWRCeUlkOiBzdHJpbmdcclxuICBjcmVhdGVkQnlOYW1lOiBzdHJpbmdcclxuICBjcmVhdGVkVGltZVN0YW1wOiBzdHJpbmdcclxuICB1cGRhdGVkVGltZVN0YW1wOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEZXNjcmlwdG9yIHtcclxuICBuYW1lOiBzdHJpbmdcclxuICBjb2RlOiBzdHJpbmdcclxuICBzeW1ib2w6IHN0cmluZ1xyXG4gIHNob3J0RGVzYzogc3RyaW5nXHJcbiAgbG9uZ0Rlc2M6IHN0cmluZ1xyXG4gIGl0ZW1JbWFnZXM6IEl0ZW1JbWFnZTJbXVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1JbWFnZTIge1xyXG4gIGltZ1VybDogc3RyaW5nXHJcbiAgaW1nRGVzYzogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBzeW5jSXRlbVRvU2VydmVyREJSZXF1ZXN0IHtcclxuICBidXNpbmVzc0lkOiBzdHJpbmdcclxuICB1c2VySWQ6IHN0cmluZztcclxuICBjYXJ0VHlwZTogJ0NBUlQnIHwgJ1dJU0hMSVNIJyB8ICdUUklBTF9DQVJUJ1xyXG4gIGNhcnRJdGVtczogYW55W11cclxuICBwbGF0Zm9ybTogc3RyaW5nXHJcblxyXG4gIGNvbnN0cnVjdG9yKHVzZXJJZDogc3RyaW5nLCBjYXJ0VHlwZTogJ0NBUlQnIHwgJ1dJU0hMSVNIJyB8ICdUUklBTF9DQVJUJywgY2FydEl0ZW1zOiBhbnlbXSkge1xyXG4gICAgdGhpcy5idXNpbmVzc0lkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2JJZCcpID8/ICcnXHJcbiAgICB0aGlzLnVzZXJJZCA9IHVzZXJJZFxyXG4gICAgdGhpcy5jYXJ0VHlwZSA9IGNhcnRUeXBlXHJcbiAgICB0aGlzLmNhcnRJdGVtcyA9IGNhcnRJdGVtc1xyXG4gICAgdGhpcy5wbGF0Zm9ybSA9ICdXRUInXHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgY2hlY2tJdGVtQWxyZWFkeUFkZGVkIHtcclxuICBpdGVtSWQ6IHN0cmluZ1xyXG4gIHZhcmlhbnRJZDogc3RyaW5nXHJcbiAgdXNlcklkOiBzdHJpbmdcclxuICBidXNpbmVzc0lkOiBzdHJpbmdcclxuICBjYXJ0VHlwZTogJ0NBUlQnIHwgJ1dJU0hMSVNIJyB8ICdUUklBTF9DQVJUJ1xyXG5cclxuICBjb25zdHJ1Y3RvcihpdGVtSWQ6IHN0cmluZywgdmFyaWFudElkOiBzdHJpbmcsIHVzZXJJZDogc3RyaW5nLCBjYXJ0VHlwZTogJ0NBUlQnIHwgJ1dJU0hMSVNIJyB8ICdUUklBTF9DQVJUJykge1xyXG4gICAgdGhpcy5pdGVtSWQgPSBpdGVtSWRcclxuICAgIHRoaXMudmFyaWFudElkID0gdmFyaWFudElkXHJcbiAgICB0aGlzLnVzZXJJZCA9IHVzZXJJZFxyXG4gICAgdGhpcy5jYXJ0VHlwZSA9IGNhcnRUeXBlXHJcbiAgICB0aGlzLmJ1c2luZXNzSWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYklkJykgPz8gJydcclxuICB9XHJcbn1cclxuXHJcblxyXG4iXX0=
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC5tb2RhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZWNvbW1lcmNlL3N0eWxlcy9wcm9kdWN0Lm1vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxPQUFPO0lBcURsQiwyQkFBMkI7SUFDM0IsMkJBQTJCO0lBRTNCLFlBQVksSUFBNkI7UUFDdkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksRUFBRSxDQUFDLG9CQUFvQixDQUF1QixDQUFDO1FBQzdFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFrQixDQUFDO1FBQzlELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxFQUFFLENBQUMsWUFB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QUFnQixDQUFDO1lBQ3JELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQztZQUNsRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUM7UUFDNUQsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTZMRCxNQUFNLE9BQU8seUJBQXlCO0lBT3BDLFlBQVksTUFBYyxFQUFFLFFBQTRDLEVBQUUsU0FBZ0I7UUFDeEYsSUFBSSxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUNuRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQTtRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQTtJQUN2QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8scUJBQXFCO0lBT2hDLFlBQVksTUFBYyxFQUFFLFNBQWlCLEVBQUUsTUFBYyxFQUFFLFFBQTRDO1FBQ3pHLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO1FBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDckQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFByb2R1Y3Qge1xyXG4gIGl0ZW1JZDogc3RyaW5nXHJcbiAgdmFyaWVudElkOiBzdHJpbmdcclxuICBidXNpbmVzc0lkOiBzdHJpbmdcclxuICBzdG9yZUlkOiBzdHJpbmdbXVxyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIHNsdWdpZmllZE5hbWU6IHN0cmluZ1xyXG4gIGl0ZW1DYXRlZ29yaXNhdGlvbjogSXRlbUNhdGVnb3Jpc2F0aW9uXHJcbiAgaXRlbUludmVudG9yeTogSXRlbUludmVudG9yeVxyXG4gIGl0ZW1TdGF0dXM6IHN0cmluZ1xyXG4gIGl0ZW1UeXBlOiBzdHJpbmdcclxuICBpdGVtVmFyaWFudDogSXRlbVZhcmlhbnRbXVxyXG4gIGl0ZW1JbWFnZXM6IEl0ZW1JbWFnZVtdXHJcbiAgaXRlbVBhY2tzOiBJdGVtUGFjazJbXVxyXG4gIGFkZE9uVG9JdGVtOiBBZGRPblRvSXRlbVtdXHJcbiAgcHJvcGVydGllczogYW55O1xyXG4gIHVuaXQ6IFVuaXQ7XHJcbiAgcXVhbnRpdHk6IG51bWJlcjtcclxuICBwcmljZTogUHJpY2U7XHJcbiAgcHJ2aWV3SWR4OiBudW1iZXI7XHJcbiAgd2hpc2xpc3Q6IGJvb2xlYW47XHJcbiAgbWF0ZXJpYWxzOiBhbnk7XHJcbiAgbWFraW5nQ2hhcmdlUGVyY2VudGFnZTogbnVtYmVyO1xyXG4gIGpld2VsbGVyeVByaWNlOiBudW1iZXJcclxuICBiYXNlV2VpZ2h0OiBudW1iZXJcclxuICB0b3RhbFJldmlld0NvdW50OiBudW1iZXI7XHJcbiAgYXZlcmFnZVJhdGluZzogbnVtYmVyO1xyXG4gIHByb2R1Y3RJZD86IHN0cmluZztcclxuXHJcbiAgLy8gY3JlYXRlZERldGFpbHM6IENyZWF0ZWREZXRhaWxzMlxyXG4gIC8vIGF2YWlsYWJsZU9ubGluZTogYm9vbGVhblxyXG4gIGNhdGVnb3J5SWQ6IHN0cmluZ1xyXG4gIC8vIGZ1bGZpbGxtZW50SWQ6IHN0cmluZ1xyXG4gIC8vIGxvY2F0aW9uSWQ6IHN0cmluZ1xyXG4gIGRlc2NyaXB0b3I6IERlc2NyaXB0b3JcclxuICByYXRpbmc6IG51bWJlcjtcclxuICByZXZpZXdDb3VudDogbnVtYmVyO1xyXG4gIC8vIHJldHVybldpbmRvdzogbnVtYmVyXHJcbiAgLy8gdGltZVRvU2hpcDogbnVtYmVyXHJcbiAgLy8gcmF0ZWFibGU6IGJvb2xlYW5cclxuICAvLyBtYXRjaGVkOiBib29sZWFuXHJcbiAgLy8gcmVsYXRlZDogYm9vbGVhblxyXG4gIHJlY29tbWVuZGVkOiBib29sZWFuXHJcbiAgcmV0dXJuYWJsZTogYm9vbGVhblxyXG4gIC8vIGFjdGl2ZTogYm9vbGVhblxyXG4gIC8vIGNhbmNlbGxhYmxlOiBib29sZWFuXHJcbiAgLy8gc2VsbGVyUmV0dXJuUGlja1VwOiBib29sZWFuXHJcbiAgYXZhaWxhYmxlT25Db2Q6IGJvb2xlYW5cclxuICBicmllZjogc3RyaW5nXHJcbiAgaXRlbUNvZGU6IHN0cmluZ1xyXG4gIHRhZ3M6IHN0cmluZ1tdXHJcbiAgamV3ZWxyeVByaWNlQnJlYWt1cDogYW55XHJcbiAgY29uZmlnczogYW55O1xyXG4gIC8vIGNyZWF0ZWRUaW1lU3RhbXA6IHN0cmluZ1xyXG4gIC8vIHVwZGF0ZWRUaW1lU3RhbXA6IHN0cmluZ1xyXG5cclxuICBjb25zdHJ1Y3Rvcihqc29uPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSkge1xyXG4gICAgdGhpcy5pdGVtSWQgPSBqc29uPy5bXCJpdGVtSWRcIl07XHJcbiAgICB0aGlzLnN0b3JlSWQgPSBqc29uPy5bXCJzdG9yZUlkXCJdO1xyXG4gICAgdGhpcy52YXJpZW50SWQgPSBqc29uPy5bXCJpdGVtSWRcIl07XHJcbiAgICB0aGlzLmJ1c2luZXNzSWQgPSBqc29uPy5bXCJidXNpbmVzc0lkXCJdO1xyXG4gICAgdGhpcy5uYW1lID0ganNvbj8uW1wibmFtZVwiXTtcclxuICAgIHRoaXMuc2x1Z2lmaWVkTmFtZSA9IGpzb24/LltcInNsdWdpZmllZE5hbWVcIl07XHJcbiAgICB0aGlzLml0ZW1DYXRlZ29yaXNhdGlvbiA9IGpzb24/LltcIml0ZW1DYXRlZ29yaXNhdGlvblwiXSBhcyBJdGVtQ2F0ZWdvcmlzYXRpb247XHJcbiAgICB0aGlzLml0ZW1JbnZlbnRvcnkgPSBqc29uPy5bXCJpdGVtSW52ZW50b3J5XCJdIGFzIEl0ZW1JbnZlbnRvcnk7XHJcbiAgICB0aGlzLml0ZW1TdGF0dXMgPSBqc29uPy5bXCJpdGVtU3RhdHVzXCJdO1xyXG4gICAgdGhpcy5pdGVtVHlwZSA9IGpzb24/LltcIml0ZW1UeXBlXCJdO1xyXG4gICAgdGhpcy5pdGVtVmFyaWFudCA9IGpzb24/LltcIml0ZW1WYXJpYW50XCJdO1xyXG4gICAgdGhpcy5pdGVtSW1hZ2VzID0ganNvbj8uW1wiaXRlbUltYWdlc1wiXTtcclxuICAgIHRoaXMuaXRlbVBhY2tzID0ganNvbj8uW1wiaXRlbVBhY2tzXCJdO1xyXG4gICAgdGhpcy5hZGRPblRvSXRlbSA9IGpzb24/LltcImFkZE9uVG9JdGVtXCJdO1xyXG4gICAgdGhpcy5zbHVnaWZpZWROYW1lID0ganNvbj8uW1wic2x1Z2lmaWVkTmFtZVwiXTtcclxuICAgIHRoaXMudW5pdCA9IGpzb24/LltcInVuaXRcIl07XHJcbiAgICB0aGlzLnByaWNlID0ganNvbj8uW1wicHJpY2VcIl07XHJcbiAgICB0aGlzLmNhdGVnb3J5SWQgPSBqc29uPy5bXCJjYXRlZ29yeUlkXCJdO1xyXG4gICAgdGhpcy5kZXNjcmlwdG9yID0ganNvbj8uW1wiZGVzY3JpcHRvclwiXTtcclxuICAgIHRoaXMucmF0aW5nID0ganNvbj8uW1wicmF0aW5nXCJdO1xyXG4gICAgdGhpcy5yZXZpZXdDb3VudCA9IGpzb24/LltcInJldmlld0NvdW50XCJdO1xyXG4gICAgdGhpcy5icmllZiA9IGpzb24/LltcImJyaWVmXCJdO1xyXG4gICAgdGhpcy5pdGVtQ29kZSA9IGpzb24/LltcIml0ZW1Db2RlXCJdO1xyXG4gICAgdGhpcy50YWdzID0ganNvbj8uW1widGFnc1wiXSA/PyBbXTtcclxuICAgIHRoaXMucmVjb21tZW5kZWQgPSBqc29uPy5bXCJyZWNvbW1lbmRlZFwiXTtcclxuICAgIHRoaXMucmV0dXJuYWJsZSA9IGpzb24/LltcInJldHVybmFibGVcIl07XHJcbiAgICB0aGlzLmF2YWlsYWJsZU9uQ29kID0ganNvbj8uW1wiYXZhaWxhYmxlT25Db2RcIl07XHJcbiAgICB0aGlzLnBydmlld0lkeCA9IDA7XHJcbiAgICB0aGlzLnF1YW50aXR5ID0ganNvbj8uW1wicXVhbnRpdHlcIl0gPz8gMDtcclxuICAgIHRoaXMud2hpc2xpc3QgPSBmYWxzZTtcclxuICAgIHRoaXMuaXRlbVZhcmlhbnQgPSBqc29uPy5bXCJpdGVtVmFyaWFudFwiXSA/PyBbXTtcclxuICAgIHRoaXMubWFraW5nQ2hhcmdlUGVyY2VudGFnZSA9IGpzb24/LltcIm1ha2luZ0NoYXJnZVBlcmNlbnRhZ2VcIl0gPz8gMFxyXG4gICAgdGhpcy5qZXdlbGxlcnlQcmljZSA9IGpzb24/LltcImpld2VsbGVyeVByaWNlXCJdID8/IDBcclxuICAgIHRoaXMubWF0ZXJpYWxzID0ganNvbj8uW1wibWF0ZXJpYWxzXCJdXHJcbiAgICB0aGlzLmJhc2VXZWlnaHQgPSBqc29uPy5bXCJiYXNlV2VpZ2h0XCJdID8/IDBcclxuICAgIHRoaXMuamV3ZWxyeVByaWNlQnJlYWt1cCA9IGpzb24/LltcImpld2VscnlQcmljZUJyZWFrdXBcIl0gPz8ge31cclxuICAgIHRoaXMuY29uZmlncyA9IGpzb24/LltcImNvbmZpZ3NcIl0gPz8ge31cclxuICAgIHRoaXMudG90YWxSZXZpZXdDb3VudCA9IGpzb24/LltcInRvdGFsUmV2aWV3Q291bnRcIl0gPz8gMDtcclxuICAgIHRoaXMuYXZlcmFnZVJhdGluZyA9IGpzb24/LltcImF2ZXJhZ2VSYXRpbmdcIl0gPz8gMDtcclxuICAgIGlmICh0aGlzLml0ZW1WYXJpYW50Py5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuaXRlbUltYWdlcyA9IHRoaXMuaXRlbVZhcmlhbnQ/LlswXT8udmFyaWFudEltYWdlcztcclxuICAgICAgdGhpcy5wcmljZSA9IHRoaXMuaXRlbVZhcmlhbnQ/LlswXT8uaXRlbVZhcmlhbnRQcmljZTtcclxuICAgICAgdGhpcy52YXJpZW50SWQgPSB0aGlzLml0ZW1WYXJpYW50Py5bMF0/LnZhcmlhbnRJZDtcclxuICAgICAgdGhpcy5pdGVtSW52ZW50b3J5ID0gdGhpcy5pdGVtVmFyaWFudD8uWzBdPy5pdGVtSW52ZW50b3J5O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtQ2F0ZWdvcmlzYXRpb24ge1xyXG4gIGl0ZW1DYXRlZ29yaWVzOiBJdGVtQ2F0ZWdvcnlbXVxyXG4gIHByb2R1Y3RUYWdzOiBQcm9kdWN0VGFnW11cclxuICBpdGVtQ29sbGVjdGlvbjogSXRlbUNvbGxlY3Rpb25bXVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1DYXRlZ29yeSB7XHJcbiAgcmVmSWQ6IHN0cmluZ1xyXG4gIHJlZk5hbWU6IHN0cmluZ1xyXG4gIGltZ1VybDogc3RyaW5nXHJcbiAgbWF4UXVhbnRpdHk6IG51bWJlclxyXG4gIHByaWNlOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0VGFnIHtcclxuICB0YWdJZDogc3RyaW5nXHJcbiAgYnVzaW5lc3NJZDogc3RyaW5nXHJcbiAgc3RvcmVJZDogc3RyaW5nW11cclxuICBjb2xsZWN0aW9uSWQ6IHN0cmluZ1xyXG4gIHN1YkNhdGVnb3J5SWQ6IHN0cmluZ1xyXG4gIGNhdGVnb3J5SWQ6IHN0cmluZ1xyXG4gIGl0ZW1JZDogc3RyaW5nXHJcbiAgdGFnTmFtZTogc3RyaW5nXHJcbiAgYWN0aXZlOiBib29sZWFuXHJcbiAgb3RoZXJEZXRhaWxzOiBhbnk7XHJcbiAgY3JlYXRlZERldGFpbHM6IENyZWF0ZWREZXRhaWxzXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlZERldGFpbHMge1xyXG4gIGNyZWF0ZWRCeUlkOiBzdHJpbmdcclxuICBjcmVhdGVkQnlOYW1lOiBzdHJpbmdcclxuICBjcmVhdGVkVGltZVN0YW1wOiBzdHJpbmdcclxuICB1cGRhdGVkVGltZVN0YW1wOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtQ29sbGVjdGlvbiB7XHJcbiAgcmVmSWQ6IHN0cmluZ1xyXG4gIHJlZk5hbWU6IHN0cmluZ1xyXG4gIGltZ1VybDogc3RyaW5nXHJcbiAgbWF4UXVhbnRpdHk6IG51bWJlclxyXG4gIHByaWNlOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtSW52ZW50b3J5IHtcclxuICBvcGVuaW5nU3RvY2s6IG51bWJlclxyXG4gIHNrdTogc3RyaW5nXHJcbiAgYmFyY29kZTogc3RyaW5nXHJcbiAgcHJlc2VudFN0b2NrRGF0ZTogc3RyaW5nXHJcbiAgbG93U3RvY2tBbGVydDogYm9vbGVhblxyXG4gIGxvd1N0b2NrUXVhbnRpdHk6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1WYXJpYW50IHtcclxuICB2YXJpYW50SWQ6IHN0cmluZ1xyXG4gIGl0ZW1JZDogc3RyaW5nXHJcbiAgcXVhbnRpdHk6IG51bWJlclxyXG4gIHdpc2hsaXN0OiBib29sZWFuXHJcbiAgdmFyaWFudE5hbWU6IHN0cmluZ1xyXG4gIHZhcmlhbnRJbWFnZXM6IEl0ZW1JbWFnZVtdXHJcbiAgaXRlbVBhY2tzOiBJdGVtUGFja1tdXHJcbiAgcHJvcGVydGllczogYW55O1xyXG4gIGl0ZW1WYXJpYW50UHJpY2U6IEl0ZW1WYXJpYW50UHJpY2VcclxuICBpdGVtSW52ZW50b3J5OiBJdGVtSW52ZW50b3J5MlxyXG4gIGl0ZW1TdGF0dXM6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1QYWNrIHtcclxuICBpdGVtUGFja0lkOiBzdHJpbmdcclxuICBwYWNrTmFtZTogc3RyaW5nXHJcbiAgYWN0aXZlOiBib29sZWFuXHJcbiAgYWN0dWFsUHJpY2U6IG51bWJlclxyXG4gIG9mZmVyZWRQcmljZTogbnVtYmVyXHJcbiAgcGFja1F1YW50aXR5OiBudW1iZXJcclxuICBtYXhPcmRlclF1YW50aXR5OiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtVmFyaWFudFByaWNlIHtcclxuICBjdXJyZW5jeTogc3RyaW5nXHJcbiAgdmFsdWU6IG51bWJlclxyXG4gIGVzdGltYXRlZFZhbHVlOiBudW1iZXJcclxuICBjb21wdXRlZFZhbHVlOiBudW1iZXJcclxuICBsaXN0ZWRWYWx1ZTogbnVtYmVyXHJcbiAgb2ZmZXJlZFZhbHVlOiBudW1iZXJcclxuICBtaW5pbXVtVmFsdWU6IG51bWJlclxyXG4gIG1heGltdW1WYWx1ZTogbnVtYmVyXHJcbiAgcHVyY2hhc2VQcmljZTogbnVtYmVyXHJcbiAgd2hvbGVTYWxlUHJpY2U6IG51bWJlclxyXG4gIG1heFdob2xlU2FsZUxpbWl0OiBudW1iZXJcclxuICBtYXJnaW46IG51bWJlclxyXG4gIHByb2ZpdDogbnVtYmVyXHJcbiAgZGlzY291bnRlZFByaWNlOiBudW1iZXJcclxuICB0YXhSZWY6IFRheFJlZlxyXG4gIHRheEFtb3VudDogbnVtYmVyXHJcbiAgc2VsbGluZ1ByaWNlOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUYXhSZWYge1xyXG4gIHRheElkOiBzdHJpbmdcclxuICB0YXhQZXJjZW50OiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtSW52ZW50b3J5MiB7XHJcbiAgb3BlbmluZ1N0b2NrOiBudW1iZXJcclxuICBza3U6IHN0cmluZ1xyXG4gIGJhcmNvZGU6IHN0cmluZ1xyXG4gIHByZXNlbnRTdG9ja0RhdGU6IHN0cmluZ1xyXG4gIGxvd1N0b2NrQWxlcnQ6IGJvb2xlYW5cclxuICBsb3dTdG9ja1F1YW50aXR5OiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtSW1hZ2Uge1xyXG4gIGltZ1VybDogc3RyaW5nO1xyXG4gIGJsdXJoYXNoOiBzdHJpbmc7XHJcbiAgaW1nRGVzYzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1QYWNrMiB7XHJcbiAgaXRlbVBhY2tJZDogc3RyaW5nXHJcbiAgcGFja05hbWU6IHN0cmluZ1xyXG4gIGFjdGl2ZTogYm9vbGVhblxyXG4gIGFjdHVhbFByaWNlOiBudW1iZXJcclxuICBvZmZlcmVkUHJpY2U6IG51bWJlclxyXG4gIHBhY2tRdWFudGl0eTogbnVtYmVyXHJcbiAgbWF4T3JkZXJRdWFudGl0eTogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWRkT25Ub0l0ZW0ge1xyXG4gIHJlZklkOiBzdHJpbmdcclxuICByZWZOYW1lOiBzdHJpbmdcclxuICBpbWdVcmw6IHN0cmluZ1xyXG4gIG1heFF1YW50aXR5OiBudW1iZXJcclxuICBwcmljZTogbnVtYmVyXHJcbn1cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVuaXQge1xyXG4gIGlkOiBzdHJpbmdcclxuICBrZXk6IHN0cmluZ1xyXG4gIHZhbHVlOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQcmljZSB7XHJcbiAgY3VycmVuY3k6IHN0cmluZ1xyXG4gIHZhbHVlOiBudW1iZXJcclxuICBlc3RpbWF0ZWRWYWx1ZTogbnVtYmVyXHJcbiAgY29tcHV0ZWRWYWx1ZTogbnVtYmVyXHJcbiAgbGlzdGVkVmFsdWU6IG51bWJlclxyXG4gIG9mZmVyZWRWYWx1ZTogbnVtYmVyXHJcbiAgbWluaW11bVZhbHVlOiBudW1iZXJcclxuICBtYXhpbXVtVmFsdWU6IG51bWJlclxyXG4gIHB1cmNoYXNlUHJpY2U6IG51bWJlclxyXG4gIHdob2xlU2FsZVByaWNlOiBudW1iZXJcclxuICBtYXhXaG9sZVNhbGVMaW1pdDogbnVtYmVyXHJcbiAgbWFyZ2luOiBudW1iZXJcclxuICBwcm9maXQ6IG51bWJlclxyXG4gIGRpc2NvdW50ZWRQcmljZTogbnVtYmVyXHJcbiAgdGF4UmVmOiBUYXhSZWYyXHJcbiAgdGF4QW1vdW50OiBudW1iZXJcclxuICBzZWxsaW5nUHJpY2U6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRheFJlZjIge1xyXG4gIHRheElkOiBzdHJpbmdcclxuICB0YXhQZXJjZW50OiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVkRGV0YWlsczIge1xyXG4gIGNyZWF0ZWRCeUlkOiBzdHJpbmdcclxuICBjcmVhdGVkQnlOYW1lOiBzdHJpbmdcclxuICBjcmVhdGVkVGltZVN0YW1wOiBzdHJpbmdcclxuICB1cGRhdGVkVGltZVN0YW1wOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEZXNjcmlwdG9yIHtcclxuICBuYW1lOiBzdHJpbmdcclxuICBjb2RlOiBzdHJpbmdcclxuICBzeW1ib2w6IHN0cmluZ1xyXG4gIHNob3J0RGVzYzogc3RyaW5nXHJcbiAgbG9uZ0Rlc2M6IHN0cmluZ1xyXG4gIGl0ZW1JbWFnZXM6IEl0ZW1JbWFnZTJbXVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1JbWFnZTIge1xyXG4gIGltZ1VybDogc3RyaW5nXHJcbiAgaW1nRGVzYzogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBzeW5jSXRlbVRvU2VydmVyREJSZXF1ZXN0IHtcclxuICBidXNpbmVzc0lkOiBzdHJpbmdcclxuICB1c2VySWQ6IHN0cmluZztcclxuICBjYXJ0VHlwZTogJ0NBUlQnIHwgJ1dJU0hMSVNIJyB8ICdUUklBTF9DQVJUJ1xyXG4gIGNhcnRJdGVtczogYW55W11cclxuICBwbGF0Zm9ybTogc3RyaW5nXHJcblxyXG4gIGNvbnN0cnVjdG9yKHVzZXJJZDogc3RyaW5nLCBjYXJ0VHlwZTogJ0NBUlQnIHwgJ1dJU0hMSVNIJyB8ICdUUklBTF9DQVJUJywgY2FydEl0ZW1zOiBhbnlbXSkge1xyXG4gICAgdGhpcy5idXNpbmVzc0lkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2JJZCcpID8/ICcnXHJcbiAgICB0aGlzLnVzZXJJZCA9IHVzZXJJZFxyXG4gICAgdGhpcy5jYXJ0VHlwZSA9IGNhcnRUeXBlXHJcbiAgICB0aGlzLmNhcnRJdGVtcyA9IGNhcnRJdGVtc1xyXG4gICAgdGhpcy5wbGF0Zm9ybSA9ICdXRUInXHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgY2hlY2tJdGVtQWxyZWFkeUFkZGVkIHtcclxuICBpdGVtSWQ6IHN0cmluZ1xyXG4gIHZhcmlhbnRJZDogc3RyaW5nXHJcbiAgdXNlcklkOiBzdHJpbmdcclxuICBidXNpbmVzc0lkOiBzdHJpbmdcclxuICBjYXJ0VHlwZTogJ0NBUlQnIHwgJ1dJU0hMSVNIJyB8ICdUUklBTF9DQVJUJ1xyXG5cclxuICBjb25zdHJ1Y3RvcihpdGVtSWQ6IHN0cmluZywgdmFyaWFudElkOiBzdHJpbmcsIHVzZXJJZDogc3RyaW5nLCBjYXJ0VHlwZTogJ0NBUlQnIHwgJ1dJU0hMSVNIJyB8ICdUUklBTF9DQVJUJykge1xyXG4gICAgdGhpcy5pdGVtSWQgPSBpdGVtSWRcclxuICAgIHRoaXMudmFyaWFudElkID0gdmFyaWFudElkXHJcbiAgICB0aGlzLnVzZXJJZCA9IHVzZXJJZFxyXG4gICAgdGhpcy5jYXJ0VHlwZSA9IGNhcnRUeXBlXHJcbiAgICB0aGlzLmJ1c2luZXNzSWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYklkJykgPz8gJydcclxuICB9XHJcbn1cclxuXHJcblxyXG4iXX0=