simpo-component-library 3.7.9 → 3.8.0
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/esm2022/lib/ecommerce/sections/cart/cart.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/checkout/checkout.component.mjs +14 -4
- package/esm2022/lib/ecommerce/sections/product-desc/product-desc.component.mjs +6 -8
- package/fesm2022/simpo-component-library.mjs +20 -12
- package/fesm2022/simpo-component-library.mjs.map +1 -1
- package/lib/components/input-fields/input-fields.component.d.ts +1 -1
- package/lib/ecommerce/sections/authentication-required/authentication-required.component.d.ts +1 -1
- package/lib/ecommerce/sections/checkout/checkout.component.d.ts +4 -0
- package/lib/ecommerce/sections/product-desc/product-desc.component.d.ts +0 -2
- package/package.json +1 -1
- package/simpo-component-library-3.8.0.tgz +0 -0
- package/simpo-component-library-3.7.9.tgz +0 -0
|
@@ -32,6 +32,9 @@ export class CheckoutComponent extends BaseSection {
|
|
|
32
32
|
}
|
|
33
33
|
ngOnInit() {
|
|
34
34
|
this.editDeliveryAddress = this.responseData?.userDetails ? true : false;
|
|
35
|
+
if (this.responseData?.userDetails && !this.responseData.userDetails.deliveryAddress) {
|
|
36
|
+
this.responseData.userDetails.deliveryAddress = {};
|
|
37
|
+
}
|
|
35
38
|
this.content = this.data?.content;
|
|
36
39
|
this.styles = this.data?.styles;
|
|
37
40
|
this.button = this.data?.action?.buttons[0];
|
|
@@ -40,9 +43,16 @@ export class CheckoutComponent extends BaseSection {
|
|
|
40
43
|
});
|
|
41
44
|
this.fetchLiveDeliveryEstimate();
|
|
42
45
|
}
|
|
46
|
+
/** Runs once at init (in case a saved address with a pincode was already passed in), and again
|
|
47
|
+
* from the pincode input's (ngModelChange) - at init time there's usually no pincode yet, since
|
|
48
|
+
* the shopper hasn't typed their address into this page's own form. */
|
|
49
|
+
onDeliveryPincodeChange() {
|
|
50
|
+
this.fetchLiveDeliveryEstimate();
|
|
51
|
+
}
|
|
43
52
|
fetchLiveDeliveryEstimate() {
|
|
44
53
|
const deliveryPincode = this.responseData?.userDetails?.deliveryAddress?.zipCode;
|
|
45
|
-
if (!deliveryPincode) {
|
|
54
|
+
if (!deliveryPincode || deliveryPincode.toString().length !== 6) {
|
|
55
|
+
this.liveDeliveryEstimate = null;
|
|
46
56
|
return;
|
|
47
57
|
}
|
|
48
58
|
const items = this.responseData?.orderedItems ?? [];
|
|
@@ -81,7 +91,7 @@ export class CheckoutComponent extends BaseSection {
|
|
|
81
91
|
return base - staleDelivery + this.liveDeliveryEstimate.charge;
|
|
82
92
|
}
|
|
83
93
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CheckoutComponent, deps: [{ token: i1.EventsService }, { token: i2.RestService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
84
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CheckoutComponent, isStandalone: true, selector: "simpo-checkout", inputs: { data: "data", responseData: "responseData", index: "index", edit: "edit", delete: "delete", customClass: "customClass", nextComponentColor: "nextComponentColor" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!isLoading\">\n <section class=\"total-container\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\" simpoHover (hovering)=\"showEditTabs($event)\" [attr.style]=\"customClass\">\n <div class=\"container\" [id]=\"data?.id\" [simpoAnimation]=\"styles?.animation\">\n <div class=\"row\">\n <div class=\"col-md-7 col-12\" *ngIf=\"editDeliveryAddress\">\n <div class=\"shipping-label heading-large\">Shipping To</div>\n <div class=\"row\">\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Name</label>\n <input [(ngModel)]=\"responseData.userDetails.userName\" type=\"text\" placeholder=\"Enter Name\"\n class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Mobile Number</label>\n <input [(ngModel)]=\"responseData.userDetails.mobile\" type=\"number\" placeholder=\"Enter number\"\n class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Email</label>\n <input [(ngModel)]=\"responseData.userDetails.email\" type=\"email\" placeholder=\"Enter email\"\n class=\"input-field\">\n </div>\n </div>\n\n <div class=\"shipping-label\" style=\"margin-top: 15px;\">Shipping Address</div>\n <div class=\"row\">\n <div class=\"col-12 input-parent\">\n <label for=\"\">Address</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.addressLine1\" type=\"text\"\n placeholder=\"Flat/House No, Building, Colony\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Locality/Area</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.localityName\" type=\"text\"\n placeholder=\"Eg: Jaybheri Enclave, Gachibowli\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Landmark</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.landmark\" type=\"text\"\n placeholder=\"Eg: Near SBI Bank\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Pincode</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.zipCode\" type=\"number\" placeholder=\"Eg: 500032\"\n class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">City</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.cityName\" type=\"text\"\n placeholder=\"Eg: Hyderabad\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">State</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.stateName\" type=\"text\"\n placeholder=\"Eg: Telangana\" class=\"input-field\">\n </div>\n </div>\n </div>\n <div class=\"col-md-7 col-12\" *ngIf=\"!editDeliveryAddress\">\n <div class=\"shipping-label\">Delivery Address</div>\n <div class=\"delivery-address\">\n <div style=\"position: absolute;right: 15px;\">\n <img loading=\"lazy\" onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/library-media/813827c1709186499689edit%201.png\"\n alt=\"\" style=\"cursor: pointer;\" (click)=\"editDeliveryAddress = true\">\n </div>\n <div class=\"userName\">{{responseData?.userDetails.userName}}</div>\n <div class=\"user-details\" style=\"margin-top: 5px;\">\n {{responseData?.userDetails.deliveryAddress?.addressLine1}},\n {{responseData?.userDetails.deliveryAddress?.localityName}}</div>\n <div class=\"user-details\">{{responseData?.userDetails.deliveryAddress?.cityName}},\n {{responseData?.userDetails.deliveryAddress?.stateName}}</div>\n <div class=\"user-details\">{{responseData?.userDetails.deliveryAddress?.countryName}} -\n {{responseData?.userDetails.deliveryAddress?.zipCode}}</div>\n <div class=\"user-details\" style=\"margin-top: 5px;\">Phone : <span\n style=\"font-weight: 500;\">{{responseData?.userDetails.mobile}}</span></div>\n </div>\n </div>\n <div class=\"offset-md-1 col-md-4 col-12 right-section\">\n <div class=\"shipping-label heading-large lh-normal\">\n Price Details\n </div>\n <div class=\"price-details\">\n <div class=\"price-parent-block\" *ngIf=\"responseData?.billdetails?.totalNetValue\">\n <div class=\"price-type\">Total MRP</div>\n <div class=\"price-value\"><span [innerHtml]='currency'></span> {{responseData.billdetails.totalNetValue}}</div>\n </div>\n <div class=\"price-parent-block\" *ngIf=\"responseData?.billdetails?.totalTax\">\n <div class=\"price-type\">Total Tax</div>\n <div class=\"price-value\"><span [innerHtml]='currency'></span> {{responseData?.billdetails?.totalTax}}</div>\n </div>\n <div class=\"price-parent-block\" *ngIf=\"liveDeliveryEstimate\">\n <div class=\"price-type\">Delivery</div>\n <div class=\"price-value\">\n <span *ngIf=\"liveDeliveryEstimate.charge > 0\"><span [innerHtml]='currency'></span> {{liveDeliveryEstimate.charge}}</span>\n <span *ngIf=\"liveDeliveryEstimate.charge == 0\">FREE</span>\n </div>\n </div>\n <div class=\"price-parent-block\" style=\"font-size: 11px; color: #9ca3af;\" *ngIf=\"liveDeliveryEstimate?.eta\">\n {{liveDeliveryEstimate?.eta}}\n </div>\n <div class=\"price-parent-block\"\n *ngIf=\"!liveDeliveryEstimate && responseData?.billdetails?.deliveryCharges && responseData.billdetails.deliveryCharges > 0\">\n <div class=\"price-type\">Delivery Charge</div>\n <div class=\"price-value\"><span [innerHtml]='currency'></span> {{responseData.billdetails.deliveryCharges}}</div>\n </div>\n <hr>\n <div class=\"price-parent-block\" *ngIf=\"responseData?.totalAmount\">\n <div class=\"price-type\" style=\"color: black;font-weight: 600;\">Total Amount</div>\n <div class=\"price-value\" style=\"font-weight: 600;\"><span [innerHtml]='currency'></span> {{displayTotalAmount}}</div>\n </div>\n\n <div class=\"button-parent\">\n <button simpoButtonDirective [id]=\"data?.id+(button?.id || '')\" [buttonStyle]=\"button?.styles\" [backgroundInfo]=\"styles?.background\"\n [color]=\"styles?.background?.accentColor\" (click)=\"placeOrder()\">{{content?.button}}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"style?.devider?.display\">\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\" [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\n </ng-container>\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</ng-container>\n\n<ngx-skeleton-loader *ngIf=\"isLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\n width: '100%',\n height: '40vh',\n 'border-radius': '10px',\n 'position': 'relative',\n 'right': '5px'\n}\">\n</ngx-skeleton-loader>\n\n", styles: [".container{margin-top:30px}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.shipping-label{font-weight:600;font-size:18px;color:#141514;margin-bottom:5px}.input-parent{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}.input-label{font-family:Inter;font-weight:400;font-size:14px;color:#141514}.input-field{height:40px;border:2px solid#D0D5DD;border-radius:5px;padding-left:10px;font-size:14px;outline:none}.my-bag{font-size:16px;font-weight:600;font-family:Poppins;color:#000}.my-bag span{color:#939393}.coupon{display:flex;justify-content:space-between;border:1px solid #E8E8E8;border-radius:5px;padding:10px;margin-top:10px}.apply-coupon{font-weight:500;color:#626262;font-size:15px;font-family:Poppins}.coupon-desc{color:#939393;font-size:12px;font-family:Poppins;font-weight:500}.apply-coupon-btn{color:#0267c1;font-size:16px;font-weight:600;font-family:Poppins}.price-details{padding:10px;margin-top:10px;border-radius:5px;box-shadow:0 0 1px #28293d14,0 0 2px #60617029;margin-bottom:15px}.price-parent-block{display:flex;justify-content:space-between;margin-top:5px}.price-type{font-weight:400;font-size:14px;font-family:Poppins;color:#434443}.price-value{font-weight:500;font-family:Poppins;font-size:16px;color:#141514}.button-parent{margin-top:20px;display:flex;flex-direction:column;gap:10px}.button-parent button{padding-top:7px!important;padding-bottom:7px!important;font-size:16px!important}.delivery-address{border:1px solid#D0D5DD;padding:15px;border-radius:5px;box-shadow:0 0 1px #28293d14,0 0 2px #60617029;position:relative}.userName{font-size:18px;font-weight:500;font-family:Poppins;color:#000}.user-details{font-weight:400;font-size:16px;font-family:Poppins}.lh-normal{line-height:normal}hr{border:1px solid #E8E8E8}.total-container{height:auto;position:relative;display:block!important}.hover_effect{position:absolute;width:100%;top:0;left:0;height:100%}@media only screen and (max-width : 475px){.right-section{margin-top:15px}label{margin-bottom:6px}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.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: i3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i5.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i6.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "component", type: i7.NgxSkeletonLoaderComponent, selector: "ngx-skeleton-loader", inputs: ["count", "loadingText", "appearance", "animation", "ariaLabel", "theme"] }, { kind: "directive", type:
|
|
94
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CheckoutComponent, isStandalone: true, selector: "simpo-checkout", inputs: { data: "data", responseData: "responseData", index: "index", edit: "edit", delete: "delete", customClass: "customClass", nextComponentColor: "nextComponentColor" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!isLoading\">\n <section class=\"total-container\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\" simpoHover (hovering)=\"showEditTabs($event)\" [attr.style]=\"customClass\">\n <div class=\"container\" [id]=\"data?.id\" [simpoAnimation]=\"styles?.animation\">\n <div class=\"row\">\n <div class=\"col-md-7 col-12\" *ngIf=\"editDeliveryAddress\">\n <div class=\"shipping-label heading-large\">Shipping To</div>\n <div class=\"row\">\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Name</label>\n <input [(ngModel)]=\"responseData.userDetails.userName\" type=\"text\" placeholder=\"Enter Name\"\n class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Mobile Number</label>\n <input [(ngModel)]=\"responseData.userDetails.mobile\" type=\"number\" placeholder=\"Enter number\"\n class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Email</label>\n <input [(ngModel)]=\"responseData.userDetails.email\" type=\"email\" placeholder=\"Enter email\"\n class=\"input-field\">\n </div>\n </div>\n\n <div class=\"shipping-label\" style=\"margin-top: 15px;\">Shipping Address</div>\n <div class=\"row\">\n <div class=\"col-12 input-parent\">\n <label for=\"\">Address</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.addressLine1\" type=\"text\"\n placeholder=\"Flat/House No, Building, Colony\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Locality/Area</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.localityName\" type=\"text\"\n placeholder=\"Eg: Jaybheri Enclave, Gachibowli\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Landmark</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.landmark\" type=\"text\"\n placeholder=\"Eg: Near SBI Bank\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Pincode</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.zipCode\" (ngModelChange)=\"onDeliveryPincodeChange()\" type=\"number\" placeholder=\"Eg: 500032\"\n class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">City</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.cityName\" type=\"text\"\n placeholder=\"Eg: Hyderabad\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">State</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.stateName\" type=\"text\"\n placeholder=\"Eg: Telangana\" class=\"input-field\">\n </div>\n </div>\n </div>\n <div class=\"col-md-7 col-12\" *ngIf=\"!editDeliveryAddress\">\n <div class=\"shipping-label\">Delivery Address</div>\n <div class=\"delivery-address\">\n <div style=\"position: absolute;right: 15px;\">\n <img loading=\"lazy\" onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/library-media/813827c1709186499689edit%201.png\"\n alt=\"\" style=\"cursor: pointer;\" (click)=\"editDeliveryAddress = true\">\n </div>\n <div class=\"userName\">{{responseData?.userDetails.userName}}</div>\n <div class=\"user-details\" style=\"margin-top: 5px;\">\n {{responseData?.userDetails.deliveryAddress?.addressLine1}},\n {{responseData?.userDetails.deliveryAddress?.localityName}}</div>\n <div class=\"user-details\">{{responseData?.userDetails.deliveryAddress?.cityName}},\n {{responseData?.userDetails.deliveryAddress?.stateName}}</div>\n <div class=\"user-details\">{{responseData?.userDetails.deliveryAddress?.countryName}} -\n {{responseData?.userDetails.deliveryAddress?.zipCode}}</div>\n <div class=\"user-details\" style=\"margin-top: 5px;\">Phone : <span\n style=\"font-weight: 500;\">{{responseData?.userDetails.mobile}}</span></div>\n </div>\n </div>\n <div class=\"offset-md-1 col-md-4 col-12 right-section\">\n <div class=\"shipping-label heading-large lh-normal\">\n Price Details\n </div>\n <div class=\"price-details\">\n <div class=\"price-parent-block\" *ngIf=\"responseData?.billdetails?.totalNetValue\">\n <div class=\"price-type\">Total MRP</div>\n <div class=\"price-value\"><span [innerHtml]='currency'></span> {{responseData.billdetails.totalNetValue}}</div>\n </div>\n <div class=\"price-parent-block\" *ngIf=\"responseData?.billdetails?.totalTax\">\n <div class=\"price-type\">Total Tax</div>\n <div class=\"price-value\"><span [innerHtml]='currency'></span> {{responseData?.billdetails?.totalTax}}</div>\n </div>\n <div class=\"price-parent-block\" *ngIf=\"liveDeliveryEstimate\">\n <div class=\"price-type\">Delivery</div>\n <div class=\"price-value\">\n <span *ngIf=\"liveDeliveryEstimate.charge > 0\"><span [innerHtml]='currency'></span> {{liveDeliveryEstimate.charge}}</span>\n <span *ngIf=\"liveDeliveryEstimate.charge == 0\">FREE</span>\n </div>\n </div>\n <div class=\"price-parent-block\" style=\"font-size: 11px; color: #9ca3af;\" *ngIf=\"liveDeliveryEstimate?.eta\">\n {{liveDeliveryEstimate?.eta}}\n </div>\n <div class=\"price-parent-block\"\n *ngIf=\"!liveDeliveryEstimate && responseData?.billdetails?.deliveryCharges && responseData.billdetails.deliveryCharges > 0\">\n <div class=\"price-type\">Delivery Charge</div>\n <div class=\"price-value\"><span [innerHtml]='currency'></span> {{responseData.billdetails.deliveryCharges}}</div>\n </div>\n <hr>\n <div class=\"price-parent-block\" *ngIf=\"responseData?.totalAmount\">\n <div class=\"price-type\" style=\"color: black;font-weight: 600;\">Total Amount</div>\n <div class=\"price-value\" style=\"font-weight: 600;\"><span [innerHtml]='currency'></span> {{displayTotalAmount}}</div>\n </div>\n\n <div class=\"button-parent\">\n <button simpoButtonDirective [id]=\"data?.id+(button?.id || '')\" [buttonStyle]=\"button?.styles\" [backgroundInfo]=\"styles?.background\"\n [color]=\"styles?.background?.accentColor\" (click)=\"placeOrder()\">{{content?.button}}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"style?.devider?.display\">\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\" [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\n </ng-container>\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</ng-container>\n\n<ngx-skeleton-loader *ngIf=\"isLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\n width: '100%',\n height: '40vh',\n 'border-radius': '10px',\n 'position': 'relative',\n 'right': '5px'\n}\">\n</ngx-skeleton-loader>\n\n", styles: [".container{margin-top:30px}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.shipping-label{font-weight:600;font-size:18px;color:#141514;margin-bottom:5px}.input-parent{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}.input-label{font-family:Inter;font-weight:400;font-size:14px;color:#141514}.input-field{height:40px;border:2px solid#D0D5DD;border-radius:5px;padding-left:10px;font-size:14px;outline:none}.my-bag{font-size:16px;font-weight:600;font-family:Poppins;color:#000}.my-bag span{color:#939393}.coupon{display:flex;justify-content:space-between;border:1px solid #E8E8E8;border-radius:5px;padding:10px;margin-top:10px}.apply-coupon{font-weight:500;color:#626262;font-size:15px;font-family:Poppins}.coupon-desc{color:#939393;font-size:12px;font-family:Poppins;font-weight:500}.apply-coupon-btn{color:#0267c1;font-size:16px;font-weight:600;font-family:Poppins}.price-details{padding:10px;margin-top:10px;border-radius:5px;box-shadow:0 0 1px #28293d14,0 0 2px #60617029;margin-bottom:15px}.price-parent-block{display:flex;justify-content:space-between;margin-top:5px}.price-type{font-weight:400;font-size:14px;font-family:Poppins;color:#434443}.price-value{font-weight:500;font-family:Poppins;font-size:16px;color:#141514}.button-parent{margin-top:20px;display:flex;flex-direction:column;gap:10px}.button-parent button{padding-top:7px!important;padding-bottom:7px!important;font-size:16px!important}.delivery-address{border:1px solid#D0D5DD;padding:15px;border-radius:5px;box-shadow:0 0 1px #28293d14,0 0 2px #60617029;position:relative}.userName{font-size:18px;font-weight:500;font-family:Poppins;color:#000}.user-details{font-weight:400;font-size:16px;font-family:Poppins}.lh-normal{line-height:normal}hr{border:1px solid #E8E8E8}.total-container{height:auto;position:relative;display:block!important}.hover_effect{position:absolute;width:100%;top:0;left:0;height:100%}@media only screen and (max-width : 475px){.right-section{margin-top:15px}label{margin-bottom:6px}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.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: i3.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i5.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i6.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "component", type: i7.NgxSkeletonLoaderComponent, selector: "ngx-skeleton-loader", inputs: ["count", "loadingText", "appearance", "animation", "ariaLabel", "theme"] }, { kind: "directive", type:
|
|
85
95
|
//DIRECTIVE
|
|
86
96
|
ButtonDirectiveDirective, selector: "[simpoButtonDirective]", inputs: ["buttonStyle", "color", "scrollValue", "backgroundInfo"] }, { kind: "directive", type: AnimationDirective, selector: "[simpoAnimation]", inputs: ["simpoAnimation"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "component", type: SvgDividerComponent, selector: "simpo-svg-divider", inputs: ["dividerType", "color"] }] }); }
|
|
87
97
|
}
|
|
@@ -94,7 +104,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
94
104
|
AnimationDirective,
|
|
95
105
|
ContentFitDirective,
|
|
96
106
|
HoverDirective, SvgDividerComponent
|
|
97
|
-
], template: "<ng-container *ngIf=\"!isLoading\">\n <section class=\"total-container\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\" simpoHover (hovering)=\"showEditTabs($event)\" [attr.style]=\"customClass\">\n <div class=\"container\" [id]=\"data?.id\" [simpoAnimation]=\"styles?.animation\">\n <div class=\"row\">\n <div class=\"col-md-7 col-12\" *ngIf=\"editDeliveryAddress\">\n <div class=\"shipping-label heading-large\">Shipping To</div>\n <div class=\"row\">\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Name</label>\n <input [(ngModel)]=\"responseData.userDetails.userName\" type=\"text\" placeholder=\"Enter Name\"\n class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Mobile Number</label>\n <input [(ngModel)]=\"responseData.userDetails.mobile\" type=\"number\" placeholder=\"Enter number\"\n class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Email</label>\n <input [(ngModel)]=\"responseData.userDetails.email\" type=\"email\" placeholder=\"Enter email\"\n class=\"input-field\">\n </div>\n </div>\n\n <div class=\"shipping-label\" style=\"margin-top: 15px;\">Shipping Address</div>\n <div class=\"row\">\n <div class=\"col-12 input-parent\">\n <label for=\"\">Address</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.addressLine1\" type=\"text\"\n placeholder=\"Flat/House No, Building, Colony\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Locality/Area</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.localityName\" type=\"text\"\n placeholder=\"Eg: Jaybheri Enclave, Gachibowli\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Landmark</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.landmark\" type=\"text\"\n placeholder=\"Eg: Near SBI Bank\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Pincode</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.zipCode\" type=\"number\" placeholder=\"Eg: 500032\"\n class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">City</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.cityName\" type=\"text\"\n placeholder=\"Eg: Hyderabad\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">State</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.stateName\" type=\"text\"\n placeholder=\"Eg: Telangana\" class=\"input-field\">\n </div>\n </div>\n </div>\n <div class=\"col-md-7 col-12\" *ngIf=\"!editDeliveryAddress\">\n <div class=\"shipping-label\">Delivery Address</div>\n <div class=\"delivery-address\">\n <div style=\"position: absolute;right: 15px;\">\n <img loading=\"lazy\" onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/library-media/813827c1709186499689edit%201.png\"\n alt=\"\" style=\"cursor: pointer;\" (click)=\"editDeliveryAddress = true\">\n </div>\n <div class=\"userName\">{{responseData?.userDetails.userName}}</div>\n <div class=\"user-details\" style=\"margin-top: 5px;\">\n {{responseData?.userDetails.deliveryAddress?.addressLine1}},\n {{responseData?.userDetails.deliveryAddress?.localityName}}</div>\n <div class=\"user-details\">{{responseData?.userDetails.deliveryAddress?.cityName}},\n {{responseData?.userDetails.deliveryAddress?.stateName}}</div>\n <div class=\"user-details\">{{responseData?.userDetails.deliveryAddress?.countryName}} -\n {{responseData?.userDetails.deliveryAddress?.zipCode}}</div>\n <div class=\"user-details\" style=\"margin-top: 5px;\">Phone : <span\n style=\"font-weight: 500;\">{{responseData?.userDetails.mobile}}</span></div>\n </div>\n </div>\n <div class=\"offset-md-1 col-md-4 col-12 right-section\">\n <div class=\"shipping-label heading-large lh-normal\">\n Price Details\n </div>\n <div class=\"price-details\">\n <div class=\"price-parent-block\" *ngIf=\"responseData?.billdetails?.totalNetValue\">\n <div class=\"price-type\">Total MRP</div>\n <div class=\"price-value\"><span [innerHtml]='currency'></span> {{responseData.billdetails.totalNetValue}}</div>\n </div>\n <div class=\"price-parent-block\" *ngIf=\"responseData?.billdetails?.totalTax\">\n <div class=\"price-type\">Total Tax</div>\n <div class=\"price-value\"><span [innerHtml]='currency'></span> {{responseData?.billdetails?.totalTax}}</div>\n </div>\n <div class=\"price-parent-block\" *ngIf=\"liveDeliveryEstimate\">\n <div class=\"price-type\">Delivery</div>\n <div class=\"price-value\">\n <span *ngIf=\"liveDeliveryEstimate.charge > 0\"><span [innerHtml]='currency'></span> {{liveDeliveryEstimate.charge}}</span>\n <span *ngIf=\"liveDeliveryEstimate.charge == 0\">FREE</span>\n </div>\n </div>\n <div class=\"price-parent-block\" style=\"font-size: 11px; color: #9ca3af;\" *ngIf=\"liveDeliveryEstimate?.eta\">\n {{liveDeliveryEstimate?.eta}}\n </div>\n <div class=\"price-parent-block\"\n *ngIf=\"!liveDeliveryEstimate && responseData?.billdetails?.deliveryCharges && responseData.billdetails.deliveryCharges > 0\">\n <div class=\"price-type\">Delivery Charge</div>\n <div class=\"price-value\"><span [innerHtml]='currency'></span> {{responseData.billdetails.deliveryCharges}}</div>\n </div>\n <hr>\n <div class=\"price-parent-block\" *ngIf=\"responseData?.totalAmount\">\n <div class=\"price-type\" style=\"color: black;font-weight: 600;\">Total Amount</div>\n <div class=\"price-value\" style=\"font-weight: 600;\"><span [innerHtml]='currency'></span> {{displayTotalAmount}}</div>\n </div>\n\n <div class=\"button-parent\">\n <button simpoButtonDirective [id]=\"data?.id+(button?.id || '')\" [buttonStyle]=\"button?.styles\" [backgroundInfo]=\"styles?.background\"\n [color]=\"styles?.background?.accentColor\" (click)=\"placeOrder()\">{{content?.button}}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"style?.devider?.display\">\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\" [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\n </ng-container>\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</ng-container>\n\n<ngx-skeleton-loader *ngIf=\"isLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\n width: '100%',\n height: '40vh',\n 'border-radius': '10px',\n 'position': 'relative',\n 'right': '5px'\n}\">\n</ngx-skeleton-loader>\n\n", styles: [".container{margin-top:30px}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.shipping-label{font-weight:600;font-size:18px;color:#141514;margin-bottom:5px}.input-parent{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}.input-label{font-family:Inter;font-weight:400;font-size:14px;color:#141514}.input-field{height:40px;border:2px solid#D0D5DD;border-radius:5px;padding-left:10px;font-size:14px;outline:none}.my-bag{font-size:16px;font-weight:600;font-family:Poppins;color:#000}.my-bag span{color:#939393}.coupon{display:flex;justify-content:space-between;border:1px solid #E8E8E8;border-radius:5px;padding:10px;margin-top:10px}.apply-coupon{font-weight:500;color:#626262;font-size:15px;font-family:Poppins}.coupon-desc{color:#939393;font-size:12px;font-family:Poppins;font-weight:500}.apply-coupon-btn{color:#0267c1;font-size:16px;font-weight:600;font-family:Poppins}.price-details{padding:10px;margin-top:10px;border-radius:5px;box-shadow:0 0 1px #28293d14,0 0 2px #60617029;margin-bottom:15px}.price-parent-block{display:flex;justify-content:space-between;margin-top:5px}.price-type{font-weight:400;font-size:14px;font-family:Poppins;color:#434443}.price-value{font-weight:500;font-family:Poppins;font-size:16px;color:#141514}.button-parent{margin-top:20px;display:flex;flex-direction:column;gap:10px}.button-parent button{padding-top:7px!important;padding-bottom:7px!important;font-size:16px!important}.delivery-address{border:1px solid#D0D5DD;padding:15px;border-radius:5px;box-shadow:0 0 1px #28293d14,0 0 2px #60617029;position:relative}.userName{font-size:18px;font-weight:500;font-family:Poppins;color:#000}.user-details{font-weight:400;font-size:16px;font-family:Poppins}.lh-normal{line-height:normal}hr{border:1px solid #E8E8E8}.total-container{height:auto;position:relative;display:block!important}.hover_effect{position:absolute;width:100%;top:0;left:0;height:100%}@media only screen and (max-width : 475px){.right-section{margin-top:15px}label{margin-bottom:6px}}\n"] }]
|
|
107
|
+
], template: "<ng-container *ngIf=\"!isLoading\">\n <section class=\"total-container\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\" simpoHover (hovering)=\"showEditTabs($event)\" [attr.style]=\"customClass\">\n <div class=\"container\" [id]=\"data?.id\" [simpoAnimation]=\"styles?.animation\">\n <div class=\"row\">\n <div class=\"col-md-7 col-12\" *ngIf=\"editDeliveryAddress\">\n <div class=\"shipping-label heading-large\">Shipping To</div>\n <div class=\"row\">\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Name</label>\n <input [(ngModel)]=\"responseData.userDetails.userName\" type=\"text\" placeholder=\"Enter Name\"\n class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Mobile Number</label>\n <input [(ngModel)]=\"responseData.userDetails.mobile\" type=\"number\" placeholder=\"Enter number\"\n class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Email</label>\n <input [(ngModel)]=\"responseData.userDetails.email\" type=\"email\" placeholder=\"Enter email\"\n class=\"input-field\">\n </div>\n </div>\n\n <div class=\"shipping-label\" style=\"margin-top: 15px;\">Shipping Address</div>\n <div class=\"row\">\n <div class=\"col-12 input-parent\">\n <label for=\"\">Address</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.addressLine1\" type=\"text\"\n placeholder=\"Flat/House No, Building, Colony\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Locality/Area</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.localityName\" type=\"text\"\n placeholder=\"Eg: Jaybheri Enclave, Gachibowli\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Landmark</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.landmark\" type=\"text\"\n placeholder=\"Eg: Near SBI Bank\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">Pincode</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.zipCode\" (ngModelChange)=\"onDeliveryPincodeChange()\" type=\"number\" placeholder=\"Eg: 500032\"\n class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">City</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.cityName\" type=\"text\"\n placeholder=\"Eg: Hyderabad\" class=\"input-field\">\n </div>\n <div class=\"col-md-6 col-12 input-parent\">\n <label for=\"\">State</label>\n <input [(ngModel)]=\"responseData.userDetails.deliveryAddress.stateName\" type=\"text\"\n placeholder=\"Eg: Telangana\" class=\"input-field\">\n </div>\n </div>\n </div>\n <div class=\"col-md-7 col-12\" *ngIf=\"!editDeliveryAddress\">\n <div class=\"shipping-label\">Delivery Address</div>\n <div class=\"delivery-address\">\n <div style=\"position: absolute;right: 15px;\">\n <img loading=\"lazy\" onerror=\"this.src='https://i.postimg.cc/hPS2JpV0/no-image-available.jpg'\" src=\"https://prod-simpo.s3.ap-south-1.amazonaws.com/library-media/813827c1709186499689edit%201.png\"\n alt=\"\" style=\"cursor: pointer;\" (click)=\"editDeliveryAddress = true\">\n </div>\n <div class=\"userName\">{{responseData?.userDetails.userName}}</div>\n <div class=\"user-details\" style=\"margin-top: 5px;\">\n {{responseData?.userDetails.deliveryAddress?.addressLine1}},\n {{responseData?.userDetails.deliveryAddress?.localityName}}</div>\n <div class=\"user-details\">{{responseData?.userDetails.deliveryAddress?.cityName}},\n {{responseData?.userDetails.deliveryAddress?.stateName}}</div>\n <div class=\"user-details\">{{responseData?.userDetails.deliveryAddress?.countryName}} -\n {{responseData?.userDetails.deliveryAddress?.zipCode}}</div>\n <div class=\"user-details\" style=\"margin-top: 5px;\">Phone : <span\n style=\"font-weight: 500;\">{{responseData?.userDetails.mobile}}</span></div>\n </div>\n </div>\n <div class=\"offset-md-1 col-md-4 col-12 right-section\">\n <div class=\"shipping-label heading-large lh-normal\">\n Price Details\n </div>\n <div class=\"price-details\">\n <div class=\"price-parent-block\" *ngIf=\"responseData?.billdetails?.totalNetValue\">\n <div class=\"price-type\">Total MRP</div>\n <div class=\"price-value\"><span [innerHtml]='currency'></span> {{responseData.billdetails.totalNetValue}}</div>\n </div>\n <div class=\"price-parent-block\" *ngIf=\"responseData?.billdetails?.totalTax\">\n <div class=\"price-type\">Total Tax</div>\n <div class=\"price-value\"><span [innerHtml]='currency'></span> {{responseData?.billdetails?.totalTax}}</div>\n </div>\n <div class=\"price-parent-block\" *ngIf=\"liveDeliveryEstimate\">\n <div class=\"price-type\">Delivery</div>\n <div class=\"price-value\">\n <span *ngIf=\"liveDeliveryEstimate.charge > 0\"><span [innerHtml]='currency'></span> {{liveDeliveryEstimate.charge}}</span>\n <span *ngIf=\"liveDeliveryEstimate.charge == 0\">FREE</span>\n </div>\n </div>\n <div class=\"price-parent-block\" style=\"font-size: 11px; color: #9ca3af;\" *ngIf=\"liveDeliveryEstimate?.eta\">\n {{liveDeliveryEstimate?.eta}}\n </div>\n <div class=\"price-parent-block\"\n *ngIf=\"!liveDeliveryEstimate && responseData?.billdetails?.deliveryCharges && responseData.billdetails.deliveryCharges > 0\">\n <div class=\"price-type\">Delivery Charge</div>\n <div class=\"price-value\"><span [innerHtml]='currency'></span> {{responseData.billdetails.deliveryCharges}}</div>\n </div>\n <hr>\n <div class=\"price-parent-block\" *ngIf=\"responseData?.totalAmount\">\n <div class=\"price-type\" style=\"color: black;font-weight: 600;\">Total Amount</div>\n <div class=\"price-value\" style=\"font-weight: 600;\"><span [innerHtml]='currency'></span> {{displayTotalAmount}}</div>\n </div>\n\n <div class=\"button-parent\">\n <button simpoButtonDirective [id]=\"data?.id+(button?.id || '')\" [buttonStyle]=\"button?.styles\" [backgroundInfo]=\"styles?.background\"\n [color]=\"styles?.background?.accentColor\" (click)=\"placeOrder()\">{{content?.button}}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n <ng-container *ngIf=\"style?.devider?.display\">\n <simpo-svg-divider [dividerType]=\"style?.devider?.deviderType\" [color]=\"nextComponentColor?.color\"></simpo-svg-divider>\n </ng-container>\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</ng-container>\n\n<ngx-skeleton-loader *ngIf=\"isLoading\" count=\"1\" appearance=\"circle\" [theme]=\"{\n width: '100%',\n height: '40vh',\n 'border-radius': '10px',\n 'position': 'relative',\n 'right': '5px'\n}\">\n</ngx-skeleton-loader>\n\n", styles: [".container{margin-top:30px}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.shipping-label{font-weight:600;font-size:18px;color:#141514;margin-bottom:5px}.input-parent{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}.input-label{font-family:Inter;font-weight:400;font-size:14px;color:#141514}.input-field{height:40px;border:2px solid#D0D5DD;border-radius:5px;padding-left:10px;font-size:14px;outline:none}.my-bag{font-size:16px;font-weight:600;font-family:Poppins;color:#000}.my-bag span{color:#939393}.coupon{display:flex;justify-content:space-between;border:1px solid #E8E8E8;border-radius:5px;padding:10px;margin-top:10px}.apply-coupon{font-weight:500;color:#626262;font-size:15px;font-family:Poppins}.coupon-desc{color:#939393;font-size:12px;font-family:Poppins;font-weight:500}.apply-coupon-btn{color:#0267c1;font-size:16px;font-weight:600;font-family:Poppins}.price-details{padding:10px;margin-top:10px;border-radius:5px;box-shadow:0 0 1px #28293d14,0 0 2px #60617029;margin-bottom:15px}.price-parent-block{display:flex;justify-content:space-between;margin-top:5px}.price-type{font-weight:400;font-size:14px;font-family:Poppins;color:#434443}.price-value{font-weight:500;font-family:Poppins;font-size:16px;color:#141514}.button-parent{margin-top:20px;display:flex;flex-direction:column;gap:10px}.button-parent button{padding-top:7px!important;padding-bottom:7px!important;font-size:16px!important}.delivery-address{border:1px solid#D0D5DD;padding:15px;border-radius:5px;box-shadow:0 0 1px #28293d14,0 0 2px #60617029;position:relative}.userName{font-size:18px;font-weight:500;font-family:Poppins;color:#000}.user-details{font-weight:400;font-size:16px;font-family:Poppins}.lh-normal{line-height:normal}hr{border:1px solid #E8E8E8}.total-container{height:auto;position:relative;display:block!important}.hover_effect{position:absolute;width:100%;top:0;left:0;height:100%}@media only screen and (max-width : 475px){.right-section{margin-top:15px}label{margin-bottom:6px}}\n"] }]
|
|
98
108
|
}], ctorParameters: () => [{ type: i1.EventsService }, { type: i2.RestService }], propDecorators: { data: [{
|
|
99
109
|
type: Input
|
|
100
110
|
}], responseData: [{
|
|
@@ -110,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
110
120
|
}], nextComponentColor: [{
|
|
111
121
|
type: Input
|
|
112
122
|
}] } });
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvY2hlY2tvdXQvY2hlY2tvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvY2hlY2tvdXQvY2hlY2tvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxXQUFXLE1BQU0sK0JBQStCLENBQUM7QUFHeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scURBQXFELENBQUM7Ozs7Ozs7OztBQWlCMUYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFdBQVc7SUFhaEQsWUFBb0IsYUFBNkIsRUFBVSxXQUF3QjtRQUNqRixLQUFLLEVBQUUsQ0FBQTtRQURXLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBRm5GLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFNM0Isd0JBQW1CLEdBQUcsSUFBSSxDQUFDO1FBSzNCLGtHQUFrRztRQUNsRyw4RkFBOEY7UUFDOUYsbUdBQW1HO1FBQ25HLDhGQUE4RjtRQUM5Rix5QkFBb0IsR0FBdUUsSUFBSSxDQUFDO0lBWGhHLENBQUM7SUFhRCxRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN6RSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7UUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUMsRUFBRTtZQUN6RCxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCx5QkFBeUI7UUFDdkIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE9BQU8sQ0FBQztRQUNqRixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDckIsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLFlBQVksSUFBSSxFQUFFLENBQUM7UUFDcEQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQWEsRUFBRSxJQUFTLEVBQUUsRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDL0gsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsZUFBZSxJQUFJLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLGVBQWUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUMvRixJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3hELEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNuRCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBQ0QsV0FBVztRQUVULElBQUcsTUFBTSxDQUFDLFVBQVUsSUFBSSxHQUFHO1lBQ3pCLE9BQU87UUFFVCxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxVQUFVLENBQUMsR0FBRSxFQUFFO1lBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQ3hELENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLGtCQUFrQixDQUFDLFFBQVEsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7b0JBSWdCO0lBQ2hCLElBQUksa0JBQWtCO1FBQ3BCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDL0IsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsZUFBZSxJQUFJLENBQUMsQ0FBQztRQUMzRSxPQUFPLElBQUksR0FBRyxhQUFhLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQztJQUNqRSxDQUFDOytHQW5GVSxpQkFBaUI7bUdBQWpCLGlCQUFpQiwrUUMvQjlCLDhoUUE4SUEsc2lFRDFIWSxXQUFXLGd4QkFBRSxZQUFZLGdPQUNqQyxvQkFBb0I7Z0JBQ3BCLFdBQVc7Z0JBQ1gsd0JBQXdCLHNJQUN4QixrQkFBa0IseUZBQ2xCLG1CQUFtQixtRkFDbkIsY0FBYyxnRkFBQyxtQkFBbUI7OzRGQUt6QixpQkFBaUI7a0JBZDdCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFFLFlBQVk7d0JBQ2pDLG9CQUFvQjt3QkFDcEIsV0FBVzt3QkFDWCx3QkFBd0I7d0JBQ3hCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixjQUFjLEVBQUMsbUJBQW1CO3FCQUNuQzs0R0FLUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLGtCQUFrQjtzQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoZWNrb3V0Q29udGVudE1vZGFsLCBDaGVja291dE1vZGFsLCBDaGVja291dFN0eWxlc01vZGFsIH0gZnJvbSAnLi9jaGVja291dC5tb2RhbCc7XG5pbXBvcnQgeyBDYXJ0IH0gZnJvbSAnLi4vLi4vc3R5bGVzL2NhcnQubW9kYWwnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQnV0dG9uRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2J1dHRvbi1kaXJlY3RpdmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcbmltcG9ydCB7IEhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2hvdmVyLWVsZW1lbnQtZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbnRlbnRGaXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvY29udGVudC1maXQtZGlyZWN0aXZlJztcbmltcG9ydCB7IFNpbXBvQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9pbmRleCc7XG5pbXBvcnQgQmFzZVNlY3Rpb24gZnJvbSAnLi4vLi4vLi4vc2VjdGlvbnMvQmFzZVNlY3Rpb24nO1xuaW1wb3J0IHsgQmFja2dyb3VuZE1vZGVsLCBCYW5uZXJTdHlsZXNNb2RlbCwgQnV0dG9uTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvc3R5bGUubW9kZWwnO1xuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4vLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQlVTSU5FU1NfQ09OU1RBTlRTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2J1c2luZXNzLmNvbnN0YW50JztcbmltcG9ydCB7IFN2Z0RpdmlkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9zdmctZGl2aWRlci9zdmctZGl2aWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaW1wby1jaGVja291dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgQ29tbW9uTW9kdWxlLFxuICAgIFNpbXBvQ29tcG9uZW50TW9kdWxlLFxuICAgIC8vRElSRUNUSVZFXG4gICAgQnV0dG9uRGlyZWN0aXZlRGlyZWN0aXZlLFxuICAgIEFuaW1hdGlvbkRpcmVjdGl2ZSxcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxuICAgIEhvdmVyRGlyZWN0aXZlLFN2Z0RpdmlkZXJDb21wb25lbnRcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrb3V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NoZWNrb3V0LmNvbXBvbmVudC5jc3MnXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrb3V0Q29tcG9uZW50IGV4dGVuZHMgQmFzZVNlY3Rpb257XG4gIEBJbnB1dCgpIGRhdGE/OiBDaGVja291dE1vZGFsO1xuICBASW5wdXQoKSByZXNwb25zZURhdGE/OiBhbnk7XG4gIEBJbnB1dCgpIGluZGV4PyA6IG51bWJlcjtcbiAgQElucHV0KCkgZWRpdD8gOiBib29sZWFuO1xuICBASW5wdXQoKSBkZWxldGU/IDogYm9vbGVhbjtcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XG4gIFxuICBASW5wdXQoKSBuZXh0Q29tcG9uZW50Q29sb3I/OiBCYWNrZ3JvdW5kTW9kZWw7XG4gIHN0eWxlPzogQmFubmVyU3R5bGVzTW9kZWw7XG5cbiAgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZXZlbnRTZXJ2aWNlIDogRXZlbnRzU2VydmljZSwgcHJpdmF0ZSByZXN0U2VydmljZTogUmVzdFNlcnZpY2Upe1xuICAgIHN1cGVyKClcbiAgfVxuXG4gIGVkaXREZWxpdmVyeUFkZHJlc3MgPSB0cnVlO1xuICBjb250ZW50PzogQ2hlY2tvdXRDb250ZW50TW9kYWw7XG4gIHN0eWxlcz86IENoZWNrb3V0U3R5bGVzTW9kYWw7XG4gIGJ1dHRvbj86IEJ1dHRvbk1vZGVsO1xuXG4gIC8vIExpdmUgZXN0aW1hdGUgZnJvbSBTaGlwcm9ja2V0LCBrZXllZCBvZmYgdGhlIGNob3NlbiBkZWxpdmVyeSBhZGRyZXNzJ3MgcGluY29kZSAtIHRoZSBjYXJ0J3Mgb3duXG4gIC8vIGJpbGxkZXRhaWxzLmRlbGl2ZXJ5Q2hhcmdlcyBwcmVkYXRlcyB0aGlzIGFuZCBoYXMgbm8gcGluY29kZSB0byB3b3JrIHdpdGggYXQgY2FydC12aWV3IHRpbWVcbiAgLy8gKHNlZSBTaGlwcm9ja2V0RGVsaXZlcnlFc3RpbWF0ZVNlcnZpY2UncyBvd24gZGVzaWduIG5vdGUpLCBzbyB0aGlzIG92ZXJyaWRlcyBpdCBmb3IgZGlzcGxheSBvbmNlXG4gIC8vIGEgcmVhbCBkZWxpdmVyeSBhZGRyZXNzIGlzIGtub3duLCByYXRoZXIgdGhhbiB0cnlpbmcgdG8gcmV0cm9maXQgdGhlIGNhcnQtdmlldyBjYWxjdWxhdGlvbi5cbiAgbGl2ZURlbGl2ZXJ5RXN0aW1hdGU6IHsgY2hhcmdlOiBudW1iZXI7IG5vdGU6IHN0cmluZyB8IG51bGw7IGV0YTogc3RyaW5nIHwgbnVsbCB9IHwgbnVsbCA9IG51bGw7XG5cbiAgbmdPbkluaXQoKXtcbiAgICB0aGlzLmVkaXREZWxpdmVyeUFkZHJlc3MgPSB0aGlzLnJlc3BvbnNlRGF0YT8udXNlckRldGFpbHMgPyB0cnVlIDogZmFsc2U7XG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5kYXRhPy5jb250ZW50O1xuICAgIHRoaXMuc3R5bGVzID0gdGhpcy5kYXRhPy5zdHlsZXM7XG4gICAgdGhpcy5idXR0b24gPSB0aGlzLmRhdGE/LmFjdGlvbj8uYnV0dG9uc1swXTtcbiAgICB0aGlzLl9ldmVudFNlcnZpY2Uuc2hvd0xvYWRpbmdTY3JlZW4uc3Vic2NyaWJlKChyZXNwb25zZSk9PiB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHJlc3BvbnNlO1xuICAgIH0pXG4gICAgdGhpcy5mZXRjaExpdmVEZWxpdmVyeUVzdGltYXRlKCk7XG4gIH1cblxuICBmZXRjaExpdmVEZWxpdmVyeUVzdGltYXRlKCkge1xuICAgIGNvbnN0IGRlbGl2ZXJ5UGluY29kZSA9IHRoaXMucmVzcG9uc2VEYXRhPy51c2VyRGV0YWlscz8uZGVsaXZlcnlBZGRyZXNzPy56aXBDb2RlO1xuICAgIGlmICghZGVsaXZlcnlQaW5jb2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5yZXNwb25zZURhdGE/Lm9yZGVyZWRJdGVtcyA/PyBbXTtcbiAgICBjb25zdCB3ZWlnaHRLZyA9IGl0ZW1zLnJlZHVjZSgodG90YWw6IG51bWJlciwgaXRlbTogYW55KSA9PiB0b3RhbCArICgoaXRlbT8ud2VpZ2h0IHx8IDAuNSkgKiAoaXRlbT8ucXVhbnRpdHkgfHwgMSkpLCAwKSB8fCAwLjU7XG4gICAgY29uc3Qgb3JkZXJHcm9zc1ZhbHVlID0gdGhpcy5yZXNwb25zZURhdGE/LmJpbGxkZXRhaWxzPy50b3RhbEdyb3NzVmFsdWUgPz8gMDtcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldERlbGl2ZXJ5RXN0aW1hdGUoZGVsaXZlcnlQaW5jb2RlLCB3ZWlnaHRLZywgdHJ1ZSwgb3JkZXJHcm9zc1ZhbHVlKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7IHRoaXMubGl2ZURlbGl2ZXJ5RXN0aW1hdGUgPSByZXM7IH0sXG4gICAgICBlcnJvcjogKCkgPT4geyB0aGlzLmxpdmVEZWxpdmVyeUVzdGltYXRlID0gbnVsbDsgfVxuICAgIH0pO1xuICB9XG5cbiAgcGxhY2VPcmRlcigpe1xuICAgIHRoaXMuX2V2ZW50U2VydmljZS5wbGFjZU9yZGVyLmVtaXQoe2NhcnREYXRhOiB0aGlzLnJlc3BvbnNlRGF0YX0pO1xuICB9XG4gIGVkaXRTZWN0aW9uKCl7XG5cbiAgICBpZih3aW5kb3cuaW5uZXJXaWR0aCA8PSA0NzUpXG4gICAgICByZXR1cm47XG4gICAgXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnRvZ2dsZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xuICAgIHNldFRpbWVvdXQoKCk9PiB7XG4gICAgICB0aGlzLl9ldmVudFNlcnZpY2UuZWRpdFNlY3Rpb24uZW1pdCh7ZGF0YTp0aGlzLmRhdGF9KTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgZ2V0IGN1cnJlbmN5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEJVU0lORVNTX0NPTlNUQU5UUy5DVVJSRU5DWTtcbiAgfVxuXG4gIC8qKiByZXNwb25zZURhdGEudG90YWxBbW91bnQgd2FzIGNvbXB1dGVkIHVwc3RyZWFtIHVzaW5nIHRoZSBjYXJ0J3Mgc3RhbGUgKHBpbmNvZGUtbGVzcylcbiAgICogZGVsaXZlcnlDaGFyZ2VzIC0gc3dhcCB0aGF0IGNvbXBvbmVudCBvdXQgZm9yIHRoZSBsaXZlIGVzdGltYXRlIGZvciBkaXNwbGF5LCBzbyB0aGUgdG90YWxcbiAgICogc2hvd24gaGVyZSBkb2Vzbid0IGNvbnRyYWRpY3QgdGhlIERlbGl2ZXJ5IGxpbmUgZGlyZWN0bHkgYWJvdmUgaXQuIERvZXMgbm90IHRvdWNoIHRoZSBhY3R1YWxcbiAgICogb3JkZXIgcGF5bG9hZC9iaWxsZGV0YWlscyAtIGRpc3BsYXkgb25seSwgcGVyIHRoaXMgZmVhdHVyZSdzIHNjb3BlZC1vdXQgcGF5bWVudC1jb3JyZWN0bmVzc1xuICAgKiBmb2xsb3ctdXAuICovXG4gIGdldCBkaXNwbGF5VG90YWxBbW91bnQoKTogbnVtYmVyIHtcbiAgICBjb25zdCBiYXNlID0gdGhpcy5yZXNwb25zZURhdGE/LnRvdGFsQW1vdW50ID8/IDA7XG4gICAgaWYgKCF0aGlzLmxpdmVEZWxpdmVyeUVzdGltYXRlKSB7XG4gICAgICByZXR1cm4gYmFzZTtcbiAgICB9XG4gICAgY29uc3Qgc3RhbGVEZWxpdmVyeSA9IHRoaXMucmVzcG9uc2VEYXRhPy5iaWxsZGV0YWlscz8uZGVsaXZlcnlDaGFyZ2VzID8/IDA7XG4gICAgcmV0dXJuIGJhc2UgLSBzdGFsZURlbGl2ZXJ5ICsgdGhpcy5saXZlRGVsaXZlcnlFc3RpbWF0ZS5jaGFyZ2U7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMb2FkaW5nXCI+XG4gIDxzZWN0aW9uIGNsYXNzPVwidG90YWwtY29udGFpbmVyXCIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvTGF5b3V0XT1cInN0eWxlcz8ubGF5b3V0XCIgc2ltcG9Ib3ZlciAoaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIiAgW2F0dHIuc3R5bGVdPVwiY3VzdG9tQ2xhc3NcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvQW5pbWF0aW9uXT1cInN0eWxlcz8uYW5pbWF0aW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNyBjb2wtMTJcIiAqbmdJZj1cImVkaXREZWxpdmVyeUFkZHJlc3NcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpcHBpbmctbGFiZWwgaGVhZGluZy1sYXJnZVwiPlNoaXBwaW5nIFRvPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC0xMiBpbnB1dC1wYXJlbnRcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiPk5hbWU8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJyZXNwb25zZURhdGEudXNlckRldGFpbHMudXNlck5hbWVcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgTmFtZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1maWVsZFwiPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgY29sLTEyIGlucHV0LXBhcmVudFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiXCI+TW9iaWxlIE51bWJlcjwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInJlc3BvbnNlRGF0YS51c2VyRGV0YWlscy5tb2JpbGVcIiB0eXBlPVwibnVtYmVyXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBudW1iZXJcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZmllbGRcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC0xMiBpbnB1dC1wYXJlbnRcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiPkVtYWlsPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwicmVzcG9uc2VEYXRhLnVzZXJEZXRhaWxzLmVtYWlsXCIgdHlwZT1cImVtYWlsXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBlbWFpbFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1maWVsZFwiPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpcHBpbmctbGFiZWxcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDE1cHg7XCI+U2hpcHBpbmcgQWRkcmVzczwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgaW5wdXQtcGFyZW50XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIj5BZGRyZXNzPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwicmVzcG9uc2VEYXRhLnVzZXJEZXRhaWxzLmRlbGl2ZXJ5QWRkcmVzcy5hZGRyZXNzTGluZTFcIiB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJGbGF0L0hvdXNlIE5vLCBCdWlsZGluZywgQ29sb255XCIgY2xhc3M9XCJpbnB1dC1maWVsZFwiPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgY29sLTEyIGlucHV0LXBhcmVudFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiXCI+TG9jYWxpdHkvQXJlYTwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInJlc3BvbnNlRGF0YS51c2VyRGV0YWlscy5kZWxpdmVyeUFkZHJlc3MubG9jYWxpdHlOYW1lXCIgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRWc6IEpheWJoZXJpIEVuY2xhdmUsIEdhY2hpYm93bGlcIiBjbGFzcz1cImlucHV0LWZpZWxkXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtMTIgaW5wdXQtcGFyZW50XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIj5MYW5kbWFyazwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInJlc3BvbnNlRGF0YS51c2VyRGV0YWlscy5kZWxpdmVyeUFkZHJlc3MubGFuZG1hcmtcIiB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFZzogTmVhciBTQkkgQmFua1wiIGNsYXNzPVwiaW5wdXQtZmllbGRcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC0xMiBpbnB1dC1wYXJlbnRcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiPlBpbmNvZGU8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJyZXNwb25zZURhdGEudXNlckRldGFpbHMuZGVsaXZlcnlBZGRyZXNzLnppcENvZGVcIiB0eXBlPVwibnVtYmVyXCIgcGxhY2Vob2xkZXI9XCJFZzogNTAwMDMyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LWZpZWxkXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtMTIgaW5wdXQtcGFyZW50XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIj5DaXR5PC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwicmVzcG9uc2VEYXRhLnVzZXJEZXRhaWxzLmRlbGl2ZXJ5QWRkcmVzcy5jaXR5TmFtZVwiIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVnOiBIeWRlcmFiYWRcIiBjbGFzcz1cImlucHV0LWZpZWxkXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtMTIgaW5wdXQtcGFyZW50XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIj5TdGF0ZTwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInJlc3BvbnNlRGF0YS51c2VyRGV0YWlscy5kZWxpdmVyeUFkZHJlc3Muc3RhdGVOYW1lXCIgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRWc6IFRlbGFuZ2FuYVwiIGNsYXNzPVwiaW5wdXQtZmllbGRcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC03IGNvbC0xMlwiICpuZ0lmPVwiIWVkaXREZWxpdmVyeUFkZHJlc3NcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpcHBpbmctbGFiZWxcIj5EZWxpdmVyeSBBZGRyZXNzPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRlbGl2ZXJ5LWFkZHJlc3NcIj5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7cmlnaHQ6IDE1cHg7XCI+XG4gICAgICAgICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBvbmVycm9yPVwidGhpcy5zcmM9J2h0dHBzOi8vaS5wb3N0aW1nLmNjL2hQUzJKcFYwL25vLWltYWdlLWF2YWlsYWJsZS5qcGcnXCIgICBzcmM9XCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL2xpYnJhcnktbWVkaWEvODEzODI3YzE3MDkxODY0OTk2ODllZGl0JTIwMS5wbmdcIlxuICAgICAgICAgICAgICAgIGFsdD1cIlwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJlZGl0RGVsaXZlcnlBZGRyZXNzID0gdHJ1ZVwiPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlck5hbWVcIj57e3Jlc3BvbnNlRGF0YT8udXNlckRldGFpbHMudXNlck5hbWV9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItZGV0YWlsc1wiIHN0eWxlPVwibWFyZ2luLXRvcDogNXB4O1wiPlxuICAgICAgICAgICAgICB7e3Jlc3BvbnNlRGF0YT8udXNlckRldGFpbHMuZGVsaXZlcnlBZGRyZXNzPy5hZGRyZXNzTGluZTF9fSxcbiAgICAgICAgICAgICAge3tyZXNwb25zZURhdGE/LnVzZXJEZXRhaWxzLmRlbGl2ZXJ5QWRkcmVzcz8ubG9jYWxpdHlOYW1lfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWRldGFpbHNcIj57e3Jlc3BvbnNlRGF0YT8udXNlckRldGFpbHMuZGVsaXZlcnlBZGRyZXNzPy5jaXR5TmFtZX19LFxuICAgICAgICAgICAgICB7e3Jlc3BvbnNlRGF0YT8udXNlckRldGFpbHMuZGVsaXZlcnlBZGRyZXNzPy5zdGF0ZU5hbWV9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItZGV0YWlsc1wiPnt7cmVzcG9uc2VEYXRhPy51c2VyRGV0YWlscy5kZWxpdmVyeUFkZHJlc3M/LmNvdW50cnlOYW1lfX0gLVxuICAgICAgICAgICAgICB7e3Jlc3BvbnNlRGF0YT8udXNlckRldGFpbHMuZGVsaXZlcnlBZGRyZXNzPy56aXBDb2RlfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWRldGFpbHNcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDVweDtcIj5QaG9uZSA6IDxzcGFuXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJmb250LXdlaWdodDogNTAwO1wiPnt7cmVzcG9uc2VEYXRhPy51c2VyRGV0YWlscy5tb2JpbGV9fTwvc3Bhbj48L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvZmZzZXQtbWQtMSBjb2wtbWQtNCBjb2wtMTIgcmlnaHQtc2VjdGlvblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGlwcGluZy1sYWJlbCBoZWFkaW5nLWxhcmdlIGxoLW5vcm1hbFwiPlxuICAgICAgICAgICAgUHJpY2UgRGV0YWlsc1xuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS1kZXRhaWxzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtcGFyZW50LWJsb2NrXCIgKm5nSWY9XCJyZXNwb25zZURhdGE/LmJpbGxkZXRhaWxzPy50b3RhbE5ldFZhbHVlXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS10eXBlXCI+VG90YWwgTVJQPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS12YWx1ZVwiPjxzcGFuIFtpbm5lckh0bWxdPSdjdXJyZW5jeSc+PC9zcGFuPiB7e3Jlc3BvbnNlRGF0YS5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXBhcmVudC1ibG9ja1wiICpuZ0lmPVwicmVzcG9uc2VEYXRhPy5iaWxsZGV0YWlscz8udG90YWxUYXhcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXR5cGVcIj5Ub3RhbCBUYXg8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXZhbHVlXCI+PHNwYW4gW2lubmVySHRtbF09J2N1cnJlbmN5Jz48L3NwYW4+IHt7cmVzcG9uc2VEYXRhPy5iaWxsZGV0YWlscz8udG90YWxUYXh9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtcGFyZW50LWJsb2NrXCIgKm5nSWY9XCJsaXZlRGVsaXZlcnlFc3RpbWF0ZVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtdHlwZVwiPkRlbGl2ZXJ5PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS12YWx1ZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibGl2ZURlbGl2ZXJ5RXN0aW1hdGUuY2hhcmdlID4gMFwiPjxzcGFuIFtpbm5lckh0bWxdPSdjdXJyZW5jeSc+PC9zcGFuPiB7e2xpdmVEZWxpdmVyeUVzdGltYXRlLmNoYXJnZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibGl2ZURlbGl2ZXJ5RXN0aW1hdGUuY2hhcmdlID09IDBcIj5GUkVFPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXBhcmVudC1ibG9ja1wiIHN0eWxlPVwiZm9udC1zaXplOiAxMXB4OyBjb2xvcjogIzljYTNhZjtcIiAqbmdJZj1cImxpdmVEZWxpdmVyeUVzdGltYXRlPy5ldGFcIj5cbiAgICAgICAgICAgICAge3tsaXZlRGVsaXZlcnlFc3RpbWF0ZT8uZXRhfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXBhcmVudC1ibG9ja1wiXG4gICAgICAgICAgICAgICpuZ0lmPVwiIWxpdmVEZWxpdmVyeUVzdGltYXRlICYmIHJlc3BvbnNlRGF0YT8uYmlsbGRldGFpbHM/LmRlbGl2ZXJ5Q2hhcmdlcyAmJiByZXNwb25zZURhdGEuYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzID4gMFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtdHlwZVwiPkRlbGl2ZXJ5IENoYXJnZTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtdmFsdWVcIj48c3BhbiBbaW5uZXJIdG1sXT0nY3VycmVuY3knPjwvc3Bhbj4ge3tyZXNwb25zZURhdGEuYmlsbGRldGFpbHMuZGVsaXZlcnlDaGFyZ2VzfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGhyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXBhcmVudC1ibG9ja1wiICpuZ0lmPVwicmVzcG9uc2VEYXRhPy50b3RhbEFtb3VudFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtdHlwZVwiIHN0eWxlPVwiY29sb3I6IGJsYWNrO2ZvbnQtd2VpZ2h0OiA2MDA7XCI+VG90YWwgQW1vdW50PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS12YWx1ZVwiIHN0eWxlPVwiZm9udC13ZWlnaHQ6IDYwMDtcIj48c3BhbiBbaW5uZXJIdG1sXT0nY3VycmVuY3knPjwvc3Bhbj4ge3tkaXNwbGF5VG90YWxBbW91bnR9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tcGFyZW50XCI+XG4gICAgICAgICAgICAgIDxidXR0b24gc2ltcG9CdXR0b25EaXJlY3RpdmUgW2lkXT1cImRhdGE/LmlkKyhidXR0b24/LmlkIHx8ICcnKVwiIFtidXR0b25TdHlsZV09XCJidXR0b24/LnN0eWxlc1wiIFtiYWNrZ3JvdW5kSW5mb109XCJzdHlsZXM/LmJhY2tncm91bmRcIlxuICAgICAgICAgICAgICAgIFtjb2xvcl09XCJzdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgKGNsaWNrKT1cInBsYWNlT3JkZXIoKVwiPnt7Y29udGVudD8uYnV0dG9ufX08L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdHlsZT8uZGV2aWRlcj8uZGlzcGxheVwiPlxuICAgIDxzaW1wby1zdmctZGl2aWRlciBbZGl2aWRlclR5cGVdPVwic3R5bGU/LmRldmlkZXI/LmRldmlkZXJUeXBlXCIgW2NvbG9yXT1cIm5leHRDb21wb25lbnRDb2xvcj8uY29sb3JcIj48L3NpbXBvLXN2Zy1kaXZpZGVyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZWRpdH1cIiAqbmdJZj1cInNob3dFZGl0b3JzXCI+XG4gICAgICA8c2ltcG8taG92ZXItZWxlbWVudHMgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiIFtlZGl0T3B0aW9uc109XCJlZGl0XCI+PC9zaW1wby1ob3Zlci1lbGVtZW50cz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0RlbGV0ZVwiIFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZGVsZXRlfVwiPlxuICAgICAgPHNpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50IFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIj48L3NpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50PlxuICAgIDwvZGl2PlxuXG4gIDwvc2VjdGlvbj5cbjwvbmctY29udGFpbmVyPlxuXG48bmd4LXNrZWxldG9uLWxvYWRlciAqbmdJZj1cImlzTG9hZGluZ1wiIGNvdW50PVwiMVwiIGFwcGVhcmFuY2U9XCJjaXJjbGVcIiBbdGhlbWVdPVwie1xuICB3aWR0aDogJzEwMCUnLFxuICBoZWlnaHQ6ICc0MHZoJyxcbiAgJ2JvcmRlci1yYWRpdXMnOiAnMTBweCcsXG4gICdwb3NpdGlvbic6ICdyZWxhdGl2ZScsXG4gICdyaWdodCc6ICc1cHgnXG59XCI+XG48L25neC1za2VsZXRvbi1sb2FkZXI+XG5cbiJdfQ==
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvY2hlY2tvdXQvY2hlY2tvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvY2hlY2tvdXQvY2hlY2tvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxXQUFXLE1BQU0sK0JBQStCLENBQUM7QUFHeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scURBQXFELENBQUM7Ozs7Ozs7OztBQWlCMUYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFdBQVc7SUFhaEQsWUFBb0IsYUFBNkIsRUFBVSxXQUF3QjtRQUNqRixLQUFLLEVBQUUsQ0FBQTtRQURXLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUFV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LFdBQVc7d0JBQ1gsd0JBQXdCO3dCQUN4QixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsY0FBYyxFQUFDLG1CQUFtQjtxQkFDbkM7NEdBS1EsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFRyxrQkFBa0I7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGVja291dENvbnRlbnRNb2RhbCwgQ2hlY2tvdXRNb2RhbCwgQ2hlY2tvdXRTdHlsZXNNb2RhbCB9IGZyb20gJy4vY2hlY2tvdXQubW9kYWwnO1xuaW1wb3J0IHsgQ2FydCB9IGZyb20gJy4uLy4uL3N0eWxlcy9jYXJ0Lm1vZGFsJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9idXR0b24tZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBbmltYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYW5pbWF0aW9uLWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBIb3ZlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9ob3Zlci1lbGVtZW50LWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTaW1wb0NvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvaW5kZXgnO1xuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uLy4uLy4uL3NlY3Rpb25zL0Jhc2VTZWN0aW9uJztcbmltcG9ydCB7IEJhY2tncm91bmRNb2RlbCwgQmFubmVyU3R5bGVzTW9kZWwsIEJ1dHRvbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IEJVU0lORVNTX0NPTlNUQU5UUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9idXNpbmVzcy5jb25zdGFudCc7XG5pbXBvcnQgeyBTdmdEaXZpZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZWxlbWVudHMvc3ZnLWRpdmlkZXIvc3ZnLWRpdmlkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2ltcG8tY2hlY2tvdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIENvbW1vbk1vZHVsZSxcbiAgICBTaW1wb0NvbXBvbmVudE1vZHVsZSxcbiAgICAvL0RJUkVDVElWRVxuICAgIEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSxcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXG4gICAgQ29udGVudEZpdERpcmVjdGl2ZSxcbiAgICBIb3ZlckRpcmVjdGl2ZSxTdmdEaXZpZGVyQ29tcG9uZW50XG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja291dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jaGVja291dC5jb21wb25lbnQuY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBDaGVja291dENvbXBvbmVudCBleHRlbmRzIEJhc2VTZWN0aW9ue1xuICBASW5wdXQoKSBkYXRhPzogQ2hlY2tvdXRNb2RhbDtcbiAgQElucHV0KCkgcmVzcG9uc2VEYXRhPzogYW55O1xuICBASW5wdXQoKSBpbmRleD8gOiBudW1iZXI7XG4gIEBJbnB1dCgpIGVkaXQ/IDogYm9vbGVhbjtcbiAgQElucHV0KCkgZGVsZXRlPyA6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGN1c3RvbUNsYXNzPzogc3RyaW5nO1xuICBcbiAgQElucHV0KCkgbmV4dENvbXBvbmVudENvbG9yPzogQmFja2dyb3VuZE1vZGVsO1xuICBzdHlsZT86IEJhbm5lclN0eWxlc01vZGVsO1xuXG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2V2ZW50U2VydmljZSA6IEV2ZW50c1NlcnZpY2UsIHByaXZhdGUgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlKXtcbiAgICBzdXBlcigpXG4gIH1cblxuICBlZGl0RGVsaXZlcnlBZGRyZXNzID0gdHJ1ZTtcbiAgY29udGVudD86IENoZWNrb3V0Q29udGVudE1vZGFsO1xuICBzdHlsZXM/OiBDaGVja291dFN0eWxlc01vZGFsO1xuICBidXR0b24/OiBCdXR0b25Nb2RlbDtcblxuICAvLyBMaXZlIGVzdGltYXRlIGZyb20gU2hpcHJvY2tldCwga2V5ZWQgb2ZmIHRoZSBjaG9zZW4gZGVsaXZlcnkgYWRkcmVzcydzIHBpbmNvZGUgLSB0aGUgY2FydCdzIG93blxuICAvLyBiaWxsZGV0YWlscy5kZWxpdmVyeUNoYXJnZXMgcHJlZGF0ZXMgdGhpcyBhbmQgaGFzIG5vIHBpbmNvZGUgdG8gd29yayB3aXRoIGF0IGNhcnQtdmlldyB0aW1lXG4gIC8vIChzZWUgU2hpcHJvY2tldERlbGl2ZXJ5RXN0aW1hdGVTZXJ2aWNlJ3Mgb3duIGRlc2lnbiBub3RlKSwgc28gdGhpcyBvdmVycmlkZXMgaXQgZm9yIGRpc3BsYXkgb25jZVxuICAvLyBhIHJlYWwgZGVsaXZlcnkgYWRkcmVzcyBpcyBrbm93biwgcmF0aGVyIHRoYW4gdHJ5aW5nIHRvIHJldHJvZml0IHRoZSBjYXJ0LXZpZXcgY2FsY3VsYXRpb24uXG4gIGxpdmVEZWxpdmVyeUVzdGltYXRlOiB7IGNoYXJnZTogbnVtYmVyOyBub3RlOiBzdHJpbmcgfCBudWxsOyBldGE6IHN0cmluZyB8IG51bGwgfSB8IG51bGwgPSBudWxsO1xuXG4gIG5nT25Jbml0KCl7XG4gICAgdGhpcy5lZGl0RGVsaXZlcnlBZGRyZXNzID0gdGhpcy5yZXNwb25zZURhdGE/LnVzZXJEZXRhaWxzID8gdHJ1ZSA6IGZhbHNlO1xuICAgIGlmICh0aGlzLnJlc3BvbnNlRGF0YT8udXNlckRldGFpbHMgJiYgIXRoaXMucmVzcG9uc2VEYXRhLnVzZXJEZXRhaWxzLmRlbGl2ZXJ5QWRkcmVzcykge1xuICAgICAgdGhpcy5yZXNwb25zZURhdGEudXNlckRldGFpbHMuZGVsaXZlcnlBZGRyZXNzID0ge307XG4gICAgfVxuICAgIHRoaXMuY29udGVudCA9IHRoaXMuZGF0YT8uY29udGVudDtcbiAgICB0aGlzLnN0eWxlcyA9IHRoaXMuZGF0YT8uc3R5bGVzO1xuICAgIHRoaXMuYnV0dG9uID0gdGhpcy5kYXRhPy5hY3Rpb24/LmJ1dHRvbnNbMF07XG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnNob3dMb2FkaW5nU2NyZWVuLnN1YnNjcmliZSgocmVzcG9uc2UpPT4ge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSByZXNwb25zZTtcbiAgICB9KVxuICAgIHRoaXMuZmV0Y2hMaXZlRGVsaXZlcnlFc3RpbWF0ZSgpO1xuICB9XG5cbiAgLyoqIFJ1bnMgb25jZSBhdCBpbml0IChpbiBjYXNlIGEgc2F2ZWQgYWRkcmVzcyB3aXRoIGEgcGluY29kZSB3YXMgYWxyZWFkeSBwYXNzZWQgaW4pLCBhbmQgYWdhaW5cbiAgICogZnJvbSB0aGUgcGluY29kZSBpbnB1dCdzIChuZ01vZGVsQ2hhbmdlKSAtIGF0IGluaXQgdGltZSB0aGVyZSdzIHVzdWFsbHkgbm8gcGluY29kZSB5ZXQsIHNpbmNlXG4gICAqIHRoZSBzaG9wcGVyIGhhc24ndCB0eXBlZCB0aGVpciBhZGRyZXNzIGludG8gdGhpcyBwYWdlJ3Mgb3duIGZvcm0uICovXG4gIG9uRGVsaXZlcnlQaW5jb2RlQ2hhbmdlKCkge1xuICAgIHRoaXMuZmV0Y2hMaXZlRGVsaXZlcnlFc3RpbWF0ZSgpO1xuICB9XG5cbiAgZmV0Y2hMaXZlRGVsaXZlcnlFc3RpbWF0ZSgpIHtcbiAgICBjb25zdCBkZWxpdmVyeVBpbmNvZGUgPSB0aGlzLnJlc3BvbnNlRGF0YT8udXNlckRldGFpbHM/LmRlbGl2ZXJ5QWRkcmVzcz8uemlwQ29kZTtcbiAgICBpZiAoIWRlbGl2ZXJ5UGluY29kZSB8fCBkZWxpdmVyeVBpbmNvZGUudG9TdHJpbmcoKS5sZW5ndGggIT09IDYpIHtcbiAgICAgIHRoaXMubGl2ZURlbGl2ZXJ5RXN0aW1hdGUgPSBudWxsO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBpdGVtcyA9IHRoaXMucmVzcG9uc2VEYXRhPy5vcmRlcmVkSXRlbXMgPz8gW107XG4gICAgY29uc3Qgd2VpZ2h0S2cgPSBpdGVtcy5yZWR1Y2UoKHRvdGFsOiBudW1iZXIsIGl0ZW06IGFueSkgPT4gdG90YWwgKyAoKGl0ZW0/LndlaWdodCB8fCAwLjUpICogKGl0ZW0/LnF1YW50aXR5IHx8IDEpKSwgMCkgfHwgMC41O1xuICAgIGNvbnN0IG9yZGVyR3Jvc3NWYWx1ZSA9IHRoaXMucmVzcG9uc2VEYXRhPy5iaWxsZGV0YWlscz8udG90YWxHcm9zc1ZhbHVlID8/IDA7XG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXREZWxpdmVyeUVzdGltYXRlKGRlbGl2ZXJ5UGluY29kZSwgd2VpZ2h0S2csIHRydWUsIG9yZGVyR3Jvc3NWYWx1ZSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4geyB0aGlzLmxpdmVEZWxpdmVyeUVzdGltYXRlID0gcmVzOyB9LFxuICAgICAgZXJyb3I6ICgpID0+IHsgdGhpcy5saXZlRGVsaXZlcnlFc3RpbWF0ZSA9IG51bGw7IH1cbiAgICB9KTtcbiAgfVxuXG4gIHBsYWNlT3JkZXIoKXtcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UucGxhY2VPcmRlci5lbWl0KHtjYXJ0RGF0YTogdGhpcy5yZXNwb25zZURhdGF9KTtcbiAgfVxuICBlZGl0U2VjdGlvbigpe1xuXG4gICAgaWYod2luZG93LmlubmVyV2lkdGggPD0gNDc1KVxuICAgICAgcmV0dXJuO1xuICAgIFxuICAgIHRoaXMuX2V2ZW50U2VydmljZS50b2dnbGVFZGl0b3JFdmVudC5lbWl0KGZhbHNlKTtcbiAgICBzZXRUaW1lb3V0KCgpPT4ge1xuICAgICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmVkaXRTZWN0aW9uLmVtaXQoe2RhdGE6dGhpcy5kYXRhfSk7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIGdldCBjdXJyZW5jeSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBCVVNJTkVTU19DT05TVEFOVFMuQ1VSUkVOQ1k7XG4gIH1cblxuICAvKiogcmVzcG9uc2VEYXRhLnRvdGFsQW1vdW50IHdhcyBjb21wdXRlZCB1cHN0cmVhbSB1c2luZyB0aGUgY2FydCdzIHN0YWxlIChwaW5jb2RlLWxlc3MpXG4gICAqIGRlbGl2ZXJ5Q2hhcmdlcyAtIHN3YXAgdGhhdCBjb21wb25lbnQgb3V0IGZvciB0aGUgbGl2ZSBlc3RpbWF0ZSBmb3IgZGlzcGxheSwgc28gdGhlIHRvdGFsXG4gICAqIHNob3duIGhlcmUgZG9lc24ndCBjb250cmFkaWN0IHRoZSBEZWxpdmVyeSBsaW5lIGRpcmVjdGx5IGFib3ZlIGl0LiBEb2VzIG5vdCB0b3VjaCB0aGUgYWN0dWFsXG4gICAqIG9yZGVyIHBheWxvYWQvYmlsbGRldGFpbHMgLSBkaXNwbGF5IG9ubHksIHBlciB0aGlzIGZlYXR1cmUncyBzY29wZWQtb3V0IHBheW1lbnQtY29ycmVjdG5lc3NcbiAgICogZm9sbG93LXVwLiAqL1xuICBnZXQgZGlzcGxheVRvdGFsQW1vdW50KCk6IG51bWJlciB7XG4gICAgY29uc3QgYmFzZSA9IHRoaXMucmVzcG9uc2VEYXRhPy50b3RhbEFtb3VudCA/PyAwO1xuICAgIGlmICghdGhpcy5saXZlRGVsaXZlcnlFc3RpbWF0ZSkge1xuICAgICAgcmV0dXJuIGJhc2U7XG4gICAgfVxuICAgIGNvbnN0IHN0YWxlRGVsaXZlcnkgPSB0aGlzLnJlc3BvbnNlRGF0YT8uYmlsbGRldGFpbHM/LmRlbGl2ZXJ5Q2hhcmdlcyA/PyAwO1xuICAgIHJldHVybiBiYXNlIC0gc3RhbGVEZWxpdmVyeSArIHRoaXMubGl2ZURlbGl2ZXJ5RXN0aW1hdGUuY2hhcmdlO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxuICA8c2VjdGlvbiBjbGFzcz1cInRvdGFsLWNvbnRhaW5lclwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0xheW91dF09XCJzdHlsZXM/LmxheW91dFwiIHNpbXBvSG92ZXIgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCIgIFthdHRyLnN0eWxlXT1cImN1c3RvbUNsYXNzXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0FuaW1hdGlvbl09XCJzdHlsZXM/LmFuaW1hdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTcgY29sLTEyXCIgKm5nSWY9XCJlZGl0RGVsaXZlcnlBZGRyZXNzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNoaXBwaW5nLWxhYmVsIGhlYWRpbmctbGFyZ2VcIj5TaGlwcGluZyBUbzwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtMTIgaW5wdXQtcGFyZW50XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIj5OYW1lPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwicmVzcG9uc2VEYXRhLnVzZXJEZXRhaWxzLnVzZXJOYW1lXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkVudGVyIE5hbWVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZmllbGRcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC0xMiBpbnB1dC1wYXJlbnRcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiPk1vYmlsZSBOdW1iZXI8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJyZXNwb25zZURhdGEudXNlckRldGFpbHMubW9iaWxlXCIgdHlwZT1cIm51bWJlclwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgbnVtYmVyXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImlucHV0LWZpZWxkXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtMTIgaW5wdXQtcGFyZW50XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIj5FbWFpbDwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInJlc3BvbnNlRGF0YS51c2VyRGV0YWlscy5lbWFpbFwiIHR5cGU9XCJlbWFpbFwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgZW1haWxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZmllbGRcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNoaXBwaW5nLWxhYmVsXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAxNXB4O1wiPlNoaXBwaW5nIEFkZHJlc3M8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGlucHV0LXBhcmVudFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiXCI+QWRkcmVzczwvbGFiZWw+XG4gICAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInJlc3BvbnNlRGF0YS51c2VyRGV0YWlscy5kZWxpdmVyeUFkZHJlc3MuYWRkcmVzc0xpbmUxXCIgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRmxhdC9Ib3VzZSBObywgQnVpbGRpbmcsIENvbG9ueVwiIGNsYXNzPVwiaW5wdXQtZmllbGRcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC0xMiBpbnB1dC1wYXJlbnRcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiPkxvY2FsaXR5L0FyZWE8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJyZXNwb25zZURhdGEudXNlckRldGFpbHMuZGVsaXZlcnlBZGRyZXNzLmxvY2FsaXR5TmFtZVwiIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVnOiBKYXliaGVyaSBFbmNsYXZlLCBHYWNoaWJvd2xpXCIgY2xhc3M9XCJpbnB1dC1maWVsZFwiPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgY29sLTEyIGlucHV0LXBhcmVudFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiXCI+TGFuZG1hcms8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJyZXNwb25zZURhdGEudXNlckRldGFpbHMuZGVsaXZlcnlBZGRyZXNzLmxhbmRtYXJrXCIgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRWc6IE5lYXIgU0JJIEJhbmtcIiBjbGFzcz1cImlucHV0LWZpZWxkXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtMTIgaW5wdXQtcGFyZW50XCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIj5QaW5jb2RlPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwicmVzcG9uc2VEYXRhLnVzZXJEZXRhaWxzLmRlbGl2ZXJ5QWRkcmVzcy56aXBDb2RlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25EZWxpdmVyeVBpbmNvZGVDaGFuZ2UoKVwiIHR5cGU9XCJudW1iZXJcIiBwbGFjZWhvbGRlcj1cIkVnOiA1MDAwMzJcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZmllbGRcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC0xMiBpbnB1dC1wYXJlbnRcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiPkNpdHk8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJyZXNwb25zZURhdGEudXNlckRldGFpbHMuZGVsaXZlcnlBZGRyZXNzLmNpdHlOYW1lXCIgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRWc6IEh5ZGVyYWJhZFwiIGNsYXNzPVwiaW5wdXQtZmllbGRcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC0xMiBpbnB1dC1wYXJlbnRcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiPlN0YXRlPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwicmVzcG9uc2VEYXRhLnVzZXJEZXRhaWxzLmRlbGl2ZXJ5QWRkcmVzcy5zdGF0ZU5hbWVcIiB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFZzogVGVsYW5nYW5hXCIgY2xhc3M9XCJpbnB1dC1maWVsZFwiPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTcgY29sLTEyXCIgKm5nSWY9XCIhZWRpdERlbGl2ZXJ5QWRkcmVzc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGlwcGluZy1sYWJlbFwiPkRlbGl2ZXJ5IEFkZHJlc3M8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVsaXZlcnktYWRkcmVzc1wiPlxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTtyaWdodDogMTVweDtcIj5cbiAgICAgICAgICAgICAgPGltZyBsb2FkaW5nPVwibGF6eVwiIG9uZXJyb3I9XCJ0aGlzLnNyYz0naHR0cHM6Ly9pLnBvc3RpbWcuY2MvaFBTMkpwVjAvbm8taW1hZ2UtYXZhaWxhYmxlLmpwZydcIiAgIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vbGlicmFyeS1tZWRpYS84MTM4MjdjMTcwOTE4NjQ5OTY4OWVkaXQlMjAxLnBuZ1wiXG4gICAgICAgICAgICAgICAgYWx0PVwiXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCIgKGNsaWNrKT1cImVkaXREZWxpdmVyeUFkZHJlc3MgPSB0cnVlXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyTmFtZVwiPnt7cmVzcG9uc2VEYXRhPy51c2VyRGV0YWlscy51c2VyTmFtZX19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1kZXRhaWxzXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiA1cHg7XCI+XG4gICAgICAgICAgICAgIHt7cmVzcG9uc2VEYXRhPy51c2VyRGV0YWlscy5kZWxpdmVyeUFkZHJlc3M/LmFkZHJlc3NMaW5lMX19LFxuICAgICAgICAgICAgICB7e3Jlc3BvbnNlRGF0YT8udXNlckRldGFpbHMuZGVsaXZlcnlBZGRyZXNzPy5sb2NhbGl0eU5hbWV9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItZGV0YWlsc1wiPnt7cmVzcG9uc2VEYXRhPy51c2VyRGV0YWlscy5kZWxpdmVyeUFkZHJlc3M/LmNpdHlOYW1lfX0sXG4gICAgICAgICAgICAgIHt7cmVzcG9uc2VEYXRhPy51c2VyRGV0YWlscy5kZWxpdmVyeUFkZHJlc3M/LnN0YXRlTmFtZX19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1kZXRhaWxzXCI+e3tyZXNwb25zZURhdGE/LnVzZXJEZXRhaWxzLmRlbGl2ZXJ5QWRkcmVzcz8uY291bnRyeU5hbWV9fSAtXG4gICAgICAgICAgICAgIHt7cmVzcG9uc2VEYXRhPy51c2VyRGV0YWlscy5kZWxpdmVyeUFkZHJlc3M/LnppcENvZGV9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItZGV0YWlsc1wiIHN0eWxlPVwibWFyZ2luLXRvcDogNXB4O1wiPlBob25lIDogPHNwYW5cbiAgICAgICAgICAgICAgICBzdHlsZT1cImZvbnQtd2VpZ2h0OiA1MDA7XCI+e3tyZXNwb25zZURhdGE/LnVzZXJEZXRhaWxzLm1vYmlsZX19PC9zcGFuPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm9mZnNldC1tZC0xIGNvbC1tZC00IGNvbC0xMiByaWdodC1zZWN0aW9uXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNoaXBwaW5nLWxhYmVsIGhlYWRpbmctbGFyZ2UgbGgtbm9ybWFsXCI+XG4gICAgICAgICAgICBQcmljZSBEZXRhaWxzXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLWRldGFpbHNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS1wYXJlbnQtYmxvY2tcIiAqbmdJZj1cInJlc3BvbnNlRGF0YT8uYmlsbGRldGFpbHM/LnRvdGFsTmV0VmFsdWVcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXR5cGVcIj5Ub3RhbCBNUlA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXZhbHVlXCI+PHNwYW4gW2lubmVySHRtbF09J2N1cnJlbmN5Jz48L3NwYW4+IHt7cmVzcG9uc2VEYXRhLmJpbGxkZXRhaWxzLnRvdGFsTmV0VmFsdWV9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtcGFyZW50LWJsb2NrXCIgKm5nSWY9XCJyZXNwb25zZURhdGE/LmJpbGxkZXRhaWxzPy50b3RhbFRheFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtdHlwZVwiPlRvdGFsIFRheDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtdmFsdWVcIj48c3BhbiBbaW5uZXJIdG1sXT0nY3VycmVuY3knPjwvc3Bhbj4ge3tyZXNwb25zZURhdGE/LmJpbGxkZXRhaWxzPy50b3RhbFRheH19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS1wYXJlbnQtYmxvY2tcIiAqbmdJZj1cImxpdmVEZWxpdmVyeUVzdGltYXRlXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS10eXBlXCI+RGVsaXZlcnk8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXZhbHVlXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJsaXZlRGVsaXZlcnlFc3RpbWF0ZS5jaGFyZ2UgPiAwXCI+PHNwYW4gW2lubmVySHRtbF09J2N1cnJlbmN5Jz48L3NwYW4+IHt7bGl2ZURlbGl2ZXJ5RXN0aW1hdGUuY2hhcmdlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJsaXZlRGVsaXZlcnlFc3RpbWF0ZS5jaGFyZ2UgPT0gMFwiPkZSRUU8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtcGFyZW50LWJsb2NrXCIgc3R5bGU9XCJmb250LXNpemU6IDExcHg7IGNvbG9yOiAjOWNhM2FmO1wiICpuZ0lmPVwibGl2ZURlbGl2ZXJ5RXN0aW1hdGU/LmV0YVwiPlxuICAgICAgICAgICAgICB7e2xpdmVEZWxpdmVyeUVzdGltYXRlPy5ldGF9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtcGFyZW50LWJsb2NrXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhbGl2ZURlbGl2ZXJ5RXN0aW1hdGUgJiYgcmVzcG9uc2VEYXRhPy5iaWxsZGV0YWlscz8uZGVsaXZlcnlDaGFyZ2VzICYmIHJlc3BvbnNlRGF0YS5iaWxsZGV0YWlscy5kZWxpdmVyeUNoYXJnZXMgPiAwXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS10eXBlXCI+RGVsaXZlcnkgQ2hhcmdlPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS12YWx1ZVwiPjxzcGFuIFtpbm5lckh0bWxdPSdjdXJyZW5jeSc+PC9zcGFuPiB7e3Jlc3BvbnNlRGF0YS5iaWxsZGV0YWlscy5kZWxpdmVyeUNoYXJnZXN9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aHI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtcGFyZW50LWJsb2NrXCIgKm5nSWY9XCJyZXNwb25zZURhdGE/LnRvdGFsQW1vdW50XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS10eXBlXCIgc3R5bGU9XCJjb2xvcjogYmxhY2s7Zm9udC13ZWlnaHQ6IDYwMDtcIj5Ub3RhbCBBbW91bnQ8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXZhbHVlXCIgc3R5bGU9XCJmb250LXdlaWdodDogNjAwO1wiPjxzcGFuIFtpbm5lckh0bWxdPSdjdXJyZW5jeSc+PC9zcGFuPiB7e2Rpc3BsYXlUb3RhbEFtb3VudH19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1wYXJlbnRcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBzaW1wb0J1dHRvbkRpcmVjdGl2ZSBbaWRdPVwiZGF0YT8uaWQrKGJ1dHRvbj8uaWQgfHwgJycpXCIgW2J1dHRvblN0eWxlXT1cImJ1dHRvbj8uc3R5bGVzXCIgW2JhY2tncm91bmRJbmZvXT1cInN0eWxlcz8uYmFja2dyb3VuZFwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cInN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiAoY2xpY2spPVwicGxhY2VPcmRlcigpXCI+e3tjb250ZW50Py5idXR0b259fTwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0eWxlPy5kZXZpZGVyPy5kaXNwbGF5XCI+XG4gICAgPHNpbXBvLXN2Zy1kaXZpZGVyIFtkaXZpZGVyVHlwZV09XCJzdHlsZT8uZGV2aWRlcj8uZGV2aWRlclR5cGVcIiBbY29sb3JdPVwibmV4dENvbXBvbmVudENvbG9yPy5jb2xvclwiPjwvc2ltcG8tc3ZnLWRpdmlkZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICAgIDxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cbiAgICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XG4gICAgICA8c2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiPjwvc2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQ+XG4gICAgPC9kaXY+XG5cbiAgPC9zZWN0aW9uPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZ3gtc2tlbGV0b24tbG9hZGVyICpuZ0lmPVwiaXNMb2FkaW5nXCIgY291bnQ9XCIxXCIgYXBwZWFyYW5jZT1cImNpcmNsZVwiIFt0aGVtZV09XCJ7XG4gIHdpZHRoOiAnMTAwJScsXG4gIGhlaWdodDogJzQwdmgnLFxuICAnYm9yZGVyLXJhZGl1cyc6ICcxMHB4JyxcbiAgJ3Bvc2l0aW9uJzogJ3JlbGF0aXZlJyxcbiAgJ3JpZ2h0JzogJzVweCdcbn1cIj5cbjwvbmd4LXNrZWxldG9uLWxvYWRlcj5cblxuIl19
|