tango-app-ui-manage-settings 3.0.23-dev → 3.0.24-dev
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/components/brand-details/signatory-details/signatory-details.component.mjs +3 -3
- package/esm2022/lib/components/configurations/ticket-configuration/ticket-configuration.component.mjs +17 -3
- package/esm2022/lib/components/payments-subscription/payments-subscription.component.mjs +11 -3
- package/esm2022/lib/components/payments-subscription/subscription-popups/credit-note/credit-note.component.mjs +3 -3
- package/esm2022/lib/components/payments-subscription/subscription-popups/need-help/need-help.component.mjs +3 -3
- package/esm2022/lib/components/payments-subscription/subscription-popups/subscription-approval/subscription-approval.component.mjs +32 -2
- package/esm2022/lib/components/payments-subscription/subscription-popups/update/update.component.mjs +3 -3
- package/esm2022/lib/components/payments-subscription/subscription-popups/upgrade-plan/upgrade-plan.component.mjs +19 -3
- package/esm2022/lib/services/payment-subscription.service.mjs +6 -1
- package/fesm2022/tango-app-ui-manage-settings.mjs +87 -15
- package/fesm2022/tango-app-ui-manage-settings.mjs.map +1 -1
- package/lib/components/activity-logs/activity-logs.component.d.ts +1 -1
- package/lib/components/configurations/ticket-configuration/ticket-configuration.component.d.ts +4 -0
- package/lib/components/contact-directory/contact-directory.component.d.ts +1 -1
- package/lib/components/payments-subscription/subscription-popups/subscription-approval/subscription-approval.component.d.ts +1 -0
- package/lib/components/payments-subscription/subscription-popups/upgrade-plan/upgrade-plan.component.d.ts +6 -1
- package/lib/components/tango-manage-settings/tango-manage-settings.component.d.ts +1 -1
- package/lib/services/payment-subscription.service.d.ts +3 -0
- package/package.json +1 -1
package/esm2022/lib/components/payments-subscription/subscription-popups/update/update.component.mjs
CHANGED
|
@@ -70,14 +70,14 @@ export class UpdateComponent {
|
|
|
70
70
|
}
|
|
71
71
|
submitUpdate() { }
|
|
72
72
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: UpdateComponent, deps: [{ token: i1.NgbActiveModal }, { token: i1.NgbModal }, { token: i2.PaymentSubscriptionService }, { token: i3.FormBuilder }, { token: i0.ChangeDetectorRef }, { token: i4.ToastService }], target: i0.ɵɵFactoryTarget.Component });
|
|
73
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: UpdateComponent, selector: "lib-update", inputs: { modalData: "modalData" }, outputs: { passEntry: "passEntry" }, ngImport: i0, template: "<div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <
|
|
73
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: UpdateComponent, selector: "lib-update", inputs: { modalData: "modalData" }, outputs: { passEntry: "passEntry" }, ngImport: i0, template: "<div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <div class=\"headerclass\">Add Address</div>\r\n <div class=\"btn btn-sm btn-icon btn-active-color-primary\" data-bs-dismiss=\"modal\">\r\n <span (click)=\"activeModal.dismiss()\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <!-- <i class=\"ki-duotone ki-cross fs-1\"><span class=\"path1\"></span><span\r\n class=\"path2\"></span></i> -->\r\n </div>\r\n </div>\r\n <div class=\"modal-body \">\r\n <!--begin::Form-->\r\n <form [formGroup]=\"updateForm\" action=\"#\">\r\n\r\n <div class=\"d-flex flex-column mb-7 fv-row fv-plugins-icon-container\">\r\n <div class=\"py-2\">\r\n <label class=\"required headingtext mb-2\">Brand Name</label>\r\n <input formControlName=\"brandName\" id=\"brandName\" readonly type=\"text\" class=\" ng-pristine ng-invalid ng-touched\"\r\n style=\"text-transform: capitalize;\">\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"required headingtext mb-2\">GST No / Tax ID</label>\r\n <input formControlName=\"gstNumber\" id=\"gstNumber\" type=\"text\" class=\"ng-pristine ng-invalid ng-touched\"\r\n style=\"text-transform: capitalize;\">\r\n <!-- <div *ngIf=\"gstnumber?.errors?.required\" class=\"text-danger\"> \r\n GST Number is required.\r\n </div> -->\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"required headingtext mb-2\">Billing Address</label>\r\n <input formControlName=\"billingAddress\" id=\"billingAddress\" type=\"text\" class=\"ng-pristine ng-invalid ng-touched\"\r\n style=\"text-transform: capitalize;\">\r\n <!-- <div *ngIf=\"billingaddress?.errors?.required\" class=\"text-danger\">\r\n Billing Address is required.\r\n </div> -->\r\n </div>\r\n </div>\r\n <div class=\"d-flex\">\r\n <button type=\"submit\" (click)=\"closeModal()\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button type=\"button\" [disabled]=\"updateForm.invalid\" (click)=\"onSubmit()\"\r\n tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Submit </span></button>\r\n </div>\r\n \r\n </form>\r\n </div>\r\n <!--end::Modal body-->\r\n</div>", styles: [".close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}input{color:#101828;border:1px solid #D0D5DD!important;box-shadow:0 1px 2px #1018280d;border-radius:8px;font-size:16px;width:100%;padding:10px 14px;font-family:Inter;font-weight:400;line-height:24px}input:active,input:focus,input:focus-visible{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD)!important;box-shadow:0 1px 2px #1018280d;outline:none!important;background:var(--Gray-50, #F9FAFB)}.cancel{color:var(--Gray-700, #344054);font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px;text-transform:capitalize;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.submit{color:var(--White, #FFF);font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px;text-transform:capitalize}.headerclass{font-family:Inter;font-size:20px;font-weight:600;line-height:24.2px;text-align:left}\n"], dependencies: [{ kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
|
|
74
74
|
}
|
|
75
75
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: UpdateComponent, decorators: [{
|
|
76
76
|
type: Component,
|
|
77
|
-
args: [{ selector: 'lib-update', template: "<div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <
|
|
77
|
+
args: [{ selector: 'lib-update', template: "<div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <div class=\"headerclass\">Add Address</div>\r\n <div class=\"btn btn-sm btn-icon btn-active-color-primary\" data-bs-dismiss=\"modal\">\r\n <span (click)=\"activeModal.dismiss()\"><svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <!-- <i class=\"ki-duotone ki-cross fs-1\"><span class=\"path1\"></span><span\r\n class=\"path2\"></span></i> -->\r\n </div>\r\n </div>\r\n <div class=\"modal-body \">\r\n <!--begin::Form-->\r\n <form [formGroup]=\"updateForm\" action=\"#\">\r\n\r\n <div class=\"d-flex flex-column mb-7 fv-row fv-plugins-icon-container\">\r\n <div class=\"py-2\">\r\n <label class=\"required headingtext mb-2\">Brand Name</label>\r\n <input formControlName=\"brandName\" id=\"brandName\" readonly type=\"text\" class=\" ng-pristine ng-invalid ng-touched\"\r\n style=\"text-transform: capitalize;\">\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"required headingtext mb-2\">GST No / Tax ID</label>\r\n <input formControlName=\"gstNumber\" id=\"gstNumber\" type=\"text\" class=\"ng-pristine ng-invalid ng-touched\"\r\n style=\"text-transform: capitalize;\">\r\n <!-- <div *ngIf=\"gstnumber?.errors?.required\" class=\"text-danger\"> \r\n GST Number is required.\r\n </div> -->\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"required headingtext mb-2\">Billing Address</label>\r\n <input formControlName=\"billingAddress\" id=\"billingAddress\" type=\"text\" class=\"ng-pristine ng-invalid ng-touched\"\r\n style=\"text-transform: capitalize;\">\r\n <!-- <div *ngIf=\"billingaddress?.errors?.required\" class=\"text-danger\">\r\n Billing Address is required.\r\n </div> -->\r\n </div>\r\n </div>\r\n <div class=\"d-flex\">\r\n <button type=\"submit\" (click)=\"closeModal()\"\r\n class=\"btn-outline btn cancel me-4 w-50\">Cancel</button>\r\n <button type=\"button\" [disabled]=\"updateForm.invalid\" (click)=\"onSubmit()\"\r\n tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted w-50\" style=\"white-space: nowrap;\"><span\r\n class=\"submit\">Submit </span></button>\r\n </div>\r\n \r\n </form>\r\n </div>\r\n <!--end::Modal body-->\r\n</div>", styles: [".close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}input{color:#101828;border:1px solid #D0D5DD!important;box-shadow:0 1px 2px #1018280d;border-radius:8px;font-size:16px;width:100%;padding:10px 14px;font-family:Inter;font-weight:400;line-height:24px}input:active,input:focus,input:focus-visible{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD)!important;box-shadow:0 1px 2px #1018280d;outline:none!important;background:var(--Gray-50, #F9FAFB)}.cancel{color:var(--Gray-700, #344054);font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px;text-transform:capitalize;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.submit{color:var(--White, #FFF);font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px;text-transform:capitalize}.headerclass{font-family:Inter;font-size:20px;font-weight:600;line-height:24.2px;text-align:left}\n"] }]
|
|
78
78
|
}], ctorParameters: () => [{ type: i1.NgbActiveModal }, { type: i1.NgbModal }, { type: i2.PaymentSubscriptionService }, { type: i3.FormBuilder }, { type: i0.ChangeDetectorRef }, { type: i4.ToastService }], propDecorators: { modalData: [{
|
|
79
79
|
type: Input
|
|
80
80
|
}], passEntry: [{
|
|
81
81
|
type: Output
|
|
82
82
|
}] } });
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvcGF5bWVudHMtc3Vic2NyaXB0aW9uL3N1YnNjcmlwdGlvbi1wb3B1cHMvdXBkYXRlL3VwZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL3BheW1lbnRzLXN1YnNjcmlwdGlvbi9zdWJzY3JpcHRpb24tcG9wdXBzL3VwZGF0ZS91cGRhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVyxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksR0FBaUMsTUFBTSxlQUFlLENBQUM7QUFHL0csT0FBTyxFQUF5QixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBUzFDLE1BQU0sT0FBTyxlQUFlO0lBV2pCO0lBQXFDO0lBQStCO0lBQWdFO0lBQ25JO0lBQThCO0lBVnhDLFNBQVMsR0FBVyxFQUFFLENBQUM7SUFDdkIsU0FBUyxHQUFXLEVBQUUsQ0FBQztJQUN2QixjQUFjLEdBQVcsRUFBRSxDQUFDO0lBQzVCLFVBQVUsQ0FBWTtJQUNiLFNBQVMsQ0FBTTtJQUNkLFNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUMzQyxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUUxQyxZQUNTLFdBQTJCLEVBQVUsWUFBc0IsRUFBUywwQkFBc0QsRUFBVSxFQUFlLEVBQ2xKLEVBQW9CLEVBQVUsS0FBa0I7UUFEakQsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQVU7UUFBUywrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNsSixPQUFFLEdBQUYsRUFBRSxDQUFrQjtRQUFVLFVBQUssR0FBTCxLQUFLLENBQWE7UUFFeEQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ2hCLENBQUM7SUFFRixRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFBO0lBQ2xCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDOUIsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDbkMsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDbkMsY0FBYyxFQUFFLENBQUMsRUFBRSxFQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDekMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksU0FBUyxLQUFLLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVELElBQUksY0FBYyxLQUFLLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFdEUsU0FBUztRQUNQLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVM7WUFDcEMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUztZQUNwQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxjQUFjO1NBQ2pELENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDekIsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxXQUFXLEdBQUc7WUFDbEIsUUFBUSxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUTtZQUNoQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUztZQUN0QyxjQUFjLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsY0FBYztTQUNyRCxDQUFDO1FBRUYsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUNsRyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDUixPQUFPLENBQUMsS0FBSyxDQUFDLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FDRixDQUFDO0lBQ04sQ0FBQztJQUNELFlBQVksS0FBSSxDQUFDO3VHQWpFTixlQUFlOzJGQUFmLGVBQWUsMkhDYjVCLHdyRkE4Q007OzJGRGpDTyxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFlBQVk7d09BVWIsU0FBUztzQkFBakIsS0FBSztnQkFDSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCAgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdG9yUmVmLCBPbkRlc3Ryb3ksIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsLCBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9wYXltZW50LXN1YnNjcmlwdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCxWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdXBkYXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXBkYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdXBkYXRlLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVXBkYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveXtcclxuICBcclxuICBicmFuZE5hbWU6IHN0cmluZyA9ICcnO1xyXG4gIGdzdE51bWJlcjogc3RyaW5nID0gJyc7XHJcbiAgYmlsbGluZ0FkZHJlc3M6IHN0cmluZyA9ICcnO1xyXG4gIHVwZGF0ZUZvcm06IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBtb2RhbERhdGE6IGFueTtcclxuICBAT3V0cHV0KCkgcGFzc0VudHJ5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuIFxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGFjdGl2ZU1vZGFsOiBOZ2JBY3RpdmVNb2RhbCwgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLHByaXZhdGUgUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2U6IFBheW1lbnRTdWJzY3JpcHRpb25TZXJ2aWNlLCBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgY2Q6Q2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgdG9hc3Q6VG9hc3RTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmluaXRGb3JtKClcclxuICAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMucGF0Y2hGb3JtKClcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgaW5pdEZvcm0oKXtcclxuICAgIHRoaXMudXBkYXRlRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBicmFuZE5hbWU6IFsnJyxWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgZ3N0TnVtYmVyOiBbJycsVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgIGJpbGxpbmdBZGRyZXNzOiBbJycsVmFsaWRhdG9ycy5yZXF1aXJlZF1cclxuICAgIH0pO1xyXG4gIH1cclxuICBnZXQgZ3N0bnVtYmVyKCkgeyByZXR1cm4gdGhpcy51cGRhdGVGb3JtLmdldCgnZ3N0TnVtYmVyJyk7IH1cclxuICBnZXQgYmlsbGluZ2FkZHJlc3MoKSB7IHJldHVybiB0aGlzLnVwZGF0ZUZvcm0uZ2V0KCdiaWxsaW5nQWRkcmVzcycpOyB9XHJcblxyXG4gIHBhdGNoRm9ybSgpe1xyXG4gICAgdGhpcy51cGRhdGVGb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICAgIGJyYW5kTmFtZTogdGhpcy5tb2RhbERhdGE/LmJyYW5kTmFtZSxcclxuICAgICAgICBnc3ROdW1iZXI6IHRoaXMubW9kYWxEYXRhPy5nc3ROdW1iZXIsXHJcbiAgICAgICAgYmlsbGluZ0FkZHJlc3M6IHRoaXMubW9kYWxEYXRhPy5iaWxsaW5nQWRkcmVzc1xyXG4gICAgfSlcclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgfVxyXG5cclxuICBjbG9zZU1vZGFsKCkge1xyXG4gICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICBjb25zdCByZXF1ZXN0RGF0YSA9IHtcclxuICAgICAgY2xpZW50SWQ6dGhpcy5tb2RhbERhdGEuY2xpZW50SWQsXHJcbiAgICAgIGdzdE5vOiB0aGlzLnVwZGF0ZUZvcm0udmFsdWUuZ3N0TnVtYmVyLFxyXG4gICAgICBiaWxsaW5nQWRkcmVzczogdGhpcy51cGRhdGVGb3JtLnZhbHVlLmJpbGxpbmdBZGRyZXNzXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2UudXBkYXRlYWRkYmlsbGluZyhyZXF1ZXN0RGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZShcclxuICAgICAgICAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UocmVxdWVzdERhdGEpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzdWJtaXR0aW5nIHVwZGF0ZTonLCBlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gIH1cclxuICBzdWJtaXRVcGRhdGUoKSB7fVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XHJcbiAgICAgICAgPGgyPkFkZCBBZGRyZXNzPC9oMj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIiBkYXRhLWJzLWRpc21pc3M9XCJtb2RhbFwiPlxyXG4gICAgICAgICAgICA8aSAoY2xpY2spPVwiYWN0aXZlTW9kYWwuZGlzbWlzcygpXCIgY2xhc3M9XCJraS1kdW90b25lIGtpLWNyb3NzIGZzLTFcIj48c3BhbiBjbGFzcz1cInBhdGgxXCI+PC9zcGFuPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwYXRoMlwiPjwvc3Bhbj48L2k+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IFwiPlxyXG4gICAgICAgIDwhLS1iZWdpbjo6Rm9ybS0tPlxyXG4gICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwidXBkYXRlRm9ybVwiICBhY3Rpb249XCIjXCI+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIG1iLTcgZnYtcm93IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwicmVxdWlyZWQgaGVhZGluZ3RleHQgbWItMlwiPkJyYW5kIE5hbWU8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCAgZm9ybUNvbnRyb2xOYW1lPVwiYnJhbmROYW1lXCIgaWQ9XCJicmFuZE5hbWVcIiByZWFkb25seSB0eXBlPVwidGV4dFwiICBjbGFzcz1cIiBuZy1wcmlzdGluZSBuZy1pbnZhbGlkIG5nLXRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cInRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1wiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInJlcXVpcmVkIGhlYWRpbmd0ZXh0IG1iLTJcIj5HU1QgTm8gLyBUYXggSUQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJnc3ROdW1iZXJcIiBpZD1cImdzdE51bWJlclwiIHR5cGU9XCJ0ZXh0XCIgICBjbGFzcz1cIm5nLXByaXN0aW5lIG5nLWludmFsaWQgbmctdG91Y2hlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwidGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImdzdG51bWJlcj8uZXJyb3JzPy5yZXF1aXJlZFwiICBjbGFzcz1cInRleHQtZGFuZ2VyXCI+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgR1NUIE51bWJlciBpcyByZXF1aXJlZC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwicmVxdWlyZWQgaGVhZGluZ3RleHQgbWItMlwiPkJpbGxpbmcgQWRkcmVzczwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImJpbGxpbmdBZGRyZXNzXCIgaWQ9XCJiaWxsaW5nQWRkcmVzc1wiIHR5cGU9XCJ0ZXh0XCIgICBjbGFzcz1cIm5nLXByaXN0aW5lIG5nLWludmFsaWQgbmctdG91Y2hlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwidGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImJpbGxpbmdhZGRyZXNzPy5lcnJvcnM/LnJlcXVpcmVkXCIgIGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJpbGxpbmcgQWRkcmVzcyBpcyByZXF1aXJlZC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAgdHlwZT1cInN1Ym1pdFwiICAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tb3V0bGluZSBidG4gY2FuY2VsIG1lLTQgdy01MFwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbZGlzYWJsZWRdPVwidXBkYXRlRm9ybS5pbnZhbGlkXCIgKGNsaWNrKT1cIm9uU3VibWl0KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBweC00IG5nLXN0YXItaW5zZXJ0ZWQgdy01MFwiIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcDtcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3VibWl0XCI+U3VibWl0IDwvc3Bhbj48L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tZW5kOjpNb2RhbCBib2R5LS0+XHJcbjwvZGl2PiJdfQ==
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvcGF5bWVudHMtc3Vic2NyaXB0aW9uL3N1YnNjcmlwdGlvbi1wb3B1cHMvdXBkYXRlL3VwZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL3BheW1lbnRzLXN1YnNjcmlwdGlvbi9zdWJzY3JpcHRpb24tcG9wdXBzL3VwZGF0ZS91cGRhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVyxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksR0FBaUMsTUFBTSxlQUFlLENBQUM7QUFHL0csT0FBTyxFQUF5QixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBUzFDLE1BQU0sT0FBTyxlQUFlO0lBV2pCO0lBQXFDO0lBQStCO0lBQWdFO0lBQ25JO0lBQThCO0lBVnhDLFNBQVMsR0FBVyxFQUFFLENBQUM7SUFDdkIsU0FBUyxHQUFXLEVBQUUsQ0FBQztJQUN2QixjQUFjLEdBQVcsRUFBRSxDQUFDO0lBQzVCLFVBQVUsQ0FBWTtJQUNiLFNBQVMsQ0FBTTtJQUNkLFNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUMzQyxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUUxQyxZQUNTLFdBQTJCLEVBQVUsWUFBc0IsRUFBUywwQkFBc0QsRUFBVSxFQUFlLEVBQ2xKLEVBQW9CLEVBQVUsS0FBa0I7UUFEakQsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQVU7UUFBUywrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTRCO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNsSixPQUFFLEdBQUYsRUFBRSxDQUFrQjtRQUFVLFVBQUssR0FBTCxLQUFLLENBQWE7UUFFeEQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ2hCLENBQUM7SUFFRixRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFBO0lBQ2xCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDOUIsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDbkMsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDbkMsY0FBYyxFQUFFLENBQUMsRUFBRSxFQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDekMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksU0FBUyxLQUFLLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVELElBQUksY0FBYyxLQUFLLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFdEUsU0FBUztRQUNQLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVM7WUFDcEMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUztZQUNwQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxjQUFjO1NBQ2pELENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDekIsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxXQUFXLEdBQUc7WUFDbEIsUUFBUSxFQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUTtZQUNoQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUztZQUN0QyxjQUFjLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsY0FBYztTQUNyRCxDQUFDO1FBRUYsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUNsRyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDUixPQUFPLENBQUMsS0FBSyxDQUFDLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FDRixDQUFDO0lBQ04sQ0FBQztJQUNELFlBQVksS0FBSSxDQUFDO3VHQWpFTixlQUFlOzJGQUFmLGVBQWUsMkhDYjVCLGdpR0FrRE07OzJGRHJDTyxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFlBQVk7d09BVWIsU0FBUztzQkFBakIsS0FBSztnQkFDSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCAgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdG9yUmVmLCBPbkRlc3Ryb3ksIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsLCBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9wYXltZW50LXN1YnNjcmlwdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCxWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdXBkYXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXBkYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdXBkYXRlLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVXBkYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveXtcclxuICBcclxuICBicmFuZE5hbWU6IHN0cmluZyA9ICcnO1xyXG4gIGdzdE51bWJlcjogc3RyaW5nID0gJyc7XHJcbiAgYmlsbGluZ0FkZHJlc3M6IHN0cmluZyA9ICcnO1xyXG4gIHVwZGF0ZUZvcm06IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBtb2RhbERhdGE6IGFueTtcclxuICBAT3V0cHV0KCkgcGFzc0VudHJ5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuIFxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGFjdGl2ZU1vZGFsOiBOZ2JBY3RpdmVNb2RhbCwgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLHByaXZhdGUgUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2U6IFBheW1lbnRTdWJzY3JpcHRpb25TZXJ2aWNlLCBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgY2Q6Q2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgdG9hc3Q6VG9hc3RTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmluaXRGb3JtKClcclxuICAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMucGF0Y2hGb3JtKClcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgaW5pdEZvcm0oKXtcclxuICAgIHRoaXMudXBkYXRlRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBicmFuZE5hbWU6IFsnJyxWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgZ3N0TnVtYmVyOiBbJycsVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgIGJpbGxpbmdBZGRyZXNzOiBbJycsVmFsaWRhdG9ycy5yZXF1aXJlZF1cclxuICAgIH0pO1xyXG4gIH1cclxuICBnZXQgZ3N0bnVtYmVyKCkgeyByZXR1cm4gdGhpcy51cGRhdGVGb3JtLmdldCgnZ3N0TnVtYmVyJyk7IH1cclxuICBnZXQgYmlsbGluZ2FkZHJlc3MoKSB7IHJldHVybiB0aGlzLnVwZGF0ZUZvcm0uZ2V0KCdiaWxsaW5nQWRkcmVzcycpOyB9XHJcblxyXG4gIHBhdGNoRm9ybSgpe1xyXG4gICAgdGhpcy51cGRhdGVGb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICAgIGJyYW5kTmFtZTogdGhpcy5tb2RhbERhdGE/LmJyYW5kTmFtZSxcclxuICAgICAgICBnc3ROdW1iZXI6IHRoaXMubW9kYWxEYXRhPy5nc3ROdW1iZXIsXHJcbiAgICAgICAgYmlsbGluZ0FkZHJlc3M6IHRoaXMubW9kYWxEYXRhPy5iaWxsaW5nQWRkcmVzc1xyXG4gICAgfSlcclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgfVxyXG5cclxuICBjbG9zZU1vZGFsKCkge1xyXG4gICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICBjb25zdCByZXF1ZXN0RGF0YSA9IHtcclxuICAgICAgY2xpZW50SWQ6dGhpcy5tb2RhbERhdGEuY2xpZW50SWQsXHJcbiAgICAgIGdzdE5vOiB0aGlzLnVwZGF0ZUZvcm0udmFsdWUuZ3N0TnVtYmVyLFxyXG4gICAgICBiaWxsaW5nQWRkcmVzczogdGhpcy51cGRhdGVGb3JtLnZhbHVlLmJpbGxpbmdBZGRyZXNzXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2UudXBkYXRlYWRkYmlsbGluZyhyZXF1ZXN0RGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZShcclxuICAgICAgICAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UocmVxdWVzdERhdGEpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzdWJtaXR0aW5nIHVwZGF0ZTonLCBlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gIH1cclxuICBzdWJtaXRVcGRhdGUoKSB7fVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlcmNsYXNzXCI+QWRkIEFkZHJlc3M8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIiBkYXRhLWJzLWRpc21pc3M9XCJtb2RhbFwiPlxyXG4gICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwiYWN0aXZlTW9kYWwuZGlzbWlzcygpXCI+PHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE1IDVMNSAxNU01IDVMMTUgMTVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8IS0tIDxpICBjbGFzcz1cImtpLWR1b3RvbmUga2ktY3Jvc3MgZnMtMVwiPjxzcGFuIGNsYXNzPVwicGF0aDFcIj48L3NwYW4+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBhdGgyXCI+PC9zcGFuPjwvaT4gLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IFwiPlxyXG4gICAgICAgIDwhLS1iZWdpbjo6Rm9ybS0tPlxyXG4gICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwidXBkYXRlRm9ybVwiICBhY3Rpb249XCIjXCI+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIG1iLTcgZnYtcm93IGZ2LXBsdWdpbnMtaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwicmVxdWlyZWQgaGVhZGluZ3RleHQgbWItMlwiPkJyYW5kIE5hbWU8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCAgZm9ybUNvbnRyb2xOYW1lPVwiYnJhbmROYW1lXCIgaWQ9XCJicmFuZE5hbWVcIiByZWFkb25seSB0eXBlPVwidGV4dFwiICBjbGFzcz1cIiBuZy1wcmlzdGluZSBuZy1pbnZhbGlkIG5nLXRvdWNoZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cInRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1wiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInJlcXVpcmVkIGhlYWRpbmd0ZXh0IG1iLTJcIj5HU1QgTm8gLyBUYXggSUQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJnc3ROdW1iZXJcIiBpZD1cImdzdE51bWJlclwiIHR5cGU9XCJ0ZXh0XCIgICBjbGFzcz1cIm5nLXByaXN0aW5lIG5nLWludmFsaWQgbmctdG91Y2hlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwidGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImdzdG51bWJlcj8uZXJyb3JzPy5yZXF1aXJlZFwiICBjbGFzcz1cInRleHQtZGFuZ2VyXCI+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgR1NUIE51bWJlciBpcyByZXF1aXJlZC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwicmVxdWlyZWQgaGVhZGluZ3RleHQgbWItMlwiPkJpbGxpbmcgQWRkcmVzczwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImJpbGxpbmdBZGRyZXNzXCIgaWQ9XCJiaWxsaW5nQWRkcmVzc1wiIHR5cGU9XCJ0ZXh0XCIgICBjbGFzcz1cIm5nLXByaXN0aW5lIG5nLWludmFsaWQgbmctdG91Y2hlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwidGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImJpbGxpbmdhZGRyZXNzPy5lcnJvcnM/LnJlcXVpcmVkXCIgIGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJpbGxpbmcgQWRkcmVzcyBpcyByZXF1aXJlZC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAgdHlwZT1cInN1Ym1pdFwiICAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tb3V0bGluZSBidG4gY2FuY2VsIG1lLTQgdy01MFwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbZGlzYWJsZWRdPVwidXBkYXRlRm9ybS5pbnZhbGlkXCIgKGNsaWNrKT1cIm9uU3VibWl0KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBweC00IG5nLXN0YXItaW5zZXJ0ZWQgdy01MFwiIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcDtcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3VibWl0XCI+U3VibWl0IDwvc3Bhbj48L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tZW5kOjpNb2RhbCBib2R5LS0+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -35,7 +35,10 @@ export class UpgradePlanComponent {
|
|
|
35
35
|
disableBtn = true;
|
|
36
36
|
trialproducts = [];
|
|
37
37
|
expiredProducts = [];
|
|
38
|
+
subscription = 'pricingplan';
|
|
39
|
+
confirmedProducts = [];
|
|
38
40
|
destroy$ = new Subject();
|
|
41
|
+
clientinfo;
|
|
39
42
|
constructor(modalService, activeModel, toast, PaymentSubscriptionService, changeDetector) {
|
|
40
43
|
this.modalService = modalService;
|
|
41
44
|
this.activeModel = activeModel;
|
|
@@ -188,16 +191,29 @@ export class UpgradePlanComponent {
|
|
|
188
191
|
});
|
|
189
192
|
modalRef.componentInstance.user = data;
|
|
190
193
|
}
|
|
194
|
+
closePopupAndReloadData() {
|
|
195
|
+
this.clientBillingInfo(this.clientId);
|
|
196
|
+
this.PaymentSubscriptionService.triggerReload();
|
|
197
|
+
this.activeModel.close();
|
|
198
|
+
}
|
|
199
|
+
clientBillingInfo(id) {
|
|
200
|
+
this.PaymentSubscriptionService.clientBillingInfo(id).pipe(takeUntil(this.destroy$)).subscribe((res) => {
|
|
201
|
+
if (res && res.code == 200) {
|
|
202
|
+
this.clientinfo = res.data;
|
|
203
|
+
this.changeDetector.detectChanges();
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
}
|
|
191
207
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: UpgradePlanComponent, deps: [{ token: i1.NgbModal }, { token: i1.NgbActiveModal }, { token: i2.ToastService }, { token: i3.PaymentSubscriptionService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
192
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: UpgradePlanComponent, selector: "lib-upgrade-plan", inputs: { clientId: "clientId" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "<div *ngIf=\"showNavGroup\" class=\"nav-group nav-group-outline mx-auto mt-8 d-flex justify-content-center\">\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3 me-2\"\r\n [ngClass]=\"clientInfo?.currentPlanInfo?.subscriptionPeriod === 'monthly' ? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"month\" (click)=\"selectPlan('monthly')\">\r\n Monthly\r\n </button>\r\n\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"clientInfo?.currentPlanInfo?.subscriptionPeriod === 'quarterly'? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"Quarterly\" (click)=\"selectPlan('quarterly')\">\r\n Quarterly - 10%\r\n </button>\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"clientInfo?.currentPlanInfo?.subscriptionPeriod === 'annual'? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"annual\" (click)=\"selectPlan('annual')\">\r\n Annual - 15%\r\n </button>\r\n\r\n</div>\r\n\r\n<div class=\"modal-body row \">\r\n <div class=\"col-lg-6 pe-8 vertical\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">No of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"noofstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{clientInfo?.currentPlanInfo?.totalStores ||\r\n noofstorestype[0]}}</div>\r\n <div *ngIf=\"noofstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let noofstores of noofstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"clientInfo?.currentPlanInfo?.totalStores === noofstores ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"noofstoresdata(noofstores)\">\r\n {{ noofstores }}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">Average Size of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"AvgstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{clientInfo?.currentPlanInfo?.storeSize ||\r\n Avgstorestype[0].value}}</div>\r\n <div *ngIf=\"AvgstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let Avgstores of Avgstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"clientInfo?.currentPlanInfo?.storeSize === Avgstores ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"Avgstoresdata(Avgstores.value)\">\r\n {{Avgstores.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"maxcam mt-2\">\r\n Maximum {{clientInfo?.currentPlanInfo?.totalCamera}} Cameras are permitted in stores with square feet between {{clientInfo?.currentPlanInfo?.storeSize}}.\r\n </div>\r\n </div>\r\n\r\n <div class=\"selecttext my-5 mt-12\">Select Products</div>\r\n\r\n <div *ngFor=\"let productlist of clientInfo?.currentPlanInfo?.product\" class=\"form-check form-switch d-flex justify-content-between mt-6\">\r\n <div><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"tangorevop\"\r\n [checked]=\"productlist.active === true\" (change)=\"updateProduct($event,productlist.productName)\" [disabled]=\"productlist.status === 'live'\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">{{productlist.aliseProductName}} \r\n <span [class]=\"getColorClass(productlist.toolTip)\">\r\n {{productlist.toolTip}} <span *ngIf=\"expiredProducts.length && productlist.productName.includes(expiredProducts)\"><img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/clockexpiry-icon.svg\" alt=\"\"> \r\n </span> <span *ngIf=\"trialproducts.length && productlist.productName.includes(trialproducts)\">\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\" alt=\"\"> \r\n </span>\r\n </span>\r\n \r\n \r\n </label>\r\n </div>\r\n <span class=\"view\" (click)=\"showInfo(productlist.productName)\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n <div class=\"col-lg-6 px-8\">\r\n <div class=\"pb-6\">\r\n\r\n <div class=\"pricingtext\">Free</div>\r\n\r\n <div class=\"semi mt-2\">\r\n Integrated Solution for Growing Business\r\n </div>\r\n <!-- <div class=\"d-flex\"><span class=\"me-3 mt-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2231_42342)\">\r\n <path\r\n d=\"M7.99967 10.6673V8.00065M7.99967 5.33398H8.00634M14.6663 8.00065C14.6663 11.6826 11.6816 14.6673 7.99967 14.6673C4.31778 14.6673 1.33301 11.6826 1.33301 8.00065C1.33301 4.31875 4.31778 1.33398 7.99967 1.33398C11.6816 1.33398 14.6663 4.31875 14.6663 8.00065Z\"\r\n stroke=\"#B54708\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2231_42342\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <div class=\"subtext mt-6\">You will only be charged for < Tango Traffic,Tango <br>Zone & Tango RevOps >\r\n </div>\r\n </div> -->\r\n <div class=\"sub1text mt-5\">Starts from <span class=\"billedtext ms-2\"><s>\u20B9{{originalPrice}}</s></span><span\r\n class=\"billingtext ms-4\">\u20B9{{clientInfo?.currentPlanInfo?.price || 0}}</span></div>\r\n <div class=\"sub1text mt-2\">Per store Per month</div>\r\n\r\n </div>\r\n <div class=\"detailstext\">Billing Details</div>\r\n\r\n <div class=\"sub1text py-4\">\r\n <div class=\"mb-4\">Brand Name: {{clientInfo?.clientName}}</div>\r\n <div>Billing Address: {{clientInfo?.billingDetails?.billingAddress || '--'}}</div>\r\n </div>\r\n <div class=\"d-flex justify-content-end subscribe\"> \r\n <button (click)=\"update()\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary ms-2 ng-star-inserted w-100 btn-block text-nowrap\" *ngIf=\"!clientInfo?.billingDetails?.billingAddress\"><span class=\"submit\">Enter\r\n Billing Details </span></button>\r\n <button (click)=\"confirmation()\" type=\"button\" tabindex=\"0\" *ngIf=\"clientInfo?.billingDetails?.billingAddress\"\r\n class=\"btn btn-primary ms-2 ng-star-inserted w-100 btn-block\" style=\"white-space: nowrap;\" [disabled]=\"disableBtn\"><span\r\n class=\"submit\">Subscribe Now </span></button>\r\n </div>\r\n\r\n </div>\r\n</div>", styles: [".tabchange{align-items:center;gap:8px;padding:1% 25%}.pricingtext{color:var(--Gray-900, #101828);font-family:Inter;font-size:20px;font-weight:600;line-height:30px}.semi{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:400;line-height:20px}.subtext{color:var(--Error-700, #B42318);font-family:Inter;font-size:12px;font-weight:400;line-height:18px}.billingtext{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:24px;font-weight:600;line-height:32px}.billedtext{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:18px;font-weight:600;line-height:32px;text-decoration-line:\"strikethrough\"}.sub1text{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:400;line-height:20px}.detailstext{color:var(--Gray-500, #667085);font-family:Inter;font-size:18px;font-weight:600;line-height:28px}.maxcam{color:var(--Primary-800, #008EDF);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.selecttext{color:#000;font-family:Inter;font-size:16px;font-weight:500;line-height:24px}.activePlanBtn{border-radius:6px;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280f,0 1px 3px #1018281a!important;color:var(--Gray-700, #344054);font-size:14px!important;font-weight:500!important;line-height:20px}.inactivePlanBtn{color:var(--Gray-500, #667085)!important;font-size:14px;font-weight:500!important;line-height:20px}.nav-group{background:var(--Gray-50, #F9FAFB)!important;border-radius:8px!important;border:1px solid var(--Gray-100, #F2F4F7)!important;width:fit-content}.form-check-label{color:var(--Gray-700, #344054)!important}.view{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:12px;font-weight:500;line-height:18px;cursor:pointer}.modal-body{padding:4%!important}.vertical{border-right:1px solid var(--Gray-200, #EAECF0)}.subscribe{margin-top:50%}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.dropselect{color:var(--Gray-500, #667085);font-family:Inter;font-size:16px;font-style:normal;font-weight:400;line-height:24px;height:45px!important}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
208
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: UpgradePlanComponent, selector: "lib-upgrade-plan", inputs: { clientId: "clientId" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "<section *ngIf=\"subscription == 'pricingplan'\">\r\n <div *ngIf=\"showNavGroup\" class=\"nav-group nav-group-outline mx-auto mt-8 d-flex justify-content-center\">\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3 me-2\"\r\n [ngClass]=\"clientInfo?.currentPlanInfo?.subscriptionPeriod === 'monthly' ? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"month\" (click)=\"selectPlan('monthly')\">\r\n Monthly\r\n </button>\r\n\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"clientInfo?.currentPlanInfo?.subscriptionPeriod === 'quarterly'? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"Quarterly\" (click)=\"selectPlan('quarterly')\">\r\n Quarterly - 10%\r\n </button>\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"clientInfo?.currentPlanInfo?.subscriptionPeriod === 'annual'? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"annual\" (click)=\"selectPlan('annual')\">\r\n Annual - 15%\r\n </button>\r\n\r\n</div>\r\n\r\n<div class=\"modal-body row \">\r\n <div class=\"col-lg-6 pe-8 vertical\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">No of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"noofstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{clientInfo?.currentPlanInfo?.totalStores ||\r\n noofstorestype[0]}}</div>\r\n <div *ngIf=\"noofstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let noofstores of noofstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"clientInfo?.currentPlanInfo?.totalStores === noofstores ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"noofstoresdata(noofstores)\">\r\n {{ noofstores }}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">Average Size of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"AvgstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{clientInfo?.currentPlanInfo?.storeSize ||\r\n Avgstorestype[0].value}}</div>\r\n <div *ngIf=\"AvgstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let Avgstores of Avgstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"clientInfo?.currentPlanInfo?.storeSize === Avgstores ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"Avgstoresdata(Avgstores.value)\">\r\n {{Avgstores.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"maxcam mt-2\">\r\n Maximum {{clientInfo?.currentPlanInfo?.totalCamera}} Cameras are permitted in stores with square feet between {{clientInfo?.currentPlanInfo?.storeSize}}.\r\n </div>\r\n </div>\r\n\r\n <div class=\"selecttext my-5 mt-12\">Select Products</div>\r\n\r\n <div *ngFor=\"let productlist of clientInfo?.currentPlanInfo?.product\" class=\"form-check form-switch d-flex justify-content-between mt-6\">\r\n <div>\r\n <span><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"tangorevop\"\r\n [checked]=\"productlist.active === true\" (change)=\"updateProduct($event,productlist.productName)\" [disabled]=\"productlist.status === 'live' || productlist.status === 'trial' \"></span>\r\n <label for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">{{productlist.aliseProductName}} \r\n <span [class]=\"getColorClass(productlist.toolTip)\">\r\n {{productlist.toolTip}} <span *ngIf=\"expiredProducts.length && productlist.productName.includes(expiredProducts)\"><img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/clockexpiry-icon.svg\" alt=\"\"> \r\n </span> <span *ngIf=\"trialproducts.length && productlist.productName.includes(trialproducts)\">\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\" alt=\"\"> \r\n </span>\r\n </span>\r\n </label>\r\n </div>\r\n <span class=\"view\" (click)=\"showInfo(productlist.productName)\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n <div class=\"col-lg-6 px-8\">\r\n <div class=\"pb-6\">\r\n\r\n <div class=\"pricingtext\">Free</div>\r\n\r\n <div class=\"semi mt-2\">\r\n Integrated Solution for Growing Business\r\n </div>\r\n <!-- <div class=\"d-flex\"><span class=\"me-3 mt-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2231_42342)\">\r\n <path\r\n d=\"M7.99967 10.6673V8.00065M7.99967 5.33398H8.00634M14.6663 8.00065C14.6663 11.6826 11.6816 14.6673 7.99967 14.6673C4.31778 14.6673 1.33301 11.6826 1.33301 8.00065C1.33301 4.31875 4.31778 1.33398 7.99967 1.33398C11.6816 1.33398 14.6663 4.31875 14.6663 8.00065Z\"\r\n stroke=\"#B54708\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2231_42342\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <div class=\"subtext mt-6\">You will only be charged for < Tango Traffic,Tango <br>Zone & Tango RevOps >\r\n </div>\r\n </div> -->\r\n <div class=\"sub1text mt-5\">Starts from <span class=\"billedtext ms-2\"><s>\u20B9{{originalPrice}}</s></span><span\r\n class=\"billingtext ms-4\">\u20B9{{clientInfo?.currentPlanInfo?.price || 0}}</span></div>\r\n <div class=\"sub1text mt-2\">Per store Per month</div>\r\n\r\n </div>\r\n <div class=\"detailstext\">Billing Details</div>\r\n\r\n <div class=\"sub1text py-4\">\r\n <div class=\"mb-4\">Brand Name: {{clientInfo?.clientName}}</div>\r\n <div>Billing Address: {{clientInfo?.billingDetails?.billingAddress || '--'}}</div>\r\n </div>\r\n <div class=\"d-flex justify-content-end subscribe\"> \r\n <button (click)=\"update()\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary ms-2 ng-star-inserted w-100 btn-block text-nowrap\" *ngIf=\"!clientInfo?.billingDetails?.billingAddress\"><span class=\"submit\">Enter\r\n Billing Details </span></button>\r\n <button (click)=\"confirmation()\" type=\"button\" tabindex=\"0\" *ngIf=\"clientInfo?.billingDetails?.billingAddress\"\r\n class=\"btn btn-primary ms-2 ng-star-inserted w-100 btn-block\" style=\"white-space: nowrap;\" [disabled]=\"disableBtn\"><span\r\n class=\"submit\">Subscribe Now </span></button>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n</section>\r\n\r\n<div *ngIf=\"subscription == 'confirmationmessage'\" class=\"modal-content gifimage\" >\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/check-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Thanks for the subscription!</div>\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n \r\n <div class=\"contenttext mt-4 mx-2\">You have successfully subscribed to our products \r\n <ul class=\"mt-4\">\r\n <li *ngFor=\"let product of confirmedProducts\">{{product}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n <div class=\"d-flex mt-2 py-2\">\r\n <button type=\"button\" tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted w-100\" (click)=\"closePopupAndReloadData()\" style=\"white-space: nowrap;\">\r\n <span class=\"submit\">Okay</span>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".tabchange{align-items:center;gap:8px;padding:1% 25%}.pricingtext{color:var(--Gray-900, #101828);font-family:Inter;font-size:20px;font-weight:600;line-height:30px}.semi{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:400;line-height:20px}.subtext{color:var(--Error-700, #B42318);font-family:Inter;font-size:12px;font-weight:400;line-height:18px}.billingtext{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:24px;font-weight:600;line-height:32px}.billedtext{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:18px;font-weight:600;line-height:32px;text-decoration-line:\"strikethrough\"}.sub1text{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:400;line-height:20px}.detailstext{color:var(--Gray-500, #667085);font-family:Inter;font-size:18px;font-weight:600;line-height:28px}.maxcam{color:var(--Primary-800, #008EDF);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.selecttext{color:#000;font-family:Inter;font-size:16px;font-weight:500;line-height:24px}.activePlanBtn{border-radius:6px;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280f,0 1px 3px #1018281a!important;color:var(--Gray-700, #344054);font-size:14px!important;font-weight:500!important;line-height:20px}.inactivePlanBtn{color:var(--Gray-500, #667085)!important;font-size:14px;font-weight:500!important;line-height:20px}.nav-group{background:var(--Gray-50, #F9FAFB)!important;border-radius:8px!important;border:1px solid var(--Gray-100, #F2F4F7)!important;width:fit-content}.form-check-label{color:var(--Gray-700, #344054)!important}.view{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:12px;font-weight:500;line-height:18px;cursor:pointer}.modal-body{padding:4%!important}.vertical{border-right:1px solid var(--Gray-200, #EAECF0)}.subscribe{margin-top:50%}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.dropselect{color:var(--Gray-500, #667085);font-family:Inter;font-size:16px;font-style:normal;font-weight:400;line-height:24px;height:45px!important}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.heading{color:var(--Gray-900, #101828);font-size:18px;font-weight:600;line-height:28px}.contenttext{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.gifimage{background-size:cover;height:100%}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
193
209
|
}
|
|
194
210
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: UpgradePlanComponent, decorators: [{
|
|
195
211
|
type: Component,
|
|
196
|
-
args: [{ selector: 'lib-upgrade-plan', template: "<div *ngIf=\"showNavGroup\" class=\"nav-group nav-group-outline mx-auto mt-8 d-flex justify-content-center\">\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3 me-2\"\r\n [ngClass]=\"clientInfo?.currentPlanInfo?.subscriptionPeriod === 'monthly' ? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"month\" (click)=\"selectPlan('monthly')\">\r\n Monthly\r\n </button>\r\n\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"clientInfo?.currentPlanInfo?.subscriptionPeriod === 'quarterly'? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"Quarterly\" (click)=\"selectPlan('quarterly')\">\r\n Quarterly - 10%\r\n </button>\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"clientInfo?.currentPlanInfo?.subscriptionPeriod === 'annual'? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"annual\" (click)=\"selectPlan('annual')\">\r\n Annual - 15%\r\n </button>\r\n\r\n</div>\r\n\r\n<div class=\"modal-body row \">\r\n <div class=\"col-lg-6 pe-8 vertical\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">No of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"noofstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{clientInfo?.currentPlanInfo?.totalStores ||\r\n noofstorestype[0]}}</div>\r\n <div *ngIf=\"noofstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let noofstores of noofstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"clientInfo?.currentPlanInfo?.totalStores === noofstores ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"noofstoresdata(noofstores)\">\r\n {{ noofstores }}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">Average Size of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"AvgstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{clientInfo?.currentPlanInfo?.storeSize ||\r\n Avgstorestype[0].value}}</div>\r\n <div *ngIf=\"AvgstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let Avgstores of Avgstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"clientInfo?.currentPlanInfo?.storeSize === Avgstores ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"Avgstoresdata(Avgstores.value)\">\r\n {{Avgstores.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"maxcam mt-2\">\r\n Maximum {{clientInfo?.currentPlanInfo?.totalCamera}} Cameras are permitted in stores with square feet between {{clientInfo?.currentPlanInfo?.storeSize}}.\r\n </div>\r\n </div>\r\n\r\n <div class=\"selecttext my-5 mt-12\">Select Products</div>\r\n\r\n <div *ngFor=\"let productlist of clientInfo?.currentPlanInfo?.product\" class=\"form-check form-switch d-flex justify-content-between mt-6\">\r\n <div><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"tangorevop\"\r\n [checked]=\"productlist.active === true\" (change)=\"updateProduct($event,productlist.productName)\" [disabled]=\"productlist.status === 'live'\">\r\n <label _ngcontent-wkh-c249=\"\" for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">{{productlist.aliseProductName}} \r\n <span [class]=\"getColorClass(productlist.toolTip)\">\r\n {{productlist.toolTip}} <span *ngIf=\"expiredProducts.length && productlist.productName.includes(expiredProducts)\"><img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/clockexpiry-icon.svg\" alt=\"\"> \r\n </span> <span *ngIf=\"trialproducts.length && productlist.productName.includes(trialproducts)\">\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\" alt=\"\"> \r\n </span>\r\n </span>\r\n \r\n \r\n </label>\r\n </div>\r\n <span class=\"view\" (click)=\"showInfo(productlist.productName)\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n <div class=\"col-lg-6 px-8\">\r\n <div class=\"pb-6\">\r\n\r\n <div class=\"pricingtext\">Free</div>\r\n\r\n <div class=\"semi mt-2\">\r\n Integrated Solution for Growing Business\r\n </div>\r\n <!-- <div class=\"d-flex\"><span class=\"me-3 mt-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2231_42342)\">\r\n <path\r\n d=\"M7.99967 10.6673V8.00065M7.99967 5.33398H8.00634M14.6663 8.00065C14.6663 11.6826 11.6816 14.6673 7.99967 14.6673C4.31778 14.6673 1.33301 11.6826 1.33301 8.00065C1.33301 4.31875 4.31778 1.33398 7.99967 1.33398C11.6816 1.33398 14.6663 4.31875 14.6663 8.00065Z\"\r\n stroke=\"#B54708\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2231_42342\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <div class=\"subtext mt-6\">You will only be charged for < Tango Traffic,Tango <br>Zone & Tango RevOps >\r\n </div>\r\n </div> -->\r\n <div class=\"sub1text mt-5\">Starts from <span class=\"billedtext ms-2\"><s>\u20B9{{originalPrice}}</s></span><span\r\n class=\"billingtext ms-4\">\u20B9{{clientInfo?.currentPlanInfo?.price || 0}}</span></div>\r\n <div class=\"sub1text mt-2\">Per store Per month</div>\r\n\r\n </div>\r\n <div class=\"detailstext\">Billing Details</div>\r\n\r\n <div class=\"sub1text py-4\">\r\n <div class=\"mb-4\">Brand Name: {{clientInfo?.clientName}}</div>\r\n <div>Billing Address: {{clientInfo?.billingDetails?.billingAddress || '--'}}</div>\r\n </div>\r\n <div class=\"d-flex justify-content-end subscribe\"> \r\n <button (click)=\"update()\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary ms-2 ng-star-inserted w-100 btn-block text-nowrap\" *ngIf=\"!clientInfo?.billingDetails?.billingAddress\"><span class=\"submit\">Enter\r\n Billing Details </span></button>\r\n <button (click)=\"confirmation()\" type=\"button\" tabindex=\"0\" *ngIf=\"clientInfo?.billingDetails?.billingAddress\"\r\n class=\"btn btn-primary ms-2 ng-star-inserted w-100 btn-block\" style=\"white-space: nowrap;\" [disabled]=\"disableBtn\"><span\r\n class=\"submit\">Subscribe Now </span></button>\r\n </div>\r\n\r\n </div>\r\n</div>", styles: [".tabchange{align-items:center;gap:8px;padding:1% 25%}.pricingtext{color:var(--Gray-900, #101828);font-family:Inter;font-size:20px;font-weight:600;line-height:30px}.semi{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:400;line-height:20px}.subtext{color:var(--Error-700, #B42318);font-family:Inter;font-size:12px;font-weight:400;line-height:18px}.billingtext{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:24px;font-weight:600;line-height:32px}.billedtext{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:18px;font-weight:600;line-height:32px;text-decoration-line:\"strikethrough\"}.sub1text{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:400;line-height:20px}.detailstext{color:var(--Gray-500, #667085);font-family:Inter;font-size:18px;font-weight:600;line-height:28px}.maxcam{color:var(--Primary-800, #008EDF);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.selecttext{color:#000;font-family:Inter;font-size:16px;font-weight:500;line-height:24px}.activePlanBtn{border-radius:6px;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280f,0 1px 3px #1018281a!important;color:var(--Gray-700, #344054);font-size:14px!important;font-weight:500!important;line-height:20px}.inactivePlanBtn{color:var(--Gray-500, #667085)!important;font-size:14px;font-weight:500!important;line-height:20px}.nav-group{background:var(--Gray-50, #F9FAFB)!important;border-radius:8px!important;border:1px solid var(--Gray-100, #F2F4F7)!important;width:fit-content}.form-check-label{color:var(--Gray-700, #344054)!important}.view{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:12px;font-weight:500;line-height:18px;cursor:pointer}.modal-body{padding:4%!important}.vertical{border-right:1px solid var(--Gray-200, #EAECF0)}.subscribe{margin-top:50%}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.dropselect{color:var(--Gray-500, #667085);font-family:Inter;font-size:16px;font-style:normal;font-weight:400;line-height:24px;height:45px!important}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}\n"] }]
|
|
212
|
+
args: [{ selector: 'lib-upgrade-plan', template: "<section *ngIf=\"subscription == 'pricingplan'\">\r\n <div *ngIf=\"showNavGroup\" class=\"nav-group nav-group-outline mx-auto mt-8 d-flex justify-content-center\">\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3 me-2\"\r\n [ngClass]=\"clientInfo?.currentPlanInfo?.subscriptionPeriod === 'monthly' ? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"month\" (click)=\"selectPlan('monthly')\">\r\n Monthly\r\n </button>\r\n\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"clientInfo?.currentPlanInfo?.subscriptionPeriod === 'quarterly'? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"Quarterly\" (click)=\"selectPlan('quarterly')\">\r\n Quarterly - 10%\r\n </button>\r\n <button class=\"btn btn-color-gray-600 btn-active btn-active-secondary px-6 py-3\"\r\n [ngClass]=\"clientInfo?.currentPlanInfo?.subscriptionPeriod === 'annual'? 'activePlanBtn':'inactivePlanBtn'\"\r\n data-kt-plan=\"annual\" (click)=\"selectPlan('annual')\">\r\n Annual - 15%\r\n </button>\r\n\r\n</div>\r\n\r\n<div class=\"modal-body row \">\r\n <div class=\"col-lg-6 pe-8 vertical\">\r\n\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">No of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"noofstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{clientInfo?.currentPlanInfo?.totalStores ||\r\n noofstorestype[0]}}</div>\r\n <div *ngIf=\"noofstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let noofstores of noofstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"clientInfo?.currentPlanInfo?.totalStores === noofstores ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"noofstoresdata(noofstores)\">\r\n {{ noofstores }}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div class=\"py-2\">\r\n <label class=\"headingtext mb-3\">Average Size of Stores </label>\r\n <div class=\"position-relative \">\r\n <div class=\"form-select dropselect levelviewtext\" id=\"currency\" (click)=\"AvgstoresDropdown($event)\"\r\n aria-label=\"Default select example\">{{clientInfo?.currentPlanInfo?.storeSize ||\r\n Avgstorestype[0].value}}</div>\r\n <div *ngIf=\"AvgstoresdropDown\" class=\"card py-2 w-100 position-absolute end-0 z-1\">\r\n <ul *ngFor=\"let Avgstores of Avgstorestype\" class=\"list-unstyled mb-2\">\r\n <li [ngClass]=\"clientInfo?.currentPlanInfo?.storeSize === Avgstores ? 'active' : ''\"\r\n class=\"producttext px-5 items cursor-pointer py-4\" (click)=\"Avgstoresdata(Avgstores.value)\">\r\n {{Avgstores.name}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"maxcam mt-2\">\r\n Maximum {{clientInfo?.currentPlanInfo?.totalCamera}} Cameras are permitted in stores with square feet between {{clientInfo?.currentPlanInfo?.storeSize}}.\r\n </div>\r\n </div>\r\n\r\n <div class=\"selecttext my-5 mt-12\">Select Products</div>\r\n\r\n <div *ngFor=\"let productlist of clientInfo?.currentPlanInfo?.product\" class=\"form-check form-switch d-flex justify-content-between mt-6\">\r\n <div>\r\n <span><input class=\"form-check-input\" type=\"checkbox\" role=\"switch\" id=\"tangorevop\"\r\n [checked]=\"productlist.active === true\" (change)=\"updateProduct($event,productlist.productName)\" [disabled]=\"productlist.status === 'live' || productlist.status === 'trial' \"></span>\r\n <label for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label headingtext d-flex\">{{productlist.aliseProductName}} \r\n <span [class]=\"getColorClass(productlist.toolTip)\">\r\n {{productlist.toolTip}} <span *ngIf=\"expiredProducts.length && productlist.productName.includes(expiredProducts)\"><img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/clockexpiry-icon.svg\" alt=\"\"> \r\n </span> <span *ngIf=\"trialproducts.length && productlist.productName.includes(trialproducts)\">\r\n <img class=\"ms-2\" src=\"./assets/tango/custompopup-Icons/primary-clock-icon.svg\" alt=\"\"> \r\n </span>\r\n </span>\r\n </label>\r\n </div>\r\n <span class=\"view\" (click)=\"showInfo(productlist.productName)\">View Info <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"14\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5M7.5 1.5H10.5M10.5 1.5V4.5M10.5 1.5L5 7\"\r\n stroke=\"#009BF3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n <div class=\"col-lg-6 px-8\">\r\n <div class=\"pb-6\">\r\n\r\n <div class=\"pricingtext\">Free</div>\r\n\r\n <div class=\"semi mt-2\">\r\n Integrated Solution for Growing Business\r\n </div>\r\n <!-- <div class=\"d-flex\"><span class=\"me-3 mt-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2231_42342)\">\r\n <path\r\n d=\"M7.99967 10.6673V8.00065M7.99967 5.33398H8.00634M14.6663 8.00065C14.6663 11.6826 11.6816 14.6673 7.99967 14.6673C4.31778 14.6673 1.33301 11.6826 1.33301 8.00065C1.33301 4.31875 4.31778 1.33398 7.99967 1.33398C11.6816 1.33398 14.6663 4.31875 14.6663 8.00065Z\"\r\n stroke=\"#B54708\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2231_42342\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <div class=\"subtext mt-6\">You will only be charged for < Tango Traffic,Tango <br>Zone & Tango RevOps >\r\n </div>\r\n </div> -->\r\n <div class=\"sub1text mt-5\">Starts from <span class=\"billedtext ms-2\"><s>\u20B9{{originalPrice}}</s></span><span\r\n class=\"billingtext ms-4\">\u20B9{{clientInfo?.currentPlanInfo?.price || 0}}</span></div>\r\n <div class=\"sub1text mt-2\">Per store Per month</div>\r\n\r\n </div>\r\n <div class=\"detailstext\">Billing Details</div>\r\n\r\n <div class=\"sub1text py-4\">\r\n <div class=\"mb-4\">Brand Name: {{clientInfo?.clientName}}</div>\r\n <div>Billing Address: {{clientInfo?.billingDetails?.billingAddress || '--'}}</div>\r\n </div>\r\n <div class=\"d-flex justify-content-end subscribe\"> \r\n <button (click)=\"update()\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary ms-2 ng-star-inserted w-100 btn-block text-nowrap\" *ngIf=\"!clientInfo?.billingDetails?.billingAddress\"><span class=\"submit\">Enter\r\n Billing Details </span></button>\r\n <button (click)=\"confirmation()\" type=\"button\" tabindex=\"0\" *ngIf=\"clientInfo?.billingDetails?.billingAddress\"\r\n class=\"btn btn-primary ms-2 ng-star-inserted w-100 btn-block\" style=\"white-space: nowrap;\" [disabled]=\"disableBtn\"><span\r\n class=\"submit\">Subscribe Now </span></button>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n</section>\r\n\r\n<div *ngIf=\"subscription == 'confirmationmessage'\" class=\"modal-content gifimage\" >\r\n <div class=\"p-6\">\r\n <div><img src=\"./assets/tango/custompopup-Icons/check-icon.svg\" alt=\"\"></div>\r\n <div class=\"heading mt-4 ms-1\">Thanks for the subscription!</div>\r\n <div class=\"d-flex flex-column fv-row fv-plugins-icon-container\">\r\n \r\n <div class=\"contenttext mt-4 mx-2\">You have successfully subscribed to our products \r\n <ul class=\"mt-4\">\r\n <li *ngFor=\"let product of confirmedProducts\">{{product}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n \r\n <div class=\"d-flex mt-2 py-2\">\r\n <button type=\"button\" tabindex=\"0\" class=\"btn btn-primary px-4 ng-star-inserted w-100\" (click)=\"closePopupAndReloadData()\" style=\"white-space: nowrap;\">\r\n <span class=\"submit\">Okay</span>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".tabchange{align-items:center;gap:8px;padding:1% 25%}.pricingtext{color:var(--Gray-900, #101828);font-family:Inter;font-size:20px;font-weight:600;line-height:30px}.semi{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:400;line-height:20px}.subtext{color:var(--Error-700, #B42318);font-family:Inter;font-size:12px;font-weight:400;line-height:18px}.billingtext{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:24px;font-weight:600;line-height:32px}.billedtext{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:18px;font-weight:600;line-height:32px;text-decoration-line:\"strikethrough\"}.sub1text{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:400;line-height:20px}.detailstext{color:var(--Gray-500, #667085);font-family:Inter;font-size:18px;font-weight:600;line-height:28px}.maxcam{color:var(--Primary-800, #008EDF);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.selecttext{color:#000;font-family:Inter;font-size:16px;font-weight:500;line-height:24px}.activePlanBtn{border-radius:6px;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280f,0 1px 3px #1018281a!important;color:var(--Gray-700, #344054);font-size:14px!important;font-weight:500!important;line-height:20px}.inactivePlanBtn{color:var(--Gray-500, #667085)!important;font-size:14px;font-weight:500!important;line-height:20px}.nav-group{background:var(--Gray-50, #F9FAFB)!important;border-radius:8px!important;border:1px solid var(--Gray-100, #F2F4F7)!important;width:fit-content}.form-check-label{color:var(--Gray-700, #344054)!important}.view{color:var(--Primary-700, #009BF3);font-family:Inter;font-size:12px;font-weight:500;line-height:18px;cursor:pointer}.modal-body{padding:4%!important}.vertical{border-right:1px solid var(--Gray-200, #EAECF0)}.subscribe{margin-top:50%}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.dropselect{color:var(--Gray-500, #667085);font-family:Inter;font-size:16px;font-style:normal;font-weight:400;line-height:24px;height:45px!important}.producttext{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.heading{color:var(--Gray-900, #101828);font-size:18px;font-weight:600;line-height:28px}.contenttext{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.gifimage{background-size:cover;height:100%}\n"] }]
|
|
197
213
|
}], ctorParameters: () => [{ type: i1.NgbModal }, { type: i1.NgbActiveModal }, { type: i2.ToastService }, { type: i3.PaymentSubscriptionService }, { type: i0.ChangeDetectorRef }], propDecorators: { clientId: [{
|
|
198
214
|
type: Input
|
|
199
215
|
}], onDocumentClick: [{
|
|
200
216
|
type: HostListener,
|
|
201
217
|
args: ['document:click', ['$event']]
|
|
202
218
|
}] } });
|
|
203
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBncmFkZS1wbGFuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvcGF5bWVudHMtc3Vic2NyaXB0aW9uL3N1YnNjcmlwdGlvbi1wb3B1cHMvdXBncmFkZS1wbGFuL3VwZ3JhZGUtcGxhbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL3BheW1lbnRzLXN1YnNjcmlwdGlvbi9zdWJzY3JpcHRpb24tcG9wdXBzL3VwZ3JhZGUtcGxhbi91cGdyYWRlLXBsYW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQWEsS0FBSyxFQUFVLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFHekcsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7OztBQU1qRixNQUFNLE9BQU8sb0JBQW9CO0lBeUJYO0lBQWdDO0lBQXFDO0lBQTZCO0lBQWdFO0lBeEI3SyxRQUFRLENBQU87SUFDeEIsa0JBQWtCLEdBQVksS0FBSyxDQUFDO0lBQ3BDLGlCQUFpQixHQUFZLEtBQUssQ0FBQztJQUNuQyxjQUFjLEdBQVUsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFB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QUMsQ0FBQztRQUNILFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3pDLENBQUM7dUdBL0xVLG9CQUFvQjsyRkFBcEIsb0JBQW9CLGdLQ2ZqQywwbVJBc0lNOzsyRkR2SE8sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQjs4TUFLbkIsUUFBUTtzQkFBaEIsS0FBSztnQkFvTE4sZUFBZTtzQkFEZCxZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95LCBJbnB1dCwgT25Jbml0LCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVXBkYXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vdXBkYXRlL3VwZGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCwgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFN1Y2Nlc3NmdWxsU3Vic2NyaXB0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vc3VjY2Vzc2Z1bGwtc3Vic2NyaXB0aW9uL3N1Y2Nlc3NmdWxsLXN1YnNjcmlwdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFpbEV4cGlyZWRDb21wb25lbnQgfSBmcm9tICcuLi90cmFpbC1leHBpcmVkL3RyYWlsLWV4cGlyZWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uQXBwcm92YWxDb21wb25lbnQgfSBmcm9tICcuLi9zdWJzY3JpcHRpb24tYXBwcm92YWwvc3Vic2NyaXB0aW9uLWFwcHJvdmFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBQYXltZW50U3Vic2NyaXB0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3BheW1lbnQtc3Vic2NyaXB0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTW9kYWxDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vbW9kZWwtY29udGVudC9tb2RlbC1jb250ZW50LmNvbXBvbmVudCc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXVwZ3JhZGUtcGxhbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VwZ3JhZGUtcGxhbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3VwZ3JhZGUtcGxhbi5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFVwZ3JhZGVQbGFuQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LE9uSW5pdCB7XHJcbiAgQElucHV0KCkgY2xpZW50SWQ6c3RyaW5nXHJcbiAgbm9vZnN0b3Jlc2Ryb3BEb3duOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQXZnc3RvcmVzZHJvcERvd246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBub29mc3RvcmVzdHlwZTogYW55W10gPSBbJzEoZnJlZSknLCAnMiAtIDI1JywgJzI2IC0gNTAnLCAnNTEgLSA3NScsICc3NiAtIDEwMCcsICcxMDArJ107XHJcbiAgQXZnc3RvcmVzdHlwZTogYW55W10gPSBbe25hbWU6JzUwIC0gNTAwIHNxLmZ0Jyx2YWx1ZTonNTAtNTAwJ30se25hbWU6ICc1MDAgLSA3NTAgc3EuZnQnLHZhbHVlOic1MDAtNzUwJ30se25hbWU6Jzc1MCAtIDEwMDAgc3EuZnQnLHZhbHVlOic3NTAtMTAwMCd9LCB7bmFtZTonMTAwMCAtIDE1MDAgc3EuZnQnLHZhbHVlOicxMDAwLTE1MDAnfSwge25hbWU6JzE1MDAgLSAyMDAwIHNxLmZ0Jyx2YWx1ZTonMTUwMC0yMDAwJ30se25hbWU6ICcyMDAwKyBzcS5mdCcsdmFsdWU6JzIwMDArJ31dO1xyXG4gIHBsYW46IHN0cmluZyA9ICdtb250aGx5JztcclxuICBzaG93TmF2R3JvdXA6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIG5vb2ZzdG9yZXNpdGVtOiBhbnk7XHJcbiAgbm9vZnN0b3Jlc0lzc3VlOiBhbnk7XHJcbiAgQXZnc3RvcmVzaXRlbTogYW55O1xyXG4gIEF2Z3N0b3Jlc0lzc3VlOiBhbnk7XHJcbiAgdXBkYXRlaW5mbzogYW55O1xyXG4gIGFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNsaWVudEluZm86IGFueTtcclxuICBwcmljZTphbnk7XHJcbiAgb3JpZ2luYWxQcmljZTphbnkgPSAwO1xyXG4gIG9sZFByb2R1Y3RzOmFueTtcclxuICBkaXNhYmxlQnRuOmJvb2xlYW4gPSB0cnVlO1xyXG4gIHRyaWFscHJvZHVjdHM6YW55ID0gW107XHJcbiAgZXhwaXJlZFByb2R1Y3RzOmFueSA9W107XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLCBwcml2YXRlIGFjdGl2ZU1vZGVsOiBOZ2JBY3RpdmVNb2RhbCwgcHJpdmF0ZSB0b2FzdDogVG9hc3RTZXJ2aWNlLCBwcml2YXRlIFBheW1lbnRTdWJzY3JpcHRpb25TZXJ2aWNlOiBQYXltZW50U3Vic2NyaXB0aW9uU2VydmljZSwgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOnZvaWQge1xyXG4gICAgdGhpcy51cGRhdGVzdWJzY3JpcHRpb24odGhpcy5jbGllbnRJZCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcbiAgc2VsZWN0UGxhbihwbGFuOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuY2xpZW50SW5mby5jdXJyZW50UGxhbkluZm8uc3Vic2NyaXB0aW9uUGVyaW9kID0gcGxhbjtcclxuICAgIHRoaXMuYmFzZVByaWNpbmcoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZSgpIHtcclxuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihVcGRhdGVDb21wb25lbnQsIHtcclxuICAgICAgY2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCdcclxuICAgIH0pO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UubW9kYWxEYXRhID0ge1xyXG4gICAgICBicmFuZE5hbWU6IHRoaXMuY2xpZW50SW5mbz8uY2xpZW50TmFtZSxcclxuICAgICAgZ3N0TnVtYmVyOnRoaXMuY2xpZW50SW5mbz8uYmlsbGluZ0RldGFpbHM/LmdzdE51bWJlcnx8ICcnLFxyXG4gICAgICBiaWxsaW5nQWRkcmVzczp0aGlzLmNsaWVudEluZm8/LmJpbGxpbmdEZXRhaWxzPy5iaWxsaW5nQWRkcmVzc3x8ICcnLFxyXG4gICAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJbmZvPy5jbGllbnRJZFxyXG4gICAgfVxyXG4gICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgdGhpcy5jbGllbnRJbmZvLmJpbGxpbmdEZXRhaWxzLmJpbGxpbmdBZGRyZXNzID0gcmVzdWx0Py5iaWxsaW5nQWRkcmVzcztcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgdHJhaWxleHBpcmVkKCkge1xyXG4gICAgdGhpcy5hY3RpdmVNb2RlbC5jbG9zZSgpO1xyXG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKFRyYWlsRXhwaXJlZENvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ21kJ1xyXG4gICAgfSk7XHJcbiAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjb25maXJtYXRpb24oKSB7XHJcbiAgICB0aGlzLmFjdGl2ZU1vZGVsLmNsb3NlKCk7XHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oU3Vic2NyaXB0aW9uQXBwcm92YWxDb21wb25lbnQsIHtcclxuICAgICAgY2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCcsIHNjcm9sbGFibGU6IHRydWVcclxuICAgIH0pO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UucHJvZHVjdHMgPSB0aGlzLmNsaWVudEluZm8/LmN1cnJlbnRQbGFuSW5mbz8ucHJvZHVjdDtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmNsaWVudEluZm8gPSB0aGlzLmNsaWVudEluZm87XHJcbiAgfVxyXG5cclxuICB0b2dnbGVOYXZHcm91cCgpIHtcclxuICAgIHRoaXMuc2hvd05hdkdyb3VwID0gIXRoaXMuc2hvd05hdkdyb3VwO1xyXG4gIH1cclxuXHJcbiAgbm9vZnN0b3Jlc0Ryb3Bkb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuQXZnc3RvcmVzZHJvcERvd24gPSBmYWxzZTtcclxuICAgIHRoaXMubm9vZnN0b3Jlc2Ryb3BEb3duID0gIXRoaXMubm9vZnN0b3Jlc2Ryb3BEb3duO1xyXG4gIH1cclxuICBBdmdzdG9yZXNEcm9wZG93bihldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLm5vb2ZzdG9yZXNkcm9wRG93biA9IGZhbHNlO1xyXG4gICAgdGhpcy5BdmdzdG9yZXNkcm9wRG93biA9ICF0aGlzLkF2Z3N0b3Jlc2Ryb3BEb3duO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlc3Vic2NyaXB0aW9uKGlkOiBhbnkpIHtcclxuICAgIHRoaXMuUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2UuY2xpZW50QmlsbGluZ0luZm8oaWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5jbGllbnRJbmZvID0gcmVzLmRhdGE7XHJcbiAgICAgICAgaWYodGhpcy5jbGllbnRJbmZvPy5jdXJyZW50UGxhbkluZm8/LnRyaWFsUHJvZHVjdHMpIHtcclxuICAgICAgICAgIHRoaXMudHJpYWxwcm9kdWN0cyA9IHRoaXMuY2xpZW50SW5mby5jdXJyZW50UGxhbkluZm8udHJpYWxQcm9kdWN0cy5tYXAoKGl0ZW06YW55KSA9PiBpdGVtLnByb2R1Y3ROYW1lKSA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHRoaXMuY2xpZW50SW5mbz8uY3VycmVudFBsYW5JbmZvPy5leHBpcmVkUHJvZHVjdHMpIHtcclxuICAgICAgICAgIHRoaXMuZXhwaXJlZFByb2R1Y3RzID0gdGhpcy5jbGllbnRJbmZvLmN1cnJlbnRQbGFuSW5mby5leHBpcmVkUHJvZHVjdHMubWFwKChpdGVtOmFueSkgPT4gaXRlbS5wcm9kdWN0TmFtZSkgO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICB0aGlzLm9sZFByb2R1Y3RzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmNsaWVudEluZm8uY3VycmVudFBsYW5JbmZvLnByb2R1Y3QpKVxyXG4gICAgICAgIHRoaXMuYmFzZVByaWNpbmcoKTtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG5cclxuICBiYXNlUHJpY2luZygpIHtcclxuICAgIGxldCBwcm9kdWN0cyA9IHRoaXMuY2xpZW50SW5mbz8uY3VycmVudFBsYW5JbmZvPy5wcm9kdWN0LmZpbHRlcigocHJvZHVjdDphbnkpID0+IHByb2R1Y3QuYWN0aXZlID09IHRydWUpLm1hcCgoaXRlbTphbnkpID0+IGl0ZW0ucHJvZHVjdE5hbWUpO1xyXG4gICAgbGV0IHBhcmFtczogYW55ID0ge1xyXG4gICAgICBjYW1hcmFQZXJTcWZ0OiB0aGlzLmNsaWVudEluZm8uY3VycmVudFBsYW5JbmZvLnN0b3JlU2l6ZSxcclxuICAgICAgc3RvcmVzQ291bnQ6IHRoaXMuY2xpZW50SW5mby5jdXJyZW50UGxhbkluZm8udG90YWxTdG9yZXMsXHJcbiAgICAgIHBsYW5OYW1lOiB0aGlzLmNsaWVudEluZm8uY3VycmVudFBsYW5JbmZvLnN1YnNjcmlwdGlvblBlcmlvZCxcclxuICAgICAgcHJvZHVjdHM6IHByb2R1Y3RzLFxyXG4gICAgICBjdXJyZW5jeVR5cGU6IFwicnVwZWVzXCJcclxuICAgIH1cclxuICAgIHRoaXMuUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2UuYmFzZVByaWNpbmcocGFyYW1zKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZihyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5jbGllbnRJbmZvLmN1cnJlbnRQbGFuSW5mby5wcmljZSA9IHJlcy5kYXRhLnByaWNlO1xyXG4gICAgICAgIHRoaXMub3JpZ2luYWxQcmljZSA9IHJlcy5kYXRhLk9yaWdpbmFsUHJpY2U7XHJcbiAgICAgICAgdGhpcy5jbGllbnRJbmZvLmN1cnJlbnRQbGFuSW5mby50b3RhbENhbWVyYSA9IHJlcy5kYXRhLmNhbWFyYUNvdW50O1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVByb2R1Y3QoZXZlbnQ6YW55LGRhdGE6c3RyaW5nKSB7XHJcbiAgICBsZXQgY2hhbmdlc0NvdW50ID0gMDtcclxuICBcclxuICAgIGxldCBwcm9kdWN0SW5kZXggPSB0aGlzLmNsaWVudEluZm8/LmN1cnJlbnRQbGFuSW5mbz8ucHJvZHVjdC5maW5kSW5kZXgoKHByb2R1Y3Q6YW55KSA9PiBwcm9kdWN0LnByb2R1Y3ROYW1lID09IGRhdGEpO1xyXG4gICAgaWYocHJvZHVjdEluZGV4ICE9IC0xKSB7XHJcbiAgICAgIGlmKGV2ZW50LnRhcmdldC5jaGVja2VkKVxyXG4gICAgICAgIHRoaXMuY2xpZW50SW5mby5jdXJyZW50UGxhbkluZm8ucHJvZHVjdFtwcm9kdWN0SW5kZXhdLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgIGVsc2UgXHJcbiAgICAgICAgdGhpcy5jbGllbnRJbmZvLmN1cnJlbnRQbGFuSW5mby5wcm9kdWN0W3Byb2R1Y3RJbmRleF0uYWN0aXZlID0gZmFsc2U7IFxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2xpZW50SW5mbz8uY3VycmVudFBsYW5JbmZvPy5wcm9kdWN0LmZvckVhY2goKGl0ZW06YW55KSA9PiB7XHJcbiAgICAgIGxldCBkZXRhaWxzID0gdGhpcy5vbGRQcm9kdWN0cy5maW5kKChlbGU6YW55KSA9PiBlbGUucHJvZHVjdE5hbWUgPT0gaXRlbS5wcm9kdWN0TmFtZSk7XHJcbiAgICAgIGlmKGRldGFpbHMpIHtcclxuICAgICAgICBpZihkZXRhaWxzLmFjdGl2ZSAhPSBpdGVtLmFjdGl2ZSkge1xyXG4gICAgICAgICAgY2hhbmdlc0NvdW50Kys7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgaWYgKGNoYW5nZXNDb3VudCA9PSAwKSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZUJ0biA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5kaXNhYmxlQnRuID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLmJhc2VQcmljaW5nKCk7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5vb2ZzdG9yZXNkYXRhKG5vb2ZzdG9yZXN2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLmNsaWVudEluZm8uY3VycmVudFBsYW5JbmZvLnRvdGFsU3RvcmVzID0gbm9vZnN0b3Jlc3ZhbHVlO1xyXG4gICAgdGhpcy5ub29mc3RvcmVzZHJvcERvd24gPSBmYWxzZTtcclxuICAgIHRoaXMuYmFzZVByaWNpbmcoKTtcclxuICB9XHJcbiAgQXZnc3RvcmVzZGF0YShBdmdzdG9yZXN2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLmNsaWVudEluZm8uY3VycmVudFBsYW5JbmZvLnN0b3JlU2l6ZSA9IEF2Z3N0b3Jlc3ZhbHVlO1xyXG4gICAgdGhpcy5iYXNlUHJpY2luZygpO1xyXG4gICAgdGhpcy5BdmdzdG9yZXNkcm9wRG93biA9IGZhbHNlO1xyXG4gIH1cclxuICBnZXRDb2xvckNsYXNzKHRvb2xUaXA6IHN0cmluZykge1xyXG4gICAgc3dpdGNoICh0b29sVGlwKSB7XHJcbiAgICAgIGNhc2UgJ1N1YnNjcmliZWQnOiByZXR1cm4gJ2JhZGdlIGJhZGdlLWxpZ2h0LXN1Y2Nlc3MgbXgtNCc7XHJcbiAgICAgIGNhc2UgJ1RyaWFsIEV4cGlyZWQnOiByZXR1cm4gJ2JhZGdlIGJhZGdlLWxpZ2h0LXdhcm5pbmcgbXgtNCc7XHJcbiAgICAgIGNhc2UgJ09uIFRyaWFsJzogcmV0dXJuICdiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IG14LTQnO1xyXG4gICAgICBkZWZhdWx0OiByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgb25Eb2N1bWVudENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgIHRoaXMuQXZnc3RvcmVzZHJvcERvd24gPSBmYWxzZTtcclxuICAgdGhpcy5ub29mc3RvcmVzZHJvcERvd24gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNob3dJbmZvKGRhdGE6YW55KSB7XHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oTW9kYWxDb250ZW50Q29tcG9uZW50LCB7XHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLCBzaXplOiAnbGcnLCBzY3JvbGxhYmxlOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS51c2VyID0gZGF0YTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJzaG93TmF2R3JvdXBcIiBjbGFzcz1cIm5hdi1ncm91cCBuYXYtZ3JvdXAtb3V0bGluZSBteC1hdXRvIG10LTggZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWNvbG9yLWdyYXktNjAwIGJ0bi1hY3RpdmUgYnRuLWFjdGl2ZS1zZWNvbmRhcnkgcHgtNiBweS0zIG1lLTJcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cImNsaWVudEluZm8/LmN1cnJlbnRQbGFuSW5mbz8uc3Vic2NyaXB0aW9uUGVyaW9kID09PSAnbW9udGhseScgPyAnYWN0aXZlUGxhbkJ0bic6J2luYWN0aXZlUGxhbkJ0bidcIlxyXG4gICAgICAgIGRhdGEta3QtcGxhbj1cIm1vbnRoXCIgKGNsaWNrKT1cInNlbGVjdFBsYW4oJ21vbnRobHknKVwiPlxyXG4gICAgICAgIE1vbnRobHlcclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWNvbG9yLWdyYXktNjAwIGJ0bi1hY3RpdmUgYnRuLWFjdGl2ZS1zZWNvbmRhcnkgcHgtNiBweS0zXCJcclxuICAgICAgICBbbmdDbGFzc109XCJjbGllbnRJbmZvPy5jdXJyZW50UGxhbkluZm8/LnN1YnNjcmlwdGlvblBlcmlvZCA9PT0gJ3F1YXJ0ZXJseSc/ICdhY3RpdmVQbGFuQnRuJzonaW5hY3RpdmVQbGFuQnRuJ1wiXHJcbiAgICAgICAgZGF0YS1rdC1wbGFuPVwiUXVhcnRlcmx5XCIgKGNsaWNrKT1cInNlbGVjdFBsYW4oJ3F1YXJ0ZXJseScpXCI+XHJcbiAgICAgICAgUXVhcnRlcmx5IC0gMTAlXHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWNvbG9yLWdyYXktNjAwIGJ0bi1hY3RpdmUgYnRuLWFjdGl2ZS1zZWNvbmRhcnkgcHgtNiBweS0zXCJcclxuICAgICAgICBbbmdDbGFzc109XCJjbGllbnRJbmZvPy5jdXJyZW50UGxhbkluZm8/LnN1YnNjcmlwdGlvblBlcmlvZCA9PT0gJ2FubnVhbCc/ICdhY3RpdmVQbGFuQnRuJzonaW5hY3RpdmVQbGFuQnRuJ1wiXHJcbiAgICAgICAgZGF0YS1rdC1wbGFuPVwiYW5udWFsXCIgKGNsaWNrKT1cInNlbGVjdFBsYW4oJ2FubnVhbCcpXCI+XHJcbiAgICAgICAgQW5udWFsIC0gMTUlXHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgcm93IFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IHBlLTggdmVydGljYWxcIj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmdi1yb3cgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMlwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaGVhZGluZ3RleHQgbWItM1wiPk5vIG9mIFN0b3JlcyA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXNlbGVjdCBkcm9wc2VsZWN0IGxldmVsdmlld3RleHRcIiBpZD1cImN1cnJlbmN5XCIgKGNsaWNrKT1cIm5vb2ZzdG9yZXNEcm9wZG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkRlZmF1bHQgc2VsZWN0IGV4YW1wbGVcIj57e2NsaWVudEluZm8/LmN1cnJlbnRQbGFuSW5mbz8udG90YWxTdG9yZXMgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm9vZnN0b3Jlc3R5cGVbMF19fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub29mc3RvcmVzZHJvcERvd25cIiBjbGFzcz1cImNhcmQgcHktMiB3LTEwMCBwb3NpdGlvbi1hYnNvbHV0ZSBlbmQtMCB6LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0Zvcj1cImxldCBub29mc3RvcmVzIG9mIG5vb2ZzdG9yZXN0eXBlXCIgY2xhc3M9XCJsaXN0LXVuc3R5bGVkIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBbbmdDbGFzc109XCJjbGllbnRJbmZvPy5jdXJyZW50UGxhbkluZm8/LnRvdGFsU3RvcmVzID09PSBub29mc3RvcmVzID8gJ2FjdGl2ZScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9kdWN0dGV4dCBweC01IGl0ZW1zIGN1cnNvci1wb2ludGVyIHB5LTRcIiAoY2xpY2spPVwibm9vZnN0b3Jlc2RhdGEobm9vZnN0b3JlcylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBub29mc3RvcmVzIH19PC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJoZWFkaW5ndGV4dCBtYi0zXCI+QXZlcmFnZSBTaXplIG9mIFN0b3JlcyA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXNlbGVjdCBkcm9wc2VsZWN0IGxldmVsdmlld3RleHRcIiBpZD1cImN1cnJlbmN5XCIgKGNsaWNrKT1cIkF2Z3N0b3Jlc0Ryb3Bkb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiRGVmYXVsdCBzZWxlY3QgZXhhbXBsZVwiPnt7Y2xpZW50SW5mbz8uY3VycmVudFBsYW5JbmZvPy5zdG9yZVNpemUgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgQXZnc3RvcmVzdHlwZVswXS52YWx1ZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIkF2Z3N0b3Jlc2Ryb3BEb3duXCIgY2xhc3M9XCJjYXJkIHB5LTIgdy0xMDAgcG9zaXRpb24tYWJzb2x1dGUgZW5kLTAgei0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCAqbmdGb3I9XCJsZXQgQXZnc3RvcmVzIG9mIEF2Z3N0b3Jlc3R5cGVcIiBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cImNsaWVudEluZm8/LmN1cnJlbnRQbGFuSW5mbz8uc3RvcmVTaXplID09PSBBdmdzdG9yZXMgPyAnYWN0aXZlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2R1Y3R0ZXh0IHB4LTUgaXRlbXMgY3Vyc29yLXBvaW50ZXIgcHktNFwiIChjbGljayk9XCJBdmdzdG9yZXNkYXRhKEF2Z3N0b3Jlcy52YWx1ZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e0F2Z3N0b3Jlcy5uYW1lfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF4Y2FtIG10LTJcIj5cclxuICAgICAgICAgICAgICAgIE1heGltdW0ge3tjbGllbnRJbmZvPy5jdXJyZW50UGxhbkluZm8/LnRvdGFsQ2FtZXJhfX0gQ2FtZXJhcyBhcmUgcGVybWl0dGVkIGluIHN0b3JlcyB3aXRoIHNxdWFyZSBmZWV0IGJldHdlZW4ge3tjbGllbnRJbmZvPy5jdXJyZW50UGxhbkluZm8/LnN0b3JlU2l6ZX19LlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdHRleHQgbXktNSBtdC0xMlwiPlNlbGVjdCBQcm9kdWN0czwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBwcm9kdWN0bGlzdCBvZiBjbGllbnRJbmZvPy5jdXJyZW50UGxhbkluZm8/LnByb2R1Y3RcIiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTZcIj5cclxuICAgICAgICAgICAgPGRpdj48aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiIGlkPVwidGFuZ29yZXZvcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwicHJvZHVjdGxpc3QuYWN0aXZlID09PSB0cnVlXCIgKGNoYW5nZSk9XCJ1cGRhdGVQcm9kdWN0KCRldmVudCxwcm9kdWN0bGlzdC5wcm9kdWN0TmFtZSlcIiBbZGlzYWJsZWRdPVwicHJvZHVjdGxpc3Quc3RhdHVzID09PSAnbGl2ZSdcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBfbmdjb250ZW50LXdraC1jMjQ5PVwiXCIgZm9yPVwiZmxleFN3aXRjaENoZWNrRGVmYXVsdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGhlYWRpbmd0ZXh0IGQtZmxleFwiPnt7cHJvZHVjdGxpc3QuYWxpc2VQcm9kdWN0TmFtZX19IFxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJnZXRDb2xvckNsYXNzKHByb2R1Y3RsaXN0LnRvb2xUaXApXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7cHJvZHVjdGxpc3QudG9vbFRpcH19IDxzcGFuICpuZ0lmPVwiZXhwaXJlZFByb2R1Y3RzLmxlbmd0aCAmJiBwcm9kdWN0bGlzdC5wcm9kdWN0TmFtZS5pbmNsdWRlcyhleHBpcmVkUHJvZHVjdHMpXCI+PGltZyBjbGFzcz1cIm1zLTJcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9jdXN0b21wb3B1cC1JY29ucy9jbG9ja2V4cGlyeS1pY29uLnN2Z1wiIGFsdD1cIlwiPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPiA8c3BhbiAqbmdJZj1cInRyaWFscHJvZHVjdHMubGVuZ3RoICYmIHByb2R1Y3RsaXN0LnByb2R1Y3ROYW1lLmluY2x1ZGVzKHRyaWFscHJvZHVjdHMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibXMtMlwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL2N1c3RvbXBvcHVwLUljb25zL3ByaW1hcnktY2xvY2staWNvbi5zdmdcIiBhbHQ9XCJcIj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZpZXdcIiAoY2xpY2spPVwic2hvd0luZm8ocHJvZHVjdGxpc3QucHJvZHVjdE5hbWUpXCI+VmlldyBJbmZvIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05IDYuNVY5LjVDOSA5Ljc2NTIyIDguODk0NjQgMTAuMDE5NiA4LjcwNzExIDEwLjIwNzFDOC41MTk1NyAxMC4zOTQ2IDguMjY1MjIgMTAuNSA4IDEwLjVIMi41QzIuMjM0NzggMTAuNSAxLjk4MDQzIDEwLjM5NDYgMS43OTI4OSAxMC4yMDcxQzEuNjA1MzYgMTAuMDE5NiAxLjUgOS43NjUyMiAxLjUgOS41VjRDMS41IDMuNzM0NzggMS42MDUzNiAzLjQ4MDQzIDEuNzkyODkgMy4yOTI4OUMxLjk4MDQzIDMuMTA1MzYgMi4yMzQ3OCAzIDIuNSAzSDUuNU03LjUgMS41SDEwLjVNMTAuNSAxLjVWNC41TTEwLjUgMS41TDUgN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuXHJcblxyXG5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IHB4LThcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicGItNlwiPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNpbmd0ZXh0XCI+RnJlZTwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbWkgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgSW50ZWdyYXRlZCBTb2x1dGlvbiBmb3IgR3Jvd2luZyBCdXNpbmVzc1xyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+PHNwYW4gY2xhc3M9XCJtZS0zIG10LTVcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8yMjMxXzQyMzQyKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuOTk5NjcgMTAuNjY3M1Y4LjAwMDY1TTcuOTk5NjcgNS4zMzM5OEg4LjAwNjM0TTE0LjY2NjMgOC4wMDA2NUMxNC42NjYzIDExLjY4MjYgMTEuNjgxNiAxNC42NjczIDcuOTk5NjcgMTQuNjY3M0M0LjMxNzc4IDE0LjY2NzMgMS4zMzMwMSAxMS42ODI2IDEuMzMzMDEgOC4wMDA2NUMxLjMzMzAxIDQuMzE4NzUgNC4zMTc3OCAxLjMzMzk4IDcuOTk5NjcgMS4zMzM5OEMxMS42ODE2IDEuMzMzOTggMTQuNjY2MyA0LjMxODc1IDE0LjY2NjMgOC4wMDA2NVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiNCNTQ3MDhcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMjIzMV80MjM0MlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YnRleHQgbXQtNlwiPllvdSB3aWxsIG9ubHkgYmUgY2hhcmdlZCBmb3IgPCBUYW5nbyBUcmFmZmljLFRhbmdvIDxicj5ab25lICYgVGFuZ28gUmV2T3BzID5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWIxdGV4dCBtdC01XCI+U3RhcnRzIGZyb20gPHNwYW4gY2xhc3M9XCJiaWxsZWR0ZXh0IG1zLTJcIj48cz7igrl7e29yaWdpbmFsUHJpY2V9fTwvcz48L3NwYW4+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJpbGxpbmd0ZXh0IG1zLTRcIj7igrl7e2NsaWVudEluZm8/LmN1cnJlbnRQbGFuSW5mbz8ucHJpY2UgfHwgMH19PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViMXRleHQgbXQtMlwiPlBlciBzdG9yZSBQZXIgbW9udGg8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHN0ZXh0XCI+QmlsbGluZyBEZXRhaWxzPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdWIxdGV4dCBweS00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi00XCI+QnJhbmQgTmFtZToge3tjbGllbnRJbmZvPy5jbGllbnROYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdj5CaWxsaW5nIEFkZHJlc3M6IHt7Y2xpZW50SW5mbz8uYmlsbGluZ0RldGFpbHM/LmJpbGxpbmdBZGRyZXNzIHx8ICctLSd9fTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBzdWJzY3JpYmVcIj4gXHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInVwZGF0ZSgpXCIgdHlwZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiMFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtcy0yIG5nLXN0YXItaW5zZXJ0ZWQgdy0xMDAgYnRuLWJsb2NrIHRleHQtbm93cmFwXCIgKm5nSWY9XCIhY2xpZW50SW5mbz8uYmlsbGluZ0RldGFpbHM/LmJpbGxpbmdBZGRyZXNzXCI+PHNwYW4gY2xhc3M9XCJzdWJtaXRcIj5FbnRlclxyXG4gICAgICAgICAgICAgICAgICAgIEJpbGxpbmcgRGV0YWlscyA8L3NwYW4+PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNvbmZpcm1hdGlvbigpXCIgdHlwZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiMFwiICpuZ0lmPVwiY2xpZW50SW5mbz8uYmlsbGluZ0RldGFpbHM/LmJpbGxpbmdBZGRyZXNzXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1zLTIgbmctc3Rhci1pbnNlcnRlZCB3LTEwMCBidG4tYmxvY2tcIiBzdHlsZT1cIndoaXRlLXNwYWNlOiBub3dyYXA7XCIgW2Rpc2FibGVkXT1cImRpc2FibGVCdG5cIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3VibWl0XCI+U3Vic2NyaWJlIE5vdyA8L3NwYW4+PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBncmFkZS1wbGFuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvcGF5bWVudHMtc3Vic2NyaXB0aW9uL3N1YnNjcmlwdGlvbi1wb3B1cHMvdXBncmFkZS1wbGFuL3VwZ3JhZGUtcGxhbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL3BheW1lbnRzLXN1YnNjcmlwdGlvbi9zdWJzY3JpcHRpb24tcG9wdXBzL3VwZ3JhZGUtcGxhbi91cGdyYWRlLXBsYW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQWEsS0FBSyxFQUFVLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFHekcsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7OztBQU1qRixNQUFNLE9BQU8sb0JBQW9CO0lBMkJYO0lBQStCO0lBQXFDO0lBQTZCO0lBQWdFO0lBMUI1SyxRQUFRLENBQU87SUFDeEIsa0JBQWtCLEdBQVksS0FBSyxDQUFDO0lBQ3BDLGlCQUFpQixHQUFZLEtBQUssQ0FBQztJQUNuQyxjQUFjLEdBQVUsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFB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O1lBQzdELFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSTtTQUM3QyxDQUFDLENBQUM7UUFDSCxRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUN6QyxDQUFDO0lBQ0QsdUJBQXVCO1FBQ3JCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUNELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDMUcsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUNyQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBRUosQ0FBQzt1R0E5TVUsb0JBQW9COzJGQUFwQixvQkFBb0IsZ0tDZmpDLGtzVEE2SkE7OzJGRDlJYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usa0JBQWtCOzhNQUtuQixRQUFRO3NCQUFoQixLQUFLO2dCQXFMTixlQUFlO3NCQURkLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIElucHV0LCBPbkluaXQsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVcGRhdGVDb21wb25lbnQgfSBmcm9tICcuLi91cGRhdGUvdXBkYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsLCBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgU3VjY2Vzc2Z1bGxTdWJzY3JpcHRpb25Db21wb25lbnQgfSBmcm9tICcuLi9zdWNjZXNzZnVsbC1zdWJzY3JpcHRpb24vc3VjY2Vzc2Z1bGwtc3Vic2NyaXB0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYWlsRXhwaXJlZENvbXBvbmVudCB9IGZyb20gJy4uL3RyYWlsLWV4cGlyZWQvdHJhaWwtZXhwaXJlZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb25BcHByb3ZhbENvbXBvbmVudCB9IGZyb20gJy4uL3N1YnNjcmlwdGlvbi1hcHByb3ZhbC9zdWJzY3JpcHRpb24tYXBwcm92YWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IFBheW1lbnRTdWJzY3JpcHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvcGF5bWVudC1zdWJzY3JpcHRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNb2RhbENvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi9tb2RlbC1jb250ZW50L21vZGVsLWNvbnRlbnQuY29tcG9uZW50JztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdXBncmFkZS1wbGFuJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXBncmFkZS1wbGFuLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdXBncmFkZS1wbGFuLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVXBncmFkZVBsYW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksT25Jbml0IHtcclxuICBASW5wdXQoKSBjbGllbnRJZDpzdHJpbmdcclxuICBub29mc3RvcmVzZHJvcERvd246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBBdmdzdG9yZXNkcm9wRG93bjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG5vb2ZzdG9yZXN0eXBlOiBhbnlbXSA9IFsnMShmcmVlKScsICcyIC0gMjUnLCAnMjYgLSA1MCcsICc1MSAtIDc1JywgJzc2IC0gMTAwJywgJzEwMCsnXTtcclxuICBBdmdzdG9yZXN0eXBlOiBhbnlbXSA9IFt7bmFtZTonNTAgLSA1MDAgc3EuZnQnLHZhbHVlOic1MC01MDAnfSx7bmFtZTogJzUwMCAtIDc1MCBzcS5mdCcsdmFsdWU6JzUwMC03NTAnfSx7bmFtZTonNzUwIC0gMTAwMCBzcS5mdCcsdmFsdWU6Jzc1MC0xMDAwJ30sIHtuYW1lOicxMDAwIC0gMTUwMCBzcS5mdCcsdmFsdWU6JzEwMDAtMTUwMCd9LCB7bmFtZTonMTUwMCAtIDIwMDAgc3EuZnQnLHZhbHVlOicxNTAwLTIwMDAnfSx7bmFtZTogJzIwMDArIHNxLmZ0Jyx2YWx1ZTonMjAwMCsnfV07XHJcbiAgcGxhbjogc3RyaW5nID0gJ21vbnRobHknO1xyXG4gIHNob3dOYXZHcm91cDogYm9vbGVhbiA9IHRydWU7XHJcbiAgbm9vZnN0b3Jlc2l0ZW06IGFueTtcclxuICBub29mc3RvcmVzSXNzdWU6IGFueTtcclxuICBBdmdzdG9yZXNpdGVtOiBhbnk7XHJcbiAgQXZnc3RvcmVzSXNzdWU6IGFueTtcclxuICB1cGRhdGVpbmZvOiBhbnk7XHJcbiAgYWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY2xpZW50SW5mbzogYW55O1xyXG4gIHByaWNlOmFueTtcclxuICBvcmlnaW5hbFByaWNlOmFueSA9IDA7XHJcbiAgb2xkUHJvZHVjdHM6YW55O1xyXG4gIGRpc2FibGVCdG46Ym9vbGVhbiA9IHRydWU7XHJcbiAgdHJpYWxwcm9kdWN0czphbnkgPSBbXTtcclxuICBleHBpcmVkUHJvZHVjdHM6YW55ID1bXTtcclxuICBzdWJzY3JpcHRpb24gPSAncHJpY2luZ3BsYW4nO1xyXG4gIGNvbmZpcm1lZFByb2R1Y3RzOmFueSA9IFtdO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGNsaWVudGluZm86IGFueTtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCwgcHVibGljIGFjdGl2ZU1vZGVsOiBOZ2JBY3RpdmVNb2RhbCwgcHJpdmF0ZSB0b2FzdDogVG9hc3RTZXJ2aWNlLCBwcml2YXRlIFBheW1lbnRTdWJzY3JpcHRpb25TZXJ2aWNlOiBQYXltZW50U3Vic2NyaXB0aW9uU2VydmljZSwgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOnZvaWQge1xyXG4gICAgdGhpcy51cGRhdGVzdWJzY3JpcHRpb24odGhpcy5jbGllbnRJZCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcbiAgc2VsZWN0UGxhbihwbGFuOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuY2xpZW50SW5mby5jdXJyZW50UGxhbkluZm8uc3Vic2NyaXB0aW9uUGVyaW9kID0gcGxhbjtcclxuICAgIHRoaXMuYmFzZVByaWNpbmcoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZSgpIHtcclxuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihVcGRhdGVDb21wb25lbnQsIHtcclxuICAgICAgY2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCdcclxuICAgIH0pO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UubW9kYWxEYXRhID0ge1xyXG4gICAgICBicmFuZE5hbWU6IHRoaXMuY2xpZW50SW5mbz8uY2xpZW50TmFtZSxcclxuICAgICAgZ3N0TnVtYmVyOnRoaXMuY2xpZW50SW5mbz8uYmlsbGluZ0RldGFpbHM/LmdzdE51bWJlcnx8ICcnLFxyXG4gICAgICBiaWxsaW5nQWRkcmVzczp0aGlzLmNsaWVudEluZm8/LmJpbGxpbmdEZXRhaWxzPy5iaWxsaW5nQWRkcmVzc3x8ICcnLFxyXG4gICAgICBjbGllbnRJZDogdGhpcy5jbGllbnRJbmZvPy5jbGllbnRJZFxyXG4gICAgfVxyXG4gICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgdGhpcy5jbGllbnRJbmZvLmJpbGxpbmdEZXRhaWxzLmJpbGxpbmdBZGRyZXNzID0gcmVzdWx0Py5iaWxsaW5nQWRkcmVzcztcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgdHJhaWxleHBpcmVkKCkge1xyXG4gICAgdGhpcy5hY3RpdmVNb2RlbC5jbG9zZSgpO1xyXG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKFRyYWlsRXhwaXJlZENvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ21kJ1xyXG4gICAgfSk7XHJcbiAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0KSA9PiB7XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjb25maXJtYXRpb24oKSB7XHJcbiAgICB0aGlzLmFjdGl2ZU1vZGVsLmNsb3NlKCk7XHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oU3Vic2NyaXB0aW9uQXBwcm92YWxDb21wb25lbnQsIHtcclxuICAgICAgY2VudGVyZWQ6IHRydWUsIHNpemU6ICdtZCcsIHNjcm9sbGFibGU6IHRydWVcclxuICAgIH0pO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UucHJvZHVjdHMgPSB0aGlzLmNsaWVudEluZm8/LmN1cnJlbnRQbGFuSW5mbz8ucHJvZHVjdDtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmNsaWVudEluZm8gPSB0aGlzLmNsaWVudEluZm87XHJcbiAgfVxyXG5cclxuICB0b2dnbGVOYXZHcm91cCgpIHtcclxuICAgIHRoaXMuc2hvd05hdkdyb3VwID0gIXRoaXMuc2hvd05hdkdyb3VwO1xyXG4gIH1cclxuXHJcbiAgbm9vZnN0b3Jlc0Ryb3Bkb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuQXZnc3RvcmVzZHJvcERvd24gPSBmYWxzZTtcclxuICAgIHRoaXMubm9vZnN0b3Jlc2Ryb3BEb3duID0gIXRoaXMubm9vZnN0b3Jlc2Ryb3BEb3duO1xyXG4gIH1cclxuICBBdmdzdG9yZXNEcm9wZG93bihldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLm5vb2ZzdG9yZXNkcm9wRG93biA9IGZhbHNlO1xyXG4gICAgdGhpcy5BdmdzdG9yZXNkcm9wRG93biA9ICF0aGlzLkF2Z3N0b3Jlc2Ryb3BEb3duO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlc3Vic2NyaXB0aW9uKGlkOiBhbnkpIHtcclxuICAgIHRoaXMuUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2UuY2xpZW50QmlsbGluZ0luZm8oaWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5jbGllbnRJbmZvID0gcmVzLmRhdGE7XHJcbiAgICAgICAgaWYodGhpcy5jbGllbnRJbmZvPy5jdXJyZW50UGxhbkluZm8/LnRyaWFsUHJvZHVjdHMpIHtcclxuICAgICAgICAgIHRoaXMudHJpYWxwcm9kdWN0cyA9IHRoaXMuY2xpZW50SW5mby5jdXJyZW50UGxhbkluZm8udHJpYWxQcm9kdWN0cy5tYXAoKGl0ZW06YW55KSA9PiBpdGVtLnByb2R1Y3ROYW1lKSA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHRoaXMuY2xpZW50SW5mbz8uY3VycmVudFBsYW5JbmZvPy5leHBpcmVkUHJvZHVjdHMpIHtcclxuICAgICAgICAgIHRoaXMuZXhwaXJlZFByb2R1Y3RzID0gdGhpcy5jbGllbnRJbmZvLmN1cnJlbnRQbGFuSW5mby5leHBpcmVkUHJvZHVjdHMubWFwKChpdGVtOmFueSkgPT4gaXRlbS5wcm9kdWN0TmFtZSkgO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICB0aGlzLm9sZFByb2R1Y3RzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmNsaWVudEluZm8uY3VycmVudFBsYW5JbmZvLnByb2R1Y3QpKVxyXG4gICAgICAgIHRoaXMuYmFzZVByaWNpbmcoKTtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG5cclxuICBiYXNlUHJpY2luZygpIHtcclxuICAgIGxldCBwcm9kdWN0cyA9IHRoaXMuY2xpZW50SW5mbz8uY3VycmVudFBsYW5JbmZvPy5wcm9kdWN0LmZpbHRlcigocHJvZHVjdDphbnkpID0+IHByb2R1Y3QuYWN0aXZlID09IHRydWUpLm1hcCgoaXRlbTphbnkpID0+IGl0ZW0ucHJvZHVjdE5hbWUpO1xyXG4gICAgbGV0IHBhcmFtczogYW55ID0ge1xyXG4gICAgICBjYW1hcmFQZXJTcWZ0OiB0aGlzLmNsaWVudEluZm8uY3VycmVudFBsYW5JbmZvLnN0b3JlU2l6ZSxcclxuICAgICAgc3RvcmVzQ291bnQ6IHRoaXMuY2xpZW50SW5mby5jdXJyZW50UGxhbkluZm8udG90YWxTdG9yZXMsXHJcbiAgICAgIHBsYW5OYW1lOiB0aGlzLmNsaWVudEluZm8uY3VycmVudFBsYW5JbmZvLnN1YnNjcmlwdGlvblBlcmlvZCxcclxuICAgICAgcHJvZHVjdHM6IHByb2R1Y3RzLFxyXG4gICAgICBjdXJyZW5jeVR5cGU6IFwicnVwZWVzXCJcclxuICAgIH1cclxuICAgIHRoaXMuUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2UuYmFzZVByaWNpbmcocGFyYW1zKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZihyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5jbGllbnRJbmZvLmN1cnJlbnRQbGFuSW5mby5wcmljZSA9IHJlcy5kYXRhLnByaWNlO1xyXG4gICAgICAgIHRoaXMub3JpZ2luYWxQcmljZSA9IHJlcy5kYXRhLk9yaWdpbmFsUHJpY2U7XHJcbiAgICAgICAgdGhpcy5jbGllbnRJbmZvLmN1cnJlbnRQbGFuSW5mby50b3RhbENhbWVyYSA9IHJlcy5kYXRhLmNhbWFyYUNvdW50O1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVByb2R1Y3QoZXZlbnQ6YW55LGRhdGE6c3RyaW5nKSB7XHJcbiAgICBsZXQgY2hhbmdlc0NvdW50ID0gMDtcclxuICAgIGxldCBwcm9kdWN0SW5kZXggPSB0aGlzLmNsaWVudEluZm8/LmN1cnJlbnRQbGFuSW5mbz8ucHJvZHVjdC5maW5kSW5kZXgoKHByb2R1Y3Q6YW55KSA9PiBwcm9kdWN0LnByb2R1Y3ROYW1lID09IGRhdGEpO1xyXG4gICAgaWYocHJvZHVjdEluZGV4ICE9IC0xKSB7XHJcbiAgICAgIGlmKGV2ZW50LnRhcmdldC5jaGVja2VkKVxyXG4gICAgICAgIHRoaXMuY2xpZW50SW5mby5jdXJyZW50UGxhbkluZm8ucHJvZHVjdFtwcm9kdWN0SW5kZXhdLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgIGVsc2UgXHJcbiAgICAgICAgdGhpcy5jbGllbnRJbmZvLmN1cnJlbnRQbGFuSW5mby5wcm9kdWN0W3Byb2R1Y3RJbmRleF0uYWN0aXZlID0gZmFsc2U7IFxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2xpZW50SW5mbz8uY3VycmVudFBsYW5JbmZvPy5wcm9kdWN0LmZvckVhY2goKGl0ZW06YW55KSA9PiB7XHJcbiAgICAgIGxldCBkZXRhaWxzID0gdGhpcy5vbGRQcm9kdWN0cy5maW5kKChlbGU6YW55KSA9PiBlbGUucHJvZHVjdE5hbWUgPT0gaXRlbS5wcm9kdWN0TmFtZSk7XHJcbiAgICAgIGlmKGRldGFpbHMpIHtcclxuICAgICAgICBpZihkZXRhaWxzLmFjdGl2ZSAhPSBpdGVtLmFjdGl2ZSkge1xyXG4gICAgICAgICAgY2hhbmdlc0NvdW50Kys7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgaWYgKGNoYW5nZXNDb3VudCA9PSAwKSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZUJ0biA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5kaXNhYmxlQnRuID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLmJhc2VQcmljaW5nKCk7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5vb2ZzdG9yZXNkYXRhKG5vb2ZzdG9yZXN2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLmNsaWVudEluZm8uY3VycmVudFBsYW5JbmZvLnRvdGFsU3RvcmVzID0gbm9vZnN0b3Jlc3ZhbHVlO1xyXG4gICAgdGhpcy5ub29mc3RvcmVzZHJvcERvd24gPSBmYWxzZTtcclxuICAgIHRoaXMuYmFzZVByaWNpbmcoKTtcclxuICB9XHJcbiAgQXZnc3RvcmVzZGF0YShBdmdzdG9yZXN2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLmNsaWVudEluZm8uY3VycmVudFBsYW5JbmZvLnN0b3JlU2l6ZSA9IEF2Z3N0b3Jlc3ZhbHVlO1xyXG4gICAgdGhpcy5iYXNlUHJpY2luZygpO1xyXG4gICAgdGhpcy5BdmdzdG9yZXNkcm9wRG93biA9IGZhbHNlO1xyXG4gIH1cclxuICBnZXRDb2xvckNsYXNzKHRvb2xUaXA6IHN0cmluZykge1xyXG4gICAgc3dpdGNoICh0b29sVGlwKSB7XHJcbiAgICAgIGNhc2UgJ1N1YnNjcmliZWQnOiByZXR1cm4gJ2JhZGdlIGJhZGdlLWxpZ2h0LXN1Y2Nlc3MgbXgtNCc7XHJcbiAgICAgIGNhc2UgJ1RyaWFsIEV4cGlyZWQnOiByZXR1cm4gJ2JhZGdlIGJhZGdlLWxpZ2h0LXdhcm5pbmcgbXgtNCc7XHJcbiAgICAgIGNhc2UgJ09uIFRyaWFsJzogcmV0dXJuICdiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IG14LTQnO1xyXG4gICAgICBkZWZhdWx0OiByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgb25Eb2N1bWVudENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgIHRoaXMuQXZnc3RvcmVzZHJvcERvd24gPSBmYWxzZTtcclxuICAgdGhpcy5ub29mc3RvcmVzZHJvcERvd24gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNob3dJbmZvKGRhdGE6YW55KSB7XHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oTW9kYWxDb250ZW50Q29tcG9uZW50LCB7XHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLCBzaXplOiAnbGcnLCBzY3JvbGxhYmxlOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS51c2VyID0gZGF0YTtcclxuICB9XHJcbiAgY2xvc2VQb3B1cEFuZFJlbG9hZERhdGEoKSB7XHJcbiAgICB0aGlzLmNsaWVudEJpbGxpbmdJbmZvKHRoaXMuY2xpZW50SWQpO1xyXG4gICAgdGhpcy5QYXltZW50U3Vic2NyaXB0aW9uU2VydmljZS50cmlnZ2VyUmVsb2FkKCk7XHJcbiAgICB0aGlzLmFjdGl2ZU1vZGVsLmNsb3NlKCk7XHJcbiAgfVxyXG4gIGNsaWVudEJpbGxpbmdJbmZvKGlkOiBhbnkpIHtcclxuICAgIHRoaXMuUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2UuY2xpZW50QmlsbGluZ0luZm8oaWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgdGhpcy5jbGllbnRpbmZvID0gcmVzLmRhdGE7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gIH1cclxuXHJcblxyXG59XHJcbiIsIjxzZWN0aW9uICpuZ0lmPVwic3Vic2NyaXB0aW9uID09ICdwcmljaW5ncGxhbidcIj5cclxuICAgIDxkaXYgKm5nSWY9XCJzaG93TmF2R3JvdXBcIiBjbGFzcz1cIm5hdi1ncm91cCBuYXYtZ3JvdXAtb3V0bGluZSBteC1hdXRvIG10LTggZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWNvbG9yLWdyYXktNjAwIGJ0bi1hY3RpdmUgYnRuLWFjdGl2ZS1zZWNvbmRhcnkgcHgtNiBweS0zIG1lLTJcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cImNsaWVudEluZm8/LmN1cnJlbnRQbGFuSW5mbz8uc3Vic2NyaXB0aW9uUGVyaW9kID09PSAnbW9udGhseScgPyAnYWN0aXZlUGxhbkJ0bic6J2luYWN0aXZlUGxhbkJ0bidcIlxyXG4gICAgICAgIGRhdGEta3QtcGxhbj1cIm1vbnRoXCIgKGNsaWNrKT1cInNlbGVjdFBsYW4oJ21vbnRobHknKVwiPlxyXG4gICAgICAgIE1vbnRobHlcclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWNvbG9yLWdyYXktNjAwIGJ0bi1hY3RpdmUgYnRuLWFjdGl2ZS1zZWNvbmRhcnkgcHgtNiBweS0zXCJcclxuICAgICAgICBbbmdDbGFzc109XCJjbGllbnRJbmZvPy5jdXJyZW50UGxhbkluZm8/LnN1YnNjcmlwdGlvblBlcmlvZCA9PT0gJ3F1YXJ0ZXJseSc/ICdhY3RpdmVQbGFuQnRuJzonaW5hY3RpdmVQbGFuQnRuJ1wiXHJcbiAgICAgICAgZGF0YS1rdC1wbGFuPVwiUXVhcnRlcmx5XCIgKGNsaWNrKT1cInNlbGVjdFBsYW4oJ3F1YXJ0ZXJseScpXCI+XHJcbiAgICAgICAgUXVhcnRlcmx5IC0gMTAlXHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWNvbG9yLWdyYXktNjAwIGJ0bi1hY3RpdmUgYnRuLWFjdGl2ZS1zZWNvbmRhcnkgcHgtNiBweS0zXCJcclxuICAgICAgICBbbmdDbGFzc109XCJjbGllbnRJbmZvPy5jdXJyZW50UGxhbkluZm8/LnN1YnNjcmlwdGlvblBlcmlvZCA9PT0gJ2FubnVhbCc/ICdhY3RpdmVQbGFuQnRuJzonaW5hY3RpdmVQbGFuQnRuJ1wiXHJcbiAgICAgICAgZGF0YS1rdC1wbGFuPVwiYW5udWFsXCIgKGNsaWNrKT1cInNlbGVjdFBsYW4oJ2FubnVhbCcpXCI+XHJcbiAgICAgICAgQW5udWFsIC0gMTUlXHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgcm93IFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1sZy02IHBlLTggdmVydGljYWxcIj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmdi1yb3cgZnYtcGx1Z2lucy1pY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMlwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaGVhZGluZ3RleHQgbWItM1wiPk5vIG9mIFN0b3JlcyA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXNlbGVjdCBkcm9wc2VsZWN0IGxldmVsdmlld3RleHRcIiBpZD1cImN1cnJlbmN5XCIgKGNsaWNrKT1cIm5vb2ZzdG9yZXNEcm9wZG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkRlZmF1bHQgc2VsZWN0IGV4YW1wbGVcIj57e2NsaWVudEluZm8/LmN1cnJlbnRQbGFuSW5mbz8udG90YWxTdG9yZXMgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm9vZnN0b3Jlc3R5cGVbMF19fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub29mc3RvcmVzZHJvcERvd25cIiBjbGFzcz1cImNhcmQgcHktMiB3LTEwMCBwb3NpdGlvbi1hYnNvbHV0ZSBlbmQtMCB6LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0Zvcj1cImxldCBub29mc3RvcmVzIG9mIG5vb2ZzdG9yZXN0eXBlXCIgY2xhc3M9XCJsaXN0LXVuc3R5bGVkIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBbbmdDbGFzc109XCJjbGllbnRJbmZvPy5jdXJyZW50UGxhbkluZm8/LnRvdGFsU3RvcmVzID09PSBub29mc3RvcmVzID8gJ2FjdGl2ZScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9kdWN0dGV4dCBweC01IGl0ZW1zIGN1cnNvci1wb2ludGVyIHB5LTRcIiAoY2xpY2spPVwibm9vZnN0b3Jlc2RhdGEobm9vZnN0b3JlcylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBub29mc3RvcmVzIH19PC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJoZWFkaW5ndGV4dCBtYi0zXCI+QXZlcmFnZSBTaXplIG9mIFN0b3JlcyA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXNlbGVjdCBkcm9wc2VsZWN0IGxldmVsdmlld3RleHRcIiBpZD1cImN1cnJlbmN5XCIgKGNsaWNrKT1cIkF2Z3N0b3Jlc0Ryb3Bkb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiRGVmYXVsdCBzZWxlY3QgZXhhbXBsZVwiPnt7Y2xpZW50SW5mbz8uY3VycmVudFBsYW5JbmZvPy5zdG9yZVNpemUgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgQXZnc3RvcmVzdHlwZVswXS52YWx1ZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIkF2Z3N0b3Jlc2Ryb3BEb3duXCIgY2xhc3M9XCJjYXJkIHB5LTIgdy0xMDAgcG9zaXRpb24tYWJzb2x1dGUgZW5kLTAgei0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCAqbmdGb3I9XCJsZXQgQXZnc3RvcmVzIG9mIEF2Z3N0b3Jlc3R5cGVcIiBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cImNsaWVudEluZm8/LmN1cnJlbnRQbGFuSW5mbz8uc3RvcmVTaXplID09PSBBdmdzdG9yZXMgPyAnYWN0aXZlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2R1Y3R0ZXh0IHB4LTUgaXRlbXMgY3Vyc29yLXBvaW50ZXIgcHktNFwiIChjbGljayk9XCJBdmdzdG9yZXNkYXRhKEF2Z3N0b3Jlcy52YWx1ZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e0F2Z3N0b3Jlcy5uYW1lfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF4Y2FtIG10LTJcIj5cclxuICAgICAgICAgICAgICAgIE1heGltdW0ge3tjbGllbnRJbmZvPy5jdXJyZW50UGxhbkluZm8/LnRvdGFsQ2FtZXJhfX0gQ2FtZXJhcyBhcmUgcGVybWl0dGVkIGluIHN0b3JlcyB3aXRoIHNxdWFyZSBmZWV0IGJldHdlZW4ge3tjbGllbnRJbmZvPy5jdXJyZW50UGxhbkluZm8/LnN0b3JlU2l6ZX19LlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdHRleHQgbXktNSBtdC0xMlwiPlNlbGVjdCBQcm9kdWN0czwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBwcm9kdWN0bGlzdCBvZiBjbGllbnRJbmZvPy5jdXJyZW50UGxhbkluZm8/LnByb2R1Y3RcIiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTZcIj5cclxuICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPjxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJ0YW5nb3Jldm9wXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJwcm9kdWN0bGlzdC5hY3RpdmUgPT09IHRydWVcIiAoY2hhbmdlKT1cInVwZGF0ZVByb2R1Y3QoJGV2ZW50LHByb2R1Y3RsaXN0LnByb2R1Y3ROYW1lKVwiIFtkaXNhYmxlZF09XCJwcm9kdWN0bGlzdC5zdGF0dXMgPT09ICdsaXZlJyB8fCBwcm9kdWN0bGlzdC5zdGF0dXMgPT09ICd0cmlhbCcgXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZsZXhTd2l0Y2hDaGVja0RlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBoZWFkaW5ndGV4dCBkLWZsZXhcIj57e3Byb2R1Y3RsaXN0LmFsaXNlUHJvZHVjdE5hbWV9fSBcclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiZ2V0Q29sb3JDbGFzcyhwcm9kdWN0bGlzdC50b29sVGlwKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e3Byb2R1Y3RsaXN0LnRvb2xUaXB9fSA8c3BhbiAqbmdJZj1cImV4cGlyZWRQcm9kdWN0cy5sZW5ndGggJiYgcHJvZHVjdGxpc3QucHJvZHVjdE5hbWUuaW5jbHVkZXMoZXhwaXJlZFByb2R1Y3RzKVwiPjxpbWcgY2xhc3M9XCJtcy0yXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vY3VzdG9tcG9wdXAtSWNvbnMvY2xvY2tleHBpcnktaWNvbi5zdmdcIiBhbHQ9XCJcIj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4gPHNwYW4gKm5nSWY9XCJ0cmlhbHByb2R1Y3RzLmxlbmd0aCAmJiBwcm9kdWN0bGlzdC5wcm9kdWN0TmFtZS5pbmNsdWRlcyh0cmlhbHByb2R1Y3RzKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIm1zLTJcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9jdXN0b21wb3B1cC1JY29ucy9wcmltYXJ5LWNsb2NrLWljb24uc3ZnXCIgYWx0PVwiXCI+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmlld1wiIChjbGljayk9XCJzaG93SW5mbyhwcm9kdWN0bGlzdC5wcm9kdWN0TmFtZSlcIj5WaWV3IEluZm8gPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjE0XCJcclxuICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkgNi41VjkuNUM5IDkuNzY1MjIgOC44OTQ2NCAxMC4wMTk2IDguNzA3MTEgMTAuMjA3MUM4LjUxOTU3IDEwLjM5NDYgOC4yNjUyMiAxMC41IDggMTAuNUgyLjVDMi4yMzQ3OCAxMC41IDEuOTgwNDMgMTAuMzk0NiAxLjc5Mjg5IDEwLjIwNzFDMS42MDUzNiAxMC4wMTk2IDEuNSA5Ljc2NTIyIDEuNSA5LjVWNEMxLjUgMy43MzQ3OCAxLjYwNTM2IDMuNDgwNDMgMS43OTI4OSAzLjI5Mjg5QzEuOTgwNDMgMy4xMDUzNiAyLjIzNDc4IDMgMi41IDNINS41TTcuNSAxLjVIMTAuNU0xMC41IDEuNVY0LjVNMTAuNSAxLjVMNSA3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuXHJcblxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTYgcHgtOFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYi02XCI+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2luZ3RleHRcIj5GcmVlPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VtaSBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICBJbnRlZ3JhdGVkIFNvbHV0aW9uIGZvciBHcm93aW5nIEJ1c2luZXNzXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj48c3BhbiBjbGFzcz1cIm1lLTMgbXQtNVwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzIyMzFfNDIzNDIpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNy45OTk2NyAxMC42NjczVjguMDAwNjVNNy45OTk2NyA1LjMzMzk4SDguMDA2MzRNMTQuNjY2MyA4LjAwMDY1QzE0LjY2NjMgMTEuNjgyNiAxMS42ODE2IDE0LjY2NzMgNy45OTk2NyAxNC42NjczQzQuMzE3NzggMTQuNjY3MyAxLjMzMzAxIDExLjY4MjYgMS4zMzMwMSA4LjAwMDY1QzEuMzMzMDEgNC4zMTg3NSA0LjMxNzc4IDEuMzMzOTggNy45OTk2NyAxLjMzMzk4QzExLjY4MTYgMS4zMzM5OCAxNC42NjYzIDQuMzE4NzUgMTQuNjY2MyA4LjAwMDY1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiI0I1NDcwOFwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8yMjMxXzQyMzQyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VidGV4dCBtdC02XCI+WW91IHdpbGwgb25seSBiZSBjaGFyZ2VkIGZvciA8IFRhbmdvIFRyYWZmaWMsVGFuZ28gPGJyPlpvbmUgJiBUYW5nbyBSZXZPcHMgPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YjF0ZXh0IG10LTVcIj5TdGFydHMgZnJvbSA8c3BhbiBjbGFzcz1cImJpbGxlZHRleHQgbXMtMlwiPjxzPuKCuXt7b3JpZ2luYWxQcmljZX19PC9zPjwvc3Bhbj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmlsbGluZ3RleHQgbXMtNFwiPuKCuXt7Y2xpZW50SW5mbz8uY3VycmVudFBsYW5JbmZvPy5wcmljZSB8fCAwfX08L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWIxdGV4dCBtdC0yXCI+UGVyIHN0b3JlIFBlciBtb250aDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsc3RleHRcIj5CaWxsaW5nIERldGFpbHM8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN1YjF0ZXh0IHB5LTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTRcIj5CcmFuZCBOYW1lOiB7e2NsaWVudEluZm8/LmNsaWVudE5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2PkJpbGxpbmcgQWRkcmVzczoge3tjbGllbnRJbmZvPy5iaWxsaW5nRGV0YWlscz8uYmlsbGluZ0FkZHJlc3MgfHwgJy0tJ319PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIHN1YnNjcmliZVwiPiBcclxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwidXBkYXRlKClcIiB0eXBlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCIwXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1zLTIgbmctc3Rhci1pbnNlcnRlZCB3LTEwMCBidG4tYmxvY2sgdGV4dC1ub3dyYXBcIiAqbmdJZj1cIiFjbGllbnRJbmZvPy5iaWxsaW5nRGV0YWlscz8uYmlsbGluZ0FkZHJlc3NcIj48c3BhbiBjbGFzcz1cInN1Ym1pdFwiPkVudGVyXHJcbiAgICAgICAgICAgICAgICAgICAgQmlsbGluZyBEZXRhaWxzIDwvc3Bhbj48L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY29uZmlybWF0aW9uKClcIiB0eXBlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCIwXCIgKm5nSWY9XCJjbGllbnRJbmZvPy5iaWxsaW5nRGV0YWlscz8uYmlsbGluZ0FkZHJlc3NcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXMtMiBuZy1zdGFyLWluc2VydGVkIHctMTAwIGJ0bi1ibG9ja1wiIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcDtcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZUJ0blwiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzdWJtaXRcIj5TdWJzY3JpYmUgTm93IDwvc3Bhbj48L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjwvc2VjdGlvbj5cclxuXHJcbjxkaXYgKm5nSWY9XCJzdWJzY3JpcHRpb24gPT0gJ2NvbmZpcm1hdGlvbm1lc3NhZ2UnXCIgY2xhc3M9XCJtb2RhbC1jb250ZW50IGdpZmltYWdlXCIgPlxyXG4gICAgPGRpdiBjbGFzcz1cInAtNlwiPlxyXG4gICAgICAgIDxkaXY+PGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9jdXN0b21wb3B1cC1JY29ucy9jaGVjay1pY29uLnN2Z1wiIGFsdD1cIlwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nIG10LTQgbXMtMVwiPlRoYW5rcyBmb3IgdGhlIHN1YnNjcmlwdGlvbiE8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGZ2LXJvdyBmdi1wbHVnaW5zLWljb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50dGV4dCBtdC00IG14LTJcIj5Zb3UgaGF2ZSBzdWNjZXNzZnVsbHkgc3Vic2NyaWJlZCB0byBvdXIgcHJvZHVjdHMgXHJcbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBwcm9kdWN0IG9mIGNvbmZpcm1lZFByb2R1Y3RzXCI+e3twcm9kdWN0fX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXQtMiBweS0yXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiMFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHB4LTQgbmctc3Rhci1pbnNlcnRlZCB3LTEwMFwiIChjbGljayk9XCJjbG9zZVBvcHVwQW5kUmVsb2FkRGF0YSgpXCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogbm93cmFwO1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWJtaXRcIj5Pa2F5PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -11,6 +11,8 @@ export class PaymentSubscriptionService {
|
|
|
11
11
|
http;
|
|
12
12
|
gs;
|
|
13
13
|
paymentSubscriptionApiUrl;
|
|
14
|
+
reloadDataSubject = new BehaviorSubject(false);
|
|
15
|
+
reloadData$ = this.reloadDataSubject.asObservable();
|
|
14
16
|
// clientId = new BehaviorSubject<string>('')
|
|
15
17
|
// clientData = new BehaviorSubject<any>(null)
|
|
16
18
|
paymentinvoiceFormData = new BehaviorSubject({ value: null, type: null, form: null });
|
|
@@ -29,6 +31,9 @@ export class PaymentSubscriptionService {
|
|
|
29
31
|
// }
|
|
30
32
|
// })
|
|
31
33
|
}
|
|
34
|
+
triggerReload() {
|
|
35
|
+
this.reloadDataSubject.next(true);
|
|
36
|
+
}
|
|
32
37
|
exportAsExcelFile(json, excelFileName) {
|
|
33
38
|
const worksheet = XLSX.utils.json_to_sheet(json);
|
|
34
39
|
const workbook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };
|
|
@@ -176,4 +181,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
176
181
|
providedIn: 'root'
|
|
177
182
|
}]
|
|
178
183
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.GlobalStateService }] });
|
|
179
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1zdWJzY3JpcHRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL3NlcnZpY2VzL3BheW1lbnQtc3Vic2NyaXB0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7Ozs7QUFFN0IsTUFBTSxVQUFVLEdBQUcsaUZBQWlGLENBQUM7QUFDckcsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDO0FBTWhDLE1BQU0sT0FBTywwQkFBMEI7SUFNakI7SUFBMEI7SUFMOUMseUJBQXlCLENBQUs7SUFFOUIsNkNBQTZDO0lBQzdDLDhDQUE4QztJQUM5QyxzQkFBc0IsR0FBRyxJQUFJLGVBQWUsQ0FBTSxFQUFDLEtBQUssRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQTtJQUNyRixZQUFvQixJQUFnQixFQUFVLEVBQXNCO1FBQWhELFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUNsRSxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ25FLElBQUksR0FBRyxFQUFFO2dCQUNQLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxHQUFHLENBQUMseUJBQXlCLENBQUM7Z0JBQy9ELDJCQUEyQjthQUM1QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsNkVBQTZFO1FBQzdFLFdBQVc7UUFDWCwwQkFBMEI7UUFDMUIsTUFBTTtRQUNOLEtBQUs7SUFDUCxDQUFDO0lBR00saUJBQWlCLENBQUMsSUFBVyxFQUFFLGFBQXFCO1FBQ3ZELE1BQU0sU0FBUyxHQUFtQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRSxNQUFNLFFBQVEsR0FBa0IsRUFBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN4RixNQUFNLFdBQVcsR0FBUSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFXLEVBQUUsUUFBZ0I7UUFDbEQsTUFBTSxJQUFJLEdBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNwQyxJQUFJLEVBQUUsVUFBVTtTQUNqQixDQUFDLENBQUM7UUFDSCxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEdBQUcsTUFBTSxHQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTSxjQUFjLENBQUMsTUFBVyxFQUFFLFFBQWdCO1FBQ2pELE1BQU0sSUFBSSxHQUFTLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDcEMsSUFBSSxFQUFFLFVBQVU7U0FDakIsQ0FBQyxDQUFDO1FBQ0gsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxHQUFHLGVBQWUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDZ0IsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFFNUMsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUdELGlCQUFpQixDQUFDLE1BQVk7UUFDNUIsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyx5QkFBeUIsa0NBQWtDLE1BQU0sRUFBRSxDQUFDLENBQUE7SUFDckYsQ0FBQztJQUVELGdCQUFnQixDQUFDLGNBQW1CO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMseUJBQXlCLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUU5RSxDQUFDO0lBQ0QsWUFBWSxDQUFDLGNBQW1CO1FBQzlCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMseUJBQXlCLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUNoRixDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBWTtRQUM1QixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixtQkFBbUIsTUFBTSxFQUFFLENBQUMsQ0FBQTtJQUN0RSxDQUFDO0lBQ0QsZ0JBQWdCLENBQUUsSUFBUTtRQUN4QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDOUUsQ0FBQztJQUNELHNCQUFzQixDQUFFLElBQVE7UUFDOUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyx5QkFBeUIsY0FBYyxFQUFFLElBQUksRUFBRSxFQUFDLFlBQVksRUFBRSxhQUFhLEVBQUMsQ0FBQyxDQUFBO0lBQzdHLENBQUM7SUFDRCxrQkFBa0IsQ0FBRSxJQUFRO1FBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMseUJBQXlCLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUM5RSxDQUFDO0lBQ0QsVUFBVSxDQUFDLEVBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyx5QkFBeUIsNEJBQTRCLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDM0UsQ0FBQztJQUNELGNBQWMsQ0FBQyxRQUFlO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMseUJBQXlCLDhCQUE4QixRQUFRLEVBQUUsQ0FBRSxDQUFBO0lBQ2xHLENBQUM7SUFDRCxhQUFhLENBQUUsSUFBUTtRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixxQkFBcUIsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUNyRixDQUFDO0lBQ0QsV0FBVyxDQUFFLElBQVE7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyx5QkFBeUIsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQzlFLENBQUM7SUFDRCxhQUFhLENBQUUsSUFBUSxFQUFDLEVBQU07UUFDNUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyx5QkFBeUIsMEJBQTBCLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQzdGLENBQUM7SUFDRCxnQkFBZ0IsQ0FBRSxJQUFRO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMseUJBQXlCLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUM5RSxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQVM7UUFDdkIsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsa0JBQWtCLEVBQUUsSUFBSSxFQUFDO1lBQ25FLE9BQU8sRUFBQztnQkFDTixhQUFhLEVBQUMsNkNBQTZDO2FBQUM7U0FDL0QsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFTO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMseUJBQXlCLGdCQUFnQixFQUFFLElBQUksRUFBRTtZQUNsRSxPQUFPLEVBQUU7Z0JBQ1AsYUFBYSxFQUFFLDZDQUE2QzthQUM3RDtTQUNGLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBUztRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixzQ0FBc0MsSUFBSSxDQUFDLEVBQUUsZUFBZSxJQUFJLENBQUMsVUFBVSxXQUFXLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM5SSxPQUFPLEVBQUU7Z0JBQ1AsYUFBYSxFQUFFLDZDQUE2QzthQUM3RDtTQUNGLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBUztRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLHlCQUF5Qix5QkFBeUIsRUFBQyxJQUFJLEVBQUUsRUFDM0UsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQVM7UUFDeEIsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsd0NBQXdDLElBQUksRUFBRSxFQUFFLEVBQzFGLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBUztRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLHlCQUF5Qix5QkFBeUIsRUFBQyxJQUFJLEVBQUUsRUFDM0UsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFTO1FBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMseUJBQXlCLHdCQUF3QixFQUFDLElBQUksRUFBRSxFQUMxRSxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVM7UUFDcEIsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyx5QkFBeUIseUJBQXlCLEVBQUMsSUFBSSxFQUFFLEVBQzNFLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxJQUFTO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMseUJBQXlCLDRCQUE0QixFQUFDLElBQUksRUFBRSxFQUM5RSxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsZUFBZSxDQUFDLEVBQU87UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsb0NBQW9DLEVBQUUsRUFBRSxFQUFFLEVBQ3BGLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxJQUFTO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixJQUFJLENBQU0sR0FBRyxJQUFJLENBQUMseUJBQXlCLDRCQUE0QixFQUFDLElBQUksRUFBRSxFQUM5RSxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVM7UUFDcEIsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsc0JBQXNCLEVBQUMsSUFBSSxFQUFFLEVBQ3hFLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBUztRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixjQUFjLEVBQUUsSUFBSSxFQUFFLEVBQ2pFLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxJQUFTO1FBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMseUJBQXlCLHdCQUF3QixJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQ3pGLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBUztRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixrQkFBa0IsRUFBRSxJQUFJLEVBQUUsRUFBQyxZQUFZLEVBQUUsYUFBYSxFQUFDLENBQUMsQ0FBQTtJQUNqSCxDQUFDO3VHQS9MVSwwQkFBMEI7MkdBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzsyRkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSxPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgRmlsZVNhdmVyIGZyb20gJ2ZpbGUtc2F2ZXInO1xyXG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnO1xyXG4gXHJcbmNvbnN0IEVYQ0VMX1RZUEUgPSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7Y2hhcnNldD1VVEYtOCc7XHJcbmNvbnN0IEVYQ0VMX0VYVEVOU0lPTiA9ICcueGxzeCc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmw6YW55O1xyXG5cclxuICAvLyBjbGllbnRJZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJylcclxuICAvLyBjbGllbnREYXRhID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpXHJcbiAgcGF5bWVudGludm9pY2VGb3JtRGF0YSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih7dmFsdWU6bnVsbCwgdHlwZTpudWxsLCBmb3JtOm51bGx9KVxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBnczogR2xvYmFsU3RhdGVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmdzLmVudmlyb25tZW50LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGVudikgPT4ge1xyXG4gICAgICBpZiAoZW52KSB7XHJcbiAgICAgICAgdGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsID0gZW52LnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmw7XHJcbiAgICAgICAgLy8gdGhpcy5jbGllbnRJZC5uZXh0KCcxMScpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgLy8gdGhpcy5ncy5zZWxlY3RlZENsaWVudC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChlOmFueSk9PntcclxuICAgIC8vICAgaWYoZSl7XHJcbiAgICAvLyAgICAgY29uc29sZS5sb2coZSwnZScpO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9KVxyXG4gIH1cclxuXHJcbiBcclxuICBwdWJsaWMgZXhwb3J0QXNFeGNlbEZpbGUoanNvbjogYW55W10sIGV4Y2VsRmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICBjb25zdCB3b3Jrc2hlZXQ6IFhMU1guV29ya1NoZWV0ID0gWExTWC51dGlscy5qc29uX3RvX3NoZWV0KGpzb24pO1xyXG4gICAgICBjb25zdCB3b3JrYm9vazogWExTWC5Xb3JrQm9vayA9IHsgU2hlZXRzOiB7ICdkYXRhJzogd29ya3NoZWV0IH0sIFNoZWV0TmFtZXM6IFsnZGF0YSddIH07XHJcbiAgICAgIGNvbnN0IGV4Y2VsQnVmZmVyOiBhbnkgPSBYTFNYLndyaXRlKHdvcmtib29rLCB7IGJvb2tUeXBlOiAneGxzeCcsIHR5cGU6ICdhcnJheScgfSk7XHJcbiAgICAgIHRoaXMuc2F2ZUFzRXhjZWxGaWxlKGV4Y2VsQnVmZmVyLCBleGNlbEZpbGVOYW1lKTtcclxuICAgIH1cclxuICAgXHJcbiAgICBwdWJsaWMgc2F2ZUFzRXhjZWxGaWxlKGJ1ZmZlcjogYW55LCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgIGNvbnN0IGRhdGE6IEJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwge1xyXG4gICAgICAgIHR5cGU6IEVYQ0VMX1RZUEVcclxuICAgICAgfSk7XHJcbiAgICAgIEZpbGVTYXZlci5zYXZlQXMoZGF0YSwgZmlsZU5hbWUgKyAnbGlzdCcrIEVYQ0VMX0VYVEVOU0lPTik7XHJcbiAgICB9XHJcbiAgIFxyXG4gICAgcHVibGljIHNhdmVBc1RlbXBsYXRlKGJ1ZmZlcjogYW55LCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgIGNvbnN0IGRhdGE6IEJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwge1xyXG4gICAgICAgIHR5cGU6IEVYQ0VMX1RZUEVcclxuICAgICAgfSk7XHJcbiAgICAgIEZpbGVTYXZlci5zYXZlQXMoZGF0YSwgZmlsZU5hbWUgKyBFWENFTF9FWFRFTlNJT04pO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiBcclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcbiBcclxuXHJcbiAgY2xpZW50QmlsbGluZ0luZm8ocGFyYW1zPzogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldChgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2NsaWVudEJpbGxpbmdTdWJzY3JpcHRpb25JbmZvLyR7cGFyYW1zfWApXHJcbiAgfVxyXG4gXHJcbiAgdXBkYXRlYWRkYmlsbGluZyhiaWxsaW5nQm9keVJlcTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2FkZEJpbGxpbmdgLCBiaWxsaW5nQm9keVJlcSlcclxuICAgICAgXHJcbiAgfVxyXG4gIGFkZHN0ZXBwcmljZShiaWxsaW5nQm9keVJlcTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2FkZHN0ZXBwcmljZWAsIGJpbGxpbmdCb2R5UmVxKSAgXHJcbiAgfVxyXG5cclxuICBnZXRwYXltZW50aW52b2ljZShwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vSW52b2ljZURldGFpbHMvJHtwYXJhbXN9YClcclxuICB9XHJcbiAgaW52b2ljZVRhYmxlRGF0YSggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2ludm9pY2VMaXN0YCwgZGF0YSlcclxuICB9XHJcbiAgaW52b2ljZVRhYmxlRGF0YUV4cG9ydCggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2ludm9pY2VMaXN0YCwgZGF0YSwge3Jlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ30pXHJcbiAgfVxyXG4gIHBlbmRpbmdpbnZvaWNlbGlzdCggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2ludm9pY2VMaXN0YCwgZGF0YSlcclxuICB9XHJcbiAgZ2V0aW52b2ljZShpZD86IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQoYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9jcmVkaXROb3Rlcy9pbnZvaWNlTGlzdC8ke2lkfWApXHJcbiAgfVxyXG4gIGdldGV4dGVuZHRyYWlsKGNsaWVudElkOnN0cmluZyk6T2JzZXJ2YWJsZTxhbnk+eyBcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vZ2V0VHJpYWxQcm9kdWN0cz9jbGllbnRJZD0ke2NsaWVudElkfWAgKVxyXG4gIH1cclxuICB0cmFpbGFwcHJvdmFsKCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vdHJpYWxFeHRlbmRSZXF1ZXN0YCwgZGF0YSlcclxuICB9XHJcbiAgdW5zdWJzY3JpYmUoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS91bnN1YnNjcmliZWAsIGRhdGEpXHJcbiAgfVxyXG4gIGludm9pY2V1cGRhdGUoIGRhdGE6YW55LGlkOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS91cGRhdGUvSW52b2ljZURldGFpbHMvJHtpZH1gLCBkYXRhKVxyXG4gIH1cclxuICBjcmVkaXRub3RldXBkYXRlKCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vY3JlZGl0Tm90ZXNgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0UHJpY2VEZXRhaWxzKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9hZG1pbi9wcmljZUxpc3RgLCBkYXRhLHtcclxuICAgICAgICBoZWFkZXJzOntcclxuICAgICAgICAgIEF1dGhvcml6YXRpb246J0JlYXJlciAzMWI5MGU1ZS00NTFhLTRlNDgtYTllMC04ZjczNmI1YmUwY2EnfVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUHJpY2luZyhkYXRhOiBhbnkpOk9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9hZG1pbi9wcmljaW5nYCwgZGF0YSwge1xyXG4gICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgIEF1dGhvcml6YXRpb246ICdCZWFyZXIgMzFiOTBlNWUtNDUxYS00ZTQ4LWE5ZTAtOGY3MzZiNWJlMGNhJ1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIGdldFByb2R1Y3RMaXN0KGRhdGE6IGFueSk6T2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vYWRtaW4vZ2V0UHJvZHVjdFZpZXdMaXN0P2NsaWVudElkPSR7ZGF0YS5pZH0mc29ydENvbHVtbj0ke2RhdGEuc29ydENvbHVtbn0mc29ydEJ5PSR7ZGF0YS5zb3J0Qnl9YCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgIEF1dGhvcml6YXRpb246ICdCZWFyZXIgMzFiOTBlNWUtNDUxYS00ZTQ4LWE5ZTAtOGY3MzZiNWJlMGNhJ1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIGdldFN0b3JlTGlzdChkYXRhOiBhbnkpOk9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9hZG1pbi9nZXRzdG9yZVZpZXdMaXN0YCxkYXRhLCB7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRGaWx0ZXJEZXRhaWxzKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55PihgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2FkbWluL2dldFN0b3JlTG9jYXRpb25MaXN0P2NsaWVudElkPSR7ZGF0YX1gLCB7XHJcbiAgICAgIH0pXHJcbiAgfSBcclxuXHJcbiAgdXBkYXRlUHJvZHVjdChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vYWRtaW4vc3Vic2NyaWJlcHJvZHVjdGAsZGF0YSwge1xyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlU3RvcmUoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2FkbWluL2FkZFN0b3JlUHJvZHVjdGAsZGF0YSwge1xyXG4gICAgICB9KVxyXG4gIH1cclxuICBcclxuICBzdG9yZVByb2R1Y3QoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2FkbWluL2dldFN0b3JlUHJvZHVjdHNgLGRhdGEsIHtcclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIHVuc3Vic2NyaWJlQXBwcm92YWwoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2FkbWluL3Vuc3Vic2NyaWJlQXBwcm92YWxgLGRhdGEsIHtcclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIGdldE5vdGlmaWNhdGlvbihpZDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vYWRtaW4vbm90aWZpY2F0aW9uTGlzdD9jbGllbnRJZD0ke2lkfWAsIHtcclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIHRyaWFsRXh0ZW50QXBwcm92YWwoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2FkbWluL3RyaWFsRXh0ZW5kQXBwcm92YWxgLGRhdGEsIHtcclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIGFwcHJvdmVUcmlhbChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vYWRtaW4vdHJpYWxBcHByb3ZhbGAsZGF0YSwge1xyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgYmFzZVByaWNpbmcoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2Jhc2VQcmljaW5nYCwgZGF0YSwge1xyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlU3Vic2NyaXB0aW9uKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wdXQ8YW55PihgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L3VwZGF0ZS9zdWJzY3JpcHRpb24vJHtkYXRhLmNsaWVudElkfWAsIGRhdGEsIHtcclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIGludm9pY2VEb3dubG9hZChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vaW52b2ljZURvd25sb2FkYCwgZGF0YSwge3Jlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ30pXHJcbiAgfVxyXG5cclxuXHJcblxyXG59XHJcblxyXG4iXX0=
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1zdWJzY3JpcHRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL3NlcnZpY2VzL3BheW1lbnQtc3Vic2NyaXB0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7Ozs7QUFFN0IsTUFBTSxVQUFVLEdBQUcsaUZBQWlGLENBQUM7QUFDckcsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDO0FBTWhDLE1BQU0sT0FBTywwQkFBMEI7SUFRakI7SUFBMEI7SUFQOUMseUJBQXlCLENBQUs7SUFDdEIsaUJBQWlCLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDaEUsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVwRCw2Q0FBNkM7SUFDN0MsOENBQThDO0lBQzlDLHNCQUFzQixHQUFHLElBQUksZUFBZSxDQUFNLEVBQUMsS0FBSyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxJQUFJLEVBQUMsQ0FBQyxDQUFBO0lBQ3JGLFlBQW9CLElBQWdCLEVBQVUsRUFBc0I7UUFBaEQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQ2xFLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FB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LElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsc0JBQXNCLEVBQUMsSUFBSSxFQUFFLEVBQ3hFLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBUztRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixjQUFjLEVBQUUsSUFBSSxFQUFFLEVBQ2pFLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxJQUFTO1FBQzFCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQU0sR0FBRyxJQUFJLENBQUMseUJBQXlCLHdCQUF3QixJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQ3pGLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxlQUFlLENBQUMsSUFBUztRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixrQkFBa0IsRUFBRSxJQUFJLEVBQUUsRUFBQyxZQUFZLEVBQUUsYUFBYSxFQUFDLENBQUMsQ0FBQTtJQUNqSCxDQUFDO3VHQXJNVSwwQkFBMEI7MkdBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzsyRkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSxPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgRmlsZVNhdmVyIGZyb20gJ2ZpbGUtc2F2ZXInO1xyXG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnO1xyXG4gXHJcbmNvbnN0IEVYQ0VMX1RZUEUgPSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7Y2hhcnNldD1VVEYtOCc7XHJcbmNvbnN0IEVYQ0VMX0VYVEVOU0lPTiA9ICcueGxzeCc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUGF5bWVudFN1YnNjcmlwdGlvblNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmw6YW55O1xyXG4gIHByaXZhdGUgcmVsb2FkRGF0YVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICByZWxvYWREYXRhJCA9IHRoaXMucmVsb2FkRGF0YVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIC8vIGNsaWVudElkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKVxyXG4gIC8vIGNsaWVudERhdGEgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbClcclxuICBwYXltZW50aW52b2ljZUZvcm1EYXRhID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHt2YWx1ZTpudWxsLCB0eXBlOm51bGwsIGZvcm06bnVsbH0pXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuZ3MuZW52aXJvbm1lbnQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZW52KSA9PiB7XHJcbiAgICAgIGlmIChlbnYpIHtcclxuICAgICAgICB0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmwgPSBlbnYucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybDtcclxuICAgICAgICAvLyB0aGlzLmNsaWVudElkLm5leHQoJzExJylcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICAvLyB0aGlzLmdzLnNlbGVjdGVkQ2xpZW50LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGU6YW55KT0+e1xyXG4gICAgLy8gICBpZihlKXtcclxuICAgIC8vICAgICBjb25zb2xlLmxvZyhlLCdlJyk7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH0pXHJcbiAgfVxyXG4gIFxyXG4gIHRyaWdnZXJSZWxvYWQoKSB7XHJcbiAgICB0aGlzLnJlbG9hZERhdGFTdWJqZWN0Lm5leHQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuIFxyXG4gIHB1YmxpYyBleHBvcnRBc0V4Y2VsRmlsZShqc29uOiBhbnlbXSwgZXhjZWxGaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgIGNvbnN0IHdvcmtzaGVldDogWExTWC5Xb3JrU2hlZXQgPSBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoanNvbik7XHJcbiAgICAgIGNvbnN0IHdvcmtib29rOiBYTFNYLldvcmtCb29rID0geyBTaGVldHM6IHsgJ2RhdGEnOiB3b3Jrc2hlZXQgfSwgU2hlZXROYW1lczogWydkYXRhJ10gfTtcclxuICAgICAgY29uc3QgZXhjZWxCdWZmZXI6IGFueSA9IFhMU1gud3JpdGUod29ya2Jvb2ssIHsgYm9va1R5cGU6ICd4bHN4JywgdHlwZTogJ2FycmF5JyB9KTtcclxuICAgICAgdGhpcy5zYXZlQXNFeGNlbEZpbGUoZXhjZWxCdWZmZXIsIGV4Y2VsRmlsZU5hbWUpO1xyXG4gICAgfVxyXG4gICBcclxuICAgIHB1YmxpYyBzYXZlQXNFeGNlbEZpbGUoYnVmZmVyOiBhbnksIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgY29uc3QgZGF0YTogQmxvYiA9IG5ldyBCbG9iKFtidWZmZXJdLCB7XHJcbiAgICAgICAgdHlwZTogRVhDRUxfVFlQRVxyXG4gICAgICB9KTtcclxuICAgICAgRmlsZVNhdmVyLnNhdmVBcyhkYXRhLCBmaWxlTmFtZSArICdsaXN0JysgRVhDRUxfRVhURU5TSU9OKTtcclxuICAgIH1cclxuICAgXHJcbiAgICBwdWJsaWMgc2F2ZUFzVGVtcGxhdGUoYnVmZmVyOiBhbnksIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgY29uc3QgZGF0YTogQmxvYiA9IG5ldyBCbG9iKFtidWZmZXJdLCB7XHJcbiAgICAgICAgdHlwZTogRVhDRUxfVFlQRVxyXG4gICAgICB9KTtcclxuICAgICAgRmlsZVNhdmVyLnNhdmVBcyhkYXRhLCBmaWxlTmFtZSArIEVYQ0VMX0VYVEVOU0lPTik7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuIFxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuIFxyXG5cclxuICBjbGllbnRCaWxsaW5nSW5mbyhwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vY2xpZW50QmlsbGluZ1N1YnNjcmlwdGlvbkluZm8vJHtwYXJhbXN9YClcclxuICB9XHJcbiBcclxuICB1cGRhdGVhZGRiaWxsaW5nKGJpbGxpbmdCb2R5UmVxOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vYWRkQmlsbGluZ2AsIGJpbGxpbmdCb2R5UmVxKVxyXG4gICAgICBcclxuICB9XHJcbiAgYWRkc3RlcHByaWNlKGJpbGxpbmdCb2R5UmVxOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vYWRkc3RlcHByaWNlYCwgYmlsbGluZ0JvZHlSZXEpICBcclxuICB9XHJcblxyXG4gIGdldHBheW1lbnRpbnZvaWNlKHBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQoYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9JbnZvaWNlRGV0YWlscy8ke3BhcmFtc31gKVxyXG4gIH1cclxuICBpbnZvaWNlVGFibGVEYXRhKCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vaW52b2ljZUxpc3RgLCBkYXRhKVxyXG4gIH1cclxuICBpbnZvaWNlVGFibGVEYXRhRXhwb3J0KCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vaW52b2ljZUxpc3RgLCBkYXRhLCB7cmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInfSlcclxuICB9XHJcbiAgcGVuZGluZ2ludm9pY2VsaXN0KCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vaW52b2ljZUxpc3RgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRpbnZvaWNlKGlkPzogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldChgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2NyZWRpdE5vdGVzL2ludm9pY2VMaXN0LyR7aWR9YClcclxuICB9XHJcbiAgZ2V0ZXh0ZW5kdHJhaWwoY2xpZW50SWQ6c3RyaW5nKTpPYnNlcnZhYmxlPGFueT57IFxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9nZXRUcmlhbFByb2R1Y3RzP2NsaWVudElkPSR7Y2xpZW50SWR9YCApXHJcbiAgfVxyXG4gIHRyYWlsYXBwcm92YWwoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS90cmlhbEV4dGVuZFJlcXVlc3RgLCBkYXRhKVxyXG4gIH1cclxuICB1bnN1YnNjcmliZSggZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L3Vuc3Vic2NyaWJlYCwgZGF0YSlcclxuICB9XHJcbiAgaW52b2ljZXVwZGF0ZSggZGF0YTphbnksaWQ6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L3VwZGF0ZS9JbnZvaWNlRGV0YWlscy8ke2lkfWAsIGRhdGEpXHJcbiAgfVxyXG4gIGNyZWRpdG5vdGV1cGRhdGUoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9jcmVkaXROb3Rlc2AsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBnZXRQcmljZURldGFpbHMoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2FkbWluL3ByaWNlTGlzdGAsIGRhdGEse1xyXG4gICAgICAgIGhlYWRlcnM6e1xyXG4gICAgICAgICAgQXV0aG9yaXphdGlvbjonQmVhcmVyIDMxYjkwZTVlLTQ1MWEtNGU0OC1hOWUwLThmNzM2YjViZTBjYSd9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICB1cGRhdGVQcmljaW5nKGRhdGE6IGFueSk6T2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2FkbWluL3ByaWNpbmdgLCBkYXRhLCB7XHJcbiAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogJ0JlYXJlciAzMWI5MGU1ZS00NTFhLTRlNDgtYTllMC04ZjczNmI1YmUwY2EnXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0UHJvZHVjdExpc3QoZGF0YTogYW55KTpPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueT4oYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9hZG1pbi9nZXRQcm9kdWN0Vmlld0xpc3Q/Y2xpZW50SWQ9JHtkYXRhLmlkfSZzb3J0Q29sdW1uPSR7ZGF0YS5zb3J0Q29sdW1ufSZzb3J0Qnk9JHtkYXRhLnNvcnRCeX1gLCB7XHJcbiAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogJ0JlYXJlciAzMWI5MGU1ZS00NTFhLTRlNDgtYTllMC04ZjczNmI1YmUwY2EnXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVMaXN0KGRhdGE6IGFueSk6T2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLnBheW1lbnRTdWJzY3JpcHRpb25BcGlVcmx9L2FkbWluL2dldHN0b3JlVmlld0xpc3RgLGRhdGEsIHtcclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIGdldEZpbHRlckRldGFpbHMoZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vYWRtaW4vZ2V0U3RvcmVMb2NhdGlvbkxpc3Q/Y2xpZW50SWQ9JHtkYXRhfWAsIHtcclxuICAgICAgfSlcclxuICB9IFxyXG5cclxuICB1cGRhdGVQcm9kdWN0KGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9hZG1pbi9zdWJzY3JpYmVwcm9kdWN0YCxkYXRhLCB7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICB1cGRhdGVTdG9yZShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vYWRtaW4vYWRkU3RvcmVQcm9kdWN0YCxkYXRhLCB7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG4gIFxyXG4gIHN0b3JlUHJvZHVjdChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vYWRtaW4vZ2V0U3RvcmVQcm9kdWN0c2AsZGF0YSwge1xyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgdW5zdWJzY3JpYmVBcHByb3ZhbChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vYWRtaW4vdW5zdWJzY3JpYmVBcHByb3ZhbGAsZGF0YSwge1xyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0Tm90aWZpY2F0aW9uKGlkOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueT4oYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9hZG1pbi9ub3RpZmljYXRpb25MaXN0P2NsaWVudElkPSR7aWR9YCwge1xyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgdHJpYWxFeHRlbnRBcHByb3ZhbChkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vYWRtaW4vdHJpYWxFeHRlbmRBcHByb3ZhbGAsZGF0YSwge1xyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgYXBwcm92ZVRyaWFsKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9hZG1pbi90cmlhbEFwcHJvdmFsYCxkYXRhLCB7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBiYXNlUHJpY2luZyhkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vYmFzZVByaWNpbmdgLCBkYXRhLCB7XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICB1cGRhdGVTdWJzY3JpcHRpb24oZGF0YTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnB1dDxhbnk+KGAke3RoaXMucGF5bWVudFN1YnNjcmlwdGlvbkFwaVVybH0vdXBkYXRlL3N1YnNjcmlwdGlvbi8ke2RhdGEuY2xpZW50SWR9YCwgZGF0YSwge1xyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgaW52b2ljZURvd25sb2FkKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5wYXltZW50U3Vic2NyaXB0aW9uQXBpVXJsfS9pbnZvaWNlRG93bmxvYWRgLCBkYXRhLCB7cmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInfSlcclxuICB9XHJcblxyXG5cclxuXHJcbn1cclxuXHJcbiJdfQ==
|