ngx-wapp-components 2.1.9 → 2.1.11
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/esm2020/lib/material/shared/models/wapping-service-translations.model.mjs +1 -1
- package/esm2020/lib/material/w-material-service-view/w-material-service-view.component.mjs +21 -17
- package/esm2020/lib/material/wapp-material-service-view/wapp-material-service-view.component.mjs +21 -17
- package/fesm2015/ngx-wapp-components.mjs +38 -30
- package/fesm2015/ngx-wapp-components.mjs.map +1 -1
- package/fesm2020/ngx-wapp-components.mjs +38 -30
- package/fesm2020/ngx-wapp-components.mjs.map +1 -1
- package/lib/material/shared/models/wapping-service-translations.model.d.ts +1 -1
- package/lib/material/w-material-service-view/w-material-service-view.component.d.ts +6 -5
- package/lib/material/wapp-material-service-view/wapp-material-service-view.component.d.ts +6 -5
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FwcGluZy1zZXJ2aWNlLXRyYW5zbGF0aW9ucy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dhcHAtY29tcG9uZW50cy9zcmMvbGliL21hdGVyaWFsL3NoYXJlZC9tb2RlbHMvd2FwcGluZy1zZXJ2aWNlLXRyYW5zbGF0aW9ucy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBXYXBwaW5nU2VydmljZVRyYW5zbGF0aW9ucyB7XHJcbiAgICBhY3RpdmVkU2VydmljZTogc3RyaW5nLFxyXG4gICAgZGlzYWJsZWRTZXJ2aWNlOiBzdHJpbmcsXHJcbiAgICBzY2hlZHVsZWRMYWJlbDogc3RyaW5nLFxyXG4gICAgc2VuZExhYmVsOiBzdHJpbmcsXHJcbiAgICBjYXJkR2VuZXJhdGVkOiBzdHJpbmcsXHJcbiAgICByZWNlaXZlZExhYmVsPzogc3RyaW5nLFxyXG4gICAgc2hvd01vcmU/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FwcGluZy1zZXJ2aWNlLXRyYW5zbGF0aW9ucy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3dhcHAtY29tcG9uZW50cy9zcmMvbGliL21hdGVyaWFsL3NoYXJlZC9tb2RlbHMvd2FwcGluZy1zZXJ2aWNlLXRyYW5zbGF0aW9ucy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBXYXBwaW5nU2VydmljZVRyYW5zbGF0aW9ucyB7XHJcbiAgICBhY3RpdmVkU2VydmljZTogc3RyaW5nLFxyXG4gICAgZGlzYWJsZWRTZXJ2aWNlOiBzdHJpbmcsXHJcbiAgICBzY2hlZHVsZWRMYWJlbDogc3RyaW5nLFxyXG4gICAgc2VuZExhYmVsOiBzdHJpbmcsXHJcbiAgICBjYXJkR2VuZXJhdGVkOiBzdHJpbmcsXHJcbiAgICByZWNlaXZlZExhYmVsPzogc3RyaW5nLFxyXG4gICAgc2hvd01vcmU/OiBzdHJpbmcsXHJcbiAgICB0aXRsZT86IHN0cmluZyxcclxuICAgIGJ1dHRvblNlcnZpY2U/OiBzdHJpbmdcclxufSJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import { CardStatus, SendingStatus
|
|
2
|
+
import { CardStatus, SendingStatus } from '../shared/models/enums.model';
|
|
3
3
|
import { WImageCropperComponent } from '../../file/w-image-cropper/w-image-cropper.component';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@angular/material/icon";
|
|
@@ -31,7 +31,6 @@ export class WMaterialServiceViewComponent {
|
|
|
31
31
|
this.allowSelectSendGiftCard = true;
|
|
32
32
|
this.enumSendingStatus = SendingStatus;
|
|
33
33
|
this.ecardStatus = CardStatus;
|
|
34
|
-
this.isDrawService = false;
|
|
35
34
|
this.forceMobile = false;
|
|
36
35
|
this.wappingServicesTranslations = {
|
|
37
36
|
activedService: 'Activada',
|
|
@@ -41,11 +40,13 @@ export class WMaterialServiceViewComponent {
|
|
|
41
40
|
cardGenerated: 'Tu tarjeta estará disponible para el envío en breves instantes',
|
|
42
41
|
receivedLabel: "Enviada por {{name}}",
|
|
43
42
|
showMore: "Mostrar más",
|
|
44
|
-
|
|
43
|
+
buttonService: "Participar"
|
|
45
44
|
};
|
|
46
|
-
this.
|
|
45
|
+
this.disabledButtonService = false;
|
|
46
|
+
this.showButtonService = false;
|
|
47
|
+
this.showToggle = true;
|
|
47
48
|
this.wappingServiceSelected = new EventEmitter();
|
|
48
|
-
this.
|
|
49
|
+
this.triggerButtonService = new EventEmitter();
|
|
49
50
|
this.isDevModeActive = false;
|
|
50
51
|
this.croppedImageConfiguration = {
|
|
51
52
|
roundedCropper: false,
|
|
@@ -98,9 +99,6 @@ export class WMaterialServiceViewComponent {
|
|
|
98
99
|
}
|
|
99
100
|
if (wappService.enumTypeStatusECardID == this.ecardStatus.generated)
|
|
100
101
|
this.allowSelectSendGiftCard = false;
|
|
101
|
-
if (wappService.type == WappingServiceType.Draws) {
|
|
102
|
-
this.isDrawService = true;
|
|
103
|
-
}
|
|
104
102
|
this.getWappingServiceTiles(this.wappingService);
|
|
105
103
|
if (this.isDevModeActive == false) {
|
|
106
104
|
this.getWappingServiceImages();
|
|
@@ -165,8 +163,8 @@ export class WMaterialServiceViewComponent {
|
|
|
165
163
|
hasHtml(value) {
|
|
166
164
|
return /<\/?[a-z][\s\S]*>/i.test(value);
|
|
167
165
|
}
|
|
168
|
-
|
|
169
|
-
this.
|
|
166
|
+
pressButtonService() {
|
|
167
|
+
this.triggerButtonService.emit();
|
|
170
168
|
}
|
|
171
169
|
setImage() {
|
|
172
170
|
const ref = this.dialogService.open(WImageCropperComponent, {
|
|
@@ -215,26 +213,32 @@ export class WMaterialServiceViewComponent {
|
|
|
215
213
|
}
|
|
216
214
|
}
|
|
217
215
|
WMaterialServiceViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WMaterialServiceViewComponent, deps: [{ token: i1.MatIconRegistry }, { token: i2.DomSanitizer }, { token: i3.DialogService }], target: i0.ɵɵFactoryTarget.Component });
|
|
218
|
-
WMaterialServiceViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WMaterialServiceViewComponent, selector: "w-material-service-view", inputs: { forceMobile: "forceMobile", wappingServicesTranslations: "wappingServicesTranslations", canParticipateDraw: "canParticipateDraw", wappingService: "wappingService", isDevModeActive: "isDevModeActive", defaultImage: "defaultImage", croppedImageConfiguration: "croppedImageConfiguration", croppedDialogTranslations: "croppedDialogTranslations", isNoImage: "isNoImage", onHoverImageTooltip: "onHoverImageTooltip" }, outputs: { wappingServiceSelected: "wappingServiceSelected", participateDraw: "participateDraw", onDefaultImageEvent: "onDefaultImageEvent" }, usesOnChanges: true, ngImport: i0, template: "<wapp-main-title [title]=\"wappingService.tile3\" *ngIf=\"wappingService && (!forceMobile)\" fxHide.xs></wapp-main-title>\r\n<div class=\"service-detail-center\" *ngIf=\"wappingService\"\r\n [ngClass]=\"{'force-mobile': forceMobile}\"\r\n [fxLayout]=\"forceMobile ? 'column' : 'row'\"\r\n [fxLayout.xs]=\"'column'\"\r\n [fxLayout.sm]=\"'column'\">\r\n <!--service image-->\r\n <div [ngClass]=\"{'service-view-no-margin': forceMobile, 'service-view': !forceMobile}\" fxLayout=\"column\">\r\n <!--tile 1-->\r\n <div *ngIf=\"wappingService.tile1 && wappingService.tile1 != ''\"\r\n [ngClass]=\"{'service-image-tile' : !hasHtml(wappingService.tile1),\r\n 'template-service-image-tile' : hasHtml(wappingService.tile1)}\"\r\n fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div [ngClass]=\"{'tile-view-no-html': !hasHtml(wappingService.tile1)}\" class=\"service-view-tile1\" \r\n [innerHtml]=\"wappingService.tile1\"></div>\r\n </div>\r\n <!--slideshow-->\r\n <wapp-carousel [isDevModeActive]=\"isDevModeActive\" [forceMobile]=\"forceMobile\" [images]=\"wappingServiceImages\" [isNoImage]=\"isNoImage\" (onSetImageEvent)=\"setImage()\" [onHoverImageTooltip]=\"onHoverImageTooltip\"></wapp-carousel>\r\n <!--tile 2-->\r\n <div fxFlex fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"5px\"\r\n [ngClass]=\"{'service-tile-border-bottom-radius': !wappingService.tile4,\r\n 'template-service-tile': hasHtml(wappingService.tile2),\r\n 'service-tile' : !hasHtml(wappingService.tile2)}\"\r\n [ngStyle]=\"!hasHtml(wappingService.tile2) ? { 'background-color': '#0e0c0c', 'color': '#fff' } : {'background-color': 'transparent !important', 'color': 'transparent !important'}\"\r\n *ngIf=\"wappingService.tile2\">\r\n <div [innerHtml]=\"wappingService.tile2\"></div>\r\n </div>\r\n <!--activate toggle-->\r\n <mat-slide-toggle class=\"service-select-toggle\" color=\"accent\"\r\n *ngIf=\"wappingService.allowSelect && allowSelectSendGiftCard && !isDrawService\"\r\n [disabled]=\"disabledToggle\"\r\n [(ngModel)]=\"wappingService.active\"\r\n (change)=\"selectWappingService()\">{{ serviceStatus }}</mat-slide-toggle>\r\n <button mat-flat-button *ngIf=\"isDrawService\"\r\n class=\"service-select-toggle\"\r\n color=\"accent\"\r\n [disabled]=\"!canParticipateDraw\"\r\n (click)=\"triggerParticipate()\">\r\n <span>{{ wappingServicesTranslations?.participate }}</span>\r\n </button>\r\n \r\n </div>\r\n <!--service info-->\r\n <div class=\"service-info-container\" [ngClass]=\"{'service-info-container-padding': forceMobile}\" fxLayout=\"column\">\r\n <div class=\"service-tile-detail-container\" fxLayout=\"column\">\r\n <!--tile 3-->\r\n <div *ngIf=\"!forceMobile\"\r\n [innerHtml]=\"wappingService.tile3\" fxHide fxShow.xs\r\n class=\"service-name mat-title\">\r\n </div>\r\n <div *ngIf=\"forceMobile\"\r\n [innerHtml]=\"wappingService.tile3\"\r\n class=\"service-name mat-title\">\r\n </div>\r\n <!--tileDetail 1-->\r\n <div class=\"service-tile-detail\" fxLayout=\"row\">\r\n <span [innerHtml]=\"wappingService.tileDetail1\"></span>\r\n </div>\r\n </div>\r\n <!--link-->\r\n <div class=\"service-link-container\" *ngIf=\"wappingService.titleLinkUrl && wappingService.linkUrl\">\r\n <a class=\"service-link\" href=\"{{wappingService.linkUrl}}\" target=\"_blank\">\r\n <mat-icon class=\"service-link-icon\" svgIcon=\"share_square\"></mat-icon><span>{{wappingService.titleLinkUrl}}</span>\r\n </a>\r\n </div>\r\n </div>\r\n</div>", styles: [".back-button{width:20px!important;height:20px!important;background-color:#a5000000;padding:0;border:none;cursor:pointer}.back-button-over-image{width:37px!important;height:37px!important;background-color:#ffffffb0;position:absolute;top:13px;left:11px;z-index:10;border-radius:50%;border:none;display:flex;justify-content:center;align-items:center;cursor:pointer}::ng-deep .back-button .mat-button-wrapper,::ng-deep .back-button-over-image .mat-button-wrapper{padding:4px 0!important}.back-button .mat-button-wrapper,.back-button-over-image .mat-button-wrapper{line-height:14px!important}.back-button .mat-icon{width:20px;height:20px}.back-button-over-image .mat-icon{width:16px;height:16px}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch:enabled .mdc-switch__track:before{background:var(--mdc-switch-unselected-track-color, #a50000)!important}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch.mdc-switch--selected:enabled .mdc-switch__handle:after{background:var(--mdc-switch-selected-handle-color, var(--mdc-theme-primary, #fff))!important}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch:enabled .mdc-switch__track:after{background:var(--mdc-switch-selected-hover-track-color, #10c638)!important}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch.mdc-switch--unselected:enabled .mdc-switch__handle:after{background:var(--mdc-switch-unselected-handle-color, #fff)!important}:host ::ng-deep .mdc-form-field>label{font:400 14px/25px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;text-transform:uppercase}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch{margin-right:8px!important}@media (max-width: 959px){.service-detail-center{align-items:center}}.service-view{position:relative;margin-right:30px}.service-view-no-margin{position:relative;margin-right:0!important}@media (min-width: 600px) and (max-width: 959px){.service-view{margin-right:0;width:100%}}@media (max-width: 599px){.service-view{margin-right:0;width:100%}}.service-image-tile,.template-service-image-tile{position:absolute!important;width:100%!important;min-height:32px!important;top:0!important;z-index:9!important}.tile-view-no-html{background-color:#000;color:#fff;margin-left:60px;margin-right:60px;border-radius:0 0 4.3118px 4.3118px!important;justify-content:center!important;align-items:center!important;display:flex!important;text-align:center!important;padding:4px!important}.service-view-tile1{width:100%;min-height:32px}.service-tile,.template-service-tile{padding:14px;max-height:48px;display:flex;align-items:center;text-align:center;font:400 15px/17px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;text-transform:uppercase}.service-tile-border-bottom-radius{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.service-select-toggle{margin-top:25px;margin-right:auto;margin-left:auto;display:flex;align-items:center;text-align:left;max-width:none!important}.service-select-toggle *{max-width:none!important}.service-info-container{width:100%;height:250px}.service-info-container-padding{padding-right:15px;padding-left:15px}@media (max-width: 599px){.service-info-container{padding-right:15px;padding-left:15px}}.service-name{margin-top:0;text-align:justify;white-space:pre-line;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}@media (min-width: 600px) and (max-width: 959px){.service-name{margin-top:30px;margin-right:0}}@media (max-width: 599px){.service-name{margin-top:30px;margin-right:0}}.service-description{margin-top:0;text-align:left;white-space:pre-line;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:10;-webkit-box-orient:vertical}@media (min-width: 600px) and (max-width: 959px){.service-description{margin-top:20px;margin-right:0}}@media (max-width: 599px){.service-description{margin-top:15px;margin-right:0}}.service-show-more-container{margin-top:5px;width:-moz-fit-content;width:fit-content;align-items:center;cursor:pointer;display:flex;text-align:left}.service-show-more-vector{width:5px!important;margin-left:10px}.service-tile-detail-container{margin-top:5px;display:flex;text-align:justify}@media (max-width: 599px){.service-tile-detail-container{margin-top:20px}}.service-tile-detail{margin-top:20px;font:400 14px/25px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}@media (max-width: 599px){.service-tile-detail{margin-top:20px}}.service-tile-detail-icon{margin-right:10px}.service-link-container{height:100%;justify-content:flex-end;align-items:flex-end;display:flex;text-align:justify}@media (max-width: 599px){.service-link-container{margin-top:20px;justify-content:flex-start}}.service-link{display:flex;align-items:center;cursor:pointer;text-decoration:none;color:inherit}.service-link-icon{margin-right:10px}.service-options-container{border-top:1px solid #eee;margin-top:80px}@media (max-width: 599px){.service-options-container{margin-top:40px;padding-right:15px;padding-left:15px}}.service-option{height:48px;border-bottom:1px solid #eee;cursor:pointer;display:flex;align-items:center;text-align:left}.service-option-vector{width:10px!important}.actions-container{margin-top:40px}.actions-button{display:flex;align-items:center;text-align:justify}.actions-button-text{margin-left:10px}.sendLabel{margin:10px auto;display:flex;justify-content:center;align-items:center;text-align:center}.sendCard-container{flex-wrap:wrap}.sendCard-container mat-icon{width:24px}@media (min-width: 600px){.sendCard-container{display:flex;justify-content:flex-end}.sentCard-container{display:flex;justify-content:end}.send-button{width:auto;display:flex;justify-content:center;align-items:center;margin-left:8px}}@media (max-width: 599px){.sendCard-container{display:flex;justify-content:center}.send-button{width:auto;display:flex;justify-content:center;align-items:center;margin-left:0}.sentCard-container{display:flex;justify-content:space-evenly}}\n"], dependencies: [{ kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i6.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i8.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "directive", type: i8.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i8.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { kind: "component", type: i9.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i10.MainTitleComponent, selector: "wapp-main-title", inputs: ["title", "extraClassToApply"] }, { kind: "component", type: i11.CarouselComponent, selector: "wapp-carousel", inputs: ["images", "allowThumbnail", "infiniteCarousel", "forceMobile", "height", "isDevModeActive", "isNoImage", "onHoverImageTooltip"], outputs: ["onSetImageEvent"] }] });
|
|
216
|
+
WMaterialServiceViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WMaterialServiceViewComponent, selector: "w-material-service-view", inputs: { forceMobile: "forceMobile", wappingServicesTranslations: "wappingServicesTranslations", disabledButtonService: "disabledButtonService", showButtonService: "showButtonService", showToggle: "showToggle", wappingService: "wappingService", isDevModeActive: "isDevModeActive", defaultImage: "defaultImage", croppedImageConfiguration: "croppedImageConfiguration", croppedDialogTranslations: "croppedDialogTranslations", isNoImage: "isNoImage", onHoverImageTooltip: "onHoverImageTooltip" }, outputs: { wappingServiceSelected: "wappingServiceSelected", triggerButtonService: "triggerButtonService", onDefaultImageEvent: "onDefaultImageEvent" }, usesOnChanges: true, ngImport: i0, template: "<wapp-main-title [title]=\"wappingService.tile3\" *ngIf=\"wappingService && (!forceMobile)\" fxHide.xs></wapp-main-title>\r\n<div class=\"service-detail-center\" *ngIf=\"wappingService\"\r\n [ngClass]=\"{'force-mobile': forceMobile}\"\r\n [fxLayout]=\"forceMobile ? 'column' : 'row'\"\r\n [fxLayout.xs]=\"'column'\"\r\n [fxLayout.sm]=\"'column'\">\r\n <!--service image-->\r\n <div [ngClass]=\"{'service-view-no-margin': forceMobile, 'service-view': !forceMobile}\" fxLayout=\"column\">\r\n <!--tile 1-->\r\n <div *ngIf=\"wappingService.tile1 && wappingService.tile1 != ''\"\r\n [ngClass]=\"{'service-image-tile' : !hasHtml(wappingService.tile1),\r\n 'template-service-image-tile' : hasHtml(wappingService.tile1)}\"\r\n fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div [ngClass]=\"{'tile-view-no-html': !hasHtml(wappingService.tile1)}\" class=\"service-view-tile1\" \r\n [innerHtml]=\"wappingService.tile1\"></div>\r\n </div>\r\n <!--slideshow-->\r\n <wapp-carousel [isDevModeActive]=\"isDevModeActive\" [forceMobile]=\"forceMobile\" [images]=\"wappingServiceImages\" [isNoImage]=\"isNoImage\" (onSetImageEvent)=\"setImage()\" [onHoverImageTooltip]=\"onHoverImageTooltip\"></wapp-carousel>\r\n <!--tile 2-->\r\n <div fxFlex fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"5px\"\r\n [ngClass]=\"{'service-tile-border-bottom-radius': !wappingService.tile4,\r\n 'template-service-tile': hasHtml(wappingService.tile2),\r\n 'service-tile' : !hasHtml(wappingService.tile2)}\"\r\n [ngStyle]=\"!hasHtml(wappingService.tile2) ? { 'background-color': '#0e0c0c', 'color': '#fff' } : {'background-color': 'transparent !important', 'color': 'transparent !important'}\"\r\n *ngIf=\"wappingService.tile2\">\r\n <div [innerHtml]=\"wappingService.tile2\"></div>\r\n </div>\r\n <!--activate toggle-->\r\n <mat-slide-toggle class=\"service-select-toggle\" color=\"accent\"\r\n *ngIf=\"wappingService.allowSelect && allowSelectSendGiftCard && !showButtonService && showToggle\"\r\n [disabled]=\"disabledToggle\"\r\n [(ngModel)]=\"wappingService.active\"\r\n (change)=\"selectWappingService()\">{{ serviceStatus }}</mat-slide-toggle>\r\n <button mat-flat-button *ngIf=\"showButtonService\"\r\n class=\"service-select-toggle\"\r\n color=\"accent\"\r\n [disabled]=\"disabledButtonService\"\r\n (click)=\"pressButtonService()\">\r\n <span>{{ wappingServicesTranslations?.buttonService }}</span>\r\n </button>\r\n \r\n </div>\r\n <!--service info-->\r\n <div class=\"service-info-container\" [ngClass]=\"{'service-info-container-padding': forceMobile}\" fxLayout=\"column\">\r\n <div class=\"service-tile-detail-container\" fxLayout=\"column\">\r\n <!--tile 3-->\r\n <div *ngIf=\"!forceMobile\"\r\n [innerHtml]=\"wappingService.tile3\" fxHide fxShow.xs\r\n class=\"service-name mat-title\">\r\n </div>\r\n <div *ngIf=\"forceMobile\"\r\n [innerHtml]=\"wappingService.tile3\"\r\n class=\"service-name mat-title\">\r\n </div>\r\n <!--tileDetail 1-->\r\n <div class=\"service-tile-detail\" fxLayout=\"row\">\r\n <span [innerHtml]=\"wappingService.tileDetail1\"></span>\r\n </div>\r\n </div>\r\n <!--link-->\r\n <div class=\"service-link-container\" *ngIf=\"wappingService.titleLinkUrl && wappingService.linkUrl\">\r\n <a class=\"service-link\" href=\"{{wappingService.linkUrl}}\" target=\"_blank\">\r\n <mat-icon class=\"service-link-icon\" svgIcon=\"share_square\"></mat-icon><span>{{wappingService.titleLinkUrl}}</span>\r\n </a>\r\n </div>\r\n </div>\r\n</div>", styles: [".back-button{width:20px!important;height:20px!important;background-color:#a5000000;padding:0;border:none;cursor:pointer}.back-button-over-image{width:37px!important;height:37px!important;background-color:#ffffffb0;position:absolute;top:13px;left:11px;z-index:10;border-radius:50%;border:none;display:flex;justify-content:center;align-items:center;cursor:pointer}::ng-deep .back-button .mat-button-wrapper,::ng-deep .back-button-over-image .mat-button-wrapper{padding:4px 0!important}.back-button .mat-button-wrapper,.back-button-over-image .mat-button-wrapper{line-height:14px!important}.back-button .mat-icon{width:20px;height:20px}.back-button-over-image .mat-icon{width:16px;height:16px}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch:enabled .mdc-switch__track:before{background:var(--mdc-switch-unselected-track-color, #a50000)!important}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch.mdc-switch--selected:enabled .mdc-switch__handle:after{background:var(--mdc-switch-selected-handle-color, var(--mdc-theme-primary, #fff))!important}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch:enabled .mdc-switch__track:after{background:var(--mdc-switch-selected-hover-track-color, #10c638)!important}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch.mdc-switch--unselected:enabled .mdc-switch__handle:after{background:var(--mdc-switch-unselected-handle-color, #fff)!important}:host ::ng-deep .mdc-form-field>label{font:400 14px/25px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;text-transform:uppercase}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch{margin-right:8px!important}@media (max-width: 959px){.service-detail-center{align-items:center}}.service-view{position:relative;margin-right:30px}.service-view-no-margin{position:relative;margin-right:0!important}@media (min-width: 600px) and (max-width: 959px){.service-view{margin-right:0;width:100%}}@media (max-width: 599px){.service-view{margin-right:0;width:100%}}.service-image-tile,.template-service-image-tile{position:absolute!important;width:100%!important;min-height:32px!important;top:0!important;z-index:9!important}.tile-view-no-html{background-color:#000;color:#fff;margin-left:60px;margin-right:60px;border-radius:0 0 4.3118px 4.3118px!important;justify-content:center!important;align-items:center!important;display:flex!important;text-align:center!important;padding:4px!important}.service-view-tile1{width:100%;min-height:32px}.service-tile,.template-service-tile{padding:14px;max-height:48px;display:flex;align-items:center;text-align:center;font:400 15px/17px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;text-transform:uppercase}.service-tile-border-bottom-radius{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.service-select-toggle{margin-top:25px;margin-right:auto;margin-left:auto;display:flex;align-items:center;text-align:left;max-width:none!important}.service-select-toggle *{max-width:none!important}.service-info-container{width:100%;height:250px}.service-info-container-padding{padding-right:15px;padding-left:15px}@media (max-width: 599px){.service-info-container{padding-right:15px;padding-left:15px}}.service-name{margin-top:0;text-align:justify;white-space:pre-line;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}@media (min-width: 600px) and (max-width: 959px){.service-name{margin-top:30px;margin-right:0}}@media (max-width: 599px){.service-name{margin-top:30px;margin-right:0}}.service-description{margin-top:0;text-align:left;white-space:pre-line;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:10;-webkit-box-orient:vertical}@media (min-width: 600px) and (max-width: 959px){.service-description{margin-top:20px;margin-right:0}}@media (max-width: 599px){.service-description{margin-top:15px;margin-right:0}}.service-show-more-container{margin-top:5px;width:-moz-fit-content;width:fit-content;align-items:center;cursor:pointer;display:flex;text-align:left}.service-show-more-vector{width:5px!important;margin-left:10px}.service-tile-detail-container{margin-top:5px;display:flex;text-align:justify}@media (max-width: 599px){.service-tile-detail-container{margin-top:20px}}.service-tile-detail{margin-top:20px;font:400 14px/25px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}@media (max-width: 599px){.service-tile-detail{margin-top:20px}}.service-tile-detail-icon{margin-right:10px}.service-link-container{height:100%;justify-content:flex-end;align-items:flex-end;display:flex;text-align:justify}@media (max-width: 599px){.service-link-container{margin-top:20px;justify-content:flex-start}}.service-link{display:flex;align-items:center;cursor:pointer;text-decoration:none;color:inherit}.service-link-icon{margin-right:10px}.service-options-container{border-top:1px solid #eee;margin-top:80px}@media (max-width: 599px){.service-options-container{margin-top:40px;padding-right:15px;padding-left:15px}}.service-option{height:48px;border-bottom:1px solid #eee;cursor:pointer;display:flex;align-items:center;text-align:left}.service-option-vector{width:10px!important}.actions-container{margin-top:40px}.actions-button{display:flex;align-items:center;text-align:justify}.actions-button-text{margin-left:10px}.sendLabel{margin:10px auto;display:flex;justify-content:center;align-items:center;text-align:center}.sendCard-container{flex-wrap:wrap}.sendCard-container mat-icon{width:24px}@media (min-width: 600px){.sendCard-container{display:flex;justify-content:flex-end}.sentCard-container{display:flex;justify-content:end}.send-button{width:auto;display:flex;justify-content:center;align-items:center;margin-left:8px}}@media (max-width: 599px){.sendCard-container{display:flex;justify-content:center}.send-button{width:auto;display:flex;justify-content:center;align-items:center;margin-left:0}.sentCard-container{display:flex;justify-content:space-evenly}}\n"], dependencies: [{ kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i6.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i8.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "directive", type: i8.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i8.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { kind: "component", type: i9.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i10.MainTitleComponent, selector: "wapp-main-title", inputs: ["title", "extraClassToApply"] }, { kind: "component", type: i11.CarouselComponent, selector: "wapp-carousel", inputs: ["images", "allowThumbnail", "infiniteCarousel", "forceMobile", "height", "isDevModeActive", "isNoImage", "onHoverImageTooltip"], outputs: ["onSetImageEvent"] }] });
|
|
219
217
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WMaterialServiceViewComponent, decorators: [{
|
|
220
218
|
type: Component,
|
|
221
|
-
args: [{ selector: 'w-material-service-view', template: "<wapp-main-title [title]=\"wappingService.tile3\" *ngIf=\"wappingService && (!forceMobile)\" fxHide.xs></wapp-main-title>\r\n<div class=\"service-detail-center\" *ngIf=\"wappingService\"\r\n [ngClass]=\"{'force-mobile': forceMobile}\"\r\n [fxLayout]=\"forceMobile ? 'column' : 'row'\"\r\n [fxLayout.xs]=\"'column'\"\r\n [fxLayout.sm]=\"'column'\">\r\n <!--service image-->\r\n <div [ngClass]=\"{'service-view-no-margin': forceMobile, 'service-view': !forceMobile}\" fxLayout=\"column\">\r\n <!--tile 1-->\r\n <div *ngIf=\"wappingService.tile1 && wappingService.tile1 != ''\"\r\n [ngClass]=\"{'service-image-tile' : !hasHtml(wappingService.tile1),\r\n 'template-service-image-tile' : hasHtml(wappingService.tile1)}\"\r\n fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div [ngClass]=\"{'tile-view-no-html': !hasHtml(wappingService.tile1)}\" class=\"service-view-tile1\" \r\n [innerHtml]=\"wappingService.tile1\"></div>\r\n </div>\r\n <!--slideshow-->\r\n <wapp-carousel [isDevModeActive]=\"isDevModeActive\" [forceMobile]=\"forceMobile\" [images]=\"wappingServiceImages\" [isNoImage]=\"isNoImage\" (onSetImageEvent)=\"setImage()\" [onHoverImageTooltip]=\"onHoverImageTooltip\"></wapp-carousel>\r\n <!--tile 2-->\r\n <div fxFlex fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"5px\"\r\n [ngClass]=\"{'service-tile-border-bottom-radius': !wappingService.tile4,\r\n 'template-service-tile': hasHtml(wappingService.tile2),\r\n 'service-tile' : !hasHtml(wappingService.tile2)}\"\r\n [ngStyle]=\"!hasHtml(wappingService.tile2) ? { 'background-color': '#0e0c0c', 'color': '#fff' } : {'background-color': 'transparent !important', 'color': 'transparent !important'}\"\r\n *ngIf=\"wappingService.tile2\">\r\n <div [innerHtml]=\"wappingService.tile2\"></div>\r\n </div>\r\n <!--activate toggle-->\r\n <mat-slide-toggle class=\"service-select-toggle\" color=\"accent\"\r\n *ngIf=\"wappingService.allowSelect && allowSelectSendGiftCard && !isDrawService\"\r\n [disabled]=\"disabledToggle\"\r\n [(ngModel)]=\"wappingService.active\"\r\n (change)=\"selectWappingService()\">{{ serviceStatus }}</mat-slide-toggle>\r\n <button mat-flat-button *ngIf=\"isDrawService\"\r\n class=\"service-select-toggle\"\r\n color=\"accent\"\r\n [disabled]=\"!canParticipateDraw\"\r\n (click)=\"triggerParticipate()\">\r\n <span>{{ wappingServicesTranslations?.participate }}</span>\r\n </button>\r\n \r\n </div>\r\n <!--service info-->\r\n <div class=\"service-info-container\" [ngClass]=\"{'service-info-container-padding': forceMobile}\" fxLayout=\"column\">\r\n <div class=\"service-tile-detail-container\" fxLayout=\"column\">\r\n <!--tile 3-->\r\n <div *ngIf=\"!forceMobile\"\r\n [innerHtml]=\"wappingService.tile3\" fxHide fxShow.xs\r\n class=\"service-name mat-title\">\r\n </div>\r\n <div *ngIf=\"forceMobile\"\r\n [innerHtml]=\"wappingService.tile3\"\r\n class=\"service-name mat-title\">\r\n </div>\r\n <!--tileDetail 1-->\r\n <div class=\"service-tile-detail\" fxLayout=\"row\">\r\n <span [innerHtml]=\"wappingService.tileDetail1\"></span>\r\n </div>\r\n </div>\r\n <!--link-->\r\n <div class=\"service-link-container\" *ngIf=\"wappingService.titleLinkUrl && wappingService.linkUrl\">\r\n <a class=\"service-link\" href=\"{{wappingService.linkUrl}}\" target=\"_blank\">\r\n <mat-icon class=\"service-link-icon\" svgIcon=\"share_square\"></mat-icon><span>{{wappingService.titleLinkUrl}}</span>\r\n </a>\r\n </div>\r\n </div>\r\n</div>", styles: [".back-button{width:20px!important;height:20px!important;background-color:#a5000000;padding:0;border:none;cursor:pointer}.back-button-over-image{width:37px!important;height:37px!important;background-color:#ffffffb0;position:absolute;top:13px;left:11px;z-index:10;border-radius:50%;border:none;display:flex;justify-content:center;align-items:center;cursor:pointer}::ng-deep .back-button .mat-button-wrapper,::ng-deep .back-button-over-image .mat-button-wrapper{padding:4px 0!important}.back-button .mat-button-wrapper,.back-button-over-image .mat-button-wrapper{line-height:14px!important}.back-button .mat-icon{width:20px;height:20px}.back-button-over-image .mat-icon{width:16px;height:16px}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch:enabled .mdc-switch__track:before{background:var(--mdc-switch-unselected-track-color, #a50000)!important}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch.mdc-switch--selected:enabled .mdc-switch__handle:after{background:var(--mdc-switch-selected-handle-color, var(--mdc-theme-primary, #fff))!important}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch:enabled .mdc-switch__track:after{background:var(--mdc-switch-selected-hover-track-color, #10c638)!important}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch.mdc-switch--unselected:enabled .mdc-switch__handle:after{background:var(--mdc-switch-unselected-handle-color, #fff)!important}:host ::ng-deep .mdc-form-field>label{font:400 14px/25px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;text-transform:uppercase}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch{margin-right:8px!important}@media (max-width: 959px){.service-detail-center{align-items:center}}.service-view{position:relative;margin-right:30px}.service-view-no-margin{position:relative;margin-right:0!important}@media (min-width: 600px) and (max-width: 959px){.service-view{margin-right:0;width:100%}}@media (max-width: 599px){.service-view{margin-right:0;width:100%}}.service-image-tile,.template-service-image-tile{position:absolute!important;width:100%!important;min-height:32px!important;top:0!important;z-index:9!important}.tile-view-no-html{background-color:#000;color:#fff;margin-left:60px;margin-right:60px;border-radius:0 0 4.3118px 4.3118px!important;justify-content:center!important;align-items:center!important;display:flex!important;text-align:center!important;padding:4px!important}.service-view-tile1{width:100%;min-height:32px}.service-tile,.template-service-tile{padding:14px;max-height:48px;display:flex;align-items:center;text-align:center;font:400 15px/17px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;text-transform:uppercase}.service-tile-border-bottom-radius{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.service-select-toggle{margin-top:25px;margin-right:auto;margin-left:auto;display:flex;align-items:center;text-align:left;max-width:none!important}.service-select-toggle *{max-width:none!important}.service-info-container{width:100%;height:250px}.service-info-container-padding{padding-right:15px;padding-left:15px}@media (max-width: 599px){.service-info-container{padding-right:15px;padding-left:15px}}.service-name{margin-top:0;text-align:justify;white-space:pre-line;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}@media (min-width: 600px) and (max-width: 959px){.service-name{margin-top:30px;margin-right:0}}@media (max-width: 599px){.service-name{margin-top:30px;margin-right:0}}.service-description{margin-top:0;text-align:left;white-space:pre-line;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:10;-webkit-box-orient:vertical}@media (min-width: 600px) and (max-width: 959px){.service-description{margin-top:20px;margin-right:0}}@media (max-width: 599px){.service-description{margin-top:15px;margin-right:0}}.service-show-more-container{margin-top:5px;width:-moz-fit-content;width:fit-content;align-items:center;cursor:pointer;display:flex;text-align:left}.service-show-more-vector{width:5px!important;margin-left:10px}.service-tile-detail-container{margin-top:5px;display:flex;text-align:justify}@media (max-width: 599px){.service-tile-detail-container{margin-top:20px}}.service-tile-detail{margin-top:20px;font:400 14px/25px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}@media (max-width: 599px){.service-tile-detail{margin-top:20px}}.service-tile-detail-icon{margin-right:10px}.service-link-container{height:100%;justify-content:flex-end;align-items:flex-end;display:flex;text-align:justify}@media (max-width: 599px){.service-link-container{margin-top:20px;justify-content:flex-start}}.service-link{display:flex;align-items:center;cursor:pointer;text-decoration:none;color:inherit}.service-link-icon{margin-right:10px}.service-options-container{border-top:1px solid #eee;margin-top:80px}@media (max-width: 599px){.service-options-container{margin-top:40px;padding-right:15px;padding-left:15px}}.service-option{height:48px;border-bottom:1px solid #eee;cursor:pointer;display:flex;align-items:center;text-align:left}.service-option-vector{width:10px!important}.actions-container{margin-top:40px}.actions-button{display:flex;align-items:center;text-align:justify}.actions-button-text{margin-left:10px}.sendLabel{margin:10px auto;display:flex;justify-content:center;align-items:center;text-align:center}.sendCard-container{flex-wrap:wrap}.sendCard-container mat-icon{width:24px}@media (min-width: 600px){.sendCard-container{display:flex;justify-content:flex-end}.sentCard-container{display:flex;justify-content:end}.send-button{width:auto;display:flex;justify-content:center;align-items:center;margin-left:8px}}@media (max-width: 599px){.sendCard-container{display:flex;justify-content:center}.send-button{width:auto;display:flex;justify-content:center;align-items:center;margin-left:0}.sentCard-container{display:flex;justify-content:space-evenly}}\n"] }]
|
|
219
|
+
args: [{ selector: 'w-material-service-view', template: "<wapp-main-title [title]=\"wappingService.tile3\" *ngIf=\"wappingService && (!forceMobile)\" fxHide.xs></wapp-main-title>\r\n<div class=\"service-detail-center\" *ngIf=\"wappingService\"\r\n [ngClass]=\"{'force-mobile': forceMobile}\"\r\n [fxLayout]=\"forceMobile ? 'column' : 'row'\"\r\n [fxLayout.xs]=\"'column'\"\r\n [fxLayout.sm]=\"'column'\">\r\n <!--service image-->\r\n <div [ngClass]=\"{'service-view-no-margin': forceMobile, 'service-view': !forceMobile}\" fxLayout=\"column\">\r\n <!--tile 1-->\r\n <div *ngIf=\"wappingService.tile1 && wappingService.tile1 != ''\"\r\n [ngClass]=\"{'service-image-tile' : !hasHtml(wappingService.tile1),\r\n 'template-service-image-tile' : hasHtml(wappingService.tile1)}\"\r\n fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div [ngClass]=\"{'tile-view-no-html': !hasHtml(wappingService.tile1)}\" class=\"service-view-tile1\" \r\n [innerHtml]=\"wappingService.tile1\"></div>\r\n </div>\r\n <!--slideshow-->\r\n <wapp-carousel [isDevModeActive]=\"isDevModeActive\" [forceMobile]=\"forceMobile\" [images]=\"wappingServiceImages\" [isNoImage]=\"isNoImage\" (onSetImageEvent)=\"setImage()\" [onHoverImageTooltip]=\"onHoverImageTooltip\"></wapp-carousel>\r\n <!--tile 2-->\r\n <div fxFlex fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"5px\"\r\n [ngClass]=\"{'service-tile-border-bottom-radius': !wappingService.tile4,\r\n 'template-service-tile': hasHtml(wappingService.tile2),\r\n 'service-tile' : !hasHtml(wappingService.tile2)}\"\r\n [ngStyle]=\"!hasHtml(wappingService.tile2) ? { 'background-color': '#0e0c0c', 'color': '#fff' } : {'background-color': 'transparent !important', 'color': 'transparent !important'}\"\r\n *ngIf=\"wappingService.tile2\">\r\n <div [innerHtml]=\"wappingService.tile2\"></div>\r\n </div>\r\n <!--activate toggle-->\r\n <mat-slide-toggle class=\"service-select-toggle\" color=\"accent\"\r\n *ngIf=\"wappingService.allowSelect && allowSelectSendGiftCard && !showButtonService && showToggle\"\r\n [disabled]=\"disabledToggle\"\r\n [(ngModel)]=\"wappingService.active\"\r\n (change)=\"selectWappingService()\">{{ serviceStatus }}</mat-slide-toggle>\r\n <button mat-flat-button *ngIf=\"showButtonService\"\r\n class=\"service-select-toggle\"\r\n color=\"accent\"\r\n [disabled]=\"disabledButtonService\"\r\n (click)=\"pressButtonService()\">\r\n <span>{{ wappingServicesTranslations?.buttonService }}</span>\r\n </button>\r\n \r\n </div>\r\n <!--service info-->\r\n <div class=\"service-info-container\" [ngClass]=\"{'service-info-container-padding': forceMobile}\" fxLayout=\"column\">\r\n <div class=\"service-tile-detail-container\" fxLayout=\"column\">\r\n <!--tile 3-->\r\n <div *ngIf=\"!forceMobile\"\r\n [innerHtml]=\"wappingService.tile3\" fxHide fxShow.xs\r\n class=\"service-name mat-title\">\r\n </div>\r\n <div *ngIf=\"forceMobile\"\r\n [innerHtml]=\"wappingService.tile3\"\r\n class=\"service-name mat-title\">\r\n </div>\r\n <!--tileDetail 1-->\r\n <div class=\"service-tile-detail\" fxLayout=\"row\">\r\n <span [innerHtml]=\"wappingService.tileDetail1\"></span>\r\n </div>\r\n </div>\r\n <!--link-->\r\n <div class=\"service-link-container\" *ngIf=\"wappingService.titleLinkUrl && wappingService.linkUrl\">\r\n <a class=\"service-link\" href=\"{{wappingService.linkUrl}}\" target=\"_blank\">\r\n <mat-icon class=\"service-link-icon\" svgIcon=\"share_square\"></mat-icon><span>{{wappingService.titleLinkUrl}}</span>\r\n </a>\r\n </div>\r\n </div>\r\n</div>", styles: [".back-button{width:20px!important;height:20px!important;background-color:#a5000000;padding:0;border:none;cursor:pointer}.back-button-over-image{width:37px!important;height:37px!important;background-color:#ffffffb0;position:absolute;top:13px;left:11px;z-index:10;border-radius:50%;border:none;display:flex;justify-content:center;align-items:center;cursor:pointer}::ng-deep .back-button .mat-button-wrapper,::ng-deep .back-button-over-image .mat-button-wrapper{padding:4px 0!important}.back-button .mat-button-wrapper,.back-button-over-image .mat-button-wrapper{line-height:14px!important}.back-button .mat-icon{width:20px;height:20px}.back-button-over-image .mat-icon{width:16px;height:16px}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch:enabled .mdc-switch__track:before{background:var(--mdc-switch-unselected-track-color, #a50000)!important}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch.mdc-switch--selected:enabled .mdc-switch__handle:after{background:var(--mdc-switch-selected-handle-color, var(--mdc-theme-primary, #fff))!important}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch:enabled .mdc-switch__track:after{background:var(--mdc-switch-selected-hover-track-color, #10c638)!important}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch.mdc-switch--unselected:enabled .mdc-switch__handle:after{background:var(--mdc-switch-unselected-handle-color, #fff)!important}:host ::ng-deep .mdc-form-field>label{font:400 14px/25px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;text-transform:uppercase}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch{margin-right:8px!important}@media (max-width: 959px){.service-detail-center{align-items:center}}.service-view{position:relative;margin-right:30px}.service-view-no-margin{position:relative;margin-right:0!important}@media (min-width: 600px) and (max-width: 959px){.service-view{margin-right:0;width:100%}}@media (max-width: 599px){.service-view{margin-right:0;width:100%}}.service-image-tile,.template-service-image-tile{position:absolute!important;width:100%!important;min-height:32px!important;top:0!important;z-index:9!important}.tile-view-no-html{background-color:#000;color:#fff;margin-left:60px;margin-right:60px;border-radius:0 0 4.3118px 4.3118px!important;justify-content:center!important;align-items:center!important;display:flex!important;text-align:center!important;padding:4px!important}.service-view-tile1{width:100%;min-height:32px}.service-tile,.template-service-tile{padding:14px;max-height:48px;display:flex;align-items:center;text-align:center;font:400 15px/17px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;text-transform:uppercase}.service-tile-border-bottom-radius{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.service-select-toggle{margin-top:25px;margin-right:auto;margin-left:auto;display:flex;align-items:center;text-align:left;max-width:none!important}.service-select-toggle *{max-width:none!important}.service-info-container{width:100%;height:250px}.service-info-container-padding{padding-right:15px;padding-left:15px}@media (max-width: 599px){.service-info-container{padding-right:15px;padding-left:15px}}.service-name{margin-top:0;text-align:justify;white-space:pre-line;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}@media (min-width: 600px) and (max-width: 959px){.service-name{margin-top:30px;margin-right:0}}@media (max-width: 599px){.service-name{margin-top:30px;margin-right:0}}.service-description{margin-top:0;text-align:left;white-space:pre-line;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:10;-webkit-box-orient:vertical}@media (min-width: 600px) and (max-width: 959px){.service-description{margin-top:20px;margin-right:0}}@media (max-width: 599px){.service-description{margin-top:15px;margin-right:0}}.service-show-more-container{margin-top:5px;width:-moz-fit-content;width:fit-content;align-items:center;cursor:pointer;display:flex;text-align:left}.service-show-more-vector{width:5px!important;margin-left:10px}.service-tile-detail-container{margin-top:5px;display:flex;text-align:justify}@media (max-width: 599px){.service-tile-detail-container{margin-top:20px}}.service-tile-detail{margin-top:20px;font:400 14px/25px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}@media (max-width: 599px){.service-tile-detail{margin-top:20px}}.service-tile-detail-icon{margin-right:10px}.service-link-container{height:100%;justify-content:flex-end;align-items:flex-end;display:flex;text-align:justify}@media (max-width: 599px){.service-link-container{margin-top:20px;justify-content:flex-start}}.service-link{display:flex;align-items:center;cursor:pointer;text-decoration:none;color:inherit}.service-link-icon{margin-right:10px}.service-options-container{border-top:1px solid #eee;margin-top:80px}@media (max-width: 599px){.service-options-container{margin-top:40px;padding-right:15px;padding-left:15px}}.service-option{height:48px;border-bottom:1px solid #eee;cursor:pointer;display:flex;align-items:center;text-align:left}.service-option-vector{width:10px!important}.actions-container{margin-top:40px}.actions-button{display:flex;align-items:center;text-align:justify}.actions-button-text{margin-left:10px}.sendLabel{margin:10px auto;display:flex;justify-content:center;align-items:center;text-align:center}.sendCard-container{flex-wrap:wrap}.sendCard-container mat-icon{width:24px}@media (min-width: 600px){.sendCard-container{display:flex;justify-content:flex-end}.sentCard-container{display:flex;justify-content:end}.send-button{width:auto;display:flex;justify-content:center;align-items:center;margin-left:8px}}@media (max-width: 599px){.sendCard-container{display:flex;justify-content:center}.send-button{width:auto;display:flex;justify-content:center;align-items:center;margin-left:0}.sentCard-container{display:flex;justify-content:space-evenly}}\n"] }]
|
|
222
220
|
}], ctorParameters: function () { return [{ type: i1.MatIconRegistry }, { type: i2.DomSanitizer }, { type: i3.DialogService }]; }, propDecorators: { forceMobile: [{
|
|
223
221
|
type: Input
|
|
224
222
|
}], wappingServicesTranslations: [{
|
|
225
223
|
type: Input,
|
|
226
224
|
args: ['wappingServicesTranslations']
|
|
227
|
-
}],
|
|
225
|
+
}], disabledButtonService: [{
|
|
226
|
+
type: Input,
|
|
227
|
+
args: ['disabledButtonService']
|
|
228
|
+
}], showButtonService: [{
|
|
229
|
+
type: Input,
|
|
230
|
+
args: ['showButtonService']
|
|
231
|
+
}], showToggle: [{
|
|
228
232
|
type: Input,
|
|
229
|
-
args: ['
|
|
233
|
+
args: ['showToggle']
|
|
230
234
|
}], wappingService: [{
|
|
231
235
|
type: Input
|
|
232
236
|
}], wappingServiceSelected: [{
|
|
233
237
|
type: Output,
|
|
234
238
|
args: ['wappingServiceSelected']
|
|
235
|
-
}],
|
|
239
|
+
}], triggerButtonService: [{
|
|
236
240
|
type: Output,
|
|
237
|
-
args: ['
|
|
241
|
+
args: ['triggerButtonService']
|
|
238
242
|
}], isDevModeActive: [{
|
|
239
243
|
type: Input
|
|
240
244
|
}], defaultImage: [{
|
|
@@ -250,4 +254,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
250
254
|
}], onHoverImageTooltip: [{
|
|
251
255
|
type: Input
|
|
252
256
|
}] } });
|
|
253
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidy1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2FwcC1jb21wb25lbnRzL3NyYy9saWIvbWF0ZXJpYWwvdy1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcvdy1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2FwcC1jb21wb25lbnRzL3NyYy9saWIvbWF0ZXJpYWwvdy1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcvdy1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBR3pHLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFRN0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0RBQXNELENBQUM7Ozs7Ozs7Ozs7Ozs7QUFPOUYsTUFBTSxPQUFPLDZCQUE2QjtJQTZCeEMsSUFBYSxjQUFjLENBQUMsS0FBcUI7UUFDL0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBRyxLQUFLO1lBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFzQkQsWUFDVSxlQUFnQyxFQUNoQyxZQUEwQixFQUMxQixhQUE0QjtRQUY1QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUF4RHRDLG1CQUFj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U0FDRjthQUFJO1lBQ0gsSUFBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQztnQkFDdEMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7YUFDbEM7aUJBQUk7Z0JBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQ3RCLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSx1Q0FBdUMsRUFBRSxDQUFDLENBQUM7YUFDNUQ7U0FDRjtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsR0FBc0I7UUFDakMsT0FBUSxHQUFnQixDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUM7SUFDaEQsQ0FBQzs7MkhBck9VLDZCQUE2QjsrR0FBN0IsNkJBQTZCLHlvQkNsQjFDLHcrSEFvRU07NEZEbERPLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDRSx5QkFBeUI7NkpBaUIxQixXQUFXO3NCQUFuQixLQUFLO2dCQUVnQywyQkFBMkI7c0JBQWhFLEtBQUs7dUJBQUMsNkJBQTZCO2dCQVdQLGtCQUFrQjtzQkFBOUMsS0FBSzt1QkFBQyxvQkFBb0I7Z0JBR2QsY0FBYztzQkFBMUIsS0FBSztnQkFTNEIsc0JBQXNCO3NCQUF2RCxNQUFNO3VCQUFDLHdCQUF3QjtnQkFDTCxlQUFlO3NCQUF6QyxNQUFNO3VCQUFDLGlCQUFpQjtnQkFFaEIsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFRRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBRUksbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNFLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFdhcHBpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL21vZGVscy93YXBwaW5nLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBXYXBwaW5nU2VydmljZUltYWdlIH0gZnJvbSAnLi4vc2hhcmVkL21vZGVscy93YXBwaW5nLXNlcnZpY2UtaW1hZ2UnO1xyXG5pbXBvcnQgeyBDYXJkU3RhdHVzLCBTZW5kaW5nU3RhdHVzLCBXYXBwaW5nU2VydmljZVR5cGUgfSBmcm9tICcuLi9zaGFyZWQvbW9kZWxzL2VudW1zLm1vZGVsJztcclxuaW1wb3J0IHsgV2FwcGluZ1NlcnZpY2VUcmFuc2xhdGlvbnMgfSBmcm9tICcuLi9zaGFyZWQvbW9kZWxzL3dhcHBpbmctc2VydmljZS10cmFuc2xhdGlvbnMubW9kZWwnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgV2FwcGluZ1NlcnZpY2VUZW1wbGF0ZSB9IGZyb20gJy4uL3NoYXJlZC9tb2RlbHMvd2FwcGluZy1zZXJ2aWNlLXRlbXBsYXRlLm1vZGVsJztcclxuaW1wb3J0IHsgTWF0SWNvblJlZ2lzdHJ5IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UsIER5bmFtaWNEaWFsb2dSZWYgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xyXG5pbXBvcnQgeyBXRmlsZUI2NCB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvdy1maWxlLWI2NC5tb2RlbCc7XHJcbmltcG9ydCB7IFdJbWFnZUNyb3BwZXJEYXRhIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy93LWltYWdlLWNyb3BwZXItZGF0YS5tb2RlbCc7XHJcbmltcG9ydCB7IFdJbWFnZUNyb3BwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9maWxlL3ctaW1hZ2UtY3JvcHBlci93LWltYWdlLWNyb3BwZXIuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndy1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93LW1hdGVyaWFsLXNlcnZpY2Utdmlldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdy1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgV01hdGVyaWFsU2VydmljZVZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcblxyXG4gIHNlcnZpY2VJZCE6IG51bWJlcjtcclxuICB3YXBwaW5nU2VydmljZUltYWdlcyE6IFdhcHBpbmdTZXJ2aWNlSW1hZ2VbXTtcclxuICBzZXJ2aWNlU3RhdHVzITogc3RyaW5nO1xyXG4gIGlzU2VuZEdpZnRDYXJkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGlzYWJsZWRUb2dnbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhbGxvd1NlbGVjdFNlbmRHaWZ0Q2FyZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgZW51bVNlbmRpbmdTdGF0dXM6IHR5cGVvZiBTZW5kaW5nU3RhdHVzID0gU2VuZGluZ1N0YXR1cztcclxuICBlY2FyZFN0YXR1czogdHlwZW9mIENhcmRTdGF0dXMgPSBDYXJkU3RhdHVzXHJcbiAgdHJhbnNsYXRpb25zOiBhbnk7XHJcbiAgaXNEcmF3U2VydmljZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIFxyXG4gIEBJbnB1dCgpIGZvcmNlTW9iaWxlID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgnd2FwcGluZ1NlcnZpY2VzVHJhbnNsYXRpb25zJykgd2FwcGluZ1NlcnZpY2VzVHJhbnNsYXRpb25zOiBXYXBwaW5nU2VydmljZVRyYW5zbGF0aW9ucyA9IHtcclxuICAgIGFjdGl2ZWRTZXJ2aWNlOiAnQWN0aXZhZGEnLFxyXG4gICAgZGlzYWJsZWRTZXJ2aWNlOiAnRGVzYWN0aXZhZGEnLFxyXG4gICAgc2NoZWR1bGVkTGFiZWw6ICdQcm9ncmFtYWRhIHBhcmEgZW52aWFyIGEge3tuYW1lfX0nLFxyXG4gICAgc2VuZExhYmVsOiAnRW52aWFkYSBhIHt7bmFtZX19JyxcclxuICAgIGNhcmRHZW5lcmF0ZWQ6ICdUdSB0YXJqZXRhIGVzdGFyw6EgZGlzcG9uaWJsZSBwYXJhIGVsIGVudsOtbyBlbiBicmV2ZXMgaW5zdGFudGVzJyxcclxuICAgIHJlY2VpdmVkTGFiZWw6IFwiRW52aWFkYSBwb3Ige3tuYW1lfX1cIixcclxuICAgIHNob3dNb3JlOiBcIk1vc3RyYXIgbcOhc1wiLFxyXG4gICAgcGFydGljaXBhdGU6IFwiUGFydGljaXBhclwiXHJcbiAgfTtcclxuICBcclxuICBASW5wdXQoJ2NhblBhcnRpY2lwYXRlRHJhdycpIGNhblBhcnRpY2lwYXRlRHJhdzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3dhcHBpbmdTZXJ2aWNlITogV2FwcGluZ1NlcnZpY2U7XHJcblxyXG4gIEBJbnB1dCgpIHNldCB3YXBwaW5nU2VydmljZSh2YWx1ZTogV2FwcGluZ1NlcnZpY2UpIHtcclxuICAgIHRoaXMuX3dhcHBpbmdTZXJ2aWNlID0gdmFsdWU7XHJcbiAgICBpZih2YWx1ZSkgdGhpcy5nZXRXYXBwaW5nU2VydmljZSh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgd2FwcGluZ1NlcnZpY2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fd2FwcGluZ1NlcnZpY2U7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCd3YXBwaW5nU2VydmljZVNlbGVjdGVkJykgd2FwcGluZ1NlcnZpY2VTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBAT3V0cHV0KCdwYXJ0aWNpcGF0ZURyYXcnKSBwYXJ0aWNpcGF0ZURyYXcgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBJbnB1dCgpIGlzRGV2TW9kZUFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRlZmF1bHRJbWFnZSE6IFdGaWxlQjY0IHwgc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBjcm9wcGVkSW1hZ2VDb25maWd1cmF0aW9uOiBXSW1hZ2VDcm9wcGVyRGF0YSA9IHtcclxuICAgIHJvdW5kZWRDcm9wcGVyOiBmYWxzZSwgXHJcbiAgICBjb25maWd1cmVkQXNwZWN0UmF0aW86IDQvMywgXHJcbiAgICB2aWV3UG9ydEhlaWh0UHg6IDYwMCwgXHJcbiAgICB2aWV3UG9ydFdpZHRoUHg6IDgwMCwgXHJcbiAgICBtYXhGaWxlU2l6ZTogMjAwMFxyXG4gIH07XHJcbiAgXHJcbiAgQElucHV0KCkgY3JvcHBlZERpYWxvZ1RyYW5zbGF0aW9uczogYW55O1xyXG4gIGltYWdlczogYW55W10gPSBbXTtcclxuICBAT3V0cHV0KCkgb25EZWZhdWx0SW1hZ2VFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8V0ZpbGVCNjQ+KCk7XHJcbiAgQElucHV0KCkgaXNOb0ltYWdlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgb25Ib3ZlckltYWdlVG9vbHRpcDogc3RyaW5nID0gJ1VwbG9hZCBpbWFnZSc7XHJcbiAgXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG1hdEljb25SZWdpc3RyeTogTWF0SWNvblJlZ2lzdHJ5LFxyXG4gICAgcHJpdmF0ZSBkb21TYW5pdGl6ZXI6IERvbVNhbml0aXplciwgXHJcbiAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UpIHtcclxuICAgIHRoaXMubWF0SWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb24oXCJjYWxlbmRhclwiLCB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwoXCIvYXNzZXRzL3dhcHBJY29ucy9tYXQtY2FsZW5kYXIuc3ZnXCIpKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYoY2hhbmdlc1snZGVmYXVsdEltYWdlJ10gJiYgY2hhbmdlc1snZGVmYXVsdEltYWdlJ10uY3VycmVudFZhbHVlKXtcclxuICAgICAgdGhpcy5kZWZhdWx0SW1hZ2UgPSBjaGFuZ2VzWydkZWZhdWx0SW1hZ2UnXS5jdXJyZW50VmFsdWU7XHJcblxyXG4gICAgICB0aGlzLmlzTm9JbWFnZSA9IGZhbHNlO1xyXG4gICAgICBpZih0aGlzLmlzRGV2TW9kZUFjdGl2ZSA9PSB0cnVlKXtcclxuICAgICAgICBpZih0aGlzLmRlZmF1bHRJbWFnZSl7XHJcbiAgICAgICAgICBpZih0aGlzLmlzV0ZpbGVJbWFnZSh0aGlzLmRlZmF1bHRJbWFnZSkpe1xyXG4gICAgICAgICAgICB0aGlzLndhcHBpbmdTZXJ2aWNlSW1hZ2VzID0gW3sgcGF0aDogKHRoaXMuZGVmYXVsdEltYWdlIGFzIFdGaWxlQjY0KS5maWxlQmFzZTY0IH1dO1xyXG4gICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMud2FwcGluZ1NlcnZpY2VJbWFnZXMgPSBbeyBwYXRoOiAodGhpcy5kZWZhdWx0SW1hZ2UgYXMgc3RyaW5nKX1dO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmKGNoYW5nZXNbJ2RlZmF1bHRJbWFnZSddICYmICFjaGFuZ2VzWydkZWZhdWx0SW1hZ2UnXS5jdXJyZW50VmFsdWUpe1xyXG4gICAgICBpZih0aGlzLmlzRGV2TW9kZUFjdGl2ZSl7XHJcbiAgICAgICAgdGhpcy5pc05vSW1hZ2UgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMud2FwcGluZ1NlcnZpY2VJbWFnZXMgPSBbeyBwYXRoOiAnLi8uLi8uLi8uLi9hc3NldHMvd2FwcEljb25zL2ltYWdlLnN2ZycgfV1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0V2FwcGluZ1NlcnZpY2Uod2FwcFNlcnZpY2U6IFdhcHBpbmdTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmlzU2VuZEdpZnRDYXJkID0gZmFsc2VcclxuICAgIGlmICh3YXBwU2VydmljZS5hY3RpdmUpXHJcbiAgICAgIHRoaXMuc2VydmljZVN0YXR1cyA9IHRoaXMud2FwcGluZ1NlcnZpY2VzVHJhbnNsYXRpb25zLmFjdGl2ZWRTZXJ2aWNlLnRvVXBwZXJDYXNlKCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuc2VydmljZVN0YXR1cyA9IHRoaXMud2FwcGluZ1NlcnZpY2VzVHJhbnNsYXRpb25zLmRpc2FibGVkU2VydmljZS50b1VwcGVyQ2FzZSgpO1xyXG4gICAgaWYgKHdhcHBTZXJ2aWNlLmRhdGFSZXFUb1NlbmRDYXJkICYmIHdhcHBTZXJ2aWNlLmRhdGFSZXFUb1NlbmRDYXJkLmRhdGFSZXFUb1NlbmRDYXJkSWQgIT0gMCkge1xyXG4gICAgICB0aGlzLmlzU2VuZEdpZnRDYXJkID0gdHJ1ZVxyXG4gICAgICBpZiAod2FwcFNlcnZpY2UuZW51bVR5cGVTdGF0dXNFQ2FyZElEID09IHRoaXMuZWNhcmRTdGF0dXMuc2VudCkge1xyXG4gICAgICAgIHRoaXMuYWxsb3dTZWxlY3RTZW5kR2lmdENhcmQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHdhcHBTZXJ2aWNlLmVudW1UeXBlU3RhdHVzRUNhcmRJRCA9PSB0aGlzLmVjYXJkU3RhdHVzLmdlbmVyYXRlZClcclxuICAgICAgdGhpcy5hbGxvd1NlbGVjdFNlbmRHaWZ0Q2FyZCA9IGZhbHNlO1xyXG5cclxuICAgIGlmKHdhcHBTZXJ2aWNlLnR5cGUgPT0gV2FwcGluZ1NlcnZpY2VUeXBlLkRyYXdzKSB7XHJcbiAgICAgIHRoaXMuaXNEcmF3U2VydmljZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5nZXRXYXBwaW5nU2VydmljZVRpbGVzKHRoaXMud2FwcGluZ1NlcnZpY2UpO1xyXG5cclxuICAgIGlmKHRoaXMuaXNEZXZNb2RlQWN0aXZlID09IGZhbHNlKXtcclxuICAgICAgdGhpcy5nZXRXYXBwaW5nU2VydmljZUltYWdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0V2FwcGluZ1NlcnZpY2VUaWxlcyhzZXJ2aWNlOiBXYXBwaW5nU2VydmljZSkge1xyXG4gICAgaWYgKHNlcnZpY2Uud2FwcGluZ1NlcnZpY2VUZW1wbGF0ZXMgIT0gbnVsbCkge1xyXG4gICAgICBzZXJ2aWNlLndhcHBpbmdTZXJ2aWNlVGVtcGxhdGVzLmZvckVhY2goKHdhcHBpbmdTZXJ2aWNlVGlsZTogV2FwcGluZ1NlcnZpY2VUZW1wbGF0ZSkgPT4ge1xyXG4gICAgICAgIGlmKHdhcHBpbmdTZXJ2aWNlVGlsZS5kZXRhaWxUaXRsZSl7XHJcbiAgICAgICAgICB0aGlzLndhcHBpbmdTZXJ2aWNlLnRpbGUzID0gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwod2FwcGluZ1NlcnZpY2VUaWxlLmRldGFpbFRpdGxlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS50aWxlMyA9ICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZih3YXBwaW5nU2VydmljZVRpbGUuZGV0YWlsSGVhZGVyKXtcclxuICAgICAgICAgIHRoaXMud2FwcGluZ1NlcnZpY2UudGlsZTEgPSB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh3YXBwaW5nU2VydmljZVRpbGUuZGV0YWlsSGVhZGVyKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS50aWxlMSA9ICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZih3YXBwaW5nU2VydmljZVRpbGUuZGV0YWlsRm9vdCl7XHJcbiAgICAgICAgICB0aGlzLndhcHBpbmdTZXJ2aWNlLnRpbGUyID0gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwod2FwcGluZ1NlcnZpY2VUaWxlLmRldGFpbEZvb3QpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLndhcHBpbmdTZXJ2aWNlLnRpbGUyID0gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHdhcHBpbmdTZXJ2aWNlVGlsZS5kZXRhaWxCb2R5KXtcclxuICAgICAgICAgIHRoaXMud2FwcGluZ1NlcnZpY2UudGlsZURldGFpbDEgPSB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh3YXBwaW5nU2VydmljZVRpbGUuZGV0YWlsQm9keSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMud2FwcGluZ1NlcnZpY2UudGlsZURldGFpbDEgPSAnJztcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0V2FwcGluZ1NlcnZpY2VJbWFnZXMoKSB7XHJcbiAgICB0aGlzLndhcHBpbmdTZXJ2aWNlSW1hZ2VzID0gdGhpcy53YXBwaW5nU2VydmljZS53YXBwaW5nU2VydmljZUltYWdlcztcclxuXHJcbiAgICBpZiAodGhpcy53YXBwaW5nU2VydmljZUltYWdlcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICBsZXQgd2FwcGluZ1NlcnZpY2VJbWFnZTogV2FwcGluZ1NlcnZpY2VJbWFnZSA9IHtcclxuICAgICAgICBwYXRoOiB0aGlzLndhcHBpbmdTZXJ2aWNlLmltYWdlVXJsISxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy53YXBwaW5nU2VydmljZUltYWdlcy51bnNoaWZ0KHdhcHBpbmdTZXJ2aWNlSW1hZ2UpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRvIERvIGltcGxlbWVudGFyIHNsaWRlc2hvd1xyXG4gICAgXHJcbiAgICAvLyBpZiAodGhpcy53YXBwaW5nU2VydmljZUltYWdlcy5sZW5ndGggPiAxKSB7XHJcbiAgICAvLyAgIHRoaXMuc2hvd1NsaWRlc2hvd0Fycm93cyA9IHRydWU7XHJcbiAgICAvLyAgIHRoaXMuc2hvd1NsaWRlc2hvd0RvdHMgPSB0cnVlO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vIGlmICghdGhpcy5pc0Rlc2t0b3ApXHJcbiAgICAvLyAgIHRoaXMuc2hvd1NsaWRlc2hvd0Fycm93cyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0V2FwcGluZ1NlcnZpY2UoKSB7XHJcbiAgICB0aGlzLmRpc2FibGVkVG9nZ2xlID0gdHJ1ZTtcclxuICAgIHRoaXMud2FwcGluZ1NlcnZpY2VTZWxlY3RlZC5lbWl0KHRoaXMud2FwcGluZ1NlcnZpY2UuYWN0aXZlKTtcclxuICAgIGlmICh0aGlzLndhcHBpbmdTZXJ2aWNlLmFjdGl2ZSlcclxuICAgICAgdGhpcy5zZXJ2aWNlU3RhdHVzID0gdGhpcy53YXBwaW5nU2VydmljZXNUcmFuc2xhdGlvbnMuYWN0aXZlZFNlcnZpY2UudG9VcHBlckNhc2UoKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5zZXJ2aWNlU3RhdHVzID0gdGhpcy53YXBwaW5nU2VydmljZXNUcmFuc2xhdGlvbnMuZGlzYWJsZWRTZXJ2aWNlLnRvVXBwZXJDYXNlKCk7XHJcblxyXG4gICAgdGhpcy5kaXNhYmxlZFRvZ2dsZSA9IGZhbHNlXHJcbiAgICB0aGlzLmdldFdhcHBpbmdTZXJ2aWNlKHRoaXMud2FwcGluZ1NlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgaGFzSHRtbCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gLzxcXC8/W2Etel1bXFxzXFxTXSo+L2kudGVzdCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICB0cmlnZ2VyUGFydGljaXBhdGUoKXtcclxuICAgIHRoaXMucGFydGljaXBhdGVEcmF3LmVtaXQoKVxyXG4gIH1cclxuXHJcbiAgc2V0SW1hZ2UoKXtcclxuICAgIGNvbnN0IHJlZjogRHluYW1pY0RpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKFdJbWFnZUNyb3BwZXJDb21wb25lbnQsIHtcclxuICAgICAgaGVhZGVyOiB0aGlzLmNyb3BwZWREaWFsb2dUcmFuc2xhdGlvbnM/Lm1vZGFsLmhlYWRlcixcclxuICAgICAgd2lkdGg6ICc3MHJlbScsXHJcbiAgICAgIGNvbnRlbnRTdHlsZToge1wib3ZlcmZsb3dcIjogXCJhdXRvXCIsIFwiaGVpZ2h0XCI6IFwiYXV0b1wiLCBcInBhZGRpbmctYm90dG9tXCI6IFwiOHB4XCJ9LFxyXG4gICAgICBkYXRhOiB7ZGF0YU1vZGFsOiB0aGlzLmNyb3BwZWRJbWFnZUNvbmZpZ3VyYXRpb24sIHRyYW5zbGF0aW9uczogdGhpcy5jcm9wcGVkRGlhbG9nVHJhbnNsYXRpb25zfSxcclxuICAgICAgcmVzaXphYmxlOiB0cnVlXHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgcmVmLm9uQ2xvc2Uuc3Vic2NyaWJlKChpbWFnZUNyb3BwZWQ6IFdGaWxlQjY0KSA9PiB7XHJcbiAgICAgIGlmKGltYWdlQ3JvcHBlZCl7XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0SW1hZ2UgPSBpbWFnZUNyb3BwZWQ7XHJcbiAgICAgICAgdGhpcy5pbWFnZXMucHVzaCh7cGF0aDogdGhpcy5kZWZhdWx0SW1hZ2UuZmlsZUJhc2U2NH0pO1xyXG4gICAgICAgIHRoaXMub25EZWZhdWx0SW1hZ2VFdmVudC5lbWl0KHRoaXMuZGVmYXVsdEltYWdlKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldEltYWdlKCl7XHJcbiAgICB0aGlzLmlzTm9JbWFnZSA9IGZhbHNlO1xyXG4gICAgaWYodGhpcy5pc0Rldk1vZGVBY3RpdmUgPT0gdHJ1ZSl7XHJcbiAgICAgIGlmKHRoaXMuZGVmYXVsdEltYWdlKXtcclxuICAgICAgICBpZih0aGlzLmlzV0ZpbGVJbWFnZSh0aGlzLmRlZmF1bHRJbWFnZSkpe1xyXG4gICAgICAgICAgcmV0dXJuIFt7IHBhdGg6ICh0aGlzLmRlZmF1bHRJbWFnZSBhcyBXRmlsZUI2NCkuZmlsZUJhc2U2NCB9XTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHJldHVybiBbeyBwYXRoOiB0aGlzLmRlZmF1bHRJbWFnZX1dO1xyXG4gICAgICAgIH1cclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5pc05vSW1hZ2UgPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiBbeyBwYXRoOiAnLi8uLi8uLi8uLi9hc3NldHMvd2FwcEljb25zL2ltYWdlLnN2ZycgfV07XHJcbiAgICAgIH1cclxuICAgIH1lbHNle1xyXG4gICAgICBpZih0aGlzLndhcHBpbmdTZXJ2aWNlSW1hZ2VzLmxlbmd0aCA+IDApe1xyXG4gICAgICAgIHJldHVybiB0aGlzLndhcHBpbmdTZXJ2aWNlSW1hZ2VzO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmlzTm9JbWFnZSA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIFt7IHBhdGg6ICcuLy4uLy4uLy4uL2Fzc2V0cy93YXBwSWNvbnMvaW1hZ2Uuc3ZnJyB9XTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNXRmlsZUltYWdlKG9iajogV0ZpbGVCNjQgfCBzdHJpbmcpe1xyXG4gICAgcmV0dXJuIChvYmogYXMgV0ZpbGVCNjQpLmJhc2U2NCAhPT0gdW5kZWZpbmVkO1xyXG4gIH1cclxufVxyXG4iLCI8d2FwcC1tYWluLXRpdGxlIFt0aXRsZV09XCJ3YXBwaW5nU2VydmljZS50aWxlM1wiICpuZ0lmPVwid2FwcGluZ1NlcnZpY2UgJiYgKCFmb3JjZU1vYmlsZSlcIiBmeEhpZGUueHM+PC93YXBwLW1haW4tdGl0bGU+XHJcbjxkaXYgY2xhc3M9XCJzZXJ2aWNlLWRldGFpbC1jZW50ZXJcIiAqbmdJZj1cIndhcHBpbmdTZXJ2aWNlXCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7J2ZvcmNlLW1vYmlsZSc6IGZvcmNlTW9iaWxlfVwiXHJcbiAgICAgICAgW2Z4TGF5b3V0XT1cImZvcmNlTW9iaWxlID8gJ2NvbHVtbicgOiAncm93J1wiXHJcbiAgICAgICAgW2Z4TGF5b3V0LnhzXT1cIidjb2x1bW4nXCJcclxuICAgICAgICBbZnhMYXlvdXQuc21dPVwiJ2NvbHVtbidcIj5cclxuICAgIDwhLS1zZXJ2aWNlIGltYWdlLS0+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnc2VydmljZS12aWV3LW5vLW1hcmdpbic6IGZvcmNlTW9iaWxlLCAnc2VydmljZS12aWV3JzogIWZvcmNlTW9iaWxlfVwiIGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgICAgICAgPCEtLXRpbGUgMS0tPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ3YXBwaW5nU2VydmljZS50aWxlMSAmJiB3YXBwaW5nU2VydmljZS50aWxlMSAhPSAnJ1wiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnc2VydmljZS1pbWFnZS10aWxlJyA6ICFoYXNIdG1sKHdhcHBpbmdTZXJ2aWNlLnRpbGUxKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3RlbXBsYXRlLXNlcnZpY2UtaW1hZ2UtdGlsZScgOiBoYXNIdG1sKHdhcHBpbmdTZXJ2aWNlLnRpbGUxKX1cIlxyXG4gICAgICAgICAgICBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiNXB4XCI+XHJcbiAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwieyd0aWxlLXZpZXctbm8taHRtbCc6ICFoYXNIdG1sKHdhcHBpbmdTZXJ2aWNlLnRpbGUxKX1cIiBjbGFzcz1cInNlcnZpY2Utdmlldy10aWxlMVwiIFxyXG4gICAgICAgICAgICAgICAgW2lubmVySHRtbF09XCJ3YXBwaW5nU2VydmljZS50aWxlMVwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS1zbGlkZXNob3ctLT5cclxuICAgICAgICA8d2FwcC1jYXJvdXNlbCBbaXNEZXZNb2RlQWN0aXZlXT1cImlzRGV2TW9kZUFjdGl2ZVwiIFtmb3JjZU1vYmlsZV09XCJmb3JjZU1vYmlsZVwiIFtpbWFnZXNdPVwid2FwcGluZ1NlcnZpY2VJbWFnZXNcIiBbaXNOb0ltYWdlXT1cImlzTm9JbWFnZVwiIChvblNldEltYWdlRXZlbnQpPVwic2V0SW1hZ2UoKVwiIFtvbkhvdmVySW1hZ2VUb29sdGlwXT1cIm9uSG92ZXJJbWFnZVRvb2x0aXBcIj48L3dhcHAtY2Fyb3VzZWw+XHJcbiAgICAgICAgPCEtLXRpbGUgMi0tPlxyXG4gICAgICAgIDxkaXYgZnhGbGV4IGZ4TGF5b3V0PVwicm93XCJcclxuICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxyXG4gICAgICAgICAgICBmeExheW91dEdhcD1cIjVweFwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnc2VydmljZS10aWxlLWJvcmRlci1ib3R0b20tcmFkaXVzJzogIXdhcHBpbmdTZXJ2aWNlLnRpbGU0LFxyXG4gICAgICAgICAgICAgICAgJ3RlbXBsYXRlLXNlcnZpY2UtdGlsZSc6IGhhc0h0bWwod2FwcGluZ1NlcnZpY2UudGlsZTIpLFxyXG4gICAgICAgICAgICAgICAgJ3NlcnZpY2UtdGlsZScgOiAhaGFzSHRtbCh3YXBwaW5nU2VydmljZS50aWxlMil9XCJcclxuICAgICAgICAgICAgW25nU3R5bGVdPVwiIWhhc0h0bWwod2FwcGluZ1NlcnZpY2UudGlsZTIpID8geyAnYmFja2dyb3VuZC1jb2xvcic6ICcjMGUwYzBjJywgJ2NvbG9yJzogJyNmZmYnIH0gOiB7J2JhY2tncm91bmQtY29sb3InOiAndHJhbnNwYXJlbnQgIWltcG9ydGFudCcsICdjb2xvcic6ICd0cmFuc3BhcmVudCAhaW1wb3J0YW50J31cIlxyXG4gICAgICAgICAgICAqbmdJZj1cIndhcHBpbmdTZXJ2aWNlLnRpbGUyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgW2lubmVySHRtbF09XCJ3YXBwaW5nU2VydmljZS50aWxlMlwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS1hY3RpdmF0ZSB0b2dnbGUtLT5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBjbGFzcz1cInNlcnZpY2Utc2VsZWN0LXRvZ2dsZVwiIGNvbG9yPVwiYWNjZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ3YXBwaW5nU2VydmljZS5hbGxvd1NlbGVjdCAmJiBhbGxvd1NlbGVjdFNlbmRHaWZ0Q2FyZCAmJiAhaXNEcmF3U2VydmljZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFRvZ2dsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwid2FwcGluZ1NlcnZpY2UuYWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RXYXBwaW5nU2VydmljZSgpXCI+e3sgc2VydmljZVN0YXR1cyB9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiAqbmdJZj1cImlzRHJhd1NlcnZpY2VcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzZXJ2aWNlLXNlbGVjdC10b2dnbGVcIlxyXG4gICAgICAgICAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5QYXJ0aWNpcGF0ZURyYXdcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRyaWdnZXJQYXJ0aWNpcGF0ZSgpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IHdhcHBpbmdTZXJ2aWNlc1RyYW5zbGF0aW9ucz8ucGFydGljaXBhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgXHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS1zZXJ2aWNlIGluZm8tLT5cclxuICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWluZm8tY29udGFpbmVyXCIgW25nQ2xhc3NdPVwieydzZXJ2aWNlLWluZm8tY29udGFpbmVyLXBhZGRpbmcnOiBmb3JjZU1vYmlsZX1cIiBmeExheW91dD1cImNvbHVtblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLXRpbGUtZGV0YWlsLWNvbnRhaW5lclwiIGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgICAgICAgPCEtLXRpbGUgMy0tPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhZm9yY2VNb2JpbGVcIlxyXG4gICAgICAgICAgICAgW2lubmVySHRtbF09XCJ3YXBwaW5nU2VydmljZS50aWxlM1wiIGZ4SGlkZSBmeFNob3cueHNcclxuICAgICAgICAgICAgIGNsYXNzPVwic2VydmljZS1uYW1lIG1hdC10aXRsZVwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJmb3JjZU1vYmlsZVwiXHJcbiAgICAgICAgICAgICBbaW5uZXJIdG1sXT1cIndhcHBpbmdTZXJ2aWNlLnRpbGUzXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwic2VydmljZS1uYW1lIG1hdC10aXRsZVwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS10aWxlRGV0YWlsIDEtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS10aWxlLWRldGFpbFwiIGZ4TGF5b3V0PVwicm93XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIFtpbm5lckh0bWxdPVwid2FwcGluZ1NlcnZpY2UudGlsZURldGFpbDFcIj48L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLWxpbmstLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1saW5rLWNvbnRhaW5lclwiICpuZ0lmPVwid2FwcGluZ1NlcnZpY2UudGl0bGVMaW5rVXJsICYmIHdhcHBpbmdTZXJ2aWNlLmxpbmtVcmxcIj5cclxuICAgICAgICA8YSBjbGFzcz1cInNlcnZpY2UtbGlua1wiIGhyZWY9XCJ7e3dhcHBpbmdTZXJ2aWNlLmxpbmtVcmx9fVwiIHRhcmdldD1cIl9ibGFua1wiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJzZXJ2aWNlLWxpbmstaWNvblwiIHN2Z0ljb249XCJzaGFyZV9zcXVhcmVcIj48L21hdC1pY29uPjxzcGFuPnt7d2FwcGluZ1NlcnZpY2UudGl0bGVMaW5rVXJsfX08L3NwYW4+XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
257
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidy1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2FwcC1jb21wb25lbnRzL3NyYy9saWIvbWF0ZXJpYWwvdy1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcvdy1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2FwcC1jb21wb25lbnRzL3NyYy9saWIvbWF0ZXJpYWwvdy1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcvdy1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBR3pHLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFzQixNQUFNLDhCQUE4QixDQUFDO0FBUTdGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDOzs7Ozs7Ozs7Ozs7O0FBTzlGLE1BQU0sT0FBTyw2QkFBNkI7SUErQnhDLElBQWEsY0FBYyxDQUFDLEtBQXFCO1FBQy9DLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUcsS0FBSztZQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBc0JELFlBQ1UsZUFBZ0MsRUFDaEMsWUFBMEIsRUFDMUIsYUFBNEI7UUFGNUIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBMUR0QyxtQkFBYyxHQUFZLEtBQUss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QUksQ0FBQyxvQkFBb0IsQ0FBQzthQUNsQztpQkFBSTtnQkFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDdEIsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLHVDQUF1QyxFQUFFLENBQUMsQ0FBQzthQUM1RDtTQUNGO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFzQjtRQUNqQyxPQUFRLEdBQWdCLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQztJQUNoRCxDQUFDOzsySEFwT1UsNkJBQTZCOytHQUE3Qiw2QkFBNkIsMnRCQ2xCMUMsa2dJQW9FTTs0RkRsRE8sNkJBQTZCO2tCQUx6QyxTQUFTOytCQUNFLHlCQUF5Qjs2SkFnQjFCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRWdDLDJCQUEyQjtzQkFBaEUsS0FBSzt1QkFBQyw2QkFBNkI7Z0JBV0oscUJBQXFCO3NCQUFwRCxLQUFLO3VCQUFDLHVCQUF1QjtnQkFDRixpQkFBaUI7c0JBQTVDLEtBQUs7dUJBQUMsbUJBQW1CO2dCQUNMLFVBQVU7c0JBQTlCLEtBQUs7dUJBQUMsWUFBWTtnQkFJTixjQUFjO3NCQUExQixLQUFLO2dCQVM0QixzQkFBc0I7c0JBQXZELE1BQU07dUJBQUMsd0JBQXdCO2dCQUNBLG9CQUFvQjtzQkFBbkQsTUFBTTt1QkFBQyxzQkFBc0I7Z0JBRXJCLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBUUcseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUVJLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBXYXBwaW5nU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9tb2RlbHMvd2FwcGluZy1zZXJ2aWNlJztcclxuaW1wb3J0IHsgV2FwcGluZ1NlcnZpY2VJbWFnZSB9IGZyb20gJy4uL3NoYXJlZC9tb2RlbHMvd2FwcGluZy1zZXJ2aWNlLWltYWdlJztcclxuaW1wb3J0IHsgQ2FyZFN0YXR1cywgU2VuZGluZ1N0YXR1cywgV2FwcGluZ1NlcnZpY2VUeXBlIH0gZnJvbSAnLi4vc2hhcmVkL21vZGVscy9lbnVtcy5tb2RlbCc7XHJcbmltcG9ydCB7IFdhcHBpbmdTZXJ2aWNlVHJhbnNsYXRpb25zIH0gZnJvbSAnLi4vc2hhcmVkL21vZGVscy93YXBwaW5nLXNlcnZpY2UtdHJhbnNsYXRpb25zLm1vZGVsJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IFdhcHBpbmdTZXJ2aWNlVGVtcGxhdGUgfSBmcm9tICcuLi9zaGFyZWQvbW9kZWxzL3dhcHBpbmctc2VydmljZS10ZW1wbGF0ZS5tb2RlbCc7XHJcbmltcG9ydCB7IE1hdEljb25SZWdpc3RyeSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlLCBEeW5hbWljRGlhbG9nUmVmIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcclxuaW1wb3J0IHsgV0ZpbGVCNjQgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL3ctZmlsZS1iNjQubW9kZWwnO1xyXG5pbXBvcnQgeyBXSW1hZ2VDcm9wcGVyRGF0YSB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvdy1pbWFnZS1jcm9wcGVyLWRhdGEubW9kZWwnO1xyXG5pbXBvcnQgeyBXSW1hZ2VDcm9wcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZmlsZS93LWltYWdlLWNyb3BwZXIvdy1pbWFnZS1jcm9wcGVyLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3ctbWF0ZXJpYWwtc2VydmljZS12aWV3JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdy1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3ctbWF0ZXJpYWwtc2VydmljZS12aWV3LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFdNYXRlcmlhbFNlcnZpY2VWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG5cclxuICBzZXJ2aWNlSWQhOiBudW1iZXI7XHJcbiAgd2FwcGluZ1NlcnZpY2VJbWFnZXMhOiBXYXBwaW5nU2VydmljZUltYWdlW107XHJcbiAgc2VydmljZVN0YXR1cyE6IHN0cmluZztcclxuICBpc1NlbmRHaWZ0Q2FyZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRpc2FibGVkVG9nZ2xlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYWxsb3dTZWxlY3RTZW5kR2lmdENhcmQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGVudW1TZW5kaW5nU3RhdHVzOiB0eXBlb2YgU2VuZGluZ1N0YXR1cyA9IFNlbmRpbmdTdGF0dXM7XHJcbiAgZWNhcmRTdGF0dXM6IHR5cGVvZiBDYXJkU3RhdHVzID0gQ2FyZFN0YXR1c1xyXG4gIHRyYW5zbGF0aW9uczogYW55O1xyXG4gIFxyXG4gIEBJbnB1dCgpIGZvcmNlTW9iaWxlID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgnd2FwcGluZ1NlcnZpY2VzVHJhbnNsYXRpb25zJykgd2FwcGluZ1NlcnZpY2VzVHJhbnNsYXRpb25zOiBXYXBwaW5nU2VydmljZVRyYW5zbGF0aW9ucyA9IHtcclxuICAgIGFjdGl2ZWRTZXJ2aWNlOiAnQWN0aXZhZGEnLFxyXG4gICAgZGlzYWJsZWRTZXJ2aWNlOiAnRGVzYWN0aXZhZGEnLFxyXG4gICAgc2NoZWR1bGVkTGFiZWw6ICdQcm9ncmFtYWRhIHBhcmEgZW52aWFyIGEge3tuYW1lfX0nLFxyXG4gICAgc2VuZExhYmVsOiAnRW52aWFkYSBhIHt7bmFtZX19JyxcclxuICAgIGNhcmRHZW5lcmF0ZWQ6ICdUdSB0YXJqZXRhIGVzdGFyw6EgZGlzcG9uaWJsZSBwYXJhIGVsIGVudsOtbyBlbiBicmV2ZXMgaW5zdGFudGVzJyxcclxuICAgIHJlY2VpdmVkTGFiZWw6IFwiRW52aWFkYSBwb3Ige3tuYW1lfX1cIixcclxuICAgIHNob3dNb3JlOiBcIk1vc3RyYXIgbcOhc1wiLFxyXG4gICAgYnV0dG9uU2VydmljZTogXCJQYXJ0aWNpcGFyXCJcclxuICB9O1xyXG4gIFxyXG4gIEBJbnB1dCgnZGlzYWJsZWRCdXR0b25TZXJ2aWNlJykgZGlzYWJsZWRCdXR0b25TZXJ2aWNlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCdzaG93QnV0dG9uU2VydmljZScpIHNob3dCdXR0b25TZXJ2aWNlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCdzaG93VG9nZ2xlJykgc2hvd1RvZ2dsZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIHByaXZhdGUgX3dhcHBpbmdTZXJ2aWNlITogV2FwcGluZ1NlcnZpY2U7XHJcblxyXG4gIEBJbnB1dCgpIHNldCB3YXBwaW5nU2VydmljZSh2YWx1ZTogV2FwcGluZ1NlcnZpY2UpIHtcclxuICAgIHRoaXMuX3dhcHBpbmdTZXJ2aWNlID0gdmFsdWU7XHJcbiAgICBpZih2YWx1ZSkgdGhpcy5nZXRXYXBwaW5nU2VydmljZSh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgd2FwcGluZ1NlcnZpY2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fd2FwcGluZ1NlcnZpY2U7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCd3YXBwaW5nU2VydmljZVNlbGVjdGVkJykgd2FwcGluZ1NlcnZpY2VTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBAT3V0cHV0KCd0cmlnZ2VyQnV0dG9uU2VydmljZScpIHRyaWdnZXJCdXR0b25TZXJ2aWNlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBASW5wdXQoKSBpc0Rldk1vZGVBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBkZWZhdWx0SW1hZ2UhOiBXRmlsZUI2NCB8IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgY3JvcHBlZEltYWdlQ29uZmlndXJhdGlvbjogV0ltYWdlQ3JvcHBlckRhdGEgPSB7XHJcbiAgICByb3VuZGVkQ3JvcHBlcjogZmFsc2UsIFxyXG4gICAgY29uZmlndXJlZEFzcGVjdFJhdGlvOiA0LzMsIFxyXG4gICAgdmlld1BvcnRIZWlodFB4OiA2MDAsIFxyXG4gICAgdmlld1BvcnRXaWR0aFB4OiA4MDAsIFxyXG4gICAgbWF4RmlsZVNpemU6IDIwMDBcclxuICB9O1xyXG4gIFxyXG4gIEBJbnB1dCgpIGNyb3BwZWREaWFsb2dUcmFuc2xhdGlvbnM6IGFueTtcclxuICBpbWFnZXM6IGFueVtdID0gW107XHJcbiAgQE91dHB1dCgpIG9uRGVmYXVsdEltYWdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFdGaWxlQjY0PigpO1xyXG4gIEBJbnB1dCgpIGlzTm9JbWFnZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG9uSG92ZXJJbWFnZVRvb2x0aXA6IHN0cmluZyA9ICdVcGxvYWQgaW1hZ2UnO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbWF0SWNvblJlZ2lzdHJ5OiBNYXRJY29uUmVnaXN0cnksXHJcbiAgICBwcml2YXRlIGRvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLCBcclxuICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSkge1xyXG4gICAgdGhpcy5tYXRJY29uUmVnaXN0cnkuYWRkU3ZnSWNvbihcImNhbGVuZGFyXCIsIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChcIi9hc3NldHMvd2FwcEljb25zL21hdC1jYWxlbmRhci5zdmdcIikpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZihjaGFuZ2VzWydkZWZhdWx0SW1hZ2UnXSAmJiBjaGFuZ2VzWydkZWZhdWx0SW1hZ2UnXS5jdXJyZW50VmFsdWUpe1xyXG4gICAgICB0aGlzLmRlZmF1bHRJbWFnZSA9IGNoYW5nZXNbJ2RlZmF1bHRJbWFnZSddLmN1cnJlbnRWYWx1ZTtcclxuXHJcbiAgICAgIHRoaXMuaXNOb0ltYWdlID0gZmFsc2U7XHJcbiAgICAgIGlmKHRoaXMuaXNEZXZNb2RlQWN0aXZlID09IHRydWUpe1xyXG4gICAgICAgIGlmKHRoaXMuZGVmYXVsdEltYWdlKXtcclxuICAgICAgICAgIGlmKHRoaXMuaXNXRmlsZUltYWdlKHRoaXMuZGVmYXVsdEltYWdlKSl7XHJcbiAgICAgICAgICAgIHRoaXMud2FwcGluZ1NlcnZpY2VJbWFnZXMgPSBbeyBwYXRoOiAodGhpcy5kZWZhdWx0SW1hZ2UgYXMgV0ZpbGVCNjQpLmZpbGVCYXNlNjQgfV07XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZUltYWdlcyA9IFt7IHBhdGg6ICh0aGlzLmRlZmF1bHRJbWFnZSBhcyBzdHJpbmcpfV07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYoY2hhbmdlc1snZGVmYXVsdEltYWdlJ10gJiYgIWNoYW5nZXNbJ2RlZmF1bHRJbWFnZSddLmN1cnJlbnRWYWx1ZSl7XHJcbiAgICAgIGlmKHRoaXMuaXNEZXZNb2RlQWN0aXZlKXtcclxuICAgICAgICB0aGlzLmlzTm9JbWFnZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZUltYWdlcyA9IFt7IHBhdGg6ICcuLy4uLy4uLy4uL2Fzc2V0cy93YXBwSWNvbnMvaW1hZ2Uuc3ZnJyB9XVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRXYXBwaW5nU2VydmljZSh3YXBwU2VydmljZTogV2FwcGluZ1NlcnZpY2UpIHtcclxuICAgIHRoaXMuaXNTZW5kR2lmdENhcmQgPSBmYWxzZVxyXG4gICAgaWYgKHdhcHBTZXJ2aWNlLmFjdGl2ZSlcclxuICAgICAgdGhpcy5zZXJ2aWNlU3RhdHVzID0gdGhpcy53YXBwaW5nU2VydmljZXNUcmFuc2xhdGlvbnMuYWN0aXZlZFNlcnZpY2UudG9VcHBlckNhc2UoKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5zZXJ2aWNlU3RhdHVzID0gdGhpcy53YXBwaW5nU2VydmljZXNUcmFuc2xhdGlvbnMuZGlzYWJsZWRTZXJ2aWNlLnRvVXBwZXJDYXNlKCk7XHJcbiAgICBpZiAod2FwcFNlcnZpY2UuZGF0YVJlcVRvU2VuZENhcmQgJiYgd2FwcFNlcnZpY2UuZGF0YVJlcVRvU2VuZENhcmQuZGF0YVJlcVRvU2VuZENhcmRJZCAhPSAwKSB7XHJcbiAgICAgIHRoaXMuaXNTZW5kR2lmdENhcmQgPSB0cnVlXHJcbiAgICAgIGlmICh3YXBwU2VydmljZS5lbnVtVHlwZVN0YXR1c0VDYXJkSUQgPT0gdGhpcy5lY2FyZFN0YXR1cy5zZW50KSB7XHJcbiAgICAgICAgdGhpcy5hbGxvd1NlbGVjdFNlbmRHaWZ0Q2FyZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAod2FwcFNlcnZpY2UuZW51bVR5cGVTdGF0dXNFQ2FyZElEID09IHRoaXMuZWNhcmRTdGF0dXMuZ2VuZXJhdGVkKVxyXG4gICAgICB0aGlzLmFsbG93U2VsZWN0U2VuZEdpZnRDYXJkID0gZmFsc2U7XHJcblxyXG5cclxuICAgIHRoaXMuZ2V0V2FwcGluZ1NlcnZpY2VUaWxlcyh0aGlzLndhcHBpbmdTZXJ2aWNlKTtcclxuXHJcbiAgICBpZih0aGlzLmlzRGV2TW9kZUFjdGl2ZSA9PSBmYWxzZSl7XHJcbiAgICAgIHRoaXMuZ2V0V2FwcGluZ1NlcnZpY2VJbWFnZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFdhcHBpbmdTZXJ2aWNlVGlsZXMoc2VydmljZTogV2FwcGluZ1NlcnZpY2UpIHtcclxuICAgIGlmIChzZXJ2aWNlLndhcHBpbmdTZXJ2aWNlVGVtcGxhdGVzICE9IG51bGwpIHtcclxuICAgICAgc2VydmljZS53YXBwaW5nU2VydmljZVRlbXBsYXRlcy5mb3JFYWNoKCh3YXBwaW5nU2VydmljZVRpbGU6IFdhcHBpbmdTZXJ2aWNlVGVtcGxhdGUpID0+IHtcclxuICAgICAgICBpZih3YXBwaW5nU2VydmljZVRpbGUuZGV0YWlsVGl0bGUpe1xyXG4gICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS50aWxlMyA9IHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHdhcHBpbmdTZXJ2aWNlVGlsZS5kZXRhaWxUaXRsZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMud2FwcGluZ1NlcnZpY2UudGlsZTMgPSAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYod2FwcGluZ1NlcnZpY2VUaWxlLmRldGFpbEhlYWRlcil7XHJcbiAgICAgICAgICB0aGlzLndhcHBpbmdTZXJ2aWNlLnRpbGUxID0gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwod2FwcGluZ1NlcnZpY2VUaWxlLmRldGFpbEhlYWRlcik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMud2FwcGluZ1NlcnZpY2UudGlsZTEgPSAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYod2FwcGluZ1NlcnZpY2VUaWxlLmRldGFpbEZvb3Qpe1xyXG4gICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS50aWxlMiA9IHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHdhcHBpbmdTZXJ2aWNlVGlsZS5kZXRhaWxGb290KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS50aWxlMiA9ICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZih3YXBwaW5nU2VydmljZVRpbGUuZGV0YWlsQm9keSl7XHJcbiAgICAgICAgICB0aGlzLndhcHBpbmdTZXJ2aWNlLnRpbGVEZXRhaWwxID0gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwod2FwcGluZ1NlcnZpY2VUaWxlLmRldGFpbEJvZHkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLndhcHBpbmdTZXJ2aWNlLnRpbGVEZXRhaWwxID0gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFdhcHBpbmdTZXJ2aWNlSW1hZ2VzKCkge1xyXG4gICAgdGhpcy53YXBwaW5nU2VydmljZUltYWdlcyA9IHRoaXMud2FwcGluZ1NlcnZpY2Uud2FwcGluZ1NlcnZpY2VJbWFnZXM7XHJcblxyXG4gICAgaWYgKHRoaXMud2FwcGluZ1NlcnZpY2VJbWFnZXMubGVuZ3RoID09IDApIHtcclxuICAgICAgbGV0IHdhcHBpbmdTZXJ2aWNlSW1hZ2U6IFdhcHBpbmdTZXJ2aWNlSW1hZ2UgPSB7XHJcbiAgICAgICAgcGF0aDogdGhpcy53YXBwaW5nU2VydmljZS5pbWFnZVVybCEsXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMud2FwcGluZ1NlcnZpY2VJbWFnZXMudW5zaGlmdCh3YXBwaW5nU2VydmljZUltYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBUbyBEbyBpbXBsZW1lbnRhciBzbGlkZXNob3dcclxuICAgIFxyXG4gICAgLy8gaWYgKHRoaXMud2FwcGluZ1NlcnZpY2VJbWFnZXMubGVuZ3RoID4gMSkge1xyXG4gICAgLy8gICB0aGlzLnNob3dTbGlkZXNob3dBcnJvd3MgPSB0cnVlO1xyXG4gICAgLy8gICB0aGlzLnNob3dTbGlkZXNob3dEb3RzID0gdHJ1ZTtcclxuICAgIC8vIH1cclxuXHJcbiAgICAvLyBpZiAoIXRoaXMuaXNEZXNrdG9wKVxyXG4gICAgLy8gICB0aGlzLnNob3dTbGlkZXNob3dBcnJvd3MgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFdhcHBpbmdTZXJ2aWNlKCkge1xyXG4gICAgdGhpcy5kaXNhYmxlZFRvZ2dsZSA9IHRydWU7XHJcbiAgICB0aGlzLndhcHBpbmdTZXJ2aWNlU2VsZWN0ZWQuZW1pdCh0aGlzLndhcHBpbmdTZXJ2aWNlLmFjdGl2ZSk7XHJcbiAgICBpZiAodGhpcy53YXBwaW5nU2VydmljZS5hY3RpdmUpXHJcbiAgICAgIHRoaXMuc2VydmljZVN0YXR1cyA9IHRoaXMud2FwcGluZ1NlcnZpY2VzVHJhbnNsYXRpb25zLmFjdGl2ZWRTZXJ2aWNlLnRvVXBwZXJDYXNlKCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuc2VydmljZVN0YXR1cyA9IHRoaXMud2FwcGluZ1NlcnZpY2VzVHJhbnNsYXRpb25zLmRpc2FibGVkU2VydmljZS50b1VwcGVyQ2FzZSgpO1xyXG5cclxuICAgIHRoaXMuZGlzYWJsZWRUb2dnbGUgPSBmYWxzZVxyXG4gICAgdGhpcy5nZXRXYXBwaW5nU2VydmljZSh0aGlzLndhcHBpbmdTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIGhhc0h0bWwodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIC88XFwvP1thLXpdW1xcc1xcU10qPi9pLnRlc3QodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJlc3NCdXR0b25TZXJ2aWNlKCl7XHJcbiAgICB0aGlzLnRyaWdnZXJCdXR0b25TZXJ2aWNlLmVtaXQoKVxyXG4gIH1cclxuXHJcbiAgc2V0SW1hZ2UoKXtcclxuICAgIGNvbnN0IHJlZjogRHluYW1pY0RpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKFdJbWFnZUNyb3BwZXJDb21wb25lbnQsIHtcclxuICAgICAgaGVhZGVyOiB0aGlzLmNyb3BwZWREaWFsb2dUcmFuc2xhdGlvbnM/Lm1vZGFsLmhlYWRlcixcclxuICAgICAgd2lkdGg6ICc3MHJlbScsXHJcbiAgICAgIGNvbnRlbnRTdHlsZToge1wib3ZlcmZsb3dcIjogXCJhdXRvXCIsIFwiaGVpZ2h0XCI6IFwiYXV0b1wiLCBcInBhZGRpbmctYm90dG9tXCI6IFwiOHB4XCJ9LFxyXG4gICAgICBkYXRhOiB7ZGF0YU1vZGFsOiB0aGlzLmNyb3BwZWRJbWFnZUNvbmZpZ3VyYXRpb24sIHRyYW5zbGF0aW9uczogdGhpcy5jcm9wcGVkRGlhbG9nVHJhbnNsYXRpb25zfSxcclxuICAgICAgcmVzaXphYmxlOiB0cnVlXHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgcmVmLm9uQ2xvc2Uuc3Vic2NyaWJlKChpbWFnZUNyb3BwZWQ6IFdGaWxlQjY0KSA9PiB7XHJcbiAgICAgIGlmKGltYWdlQ3JvcHBlZCl7XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0SW1hZ2UgPSBpbWFnZUNyb3BwZWQ7XHJcbiAgICAgICAgdGhpcy5pbWFnZXMucHVzaCh7cGF0aDogdGhpcy5kZWZhdWx0SW1hZ2UuZmlsZUJhc2U2NH0pO1xyXG4gICAgICAgIHRoaXMub25EZWZhdWx0SW1hZ2VFdmVudC5lbWl0KHRoaXMuZGVmYXVsdEltYWdlKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldEltYWdlKCl7XHJcbiAgICB0aGlzLmlzTm9JbWFnZSA9IGZhbHNlO1xyXG4gICAgaWYodGhpcy5pc0Rldk1vZGVBY3RpdmUgPT0gdHJ1ZSl7XHJcbiAgICAgIGlmKHRoaXMuZGVmYXVsdEltYWdlKXtcclxuICAgICAgICBpZih0aGlzLmlzV0ZpbGVJbWFnZSh0aGlzLmRlZmF1bHRJbWFnZSkpe1xyXG4gICAgICAgICAgcmV0dXJuIFt7IHBhdGg6ICh0aGlzLmRlZmF1bHRJbWFnZSBhcyBXRmlsZUI2NCkuZmlsZUJhc2U2NCB9XTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHJldHVybiBbeyBwYXRoOiB0aGlzLmRlZmF1bHRJbWFnZX1dO1xyXG4gICAgICAgIH1cclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5pc05vSW1hZ2UgPSB0cnVlO1xyXG4gICAgICAgIHJldHVybiBbeyBwYXRoOiAnLi8uLi8uLi8uLi9hc3NldHMvd2FwcEljb25zL2ltYWdlLnN2ZycgfV07XHJcbiAgICAgIH1cclxuICAgIH1lbHNle1xyXG4gICAgICBpZih0aGlzLndhcHBpbmdTZXJ2aWNlSW1hZ2VzLmxlbmd0aCA+IDApe1xyXG4gICAgICAgIHJldHVybiB0aGlzLndhcHBpbmdTZXJ2aWNlSW1hZ2VzO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmlzTm9JbWFnZSA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuIFt7IHBhdGg6ICcuLy4uLy4uLy4uL2Fzc2V0cy93YXBwSWNvbnMvaW1hZ2Uuc3ZnJyB9XTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNXRmlsZUltYWdlKG9iajogV0ZpbGVCNjQgfCBzdHJpbmcpe1xyXG4gICAgcmV0dXJuIChvYmogYXMgV0ZpbGVCNjQpLmJhc2U2NCAhPT0gdW5kZWZpbmVkO1xyXG4gIH1cclxufVxyXG4iLCI8d2FwcC1tYWluLXRpdGxlIFt0aXRsZV09XCJ3YXBwaW5nU2VydmljZS50aWxlM1wiICpuZ0lmPVwid2FwcGluZ1NlcnZpY2UgJiYgKCFmb3JjZU1vYmlsZSlcIiBmeEhpZGUueHM+PC93YXBwLW1haW4tdGl0bGU+XHJcbjxkaXYgY2xhc3M9XCJzZXJ2aWNlLWRldGFpbC1jZW50ZXJcIiAqbmdJZj1cIndhcHBpbmdTZXJ2aWNlXCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7J2ZvcmNlLW1vYmlsZSc6IGZvcmNlTW9iaWxlfVwiXHJcbiAgICAgICAgW2Z4TGF5b3V0XT1cImZvcmNlTW9iaWxlID8gJ2NvbHVtbicgOiAncm93J1wiXHJcbiAgICAgICAgW2Z4TGF5b3V0LnhzXT1cIidjb2x1bW4nXCJcclxuICAgICAgICBbZnhMYXlvdXQuc21dPVwiJ2NvbHVtbidcIj5cclxuICAgIDwhLS1zZXJ2aWNlIGltYWdlLS0+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnc2VydmljZS12aWV3LW5vLW1hcmdpbic6IGZvcmNlTW9iaWxlLCAnc2VydmljZS12aWV3JzogIWZvcmNlTW9iaWxlfVwiIGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgICAgICAgPCEtLXRpbGUgMS0tPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ3YXBwaW5nU2VydmljZS50aWxlMSAmJiB3YXBwaW5nU2VydmljZS50aWxlMSAhPSAnJ1wiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnc2VydmljZS1pbWFnZS10aWxlJyA6ICFoYXNIdG1sKHdhcHBpbmdTZXJ2aWNlLnRpbGUxKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3RlbXBsYXRlLXNlcnZpY2UtaW1hZ2UtdGlsZScgOiBoYXNIdG1sKHdhcHBpbmdTZXJ2aWNlLnRpbGUxKX1cIlxyXG4gICAgICAgICAgICBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiNXB4XCI+XHJcbiAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwieyd0aWxlLXZpZXctbm8taHRtbCc6ICFoYXNIdG1sKHdhcHBpbmdTZXJ2aWNlLnRpbGUxKX1cIiBjbGFzcz1cInNlcnZpY2Utdmlldy10aWxlMVwiIFxyXG4gICAgICAgICAgICAgICAgW2lubmVySHRtbF09XCJ3YXBwaW5nU2VydmljZS50aWxlMVwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS1zbGlkZXNob3ctLT5cclxuICAgICAgICA8d2FwcC1jYXJvdXNlbCBbaXNEZXZNb2RlQWN0aXZlXT1cImlzRGV2TW9kZUFjdGl2ZVwiIFtmb3JjZU1vYmlsZV09XCJmb3JjZU1vYmlsZVwiIFtpbWFnZXNdPVwid2FwcGluZ1NlcnZpY2VJbWFnZXNcIiBbaXNOb0ltYWdlXT1cImlzTm9JbWFnZVwiIChvblNldEltYWdlRXZlbnQpPVwic2V0SW1hZ2UoKVwiIFtvbkhvdmVySW1hZ2VUb29sdGlwXT1cIm9uSG92ZXJJbWFnZVRvb2x0aXBcIj48L3dhcHAtY2Fyb3VzZWw+XHJcbiAgICAgICAgPCEtLXRpbGUgMi0tPlxyXG4gICAgICAgIDxkaXYgZnhGbGV4IGZ4TGF5b3V0PVwicm93XCJcclxuICAgICAgICAgICAgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIlxyXG4gICAgICAgICAgICBmeExheW91dEdhcD1cIjVweFwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnc2VydmljZS10aWxlLWJvcmRlci1ib3R0b20tcmFkaXVzJzogIXdhcHBpbmdTZXJ2aWNlLnRpbGU0LFxyXG4gICAgICAgICAgICAgICAgJ3RlbXBsYXRlLXNlcnZpY2UtdGlsZSc6IGhhc0h0bWwod2FwcGluZ1NlcnZpY2UudGlsZTIpLFxyXG4gICAgICAgICAgICAgICAgJ3NlcnZpY2UtdGlsZScgOiAhaGFzSHRtbCh3YXBwaW5nU2VydmljZS50aWxlMil9XCJcclxuICAgICAgICAgICAgW25nU3R5bGVdPVwiIWhhc0h0bWwod2FwcGluZ1NlcnZpY2UudGlsZTIpID8geyAnYmFja2dyb3VuZC1jb2xvcic6ICcjMGUwYzBjJywgJ2NvbG9yJzogJyNmZmYnIH0gOiB7J2JhY2tncm91bmQtY29sb3InOiAndHJhbnNwYXJlbnQgIWltcG9ydGFudCcsICdjb2xvcic6ICd0cmFuc3BhcmVudCAhaW1wb3J0YW50J31cIlxyXG4gICAgICAgICAgICAqbmdJZj1cIndhcHBpbmdTZXJ2aWNlLnRpbGUyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgW2lubmVySHRtbF09XCJ3YXBwaW5nU2VydmljZS50aWxlMlwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS1hY3RpdmF0ZSB0b2dnbGUtLT5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBjbGFzcz1cInNlcnZpY2Utc2VsZWN0LXRvZ2dsZVwiIGNvbG9yPVwiYWNjZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ3YXBwaW5nU2VydmljZS5hbGxvd1NlbGVjdCAmJiBhbGxvd1NlbGVjdFNlbmRHaWZ0Q2FyZCAmJiAhc2hvd0J1dHRvblNlcnZpY2UgJiYgc2hvd1RvZ2dsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFRvZ2dsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwid2FwcGluZ1NlcnZpY2UuYWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RXYXBwaW5nU2VydmljZSgpXCI+e3sgc2VydmljZVN0YXR1cyB9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiAqbmdJZj1cInNob3dCdXR0b25TZXJ2aWNlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2VydmljZS1zZWxlY3QtdG9nZ2xlXCJcclxuICAgICAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZEJ1dHRvblNlcnZpY2VcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInByZXNzQnV0dG9uU2VydmljZSgpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IHdhcHBpbmdTZXJ2aWNlc1RyYW5zbGF0aW9ucz8uYnV0dG9uU2VydmljZSB9fTwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICBcclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLXNlcnZpY2UgaW5mby0tPlxyXG4gICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtaW5mby1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7J3NlcnZpY2UtaW5mby1jb250YWluZXItcGFkZGluZyc6IGZvcmNlTW9iaWxlfVwiIGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtdGlsZS1kZXRhaWwtY29udGFpbmVyXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIj5cclxuICAgICAgICA8IS0tdGlsZSAzLS0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFmb3JjZU1vYmlsZVwiXHJcbiAgICAgICAgICAgICBbaW5uZXJIdG1sXT1cIndhcHBpbmdTZXJ2aWNlLnRpbGUzXCIgZnhIaWRlIGZ4U2hvdy54c1xyXG4gICAgICAgICAgICAgY2xhc3M9XCJzZXJ2aWNlLW5hbWUgbWF0LXRpdGxlXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImZvcmNlTW9iaWxlXCJcclxuICAgICAgICAgICAgIFtpbm5lckh0bWxdPVwid2FwcGluZ1NlcnZpY2UudGlsZTNcIlxyXG4gICAgICAgICAgICAgY2xhc3M9XCJzZXJ2aWNlLW5hbWUgbWF0LXRpdGxlXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLXRpbGVEZXRhaWwgMS0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLXRpbGUtZGV0YWlsXCIgZnhMYXlvdXQ9XCJyb3dcIj5cclxuICAgICAgICAgICAgPHNwYW4gW2lubmVySHRtbF09XCJ3YXBwaW5nU2VydmljZS50aWxlRGV0YWlsMVwiPjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tbGluay0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWxpbmstY29udGFpbmVyXCIgKm5nSWY9XCJ3YXBwaW5nU2VydmljZS50aXRsZUxpbmtVcmwgJiYgd2FwcGluZ1NlcnZpY2UubGlua1VybFwiPlxyXG4gICAgICAgIDxhIGNsYXNzPVwic2VydmljZS1saW5rXCIgaHJlZj1cInt7d2FwcGluZ1NlcnZpY2UubGlua1VybH19XCIgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInNlcnZpY2UtbGluay1pY29uXCIgc3ZnSWNvbj1cInNoYXJlX3NxdWFyZVwiPjwvbWF0LWljb24+PHNwYW4+e3t3YXBwaW5nU2VydmljZS50aXRsZUxpbmtVcmx9fTwvc3Bhbj5cclxuICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|