simpo-component-library 3.6.134 → 3.6.137
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.
- package/README.md +24 -24
- package/esm2022/lib/components/delete-hover-element/delete-hover-element.component.mjs +5 -5
- package/esm2022/lib/components/document/document.component.mjs +5 -5
- package/esm2022/lib/components/hover-elements/hover-elements.component.mjs +4 -4
- package/esm2022/lib/components/image-loading/image-loading.component.mjs +5 -5
- package/esm2022/lib/components/index.mjs +5 -5
- package/esm2022/lib/components/input-fields/input-fields.component.mjs +4 -4
- package/esm2022/lib/components/payment-details/payment-details.component.mjs +5 -5
- package/esm2022/lib/components/trasport-availability/trasport-availability.component.mjs +4 -4
- package/esm2022/lib/constants/business.constant.mjs +1 -1
- package/esm2022/lib/directive/alignment.directive.mjs +4 -4
- package/esm2022/lib/directive/animation-directive.mjs +4 -4
- package/esm2022/lib/directive/background-directive.mjs +4 -4
- package/esm2022/lib/directive/banner-content-fit-directive.mjs +4 -4
- package/esm2022/lib/directive/blur-content.directive.mjs +4 -4
- package/esm2022/lib/directive/border-directive.mjs +4 -4
- package/esm2022/lib/directive/borderlessImage.directive.mjs +4 -4
- package/esm2022/lib/directive/button-directive.directive.mjs +4 -4
- package/esm2022/lib/directive/button-editor.directive.mjs +5 -4
- package/esm2022/lib/directive/color.directive.mjs +4 -4
- package/esm2022/lib/directive/column-directive.directive.mjs +4 -4
- package/esm2022/lib/directive/container-alignment.directive.mjs +4 -4
- package/esm2022/lib/directive/container-fir.directive.mjs +4 -4
- package/esm2022/lib/directive/content-alignment-directive.mjs +4 -4
- package/esm2022/lib/directive/content-fit-directive.mjs +4 -4
- package/esm2022/lib/directive/content-title-spacing.directive.mjs +4 -4
- package/esm2022/lib/directive/contenteditable.directive.mjs +4 -4
- package/esm2022/lib/directive/corner-directive.mjs +4 -4
- package/esm2022/lib/directive/footer-layout-directive.mjs +4 -4
- package/esm2022/lib/directive/height.directive.mjs +4 -4
- package/esm2022/lib/directive/hover-animation.directive.mjs +4 -4
- package/esm2022/lib/directive/hover-element-directive.mjs +4 -4
- package/esm2022/lib/directive/hoverborder.directive.mjs +4 -4
- package/esm2022/lib/directive/image-container.directive.mjs +4 -4
- package/esm2022/lib/directive/image-directive.directive.mjs +4 -4
- package/esm2022/lib/directive/image-editor.directive.mjs +4 -4
- package/esm2022/lib/directive/image-position.directive.mjs +4 -4
- package/esm2022/lib/directive/overlay-directive.mjs +4 -4
- package/esm2022/lib/directive/position-layout-directive.directive.mjs +4 -4
- package/esm2022/lib/directive/removeCarousel-directive.mjs +4 -4
- package/esm2022/lib/directive/set-dynamic-background.directive.mjs +4 -4
- package/esm2022/lib/directive/spacing-around.directive.mjs +4 -4
- package/esm2022/lib/directive/spacing-horizontal.directive.mjs +4 -4
- package/esm2022/lib/directive/spacing.directive.mjs +4 -4
- package/esm2022/lib/directive/sticky-directive.mjs +4 -4
- package/esm2022/lib/directive/text-background-directive.directive.mjs +4 -4
- package/esm2022/lib/directive/text-size.directive.mjs +4 -4
- package/esm2022/lib/directive/translate-onhover.directive.mjs +4 -4
- package/esm2022/lib/directive/wrap-containers.directive.mjs +4 -4
- package/esm2022/lib/ecommerce/sections/address/address.component.mjs +6 -6
- package/esm2022/lib/ecommerce/sections/authenticate-user/authenticate-user.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.component.mjs +6 -6
- package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/cart/cart.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/cart/cart.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/category-product/category-product.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/category-product/category-product.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/checkout/checkout.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/checkout/checkout.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/customer-review/customer-review.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/customer-review/customer-review.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/featured-category/featured-category.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/featured-category/featured-category.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/featured-category/featured-collection.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/featured-products/featured-products.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/featured-products/featured-products.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/item-varient/item-varient.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/new-collection/new-collection.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/new-collection/new-collection.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/order-details/order-details.component.mjs +6 -5
- package/esm2022/lib/ecommerce/sections/pagnination/pagnination.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/product-category-list/product-category-list.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/product-category-list/product-category-list.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +7 -5
- package/esm2022/lib/ecommerce/sections/product-desc/product-desc.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/product-list/product-list.component.mjs +9 -7
- package/esm2022/lib/ecommerce/sections/product-list/product-list.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/small-product-listing/small-product-listing.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/store-list/store-list.component.mjs +8 -6
- package/esm2022/lib/ecommerce/sections/store-list/store-list.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/store-page/store-page.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/store-page/store-page.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/user-basic-info/user-basic-info.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/user-profile/user-profile.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/user-profile/user-profile.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.component.mjs +5 -5
- package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.model.mjs +1 -1
- package/esm2022/lib/ecommerce/sections/whislist/whislist.component.mjs +5 -5
- package/esm2022/lib/ecommerce/styles/BaseCollection.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/Collection.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/OrderedItems.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/PincodeLocation.model.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/PincodeLocationInter.model.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/cart.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/category.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/order.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/product.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/review.modal.mjs +1 -1
- package/esm2022/lib/ecommerce/styles/user.modal.mjs +1 -1
- package/esm2022/lib/elements/add-section/add-section.component.mjs +5 -5
- package/esm2022/lib/elements/address-list/address-list.component.mjs +5 -5
- package/esm2022/lib/elements/below-image-card/below-image-card.component.mjs +5 -5
- package/esm2022/lib/elements/button/button.component.mjs +5 -5
- package/esm2022/lib/elements/button/button.model.mjs +1 -1
- package/esm2022/lib/elements/card-skeleton-loader/card-skeleton-loader.component.mjs +5 -5
- package/esm2022/lib/elements/covering-image-card/covering-image-card.component.mjs +5 -5
- package/esm2022/lib/elements/editor-service.service.mjs +4 -4
- package/esm2022/lib/elements/heading-element/heading-element.component.mjs +5 -5
- package/esm2022/lib/elements/image-editor/image-editor.component.mjs +5 -5
- package/esm2022/lib/elements/index.mjs +5 -5
- package/esm2022/lib/elements/link-editor/link-editor.component.mjs +5 -5
- package/esm2022/lib/elements/media-selector/media-selector.component.mjs +5 -5
- package/esm2022/lib/elements/navbar-button-element/navbar-button-element.component.mjs +4 -4
- package/esm2022/lib/elements/portfolio/portfolio.component.mjs +5 -5
- package/esm2022/lib/elements/pricing-s1/pricing-s1.component.mjs +5 -5
- package/esm2022/lib/elements/property/property.component.mjs +5 -5
- package/esm2022/lib/elements/simpo-button/simpo-button.component.mjs +5 -5
- package/esm2022/lib/elements/socia-icons/socia-icons.component.mjs +4 -4
- package/esm2022/lib/elements/svg-divider/svg-divider.component.mjs +5 -5
- package/esm2022/lib/elements/text/text.component.mjs +5 -5
- package/esm2022/lib/elements/text-editor/text-editor.component.mjs +5 -5
- package/esm2022/lib/elements/top-of-image-card/top-of-image-card.component.mjs +5 -5
- package/esm2022/lib/pipes/amount.pipe.mjs +4 -4
- package/esm2022/lib/pipes/gender.pipe.mjs +4 -4
- package/esm2022/lib/sections/BaseSection.mjs +1 -1
- package/esm2022/lib/sections/add-new-section/add-new-section.component.mjs +5 -5
- package/esm2022/lib/sections/appointment-form/appointment-form.component.mjs +5 -5
- package/esm2022/lib/sections/appointment-form/appointment-form.model.mjs +1 -1
- package/esm2022/lib/sections/banner-carousel/banner-carousel.component.mjs +5 -5
- package/esm2022/lib/sections/banner-carousel/banner-carousel.model.mjs +1 -1
- package/esm2022/lib/sections/banner-grid-section/banner-grid-section.component.mjs +5 -5
- package/esm2022/lib/sections/banner-section/banner-section.component.mjs +4 -4
- package/esm2022/lib/sections/blog-list/blog-list.component.mjs +5 -5
- package/esm2022/lib/sections/blog-list/blog-list.model.mjs +1 -1
- package/esm2022/lib/sections/carousel-banner/carousel-banner.component.mjs +4 -4
- package/esm2022/lib/sections/choose-us-section/choose-us-section.component.mjs +5 -5
- package/esm2022/lib/sections/choose-us-section/choose-us-section.model.mjs +1 -1
- package/esm2022/lib/sections/contact-us/contact-us.component.mjs +4 -4
- package/esm2022/lib/sections/faq-section/faq-section.component.mjs +5 -5
- package/esm2022/lib/sections/faq-section/faq-section.modal.mjs +1 -1
- package/esm2022/lib/sections/features-section/features-section.component.mjs +5 -5
- package/esm2022/lib/sections/features-section/features-section.model.mjs +1 -1
- package/esm2022/lib/sections/footer/footer.component.mjs +5 -5
- package/esm2022/lib/sections/footer/footer.modal.mjs +1 -1
- package/esm2022/lib/sections/footer-section/footer-section.component.mjs +4 -4
- package/esm2022/lib/sections/header-section/header-section.component.mjs +5 -5
- package/esm2022/lib/sections/header-section/header-section.model.mjs +1 -1
- package/esm2022/lib/sections/header-text/header-text.component.mjs +5 -5
- package/esm2022/lib/sections/header-text/header-text.model.mjs +1 -1
- package/esm2022/lib/sections/image-carousel-section/image-carousel-section.component.mjs +5 -5
- package/esm2022/lib/sections/image-carousel-section/image-carousel.model.mjs +1 -1
- package/esm2022/lib/sections/image-grid-section/image-grid-section.component.mjs +5 -5
- package/esm2022/lib/sections/image-grid-section/image-grid-section.model.mjs +1 -1
- package/esm2022/lib/sections/image-section/image-section.component.mjs +5 -5
- package/esm2022/lib/sections/image-section/image-section.model.mjs +1 -1
- package/esm2022/lib/sections/location-section/location-section.component.mjs +5 -5
- package/esm2022/lib/sections/location-section/location-section.modal.mjs +1 -1
- package/esm2022/lib/sections/logo-gallery/logo-gallery.component.mjs +4 -4
- package/esm2022/lib/sections/logo-showcase/logo-showcase.component.mjs +5 -5
- package/esm2022/lib/sections/logo-showcase/logo-showcase.modal.mjs +1 -1
- package/esm2022/lib/sections/moving-text/moving-text.component.mjs +5 -5
- package/esm2022/lib/sections/moving-text/moving-text.modal.mjs +1 -1
- package/esm2022/lib/sections/navbar-section/navbar-section.component.mjs +4 -4
- package/esm2022/lib/sections/new-services/new-services.component.mjs +5 -5
- package/esm2022/lib/sections/new-services/new-services.model.mjs +1 -1
- package/esm2022/lib/sections/new-testimonials/new-testimonials.component.mjs +5 -5
- package/esm2022/lib/sections/new-testimonials/new-testimonials.model.mjs +1 -1
- package/esm2022/lib/sections/news-letter-component/news-letter-component.component.mjs +5 -5
- package/esm2022/lib/sections/news-letter-component/news-letter.modal.mjs +1 -1
- package/esm2022/lib/sections/pricing-section/pricing-section.component.mjs +5 -5
- package/esm2022/lib/sections/pricing-section/pricing-section.modal.mjs +1 -1
- package/esm2022/lib/sections/process-modern/process-modern.component.mjs +5 -5
- package/esm2022/lib/sections/process-modern/process-modern.model.mjs +1 -1
- package/esm2022/lib/sections/process-section/process-section.component.mjs +5 -5
- package/esm2022/lib/sections/process-section/process-section.modal.mjs +1 -1
- package/esm2022/lib/sections/property-component/property-component.component.mjs +5 -5
- package/esm2022/lib/sections/property-component/property-component.modal.mjs +1 -1
- package/esm2022/lib/sections/property-list/property-list.component.mjs +5 -5
- package/esm2022/lib/sections/property-list/property-list.modal.mjs +1 -1
- package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.component.mjs +5 -5
- package/esm2022/lib/sections/recent-blog-post-section/recent-blog-post-section.model.mjs +1 -1
- package/esm2022/lib/sections/registration-form/registration-form.component.mjs +6 -6
- package/esm2022/lib/sections/registration-form/registrationForm.model.mjs +1 -1
- package/esm2022/lib/sections/service-section/service-section.component.mjs +5 -5
- package/esm2022/lib/sections/service-section/service-section.model.mjs +1 -1
- package/esm2022/lib/sections/skeleton-loader-section/skeleton-loader-section.component.mjs +5 -5
- package/esm2022/lib/sections/team-member-section/team-member-section.component.mjs +5 -5
- package/esm2022/lib/sections/team-member-section/team-member-section.model.mjs +1 -1
- package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.component.mjs +5 -5
- package/esm2022/lib/sections/testimonial-fullwidth/testimonial-fullwidth.model.mjs +1 -1
- package/esm2022/lib/sections/testimonial-section/testimonial-section.component.mjs +5 -5
- package/esm2022/lib/sections/testimonial-section/testimonial-section.model.mjs +1 -1
- package/esm2022/lib/sections/testimonial-video/testimonial-video.component.mjs +5 -5
- package/esm2022/lib/sections/testimonial-video/testimonial-video.model.mjs +1 -1
- package/esm2022/lib/sections/text-image-section/text-image-section.component.mjs +4 -4
- package/esm2022/lib/sections/text-section/text-section.component.mjs +4 -4
- package/esm2022/lib/sections/text-section/text-section.model.mjs +1 -1
- package/esm2022/lib/sections/usp-video-section/usp-video-section.component.mjs +5 -5
- package/esm2022/lib/sections/usp-video-section/usp-video-section.model.mjs +1 -1
- package/esm2022/lib/sections/video-section/video-section.component.mjs +5 -5
- package/esm2022/lib/sections/video-section/video-section.model.mjs +1 -1
- package/esm2022/lib/sections/view-blog/view-blog.component.mjs +5 -5
- package/esm2022/lib/services/cart.service.mjs +4 -4
- package/esm2022/lib/services/endUser.service.mjs +4 -4
- package/esm2022/lib/services/events.service.mjs +5 -4
- package/esm2022/lib/services/image-upload-service.service.mjs +4 -4
- package/esm2022/lib/services/rest.service.mjs +4 -4
- package/esm2022/lib/services/sanitizeHtml.mjs +4 -4
- package/esm2022/lib/services/storage.service.mjs +14 -10
- package/esm2022/lib/styles/index.mjs +1 -1
- package/esm2022/lib/styles/style.model.mjs +1 -1
- package/esm2022/lib/styles/types.mjs +1 -1
- package/esm2022/lib/tokens/api-token.mjs +1 -1
- package/esm2022/public-api.mjs +1 -1
- package/fesm2022/simpo-component-library.mjs +540 -528
- package/fesm2022/simpo-component-library.mjs.map +1 -1
- package/lib/ecommerce/sections/product-desc/product-desc.component.d.ts +1 -1
- package/lib/elements/link-editor/link-editor.component.d.ts +1 -1
- package/lib/sections/banner-carousel/banner-carousel.component.d.ts +2 -2
- package/lib/sections/carousel-banner/carousel-banner.component.d.ts +1 -1
- package/lib/sections/image-section/image-section.component.d.ts +2 -2
- package/lib/sections/logo-showcase/logo-showcase.component.d.ts +1 -1
- package/lib/sections/new-testimonials/new-testimonials.component.d.ts +1 -1
- package/lib/services/events.service.d.ts +1 -0
- package/lib/services/storage.service.d.ts +1 -0
- package/package.json +1 -1
- package/simpo-component-library-3.6.137.tgz +0 -0
- package/src/lib/styles/global-styles.css +242 -242
- package/simpo-component-library-3.6.134.tgz +0 -0
package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.component.mjs
CHANGED
@@ -15,7 +15,7 @@ import { HoverDirective } from '../../../directive/hover-element-directive';
|
|
15
15
|
import { OverlayDirective } from '../../../directive/overlay-directive';
|
16
16
|
import { SpacingAroundDirective } from '../../../directive/spacing-around.directive';
|
17
17
|
import BaseSection from '../../../sections/BaseSection';
|
18
|
-
import { ButtonEditorDirective } from '
|
18
|
+
import { ButtonEditorDirective } from '@simpo-ui/directive/button-editor.directive';
|
19
19
|
import * as i0 from "@angular/core";
|
20
20
|
import * as i1 from "../../../services/rest.service";
|
21
21
|
import * as i2 from "@angular/router";
|
@@ -388,10 +388,10 @@ export class AuthenticationRequiredComponent extends BaseSection {
|
|
388
388
|
});
|
389
389
|
}
|
390
390
|
}
|
391
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
392
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AuthenticationRequiredComponent, isStandalone: true, selector: "simpo-authentication-required", inputs: { data: "data", index: "index", edit: "edit", delete: "delete" }, providers: [MessageService], usesInheritance: true, ngImport: i0, template: "<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"\n [showTransformOptions]=\"isMobile ? 'translateY(-100%)' : ''\"></p-toast>\n\n<section [id]=\"data?.id\" class=\"total-container\" simpoHover (hovering)=\"showEditTabs($event)\">\n <div [spacingAround]=\"stylesLayout\">\n <div [simpoBackground]=\"styles?.background\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\">\n <div class=\"area w-100\">\n <ul class=\"circles\">\n <li></li>\n <li></li>\n <li></li>\n <li></li>\n <li></li>\n <li></li>\n <li></li>\n <li></li>\n <li></li>\n <li></li>\n </ul>\n </div>\n <div [simpoOverlay]=\"styles?.background\" [id]=\"data?.id\" class=\"main-panel d-flex gap-2\">\n <div class=\"panel w-100\" [simpoCorner]=\"styles?.corners\" [id]=\"data?.id\" [simpoAnimation]=\"styles?.animation\">\n <ng-container *ngTemplateOutlet=\"currentPage === 'LOGIN' ? loginTemplate : null\"></ng-container>\n <ng-container *ngTemplateOutlet=\"currentPage === 'SIGNUP' ? signInTemplate : null\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\n </div>\n\n</section>\n\n<ng-template #loginTemplate>\n <div>\n <div class=\"input-box\">\n <label for=\"\">Email</label>\n <input type=\"email\" [(ngModel)]=\"email\" required=\"\" placeholder=\"janedoe@gmail.com\"\n (ngModelChange)=\"onEmailChange()\" [style.borderColor]=\"!emailCheck ? '' : 'red'\">\n <span class=\"f-12\" *ngIf=\"emailCheck\" [style.color]=\"'red'\">Please Enter valid Mobile number*</span>\n </div>\n <div class=\"input-box\">\n <div class=\"w-100\">\n <label for=\"\">Password</label>\n <input [type]=\"showPassword ? 'text' : 'password'\" required=\"\" [(ngModel)]=\"password\"\n (ngModelChange)=\"onPasswordChange()\" class=\"w-90\" placeholder=\"Janedoe@1234\"\n [style.borderColor]=\"!passwordCheck ? '' : 'red'\">\n <span class=\"eye\" (click)=\"showPassword = !showPassword\" style=\"cursor: pointer;\">\n <i class=\"fa\" [ngClass]=\"showPassword ? 'fa-eye-slash' : 'fa-eye'\"></i>\n </span>\n </div>\n <span *ngIf=\"passwordCheck\" class=\"f-12\" [style.color]=\"'red'\">Your password must contain 1 Uppercase , 1\n Lowercase , 1 Special\n Character , 1 Digit and Minimum 8 Characters*</span>\n </div>\n <!-- <div class=\"forgot-pwd\" [style.color]=\"accentColor\">Forgot Password?</div> -->\n <!-- <button class=\"button\" *ngIf=\"!buttonLoading\" simpoButtonDirective [id]=\"buttonId\" [buttonStyle]=\"button?.styles\"\n [backgroundInfo]=\"styles?.background\" [simpoCorner]=\"styles?.corners\" [color]=\"styles?.background?.accentColor\"\n (click)=\"login()\">Login</button> -->\n <button class=\"send-btn p-2\" *ngIf=\"!buttonLoading\" [buttonData]=\"button?.content\" [buttonStyle]=\"button?.styles\"\n simpoButtonDirective [id]=\"data?.id+(button?.id || '')\" [sectionId]=\"data?.id\" [color]=\"data?.styles?.background?.accentColor\"\n [backgroundInfo]=\"data?.styles?.background\" [appButtonEditor]=\"edit ?? false\" [buttonId]=\"button?.id ?? ''\" (click)=\"login()\">{{button?.content?.label}}</button>\n <!-- <button class=\"button\" *ngIf=\"buttonLoading\" simpoButtonDirective [id]=\"buttonId\" [buttonStyle]=\"button?.styles\"\n [backgroundInfo]=\"styles?.background\" [simpoCorner]=\"styles?.corners\"\n [color]=\"styles?.background?.accentColor\">Loading...</button> -->\n <button class=\"send-btn p-2\" *ngIf=\"buttonLoading\" [buttonData]=\"button?.content\" [buttonStyle]=\"button?.styles\"\n simpoButtonDirective [id]=\"data?.id+(button?.id || '')\" [sectionId]=\"data?.id\" [color]=\"data?.styles?.background?.accentColor\"\n [backgroundInfo]=\"data?.styles?.background\" [appButtonEditor]=\"edit ?? false\" [buttonId]=\"button?.id ?? ''\" (click)=\"login()\">Loading...</button>\n\n\n <div class=\"sign-up\" *ngIf=\"signUpEnabled\">Don't have an account? <span [style.color]=\"accentColor\"\n (click)=\"currentPage = 'SIGNUP'\">Sign\n Up</span></div>\n\n <!-- <div class=\"text-center mt-20\">\n <div class=\"or-divider\">\n <span class=\"or-text\">or</span>\n </div>\n <div class=\"sign-up\">Login with <span [style.color]=\"accentColor\">OTP</span></div>\n </div> -->\n </div>\n</ng-template>\n\n<ng-template #signInTemplate>\n <div>\n <div class=\"input-box\">\n <label for=\"\">Name</label>\n <input type=\"text\" [(ngModel)]=\"userName\" placeholder=\"Jane Doe\">\n </div>\n <div class=\"input-box\">\n <label for=\"\">Email</label>\n <input type=\"email\" [(ngModel)]=\"email\" placeholder=\"janedoe@gmail.com\" (ngModelChange)=\"onEmailChange()\"\n [style.borderColor]=\"!emailCheck ? '' : 'red'\">\n <span class=\"f-12\" *ngIf=\"emailCheck\" [style.color]=\"'red'\">Please Enter valid email*</span>\n </div>\n <div class=\"input-box\">\n <label for=\"\">Phone Number</label>\n <input type=\"number\" [(ngModel)]=\"mobile\" (ngModelChange)=\"onMobileChange()\" placeholder=\"9876543219\"\n [style.borderColor]=\"!mobileCheck ? '' : 'red'\" class=\"no-arrows\">\n <span class=\"f-12\" *ngIf=\"mobileCheck\" [style.color]=\"'red'\">Please Enter valid Mobile number*</span>\n </div>\n <div class=\" input-box position-relative\">\n <label for=\"\">Password</label>\n <div class=\"w-100\">\n <input [type]=\"showPassword ? 'text' : 'password'\" required=\"\" [(ngModel)]=\"password\" class=\"w-90\"\n placeholder=\"Janedoe@1234\" [style.borderColor]=\"!passwordCheck ? '' : 'red'\"\n (ngModelChange)=\"onPasswordChange()\">\n <span class=\"eye\" (click)=\"showPassword = !showPassword\" style=\"cursor: pointer;\">\n <i class=\"fa\" [ngClass]=\"showPassword ? 'fa-eye-slash' : 'fa-eye'\"></i>\n </span>\n </div>\n <span *ngIf=\"passwordCheck\" class=\"f-12\" [style.color]=\"'red'\">Your password must contain 1 Uppercase , 1\n Lowercase , 1 Special\n Character , 1 Digit and Minimum 8 Characters*</span>\n <!-- <div class=\"strength-bar-container\">\n <div *ngFor=\"let strength of passwordStrength; let idx = index\" class=\"strength-bar\"\n [style.backgroundColor]=\"getStrengthColor(idx)\"></div>\n </div> -->\n </div>\n <button class=\"button\" *ngIf=\"!buttonLoading\" simpoButtonDirective [id]=\"buttonId\" [buttonStyle]=\"button?.styles\"\n [backgroundInfo]=\"styles?.background\" [simpoCorner]=\"styles?.corners\" [color]=\"styles?.background?.accentColor\"\n (click)=\"createAccount()\" [disabled]=\"!isEmailValid || !isPasswordValid || !userName\">Create Account</button>\n <button class=\"button\" simpoButtonDirective [id]=\"buttonId\" [buttonStyle]=\"button?.styles\"\n [backgroundInfo]=\"styles?.background\" [simpoCorner]=\"styles?.corners\" [color]=\"styles?.background?.accentColor\"\n *ngIf=\"buttonLoading\">Loading...</button>\n\n\n <div class=\"sign-up\">Already have an account? <span [style.color]=\"accentColor\"\n (click)=\"currentPage = 'LOGIN'\">Login</span></div>\n </div>\n</ng-template>", styles: [".total-container{position:relative;height:auto;perspective:1200px;overflow:hidden}label,.sign-up,.eye{color:#000}.eye{padding:6px;font-size:16px}.w-90{width:90%}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.main-panel{max-width:450px;margin:2rem auto;background:#ffffff26;border-radius:20px;box-shadow:0 25px 50px -12px #00000040;overflow:hidden;transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s ease;transform-style:preserve-3d;will-change:transform;perspective:1200px;backface-visibility:hidden}.main-panel:hover{transform:rotateY(3deg) rotateX(2deg) scale(1.02);box-shadow:0 35px 60px -10px #0000004d}.panel{background:#fffffff2;padding:3rem;position:relative;transform-style:preserve-3d;transition:all .4s ease;margin:unset!important}.panel:before{content:\"\";position:absolute;inset:0;background:linear-gradient(135deg,transparent,rgba(255,255,255,.15) 50%,transparent);opacity:0;transition:opacity .4s ease;pointer-events:none}.panel:hover:before{opacity:1}.input-box{display:flex;flex-direction:column;gap:8px;margin-bottom:1.5rem;position:relative;transform-style:preserve-3d}.input-box label{transform:translateZ(20px)}.input-box input{transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;transform-style:preserve-3d;border:2px solid rgba(0,0,0,.08);padding:.75rem 1rem;border-radius:12px;appearance:none;outline:none}.input-box input:focus{border-color:var(--accent-color, #667eea);box-shadow:0 8px 25px -5px #667eea4d;transform:translateY(-3px) translateZ(25px);background:#fff}.input-box input:hover{transform:translateY(-2px) translateZ(15px);box-shadow:0 5px 15px #00000014}.button{transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;transform-style:preserve-3d;overflow:hidden;border:none;padding:.5rem 2rem;font-weight:600}.button:before{content:\"\";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);transition:left .7s ease}.button:hover{transform:translateY(-3px) translateZ(35px);box-shadow:0 15px 30px -5px var(--accent-shadow, rgba(102, 126, 234, .5))}.button:hover:before{left:100%}.button:active{transform:translateY(-1px) translateZ(25px)}.circles{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}.circles li{position:absolute;display:block;list-style:none;width:20px;height:20px;background:#ffffff1a;box-shadow:0 8px 32px #1f268733;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:80px;border:1px solid rgba(255,255,255,.18);animation:animate 25s linear infinite;bottom:-150px}.circles li:nth-child(1){left:25%;width:80px;height:80px;animation-delay:0s}.circles li:nth-child(2){left:10%;width:20px;height:20px;animation-delay:2s;animation-duration:12s}.circles li:nth-child(3){left:70%;width:20px;height:20px;animation-delay:4s}.circles li:nth-child(4){left:40%;width:60px;height:60px;animation-delay:0s;animation-duration:18s}.circles li:nth-child(5){left:65%;width:20px;height:20px;animation-delay:0s}.circles li:nth-child(6){left:75%;width:110px;height:110px;animation-delay:3s}.circles li:nth-child(7){left:35%;width:150px;height:150px;animation-delay:7s}.circles li:nth-child(8){left:50%;width:25px;height:25px;animation-delay:15s;animation-duration:45s}.circles li:nth-child(9){left:20%;width:15px;height:15px;animation-delay:2s;animation-duration:35s}.circles li:nth-child(15){left:10%;width:20px;height:20px;animation-delay:2s;animation-duration:12s}@keyframes animate{0%{transform:translateY(0) rotate(0);opacity:1;border-radius:0}to{transform:translateY(-1000px) rotate(720deg);opacity:0;border-radius:50%}}.f-12{font-size:12px}.no-arrows::-webkit-outer-spin-button,.no-arrows::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i9.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i10.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i11.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "directive", type: AnimationDirective, selector: "[simpoAnimation]", inputs: ["simpoAnimation"] }, { kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: ButtonDirectiveDirective, selector: "[simpoButtonDirective]", inputs: ["buttonStyle", "color", "scrollValue", "backgroundInfo"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "directive", type: CornerDirective, selector: "[simpoCorner]", inputs: ["simpoCorner"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "directive", type: OverlayDirective, selector: "[simpoOverlay]", inputs: ["simpoOverlay"] }, { kind: "directive", type: SpacingAroundDirective, selector: "[spacingAround]", inputs: ["spacingAround", "backgroundInfo"] }, { kind: "directive", type: ButtonEditorDirective, selector: "button[appButtonEditor]", inputs: ["appButtonEditor", "buttonData", "buttonStyle", "backgroundInfo", "sectionId", "buttonId"] }] }); }
|
391
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: AuthenticationRequiredComponent, deps: [{ token: i1.RestService }, { token: i2.Router }, { token: i3.MessageService }, { token: i4.StorageServiceService }, { token: i5.MatDialog }, { token: i2.ActivatedRoute }, { token: i0.ElementRef }, { token: i5.MatDialogRef, optional: true }, { token: i6.MatBottomSheetRef, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
392
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: AuthenticationRequiredComponent, isStandalone: true, selector: "simpo-authentication-required", inputs: { data: "data", index: "index", edit: "edit", delete: "delete" }, providers: [MessageService], usesInheritance: true, ngImport: i0, template: "<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"\r\n [showTransformOptions]=\"isMobile ? 'translateY(-100%)' : ''\"></p-toast>\r\n\r\n<section [id]=\"data?.id\" class=\"total-container\" simpoHover (hovering)=\"showEditTabs($event)\">\r\n <div [spacingAround]=\"stylesLayout\">\r\n <div [simpoBackground]=\"styles?.background\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\">\r\n <div class=\"area w-100\">\r\n <ul class=\"circles\">\r\n <li></li>\r\n <li></li>\r\n <li></li>\r\n <li></li>\r\n <li></li>\r\n <li></li>\r\n <li></li>\r\n <li></li>\r\n <li></li>\r\n <li></li>\r\n </ul>\r\n </div>\r\n <div [simpoOverlay]=\"styles?.background\" [id]=\"data?.id\" class=\"main-panel d-flex gap-2\">\r\n <div class=\"panel w-100\" [simpoCorner]=\"styles?.corners\" [id]=\"data?.id\" [simpoAnimation]=\"styles?.animation\">\r\n <ng-container *ngTemplateOutlet=\"currentPage === 'LOGIN' ? loginTemplate : null\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"currentPage === 'SIGNUP' ? signInTemplate : null\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n\r\n</section>\r\n\r\n<ng-template #loginTemplate>\r\n <div>\r\n <div class=\"input-box\">\r\n <label for=\"\">Email</label>\r\n <input type=\"email\" [(ngModel)]=\"email\" required=\"\" placeholder=\"janedoe@gmail.com\"\r\n (ngModelChange)=\"onEmailChange()\" [style.borderColor]=\"!emailCheck ? '' : 'red'\">\r\n <span class=\"f-12\" *ngIf=\"emailCheck\" [style.color]=\"'red'\">Please Enter valid Mobile number*</span>\r\n </div>\r\n <div class=\"input-box\">\r\n <div class=\"w-100\">\r\n <label for=\"\">Password</label>\r\n <input [type]=\"showPassword ? 'text' : 'password'\" required=\"\" [(ngModel)]=\"password\"\r\n (ngModelChange)=\"onPasswordChange()\" class=\"w-90\" placeholder=\"Janedoe@1234\"\r\n [style.borderColor]=\"!passwordCheck ? '' : 'red'\">\r\n <span class=\"eye\" (click)=\"showPassword = !showPassword\" style=\"cursor: pointer;\">\r\n <i class=\"fa\" [ngClass]=\"showPassword ? 'fa-eye-slash' : 'fa-eye'\"></i>\r\n </span>\r\n </div>\r\n <span *ngIf=\"passwordCheck\" class=\"f-12\" [style.color]=\"'red'\">Your password must contain 1 Uppercase , 1\r\n Lowercase , 1 Special\r\n Character , 1 Digit and Minimum 8 Characters*</span>\r\n </div>\r\n <!-- <div class=\"forgot-pwd\" [style.color]=\"accentColor\">Forgot Password?</div> -->\r\n <!-- <button class=\"button\" *ngIf=\"!buttonLoading\" simpoButtonDirective [id]=\"buttonId\" [buttonStyle]=\"button?.styles\"\r\n [backgroundInfo]=\"styles?.background\" [simpoCorner]=\"styles?.corners\" [color]=\"styles?.background?.accentColor\"\r\n (click)=\"login()\">Login</button> -->\r\n <button class=\"send-btn p-2\" *ngIf=\"!buttonLoading\" [buttonData]=\"button?.content\" [buttonStyle]=\"button?.styles\"\r\n simpoButtonDirective [id]=\"data?.id+(button?.id || '')\" [sectionId]=\"data?.id\" [color]=\"data?.styles?.background?.accentColor\"\r\n [backgroundInfo]=\"data?.styles?.background\" [appButtonEditor]=\"edit ?? false\" [buttonId]=\"button?.id ?? ''\" (click)=\"login()\">{{button?.content?.label}}</button>\r\n <!-- <button class=\"button\" *ngIf=\"buttonLoading\" simpoButtonDirective [id]=\"buttonId\" [buttonStyle]=\"button?.styles\"\r\n [backgroundInfo]=\"styles?.background\" [simpoCorner]=\"styles?.corners\"\r\n [color]=\"styles?.background?.accentColor\">Loading...</button> -->\r\n <button class=\"send-btn p-2\" *ngIf=\"buttonLoading\" [buttonData]=\"button?.content\" [buttonStyle]=\"button?.styles\"\r\n simpoButtonDirective [id]=\"data?.id+(button?.id || '')\" [sectionId]=\"data?.id\" [color]=\"data?.styles?.background?.accentColor\"\r\n [backgroundInfo]=\"data?.styles?.background\" [appButtonEditor]=\"edit ?? false\" [buttonId]=\"button?.id ?? ''\" (click)=\"login()\">Loading...</button>\r\n\r\n\r\n <div class=\"sign-up\" *ngIf=\"signUpEnabled\">Don't have an account? <span [style.color]=\"accentColor\"\r\n (click)=\"currentPage = 'SIGNUP'\">Sign\r\n Up</span></div>\r\n\r\n <!-- <div class=\"text-center mt-20\">\r\n <div class=\"or-divider\">\r\n <span class=\"or-text\">or</span>\r\n </div>\r\n <div class=\"sign-up\">Login with <span [style.color]=\"accentColor\">OTP</span></div>\r\n </div> -->\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #signInTemplate>\r\n <div>\r\n <div class=\"input-box\">\r\n <label for=\"\">Name</label>\r\n <input type=\"text\" [(ngModel)]=\"userName\" placeholder=\"Jane Doe\">\r\n </div>\r\n <div class=\"input-box\">\r\n <label for=\"\">Email</label>\r\n <input type=\"email\" [(ngModel)]=\"email\" placeholder=\"janedoe@gmail.com\" (ngModelChange)=\"onEmailChange()\"\r\n [style.borderColor]=\"!emailCheck ? '' : 'red'\">\r\n <span class=\"f-12\" *ngIf=\"emailCheck\" [style.color]=\"'red'\">Please Enter valid email*</span>\r\n </div>\r\n <div class=\"input-box\">\r\n <label for=\"\">Phone Number</label>\r\n <input type=\"number\" [(ngModel)]=\"mobile\" (ngModelChange)=\"onMobileChange()\" placeholder=\"9876543219\"\r\n [style.borderColor]=\"!mobileCheck ? '' : 'red'\" class=\"no-arrows\">\r\n <span class=\"f-12\" *ngIf=\"mobileCheck\" [style.color]=\"'red'\">Please Enter valid Mobile number*</span>\r\n </div>\r\n <div class=\" input-box position-relative\">\r\n <label for=\"\">Password</label>\r\n <div class=\"w-100\">\r\n <input [type]=\"showPassword ? 'text' : 'password'\" required=\"\" [(ngModel)]=\"password\" class=\"w-90\"\r\n placeholder=\"Janedoe@1234\" [style.borderColor]=\"!passwordCheck ? '' : 'red'\"\r\n (ngModelChange)=\"onPasswordChange()\">\r\n <span class=\"eye\" (click)=\"showPassword = !showPassword\" style=\"cursor: pointer;\">\r\n <i class=\"fa\" [ngClass]=\"showPassword ? 'fa-eye-slash' : 'fa-eye'\"></i>\r\n </span>\r\n </div>\r\n <span *ngIf=\"passwordCheck\" class=\"f-12\" [style.color]=\"'red'\">Your password must contain 1 Uppercase , 1\r\n Lowercase , 1 Special\r\n Character , 1 Digit and Minimum 8 Characters*</span>\r\n <!-- <div class=\"strength-bar-container\">\r\n <div *ngFor=\"let strength of passwordStrength; let idx = index\" class=\"strength-bar\"\r\n [style.backgroundColor]=\"getStrengthColor(idx)\"></div>\r\n </div> -->\r\n </div>\r\n <button class=\"button\" *ngIf=\"!buttonLoading\" simpoButtonDirective [id]=\"buttonId\" [buttonStyle]=\"button?.styles\"\r\n [backgroundInfo]=\"styles?.background\" [simpoCorner]=\"styles?.corners\" [color]=\"styles?.background?.accentColor\"\r\n (click)=\"createAccount()\" [disabled]=\"!isEmailValid || !isPasswordValid || !userName\">Create Account</button>\r\n <button class=\"button\" simpoButtonDirective [id]=\"buttonId\" [buttonStyle]=\"button?.styles\"\r\n [backgroundInfo]=\"styles?.background\" [simpoCorner]=\"styles?.corners\" [color]=\"styles?.background?.accentColor\"\r\n *ngIf=\"buttonLoading\">Loading...</button>\r\n\r\n\r\n <div class=\"sign-up\">Already have an account? <span [style.color]=\"accentColor\"\r\n (click)=\"currentPage = 'LOGIN'\">Login</span></div>\r\n </div>\r\n</ng-template>", styles: [".total-container{position:relative;height:auto;perspective:1200px;overflow:hidden}label,.sign-up,.eye{color:#000}.eye{padding:6px;font-size:16px}.w-90{width:90%}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.main-panel{max-width:450px;margin:2rem auto;background:#ffffff26;border-radius:20px;box-shadow:0 25px 50px -12px #00000040;overflow:hidden;transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s ease;transform-style:preserve-3d;will-change:transform;perspective:1200px;backface-visibility:hidden}.main-panel:hover{transform:rotateY(3deg) rotateX(2deg) scale(1.02);box-shadow:0 35px 60px -10px #0000004d}.panel{background:#fffffff2;padding:3rem;position:relative;transform-style:preserve-3d;transition:all .4s ease;margin:unset!important}.panel:before{content:\"\";position:absolute;inset:0;background:linear-gradient(135deg,transparent,rgba(255,255,255,.15) 50%,transparent);opacity:0;transition:opacity .4s ease;pointer-events:none}.panel:hover:before{opacity:1}.input-box{display:flex;flex-direction:column;gap:8px;margin-bottom:1.5rem;position:relative;transform-style:preserve-3d}.input-box label{transform:translateZ(20px)}.input-box input{transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;transform-style:preserve-3d;border:2px solid rgba(0,0,0,.08);padding:.75rem 1rem;border-radius:12px;appearance:none;outline:none}.input-box input:focus{border-color:var(--accent-color, #667eea);box-shadow:0 8px 25px -5px #667eea4d;transform:translateY(-3px) translateZ(25px);background:#fff}.input-box input:hover{transform:translateY(-2px) translateZ(15px);box-shadow:0 5px 15px #00000014}.button{transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;transform-style:preserve-3d;overflow:hidden;border:none;padding:.5rem 2rem;font-weight:600}.button:before{content:\"\";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);transition:left .7s ease}.button:hover{transform:translateY(-3px) translateZ(35px);box-shadow:0 15px 30px -5px var(--accent-shadow, rgba(102, 126, 234, .5))}.button:hover:before{left:100%}.button:active{transform:translateY(-1px) translateZ(25px)}.circles{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}.circles li{position:absolute;display:block;list-style:none;width:20px;height:20px;background:#ffffff1a;box-shadow:0 8px 32px #1f268733;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:80px;border:1px solid rgba(255,255,255,.18);animation:animate 25s linear infinite;bottom:-150px}.circles li:nth-child(1){left:25%;width:80px;height:80px;animation-delay:0s}.circles li:nth-child(2){left:10%;width:20px;height:20px;animation-delay:2s;animation-duration:12s}.circles li:nth-child(3){left:70%;width:20px;height:20px;animation-delay:4s}.circles li:nth-child(4){left:40%;width:60px;height:60px;animation-delay:0s;animation-duration:18s}.circles li:nth-child(5){left:65%;width:20px;height:20px;animation-delay:0s}.circles li:nth-child(6){left:75%;width:110px;height:110px;animation-delay:3s}.circles li:nth-child(7){left:35%;width:150px;height:150px;animation-delay:7s}.circles li:nth-child(8){left:50%;width:25px;height:25px;animation-delay:15s;animation-duration:45s}.circles li:nth-child(9){left:20%;width:15px;height:15px;animation-delay:2s;animation-duration:35s}.circles li:nth-child(15){left:10%;width:20px;height:20px;animation-delay:2s;animation-duration:12s}@keyframes animate{0%{transform:translateY(0) rotate(0);opacity:1;border-radius:0}to{transform:translateY(-1000px) rotate(720deg);opacity:0;border-radius:50%}}.f-12{font-size:12px}.no-arrows::-webkit-outer-spin-button,.no-arrows::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i9.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i10.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i11.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "directive", type: AnimationDirective, selector: "[simpoAnimation]", inputs: ["simpoAnimation"] }, { kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: ButtonDirectiveDirective, selector: "[simpoButtonDirective]", inputs: ["buttonStyle", "color", "scrollValue", "backgroundInfo"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "directive", type: CornerDirective, selector: "[simpoCorner]", inputs: ["simpoCorner"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "directive", type: OverlayDirective, selector: "[simpoOverlay]", inputs: ["simpoOverlay"] }, { kind: "directive", type: SpacingAroundDirective, selector: "[spacingAround]", inputs: ["spacingAround", "backgroundInfo"] }, { kind: "directive", type: ButtonEditorDirective, selector: "button[appButtonEditor]", inputs: ["appButtonEditor", "buttonData", "buttonStyle", "backgroundInfo", "sectionId", "buttonId"] }] }); }
|
393
393
|
}
|
394
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
394
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: AuthenticationRequiredComponent, decorators: [{
|
395
395
|
type: Component,
|
396
396
|
args: [{ selector: 'simpo-authentication-required', standalone: true, imports: [
|
397
397
|
CommonModule,
|
@@ -409,7 +409,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
409
409
|
OverlayDirective,
|
410
410
|
SpacingAroundDirective,
|
411
411
|
ButtonEditorDirective
|
412
|
-
], providers: [MessageService], template: "<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"\n [showTransformOptions]=\"isMobile ? 'translateY(-100%)' : ''\"></p-toast>\n\n<section [id]=\"data?.id\" class=\"total-container\" simpoHover (hovering)=\"showEditTabs($event)\">\n <div [spacingAround]=\"stylesLayout\">\n <div [simpoBackground]=\"styles?.background\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\">\n <div class=\"area w-100\">\n <ul class=\"circles\">\n <li></li>\n <li></li>\n <li></li>\n <li></li>\n <li></li>\n <li></li>\n <li></li>\n <li></li>\n <li></li>\n <li></li>\n </ul>\n </div>\n <div [simpoOverlay]=\"styles?.background\" [id]=\"data?.id\" class=\"main-panel d-flex gap-2\">\n <div class=\"panel w-100\" [simpoCorner]=\"styles?.corners\" [id]=\"data?.id\" [simpoAnimation]=\"styles?.animation\">\n <ng-container *ngTemplateOutlet=\"currentPage === 'LOGIN' ? loginTemplate : null\"></ng-container>\n <ng-container *ngTemplateOutlet=\"currentPage === 'SIGNUP' ? signInTemplate : null\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\n </div>\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\n </div>\n\n</section>\n\n<ng-template #loginTemplate>\n <div>\n <div class=\"input-box\">\n <label for=\"\">Email</label>\n <input type=\"email\" [(ngModel)]=\"email\" required=\"\" placeholder=\"janedoe@gmail.com\"\n (ngModelChange)=\"onEmailChange()\" [style.borderColor]=\"!emailCheck ? '' : 'red'\">\n <span class=\"f-12\" *ngIf=\"emailCheck\" [style.color]=\"'red'\">Please Enter valid Mobile number*</span>\n </div>\n <div class=\"input-box\">\n <div class=\"w-100\">\n <label for=\"\">Password</label>\n <input [type]=\"showPassword ? 'text' : 'password'\" required=\"\" [(ngModel)]=\"password\"\n (ngModelChange)=\"onPasswordChange()\" class=\"w-90\" placeholder=\"Janedoe@1234\"\n [style.borderColor]=\"!passwordCheck ? '' : 'red'\">\n <span class=\"eye\" (click)=\"showPassword = !showPassword\" style=\"cursor: pointer;\">\n <i class=\"fa\" [ngClass]=\"showPassword ? 'fa-eye-slash' : 'fa-eye'\"></i>\n </span>\n </div>\n <span *ngIf=\"passwordCheck\" class=\"f-12\" [style.color]=\"'red'\">Your password must contain 1 Uppercase , 1\n Lowercase , 1 Special\n Character , 1 Digit and Minimum 8 Characters*</span>\n </div>\n <!-- <div class=\"forgot-pwd\" [style.color]=\"accentColor\">Forgot Password?</div> -->\n <!-- <button class=\"button\" *ngIf=\"!buttonLoading\" simpoButtonDirective [id]=\"buttonId\" [buttonStyle]=\"button?.styles\"\n [backgroundInfo]=\"styles?.background\" [simpoCorner]=\"styles?.corners\" [color]=\"styles?.background?.accentColor\"\n (click)=\"login()\">Login</button> -->\n <button class=\"send-btn p-2\" *ngIf=\"!buttonLoading\" [buttonData]=\"button?.content\" [buttonStyle]=\"button?.styles\"\n simpoButtonDirective [id]=\"data?.id+(button?.id || '')\" [sectionId]=\"data?.id\" [color]=\"data?.styles?.background?.accentColor\"\n [backgroundInfo]=\"data?.styles?.background\" [appButtonEditor]=\"edit ?? false\" [buttonId]=\"button?.id ?? ''\" (click)=\"login()\">{{button?.content?.label}}</button>\n <!-- <button class=\"button\" *ngIf=\"buttonLoading\" simpoButtonDirective [id]=\"buttonId\" [buttonStyle]=\"button?.styles\"\n [backgroundInfo]=\"styles?.background\" [simpoCorner]=\"styles?.corners\"\n [color]=\"styles?.background?.accentColor\">Loading...</button> -->\n <button class=\"send-btn p-2\" *ngIf=\"buttonLoading\" [buttonData]=\"button?.content\" [buttonStyle]=\"button?.styles\"\n simpoButtonDirective [id]=\"data?.id+(button?.id || '')\" [sectionId]=\"data?.id\" [color]=\"data?.styles?.background?.accentColor\"\n [backgroundInfo]=\"data?.styles?.background\" [appButtonEditor]=\"edit ?? false\" [buttonId]=\"button?.id ?? ''\" (click)=\"login()\">Loading...</button>\n\n\n <div class=\"sign-up\" *ngIf=\"signUpEnabled\">Don't have an account? <span [style.color]=\"accentColor\"\n (click)=\"currentPage = 'SIGNUP'\">Sign\n Up</span></div>\n\n <!-- <div class=\"text-center mt-20\">\n <div class=\"or-divider\">\n <span class=\"or-text\">or</span>\n </div>\n <div class=\"sign-up\">Login with <span [style.color]=\"accentColor\">OTP</span></div>\n </div> -->\n </div>\n</ng-template>\n\n<ng-template #signInTemplate>\n <div>\n <div class=\"input-box\">\n <label for=\"\">Name</label>\n <input type=\"text\" [(ngModel)]=\"userName\" placeholder=\"Jane Doe\">\n </div>\n <div class=\"input-box\">\n <label for=\"\">Email</label>\n <input type=\"email\" [(ngModel)]=\"email\" placeholder=\"janedoe@gmail.com\" (ngModelChange)=\"onEmailChange()\"\n [style.borderColor]=\"!emailCheck ? '' : 'red'\">\n <span class=\"f-12\" *ngIf=\"emailCheck\" [style.color]=\"'red'\">Please Enter valid email*</span>\n </div>\n <div class=\"input-box\">\n <label for=\"\">Phone Number</label>\n <input type=\"number\" [(ngModel)]=\"mobile\" (ngModelChange)=\"onMobileChange()\" placeholder=\"9876543219\"\n [style.borderColor]=\"!mobileCheck ? '' : 'red'\" class=\"no-arrows\">\n <span class=\"f-12\" *ngIf=\"mobileCheck\" [style.color]=\"'red'\">Please Enter valid Mobile number*</span>\n </div>\n <div class=\" input-box position-relative\">\n <label for=\"\">Password</label>\n <div class=\"w-100\">\n <input [type]=\"showPassword ? 'text' : 'password'\" required=\"\" [(ngModel)]=\"password\" class=\"w-90\"\n placeholder=\"Janedoe@1234\" [style.borderColor]=\"!passwordCheck ? '' : 'red'\"\n (ngModelChange)=\"onPasswordChange()\">\n <span class=\"eye\" (click)=\"showPassword = !showPassword\" style=\"cursor: pointer;\">\n <i class=\"fa\" [ngClass]=\"showPassword ? 'fa-eye-slash' : 'fa-eye'\"></i>\n </span>\n </div>\n <span *ngIf=\"passwordCheck\" class=\"f-12\" [style.color]=\"'red'\">Your password must contain 1 Uppercase , 1\n Lowercase , 1 Special\n Character , 1 Digit and Minimum 8 Characters*</span>\n <!-- <div class=\"strength-bar-container\">\n <div *ngFor=\"let strength of passwordStrength; let idx = index\" class=\"strength-bar\"\n [style.backgroundColor]=\"getStrengthColor(idx)\"></div>\n </div> -->\n </div>\n <button class=\"button\" *ngIf=\"!buttonLoading\" simpoButtonDirective [id]=\"buttonId\" [buttonStyle]=\"button?.styles\"\n [backgroundInfo]=\"styles?.background\" [simpoCorner]=\"styles?.corners\" [color]=\"styles?.background?.accentColor\"\n (click)=\"createAccount()\" [disabled]=\"!isEmailValid || !isPasswordValid || !userName\">Create Account</button>\n <button class=\"button\" simpoButtonDirective [id]=\"buttonId\" [buttonStyle]=\"button?.styles\"\n [backgroundInfo]=\"styles?.background\" [simpoCorner]=\"styles?.corners\" [color]=\"styles?.background?.accentColor\"\n *ngIf=\"buttonLoading\">Loading...</button>\n\n\n <div class=\"sign-up\">Already have an account? <span [style.color]=\"accentColor\"\n (click)=\"currentPage = 'LOGIN'\">Login</span></div>\n </div>\n</ng-template>", styles: [".total-container{position:relative;height:auto;perspective:1200px;overflow:hidden}label,.sign-up,.eye{color:#000}.eye{padding:6px;font-size:16px}.w-90{width:90%}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.main-panel{max-width:450px;margin:2rem auto;background:#ffffff26;border-radius:20px;box-shadow:0 25px 50px -12px #00000040;overflow:hidden;transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s ease;transform-style:preserve-3d;will-change:transform;perspective:1200px;backface-visibility:hidden}.main-panel:hover{transform:rotateY(3deg) rotateX(2deg) scale(1.02);box-shadow:0 35px 60px -10px #0000004d}.panel{background:#fffffff2;padding:3rem;position:relative;transform-style:preserve-3d;transition:all .4s ease;margin:unset!important}.panel:before{content:\"\";position:absolute;inset:0;background:linear-gradient(135deg,transparent,rgba(255,255,255,.15) 50%,transparent);opacity:0;transition:opacity .4s ease;pointer-events:none}.panel:hover:before{opacity:1}.input-box{display:flex;flex-direction:column;gap:8px;margin-bottom:1.5rem;position:relative;transform-style:preserve-3d}.input-box label{transform:translateZ(20px)}.input-box input{transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;transform-style:preserve-3d;border:2px solid rgba(0,0,0,.08);padding:.75rem 1rem;border-radius:12px;appearance:none;outline:none}.input-box input:focus{border-color:var(--accent-color, #667eea);box-shadow:0 8px 25px -5px #667eea4d;transform:translateY(-3px) translateZ(25px);background:#fff}.input-box input:hover{transform:translateY(-2px) translateZ(15px);box-shadow:0 5px 15px #00000014}.button{transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;transform-style:preserve-3d;overflow:hidden;border:none;padding:.5rem 2rem;font-weight:600}.button:before{content:\"\";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);transition:left .7s ease}.button:hover{transform:translateY(-3px) translateZ(35px);box-shadow:0 15px 30px -5px var(--accent-shadow, rgba(102, 126, 234, .5))}.button:hover:before{left:100%}.button:active{transform:translateY(-1px) translateZ(25px)}.circles{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}.circles li{position:absolute;display:block;list-style:none;width:20px;height:20px;background:#ffffff1a;box-shadow:0 8px 32px #1f268733;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:80px;border:1px solid rgba(255,255,255,.18);animation:animate 25s linear infinite;bottom:-150px}.circles li:nth-child(1){left:25%;width:80px;height:80px;animation-delay:0s}.circles li:nth-child(2){left:10%;width:20px;height:20px;animation-delay:2s;animation-duration:12s}.circles li:nth-child(3){left:70%;width:20px;height:20px;animation-delay:4s}.circles li:nth-child(4){left:40%;width:60px;height:60px;animation-delay:0s;animation-duration:18s}.circles li:nth-child(5){left:65%;width:20px;height:20px;animation-delay:0s}.circles li:nth-child(6){left:75%;width:110px;height:110px;animation-delay:3s}.circles li:nth-child(7){left:35%;width:150px;height:150px;animation-delay:7s}.circles li:nth-child(8){left:50%;width:25px;height:25px;animation-delay:15s;animation-duration:45s}.circles li:nth-child(9){left:20%;width:15px;height:15px;animation-delay:2s;animation-duration:35s}.circles li:nth-child(15){left:10%;width:20px;height:20px;animation-delay:2s;animation-duration:12s}@keyframes animate{0%{transform:translateY(0) rotate(0);opacity:1;border-radius:0}to{transform:translateY(-1000px) rotate(720deg);opacity:0;border-radius:50%}}.f-12{font-size:12px}.no-arrows::-webkit-outer-spin-button,.no-arrows::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"] }]
|
412
|
+
], providers: [MessageService], template: "<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"\r\n [showTransformOptions]=\"isMobile ? 'translateY(-100%)' : ''\"></p-toast>\r\n\r\n<section [id]=\"data?.id\" class=\"total-container\" simpoHover (hovering)=\"showEditTabs($event)\">\r\n <div [spacingAround]=\"stylesLayout\">\r\n <div [simpoBackground]=\"styles?.background\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\">\r\n <div class=\"area w-100\">\r\n <ul class=\"circles\">\r\n <li></li>\r\n <li></li>\r\n <li></li>\r\n <li></li>\r\n <li></li>\r\n <li></li>\r\n <li></li>\r\n <li></li>\r\n <li></li>\r\n <li></li>\r\n </ul>\r\n </div>\r\n <div [simpoOverlay]=\"styles?.background\" [id]=\"data?.id\" class=\"main-panel d-flex gap-2\">\r\n <div class=\"panel w-100\" [simpoCorner]=\"styles?.corners\" [id]=\"data?.id\" [simpoAnimation]=\"styles?.animation\">\r\n <ng-container *ngTemplateOutlet=\"currentPage === 'LOGIN' ? loginTemplate : null\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"currentPage === 'SIGNUP' ? signInTemplate : null\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n\r\n</section>\r\n\r\n<ng-template #loginTemplate>\r\n <div>\r\n <div class=\"input-box\">\r\n <label for=\"\">Email</label>\r\n <input type=\"email\" [(ngModel)]=\"email\" required=\"\" placeholder=\"janedoe@gmail.com\"\r\n (ngModelChange)=\"onEmailChange()\" [style.borderColor]=\"!emailCheck ? '' : 'red'\">\r\n <span class=\"f-12\" *ngIf=\"emailCheck\" [style.color]=\"'red'\">Please Enter valid Mobile number*</span>\r\n </div>\r\n <div class=\"input-box\">\r\n <div class=\"w-100\">\r\n <label for=\"\">Password</label>\r\n <input [type]=\"showPassword ? 'text' : 'password'\" required=\"\" [(ngModel)]=\"password\"\r\n (ngModelChange)=\"onPasswordChange()\" class=\"w-90\" placeholder=\"Janedoe@1234\"\r\n [style.borderColor]=\"!passwordCheck ? '' : 'red'\">\r\n <span class=\"eye\" (click)=\"showPassword = !showPassword\" style=\"cursor: pointer;\">\r\n <i class=\"fa\" [ngClass]=\"showPassword ? 'fa-eye-slash' : 'fa-eye'\"></i>\r\n </span>\r\n </div>\r\n <span *ngIf=\"passwordCheck\" class=\"f-12\" [style.color]=\"'red'\">Your password must contain 1 Uppercase , 1\r\n Lowercase , 1 Special\r\n Character , 1 Digit and Minimum 8 Characters*</span>\r\n </div>\r\n <!-- <div class=\"forgot-pwd\" [style.color]=\"accentColor\">Forgot Password?</div> -->\r\n <!-- <button class=\"button\" *ngIf=\"!buttonLoading\" simpoButtonDirective [id]=\"buttonId\" [buttonStyle]=\"button?.styles\"\r\n [backgroundInfo]=\"styles?.background\" [simpoCorner]=\"styles?.corners\" [color]=\"styles?.background?.accentColor\"\r\n (click)=\"login()\">Login</button> -->\r\n <button class=\"send-btn p-2\" *ngIf=\"!buttonLoading\" [buttonData]=\"button?.content\" [buttonStyle]=\"button?.styles\"\r\n simpoButtonDirective [id]=\"data?.id+(button?.id || '')\" [sectionId]=\"data?.id\" [color]=\"data?.styles?.background?.accentColor\"\r\n [backgroundInfo]=\"data?.styles?.background\" [appButtonEditor]=\"edit ?? false\" [buttonId]=\"button?.id ?? ''\" (click)=\"login()\">{{button?.content?.label}}</button>\r\n <!-- <button class=\"button\" *ngIf=\"buttonLoading\" simpoButtonDirective [id]=\"buttonId\" [buttonStyle]=\"button?.styles\"\r\n [backgroundInfo]=\"styles?.background\" [simpoCorner]=\"styles?.corners\"\r\n [color]=\"styles?.background?.accentColor\">Loading...</button> -->\r\n <button class=\"send-btn p-2\" *ngIf=\"buttonLoading\" [buttonData]=\"button?.content\" [buttonStyle]=\"button?.styles\"\r\n simpoButtonDirective [id]=\"data?.id+(button?.id || '')\" [sectionId]=\"data?.id\" [color]=\"data?.styles?.background?.accentColor\"\r\n [backgroundInfo]=\"data?.styles?.background\" [appButtonEditor]=\"edit ?? false\" [buttonId]=\"button?.id ?? ''\" (click)=\"login()\">Loading...</button>\r\n\r\n\r\n <div class=\"sign-up\" *ngIf=\"signUpEnabled\">Don't have an account? <span [style.color]=\"accentColor\"\r\n (click)=\"currentPage = 'SIGNUP'\">Sign\r\n Up</span></div>\r\n\r\n <!-- <div class=\"text-center mt-20\">\r\n <div class=\"or-divider\">\r\n <span class=\"or-text\">or</span>\r\n </div>\r\n <div class=\"sign-up\">Login with <span [style.color]=\"accentColor\">OTP</span></div>\r\n </div> -->\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #signInTemplate>\r\n <div>\r\n <div class=\"input-box\">\r\n <label for=\"\">Name</label>\r\n <input type=\"text\" [(ngModel)]=\"userName\" placeholder=\"Jane Doe\">\r\n </div>\r\n <div class=\"input-box\">\r\n <label for=\"\">Email</label>\r\n <input type=\"email\" [(ngModel)]=\"email\" placeholder=\"janedoe@gmail.com\" (ngModelChange)=\"onEmailChange()\"\r\n [style.borderColor]=\"!emailCheck ? '' : 'red'\">\r\n <span class=\"f-12\" *ngIf=\"emailCheck\" [style.color]=\"'red'\">Please Enter valid email*</span>\r\n </div>\r\n <div class=\"input-box\">\r\n <label for=\"\">Phone Number</label>\r\n <input type=\"number\" [(ngModel)]=\"mobile\" (ngModelChange)=\"onMobileChange()\" placeholder=\"9876543219\"\r\n [style.borderColor]=\"!mobileCheck ? '' : 'red'\" class=\"no-arrows\">\r\n <span class=\"f-12\" *ngIf=\"mobileCheck\" [style.color]=\"'red'\">Please Enter valid Mobile number*</span>\r\n </div>\r\n <div class=\" input-box position-relative\">\r\n <label for=\"\">Password</label>\r\n <div class=\"w-100\">\r\n <input [type]=\"showPassword ? 'text' : 'password'\" required=\"\" [(ngModel)]=\"password\" class=\"w-90\"\r\n placeholder=\"Janedoe@1234\" [style.borderColor]=\"!passwordCheck ? '' : 'red'\"\r\n (ngModelChange)=\"onPasswordChange()\">\r\n <span class=\"eye\" (click)=\"showPassword = !showPassword\" style=\"cursor: pointer;\">\r\n <i class=\"fa\" [ngClass]=\"showPassword ? 'fa-eye-slash' : 'fa-eye'\"></i>\r\n </span>\r\n </div>\r\n <span *ngIf=\"passwordCheck\" class=\"f-12\" [style.color]=\"'red'\">Your password must contain 1 Uppercase , 1\r\n Lowercase , 1 Special\r\n Character , 1 Digit and Minimum 8 Characters*</span>\r\n <!-- <div class=\"strength-bar-container\">\r\n <div *ngFor=\"let strength of passwordStrength; let idx = index\" class=\"strength-bar\"\r\n [style.backgroundColor]=\"getStrengthColor(idx)\"></div>\r\n </div> -->\r\n </div>\r\n <button class=\"button\" *ngIf=\"!buttonLoading\" simpoButtonDirective [id]=\"buttonId\" [buttonStyle]=\"button?.styles\"\r\n [backgroundInfo]=\"styles?.background\" [simpoCorner]=\"styles?.corners\" [color]=\"styles?.background?.accentColor\"\r\n (click)=\"createAccount()\" [disabled]=\"!isEmailValid || !isPasswordValid || !userName\">Create Account</button>\r\n <button class=\"button\" simpoButtonDirective [id]=\"buttonId\" [buttonStyle]=\"button?.styles\"\r\n [backgroundInfo]=\"styles?.background\" [simpoCorner]=\"styles?.corners\" [color]=\"styles?.background?.accentColor\"\r\n *ngIf=\"buttonLoading\">Loading...</button>\r\n\r\n\r\n <div class=\"sign-up\">Already have an account? <span [style.color]=\"accentColor\"\r\n (click)=\"currentPage = 'LOGIN'\">Login</span></div>\r\n </div>\r\n</ng-template>", styles: [".total-container{position:relative;height:auto;perspective:1200px;overflow:hidden}label,.sign-up,.eye{color:#000}.eye{padding:6px;font-size:16px}.w-90{width:90%}.hover_effect{position:unset;width:100%;top:0;left:0;height:100%}.main-panel{max-width:450px;margin:2rem auto;background:#ffffff26;border-radius:20px;box-shadow:0 25px 50px -12px #00000040;overflow:hidden;transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s ease;transform-style:preserve-3d;will-change:transform;perspective:1200px;backface-visibility:hidden}.main-panel:hover{transform:rotateY(3deg) rotateX(2deg) scale(1.02);box-shadow:0 35px 60px -10px #0000004d}.panel{background:#fffffff2;padding:3rem;position:relative;transform-style:preserve-3d;transition:all .4s ease;margin:unset!important}.panel:before{content:\"\";position:absolute;inset:0;background:linear-gradient(135deg,transparent,rgba(255,255,255,.15) 50%,transparent);opacity:0;transition:opacity .4s ease;pointer-events:none}.panel:hover:before{opacity:1}.input-box{display:flex;flex-direction:column;gap:8px;margin-bottom:1.5rem;position:relative;transform-style:preserve-3d}.input-box label{transform:translateZ(20px)}.input-box input{transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;transform-style:preserve-3d;border:2px solid rgba(0,0,0,.08);padding:.75rem 1rem;border-radius:12px;appearance:none;outline:none}.input-box input:focus{border-color:var(--accent-color, #667eea);box-shadow:0 8px 25px -5px #667eea4d;transform:translateY(-3px) translateZ(25px);background:#fff}.input-box input:hover{transform:translateY(-2px) translateZ(15px);box-shadow:0 5px 15px #00000014}.button{transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;transform-style:preserve-3d;overflow:hidden;border:none;padding:.5rem 2rem;font-weight:600}.button:before{content:\"\";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);transition:left .7s ease}.button:hover{transform:translateY(-3px) translateZ(35px);box-shadow:0 15px 30px -5px var(--accent-shadow, rgba(102, 126, 234, .5))}.button:hover:before{left:100%}.button:active{transform:translateY(-1px) translateZ(25px)}.circles{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}.circles li{position:absolute;display:block;list-style:none;width:20px;height:20px;background:#ffffff1a;box-shadow:0 8px 32px #1f268733;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:80px;border:1px solid rgba(255,255,255,.18);animation:animate 25s linear infinite;bottom:-150px}.circles li:nth-child(1){left:25%;width:80px;height:80px;animation-delay:0s}.circles li:nth-child(2){left:10%;width:20px;height:20px;animation-delay:2s;animation-duration:12s}.circles li:nth-child(3){left:70%;width:20px;height:20px;animation-delay:4s}.circles li:nth-child(4){left:40%;width:60px;height:60px;animation-delay:0s;animation-duration:18s}.circles li:nth-child(5){left:65%;width:20px;height:20px;animation-delay:0s}.circles li:nth-child(6){left:75%;width:110px;height:110px;animation-delay:3s}.circles li:nth-child(7){left:35%;width:150px;height:150px;animation-delay:7s}.circles li:nth-child(8){left:50%;width:25px;height:25px;animation-delay:15s;animation-duration:45s}.circles li:nth-child(9){left:20%;width:15px;height:15px;animation-delay:2s;animation-duration:35s}.circles li:nth-child(15){left:10%;width:20px;height:20px;animation-delay:2s;animation-duration:12s}@keyframes animate{0%{transform:translateY(0) rotate(0);opacity:1;border-radius:0}to{transform:translateY(-1000px) rotate(720deg);opacity:0;border-radius:50%}}.f-12{font-size:12px}.no-arrows::-webkit-outer-spin-button,.no-arrows::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"] }]
|
413
413
|
}], ctorParameters: () => [{ type: i1.RestService }, { type: i2.Router }, { type: i3.MessageService }, { type: i4.StorageServiceService }, { type: i5.MatDialog }, { type: i2.ActivatedRoute }, { type: i0.ElementRef }, { type: i5.MatDialogRef, decorators: [{
|
414
414
|
type: Optional
|
415
415
|
}] }, { type: i6.MatBottomSheetRef, decorators: [{
|
@@ -423,4 +423,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
423
423
|
}], delete: [{
|
424
424
|
type: Input
|
425
425
|
}] } });
|
426
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24tcmVxdWlyZWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvYXV0aGVudGljYXRpb24tcmVxdWlyZWQvYXV0aGVudGljYXRpb24tcmVxdWlyZWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvYXV0aGVudGljYXRpb24tcmVxdWlyZWQvYXV0aGVudGljYXRpb24tcmVxdWlyZWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUd2RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUU5RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwr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QUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDbEIsU0FBeUIsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLDZCQUE2QixDQUFDO2dCQUM3RSxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzsrR0E1WlUsK0JBQStCO21HQUEvQiwrQkFBK0Isc0pBSi9CLENBQUMsY0FBYyxDQUFDLGlEQ2hEN0IseWhQQXVJYyw0dUhEeEdWLFlBQVksdVlBQ1osV0FBVyw2K0JBQ1gsV0FBVyx1V0FDWCxhQUFhLDhCQUNiLHdCQUF3Qiw4QkFDeEIsb0JBQW9CLHNXQUVwQixrQkFBa0IseUZBQ2xCLG1CQUFtQiwwR0FDbkIsd0JBQXdCLHNJQUN4QixtQkFBbUIsbUZBQ25CLGVBQWUsbUZBQ2YsY0FBYyxnRkFDZCxnQkFBZ0IscUZBQ2hCLHNCQUFzQix5R0FDdEIscUJBQXFCOzs0RkFNWiwrQkFBK0I7a0JBekIzQyxTQUFTOytCQUNFLCtCQUErQixjQUM3QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYix3QkFBd0I7d0JBQ3hCLG9CQUFvQjt3QkFFcEIsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLHdCQUF3Qjt3QkFDeEIsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixzQkFBc0I7d0JBQ3RCLHFCQUFxQjtxQkFDdEIsYUFDVSxDQUFDLGNBQWMsQ0FBQzs7MEJBMkN4QixRQUFROzswQkFDUixRQUFRO3lDQXRDRixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XG5pbXBvcnQgeyBEZXZpY2VJbmZvIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3VzZXIubW9kYWwnO1xuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdEJvdHRvbVNoZWV0UmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYm90dG9tLXNoZWV0JztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb25Nb2RlbCwgQXV0aGVudGljYXRpb25TdHlsZXNNb2RlbCB9IGZyb20gJy4vYXV0aGVudGljYXRpb24tcmVxdWlyZWQubW9kZWwnO1xuaW1wb3J0IHsgU2ltcG9Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2luZGV4JztcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcbmltcG9ydCB7IEJhY2tncm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYmFja2dyb3VuZC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWZpdC1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQnV0dG9uRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2J1dHRvbi1kaXJlY3RpdmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvcm5lckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb3JuZXItZGlyZWN0aXZlJztcbmltcG9ydCB7IEhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2hvdmVyLWVsZW1lbnQtZGlyZWN0aXZlJztcbmltcG9ydCB7IE92ZXJsYXlEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvb3ZlcmxheS1kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU3BhY2luZ0Fyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9zcGFjaW5nLWFyb3VuZC5kaXJlY3RpdmUnO1xuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uLy4uLy4uL3NlY3Rpb25zL0Jhc2VTZWN0aW9uJztcbmltcG9ydCB7IEJ1dHRvbk1vZGVsLCBMYXlPdXRNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XG5pbXBvcnQgeyBCdXR0b25FZGl0b3JEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYnV0dG9uLWVkaXRvci5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaW1wby1hdXRoZW50aWNhdGlvbi1yZXF1aXJlZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgVG9hc3RNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgU2ltcG9Db21wb25lbnRNb2R1bGUsXG5cbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXG4gICAgQmFja2dyb3VuZERpcmVjdGl2ZSxcbiAgICBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUsXG4gICAgQ29udGVudEZpdERpcmVjdGl2ZSxcbiAgICBDb3JuZXJEaXJlY3RpdmUsXG4gICAgSG92ZXJEaXJlY3RpdmUsXG4gICAgT3ZlcmxheURpcmVjdGl2ZSxcbiAgICBTcGFjaW5nQXJvdW5kRGlyZWN0aXZlLFxuICAgIEJ1dHRvbkVkaXRvckRpcmVjdGl2ZVxuICBdLFxuICBwcm92aWRlcnM6IFtNZXNzYWdlU2VydmljZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRoZW50aWNhdGlvbi1yZXF1aXJlZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9hdXRoZW50aWNhdGlvbi1yZXF1aXJlZC5jb21wb25lbnQuY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdGlvblJlcXVpcmVkQ29tcG9uZW50IGV4dGVuZHMgQmFzZVNlY3Rpb24ge1xuICAvLyBwcml2YXRlIGVtYWlsVGltZXI6IE5vZGVKUy5UaW1lb3V0IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGRhdGE/OiBBdXRoZW50aWNhdGlvbk1vZGVsO1xuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcbiAgQElucHV0KCkgZWRpdD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRlbGV0ZT86IGJvb2xlYW47XG4gIHN0eWxlcz86IEF1dGhlbnRpY2F0aW9uU3R5bGVzTW9kZWw7XG4gIGJ1dHRvbj86IEJ1dHRvbk1vZGVsXG4gIGJ1dHRvbklkOiBzdHJpbmcgPSAnJztcblxuICBjdXJyZW50UGFnZTogJ0xPR0lOJyB8ICdTSUdOVVAnID0gJ0xPR0lOJztcbiAgcHJpdmF0ZSBtb2JpbGVUaW1lcjogYW55O1xuICBwdWJsaWMgZW1haWw6IHN0cmluZyA9IFwiXCI7XG4gIHB1YmxpYyBtb2JpbGU6IHN0cmluZyA9IFwiXCI7XG4gIHB1YmxpYyBvdHA6IHN0cmluZyA9IFwiXCI7XG4gIHB1YmxpYyBwYXNzd29yZDogc3RyaW5nID0gXCJcIjtcbiAgcHVibGljIGNvbmZQYXNzd29yZDogc3RyaW5nID0gXCJcIjtcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmcgPSBcIlwiO1xuICBwdWJsaWMgYnV0dG9uTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgYnVzaW5lc3NJZDogc3RyaW5nIHwgbnVsbCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYklkXCIpO1xuICBwdWJsaWMgaXNPVFBWZXJpZmllZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgcGFzc3dvcmRIaWRkZW46IGJvb2xlYW4gPSB0cnVlO1xuICBwdWJsaWMgcGFzc3dvcmRTdHJlbmd0aENvdW50OiBudW1iZXIgPSAwO1xuICBwdWJsaWMgcGFzc3dvcmRTdHJlbmd0aCA9IFtcbiAgICB7IHR5cGU6IFwibWluaW11bSA4IGNoYXJhY3RlclwiLCBhY3RpdmU6IGZhbHNlIH0sXG4gICAgeyB0eXBlOiBcImF0bGVhc3Qgb25lIFVQUEVSQ0FTRVwiLCBhY3RpdmU6IGZhbHNlIH0sXG4gICAgeyB0eXBlOiBcImF0bGVhc3Qgb25lIGxvd2VyY2FzZVwiLCBhY3RpdmU6IGZhbHNlIH0sXG4gICAgeyB0eXBlOiBcImF0bGVhc3Qgb25lIG51bWJlclwiLCBhY3RpdmU6IGZhbHNlIH0sXG4gIF1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1hdERpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcblxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8QXV0aGVudGljYXRpb25SZXF1aXJlZENvbXBvbmVudD4sXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBib3R0b21zaGVldFJlZjogTWF0Qm90dG9tU2hlZXRSZWY8QXV0aGVudGljYXRpb25SZXF1aXJlZENvbXBvbmVudD4sXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBzaWduVXBFbmFibGVkOiBhbnkgPSB0cnVlO1xuXG4gIHByb2NlZWRUb0NoZWNrb3V0OiBib29sZWFuID0gZmFsc2U7XG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKChwYXJhbTogYW55KSA9PiB7XG4gICAgICBpZiAocGFyYW0gJiYgcGFyYW1bJ2NhcnQnXSlcbiAgICAgICAgdGhpcy5wcm9jZWVkVG9DaGVja291dCA9IHRydWU7XG4gICAgfSlcbiAgICB0aGlzLnN0eWxlcyA9IHRoaXMuZGF0YT8uc3R5bGVzO1xuICAgIHRoaXMuYnV0dG9uID0gdGhpcy5kYXRhPy5hY3Rpb24/LmJ1dHRvbnNbMF07XG4gICAgdGhpcy5idXR0b25JZCA9ICh0aGlzLmRhdGEgPyB0aGlzLmRhdGEuaWQgOiAnJykgKyAodGhpcy5idXR0b24gPyB0aGlzLmJ1dHRvbi5pZCA6ICcnKTtcblxuICAgIGxldCBlbmFibGVkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3NpZ25VcEVuYWJsZWQnKTtcbiAgICBpZiAoZW5hYmxlZCAhPSBudWxsKVxuICAgICAgdGhpcy5zaWduVXBFbmFibGVkID0gZW5hYmxlZCA9PT0gJ3RydWUnO1xuXG4gIH1cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuc2V0dXAzREVmZmVjdHMoKTtcbiAgfVxuXG4gIGxvZ2luVHlwZTogXCJQQVNTV09SRFwiIHwgXCJPVFBcIiA9IFwiUEFTU1dPUkRcIjtcblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICB9XG4gIGxvZ2luKCkge1xuICAgIGlmICh0aGlzLmxvZ2luVHlwZSA9PSBcIk9UUFwiKSB7XG4gICAgICB0aGlzLnZlcmlmeU9UUCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZlcmlmeVBhc3N3b3JkKCk7XG4gICAgfVxuICB9XG5cbiAgdmVyaWZ5UGFzc3dvcmQoKSB7XG5cbiAgICBpZiAoIXRoaXMuaXNFbWFpbFZhbGlkKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnSW52YWxpZCBFbWFpbCcsIGRldGFpbDogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5pc1Bhc3N3b3JkVmFsaWQpIHtcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdJbnZhbGlkIFBhc3N3b3JkJywgZGV0YWlsOiAnUGxlYXNlIGVudGVyIGEgdmFsaWQgcGFzc3dvcmQnIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICBidXNpbmVzc0lkOiB0aGlzLmJ1c2luZXNzSWQsXG4gICAgICBlbWFpbDogdGhpcy5lbWFpbCxcbiAgICAgIHBhc3N3b3JkOiB0aGlzLnBhc3N3b3JkXG4gICAgfVxuXG4gICAgdGhpcy5idXR0b25Mb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnNpZ25pblBhc3N3b3JkKHBheWxvYWQpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgY29uc3QgdXNlckRldGFpbHMgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldFVzZXIocmVzcG9uc2UuZGF0YSk7XG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnVwZGF0ZUFsbERhdGEoKTtcbiAgICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xuICAgICAgLy8gdGhpcy5kaWFsb2dSZWYuY2xvc2UoJ3N1Y2Nlc3MnKTtcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ0xvZ2dlZCBJbicsIGRldGFpbDogJ0xvZ2dlZCBpbiBTdWNjZXNzZnVsbHknIH0pO1xuICAgICAgaWYgKHRoaXMucHJvY2VlZFRvQ2hlY2tvdXQpXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2NhcnQnXSwgeyBxdWVyeVBhcmFtczogeyBjaGVja291dDogdHJ1ZSB9IH0pO1xuICAgICAgZWxzZVxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJyddKTtcbiAgICB9LFxuICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnTG9naW4gcmVxdWVzdCcsIGRldGFpbDogZXJyb3I/LmVycm9yPy5tZXNzYWdlIH0pO1xuICAgICAgfSlcbiAgfVxuICB2ZXJpZnlPVFAoKSB7XG5cbiAgICBjb25zdCBkZXZpY2VJbmZvOiBEZXZpY2VJbmZvIHwgbnVsbCA9IHtcbiAgICAgIGZpcmViYXNlVG9rZW46IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiZmJUb2tlblwiKSA/PyBcIlwiXG4gICAgfTtcblxuICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5yZXN0U2VydmljZS52ZXJpZnlPVFAodGhpcy5tb2JpbGUgPz8gXCJcIiwgdGhpcy5vdHAsIGRldmljZUluZm8pLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgY29uc3QgdXNlckRldGFpbHMgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldFVzZXIocmVzcG9uc2UuZGF0YSk7XG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnVwZGF0ZUFsbERhdGEoKTtcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCdzdWNjZXNzJyk7XG4gICAgfSxcbiAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogXCJMb2dpbiByZXF1ZXN0XCIsIGRldGFpbDogZXJyb3I/LmVycm9yPy5tZXNzYWdlIH0pO1xuICAgICAgfSlcbiAgfVxuICBzZW5kU2lnbnVwT1RQKCkge1xuICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5pc09UUFZlcmlmaWVkID0gZmFsc2U7XG4gICAgaWYgKHRoaXMubW9iaWxlVGltZXIpXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5tb2JpbGVUaW1lcik7XG4gICAgdGhpcy5tb2JpbGVUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMubW9iaWxlLmxlbmd0aCAhPSAxMClcbiAgICAgICAgcmV0dXJuO1xuICAgICAgY29uc3QgcGF5bG9hZDogYW55ID0ge1xuICAgICAgICBidXNpbmVzc0lkOiB0aGlzLmJ1c2luZXNzSWQsXG4gICAgICAgIG1vYmlsZTogdGhpcy5tb2JpbGUsXG4gICAgICAgIGVtYWlsOiB0aGlzLmVtYWlsLFxuICAgICAgICBwYXNzd29yZDogdGhpcy5wYXNzd29yZCxcbiAgICAgICAgY291bnRyeUNvZGU6ICc5MSdcbiAgICAgIH1cbiAgICAgIHRoaXMucmVzdFNlcnZpY2Uuc2VuZFNpZ251cE9UUChwYXlsb2FkKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuaXNPVFBWZXJpZmllZCA9IHRydWU7XG4gICAgICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdPVFAnLCBkZXRhaWw6ICdPVFAgU2VudCcgfSk7XG4gICAgICB9LCAoZXJyKSA9PiB7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdPVFAgUmVxdWVzdCcsIGRldGFpbDogZXJyLmVycm9yLm1lc3NhZ2UgfSk7XG4gICAgICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xuICAgICAgfSlcbiAgICB9LCA4MDApO1xuICB9XG4gIGNyZWF0ZUFjY291bnQoKSB7XG5cbiAgICBpZiAoIXRoaXMuaXNFbWFpbFZhbGlkKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnSW52YWxpZCBFbWFpbCcsIGRldGFpbDogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuaXNQYXNzd29yZFZhbGlkKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnSW52YWxpZCBQYXNzd29yZCcsIGRldGFpbDogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIHBhc3N3b3JkJyB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLm1vYmlsZU51bWJlclZhbGlkKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnSW52YWxpZCBNb2JpbGUgTnVtYmVyJywgZGV0YWlsOiAnUGxlYXNlIGVudGVyIGEgdmFsaWQgbW9iaWxlIG51bWJlcicgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGV2aWNlSW5mbzogRGV2aWNlSW5mbyB8IG51bGwgPSB7XG4gICAgICBmaXJlYmFzZVRva2VuOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImZiVG9rZW5cIikgPz8gXCJcIlxuICAgIH07XG5cbiAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSB0cnVlO1xuICAgIGxldCB2ZXJpZnlTaWduRGF0YSA9IHtcbiAgICAgIG5hbWU6IHRoaXMudXNlck5hbWUsXG4gICAgICBidXNpbmVzc0lkOiB0aGlzLmJ1c2luZXNzSWQsXG4gICAgICBidXNpbmVzc05hbWU6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdiTmFtZScpLFxuICAgICAgbW9iaWxlOiB0aGlzLm1vYmlsZSxcbiAgICAgIGVtYWlsOiB0aGlzLmVtYWlsLFxuICAgICAgcGFzc3dvcmQ6IHRoaXMucGFzc3dvcmQsXG4gICAgICBjb3VudHJ5Q29kZTogXCIrOTFcIixcbiAgICAgIGVudGVyZWRPdHA6IHRoaXMub3RwXG4gICAgfVxuICAgIHRoaXMucmVzdFNlcnZpY2UudmVyaWZ5U2lnbnVwT1RQKHZlcmlmeVNpZ25EYXRhKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IHVzZXJEZXRhaWxzID0gdGhpcy5zdG9yYWdlU2VydmljZS5zZXRVc2VyKHJlc3BvbnNlLmRhdGEpO1xuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS51cGRhdGVBbGxEYXRhKCk7XG4gICAgICAvLyB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgnc3VjY2VzcycpO1xuICAgICAgdGhpcy5idXR0b25Mb2FkaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdTaWduIFVwJywgZGV0YWlsOiAnWW91ciBhY2NvdW50IHN1Y2Nlc3NmdWxseSBjcmVhdGVkJyB9KTtcbiAgICAgIGlmICh0aGlzLnByb2NlZWRUb0NoZWNrb3V0KVxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9jYXJ0J10sIHsgcXVlcnlQYXJhbXM6IHsgY2hlY2tvdXQ6IHRydWUgfSB9KTtcbiAgICAgIGVsc2VcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycnXSk7ICAgICAgLy8gU3dhbC5maXJlKHtcbiAgICAgIC8vICAgaWNvbjogXCJzdWNjZXNzXCIsXG4gICAgICAvLyAgIHRpdGxlOiBcIkh1cnJheVwiLFxuICAgICAgLy8gICB0ZXh0OiBcIllvdXIgYWNjb3VudCBzdWNjZXNzZnVsbHkgY3JlYXRlZFwiLFxuICAgICAgLy8gICBzaG93Q2FuY2VsQnV0dG9uOiAhKHVzZXJEZXRhaWxzLmNvbnRhY3Q/Lm5hbWU/Lmxlbmd0aCA+IDApLFxuICAgICAgLy8gICBjb25maXJtQnV0dG9uVGV4dDogXCJJIGxvdmVkIGl0XCIsXG4gICAgICAvLyAgIGNhbmNlbEJ1dHRvblRleHQ6IFwiRmlsbCBvdGhlciBiYXNpYyBkZXRhaWxzXCIsXG4gICAgICAvLyAgIGNhbmNlbEJ1dHRvbkNvbG9yOiBcIiM5MjhjOGNcIixcbiAgICAgIC8vIH0pLnRoZW4oKHJlc3VsdCkgPT4ge1xuXG4gICAgICAvLyAgIGlmIChyZXN1bHQuaXNEaXNtaXNzZWQpIHtcbiAgICAgIC8vICAgICB0aGlzLm1hdERpYWxvZy5vcGVuKFVzZXJCYXNpY0luZm9Db21wb25lbnQsIHtcbiAgICAgIC8vICAgICAgIGhlaWdodDogJzUwdmgnLFxuICAgICAgLy8gICAgICAgd2lkdGg6IHdpbmRvdy5pbm5lcldpZHRoID4gNDc1ID8gJzQwdncnIDogJzk1dncnLFxuICAgICAgLy8gICAgICAgbWF4V2lkdGg6IHdpbmRvdy5pbm5lcldpZHRoID4gNDc1ID8gJzEwMHZ3JyA6ICc4MHZ3JyxcbiAgICAgIC8vICAgICAgIGRhdGE6IHt9XG4gICAgICAvLyAgICAgfSk7XG4gICAgICAvLyAgIH1cbiAgICAgIC8vIH0pXG4gICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDUwMCkge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnU2lnbnVwIGVycm9yJywgZGV0YWlsOiBlcnJvcj8uZXJyb3I/Lm1lc3NhZ2UgfSlcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnU2lnbnVwIGVycm9yJywgZGV0YWlsOiBlcnJvcj8uZXJyb3I/Lm1lc3NhZ2UgfSk7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuICB2ZXJpZnlTaWdudXBPVFAoKSB7XG5cbiAgICBpZiAodGhpcy5vdHAubGVuZ3RoICE9IDYpXG4gICAgICByZXR1cm47XG5cbiAgICBjb25zdCBkZXZpY2VJbmZvOiBEZXZpY2VJbmZvIHwgbnVsbCA9IHtcbiAgICAgIGZpcmViYXNlVG9rZW46IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiZmJUb2tlblwiKSA/PyBcIlwiXG4gICAgfTtcblxuICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IHRydWU7XG4gICAgbGV0IHZlcmlmeVNpZ25EYXRhID0ge1xuICAgICAgYnVzaW5lc3NJZDogdGhpcy5idXNpbmVzc0lkLFxuICAgICAgbW9iaWxlOiB0aGlzLm1vYmlsZSxcbiAgICAgIGVtYWlsOiB0aGlzLmVtYWlsLFxuICAgICAgcGFzc3dvcmQ6IHRoaXMucGFzc3dvcmQsXG4gICAgICBjb3VudHJ5Q29kZTogXCI5MVwiLFxuICAgICAgZW50ZXJlZE90cDogdGhpcy5vdHBcbiAgICB9XG4gICAgdGhpcy5yZXN0U2VydmljZS52ZXJpZnlTaWdudXBPVFAodmVyaWZ5U2lnbkRhdGEpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdPVFAnLCBkZXRhaWw6ICdPVFAgVmVyaWZpZWQnIH0pO1xuICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgdGhpcy5idXR0b25Mb2FkaW5nID0gZmFsc2U7XG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA1MDApIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ1VzZXIgYWxyZWFkeSBleGlzdHMnIH0pXG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0ludmFsaWQgT1RQJywgZGV0YWlsOiAnUGxlYXNlIGVudGVyIHZhbGlkIG90cCcgfSk7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuICBlbnRlck1vYmlsZSgpIHtcblxuICAgIGlmICh0aGlzLm1vYmlsZVRpbWVyKVxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMubW9iaWxlVGltZXIpO1xuICAgIHRoaXMubW9iaWxlVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLm1vYmlsZS5sZW5ndGggIT0gMTApXG4gICAgICAgIHJldHVybjtcbiAgICAgIHRoaXMuZ2VuZXJhdGVPVFAoKTtcbiAgICB9LCA1MDApO1xuICB9XG5cbiAgZ2VuZXJhdGVPVFAoKSB7XG4gICAgdGhpcy5idXR0b25Mb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmdlbmVyYXRlT1RQKHRoaXMubW9iaWxlID8/IFwiXCIsIFwiOTFcIikuc3Vic2NyaWJlKFxuICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgc2V2ZXJpdHk6ICdzdWNjZXNzJyxcbiAgICAgICAgICBzdW1tYXJ5OiAnT1RQIFNlbnQnLFxuICAgICAgICAgIGRldGFpbDogJ09UUCBzZW50IHRvIG1vYmlsZS4gVmFsaWQgZm9yIDMgbWlucycsXG4gICAgICAgICAgbGlmZTogMTAwMDBcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnJvcj8uZXJyb3I/Lm1lc3NhZ2U7XG5cbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgIHN1bW1hcnk6ICdPVFAgUmVxdWVzdCcsXG4gICAgICAgICAgZGV0YWlsOiBlcnJvck1lc3NhZ2UsXG4gICAgICAgICAgbGlmZTogMTAwMDBcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHZhbGlkYXRlTnVtYmVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY2hhckNvZGUgPSBldmVudC5jaGFyQ29kZTtcbiAgICBpZiAoY2hhckNvZGUgPCA0OCB8fCBjaGFyQ29kZSA+IDU3KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlT1RQKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMub3RwLmxlbmd0aCA9PSA2KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuICBjaGVja1N0cmVuZ3RoKCkge1xuICAgIHRoaXMucGFzc3dvcmRTdHJlbmd0aENvdW50ID0gMDtcbiAgICB0aGlzLnBhc3N3b3JkU3RyZW5ndGhDb3VudCArPSAoL1tBLVpdLy50ZXN0KHRoaXMucGFzc3dvcmQpKSA/IDEgOiAwO1xuICAgIHRoaXMucGFzc3dvcmRTdHJlbmd0aENvdW50ICs9ICgvW2Etel0vLnRlc3QodGhpcy5wYXNzd29yZCkpID8gMSA6IDA7XG4gICAgdGhpcy5wYXNzd29yZFN0cmVuZ3RoQ291bnQgKz0gKC9cXGQvLnRlc3QodGhpcy5wYXNzd29yZCkpID8gMSA6IDA7XG4gICAgdGhpcy5wYXNzd29yZFN0cmVuZ3RoQ291bnQgKz0gKHRoaXMucGFzc3dvcmQubGVuZ3RoID4gOCA/IDEgOiAwKTtcbiAgfVxuICBnZXRTdHJlbmd0aENvbG9yKGluZGV4OiBudW1iZXIpIHtcbiAgICBzd2l0Y2ggKHRoaXMucGFzc3dvcmRTdHJlbmd0aENvdW50KSB7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIHJldHVybiAoaW5kZXggPCB0aGlzLnBhc3N3b3JkU3RyZW5ndGhDb3VudCA/IFwidG9tYXRvXCIgOiBcIiNkM2QzZDNiYVwiKTtcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgcmV0dXJuIChpbmRleCA8IHRoaXMucGFzc3dvcmRTdHJlbmd0aENvdW50ID8gXCJvcmFuZ2VcIiA6IFwiI2QzZDNkM2JhXCIpO1xuICAgICAgY2FzZSAzOlxuICAgICAgICByZXR1cm4gKGluZGV4IDwgdGhpcy5wYXNzd29yZFN0cmVuZ3RoQ291bnQgPyBcInllbGxvd1wiIDogXCIjZDNkM2QzYmFcIik7XG4gICAgICBjYXNlIDQ6XG4gICAgICAgIHJldHVybiAoaW5kZXggPCB0aGlzLnBhc3N3b3JkU3RyZW5ndGhDb3VudCA/IFwibGlnaHRncmVlblwiIDogXCIjZDNkM2QzYmFcIik7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gXCIjZDNkM2QzYmFcIjtcbiAgICB9XG4gIH1cbiAgZW1haWxEZWJvdW5jZVRpbWVyOiBhbnk7XG4gIG9uRW1haWxDaGFuZ2UoKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuZW1haWxEZWJvdW5jZVRpbWVyKTtcbiAgICB0aGlzLmVtYWlsRGVib3VuY2VUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pc0VtYWlsVmFsaWQoKTtcbiAgICB9LCAyMDApO1xuICB9XG4gIGVtYWlsQ2hlY2s6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNFbWFpbFZhbGlkKCkge1xuICAgIGNvbnN0IGVtYWlsUmVnZXggPSAvXlthLXpBLVowLTkuXyUrLV0rQFthLXpBLVowLTkuLV0rXFwuW2EtekEtWl17Mix9JC87XG4gICAgdGhpcy5lbWFpbENoZWNrID0gIWVtYWlsUmVnZXgudGVzdCh0aGlzLmVtYWlsKTtcbiAgICByZXR1cm4gZW1haWxSZWdleC50ZXN0KHRoaXMuZW1haWwpO1xuICB9XG4gIHBhc3N3b3JkRGVib3VuY2VUaW1lcjogYW55O1xuICBvblBhc3N3b3JkQ2hhbmdlKCkge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnBhc3N3b3JkRGVib3VuY2VUaW1lcik7XG4gICAgdGhpcy5wYXNzd29yZERlYm91bmNlVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaXNQYXNzd29yZFZhbGlkKCk7XG4gICAgfSwgMjAwKTtcbiAgfVxuICBwYXNzd29yZENoZWNrOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUGFzc3dvcmRWYWxpZCgpIHtcbiAgICBjb25zdCBwYXNzd29yZFJlZ2V4ID0gL14oPz0uKlthLXpdKSg/PS4qW0EtWl0pKD89LipcXGQpKD89LipbQCQhJSo/Jl0pW0EtWmEtelxcZEAkISUqPyZdezgsfSQvO1xuICAgIHRoaXMucGFzc3dvcmRDaGVjayA9ICFwYXNzd29yZFJlZ2V4LnRlc3QodGhpcy5wYXNzd29yZCk7XG4gICAgcmV0dXJuIHBhc3N3b3JkUmVnZXgudGVzdCh0aGlzLnBhc3N3b3JkKTtcbiAgfVxuXG4gIG1vYmlsZURlYm91bmNlVGltZXI6IGFueTtcbiAgb25Nb2JpbGVDaGFuZ2UoKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMubW9iaWxlRGVib3VuY2VUaW1lcik7XG4gICAgdGhpcy5tb2JpbGVEZWJvdW5jZVRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm1vYmlsZU51bWJlclZhbGlkKCk7XG4gICAgfSwgMjAwKTtcbiAgfVxuICBtb2JpbGVDaGVjazogYm9vbGVhbiA9IGZhbHNlO1xuICBtb2JpbGVOdW1iZXJWYWxpZCgpIHtcbiAgICBjb25zdCBtb2JpbGVSZWdleCA9IC9eWzYtOV1cXGR7OX0kLztcbiAgICB0aGlzLm1vYmlsZUNoZWNrID0gIW1vYmlsZVJlZ2V4LnRlc3QodGhpcy5tb2JpbGUpO1xuICAgIHJldHVybiBtb2JpbGVSZWdleC50ZXN0KHRoaXMubW9iaWxlKTtcbiAgfVxuXG4gIGdldCBpc01vYmlsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPD0gNDc1O1xuICB9XG5cbiAgZ2V0IHN0eWxlc0xheW91dCgpIHtcbiAgICByZXR1cm4geyAuLi50aGlzLnN0eWxlcz8ubGF5b3V0IH0gYXMgTGF5T3V0TW9kZWw7XG4gIH1cblxuICBnZXQgYWNjZW50Q29sb3IoKSB7XG4gICAgY29uc3QgY29sb3IgPSB0aGlzLnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3IgPyB0aGlzLnN0eWxlcy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvciA6ICcjNjY3ZWVhJztcbiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tYWNjZW50LWNvbG9yJywgY29sb3IpO1xuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1hY2NlbnQtc2hhZG93JywgdGhpcy5oZXhUb1JnYmEoY29sb3IsIDAuNCkpO1xuICAgIHJldHVybiBjb2xvcjtcbiAgfVxuICBwcml2YXRlIGhleFRvUmdiYShoZXg6IHN0cmluZywgYWxwaGE6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgciA9IHBhcnNlSW50KGhleC5zbGljZSgxLCAzKSwgMTYpO1xuICAgIGNvbnN0IGcgPSBwYXJzZUludChoZXguc2xpY2UoMywgNSksIDE2KTtcbiAgICBjb25zdCBiID0gcGFyc2VJbnQoaGV4LnNsaWNlKDUsIDcpLCAxNik7XG4gICAgcmV0dXJuIGByZ2JhKCR7cn0sICR7Z30sICR7Yn0sICR7YWxwaGF9KWA7XG4gIH1cbiAgc2V0dXAzREVmZmVjdHMoKSB7XG4gICAgY29uc3QgbWFpblBhbmVsID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLm1haW4tcGFuZWwnKTtcblxuICAgIGlmIChtYWluUGFuZWwpIHtcbiAgICAgIG1haW5QYW5lbC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCAoZTogYW55KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzTW9iaWxlKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgcmVjdCA9IG1haW5QYW5lbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgeCA9IGUuY2xpZW50WCAtIHJlY3QubGVmdDtcbiAgICAgICAgY29uc3QgeSA9IGUuY2xpZW50WSAtIHJlY3QudG9wO1xuXG4gICAgICAgIGNvbnN0IGNlbnRlclggPSByZWN0LndpZHRoIC8gMjtcbiAgICAgICAgY29uc3QgY2VudGVyWSA9IHJlY3QuaGVpZ2h0IC8gMjtcblxuICAgICAgICBjb25zdCByb3RhdGVYID0gKHkgLSBjZW50ZXJZKSAvIDIwO1xuICAgICAgICBjb25zdCByb3RhdGVZID0gKGNlbnRlclggLSB4KSAvIDIwO1xuXG4gICAgICAgIChtYWluUGFuZWwgYXMgSFRNTEVsZW1lbnQpLnN0eWxlLnRyYW5zZm9ybSA9IGBwZXJzcGVjdGl2ZSgxMjAwcHgpIHJvdGF0ZVgoJHtyb3RhdGVYfWRlZykgcm90YXRlWSgke3JvdGF0ZVl9ZGVnKSB0cmFuc2xhdGVaKDApYDtcbiAgICAgIH0pO1xuXG4gICAgICBtYWluUGFuZWwuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsICgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgICAgKG1haW5QYW5lbCBhcyBIVE1MRWxlbWVudCkuc3R5bGUudHJhbnNmb3JtID0gJ3JvdGF0ZVgoMGRlZykgcm90YXRlWSgwZGVnKSc7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBzaG93UGFzc3dvcmQ6IGJvb2xlYW4gPSBmYWxzZTtcblxufSIsIjxwLXRvYXN0IHBvc2l0aW9uPVwiYm90dG9tLXJpZ2h0XCIgW2Jhc2VaSW5kZXhdPVwiMTAwMDAwMDAwMDBcIiBbYXV0b1pJbmRleF09XCJ0cnVlXCJcbiAgW3Nob3dUcmFuc2Zvcm1PcHRpb25zXT1cImlzTW9iaWxlID8gJ3RyYW5zbGF0ZVkoLTEwMCUpJyA6ICcnXCI+PC9wLXRvYXN0PlxuXG48c2VjdGlvbiBbaWRdPVwiZGF0YT8uaWRcIiBjbGFzcz1cInRvdGFsLWNvbnRhaW5lclwiIHNpbXBvSG92ZXIgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCI+XG4gIDxkaXYgW3NwYWNpbmdBcm91bmRdPVwic3R5bGVzTGF5b3V0XCI+XG4gICAgPGRpdiBbc2ltcG9CYWNrZ3JvdW5kXT1cInN0eWxlcz8uYmFja2dyb3VuZFwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0xheW91dF09XCJzdHlsZXM/LmxheW91dFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImFyZWEgdy0xMDBcIj5cbiAgICAgICAgPHVsIGNsYXNzPVwiY2lyY2xlc1wiPlxuICAgICAgICAgIDxsaT48L2xpPlxuICAgICAgICAgIDxsaT48L2xpPlxuICAgICAgICAgIDxsaT48L2xpPlxuICAgICAgICAgIDxsaT48L2xpPlxuICAgICAgICAgIDxsaT48L2xpPlxuICAgICAgICAgIDxsaT48L2xpPlxuICAgICAgICAgIDxsaT48L2xpPlxuICAgICAgICAgIDxsaT48L2xpPlxuICAgICAgICAgIDxsaT48L2xpPlxuICAgICAgICAgIDxsaT48L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IFtzaW1wb092ZXJsYXldPVwic3R5bGVzPy5iYWNrZ3JvdW5kXCIgW2lkXT1cImRhdGE/LmlkXCIgY2xhc3M9XCJtYWluLXBhbmVsIGQtZmxleCBnYXAtMlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicGFuZWwgdy0xMDBcIiBbc2ltcG9Db3JuZXJdPVwic3R5bGVzPy5jb3JuZXJzXCIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvQW5pbWF0aW9uXT1cInN0eWxlcz8uYW5pbWF0aW9uXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1cnJlbnRQYWdlID09PSAnTE9HSU4nID8gbG9naW5UZW1wbGF0ZSA6IG51bGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VycmVudFBhZ2UgPT09ICdTSUdOVVAnID8gc2lnbkluVGVtcGxhdGUgOiBudWxsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cbiAgICA8c2ltcG8taG92ZXItZWxlbWVudHMgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiIFtlZGl0T3B0aW9uc109XCJlZGl0XCI+PC9zaW1wby1ob3Zlci1lbGVtZW50cz5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XG4gICAgPHNpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50IFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIj48L3NpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50PlxuICA8L2Rpdj5cblxuPC9zZWN0aW9uPlxuXG48bmctdGVtcGxhdGUgI2xvZ2luVGVtcGxhdGU+XG4gIDxkaXY+XG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWJveFwiPlxuICAgICAgPGxhYmVsIGZvcj1cIlwiPkVtYWlsPC9sYWJlbD5cbiAgICAgIDxpbnB1dCB0eXBlPVwiZW1haWxcIiBbKG5nTW9kZWwpXT1cImVtYWlsXCIgcmVxdWlyZWQ9XCJcIiBwbGFjZWhvbGRlcj1cImphbmVkb2VAZ21haWwuY29tXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25FbWFpbENoYW5nZSgpXCIgW3N0eWxlLmJvcmRlckNvbG9yXT1cIiFlbWFpbENoZWNrID8gJycgOiAncmVkJ1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJmLTEyXCIgKm5nSWY9XCJlbWFpbENoZWNrXCIgW3N0eWxlLmNvbG9yXT1cIidyZWQnXCI+UGxlYXNlIEVudGVyIHZhbGlkIE1vYmlsZSBudW1iZXIqPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ib3hcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwiXCI+UGFzc3dvcmQ8L2xhYmVsPlxuICAgICAgICA8aW5wdXQgW3R5cGVdPVwic2hvd1Bhc3N3b3JkID8gJ3RleHQnIDogJ3Bhc3N3b3JkJ1wiIHJlcXVpcmVkPVwiXCIgWyhuZ01vZGVsKV09XCJwYXNzd29yZFwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25QYXNzd29yZENoYW5nZSgpXCIgY2xhc3M9XCJ3LTkwXCIgcGxhY2Vob2xkZXI9XCJKYW5lZG9lQDEyMzRcIlxuICAgICAgICAgIFtzdHlsZS5ib3JkZXJDb2xvcl09XCIhcGFzc3dvcmRDaGVjayA/ICcnIDogJ3JlZCdcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJleWVcIiAoY2xpY2spPVwic2hvd1Bhc3N3b3JkID0gIXNob3dQYXNzd29yZFwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmFcIiBbbmdDbGFzc109XCJzaG93UGFzc3dvcmQgPyAnZmEtZXllLXNsYXNoJyA6ICdmYS1leWUnXCI+PC9pPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzcGFuICpuZ0lmPVwicGFzc3dvcmRDaGVja1wiIGNsYXNzPVwiZi0xMlwiIFtzdHlsZS5jb2xvcl09XCIncmVkJ1wiPllvdXIgcGFzc3dvcmQgbXVzdCBjb250YWluIDEgVXBwZXJjYXNlICwgMVxuICAgICAgICBMb3dlcmNhc2UgLCAxIFNwZWNpYWxcbiAgICAgICAgQ2hhcmFjdGVyICwgMSBEaWdpdCBhbmQgTWluaW11bSA4IENoYXJhY3RlcnMqPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gPGRpdiBjbGFzcz1cImZvcmdvdC1wd2RcIiBbc3R5bGUuY29sb3JdPVwiYWNjZW50Q29sb3JcIj5Gb3Jnb3QgUGFzc3dvcmQ/PC9kaXY+IC0tPlxuICAgIDwhLS0gPGJ1dHRvbiBjbGFzcz1cImJ1dHRvblwiICpuZ0lmPVwiIWJ1dHRvbkxvYWRpbmdcIiBzaW1wb0J1dHRvbkRpcmVjdGl2ZSBbaWRdPVwiYnV0dG9uSWRcIiBbYnV0dG9uU3R5bGVdPVwiYnV0dG9uPy5zdHlsZXNcIlxuICAgICAgW2JhY2tncm91bmRJbmZvXT1cInN0eWxlcz8uYmFja2dyb3VuZFwiIFtzaW1wb0Nvcm5lcl09XCJzdHlsZXM/LmNvcm5lcnNcIiBbY29sb3JdPVwic3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiXG4gICAgICAoY2xpY2spPVwibG9naW4oKVwiPkxvZ2luPC9idXR0b24+IC0tPlxuICAgICAgIDxidXR0b24gY2xhc3M9XCJzZW5kLWJ0biBwLTJcIiAqbmdJZj1cIiFidXR0b25Mb2FkaW5nXCIgW2J1dHRvbkRhdGFdPVwiYnV0dG9uPy5jb250ZW50XCIgW2J1dHRvblN0eWxlXT1cImJ1dHRvbj8uc3R5bGVzXCJcbiAgICAgIHNpbXBvQnV0dG9uRGlyZWN0aXZlIFtpZF09XCJkYXRhPy5pZCsoYnV0dG9uPy5pZCB8fCAnJylcIiAgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiIFtjb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCJcbiAgICAgIFtiYWNrZ3JvdW5kSW5mb109XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmRcIiBbYXBwQnV0dG9uRWRpdG9yXT1cImVkaXQgPz8gZmFsc2VcIiBbYnV0dG9uSWRdPVwiYnV0dG9uPy5pZCA/PyAnJ1wiIChjbGljayk9XCJsb2dpbigpXCI+e3tidXR0b24/LmNvbnRlbnQ/LmxhYmVsfX08L2J1dHRvbj5cbiAgICA8IS0tIDxidXR0b24gY2xhc3M9XCJidXR0b25cIiAqbmdJZj1cImJ1dHRvbkxvYWRpbmdcIiBzaW1wb0J1dHRvbkRpcmVjdGl2ZSBbaWRdPVwiYnV0dG9uSWRcIiBbYnV0dG9uU3R5bGVdPVwiYnV0dG9uPy5zdHlsZXNcIlxuICAgICAgW2JhY2tncm91bmRJbmZvXT1cInN0eWxlcz8uYmFja2dyb3VuZFwiIFtzaW1wb0Nvcm5lcl09XCJzdHlsZXM/LmNvcm5lcnNcIlxuICAgICAgW2NvbG9yXT1cInN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5Mb2FkaW5nLi4uPC9idXR0b24+IC0tPlxuICAgICAgIDxidXR0b24gY2xhc3M9XCJzZW5kLWJ0biBwLTJcIiAqbmdJZj1cImJ1dHRvbkxvYWRpbmdcIiBbYnV0dG9uRGF0YV09XCJidXR0b24/LmNvbnRlbnRcIiBbYnV0dG9uU3R5bGVdPVwiYnV0dG9uPy5zdHlsZXNcIlxuICAgICAgc2ltcG9CdXR0b25EaXJlY3RpdmUgW2lkXT1cImRhdGE/LmlkKyhidXR0b24/LmlkIHx8ICcnKVwiICBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCIgW2NvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIlxuICAgICAgW2JhY2tncm91bmRJbmZvXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZFwiIFthcHBCdXR0b25FZGl0b3JdPVwiZWRpdCA/PyBmYWxzZVwiIFtidXR0b25JZF09XCJidXR0b24/LmlkID8/ICcnXCIgKGNsaWNrKT1cImxvZ2luKClcIj5Mb2FkaW5nLi4uPC9idXR0b24+XG5cblxuICAgIDxkaXYgY2xhc3M9XCJzaWduLXVwXCIgKm5nSWY9XCJzaWduVXBFbmFibGVkXCI+RG9uJ3QgaGF2ZSBhbiBhY2NvdW50PyA8c3BhbiBbc3R5bGUuY29sb3JdPVwiYWNjZW50Q29sb3JcIlxuICAgICAgICAoY2xpY2spPVwiY3VycmVudFBhZ2UgPSAnU0lHTlVQJ1wiPlNpZ25cbiAgICAgICAgVXA8L3NwYW4+PC9kaXY+XG5cbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtdC0yMFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm9yLWRpdmlkZXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJvci10ZXh0XCI+b3I8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzaWduLXVwXCI+TG9naW4gd2l0aCA8c3BhbiBbc3R5bGUuY29sb3JdPVwiYWNjZW50Q29sb3JcIj5PVFA8L3NwYW4+PC9kaXY+XG4gICAgPC9kaXY+IC0tPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2lnbkluVGVtcGxhdGU+XG4gIDxkaXY+XG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWJveFwiPlxuICAgICAgPGxhYmVsIGZvcj1cIlwiPk5hbWU8L2xhYmVsPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJ1c2VyTmFtZVwiIHBsYWNlaG9sZGVyPVwiSmFuZSBEb2VcIj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtYm94XCI+XG4gICAgICA8bGFiZWwgZm9yPVwiXCI+RW1haWw8L2xhYmVsPlxuICAgICAgPGlucHV0IHR5cGU9XCJlbWFpbFwiIFsobmdNb2RlbCldPVwiZW1haWxcIiBwbGFjZWhvbGRlcj1cImphbmVkb2VAZ21haWwuY29tXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25FbWFpbENoYW5nZSgpXCJcbiAgICAgICAgW3N0eWxlLmJvcmRlckNvbG9yXT1cIiFlbWFpbENoZWNrID8gJycgOiAncmVkJ1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJmLTEyXCIgKm5nSWY9XCJlbWFpbENoZWNrXCIgW3N0eWxlLmNvbG9yXT1cIidyZWQnXCI+UGxlYXNlIEVudGVyIHZhbGlkIGVtYWlsKjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtYm94XCI+XG4gICAgICA8bGFiZWwgZm9yPVwiXCI+UGhvbmUgTnVtYmVyPC9sYWJlbD5cbiAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgWyhuZ01vZGVsKV09XCJtb2JpbGVcIiAobmdNb2RlbENoYW5nZSk9XCJvbk1vYmlsZUNoYW5nZSgpXCIgcGxhY2Vob2xkZXI9XCI5ODc2NTQzMjE5XCJcbiAgICAgICAgW3N0eWxlLmJvcmRlckNvbG9yXT1cIiFtb2JpbGVDaGVjayA/ICcnIDogJ3JlZCdcIiBjbGFzcz1cIm5vLWFycm93c1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJmLTEyXCIgKm5nSWY9XCJtb2JpbGVDaGVja1wiIFtzdHlsZS5jb2xvcl09XCIncmVkJ1wiPlBsZWFzZSBFbnRlciB2YWxpZCBNb2JpbGUgbnVtYmVyKjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiIGlucHV0LWJveCBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxuICAgICAgPGxhYmVsIGZvcj1cIlwiPlBhc3N3b3JkPC9sYWJlbD5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICA8aW5wdXQgW3R5cGVdPVwic2hvd1Bhc3N3b3JkID8gJ3RleHQnIDogJ3Bhc3N3b3JkJ1wiIHJlcXVpcmVkPVwiXCIgWyhuZ01vZGVsKV09XCJwYXNzd29yZFwiIGNsYXNzPVwidy05MFwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJKYW5lZG9lQDEyMzRcIiBbc3R5bGUuYm9yZGVyQ29sb3JdPVwiIXBhc3N3b3JkQ2hlY2sgPyAnJyA6ICdyZWQnXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblBhc3N3b3JkQ2hhbmdlKClcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJleWVcIiAoY2xpY2spPVwic2hvd1Bhc3N3b3JkID0gIXNob3dQYXNzd29yZFwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmFcIiBbbmdDbGFzc109XCJzaG93UGFzc3dvcmQgPyAnZmEtZXllLXNsYXNoJyA6ICdmYS1leWUnXCI+PC9pPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzcGFuICpuZ0lmPVwicGFzc3dvcmRDaGVja1wiIGNsYXNzPVwiZi0xMlwiIFtzdHlsZS5jb2xvcl09XCIncmVkJ1wiPllvdXIgcGFzc3dvcmQgbXVzdCBjb250YWluIDEgVXBwZXJjYXNlICwgMVxuICAgICAgICBMb3dlcmNhc2UgLCAxIFNwZWNpYWxcbiAgICAgICAgQ2hhcmFjdGVyICwgMSBEaWdpdCBhbmQgTWluaW11bSA4IENoYXJhY3RlcnMqPC9zcGFuPlxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwic3RyZW5ndGgtYmFyLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBzdHJlbmd0aCBvZiBwYXNzd29yZFN0cmVuZ3RoOyBsZXQgaWR4ID0gaW5kZXhcIiBjbGFzcz1cInN0cmVuZ3RoLWJhclwiXG4gICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJnZXRTdHJlbmd0aENvbG9yKGlkeClcIj48L2Rpdj5cbiAgICAgIDwvZGl2PiAtLT5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uXCIgKm5nSWY9XCIhYnV0dG9uTG9hZGluZ1wiIHNpbXBvQnV0dG9uRGlyZWN0aXZlIFtpZF09XCJidXR0b25JZFwiIFtidXR0b25TdHlsZV09XCJidXR0b24/LnN0eWxlc1wiXG4gICAgICBbYmFja2dyb3VuZEluZm9dPVwic3R5bGVzPy5iYWNrZ3JvdW5kXCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlcz8uY29ybmVyc1wiIFtjb2xvcl09XCJzdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCJcbiAgICAgIChjbGljayk9XCJjcmVhdGVBY2NvdW50KClcIiBbZGlzYWJsZWRdPVwiIWlzRW1haWxWYWxpZCB8fCAhaXNQYXNzd29yZFZhbGlkIHx8ICF1c2VyTmFtZVwiPkNyZWF0ZSBBY2NvdW50PC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvblwiIHNpbXBvQnV0dG9uRGlyZWN0aXZlIFtpZF09XCJidXR0b25JZFwiIFtidXR0b25TdHlsZV09XCJidXR0b24/LnN0eWxlc1wiXG4gICAgICBbYmFja2dyb3VuZEluZm9dPVwic3R5bGVzPy5iYWNrZ3JvdW5kXCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlcz8uY29ybmVyc1wiIFtjb2xvcl09XCJzdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCJcbiAgICAgICpuZ0lmPVwiYnV0dG9uTG9hZGluZ1wiPkxvYWRpbmcuLi48L2J1dHRvbj5cblxuXG4gICAgPGRpdiBjbGFzcz1cInNpZ24tdXBcIj5BbHJlYWR5IGhhdmUgYW4gYWNjb3VudD8gPHNwYW4gW3N0eWxlLmNvbG9yXT1cImFjY2VudENvbG9yXCJcbiAgICAgICAgKGNsaWNrKT1cImN1cnJlbnRQYWdlID0gJ0xPR0lOJ1wiPkxvZ2luPC9zcGFuPjwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+Il19
|
426
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24tcmVxdWlyZWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvYXV0aGVudGljYXRpb24tcmVxdWlyZWQvYXV0aGVudGljYXRpb24tcmVxdWlyZWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvYXV0aGVudGljYXRpb24tcmVxdWlyZWQvYXV0aGVudGljYXRpb24tcmVxdWlyZWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUl2RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUU5RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3JGLE9BQU8sV0FBVyxNQUFNLCtCQUErQixDQUFDO0FBRXhELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBMkJwRixNQUFNLE9BQU8sK0JBQWdDLFNBQVEsV0FBVztJQThCOUQsWUFDbUIsV0FBd0IsRUFDeEIsTUFBYyxFQUNkLGNBQThCLEVBQzlCLGNBQXFDLEVBQ3JDLFNBQW9CLEVBQ3BCLGNBQThCLEVBQ3ZDLFVBQXNCLEVBRUQsU0FBd0QsRUFDeEQsY0FBa0U7UUFFL0YsS0FBSyxFQUFFLENBQUM7UUFYUyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUN2QyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBRUQsY0FBUyxHQUFULFNBQVMsQ0FBK0M7UUFDeEQsbUJBQWMsR0FBZCxjQUFjLENBQW9EO1FBaENqRyxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBRXRCLGdCQUFXLEdBQXVCLE9BQU8sQ0FBQztRQUVuQyxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLFdBQU0sR0FBVyxFQUFFLENBQUM7UUFDcEIsUUFBRyxHQUFXLEVBQUUsQ0FBQztRQUNqQixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0IsZUFBVSxHQUFrQixZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hELGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLG1CQUFjLEdBQVksSUFBSSxDQUFDO1FBQy9CLDBCQUFxQixHQUFXLENBQUMsQ0FBQztRQUNsQyxxQkFBZ0IsR0FBRztZQUN4QixFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBQzlDLEVBQUUsSUFBSSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFDaEQsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUNoRCxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1NBQzlDLENBQUE7UUFpQkQsa0JBQWEsR0FBUSxJQUFJLENBQUM7UUFFMUIsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBbUJuQyxjQUFTLEdBQXVCLFVBQVUsQ0FBQztRQTBRM0MsZUFBVSxHQUFZLEtBQUssQ0FBQztRQWE1QixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQWMvQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQXNEN0IsaUJBQVksR0FBWSxLQUFLLENBQUM7SUFsWDlCLENBQUM7SUFLRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDdkQsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQztnQkFDeEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7UUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV0RixJQUFJLE9BQU8sR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3BELElBQUksT0FBTyxJQUFJLElBQUk7WUFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLEtBQUssTUFBTSxDQUFDO0lBRTVDLENBQUM7SUFDRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFJRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsS0FBSztRQUNILElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjO1FBRVosSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsb0NBQW9DLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZILE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSwrQkFBK0IsRUFBRSxDQUFDLENBQUM7WUFDckgsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRztZQUNkLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ3hCLENBQUE7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNuRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUMzQixtQ0FBbUM7WUFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLHdCQUF3QixFQUFFLENBQUMsQ0FBQztZQUN6RyxJQUFJLElBQUksQ0FBQyxpQkFBaUI7Z0JBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDOztnQkFFckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9CLENBQUMsRUFDQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1IsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMxRyxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFDRCxTQUFTO1FBRVAsTUFBTSxVQUFVLEdBQXNCO1lBQ3BDLGFBQWEsRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7U0FDckQsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDOUYsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEMsQ0FBQyxFQUNDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDUixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzFHLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUNELGFBQWE7UUFDWCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLElBQUksQ0FBQyxXQUFXO1lBQ2xCLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2pDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksRUFBRTtnQkFDMUIsT0FBTztZQUNULE1BQU0sT0FBTyxHQUFRO2dCQUNuQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQzNCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDbkIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLFdBQVcsRUFBRSxJQUFJO2FBQ2xCLENBQUE7WUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDN0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO2dCQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUN2RixDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2dCQUNsRyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFDRCxhQUFhO1FBRVgsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsb0NBQW9DLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZILE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSwrQkFBK0IsRUFBRSxDQUFDLENBQUM7WUFDckgsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsb0NBQW9DLEVBQUUsQ0FBQyxDQUFDO1lBQy9ILE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQXNCO1lBQ3BDLGFBQWEsRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7U0FDckQsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksY0FBYyxHQUFHO1lBQ25CLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUTtZQUNuQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsWUFBWSxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBQzNDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLFVBQVUsRUFBRSxJQUFJLENBQUMsR0FBRztTQUNyQixDQUFBO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDM0UsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDcEMsbUNBQW1DO1lBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxtQ0FBbUMsRUFBRSxDQUFDLENBQUM7WUFDbEgsSUFBSSxJQUFJLENBQUMsaUJBQWlCO2dCQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQzs7Z0JBRXJFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFNLGNBQWM7WUFDakQscUJBQXFCO1lBQ3JCLHFCQUFxQjtZQUNyQiwrQ0FBK0M7WUFDL0MsZ0VBQWdFO1lBQ2hFLHFDQUFxQztZQUNyQyxrREFBa0Q7WUFDbEQsa0NBQWtDO1lBQ2xDLHdCQUF3QjtZQUV4Qiw4QkFBOEI7WUFDOUIsb0RBQW9EO1lBQ3BELHdCQUF3QjtZQUN4QiwwREFBMEQ7WUFDMUQsOERBQThEO1lBQzlELGlCQUFpQjtZQUNqQixVQUFVO1lBQ1YsTUFBTTtZQUNOLEtBQUs7UUFDUCxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNYLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQzNCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQTtZQUN4RyxDQUFDO2lCQUNJLENBQUM7Z0JBQ0osSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN6RyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBQ0QsZUFBZTtRQUViLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQztZQUN0QixPQUFPO1FBRVQsTUFBTSxVQUFVLEdBQXNCO1lBQ3BDLGFBQWEsRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7U0FDckQsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksY0FBYyxHQUFHO1lBQ25CLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixXQUFXLEVBQUUsSUFBSTtZQUNqQixVQUFVLEVBQUUsSUFBSSxDQUFDLEdBQUc7U0FDckIsQ0FBQTtRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBRTNFLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQzNGLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1gsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDM0IsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLENBQUMsQ0FBQTtZQUNoRixDQUFDO2lCQUNJLENBQUM7Z0JBQ0osSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLHdCQUF3QixFQUFFLENBQUMsQ0FBQztZQUMzRyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBQ0QsV0FBVztRQUVULElBQUksSUFBSSxDQUFDLFdBQVc7WUFDbEIsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDakMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFO2dCQUMxQixPQUFPO1lBQ1QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUM3RCxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ1gsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUM7Z0JBQ3RCLFFBQVEsRUFBRSxTQUFTO2dCQUNuQixPQUFPLEVBQUUsVUFBVTtnQkFDbkIsTUFBTSxFQUFFLHNDQUFzQztnQkFDOUMsSUFBSSxFQUFFLEtBQUs7YUFDWixDQUFDLENBQUM7UUFDTCxDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNSLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQzNCLE1BQU0sWUFBWSxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDO1lBRTNDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO2dCQUN0QixRQUFRLEVBQUUsT0FBTztnQkFDakIsT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLE1BQU0sRUFBRSxZQUFZO2dCQUNwQixJQUFJLEVBQUUsS0FBSzthQUNaLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFvQjtRQUNqQyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQ2hDLElBQUksUUFBUSxHQUFHLEVBQUUsSUFBSSxRQUFRLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDbkMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQW9CO1FBQzlCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDekIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBQ0QsYUFBYTtRQUNYLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLHFCQUFxQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLHFCQUFxQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLHFCQUFxQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLHFCQUFxQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxLQUFhO1FBQzVCLFFBQVEsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDbkMsS0FBSyxDQUFDO2dCQUNKLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3ZFLEtBQUssQ0FBQztnQkFDSixPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2RSxLQUFLLENBQUM7Z0JBQ0osT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdkUsS0FBSyxDQUFDO2dCQUNKLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNFO2dCQUNFLE9BQU8sV0FBVyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUNYLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUN4QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUVELFlBQVk7UUFDVixNQUFNLFVBQVUsR0FBRyxrREFBa0QsQ0FBQztRQUN0RSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsWUFBWSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQzNDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRUQsZUFBZTtRQUNiLE1BQU0sYUFBYSxHQUFHLHNFQUFzRSxDQUFDO1FBQzdGLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4RCxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFHRCxjQUFjO1FBQ1osWUFBWSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzNCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFRCxpQkFBaUI7UUFDZixNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sTUFBTSxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFpQixDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3JHLFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNwRSxRQUFRLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxRixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDTyxTQUFTLENBQUMsR0FBVyxFQUFFLEtBQWE7UUFDMUMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4QyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEMsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDO0lBQzVDLENBQUM7SUFDRCxjQUFjO1FBQ1osTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTdFLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxTQUFTLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBTSxFQUFFLEVBQUU7Z0JBQ2pELElBQUksSUFBSSxDQUFDLFFBQVE7b0JBQUUsT0FBTztnQkFFMUIsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLHFCQUFxQixFQUFFLENBQUM7Z0JBQy9DLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDaEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO2dCQUUvQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztnQkFDL0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7Z0JBRWhDLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDbkMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUVsQyxTQUF5QixDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsK0JBQStCLE9BQU8sZ0JBQWdCLE9BQU8sb0JBQW9CLENBQUM7WUFDakksQ0FBQyxDQUFDLENBQUM7WUFFSCxTQUFTLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtnQkFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDbEIsU0FBeUIsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLDZCQUE2QixDQUFDO2dCQUM3RSxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs4R0E1WlUsK0JBQStCO2tHQUEvQiwrQkFBK0Isc0pBSi9CLENBQUMsY0FBYyxDQUFDLGlEQ2xEN0IsdXlQQXVJYyw0dUhEdEdWLFlBQVksdVlBQ1osV0FBVyw2K0JBQ1gsV0FBVyx1V0FDWCxhQUFhLDhCQUNiLHdCQUF3Qiw4QkFDeEIsb0JBQW9CLHNXQUVwQixrQkFBa0IseUZBQ2xCLG1CQUFtQiwwR0FDbkIsd0JBQXdCLHNJQUN4QixtQkFBbUIsbUZBQ25CLGVBQWUsbUZBQ2YsY0FBYyxnRkFDZCxnQkFBZ0IscUZBQ2hCLHNCQUFzQix5R0FDdEIscUJBQXFCOzsyRkFNWiwrQkFBK0I7a0JBekIzQyxTQUFTOytCQUNFLCtCQUErQixjQUM3QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYix3QkFBd0I7d0JBQ3hCLG9CQUFvQjt3QkFFcEIsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLHdCQUF3Qjt3QkFDeEIsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixzQkFBc0I7d0JBQ3RCLHFCQUFxQjtxQkFDdEIsYUFDVSxDQUFDLGNBQWMsQ0FBQzs7MEJBMkN4QixRQUFROzswQkFDUixRQUFRO3lDQXRDRixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XHJcbmltcG9ydCB7IERldmljZUluZm8gfSBmcm9tICcuLi8uLi9zdHlsZXMvdXNlci5tb2RhbCc7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCBTd2FsIGZyb20gJ3N3ZWV0YWxlcnQyJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRCb3R0b21TaGVldFJlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JvdHRvbS1zaGVldCc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgVXNlckJhc2ljSW5mb0NvbXBvbmVudCB9IGZyb20gJy4uL3VzZXItYmFzaWMtaW5mby91c2VyLWJhc2ljLWluZm8uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uTW9kZWwsIEF1dGhlbnRpY2F0aW9uU3R5bGVzTW9kZWwgfSBmcm9tICcuL2F1dGhlbnRpY2F0aW9uLXJlcXVpcmVkLm1vZGVsJztcclxuaW1wb3J0IHsgU2ltcG9Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2luZGV4JztcclxuaW1wb3J0IHsgQW5pbWF0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2FuaW1hdGlvbi1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCYWNrZ3JvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2JhY2tncm91bmQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWZpdC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYnV0dG9uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb3JuZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvY29ybmVyLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2hvdmVyLWVsZW1lbnQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgT3ZlcmxheURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9vdmVybGF5LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNwYWNpbmdBcm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvc3BhY2luZy1hcm91bmQuZGlyZWN0aXZlJztcclxuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uLy4uLy4uL3NlY3Rpb25zL0Jhc2VTZWN0aW9uJztcclxuaW1wb3J0IHsgQnV0dG9uTW9kZWwsIExheU91dE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgQnV0dG9uRWRpdG9yRGlyZWN0aXZlIH0gZnJvbSAnQHNpbXBvLXVpL2RpcmVjdGl2ZS9idXR0b24tZWRpdG9yLmRpcmVjdGl2ZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLWF1dGhlbnRpY2F0aW9uLXJlcXVpcmVkJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgVG9hc3RNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxyXG4gICAgU2ltcG9Db21wb25lbnRNb2R1bGUsXHJcblxyXG4gICAgQW5pbWF0aW9uRGlyZWN0aXZlLFxyXG4gICAgQmFja2dyb3VuZERpcmVjdGl2ZSxcclxuICAgIEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIENvbnRlbnRGaXREaXJlY3RpdmUsXHJcbiAgICBDb3JuZXJEaXJlY3RpdmUsXHJcbiAgICBIb3ZlckRpcmVjdGl2ZSxcclxuICAgIE92ZXJsYXlEaXJlY3RpdmUsXHJcbiAgICBTcGFjaW5nQXJvdW5kRGlyZWN0aXZlLFxyXG4gICAgQnV0dG9uRWRpdG9yRGlyZWN0aXZlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtNZXNzYWdlU2VydmljZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dGhlbnRpY2F0aW9uLXJlcXVpcmVkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYXV0aGVudGljYXRpb24tcmVxdWlyZWQuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0aW9uUmVxdWlyZWRDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiB7XHJcbiAgLy8gcHJpdmF0ZSBlbWFpbFRpbWVyOiBOb2RlSlMuVGltZW91dCB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGRhdGE/OiBBdXRoZW50aWNhdGlvbk1vZGVsO1xyXG4gIEBJbnB1dCgpIGluZGV4PzogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGVkaXQ/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGRlbGV0ZT86IGJvb2xlYW47XHJcbiAgc3R5bGVzPzogQXV0aGVudGljYXRpb25TdHlsZXNNb2RlbDtcclxuICBidXR0b24/OiBCdXR0b25Nb2RlbFxyXG4gIGJ1dHRvbklkOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgY3VycmVudFBhZ2U6ICdMT0dJTicgfCAnU0lHTlVQJyA9ICdMT0dJTic7XHJcbiAgcHJpdmF0ZSBtb2JpbGVUaW1lcjogYW55O1xyXG4gIHB1YmxpYyBlbWFpbDogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgbW9iaWxlOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHB1YmxpYyBvdHA6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIHBhc3N3b3JkOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHB1YmxpYyBjb25mUGFzc3dvcmQ6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHB1YmxpYyBidXR0b25Mb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGJ1c2luZXNzSWQ6IHN0cmluZyB8IG51bGwgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImJJZFwiKTtcclxuICBwdWJsaWMgaXNPVFBWZXJpZmllZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBwYXNzd29yZEhpZGRlbjogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIHBhc3N3b3JkU3RyZW5ndGhDb3VudDogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgcGFzc3dvcmRTdHJlbmd0aCA9IFtcclxuICAgIHsgdHlwZTogXCJtaW5pbXVtIDggY2hhcmFjdGVyXCIsIGFjdGl2ZTogZmFsc2UgfSxcclxuICAgIHsgdHlwZTogXCJhdGxlYXN0IG9uZSBVUFBFUkNBU0VcIiwgYWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgeyB0eXBlOiBcImF0bGVhc3Qgb25lIGxvd2VyY2FzZVwiLCBhY3RpdmU6IGZhbHNlIH0sXHJcbiAgICB7IHR5cGU6IFwiYXRsZWFzdCBvbmUgbnVtYmVyXCIsIGFjdGl2ZTogZmFsc2UgfSxcclxuICBdXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1hdERpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcblxyXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxBdXRoZW50aWNhdGlvblJlcXVpcmVkQ29tcG9uZW50PixcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgYm90dG9tc2hlZXRSZWY6IE1hdEJvdHRvbVNoZWV0UmVmPEF1dGhlbnRpY2F0aW9uUmVxdWlyZWRDb21wb25lbnQ+LFxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIHNpZ25VcEVuYWJsZWQ6IGFueSA9IHRydWU7XHJcblxyXG4gIHByb2NlZWRUb0NoZWNrb3V0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocGFyYW06IGFueSkgPT4ge1xyXG4gICAgICBpZiAocGFyYW0gJiYgcGFyYW1bJ2NhcnQnXSlcclxuICAgICAgICB0aGlzLnByb2NlZWRUb0NoZWNrb3V0ID0gdHJ1ZTtcclxuICAgIH0pXHJcbiAgICB0aGlzLnN0eWxlcyA9IHRoaXMuZGF0YT8uc3R5bGVzO1xyXG4gICAgdGhpcy5idXR0b24gPSB0aGlzLmRhdGE/LmFjdGlvbj8uYnV0dG9uc1swXTtcclxuICAgIHRoaXMuYnV0dG9uSWQgPSAodGhpcy5kYXRhID8gdGhpcy5kYXRhLmlkIDogJycpICsgKHRoaXMuYnV0dG9uID8gdGhpcy5idXR0b24uaWQgOiAnJyk7XHJcblxyXG4gICAgbGV0IGVuYWJsZWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc2lnblVwRW5hYmxlZCcpO1xyXG4gICAgaWYgKGVuYWJsZWQgIT0gbnVsbClcclxuICAgICAgdGhpcy5zaWduVXBFbmFibGVkID0gZW5hYmxlZCA9PT0gJ3RydWUnO1xyXG5cclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5zZXR1cDNERWZmZWN0cygpO1xyXG4gIH1cclxuXHJcbiAgbG9naW5UeXBlOiBcIlBBU1NXT1JEXCIgfCBcIk9UUFwiID0gXCJQQVNTV09SRFwiO1xyXG5cclxuICBjbG9zZSgpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG4gIGxvZ2luKCkge1xyXG4gICAgaWYgKHRoaXMubG9naW5UeXBlID09IFwiT1RQXCIpIHtcclxuICAgICAgdGhpcy52ZXJpZnlPVFAoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmVyaWZ5UGFzc3dvcmQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZlcmlmeVBhc3N3b3JkKCkge1xyXG5cclxuICAgIGlmICghdGhpcy5pc0VtYWlsVmFsaWQpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0ludmFsaWQgRW1haWwnLCBkZXRhaWw6ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzJyB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5pc1Bhc3N3b3JkVmFsaWQpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0ludmFsaWQgUGFzc3dvcmQnLCBkZXRhaWw6ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBwYXNzd29yZCcgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICBidXNpbmVzc0lkOiB0aGlzLmJ1c2luZXNzSWQsXHJcbiAgICAgIGVtYWlsOiB0aGlzLmVtYWlsLFxyXG4gICAgICBwYXNzd29yZDogdGhpcy5wYXNzd29yZFxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnNpZ25pblBhc3N3b3JkKHBheWxvYWQpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB1c2VyRGV0YWlscyA9IHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0VXNlcihyZXNwb25zZS5kYXRhKTtcclxuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS51cGRhdGVBbGxEYXRhKCk7XHJcbiAgICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAvLyB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgnc3VjY2VzcycpO1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdMb2dnZWQgSW4nLCBkZXRhaWw6ICdMb2dnZWQgaW4gU3VjY2Vzc2Z1bGx5JyB9KTtcclxuICAgICAgaWYgKHRoaXMucHJvY2VlZFRvQ2hlY2tvdXQpXHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvY2FydCddLCB7IHF1ZXJ5UGFyYW1zOiB7IGNoZWNrb3V0OiB0cnVlIH0gfSk7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJyddKTtcclxuICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdMb2dpbiByZXF1ZXN0JywgZGV0YWlsOiBlcnJvcj8uZXJyb3I/Lm1lc3NhZ2UgfSk7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG4gIHZlcmlmeU9UUCgpIHtcclxuXHJcbiAgICBjb25zdCBkZXZpY2VJbmZvOiBEZXZpY2VJbmZvIHwgbnVsbCA9IHtcclxuICAgICAgZmlyZWJhc2VUb2tlbjogbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJmYlRva2VuXCIpID8/IFwiXCJcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5idXR0b25Mb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UudmVyaWZ5T1RQKHRoaXMubW9iaWxlID8/IFwiXCIsIHRoaXMub3RwLCBkZXZpY2VJbmZvKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgdXNlckRldGFpbHMgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldFVzZXIocmVzcG9uc2UuZGF0YSk7XHJcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UudXBkYXRlQWxsRGF0YSgpO1xyXG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgnc3VjY2VzcycpO1xyXG4gICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgdGhpcy5idXR0b25Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogXCJMb2dpbiByZXF1ZXN0XCIsIGRldGFpbDogZXJyb3I/LmVycm9yPy5tZXNzYWdlIH0pO1xyXG4gICAgICB9KVxyXG4gIH1cclxuICBzZW5kU2lnbnVwT1RQKCkge1xyXG4gICAgdGhpcy5idXR0b25Mb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNPVFBWZXJpZmllZCA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMubW9iaWxlVGltZXIpXHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLm1vYmlsZVRpbWVyKTtcclxuICAgIHRoaXMubW9iaWxlVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMubW9iaWxlLmxlbmd0aCAhPSAxMClcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIGNvbnN0IHBheWxvYWQ6IGFueSA9IHtcclxuICAgICAgICBidXNpbmVzc0lkOiB0aGlzLmJ1c2luZXNzSWQsXHJcbiAgICAgICAgbW9iaWxlOiB0aGlzLm1vYmlsZSxcclxuICAgICAgICBlbWFpbDogdGhpcy5lbWFpbCxcclxuICAgICAgICBwYXNzd29yZDogdGhpcy5wYXNzd29yZCxcclxuICAgICAgICBjb3VudHJ5Q29kZTogJzkxJ1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVzdFNlcnZpY2Uuc2VuZFNpZ251cE9UUChwYXlsb2FkKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc09UUFZlcmlmaWVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdPVFAnLCBkZXRhaWw6ICdPVFAgU2VudCcgfSk7XHJcbiAgICAgIH0sIChlcnIpID0+IHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnT1RQIFJlcXVlc3QnLCBkZXRhaWw6IGVyci5lcnJvci5tZXNzYWdlIH0pO1xyXG4gICAgICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9KVxyXG4gICAgfSwgODAwKTtcclxuICB9XHJcbiAgY3JlYXRlQWNjb3VudCgpIHtcclxuXHJcbiAgICBpZiAoIXRoaXMuaXNFbWFpbFZhbGlkKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6ICdJbnZhbGlkIEVtYWlsJywgZGV0YWlsOiAnUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcycgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5pc1Bhc3N3b3JkVmFsaWQpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0ludmFsaWQgUGFzc3dvcmQnLCBkZXRhaWw6ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBwYXNzd29yZCcgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5tb2JpbGVOdW1iZXJWYWxpZCkge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnSW52YWxpZCBNb2JpbGUgTnVtYmVyJywgZGV0YWlsOiAnUGxlYXNlIGVudGVyIGEgdmFsaWQgbW9iaWxlIG51bWJlcicgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBkZXZpY2VJbmZvOiBEZXZpY2VJbmZvIHwgbnVsbCA9IHtcclxuICAgICAgZmlyZWJhc2VUb2tlbjogbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJmYlRva2VuXCIpID8/IFwiXCJcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5idXR0b25Mb2FkaW5nID0gdHJ1ZTtcclxuICAgIGxldCB2ZXJpZnlTaWduRGF0YSA9IHtcclxuICAgICAgbmFtZTogdGhpcy51c2VyTmFtZSxcclxuICAgICAgYnVzaW5lc3NJZDogdGhpcy5idXNpbmVzc0lkLFxyXG4gICAgICBidXNpbmVzc05hbWU6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdiTmFtZScpLFxyXG4gICAgICBtb2JpbGU6IHRoaXMubW9iaWxlLFxyXG4gICAgICBlbWFpbDogdGhpcy5lbWFpbCxcclxuICAgICAgcGFzc3dvcmQ6IHRoaXMucGFzc3dvcmQsXHJcbiAgICAgIGNvdW50cnlDb2RlOiBcIis5MVwiLFxyXG4gICAgICBlbnRlcmVkT3RwOiB0aGlzLm90cFxyXG4gICAgfVxyXG4gICAgdGhpcy5yZXN0U2VydmljZS52ZXJpZnlTaWdudXBPVFAodmVyaWZ5U2lnbkRhdGEpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB1c2VyRGV0YWlscyA9IHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0VXNlcihyZXNwb25zZS5kYXRhKTtcclxuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS51cGRhdGVBbGxEYXRhKCk7XHJcbiAgICAgIC8vIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCdzdWNjZXNzJyk7XHJcbiAgICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdTaWduIFVwJywgZGV0YWlsOiAnWW91ciBhY2NvdW50IHN1Y2Nlc3NmdWxseSBjcmVhdGVkJyB9KTtcclxuICAgICAgaWYgKHRoaXMucHJvY2VlZFRvQ2hlY2tvdXQpXHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvY2FydCddLCB7IHF1ZXJ5UGFyYW1zOiB7IGNoZWNrb3V0OiB0cnVlIH0gfSk7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJyddKTsgICAgICAvLyBTd2FsLmZpcmUoe1xyXG4gICAgICAvLyAgIGljb246IFwic3VjY2Vzc1wiLFxyXG4gICAgICAvLyAgIHRpdGxlOiBcIkh1cnJheVwiLFxyXG4gICAgICAvLyAgIHRleHQ6IFwiWW91ciBhY2NvdW50IHN1Y2Nlc3NmdWxseSBjcmVhdGVkXCIsXHJcbiAgICAgIC8vICAgc2hvd0NhbmNlbEJ1dHRvbjogISh1c2VyRGV0YWlscy5jb250YWN0Py5uYW1lPy5sZW5ndGggPiAwKSxcclxuICAgICAgLy8gICBjb25maXJtQnV0dG9uVGV4dDogXCJJIGxvdmVkIGl0XCIsXHJcbiAgICAgIC8vICAgY2FuY2VsQnV0dG9uVGV4dDogXCJGaWxsIG90aGVyIGJhc2ljIGRldGFpbHNcIixcclxuICAgICAgLy8gICBjYW5jZWxCdXR0b25Db2xvcjogXCIjOTI4YzhjXCIsXHJcbiAgICAgIC8vIH0pLnRoZW4oKHJlc3VsdCkgPT4ge1xyXG5cclxuICAgICAgLy8gICBpZiAocmVzdWx0LmlzRGlzbWlzc2VkKSB7XHJcbiAgICAgIC8vICAgICB0aGlzLm1hdERpYWxvZy5vcGVuKFVzZXJCYXNpY0luZm9Db21wb25lbnQsIHtcclxuICAgICAgLy8gICAgICAgaGVpZ2h0OiAnNTB2aCcsXHJcbiAgICAgIC8vICAgICAgIHdpZHRoOiB3aW5kb3cuaW5uZXJXaWR0aCA+IDQ3NSA/ICc0MHZ3JyA6ICc5NXZ3JyxcclxuICAgICAgLy8gICAgICAgbWF4V2lkdGg6IHdpbmRvdy5pbm5lcldpZHRoID4gNDc1ID8gJzEwMHZ3JyA6ICc4MHZ3JyxcclxuICAgICAgLy8gICAgICAgZGF0YToge31cclxuICAgICAgLy8gICAgIH0pO1xyXG4gICAgICAvLyAgIH1cclxuICAgICAgLy8gfSlcclxuICAgIH0sIChlcnJvcikgPT4ge1xyXG4gICAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNTAwKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ1NpZ251cCBlcnJvcicsIGRldGFpbDogZXJyb3I/LmVycm9yPy5tZXNzYWdlIH0pXHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ1NpZ251cCBlcnJvcicsIGRldGFpbDogZXJyb3I/LmVycm9yPy5tZXNzYWdlIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICB2ZXJpZnlTaWdudXBPVFAoKSB7XHJcblxyXG4gICAgaWYgKHRoaXMub3RwLmxlbmd0aCAhPSA2KVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgY29uc3QgZGV2aWNlSW5mbzogRGV2aWNlSW5mbyB8IG51bGwgPSB7XHJcbiAgICAgIGZpcmViYXNlVG9rZW46IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiZmJUb2tlblwiKSA/PyBcIlwiXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IHRydWU7XHJcbiAgICBsZXQgdmVyaWZ5U2lnbkRhdGEgPSB7XHJcbiAgICAgIGJ1c2luZXNzSWQ6IHRoaXMuYnVzaW5lc3NJZCxcclxuICAgICAgbW9iaWxlOiB0aGlzLm1vYmlsZSxcclxuICAgICAgZW1haWw6IHRoaXMuZW1haWwsXHJcbiAgICAgIHBhc3N3b3JkOiB0aGlzLnBhc3N3b3JkLFxyXG4gICAgICBjb3VudHJ5Q29kZTogXCI5MVwiLFxyXG4gICAgICBlbnRlcmVkT3RwOiB0aGlzLm90cFxyXG4gICAgfVxyXG4gICAgdGhpcy5yZXN0U2VydmljZS52ZXJpZnlTaWdudXBPVFAodmVyaWZ5U2lnbkRhdGEpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ3N1Y2Nlc3MnLCBzdW1tYXJ5OiAnT1RQJywgZGV0YWlsOiAnT1RQIFZlcmlmaWVkJyB9KTtcclxuICAgIH0sIChlcnJvcikgPT4ge1xyXG4gICAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNTAwKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ1VzZXIgYWxyZWFkeSBleGlzdHMnIH0pXHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0ludmFsaWQgT1RQJywgZGV0YWlsOiAnUGxlYXNlIGVudGVyIHZhbGlkIG90cCcgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIGVudGVyTW9iaWxlKCkge1xyXG5cclxuICAgIGlmICh0aGlzLm1vYmlsZVRpbWVyKVxyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5tb2JpbGVUaW1lcik7XHJcbiAgICB0aGlzLm1vYmlsZVRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLm1vYmlsZS5sZW5ndGggIT0gMTApXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlT1RQKCk7XHJcbiAgICB9LCA1MDApO1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVPVFAoKSB7XHJcbiAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZW5lcmF0ZU9UUCh0aGlzLm1vYmlsZSA/PyBcIlwiLCBcIjkxXCIpLnN1YnNjcmliZShcclxuICAgICAgKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5idXR0b25Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG4gICAgICAgICAgc2V2ZXJpdHk6ICdzdWNjZXNzJyxcclxuICAgICAgICAgIHN1bW1hcnk6ICdPVFAgU2VudCcsXHJcbiAgICAgICAgICBkZXRhaWw6ICdPVFAgc2VudCB0byBtb2JpbGUuIFZhbGlkIGZvciAzIG1pbnMnLFxyXG4gICAgICAgICAgbGlmZTogMTAwMDBcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgdGhpcy5idXR0b25Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gZXJyb3I/LmVycm9yPy5tZXNzYWdlO1xyXG5cclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcbiAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcclxuICAgICAgICAgIHN1bW1hcnk6ICdPVFAgUmVxdWVzdCcsXHJcbiAgICAgICAgICBkZXRhaWw6IGVycm9yTWVzc2FnZSxcclxuICAgICAgICAgIGxpZmU6IDEwMDAwXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZU51bWJlcihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgY2hhckNvZGUgPSBldmVudC5jaGFyQ29kZTtcclxuICAgIGlmIChjaGFyQ29kZSA8IDQ4IHx8IGNoYXJDb2RlID4gNTcpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZhbGlkYXRlT1RQKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5vdHAubGVuZ3RoID09IDYpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgY2hlY2tTdHJlbmd0aCgpIHtcclxuICAgIHRoaXMucGFzc3dvcmRTdHJlbmd0aENvdW50ID0gMDtcclxuICAgIHRoaXMucGFzc3dvcmRTdHJlbmd0aENvdW50ICs9ICgvW0EtWl0vLnRlc3QodGhpcy5wYXNzd29yZCkpID8gMSA6IDA7XHJcbiAgICB0aGlzLnBhc3N3b3JkU3RyZW5ndGhDb3VudCArPSAoL1thLXpdLy50ZXN0KHRoaXMucGFzc3dvcmQpKSA/IDEgOiAwO1xyXG4gICAgdGhpcy5wYXNzd29yZFN0cmVuZ3RoQ291bnQgKz0gKC9cXGQvLnRlc3QodGhpcy5wYXNzd29yZCkpID8gMSA6IDA7XHJcbiAgICB0aGlzLnBhc3N3b3JkU3RyZW5ndGhDb3VudCArPSAodGhpcy5wYXNzd29yZC5sZW5ndGggPiA4ID8gMSA6IDApO1xyXG4gIH1cclxuICBnZXRTdHJlbmd0aENvbG9yKGluZGV4OiBudW1iZXIpIHtcclxuICAgIHN3aXRjaCAodGhpcy5wYXNzd29yZFN0cmVuZ3RoQ291bnQpIHtcclxuICAgICAgY2FzZSAxOlxyXG4gICAgICAgIHJldHVybiAoaW5kZXggPCB0aGlzLnBhc3N3b3JkU3RyZW5ndGhDb3VudCA/IFwidG9tYXRvXCIgOiBcIiNkM2QzZDNiYVwiKTtcclxuICAgICAgY2FzZSAyOlxyXG4gICAgICAgIHJldHVybiAoaW5kZXggPCB0aGlzLnBhc3N3b3JkU3RyZW5ndGhDb3VudCA/IFwib3JhbmdlXCIgOiBcIiNkM2QzZDNiYVwiKTtcclxuICAgICAgY2FzZSAzOlxyXG4gICAgICAgIHJldHVybiAoaW5kZXggPCB0aGlzLnBhc3N3b3JkU3RyZW5ndGhDb3VudCA/IFwieWVsbG93XCIgOiBcIiNkM2QzZDNiYVwiKTtcclxuICAgICAgY2FzZSA0OlxyXG4gICAgICAgIHJldHVybiAoaW5kZXggPCB0aGlzLnBhc3N3b3JkU3RyZW5ndGhDb3VudCA/IFwibGlnaHRncmVlblwiIDogXCIjZDNkM2QzYmFcIik7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIFwiI2QzZDNkM2JhXCI7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGVtYWlsRGVib3VuY2VUaW1lcjogYW55O1xyXG4gIG9uRW1haWxDaGFuZ2UoKSB7XHJcbiAgICBjbGVhclRpbWVvdXQodGhpcy5lbWFpbERlYm91bmNlVGltZXIpO1xyXG4gICAgdGhpcy5lbWFpbERlYm91bmNlVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5pc0VtYWlsVmFsaWQoKTtcclxuICAgIH0sIDIwMCk7XHJcbiAgfVxyXG4gIGVtYWlsQ2hlY2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0VtYWlsVmFsaWQoKSB7XHJcbiAgICBjb25zdCBlbWFpbFJlZ2V4ID0gL15bYS16QS1aMC05Ll8lKy1dK0BbYS16QS1aMC05Li1dK1xcLlthLXpBLVpdezIsfSQvO1xyXG4gICAgdGhpcy5lbWFpbENoZWNrID0gIWVtYWlsUmVnZXgudGVzdCh0aGlzLmVtYWlsKTtcclxuICAgIHJldHVybiBlbWFpbFJlZ2V4LnRlc3QodGhpcy5lbWFpbCk7XHJcbiAgfVxyXG4gIHBhc3N3b3JkRGVib3VuY2VUaW1lcjogYW55O1xyXG4gIG9uUGFzc3dvcmRDaGFuZ2UoKSB7XHJcbiAgICBjbGVhclRpbWVvdXQodGhpcy5wYXNzd29yZERlYm91bmNlVGltZXIpO1xyXG4gICAgdGhpcy5wYXNzd29yZERlYm91bmNlVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5pc1Bhc3N3b3JkVmFsaWQoKTtcclxuICAgIH0sIDIwMCk7XHJcbiAgfVxyXG4gIHBhc3N3b3JkQ2hlY2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1Bhc3N3b3JkVmFsaWQoKSB7XHJcbiAgICBjb25zdCBwYXNzd29yZFJlZ2V4ID0gL14oPz0uKlthLXpdKSg/PS4qW0EtWl0pKD89LipcXGQpKD89LipbQCQhJSo/Jl0pW0EtWmEtelxcZEAkISUqPyZdezgsfSQvO1xyXG4gICAgdGhpcy5wYXNzd29yZENoZWNrID0gIXBhc3N3b3JkUmVnZXgudGVzdCh0aGlzLnBhc3N3b3JkKTtcclxuICAgIHJldHVybiBwYXNzd29yZFJlZ2V4LnRlc3QodGhpcy5wYXNzd29yZCk7XHJcbiAgfVxyXG5cclxuICBtb2JpbGVEZWJvdW5jZVRpbWVyOiBhbnk7XHJcbiAgb25Nb2JpbGVDaGFuZ2UoKSB7XHJcbiAgICBjbGVhclRpbWVvdXQodGhpcy5tb2JpbGVEZWJvdW5jZVRpbWVyKTtcclxuICAgIHRoaXMubW9iaWxlRGVib3VuY2VUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLm1vYmlsZU51bWJlclZhbGlkKCk7XHJcbiAgICB9LCAyMDApO1xyXG4gIH1cclxuICBtb2JpbGVDaGVjazogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG1vYmlsZU51bWJlclZhbGlkKCkge1xyXG4gICAgY29uc3QgbW9iaWxlUmVnZXggPSAvXls2LTldXFxkezl9JC87XHJcbiAgICB0aGlzLm1vYmlsZUNoZWNrID0gIW1vYmlsZVJlZ2V4LnRlc3QodGhpcy5tb2JpbGUpO1xyXG4gICAgcmV0dXJuIG1vYmlsZVJlZ2V4LnRlc3QodGhpcy5tb2JpbGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzTW9iaWxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDw9IDQ3NTtcclxuICB9XHJcblxyXG4gIGdldCBzdHlsZXNMYXlvdXQoKSB7XHJcbiAgICByZXR1cm4geyAuLi50aGlzLnN0eWxlcz8ubGF5b3V0IH0gYXMgTGF5T3V0TW9kZWw7XHJcbiAgfVxyXG5cclxuICBnZXQgYWNjZW50Q29sb3IoKSB7XHJcbiAgICBjb25zdCBjb2xvciA9IHRoaXMuc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvciA/IHRoaXMuc3R5bGVzLmJhY2tncm91bmQ/LmFjY2VudENvbG9yIDogJyM2NjdlZWEnO1xyXG4gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWFjY2VudC1jb2xvcicsIGNvbG9yKTtcclxuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1hY2NlbnQtc2hhZG93JywgdGhpcy5oZXhUb1JnYmEoY29sb3IsIDAuNCkpO1xyXG4gICAgcmV0dXJuIGNvbG9yO1xyXG4gIH1cclxuICBwcml2YXRlIGhleFRvUmdiYShoZXg6IHN0cmluZywgYWxwaGE6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBjb25zdCByID0gcGFyc2VJbnQoaGV4LnNsaWNlKDEsIDMpLCAxNik7XHJcbiAgICBjb25zdCBnID0gcGFyc2VJbnQoaGV4LnNsaWNlKDMsIDUpLCAxNik7XHJcbiAgICBjb25zdCBiID0gcGFyc2VJbnQoaGV4LnNsaWNlKDUsIDcpLCAxNik7XHJcbiAgICByZXR1cm4gYHJnYmEoJHtyfSwgJHtnfSwgJHtifSwgJHthbHBoYX0pYDtcclxuICB9XHJcbiAgc2V0dXAzREVmZmVjdHMoKSB7XHJcbiAgICBjb25zdCBtYWluUGFuZWwgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcubWFpbi1wYW5lbCcpO1xyXG5cclxuICAgIGlmIChtYWluUGFuZWwpIHtcclxuICAgICAgbWFpblBhbmVsLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIChlOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5pc01vYmlsZSkgcmV0dXJuO1xyXG5cclxuICAgICAgICBjb25zdCByZWN0ID0gbWFpblBhbmVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgIGNvbnN0IHggPSBlLmNsaWVudFggLSByZWN0LmxlZnQ7XHJcbiAgICAgICAgY29uc3QgeSA9IGUuY2xpZW50WSAtIHJlY3QudG9wO1xyXG5cclxuICAgICAgICBjb25zdCBjZW50ZXJYID0gcmVjdC53aWR0aCAvIDI7XHJcbiAgICAgICAgY29uc3QgY2VudGVyWSA9IHJlY3QuaGVpZ2h0IC8gMjtcclxuXHJcbiAgICAgICAgY29uc3Qgcm90YXRlWCA9ICh5IC0gY2VudGVyWSkgLyAyMDtcclxuICAgICAgICBjb25zdCByb3RhdGVZID0gKGNlbnRlclggLSB4KSAvIDIwO1xyXG5cclxuICAgICAgICAobWFpblBhbmVsIGFzIEhUTUxFbGVtZW50KS5zdHlsZS50cmFuc2Zvcm0gPSBgcGVyc3BlY3RpdmUoMTIwMHB4KSByb3RhdGVYKCR7cm90YXRlWH1kZWcpIHJvdGF0ZVkoJHtyb3RhdGVZfWRlZykgdHJhbnNsYXRlWigwKWA7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgbWFpblBhbmVsLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCAoKSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzTW9iaWxlKSB7XHJcbiAgICAgICAgICAobWFpblBhbmVsIGFzIEhUTUxFbGVtZW50KS5zdHlsZS50cmFuc2Zvcm0gPSAncm90YXRlWCgwZGVnKSByb3RhdGVZKDBkZWcpJztcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBzaG93UGFzc3dvcmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbn0iLCI8cC10b2FzdCBwb3NpdGlvbj1cImJvdHRvbS1yaWdodFwiIFtiYXNlWkluZGV4XT1cIjEwMDAwMDAwMDAwXCIgW2F1dG9aSW5kZXhdPVwidHJ1ZVwiXHJcbiAgW3Nob3dUcmFuc2Zvcm1PcHRpb25zXT1cImlzTW9iaWxlID8gJ3RyYW5zbGF0ZVkoLTEwMCUpJyA6ICcnXCI+PC9wLXRvYXN0PlxyXG5cclxuPHNlY3Rpb24gW2lkXT1cImRhdGE/LmlkXCIgY2xhc3M9XCJ0b3RhbC1jb250YWluZXJcIiBzaW1wb0hvdmVyIChob3ZlcmluZyk9XCJzaG93RWRpdFRhYnMoJGV2ZW50KVwiPlxyXG4gIDxkaXYgW3NwYWNpbmdBcm91bmRdPVwic3R5bGVzTGF5b3V0XCI+XHJcbiAgICA8ZGl2IFtzaW1wb0JhY2tncm91bmRdPVwic3R5bGVzPy5iYWNrZ3JvdW5kXCIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvTGF5b3V0XT1cInN0eWxlcz8ubGF5b3V0XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhcmVhIHctMTAwXCI+XHJcbiAgICAgICAgPHVsIGNsYXNzPVwiY2lyY2xlc1wiPlxyXG4gICAgICAgICAgPGxpPjwvbGk+XHJcbiAgICAgICAgICA8bGk+PC9saT5cclxuICAgICAgICAgIDxsaT48L2xpPlxyXG4gICAgICAgICAgPGxpPjwvbGk+XHJcbiAgICAgICAgICA8bGk+PC9saT5cclxuICAgICAgICAgIDxsaT48L2xpPlxyXG4gICAgICAgICAgPGxpPjwvbGk+XHJcbiAgICAgICAgICA8bGk+PC9saT5cclxuICAgICAgICAgIDxsaT48L2xpPlxyXG4gICAgICAgICAgPGxpPjwvbGk+XHJcbiAgICAgICAgPC91bD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgW3NpbXBvT3ZlcmxheV09XCJzdHlsZXM/LmJhY2tncm91bmRcIiBbaWRdPVwiZGF0YT8uaWRcIiBjbGFzcz1cIm1haW4tcGFuZWwgZC1mbGV4IGdhcC0yXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBhbmVsIHctMTAwXCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlcz8uY29ybmVyc1wiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0FuaW1hdGlvbl09XCJzdHlsZXM/LmFuaW1hdGlvblwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1cnJlbnRQYWdlID09PSAnTE9HSU4nID8gbG9naW5UZW1wbGF0ZSA6IG51bGxcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXJyZW50UGFnZSA9PT0gJ1NJR05VUCcgPyBzaWduSW5UZW1wbGF0ZSA6IG51bGxcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGVkaXR9XCIgKm5nSWY9XCJzaG93RWRpdG9yc1wiPlxyXG4gICAgPHNpbXBvLWhvdmVyLWVsZW1lbnRzIFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIiBbZWRpdE9wdGlvbnNdPVwiZWRpdFwiPjwvc2ltcG8taG92ZXItZWxlbWVudHM+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cInNob3dEZWxldGVcIiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGRlbGV0ZX1cIj5cclxuICAgIDxzaW1wby1kZWxldGUtaG92ZXItZWxlbWVudCBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCI+PC9zaW1wby1kZWxldGUtaG92ZXItZWxlbWVudD5cclxuICA8L2Rpdj5cclxuXHJcbjwvc2VjdGlvbj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbG9naW5UZW1wbGF0ZT5cclxuICA8ZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWJveFwiPlxyXG4gICAgICA8bGFiZWwgZm9yPVwiXCI+RW1haWw8L2xhYmVsPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cImVtYWlsXCIgWyhuZ01vZGVsKV09XCJlbWFpbFwiIHJlcXVpcmVkPVwiXCIgcGxhY2Vob2xkZXI9XCJqYW5lZG9lQGdtYWlsLmNvbVwiXHJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25FbWFpbENoYW5nZSgpXCIgW3N0eWxlLmJvcmRlckNvbG9yXT1cIiFlbWFpbENoZWNrID8gJycgOiAncmVkJ1wiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImYtMTJcIiAqbmdJZj1cImVtYWlsQ2hlY2tcIiBbc3R5bGUuY29sb3JdPVwiJ3JlZCdcIj5QbGVhc2UgRW50ZXIgdmFsaWQgTW9iaWxlIG51bWJlcio8L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ib3hcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInctMTAwXCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cIlwiPlBhc3N3b3JkPC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgW3R5cGVdPVwic2hvd1Bhc3N3b3JkID8gJ3RleHQnIDogJ3Bhc3N3b3JkJ1wiIHJlcXVpcmVkPVwiXCIgWyhuZ01vZGVsKV09XCJwYXNzd29yZFwiXHJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblBhc3N3b3JkQ2hhbmdlKClcIiBjbGFzcz1cInctOTBcIiBwbGFjZWhvbGRlcj1cIkphbmVkb2VAMTIzNFwiXHJcbiAgICAgICAgICBbc3R5bGUuYm9yZGVyQ29sb3JdPVwiIXBhc3N3b3JkQ2hlY2sgPyAnJyA6ICdyZWQnXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJleWVcIiAoY2xpY2spPVwic2hvd1Bhc3N3b3JkID0gIXNob3dQYXNzd29yZFwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYVwiIFtuZ0NsYXNzXT1cInNob3dQYXNzd29yZCA/ICdmYS1leWUtc2xhc2gnIDogJ2ZhLWV5ZSdcIj48L2k+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHNwYW4gKm5nSWY9XCJwYXNzd29yZENoZWNrXCIgY2xhc3M9XCJmLTEyXCIgW3N0eWxlLmNvbG9yXT1cIidyZWQnXCI+WW91ciBwYXNzd29yZCBtdXN0IGNvbnRhaW4gMSBVcHBlcmNhc2UgLCAxXHJcbiAgICAgICAgTG93ZXJjYXNlICwgMSBTcGVjaWFsXHJcbiAgICAgICAgQ2hhcmFjdGVyICwgMSBEaWdpdCBhbmQgTWluaW11bSA4IENoYXJhY3RlcnMqPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJmb3Jnb3QtcHdkXCIgW3N0eWxlLmNvbG9yXT1cImFjY2VudENvbG9yXCI+Rm9yZ290IFBhc3N3b3JkPzwvZGl2PiAtLT5cclxuICAgIDwhLS0gPGJ1dHRvbiBjbGFzcz1cImJ1dHRvblwiICpuZ0lmPVwiIWJ1dHRvbkxvYWRpbmdcIiBzaW1wb0J1dHRvbkRpcmVjdGl2ZSBbaWRdPVwiYnV0dG9uSWRcIiBbYnV0dG9uU3R5bGVdPVwiYnV0dG9uPy5zdHlsZXNcIlxyXG4gICAgICBbYmFja2dyb3VuZEluZm9dPVwic3R5bGVzPy5iYWNrZ3JvdW5kXCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlcz8uY29ybmVyc1wiIFtjb2xvcl09XCJzdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCJcclxuICAgICAgKGNsaWNrKT1cImxvZ2luKClcIj5Mb2dpbjwvYnV0dG9uPiAtLT5cclxuICAgICAgIDxidXR0b24gY2xhc3M9XCJzZW5kLWJ0biBwLTJcIiAqbmdJZj1cIiFidXR0b25Mb2FkaW5nXCIgW2J1dHRvbkRhdGFdPVwiYnV0dG9uPy5jb250ZW50XCIgW2J1dHRvblN0eWxlXT1cImJ1dHRvbj8uc3R5bGVzXCJcclxuICAgICAgc2ltcG9CdXR0b25EaXJlY3RpdmUgW2lkXT1cImRhdGE/LmlkKyhidXR0b24/LmlkIHx8ICcnKVwiICBbc2VjdGlvbklkXT1cImRhdGE/LmlkXCIgW2NvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIlxyXG4gICAgICBbYmFja2dyb3VuZEluZm9dPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kXCIgW2FwcEJ1dHRvbkVkaXRvcl09XCJlZGl0ID8/IGZhbHNlXCIgW2J1dHRvbklkXT1cImJ1dHRvbj8uaWQgPz8gJydcIiAoY2xpY2spPVwibG9naW4oKVwiPnt7YnV0dG9uPy5jb250ZW50Py5sYWJlbH19PC9idXR0b24+XHJcbiAgICA8IS0tIDxidXR0b24gY2xhc3M9XCJidXR0b25cIiAqbmdJZj1cImJ1dHRvbkxvYWRpbmdcIiBzaW1wb0J1dHRvbkRpcmVjdGl2ZSBbaWRdPVwiYnV0dG9uSWRcIiBbYnV0dG9uU3R5bGVdPVwiYnV0dG9uPy5zdHlsZXNcIlxyXG4gICAgICBbYmFja2dyb3VuZEluZm9dPVwic3R5bGVzPy5iYWNrZ3JvdW5kXCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlcz8uY29ybmVyc1wiXHJcbiAgICAgIFtjb2xvcl09XCJzdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+TG9hZGluZy4uLjwvYnV0dG9uPiAtLT5cclxuICAgICAgIDxidXR0b24gY2xhc3M9XCJzZW5kLWJ0biBwLTJcIiAqbmdJZj1cImJ1dHRvbkxvYWRpbmdcIiBbYnV0dG9uRGF0YV09XCJidXR0b24/LmNvbnRlbnRcIiBbYnV0dG9uU3R5bGVdPVwiYnV0dG9uPy5zdHlsZXNcIlxyXG4gICAgICBzaW1wb0J1dHRvbkRpcmVjdGl2ZSBbaWRdPVwiZGF0YT8uaWQrKGJ1dHRvbj8uaWQgfHwgJycpXCIgIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIiBbY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiXHJcbiAgICAgIFtiYWNrZ3JvdW5kSW5mb109XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmRcIiBbYXBwQnV0dG9uRWRpdG9yXT1cImVkaXQgPz8gZmFsc2VcIiBbYnV0dG9uSWRdPVwiYnV0dG9uPy5pZCA/PyAnJ1wiIChjbGljayk9XCJsb2dpbigpXCI+TG9hZGluZy4uLjwvYnV0dG9uPlxyXG5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic2lnbi11cFwiICpuZ0lmPVwic2lnblVwRW5hYmxlZFwiPkRvbid0IGhhdmUgYW4gYWNjb3VudD8gPHNwYW4gW3N0eWxlLmNvbG9yXT1cImFjY2VudENvbG9yXCJcclxuICAgICAgICAoY2xpY2spPVwiY3VycmVudFBhZ2UgPSAnU0lHTlVQJ1wiPlNpZ25cclxuICAgICAgICBVcDwvc3Bhbj48L2Rpdj5cclxuXHJcbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtdC0yMFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwib3ItZGl2aWRlclwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwib3ItdGV4dFwiPm9yPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNpZ24tdXBcIj5Mb2dpbiB3aXRoIDxzcGFuIFtzdHlsZS5jb2xvcl09XCJhY2NlbnRDb2xvclwiPk9UUDwvc3Bhbj48L2Rpdj5cclxuICAgIDwvZGl2PiAtLT5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjc2lnbkluVGVtcGxhdGU+XHJcbiAgPGRpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ib3hcIj5cclxuICAgICAgPGxhYmVsIGZvcj1cIlwiPk5hbWU8L2xhYmVsPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInVzZXJOYW1lXCIgcGxhY2Vob2xkZXI9XCJKYW5lIERvZVwiPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtYm94XCI+XHJcbiAgICAgIDxsYWJlbCBmb3I9XCJcIj5FbWFpbDwvbGFiZWw+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwiZW1haWxcIiBbKG5nTW9kZWwpXT1cImVtYWlsXCIgcGxhY2Vob2xkZXI9XCJqYW5lZG9lQGdtYWlsLmNvbVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uRW1haWxDaGFuZ2UoKVwiXHJcbiAgICAgICAgW3N0eWxlLmJvcmRlckNvbG9yXT1cIiFlbWFpbENoZWNrID8gJycgOiAncmVkJ1wiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImYtMTJcIiAqbmdJZj1cImVtYWlsQ2hlY2tcIiBbc3R5bGUuY29sb3JdPVwiJ3JlZCdcIj5QbGVhc2UgRW50ZXIgdmFsaWQgZW1haWwqPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtYm94XCI+XHJcbiAgICAgIDxsYWJlbCBmb3I9XCJcIj5QaG9uZSBOdW1iZXI8L2xhYmVsPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIFsobmdNb2RlbCldPVwibW9iaWxlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25Nb2JpbGVDaGFuZ2UoKVwiIHBsYWNlaG9sZGVyPVwiOTg3NjU0MzIxOVwiXHJcbiAgICAgICAgW3N0eWxlLmJvcmRlckNvbG9yXT1cIiFtb2JpbGVDaGVjayA/ICcnIDogJ3JlZCdcIiBjbGFzcz1cIm5vLWFycm93c1wiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImYtMTJcIiAqbmdJZj1cIm1vYmlsZUNoZWNrXCIgW3N0eWxlLmNvbG9yXT1cIidyZWQnXCI+UGxlYXNlIEVudGVyIHZhbGlkIE1vYmlsZSBudW1iZXIqPC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiIGlucHV0LWJveCBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICA8bGFiZWwgZm9yPVwiXCI+UGFzc3dvcmQ8L2xhYmVsPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidy0xMDBcIj5cclxuICAgICAgICA8aW5wdXQgW3R5cGVdPVwic2hvd1Bhc3N3b3JkID8gJ3RleHQnIDogJ3Bhc3N3b3JkJ1wiIHJlcXVpcmVkPVwiXCIgWyhuZ01vZGVsKV09XCJwYXNzd29yZFwiIGNsYXNzPVwidy05MFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIkphbmVkb2VAMTIzNFwiIFtzdHlsZS5ib3JkZXJDb2xvcl09XCIhcGFzc3dvcmRDaGVjayA/ICcnIDogJ3JlZCdcIlxyXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25QYXNzd29yZENoYW5nZSgpXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJleWVcIiAoY2xpY2spPVwic2hvd1Bhc3N3b3JkID0gIXNob3dQYXNzd29yZFwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYVwiIFtuZ0NsYXNzXT1cInNob3dQYXNzd29yZCA/ICdmYS1leWUtc2xhc2gnIDogJ2ZhLWV5ZSdcIj48L2k+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHNwYW4gKm5nSWY9XCJwYXNzd29yZENoZWNrXCIgY2xhc3M9XCJmLTEyXCIgW3N0eWxlLmNvbG9yXT1cIidyZWQnXCI+WW91ciBwYXNzd29yZCBtdXN0IGNvbnRhaW4gMSBVcHBlcmNhc2UgLCAxXHJcbiAgICAgICAgTG93ZXJjYXNlICwgMSBTcGVjaWFsXHJcbiAgICAgICAgQ2hhcmFjdGVyICwgMSBEaWdpdCBhbmQgTWluaW11bSA4IENoYXJhY3RlcnMqPC9zcGFuPlxyXG4gICAgICA8IS0tIDxkaXYgY2xhc3M9XCJzdHJlbmd0aC1iYXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc3RyZW5ndGggb2YgcGFzc3dvcmRTdHJlbmd0aDsgbGV0IGlkeCA9IGluZGV4XCIgY2xhc3M9XCJzdHJlbmd0aC1iYXJcIlxyXG4gICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJnZXRTdHJlbmd0aENvbG9yKGlkeClcIj48L2Rpdj5cclxuICAgICAgPC9kaXY+IC0tPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uXCIgKm5nSWY9XCIhYnV0dG9uTG9hZGluZ1wiIHNpbXBvQnV0dG9uRGlyZWN0aXZlIFtpZF09XCJidXR0b25JZFwiIFtidXR0b25TdHlsZV09XCJidXR0b24/LnN0eWxlc1wiXHJcbiAgICAgIFtiYWNrZ3JvdW5kSW5mb109XCJzdHlsZXM/LmJhY2tncm91bmRcIiBbc2ltcG9Db3JuZXJdPVwic3R5bGVzPy5jb3JuZXJzXCIgW2NvbG9yXT1cInN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIlxyXG4gICAgICAoY2xpY2spPVwiY3JlYXRlQWNjb3VudCgpXCIgW2Rpc2FibGVkXT1cIiFpc0VtYWlsVmFsaWQgfHwgIWlzUGFzc3dvcmRWYWxpZCB8fCAhdXNlck5hbWVcIj5DcmVhdGUgQWNjb3VudDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvblwiIHNpbXBvQnV0dG9uRGlyZWN0aXZlIFtpZF09XCJidXR0b25JZFwiIFtidXR0b25TdHlsZV09XCJidXR0b24/LnN0eWxlc1wiXHJcbiAgICAgIFtiYWNrZ3JvdW5kSW5mb109XCJzdHlsZXM/LmJhY2tncm91bmRcIiBbc2ltcG9Db3JuZXJdPVwic3R5bGVzPy5jb3JuZXJzXCIgW2NvbG9yXT1cInN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIlxyXG4gICAgICAqbmdJZj1cImJ1dHRvbkxvYWRpbmdcIj5Mb2FkaW5nLi4uPC9idXR0b24+XHJcblxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzaWduLXVwXCI+QWxyZWFkeSBoYXZlIGFuIGFjY291bnQ/IDxzcGFuIFtzdHlsZS5jb2xvcl09XCJhY2NlbnRDb2xvclwiXHJcbiAgICAgICAgKGNsaWNrKT1cImN1cnJlbnRQYWdlID0gJ0xPR0lOJ1wiPkxvZ2luPC9zcGFuPjwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
|
package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.model.mjs
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
export {};
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24tcmVxdWlyZWQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2Vjb21tZXJjZS9zZWN0aW9ucy9hdXRoZW50aWNhdGlvbi1yZXF1aXJlZC9hdXRoZW50aWNhdGlvbi1yZXF1aXJlZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29ybmVycyB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9pbmRleCc7XHJcbmltcG9ydCB7IEFjdGlvbk1vZGVsLCBBbmltYXRpb25Nb2RlbCwgQmFja2dyb3VuZE1vZGVsLCBCYW5uZXJTdHlsZXNNb2RlbCwgSW1hZ2UsIElucHV0VGV4dE1vZGVsLCBMYXlPdXRNb2RlbCwgTGlzdEl0ZW1Nb2RhbCB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhlbnRpY2F0aW9uTW9kZWwge1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIHNlY3Rpb25UeXBlOiBzdHJpbmcsXHJcbiAgICBzZWN0aW9uTmFtZTogc3RyaW5nLFxyXG4gICAgc3R5bGVzOiBCYW5uZXJTdHlsZXNNb2RlbDtcclxuICAgIGFjdGlvbjogQWN0aW9uTW9kZWw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXV0aGVudGljYXRpb25TdHlsZXNNb2RlbCB7XHJcbiAgICBsYXlvdXQ6IExheU91dE1vZGVsO1xyXG4gICAgYmFja2dyb3VuZDogQmFja2dyb3VuZE1vZGVsO1xyXG4gICAgYW5pbWF0aW9uOiBBbmltYXRpb25Nb2RlbDtcclxuICAgIGNvcm5lcnM6IENvcm5lcnM7XHJcbn1cclxuIl19
|