tango-app-ui-analyse-traffic 3.4.0-beta.91 → 3.4.0-beta.92
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.
|
@@ -3,6 +3,9 @@ import { Subject, takeUntil } from "rxjs";
|
|
|
3
3
|
import { debounceTime } from 'rxjs/operators';
|
|
4
4
|
import { ImageDocViewComponent } from '../image-doc-view/image-doc-view.component';
|
|
5
5
|
import dayjs from 'dayjs';
|
|
6
|
+
import 'dayjs/locale/en';
|
|
7
|
+
import utc from 'dayjs/plugin/utc';
|
|
8
|
+
import timezone from 'dayjs/plugin/timezone';
|
|
6
9
|
import { FormControl, Validators } from '@angular/forms';
|
|
7
10
|
import { DuplicateComponent } from '../duplicate/duplicate.component';
|
|
8
11
|
import * as i0 from "@angular/core";
|
|
@@ -14,6 +17,8 @@ import * as i5 from "tango-app-ui-shared";
|
|
|
14
17
|
import * as i6 from "@angular/common";
|
|
15
18
|
import * as i7 from "@angular-magic/ngx-gp-autocomplete";
|
|
16
19
|
import * as i8 from "../reactive-select/reactive-select.component";
|
|
20
|
+
dayjs.extend(utc);
|
|
21
|
+
dayjs.extend(timezone);
|
|
17
22
|
export class ImageDocComponent {
|
|
18
23
|
service;
|
|
19
24
|
gs;
|
|
@@ -393,6 +398,8 @@ export class ImageDocComponent {
|
|
|
393
398
|
}
|
|
394
399
|
else if (!res || res?.code === 204) {
|
|
395
400
|
this.selectControl.setValue("footfall");
|
|
401
|
+
this.nonShoperType = '';
|
|
402
|
+
this.description = '';
|
|
396
403
|
this.tagggedData = [];
|
|
397
404
|
}
|
|
398
405
|
}, error: (err) => {
|
|
@@ -570,7 +577,8 @@ export class ImageDocComponent {
|
|
|
570
577
|
}
|
|
571
578
|
decrementAge() {
|
|
572
579
|
const currentAge = this.userForm.get('age')?.value || 0;
|
|
573
|
-
|
|
580
|
+
console.log(currentAge);
|
|
581
|
+
if (currentAge > 1) {
|
|
574
582
|
this.userForm.get('age')?.setValue(currentAge - 1);
|
|
575
583
|
}
|
|
576
584
|
}
|
|
@@ -705,13 +713,13 @@ export class ImageDocComponent {
|
|
|
705
713
|
return !!(control && control.invalid && (control.touched || this.submitted));
|
|
706
714
|
}
|
|
707
715
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImageDocComponent, deps: [{ token: i1.TrafficService }, { token: i2.GlobalStateService }, { token: i0.ChangeDetectorRef }, { token: i3.NgbModal }, { token: i4.FormBuilder }, { token: i5.ToastService }], target: i0.ɵɵFactoryTarget.Component });
|
|
708
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ImageDocComponent, selector: "lib-image-doc", viewQueries: [{ propertyName: "placesRef", first: true, predicate: ["ngxPlaces"], descendants: true }], ngImport: i0, template: "<div class=\"card mt-3\">\r\n <div class=\"card-header mt-3 px-0 border-bottom-0\">\r\n <div class=\"custom-accordion\">\r\n <div class=\"custom-accordion-item\">\r\n <button class=\"mainheading pb-0 custom-accordion-header\" (click)=\"toggleAccordion()\">\r\n <div class=\"header-row\">\r\n <span class=\"img-direc\">Image Directory</span>\r\n <span class=\"divider\"></span>\r\n <span class=\"accordion-arrow\">\r\n <!-- Down arrow for collapsed state, up arrow for expanded state -->\r\n <svg *ngIf=\"!isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\" viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 1L5 5L9 1\" stroke=\"#071437\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg *ngIf=\"isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\" viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 5L5 1L9 5\" stroke=\"#1b84ff\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n </div>\r\n </button>\r\n </div>\r\n </div>\r\n \r\n \r\n </div>\r\n <section *ngIf=\"isAccordionExpanded\">\r\n <div class=\"col-md-12 px-5\" *ngIf=\"!hideDoc\">\r\n <div class=\"switch-form-card\">\r\n <div class=\"d-flex align-items-center\">\r\n <svg width=\"46\" height=\"46\" viewBox=\"0 0 46 46\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" fill=\"#DAF1FF\" />\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" stroke=\"#EAF8FF\" stroke-width=\"6\" />\r\n <path d=\"M23.8333 14.6666L15.5 24.6666H23L22.1667 31.3333L30.5 21.3333H23L23.8333 14.6666Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <div class=\"txt-one ms-2\">\r\n <ng-container>Examine individual footfall in gallery view with optimal sample images for detailed analysis.</ng-container>\r\n <!-- <ng-container *ngIf=\"isMultiple\">Upload multiple stores for configuration</ng-container> -->\r\n </div>\r\n </div>\r\n <div class=\"cursor-pointer\" (click)=\"closeData()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M18.295 7.115C18.6844 6.72564 18.6844 6.09436 18.295 5.705C17.9056 5.31564 17.2744 5.31564 16.885 5.705L12 10.59L7.115 5.705C6.72564 5.31564 6.09436 5.31564 5.705 5.705C5.31564 6.09436 5.31564 6.72564 5.705 7.115L10.59 12L5.705 16.885C5.31564 17.2744 5.31564 17.9056 5.705 18.295C6.09436 18.6844 6.72564 18.6844 7.115 18.295L12 13.41L16.885 18.295C17.2744 18.6844 17.9056 18.6844 18.295 18.295C18.6844 17.9056 18.6844 17.2744 18.295 16.885L13.41 12L18.295 7.115Z\"\r\n fill=\"black\" />\r\n </svg>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <div *ngIf=\"folderView\" class=\"card-body px-0\">\r\n <div class=\"scroll-container\">\r\n <div class=\"row\">\r\n <div class=\"col-md-1 mt-5 text-center\" *ngFor=\"let obj of dateArray;let i = index\">\r\n <div (click)=\"getimages(i,obj)\">\r\n <div *ngIf=\"i === selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.154297\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#33B5FF\" />\r\n <path\r\n d=\"M39.8216 36.1667C39.8216 36.7855 39.5758 37.379 39.1382 37.8166C38.7006 38.2542 38.1071 38.5 37.4883 38.5H18.8216C18.2028 38.5 17.6093 38.2542 17.1717 37.8166C16.7341 37.379 16.4883 36.7855 16.4883 36.1667V19.8333C16.4883 19.2145 16.7341 18.621 17.1717 18.1834C17.6093 17.7458 18.2028 17.5 18.8216 17.5H24.6549L26.9883 21H37.4883C38.1071 21 38.7006 21.2458 39.1382 21.6834C39.5758 22.121 39.8216 22.7145 39.8216 23.3333V36.1667Z\"\r\n stroke=\"white\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n <div *ngIf=\"i !== selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.462891\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#EAF8FF\" />\r\n <path\r\n d=\"M40.1302 36.1667C40.1302 36.7855 39.8844 37.379 39.4468 37.8166C39.0092 38.2542 38.4157 38.5 37.7969 38.5H19.1302C18.5114 38.5 17.9179 38.2542 17.4803 37.8166C17.0427 37.379 16.7969 36.7855 16.7969 36.1667V19.8333C16.7969 19.2145 17.0427 18.621 17.4803 18.1834C17.9179 17.7458 18.5114 17.5 19.1302 17.5H24.9635L27.2969 21H37.7969C38.4157 21 39.0092 21.2458 39.4468 21.6834C39.8844 22.121 40.1302 22.7145 40.1302 23.3333V36.1667Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n \r\n </div>\r\n <div *ngIf=\"!folderView\" class=\"card-body\">\r\n <section *ngIf=\"!imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-between align-items-center px-0\">\r\n <span *ngIf=\"backnav\" class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"img-direc ms-2\">{{folderDate | date:'dd MMM, yyyy'}}</span>\r\n <div *ngIf=\"!normalize\" class=\"ms-auto text-end\">\r\n <form [formGroup]=\"form\">\r\n <lib-reactive-select \r\n [formControl]=\"selectControl\" \r\n [idField]=\"'value'\"\r\n [nameField]=\"'label'\"\r\n [data]=\"datasets\"\r\n class=\"w-100 text-start\"\r\n (valueChange)=\"onValueChange($event)\">\r\n </lib-reactive-select>\r\n </form>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-2 mb-2 w-100 overflow-x px-0\">\r\n <ng-container *ngIf=\"this.headerData?.client !=='459'\">\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray\">\r\n <ul *ngIf=\"lengthValue\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"this.headerData?.client ==='459'\">\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray.slice(0, -1)\">\r\n <ul *ngIf=\"lengthValue\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"loading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"noData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div *ngIf=\"normalize\" class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata1\" src=\"./assets/tango/Icons/not-applicable.svg\" alt=\"\">\r\n <div class=\"nodata-title mt-3\">Data Not Found</div>\r\n <div class=\"nodata-sub\">Normalized data is not applicable</div>\r\n </div>\r\n <div *ngIf=\"!normalize\" class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this image directory</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row px-0 img-traffic contain high-400px scroll-y\" *ngIf=\"!noData && !loading\">\r\n <div class=\"col-md-3 border-gray mx-2 p-2 mt-5\" *ngFor=\"let obj of imagesArrayData\">\r\n <img *ngIf=\"obj.images.entryTimeImage\" class=\"img-src cursor-pointer\" [src]=\"obj.images.entryTimeImage\" (error)=\"obj?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageView(obj,objData.footfallDate)\">\r\n <div *ngIf=\"!obj.images.entryTimeImage\" class=\"no-preview\">\r\n <span class=\"mb-5\" >\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n\r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n <div class=\"row px-2 mb-2\">\r\n <div class=\"col-md-8\">\r\n <div class=\"py-2 img-doc-directory\"><span class=\"badge badge-light-info\">{{obj.tempId}}</span> \r\n <!-- <span *ngIf=\"selectControl.value ==='missedOpportunity'\" class=\"badge badge-light-success ms-2\">Missed Opportunity</span>\r\n <span *ngIf=\"selectControl.value ==='bounced'\" class=\"badge badge-light-success ms-2\">Bounced Footfall</span> -->\r\n <span *ngIf=\"obj?.revopsType || selectControl.value as value\"\r\n class=\"badge ms-2\"\r\n [ngClass]=\"{\r\n 'badge-light-success': value === 'footfall' || value === 'purchaser',\r\n 'badge-light-warning': value === 'nonShopper',\r\n 'badge-light-danger': value === 'bounced' || value === 'engager' || value === 'missedOpportunity' || value === 'conversion',\r\n 'badge-light-primary': !value\r\n }\">\r\n {{\r\n value === 'purchaser' ? 'Purchaser' :\r\n value === 'nonShopper' ? 'Non Shopper' :\r\n value === 'missedOpportunity' ? 'Missed Opportunity' :\r\n (value | titlecase)\r\n }}\r\n </span>\r\n </div>\r\n <div class=\"py-2 img-doc-time\">Entry Time</div>\r\n <div *ngIf=\"clientData?.trackerFF\" class=\"py-2 img-doc-time\">Exit Time</div>\r\n <div *ngIf=\"clientData?.trackerFF\" class=\"py-2 img-doc-time\">Total Time Spent</div>\r\n </div>\r\n <div class=\"col-md-4 text-end\" >\r\n <div class=\"py-2\">\r\n <span class=\"cursor-pointer\" *ngIf=\"!obj?.revopsType||obj?.revopsType===''\" ngbTooltip=\"Yet to tag the customer\" (click)=\"revopTagging(obj)\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22852)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.37328 0.00201606C7.20932 -0.023315 6.05385 0.205711 4.98755 0.673106C3.92125 1.1405 2.96981 1.835 2.19967 2.70811C1.42952 3.58123 0.859225 4.61192 0.528596 5.72822C0.197966 6.84453 0.114971 8.01955 0.285404 9.17124C0.455837 10.3229 0.875591 11.4236 1.51536 12.3963C2.15513 13.369 2.9995 14.1903 3.98951 14.8029C4.97953 15.4156 6.09133 15.8048 7.2473 15.9433C8.40326 16.0818 9.57554 15.9664 10.6823 15.605C10.8714 15.5432 11.0282 15.4088 11.1182 15.2314C11.2082 15.054 11.2241 14.8481 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6113 14.1331 10.4054 14.1172 10.2163 14.179C9.01359 14.5717 7.72242 14.6049 6.50114 14.2745C5.27986 13.9441 4.18155 13.2644 3.34092 12.3189C2.50028 11.3734 1.95386 10.2031 1.76867 8.95151C1.58348 7.69995 1.76757 6.42155 2.29837 5.27309C2.82916 4.12463 3.68358 3.15604 4.75684 2.48611C5.83011 1.81618 7.07555 1.47403 8.34044 1.50163C9.60533 1.52922 10.8347 1.92536 11.8777 2.64147C12.9207 3.35757 13.7321 4.3625 14.2123 5.53302C14.2877 5.71708 14.4332 5.86362 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44721 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05515 15.6003 4.96402C15.0093 3.52331 14.0107 2.28639 12.7269 1.40498C11.4432 0.523571 9.93012 0.0359815 8.37328 0.00201606ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.58796 3.07903 8.39719 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41428 9.72302C5.34059 9.79168 5.28149 9.87448 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.26788 10.646 5.32402 10.7308 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.32282 10.9158 6.40562 10.8567 6.47428 10.783L8.72828 8.53002L8.94828 8.31002V3.75002ZM15.1983 15C15.1983 15.2652 15.0929 15.5196 14.9054 15.7071C14.7179 15.8947 14.4635 16 14.1983 16C13.9331 16 13.6787 15.8947 13.4912 15.7071C13.3036 15.5196 13.1983 15.2652 13.1983 15C13.1983 14.7348 13.3036 14.4804 13.4912 14.2929C13.6787 14.1054 13.9331 14 14.1983 14C14.4635 14 14.7179 14.1054 14.9054 14.2929C15.0929 14.4804 15.1983 14.7348 15.1983 15ZM14.9483 8.75002C14.9483 8.5511 14.8693 8.36034 14.7286 8.21969C14.588 8.07903 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07903 13.668 8.21969C13.5273 8.36034 13.4483 8.5511 13.4483 8.75002V12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3972 13 14.588 12.921 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V8.75002Z\" fill=\"#F79009\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.1858 4.10379C15.0996 3.94907 15.0083 3.79744 14.9121 3.64911C14.5747 3.12843 14.1776 2.64854 13.7289 2.21932C13.4187 1.92257 13.0839 1.65004 12.7269 1.40498C12.7269 1.40493 12.727 1.40504 12.7269 1.40498C12.5144 1.25906 12.2954 1.12379 12.0711 0.999729C11.8255 0.863893 11.5734 0.741322 11.3159 0.632377C10.3882 0.239873 9.39006 0.024199 8.37328 0.00201606C8.37324 0.00201518 8.37332 0.00201694 8.37328 0.00201606C8.31496 0.00074779 8.25655 0.000115387 8.19828 0.000122124C7.1276 0.00024592 6.06754 0.215304 5.08108 0.632816C5.04983 0.646043 5.01865 0.659473 4.98755 0.673106C4.76115 0.772343 4.53993 0.88182 4.32452 1.00107C4.20201 1.06889 4.08139 1.13987 3.96275 1.21393C3.30756 1.62296 2.71329 2.12581 2.19967 2.70811C1.68602 3.29043 1.26127 3.94285 0.937232 4.644C0.775415 4.99414 0.638713 5.35643 0.528596 5.72822C0.19799 6.84445 0.114983 8.01938 0.285366 9.17099C0.285354 9.17091 0.285379 9.17108 0.285366 9.17099C0.4558 10.3227 0.875591 11.4236 1.51536 12.3963C1.72835 12.7201 1.96402 13.0271 2.22019 13.3153C2.73349 13.8927 3.32909 14.3943 3.98951 14.8029C4.64967 15.2115 5.36398 15.5206 6.10943 15.7224C6.4819 15.8232 6.86215 15.8971 7.2473 15.9433C7.29123 15.9486 7.33519 15.9535 7.37917 15.958C8.01492 16.0235 8.65464 16.0124 9.28478 15.9261C9.52146 15.8937 9.75678 15.8507 9.99004 15.7971C10.223 15.7436 10.4539 15.6796 10.6819 15.6051C10.6818 15.6052 10.6821 15.6051 10.6819 15.6051C10.7196 15.5928 10.7563 15.5775 10.7911 15.5597C10.9312 15.488 11.0461 15.3735 11.1182 15.2314C11.1554 15.1581 11.18 15.0799 11.1916 15C11.2081 14.8867 11.1985 14.77 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6114 14.1331 10.4056 14.1172 10.2166 14.1789C10.2165 14.1789 10.2168 14.1789 10.2166 14.1789C10.1121 14.213 10.0065 14.2446 9.90073 14.2733C9.74848 14.3146 9.59506 14.3503 9.44078 14.3803C9.37146 14.3938 9.30196 14.4062 9.23233 14.4174C8.8548 14.4782 8.47302 14.5055 8.09144 14.4992C7.99568 14.4976 7.89992 14.4939 7.80426 14.4881C7.6779 14.4804 7.55168 14.4691 7.42578 14.454C7.36133 14.4463 7.29696 14.4376 7.23269 14.4279C6.98693 14.391 6.74267 14.3399 6.50114 14.2745C6.32933 14.228 6.15995 14.1746 5.99337 14.1146C5.56809 13.9612 5.16112 13.7642 4.7787 13.5276C4.73373 13.4998 4.68911 13.4714 4.64483 13.4425C4.27003 13.1978 3.92028 12.9142 3.60174 12.5956C3.51229 12.5061 3.42531 12.4138 3.34092 12.3189C3.13139 12.0832 2.94014 11.8336 2.76821 11.5722C2.76385 11.5656 2.7595 11.559 2.75516 11.5523C2.47964 11.1301 2.25437 10.6775 2.08368 10.2039C1.93807 9.79993 1.83218 9.38061 1.76871 8.95174C1.76869 8.95166 1.76872 8.95182 1.76871 8.95174C1.74125 8.76621 1.72188 8.57986 1.71059 8.39367C1.70471 8.29683 1.70101 8.19998 1.69948 8.10317C1.68902 7.44355 1.77905 6.78626 1.96631 6.15405C2.0552 5.85394 2.16601 5.55947 2.29837 5.27309C2.56378 4.69883 2.91011 4.16954 3.32425 3.70007C3.36618 3.65254 3.4088 3.60563 3.4521 3.55934C3.83649 3.14848 4.27458 2.78714 4.75684 2.48611C5.02452 2.31903 5.30291 2.17233 5.58963 2.04668C5.80471 1.95242 6.02449 1.87 6.24796 1.7997C6.87628 1.60202 7.5338 1.50012 8.19828 1.50008C8.24563 1.50008 8.29302 1.50059 8.34044 1.50163C8.95745 1.51511 9.5662 1.61629 10.1488 1.79952C10.7605 1.99189 11.3435 2.27472 11.8777 2.64147C11.8776 2.64142 11.8778 2.64151 11.8777 2.64147C12.0839 2.78304 12.2812 2.93603 12.4685 3.09922C12.6351 3.24436 12.7939 3.39767 12.9444 3.55848C13.0974 3.72197 13.2419 3.89322 13.3771 4.07152C13.5555 4.3066 13.7179 4.55395 13.8631 4.81195C13.9427 4.95336 14.0171 5.09798 14.0861 5.24552C14.1253 5.32914 14.1627 5.41371 14.1983 5.49916C14.203 5.51043 14.2076 5.52172 14.2123 5.53302C14.2122 5.53292 14.2123 5.53312 14.2123 5.53302C14.2878 5.71693 14.4333 5.86367 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44722 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05516 15.6003 4.96402C15.6002 4.9639 15.6003 4.96414 15.6003 4.96402C15.5091 4.74187 15.4082 4.5242 15.2981 4.31229C15.2617 4.2422 15.2242 4.17269 15.1858 4.10379ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.61405 3.10512 8.46624 3.03145 8.30786 3.00806C8.27188 3.00276 8.23508 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41452 9.72278C5.40159 9.73483 5.38887 9.74755 5.37686 9.76044C5.32041 9.82102 5.2743 9.89062 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.23863 10.5736 5.24804 10.5942 5.25834 10.6142C5.29387 10.6834 5.34002 10.7468 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.30668 10.923 6.37628 10.8769 6.43686 10.8204C6.44966 10.8085 6.46206 10.7961 6.47403 10.7833C6.47395 10.7834 6.47411 10.7832 6.47403 10.7833L8.94828 8.31002V3.75002ZM13.4483 12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3895 13 14.5732 12.927 14.7121 12.7963C14.7177 12.7911 14.7232 12.7858 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V10.0566C14.7015 10.0191 14.4509 10 14.1983 10C13.9457 10 13.695 10.0191 13.4483 10.0566V12.25ZM13.4483 9.76927C13.6932 9.84828 13.9441 9.90719 14.1983 9.94551C14.4264 9.97989 14.6572 9.99769 14.8889 9.99854C14.9087 9.99861 14.9285 9.99856 14.9483 9.99838V8.75002C14.9483 8.65356 14.9297 8.55901 14.8945 8.47117C14.8571 8.37787 14.8011 8.29213 14.7286 8.21969C14.588 8.07904 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07904 13.668 8.21969C13.665 8.22268 13.662 8.22569 13.6591 8.22872C13.5282 8.3641 13.453 8.54376 13.4485 8.73188C13.4484 8.73792 13.4483 8.74397 13.4483 8.75002V9.76927ZM15.1963 15.0626C15.1976 15.0418 15.1983 15.0209 15.1983 15C15.1983 14.9984 15.1983 14.9968 15.1983 14.9951C15.197 14.7317 15.0918 14.4793 14.9054 14.2929C14.7178 14.1054 14.4635 14 14.1983 14C13.9331 14 13.6787 14.1054 13.4912 14.2929C13.3036 14.4804 13.1983 14.7348 13.1983 15C13.1983 15.2652 13.3036 15.5196 13.4912 15.7071C13.6787 15.8947 13.9331 16 14.1983 16C14.4635 16 14.7178 15.8947 14.9054 15.7071C15.0781 15.5344 15.1811 15.305 15.1963 15.0626Z\" fill=\"#F79009\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22852\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.199219)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"cursor-pointer\" *ngIf=\"obj?.revopsType&&obj?.revopsType!==''\" (click)=\"revopTagging(obj)\" ngbTooltip=\"Customer Tagging is Done\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22856)\">\r\n <path d=\"M15.0638 7.38662V7.99995C15.063 9.43756 14.5975 10.8364 13.7367 11.9878C12.8759 13.1393 11.666 13.9816 10.2874 14.3892C8.90876 14.7968 7.43531 14.7479 6.08678 14.2497C4.73826 13.7515 3.58691 12.8307 2.80444 11.6247C2.02198 10.4186 1.65033 8.99199 1.74492 7.55749C1.83951 6.12299 2.39527 4.7575 3.32932 3.66467C4.26337 2.57183 5.52566 1.81021 6.92793 1.49338C8.3302 1.17656 9.79731 1.32151 11.1105 1.90662M15.0638 2.66662L8.39714 9.33995L6.39714 7.33995\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22856\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.398438)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"py-2 img-doc-value\">{{obj.timeSpent.entryTime}} </div>\r\n <div *ngIf=\"clientData?.trackerFF\" class=\"py-2 img-doc-value\">{{obj.timeSpent.exitTime}}</div>\r\n <div *ngIf=\"clientData?.trackerFF\" class=\"py-2 img-doc-value\">{{obj.timeSpent.totalTimeSpent}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </section>\r\n <section *ngIf=\"imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-between align-items-center px-0\">\r\n <div class=\"\">\r\n <span class=\"cursor-pointer\" (click)=\"backToView()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"ms-2 py-2 img-doc-directory\"><span class=\"badge badge-light-info\">{{Imagedata.tempId}}</span> \r\n <ng-container *ngIf=\"Imagedata?.revopsType || selectControl.value as value\">\r\n <span *ngIf=\"value\"\r\n class=\"badge ms-2\"\r\n [ngClass]=\"{\r\n 'badge-light-success': value === 'footfall' || value === 'purchaser',\r\n 'badge-light-warning': value === 'nonShopper',\r\n 'badge-light-danger': value === 'bounced' || value === 'engager' || value === 'missedOpportunity' || value === 'conversion'\r\n }\">\r\n {{\r\n value === 'purchaser' ? 'Purchaser' :\r\n value === 'nonShopper' ? 'Non Shopper' :\r\n value === 'missedOpportunity' ? 'Missed Opportunity' :\r\n (value | titlecase)\r\n }}\r\n </span>\r\n </ng-container>\r\n \r\n \r\n </span>\r\n </div>\r\n <div class=\"\">\r\n <span class=\"cursor-pointer\" [ngClass]=\"{ 'cursor-not-allowed opacity-50': isFirstImage() }\"\r\n [style.pointer-events]=\"isFirstImage() ? 'none' : 'auto'\"\r\n (click)=\"!isFirstImage() && previous()\" ><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <path d=\"M0.5 8C0.5 3.85786 3.85786 0.5 8 0.5H39.5V39.5H8C3.85786 39.5 0.5 36.1421 0.5 32V8Z\"\r\n fill=\"white\" />\r\n <path d=\"M0.5 8C0.5 3.85786 3.85786 0.5 8 0.5H39.5V39.5H8C3.85786 39.5 0.5 36.1421 0.5 32V8Z\"\r\n stroke=\"#D0D5DD\" />\r\n <path d=\"M22.5 25L17.5 20L22.5 15\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <span class=\"cursor-pointer\" [ngClass]=\"{ 'cursor-not-allowed opacity-50': isLastImage() }\"\r\n [style.pointer-events]=\"isLastImage() ? 'none' : 'auto'\"\r\n (click)=\"!isLastImage() && next()\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <path d=\"M0.5 0.5H32C36.1421 0.5 39.5 3.85786 39.5 8V32C39.5 36.1421 36.1421 39.5 32 39.5H0.5V0.5Z\"\r\n fill=\"white\" />\r\n <path d=\"M0.5 0.5H32C36.1421 0.5 39.5 3.85786 39.5 8V32C39.5 36.1421 36.1421 39.5 32 39.5H0.5V0.5Z\"\r\n stroke=\"#D0D5DD\" />\r\n <path d=\"M17.5 25L22.5 20L17.5 15\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row contain mt-10\">\r\n <div class=\"col-md-6 col-lg-6 col-xl-6\">\r\n <img class=\"cursor-pointer\" class=\"img-src1\" [src]=\"Images\"\r\n (error)=\"Images = null\" alt=\"\">\r\n <div *ngIf=\"!Images\" class=\"no-preview\">\r\n <span class=\"mb-5\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\" d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n \r\n \r\n \r\n <div class=\"row slider mt-5\">\r\n <ng-container>\r\n <div class=\"col-4\" *ngIf=\"Imagedata?.images?.entryTimeImage\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.entryTimeImage,\r\n 'border-gray': Images !== Imagedata?.images?.entryTimeImage\r\n }\">\r\n <div>Entry Time</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.entryTimeImage\"\r\n (error)=\"Imagedata?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageData('entry')\">\r\n <div *ngIf=\"!Imagedata?.images?.entryTimeImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\" *ngIf=\"Imagedata?.images?.staffEngagementImage\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.staffEngagementImage,\r\n 'border-gray': Images !== Imagedata?.images?.staffEngagementImage\r\n }\">\r\n <div>Staff Engagement</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.staffEngagementImage\"\r\n (error)=\"Imagedata?.images.staffEngagementImage = null\" alt=\"\" (click)=\"imageData('staff')\">\r\n <div *ngIf=\"!Imagedata?.images?.staffEngagementImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4 \" *ngIf=\"Imagedata?.images?.exitTimeImage && this.clientData.trackerFF\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.exitTimeImage,\r\n 'border-gray': Images !== Imagedata?.images?.exitTimeImage\r\n }\">\r\n <div>Exit Time</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.exitTimeImage\"\r\n (error)=\"Imagedata?.images.exitTimeImage = null\" alt=\"\" (click)=\"imageData('exit')\">\r\n <div *ngIf=\"!Imagedata?.images?.exitTimeImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n </div>\r\n <div class=\"col-md-6 col-lg-6 col-xl-6 pe-0 mb-3\">\r\n <ul class=\"nav flex-wrap nav-dev fw-bold align-items-center\">\r\n <li class=\"nav-item my-1 w-50\">\r\n <a (click)=\"selectedTab = 'tagged'\" [ngClass]=\"{\r\n 'tab-active': selectedTab === 'tagged'\r\n }\" class=\"tab-text-default btn nav-link px-3 px-lg-8 mx-1\">\r\n Tagged Info\r\n </a>\r\n </li>\r\n \r\n <li class=\"nav-item my-1 w-50\">\r\n <a (click)=\"selectedTab = 'customer'\" [ngClass]=\"{\r\n 'tab-active': selectedTab === 'customer'\r\n }\" class=\"tab-text-default btn nav-link px-3 px-lg-8 mx-1\">\r\n Customer Info\r\n </a>\r\n </li>\r\n </ul>\r\n <section *ngIf=\"selectedTab === 'tagged'\">\r\n <div class=\"row mx-3 mt-5 mb-3\">\r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioNonShopper\"\r\n value=\"nonShopper\" [(ngModel)]=\"selectedCustomerType\" (change)=\"onRadioChange('nonShopper')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioNonShopper\">\r\n Non Shopper\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioPurchaser\" value=\"purchaser\"\r\n [(ngModel)]=\"selectedCustomerType\" (change)=\"onRadioChange('purchaser')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioPurchaser\">\r\n Purchaser\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check \">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioMissed\"\r\n value=\"missedOpportunity\" [(ngModel)]=\"selectedCustomerType\"\r\n (change)=\"onRadioChange('missedOpportunity')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioMissed\">\r\n Missed Opportunity\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <section *ngIf=\"selectedCustomerType ==='nonShopper'\">\r\n <div class=\"row mt-5 mx-3\">\r\n <div class=\"border-gray-active1\">\r\n <span *ngFor=\"let obj of nonShopperList\" class=\"cursor-pointer\">\r\n <div class=\"badge mt-3 me-8\" [ngClass]=\"obj!==nonShoperType ? 'badge-light-default' :'badge-light-primary'\" (click)=\"selectnonShoper(obj)\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" *ngIf=\"obj!==nonShoperType\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M6 2.5V9.5M2.5 6H9.5\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" *ngIf=\"obj===nonShoperType\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" rx=\"8\" fill=\"#DAF1FF\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.3977 4.92661L6.62434 9.53328L5.35767 8.17994C5.12434 7.95994 4.75767 7.94661 4.491 8.13328C4.231 8.32661 4.15767 8.66661 4.31767 8.93994L5.81767 11.3799C5.96434 11.6066 6.21767 11.7466 6.50434 11.7466C6.77767 11.7466 7.03767 11.6066 7.18434 11.3799C7.42434 11.0666 12.0043 5.60661 12.0043 5.60661C12.6043 4.99328 11.8777 4.45328 11.3977 4.91994V4.92661Z\" fill=\"#33B5FF\"/>\r\n </svg>\r\n <span class=\"ms-3\">{{obj}}</span></div>\r\n </span>\r\n \r\n <div class=\"col-md-12 mt-5 pb-10\">\r\n <div class=\"form-group\">\r\n <label for=\"exampleInputName\">Description (Optional)</label>\r\n <textarea [(ngModel)]=\"description\" class=\"form-control mt-3\" rows=\"4\" placeholder=\"\"></textarea>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"text-end mt-5\" (click)=\"nonShopperSubmit()\" >\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </div>\r\n </section>\r\n <section *ngIf=\"selectedCustomerType ==='purchaser'\">\r\n <div class=\"row mt-5\">\r\n <form [formGroup]=\"userForm\" (ngSubmit)=\"onSubmit()\">\r\n <div class=\"row border-gray-active1\">\r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"name\">Name</label>\r\n <input\r\n type=\"text\"\r\n id=\"name\"\r\n class=\"form-control mt-3\"\r\n placeholder=\"Enter Name\" autocomplete=\"off\"\r\n formControlName=\"name\" required [ngClass]=\"{ 'is-invalid':userForm.get('name')?.invalid && (userForm.get('name')?.touched)}\"\r\n />\r\n <div *ngIf=\"isInvalid('name')\" class=\"text-danger\">\r\n <div *ngIf=\"f.name.errors?.required\">Name is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 col-lg-6 col-xl-6 col-xxl-6 mt-3\">\r\n <label for=\"contact\" class=\"form-label\">Contact Number <span class=\"alert-required text-danger\">*</span></label>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 col-lg-4 col-xl-4\">\r\n <select class=\"form-select ps-3 pe-8\" id=\"inputGroupSelect01\" formControlName=\"countryCode\">\r\n <option *ngFor=\"let country of countryList\" [value]=\"country.phonecode\">\r\n {{country.name}} ({{country.phonecode}})\r\n </option>\r\n </select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-8 col-xl-8\">\r\n <input type=\"text\" class=\"form-control\" (keypress)=\"omit_special_char($event)\"\r\n id=\"mobile\" autocomplete=\"off\" formControlName=\"mobile\" minlength=\"8\" maxlength=\"13\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('mobile')?.invalid && (userForm.get('mobile')?.touched)}\">\r\n <div *ngIf=\"isInvalid('mobile')\" class=\"text-danger\">\r\n <div *ngIf=\"f.mobile.errors?.required\">Contact Number is required.</div>\r\n <div *ngIf=\"f.mobile.errors?.minlength\">Contact Number must be at least 8 digits.</div>\r\n <div *ngIf=\"f.mobile.errors?.maxlength\">Contact Number cannot exceed 13 digits.</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 col-lg-6 col-xl-6 col-xxl-6 mt-3\">\r\n <label for=\"email\" class=\"form-label\">Email <span class=\"alert-required text-danger\">*</span></label>\r\n <input type=\"email\" class=\"form-control\" id=\"email\" formControlName=\"email\" autocomplete=\"off\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('email')?.invalid && (userForm.get('email')?.touched)}\">\r\n <div *ngIf=\"isInvalid('email')\" class=\"text-danger\">\r\n <div *ngIf=\"f.email.errors?.required\">Email is required.</div>\r\n <div *ngIf=\"f.email.errors?.pattern\">Invalid email format.</div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"location\">Location</label>\r\n <!-- <input\r\n type=\"text\"\r\n id=\"location\"\r\n class=\"form-control mt-3\"\r\n placeholder=\"Location\"\r\n formControlName=\"location\"\r\n /> -->\r\n <input type=\"text\" class=\"form-control mt-3\" id=\"location\" formControlName=\"location\" #placesRef=\"ngx-places\" ngx-gp-autocomplete (onAddressChange)=\"handleAddressChange($event)\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('location')?.invalid && (userForm.get('location')?.touched)}\">\r\n <div *ngIf=\"(f.location.touched || submitted) && f.location.errors\" class=\"text-danger\">\r\n <div *ngIf=\"f.location.errors.required\">Location is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"age\">Age</label>\r\n <div class=\"input-group\">\r\n <button\r\n type=\"button\"\r\n class=\"btn pt-5 position-absolute top-50 translate-middle-y\"\r\n style=\"left: 0.25rem;\"\r\n (click)=\"decrementAge()\"\r\n >\r\n -\r\n </button>\r\n \r\n <input\r\n type=\"text\" (keypress)=\"omit_special_char($event)\"\r\n id=\"age\"\r\n class=\"form-control pe-5 text-center mt-3\"\r\n formControlName=\"age\"\r\n min=\"1\" max=\"99\"\r\n />\r\n \r\n <button\r\n type=\"button\"\r\n class=\"btn pt-5 position-absolute top-50 translate-middle-y\"\r\n style=\"right: 2.5rem;\"\r\n (click)=\"incrementAge()\"\r\n >\r\n +\r\n </button>\r\n </div>\r\n <div *ngIf=\"submitted && f.age.errors\" class=\"text-danger mt-1\">\r\n <div *ngIf=\"f.age.errors.required\">Age is required</div>\r\n <div *ngIf=\"f.age.errors.min\">Age must be at least 1</div>\r\n <div *ngIf=\"f.age.errors.max\">Age must be at least 99</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"gender\">Gender</label>\r\n <select class=\"form-select mt-3\" formControlName=\"gender\">\r\n <option value=\"\">Select Gender</option>\r\n <option value=\"male\">Male</option>\r\n <option value=\"female\">Female</option>\r\n </select>\r\n <div *ngIf=\"submitted && f.gender.errors\" class=\"text-danger\">\r\n <div *ngIf=\"f.gender.errors.required\">Gender is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"text-end mt-5\">\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </form>\r\n \r\n \r\n </div>\r\n </section>\r\n <section *ngIf=\"selectedCustomerType ==='missedOpportunity'\">\r\n <div class=\"row mt-5 mx-3 border-gray-active1\">\r\n \r\n <div\r\n *ngFor=\"let obj of missedOpportunityList\"\r\n class=\"nav-item nav-item1 w-25\"\r\n (click)=\"selectedTabs(obj.name)\">\r\n <span\r\n [ngClass]=\"selectedMissed === obj.name ? 'active' : 'active-normal'\"\r\n class=\"nav-link nav-link1 cursor-pointer text-nowrap\">\r\n {{ obj.name }}\r\n </span>\r\n </div>\r\n \r\n <div class=\"separator separator-double mb-3\"></div>\r\n <!-- Issue Badges -->\r\n <div *ngFor=\"let obj of missedOpportunityList\">\r\n <div *ngIf=\"selectedMissed === obj.name\" class=\"mt-4\">\r\n <span *ngFor=\"let item of obj.issues\">\r\n \r\n <span\r\n (click)=\"selectSubissue(obj, item)\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': selectedIssues.includes(item),\r\n 'badge-light-default':!selectedIssues.includes(item)\r\n }\"\r\n class=\"badge mt-2 me-2 cursor-pointer\">\r\n <span class=\"me-2\" *ngIf=\"!selectedIssues.includes(item)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M6 2.5V9.5M2.5 6H9.5\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <span class=\"me-2\" *ngIf=\"selectedIssues.includes(item)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" rx=\"8\" fill=\"#DAF1FF\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.3977 4.92661L6.62434 9.53328L5.35767 8.17994C5.12434 7.95994 4.75767 7.94661 4.491 8.13328C4.231 8.32661 4.15767 8.66661 4.31767 8.93994L5.81767 11.3799C5.96434 11.6066 6.21767 11.7466 6.50434 11.7466C6.77767 11.7466 7.03767 11.6066 7.18434 11.3799C7.42434 11.0666 12.0043 5.60661 12.0043 5.60661C12.6043 4.99328 11.8777 4.45328 11.3977 4.91994V4.92661Z\" fill=\"#33B5FF\"/>\r\n </svg>\r\n </span>\r\n {{ item }}\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"mt-4\">\r\n <label class=\"form-label\">Description (Optional)</label>\r\n <textarea\r\n rows=\"3\"\r\n class=\"form-control\"\r\n placeholder=\"Enter comments\"\r\n [(ngModel)]=\"description\"\r\n ></textarea>\r\n </div>\r\n \r\n \r\n <div class=\"text-end mt-5\" (click)=\"submitMissedOpportunity()\">\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </div>\r\n </section>\r\n </section>\r\n <section *ngIf=\"selectedTab === 'customer'\">\r\n <div class=\"row mt-10\">\r\n <div class=\"col-md-6\">\r\n <span class=\"tag-class\">Tagged Summary <span *ngIf=\"tagggedData?.status==='submitted'\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M14.6668 7.38674V8.00007C14.666 9.43769 14.2005 10.8365 13.3397 11.988C12.4789 13.1394 11.269 13.9817 9.8904 14.3893C8.51178 14.797 7.03834 14.748 5.68981 14.2498C4.34128 13.7516 3.18993 12.8308 2.40747 11.6248C1.62501 10.4188 1.25336 8.99211 1.34795 7.55761C1.44254 6.12312 1.9983 4.75762 2.93235 3.66479C3.8664 2.57195 5.12869 1.81033 6.53096 1.4935C7.93323 1.17668 9.40034 1.32163 10.7135 1.90674M14.6668 2.66674L8.00017 9.34007L6.00017 7.34007\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> </span>\r\n </div>\r\n <div class=\"col-md-6 text-end\" *ngIf=\"tagggedData?.status!='submitted'\">\r\n <span class=\"badge badge-light-warning ms-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10901_7795)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.13152 0.00142049C5.25855 -0.0175778 4.39195 0.154192 3.59222 0.504738C2.7925 0.855283 2.07892 1.37616 1.50131 2.03099C0.923703 2.68583 0.495981 3.45885 0.248009 4.29608C3.70294e-05 5.1333 -0.0622095 6.01457 0.0656154 6.87834C0.19344 7.74212 0.508256 8.56758 0.988083 9.29711C1.46791 10.0266 2.10119 10.6426 2.8437 11.1021C3.58621 11.5616 4.42006 11.8535 5.28703 11.9574C6.15401 12.0613 7.03322 11.9747 7.86327 11.7037C8.0051 11.6573 8.1227 11.5565 8.19022 11.4235C8.25773 11.2904 8.26962 11.136 8.22327 10.9942C8.17693 10.8523 8.07614 10.7347 7.94308 10.6672C7.81002 10.5997 7.6556 10.5878 7.51377 10.6342C6.61175 10.9287 5.64338 10.9536 4.72742 10.7058C3.81146 10.458 2.98773 9.94825 2.35725 9.2391C1.72677 8.52995 1.31696 7.65221 1.17807 6.71354C1.03917 5.77487 1.17724 4.81607 1.57534 3.95473C1.97343 3.09338 2.61425 2.36694 3.4192 1.86449C4.22414 1.36204 5.15823 1.10543 6.10689 1.12613C7.05556 1.14683 7.97756 1.44393 8.75983 1.98101C9.5421 2.51809 10.1506 3.27178 10.5108 4.14967C10.5674 4.28772 10.6765 4.39763 10.8141 4.45522C10.8822 4.48374 10.9553 4.49856 11.0292 4.49883C11.1031 4.4991 11.1763 4.48482 11.2446 4.4568C11.313 4.42878 11.3752 4.38757 11.4276 4.33552C11.48 4.28347 11.5217 4.22161 11.5502 4.15347C11.5787 4.08532 11.5935 4.01222 11.5938 3.93835C11.5941 3.86448 11.5798 3.79127 11.5518 3.72292C11.1085 2.64239 10.3596 1.7147 9.39677 1.05365C8.43396 0.392587 7.29915 0.0268946 6.13152 0.00142049ZM6.56277 2.81242C6.56277 2.66324 6.50351 2.52016 6.39802 2.41467C6.29253 2.30918 6.14946 2.24992 6.00027 2.24992C5.85109 2.24992 5.70801 2.30918 5.60252 2.41467C5.49704 2.52016 5.43777 2.66324 5.43777 2.81242V5.76742L3.91227 7.29217C3.85701 7.34367 3.81268 7.40577 3.78194 7.47477C3.75119 7.54377 3.73466 7.61825 3.73333 7.69378C3.732 7.76931 3.74589 7.84433 3.77418 7.91437C3.80247 7.98441 3.84458 8.04804 3.89799 8.10145C3.95141 8.15486 4.01503 8.19697 4.08507 8.22526C4.15512 8.25355 4.23014 8.26745 4.30566 8.26612C4.38119 8.26478 4.45568 8.24825 4.52468 8.21751C4.59368 8.18676 4.65578 8.14244 4.70727 8.08717L6.39777 6.39742L6.56277 6.23242V2.81242ZM11.2503 11.2499C11.2503 11.4488 11.1713 11.6396 11.0306 11.7803C10.8899 11.9209 10.6992 11.9999 10.5003 11.9999C10.3014 11.9999 10.1106 11.9209 9.96994 11.7803C9.82929 11.6396 9.75027 11.4488 9.75027 11.2499C9.75027 11.051 9.82929 10.8602 9.96994 10.7196C10.1106 10.5789 10.3014 10.4999 10.5003 10.4999C10.6992 10.4999 10.8899 10.5789 11.0306 10.7196C11.1713 10.8602 11.2503 11.051 11.2503 11.2499ZM11.0628 6.56242C11.0628 6.41324 11.0035 6.27016 10.898 6.16467C10.7925 6.05919 10.6495 5.99992 10.5003 5.99992C10.3511 5.99992 10.208 6.05919 10.1025 6.16467C9.99704 6.27016 9.93777 6.41324 9.93777 6.56242V9.18742C9.93777 9.33661 9.99704 9.47968 10.1025 9.58517C10.208 9.69066 10.3511 9.74992 10.5003 9.74992C10.6495 9.74992 10.7925 9.69066 10.898 9.58517C11.0035 9.47968 11.0628 9.33661 11.0628 9.18742V6.56242Z\" fill=\"#B54708\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.2409 3.07775C11.1762 2.96171 11.1078 2.84799 11.0357 2.73674C10.7826 2.34623 10.4848 1.98631 10.1483 1.6644C9.91561 1.44184 9.66446 1.23744 9.39677 1.05365C9.39672 1.05361 9.39683 1.05368 9.39677 1.05365C9.23737 0.944207 9.07308 0.842748 8.90487 0.749705C8.7207 0.647828 8.53163 0.5559 8.3385 0.474192C7.64269 0.179813 6.8941 0.0180577 6.13152 0.00142049C6.13149 0.00141983 6.13155 0.00142115 6.13152 0.00142049C6.08778 0.00046929 6.04397 -5.01265e-06 6.00027 3.99426e-08C5.19726 9.28871e-05 4.40222 0.161386 3.66237 0.47452C3.63893 0.484441 3.61555 0.494513 3.59222 0.504738C3.42243 0.579166 3.25651 0.661273 3.09496 0.75071C3.00307 0.801577 2.9126 0.854814 2.82363 0.910359C2.33223 1.21713 1.88653 1.59427 1.50131 2.03099C1.11608 2.46773 0.797516 2.95704 0.554486 3.48291C0.433124 3.74551 0.330597 4.01723 0.248009 4.29608C5.51343e-05 5.13324 -0.0622004 6.01444 0.0655874 6.87815C0.065578 6.87809 0.0655967 6.87822 0.0655874 6.87815C0.193412 7.74193 0.508256 8.56758 0.988083 9.29711C1.14783 9.53998 1.32458 9.77027 1.51671 9.98639C1.90168 10.4194 2.34838 10.7956 2.8437 11.1021C3.33882 11.4085 3.87455 11.6404 4.43364 11.7917C4.71299 11.8673 4.99817 11.9228 5.28703 11.9574C5.31999 11.9613 5.35296 11.965 5.38594 11.9684C5.86275 12.0175 6.34254 12.0092 6.81514 11.9445C6.99265 11.9202 7.16915 11.8879 7.34409 11.8477C7.5188 11.8076 7.69196 11.7596 7.86302 11.7038C7.86294 11.7038 7.86311 11.7037 7.86302 11.7038C7.89127 11.6945 7.9188 11.6831 7.94492 11.6697C8.04995 11.6159 8.13615 11.53 8.19022 11.4235C8.21812 11.3685 8.23653 11.3098 8.24524 11.2499C8.25761 11.1649 8.25046 11.0774 8.22327 10.9942C8.17693 10.8523 8.07614 10.7347 7.94308 10.6672C7.81011 10.5998 7.65579 10.5878 7.51404 10.6341C7.51395 10.6341 7.51413 10.6341 7.51404 10.6341C7.43563 10.6597 7.35645 10.6833 7.27711 10.7049C7.16292 10.7359 7.04786 10.7626 6.93215 10.7851C6.88016 10.7953 6.82804 10.8045 6.77581 10.8129C6.49267 10.8585 6.20633 10.879 5.92014 10.8743C5.84832 10.8731 5.7765 10.8704 5.70476 10.866C5.60998 10.8602 5.51532 10.8517 5.4209 10.8404C5.37256 10.8346 5.32428 10.8281 5.27608 10.8208C5.09176 10.7931 4.90856 10.7548 4.72742 10.7058C4.59856 10.6709 4.47152 10.6309 4.34659 10.5858C4.02763 10.4708 3.7224 10.3231 3.43559 10.1456C3.40186 10.1248 3.36839 10.1035 3.33518 10.0818C3.05409 9.89826 2.79178 9.68556 2.55287 9.44658C2.48578 9.37947 2.42054 9.31029 2.35725 9.2391C2.20011 9.06234 2.05667 8.87512 1.92772 8.67908C1.92445 8.67411 1.92118 8.66913 1.91793 8.66414C1.7113 8.34749 1.54234 8.00807 1.41432 7.65286C1.30511 7.34986 1.2257 7.03536 1.17809 6.71371C1.17808 6.71366 1.1781 6.71377 1.17809 6.71371C1.1575 6.57457 1.14297 6.43481 1.1345 6.29516C1.1301 6.22253 1.12732 6.14989 1.12617 6.07729C1.11832 5.58257 1.18585 5.08961 1.3263 4.61545C1.39297 4.39036 1.47607 4.16951 1.57534 3.95473C1.7744 3.52403 2.03414 3.12706 2.34475 2.77496C2.3762 2.73932 2.40816 2.70413 2.44064 2.66942C2.72893 2.36127 3.05749 2.09027 3.4192 1.86449C3.61995 1.73918 3.82874 1.62916 4.04379 1.53492C4.2051 1.46422 4.36993 1.40241 4.53753 1.34968C5.00877 1.20143 5.50191 1.125 6.00027 1.12497C6.03579 1.12497 6.07133 1.12535 6.10689 1.12613C6.56965 1.13624 7.02621 1.21212 7.46315 1.34954C7.9219 1.49383 8.35919 1.70595 8.75983 1.98101C8.75978 1.98097 8.75988 1.98104 8.75983 1.98101C8.91447 2.08719 9.06247 2.20193 9.20295 2.32433C9.32789 2.43318 9.447 2.54816 9.55988 2.66877C9.67464 2.79139 9.78295 2.91982 9.8844 3.05355C10.0182 3.22986 10.14 3.41537 10.2489 3.60887C10.3086 3.71493 10.3644 3.82339 10.4162 3.93405C10.4455 3.99677 10.4736 4.06019 10.5003 4.12428C10.5038 4.13273 10.5073 4.1412 10.5108 4.14967C10.5107 4.14959 10.5108 4.14975 10.5108 4.14967C10.5674 4.28761 10.6765 4.39766 10.8141 4.45522C10.8822 4.48374 10.9553 4.49856 11.0292 4.49883C11.1031 4.4991 11.1763 4.48482 11.2446 4.4568C11.313 4.42878 11.3752 4.38757 11.4276 4.33552C11.48 4.28348 11.5217 4.22161 11.5502 4.15347C11.5787 4.08532 11.5935 4.01222 11.5938 3.93835C11.5941 3.86448 11.5798 3.79127 11.5518 3.72292C11.5517 3.72283 11.5518 3.72301 11.5518 3.72292C11.4834 3.55631 11.4077 3.39306 11.3251 3.23413C11.2978 3.18156 11.2697 3.12942 11.2409 3.07775ZM6.56277 2.81242C6.56277 2.66324 6.50351 2.52016 6.39802 2.41467C6.3121 2.32875 6.20124 2.2735 6.08246 2.25595C6.05548 2.25198 6.02787 2.24992 6.00027 2.24992C5.85109 2.24992 5.70801 2.30918 5.60252 2.41467C5.49704 2.52016 5.43777 2.66324 5.43777 2.81242V5.76742L3.91245 7.292C3.90275 7.30103 3.89322 7.31057 3.88421 7.32023C3.84187 7.36567 3.80729 7.41787 3.78194 7.47477C3.75119 7.54377 3.73466 7.61825 3.73333 7.69378C3.732 7.76931 3.74589 7.84433 3.77418 7.91437C3.78054 7.93011 3.78759 7.94552 3.79532 7.96057C3.82196 8.01249 3.85658 8.06004 3.89799 8.10145C3.95141 8.15487 4.01503 8.19697 4.08507 8.22526C4.15512 8.25356 4.23014 8.26745 4.30566 8.26612C4.38119 8.26478 4.45568 8.24825 4.52468 8.21751C4.58157 8.19216 4.63377 8.15757 4.67921 8.11524C4.68881 8.10629 4.69811 8.097 4.70708 8.08737C4.70702 8.08744 4.70715 8.08731 4.70708 8.08737L6.56277 6.23242V2.81242ZM9.93777 9.18742C9.93777 9.33661 9.99704 9.47968 10.1025 9.58517C10.208 9.69066 10.3511 9.74992 10.5003 9.74992C10.6437 9.74992 10.7815 9.69514 10.8857 9.59716C10.8898 9.59323 10.894 9.58924 10.898 9.58517C11.0035 9.47968 11.0628 9.33661 11.0628 9.18742V7.54234C10.8777 7.51426 10.6897 7.49992 10.5003 7.49992C10.3108 7.49992 10.1228 7.51426 9.93777 7.54234V9.18742ZM9.93777 7.32686C10.1215 7.38612 10.3096 7.4303 10.5003 7.45904C10.6714 7.48483 10.8445 7.49818 11.0183 7.49881C11.0331 7.49887 11.0479 7.49883 11.0628 7.4987V6.56242C11.0628 6.49008 11.0488 6.41917 11.0224 6.35328C10.9944 6.28331 10.9524 6.21901 10.898 6.16468C10.7925 6.05919 10.6495 5.99992 10.5003 5.99992C10.3511 5.99992 10.208 6.05919 10.1025 6.16468C10.1003 6.16692 10.0981 6.16917 10.0959 6.17145C9.9977 6.27299 9.94135 6.40773 9.93794 6.54882C9.93783 6.55335 9.93777 6.55788 9.93777 6.56242V7.32686ZM11.2488 11.2968C11.2498 11.2813 11.2503 11.2656 11.2503 11.2499C11.2503 11.2487 11.2503 11.2475 11.2503 11.2463C11.2493 11.0487 11.1704 10.8594 11.0306 10.7196C10.8899 10.5789 10.6992 10.4999 10.5003 10.4999C10.3014 10.4999 10.1106 10.5789 9.96994 10.7196C9.82929 10.8602 9.75027 11.051 9.75027 11.2499C9.75027 11.4488 9.82929 11.6396 9.96994 11.7803C10.1106 11.9209 10.3014 11.9999 10.5003 11.9999C10.6992 11.9999 10.8899 11.9209 11.0306 11.7803C11.1602 11.6507 11.2374 11.4786 11.2488 11.2968Z\" fill=\"#B54708\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10901_7795\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"ms-2\">Pending Tagged Info</span></span> \r\n </div>\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngIf=\"tagggedData?.revopsType==='purchaser'\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Name</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.name}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Location</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.location}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Mobile</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.mobile}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Age</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.age}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Email</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.email}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Gender</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.gender}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"tagggedData?.revopsType==='missedOpportunity'\">\r\n\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngFor=\"let item of tagggedData.issueList\" >\r\n <div class=\"ms-2 mb-2 spent-value\">{{item.name}}</div>\r\n <span class=\"badge badge-light-default ms-2\" *ngFor=\"let data of item.issue\">{{data}}</span>\r\n </div>\r\n \r\n </div>\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngIf=\"tagggedData?.revopsType==='nonShopper'\">\r\n <span class=\"badge badge-light-default ms-2\">{{nonShoperType}}</span>\r\n </div>\r\n <div class=\"my-2\"><span class=\"desc-id\">Original ID</span> : <span class=\"spent-value1\"\r\n style=\"font-size: 12px !important;\">{{Imagedata?.tempId}}</span></div>\r\n \r\n <div *ngIf=\"tagggedData?.description&&tagggedData?.description!=''\" class=\"my-3 desc-id\">{{tagggedData.description}}\r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n <div class=\"my-3\">\r\n <span class=\"tag-class\">Time Spent</span>\r\n </div>\r\n\r\n <div class=\"d-flex flex-wrap\">\r\n <div class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.totalTimeSpent}} </div>\r\n </div>\r\n <div class=\"spent-value my-1\">Total Time Spent</div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.entryTime}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1 cursor-pointer\" (click)=\"imageData('entry')\">Entry Time <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.exitTime}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1 cursor-pointer\" (click)=\"imageData('exit')\">Exit Time <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!Imagedata?.zoneVisited\" class=\"separator separator-double m-3\"></div>\r\n\r\n <div *ngIf=\"!Imagedata?.zoneVisited\" class=\"row\">\r\n <div class=\"col-md-6\">\r\n <span class=\"tag-class\">Zones Visited</span>\r\n\r\n </div>\r\n <!-- <div class=\"col-md-6 text-end\">\r\n <span class=\"ms-2 mt-2 view-tetory cursor-pointer\">View Trajectory <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M15 10.8333V15.8333C15 16.2754 14.8244 16.6993 14.5118 17.0118C14.1993 17.3244 13.7754 17.5 13.3333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V6.66667C2.5 6.22464 2.67559 5.80072 2.98816 5.48816C3.30072 5.17559 3.72464 5 4.16667 5H9.16667M12.5 2.5H17.5M17.5 2.5V7.5M17.5 2.5L8.33333 11.6667\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></span>\r\n </div> -->\r\n <ng-container class=\"h-200px scroll\">\r\n <div class=\"col mt-2\" *ngFor=\"let obj of Imagedata?.zoneVisited\">\r\n <span class=\"badge badge-light-primary \">{{obj}}</span>\r\n </div>\r\n <!-- <div *ngIf=\"Imagedata?.zoneVisited.length ===0\" class=\"col-md-12 mt-2 text-center\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No Zones Visited</div>\r\n <div class=\"nodata-sub\">There is no result for this Zones</div>\r\n </div> -->\r\n \r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n\r\n <div class=\"my-3\">\r\n <span class=\"tag-class\">Staff Engagement</span>\r\n </div>\r\n\r\n <div class=\"d-flex flex-wrap\">\r\n <div class=\"border border-gray-300 border-dobule rounded w-45 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.staffEngagement.timeTakenToAssist}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1\">Time taken to assist \r\n <!-- <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> -->\r\n </div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-45 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.staffEngagement.timeSpentWithStaff}}</div>\r\n </div>\r\n <div class=\"spent-value my-1\">Time spent with staff</div>\r\n </div>\r\n \r\n \r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n \r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n \r\n</section>\r\n</div>", styles: [".switch-form-card{padding:8px 16px;border-radius:4px;border-left:2px solid var(--Primary-600, #00A3FF);background:var(--Primary-25, #F6FCFF);display:flex;align-items:center;justify-content:space-between}.switch-form-card .txt-one{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:140%}.nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.badge-num-primary{border-radius:16px!important;background:var(--Primary-50, #EAF8FF)!important;color:var(--Primary-700, #009BF3)!important;text-align:center;font-size:14px!important;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.badge-num-muted{border-radius:16px!important;background:var(--Primary-50, #F2F4F7)!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.img-src{width:100%;height:210px;border-radius:.625rem}.img-traffic .col-md-3{width:24%!important}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.img-doc-directory{color:var(--Gray-900, #101828)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline}.img-doc-time{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}.img-doc-value{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.overflow-x{overflow-x:auto}.no-preview{border:1px solid #F04438;background:#fee4e2;border-radius:8px;stroke-width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:41px 16px}.no-preview .header{color:#f04438;font-size:20px;font-weight:700;line-height:20px}.no-preview .description{color:#f04438;font-size:12px;font-weight:500;line-height:18px}.img-nodata{width:25%;height:15%}.img-nodata1{width:15%;height:15%}.nodata-title{font-size:14px!important;font-weight:600}.img-direc{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:500;line-height:28px}.custom-accordion{border-radius:5px}.custom-accordion-item{margin-bottom:10px}.custom-accordion-header{background-color:#fff;border:none;cursor:pointer;padding:10px;text-align:left;width:100%;display:flex;justify-content:space-between;align-items:center}.custom-accordion{width:100%}.mainheading{width:100%;display:flex;justify-content:space-between;align-items:center;padding:19px;border:none;background:none;cursor:pointer}.header-row{display:flex;align-items:center;width:100%;justify-content:space-between}.img-dire{font-size:16px;font-weight:700}.divider{flex-grow:1;height:1px;background-color:#ddd;margin:0 10px}.accordion-arrow{display:flex;align-items:center}.scroll-container{max-height:400px;overflow-y:auto;overflow-x:hidden}.high-400px{min-height:auto!important;max-height:800px!important}.slider{position:relative}.slider .previous{position:absolute;top:30%;left:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.slider .next{position:absolute;top:30%;right:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.img-src1{border-radius:12px;border:1px solid var(--Gray-400, #98A2B3);background:var(--Gray-50, #F9FAFB);width:100%;height:375px}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);padding:0 4px}.border-gray-active{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #EAF8FF);padding:0 4px}.zone-header{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.last-visit{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.toggle-label{color:var(--Gray-900, #101828);font-size:16px;font-weight:600;line-height:24px}.nav-dev{border-radius:8px!important;border:1px solid var(--Primary-200, #99DAFF)!important;background:var(--Primary-25, #F6FCFF)!important}.tab-active{border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:500;line-height:20px}.tab-text-default{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px}.border-gray-active1{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:12px!important}.nav-item1 .nav-link1.active{border:none;border-radius:0;background:var(--Primary-50, #EAF8FF);border-bottom:2px solid #009BF3!important;padding:12px;color:var(--Primary-700, #009BF3);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.active-normal{padding:12px;color:var(--Gray-500, #667085);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.nav-item1 .nav-link1:hover{border:none}.tag-class{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.spent-title{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.spent-value{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.spent-value1{color:var(--Primary-500, #33B5FF);font-size:14px;font-weight:500;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font}.w-33{width:30%}.w-45{width:45%}.view-tetory{color:var(--Primary-700, #009BF3);font-size:14px;font-weight:600;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font;text-transform:capitalize}.border-gray-tagged{border-radius:4px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:8px!important}.desc-id{color:var(--Gray-900, #101828);font-size:12px;font-style:normal;font-weight:400;line-height:20px}.active-tab{border-bottom:2px solid #0d6efd;font-weight:600;color:#0d6efd}.badge-selected{background-color:#e0f3ff;color:#0d6efd;border:1px solid #0d6efd;border-radius:20px;padding:6px 12px}.badge-unselected{background-color:#f0f0f0;color:#333;border-radius:20px;padding:6px 12px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.cursor-not-allowed{cursor:not-allowed!important}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i7.NgxGpAutocompleteDirective, selector: "[ngx-gp-autocomplete]", inputs: ["options"], outputs: ["onAddressChange"], exportAs: ["ngx-places"] }, { kind: "component", type: i8.ReactiveSelectComponent, selector: "lib-reactive-select", inputs: ["idField", "nameField", "label", "data"], outputs: ["valueChange"] }, { kind: "pipe", type: i6.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i6.DatePipe, name: "date" }] });
|
|
716
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ImageDocComponent, selector: "lib-image-doc", viewQueries: [{ propertyName: "placesRef", first: true, predicate: ["ngxPlaces"], descendants: true }], ngImport: i0, template: "<div class=\"card mt-3\">\r\n <div class=\"card-header mt-3 px-0 border-bottom-0\">\r\n <div class=\"custom-accordion\">\r\n <div class=\"custom-accordion-item\">\r\n <button class=\"mainheading pb-0 custom-accordion-header\" (click)=\"toggleAccordion()\">\r\n <div class=\"header-row\">\r\n <span class=\"img-direc\">Image Directory</span>\r\n <span class=\"divider\"></span>\r\n <span class=\"accordion-arrow\">\r\n <!-- Down arrow for collapsed state, up arrow for expanded state -->\r\n <svg *ngIf=\"!isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\" viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 1L5 5L9 1\" stroke=\"#071437\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg *ngIf=\"isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\" viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 5L5 1L9 5\" stroke=\"#1b84ff\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n </div>\r\n </button>\r\n </div>\r\n </div>\r\n \r\n \r\n </div>\r\n <section *ngIf=\"isAccordionExpanded\">\r\n <div class=\"col-md-12 px-5\" *ngIf=\"!hideDoc\">\r\n <div class=\"switch-form-card\">\r\n <div class=\"d-flex align-items-center\">\r\n <svg width=\"46\" height=\"46\" viewBox=\"0 0 46 46\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" fill=\"#DAF1FF\" />\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" stroke=\"#EAF8FF\" stroke-width=\"6\" />\r\n <path d=\"M23.8333 14.6666L15.5 24.6666H23L22.1667 31.3333L30.5 21.3333H23L23.8333 14.6666Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <div class=\"txt-one ms-2\">\r\n <ng-container>Examine individual footfall in gallery view with optimal sample images for detailed analysis.</ng-container>\r\n <!-- <ng-container *ngIf=\"isMultiple\">Upload multiple stores for configuration</ng-container> -->\r\n </div>\r\n </div>\r\n <div class=\"cursor-pointer\" (click)=\"closeData()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M18.295 7.115C18.6844 6.72564 18.6844 6.09436 18.295 5.705C17.9056 5.31564 17.2744 5.31564 16.885 5.705L12 10.59L7.115 5.705C6.72564 5.31564 6.09436 5.31564 5.705 5.705C5.31564 6.09436 5.31564 6.72564 5.705 7.115L10.59 12L5.705 16.885C5.31564 17.2744 5.31564 17.9056 5.705 18.295C6.09436 18.6844 6.72564 18.6844 7.115 18.295L12 13.41L16.885 18.295C17.2744 18.6844 17.9056 18.6844 18.295 18.295C18.6844 17.9056 18.6844 17.2744 18.295 16.885L13.41 12L18.295 7.115Z\"\r\n fill=\"black\" />\r\n </svg>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <div *ngIf=\"folderView\" class=\"card-body px-0\">\r\n <div class=\"scroll-container\">\r\n <div class=\"row\">\r\n <div class=\"col-md-1 mt-5 text-center\" *ngFor=\"let obj of dateArray;let i = index\">\r\n <div (click)=\"getimages(i,obj)\">\r\n <div *ngIf=\"i === selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.154297\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#33B5FF\" />\r\n <path\r\n d=\"M39.8216 36.1667C39.8216 36.7855 39.5758 37.379 39.1382 37.8166C38.7006 38.2542 38.1071 38.5 37.4883 38.5H18.8216C18.2028 38.5 17.6093 38.2542 17.1717 37.8166C16.7341 37.379 16.4883 36.7855 16.4883 36.1667V19.8333C16.4883 19.2145 16.7341 18.621 17.1717 18.1834C17.6093 17.7458 18.2028 17.5 18.8216 17.5H24.6549L26.9883 21H37.4883C38.1071 21 38.7006 21.2458 39.1382 21.6834C39.5758 22.121 39.8216 22.7145 39.8216 23.3333V36.1667Z\"\r\n stroke=\"white\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n <div *ngIf=\"i !== selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.462891\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#EAF8FF\" />\r\n <path\r\n d=\"M40.1302 36.1667C40.1302 36.7855 39.8844 37.379 39.4468 37.8166C39.0092 38.2542 38.4157 38.5 37.7969 38.5H19.1302C18.5114 38.5 17.9179 38.2542 17.4803 37.8166C17.0427 37.379 16.7969 36.7855 16.7969 36.1667V19.8333C16.7969 19.2145 17.0427 18.621 17.4803 18.1834C17.9179 17.7458 18.5114 17.5 19.1302 17.5H24.9635L27.2969 21H37.7969C38.4157 21 39.0092 21.2458 39.4468 21.6834C39.8844 22.121 40.1302 22.7145 40.1302 23.3333V36.1667Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n \r\n </div>\r\n <div *ngIf=\"!folderView\" class=\"card-body\">\r\n <section *ngIf=\"!imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-between align-items-center px-0\">\r\n <span *ngIf=\"backnav\" class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"img-direc ms-2\">{{folderDate | date:'dd MMM, yyyy'}}</span>\r\n <div *ngIf=\"!normalize\" class=\"ms-auto text-end\">\r\n <form [formGroup]=\"form\">\r\n <lib-reactive-select \r\n [formControl]=\"selectControl\" \r\n [idField]=\"'value'\"\r\n [nameField]=\"'label'\"\r\n [data]=\"datasets\"\r\n class=\"w-100 text-start\"\r\n (valueChange)=\"onValueChange($event)\">\r\n </lib-reactive-select>\r\n </form>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-2 mb-2 w-100 overflow-x px-0\">\r\n <ng-container *ngIf=\"this.headerData?.client !=='459'\">\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray\">\r\n <ul *ngIf=\"lengthValue\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"this.headerData?.client ==='459'\">\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray.slice(0, -1)\">\r\n <ul *ngIf=\"lengthValue\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"loading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"noData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div *ngIf=\"normalize\" class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata1\" src=\"./assets/tango/Icons/not-applicable.svg\" alt=\"\">\r\n <div class=\"nodata-title mt-3\">Data Not Found</div>\r\n <div class=\"nodata-sub\">Normalized data is not applicable</div>\r\n </div>\r\n <div *ngIf=\"!normalize\" class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this image directory</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row px-0 img-traffic contain high-400px scroll-y\" *ngIf=\"!noData && !loading\">\r\n <div class=\"col-md-3 border-gray mx-2 p-2 mt-5\" *ngFor=\"let obj of imagesArrayData\">\r\n <img *ngIf=\"obj.images.entryTimeImage\" class=\"img-src cursor-pointer\" [src]=\"obj.images.entryTimeImage\" (error)=\"obj?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageView(obj,objData.footfallDate)\">\r\n <div *ngIf=\"!obj.images.entryTimeImage\" class=\"no-preview\">\r\n <span class=\"mb-5\" >\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n\r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n <div class=\"row px-2 mb-2\">\r\n <div class=\"col-md-8\">\r\n <div class=\"py-2 img-doc-directory\"><span class=\"badge badge-light-info\">{{obj.tempId}}</span> \r\n <!-- <span *ngIf=\"selectControl.value ==='missedOpportunity'\" class=\"badge badge-light-success ms-2\">Missed Opportunity</span>\r\n <span *ngIf=\"selectControl.value ==='bounced'\" class=\"badge badge-light-success ms-2\">Bounced Footfall</span> -->\r\n <span *ngIf=\"obj?.revopsType || selectControl.value as value\"\r\n class=\"badge ms-2\"\r\n [ngClass]=\"{\r\n 'badge-light-success': value === 'footfall' || value === 'purchaser',\r\n 'badge-light-warning': value === 'nonShopper',\r\n 'badge-light-danger': value === 'bounced' || value === 'engager' || value === 'missedOpportunity' || value === 'conversion',\r\n 'badge-light-primary': !value\r\n }\">\r\n {{\r\n value === 'purchaser' ? 'Purchaser' :\r\n value === 'nonShopper' ? 'Non Shopper' :\r\n value === 'missedOpportunity' ? 'Missed Opportunity' :\r\n (value | titlecase)\r\n }}\r\n </span>\r\n </div>\r\n <div class=\"py-2 img-doc-time\">Entry Time</div>\r\n <div *ngIf=\"clientData?.trackerFF\" class=\"py-2 img-doc-time\">Exit Time</div>\r\n <div *ngIf=\"clientData?.trackerFF\" class=\"py-2 img-doc-time\">Total Time Spent</div>\r\n </div>\r\n <div class=\"col-md-4 text-end\" >\r\n <div class=\"py-2\">\r\n <span class=\"cursor-pointer\" *ngIf=\"!obj?.revopsType||obj?.revopsType===''\" ngbTooltip=\"Yet to tag the customer\" (click)=\"revopTagging(obj)\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22852)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.37328 0.00201606C7.20932 -0.023315 6.05385 0.205711 4.98755 0.673106C3.92125 1.1405 2.96981 1.835 2.19967 2.70811C1.42952 3.58123 0.859225 4.61192 0.528596 5.72822C0.197966 6.84453 0.114971 8.01955 0.285404 9.17124C0.455837 10.3229 0.875591 11.4236 1.51536 12.3963C2.15513 13.369 2.9995 14.1903 3.98951 14.8029C4.97953 15.4156 6.09133 15.8048 7.2473 15.9433C8.40326 16.0818 9.57554 15.9664 10.6823 15.605C10.8714 15.5432 11.0282 15.4088 11.1182 15.2314C11.2082 15.054 11.2241 14.8481 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6113 14.1331 10.4054 14.1172 10.2163 14.179C9.01359 14.5717 7.72242 14.6049 6.50114 14.2745C5.27986 13.9441 4.18155 13.2644 3.34092 12.3189C2.50028 11.3734 1.95386 10.2031 1.76867 8.95151C1.58348 7.69995 1.76757 6.42155 2.29837 5.27309C2.82916 4.12463 3.68358 3.15604 4.75684 2.48611C5.83011 1.81618 7.07555 1.47403 8.34044 1.50163C9.60533 1.52922 10.8347 1.92536 11.8777 2.64147C12.9207 3.35757 13.7321 4.3625 14.2123 5.53302C14.2877 5.71708 14.4332 5.86362 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44721 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05515 15.6003 4.96402C15.0093 3.52331 14.0107 2.28639 12.7269 1.40498C11.4432 0.523571 9.93012 0.0359815 8.37328 0.00201606ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.58796 3.07903 8.39719 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41428 9.72302C5.34059 9.79168 5.28149 9.87448 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.26788 10.646 5.32402 10.7308 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.32282 10.9158 6.40562 10.8567 6.47428 10.783L8.72828 8.53002L8.94828 8.31002V3.75002ZM15.1983 15C15.1983 15.2652 15.0929 15.5196 14.9054 15.7071C14.7179 15.8947 14.4635 16 14.1983 16C13.9331 16 13.6787 15.8947 13.4912 15.7071C13.3036 15.5196 13.1983 15.2652 13.1983 15C13.1983 14.7348 13.3036 14.4804 13.4912 14.2929C13.6787 14.1054 13.9331 14 14.1983 14C14.4635 14 14.7179 14.1054 14.9054 14.2929C15.0929 14.4804 15.1983 14.7348 15.1983 15ZM14.9483 8.75002C14.9483 8.5511 14.8693 8.36034 14.7286 8.21969C14.588 8.07903 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07903 13.668 8.21969C13.5273 8.36034 13.4483 8.5511 13.4483 8.75002V12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3972 13 14.588 12.921 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V8.75002Z\" fill=\"#F79009\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.1858 4.10379C15.0996 3.94907 15.0083 3.79744 14.9121 3.64911C14.5747 3.12843 14.1776 2.64854 13.7289 2.21932C13.4187 1.92257 13.0839 1.65004 12.7269 1.40498C12.7269 1.40493 12.727 1.40504 12.7269 1.40498C12.5144 1.25906 12.2954 1.12379 12.0711 0.999729C11.8255 0.863893 11.5734 0.741322 11.3159 0.632377C10.3882 0.239873 9.39006 0.024199 8.37328 0.00201606C8.37324 0.00201518 8.37332 0.00201694 8.37328 0.00201606C8.31496 0.00074779 8.25655 0.000115387 8.19828 0.000122124C7.1276 0.00024592 6.06754 0.215304 5.08108 0.632816C5.04983 0.646043 5.01865 0.659473 4.98755 0.673106C4.76115 0.772343 4.53993 0.88182 4.32452 1.00107C4.20201 1.06889 4.08139 1.13987 3.96275 1.21393C3.30756 1.62296 2.71329 2.12581 2.19967 2.70811C1.68602 3.29043 1.26127 3.94285 0.937232 4.644C0.775415 4.99414 0.638713 5.35643 0.528596 5.72822C0.19799 6.84445 0.114983 8.01938 0.285366 9.17099C0.285354 9.17091 0.285379 9.17108 0.285366 9.17099C0.4558 10.3227 0.875591 11.4236 1.51536 12.3963C1.72835 12.7201 1.96402 13.0271 2.22019 13.3153C2.73349 13.8927 3.32909 14.3943 3.98951 14.8029C4.64967 15.2115 5.36398 15.5206 6.10943 15.7224C6.4819 15.8232 6.86215 15.8971 7.2473 15.9433C7.29123 15.9486 7.33519 15.9535 7.37917 15.958C8.01492 16.0235 8.65464 16.0124 9.28478 15.9261C9.52146 15.8937 9.75678 15.8507 9.99004 15.7971C10.223 15.7436 10.4539 15.6796 10.6819 15.6051C10.6818 15.6052 10.6821 15.6051 10.6819 15.6051C10.7196 15.5928 10.7563 15.5775 10.7911 15.5597C10.9312 15.488 11.0461 15.3735 11.1182 15.2314C11.1554 15.1581 11.18 15.0799 11.1916 15C11.2081 14.8867 11.1985 14.77 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6114 14.1331 10.4056 14.1172 10.2166 14.1789C10.2165 14.1789 10.2168 14.1789 10.2166 14.1789C10.1121 14.213 10.0065 14.2446 9.90073 14.2733C9.74848 14.3146 9.59506 14.3503 9.44078 14.3803C9.37146 14.3938 9.30196 14.4062 9.23233 14.4174C8.8548 14.4782 8.47302 14.5055 8.09144 14.4992C7.99568 14.4976 7.89992 14.4939 7.80426 14.4881C7.6779 14.4804 7.55168 14.4691 7.42578 14.454C7.36133 14.4463 7.29696 14.4376 7.23269 14.4279C6.98693 14.391 6.74267 14.3399 6.50114 14.2745C6.32933 14.228 6.15995 14.1746 5.99337 14.1146C5.56809 13.9612 5.16112 13.7642 4.7787 13.5276C4.73373 13.4998 4.68911 13.4714 4.64483 13.4425C4.27003 13.1978 3.92028 12.9142 3.60174 12.5956C3.51229 12.5061 3.42531 12.4138 3.34092 12.3189C3.13139 12.0832 2.94014 11.8336 2.76821 11.5722C2.76385 11.5656 2.7595 11.559 2.75516 11.5523C2.47964 11.1301 2.25437 10.6775 2.08368 10.2039C1.93807 9.79993 1.83218 9.38061 1.76871 8.95174C1.76869 8.95166 1.76872 8.95182 1.76871 8.95174C1.74125 8.76621 1.72188 8.57986 1.71059 8.39367C1.70471 8.29683 1.70101 8.19998 1.69948 8.10317C1.68902 7.44355 1.77905 6.78626 1.96631 6.15405C2.0552 5.85394 2.16601 5.55947 2.29837 5.27309C2.56378 4.69883 2.91011 4.16954 3.32425 3.70007C3.36618 3.65254 3.4088 3.60563 3.4521 3.55934C3.83649 3.14848 4.27458 2.78714 4.75684 2.48611C5.02452 2.31903 5.30291 2.17233 5.58963 2.04668C5.80471 1.95242 6.02449 1.87 6.24796 1.7997C6.87628 1.60202 7.5338 1.50012 8.19828 1.50008C8.24563 1.50008 8.29302 1.50059 8.34044 1.50163C8.95745 1.51511 9.5662 1.61629 10.1488 1.79952C10.7605 1.99189 11.3435 2.27472 11.8777 2.64147C11.8776 2.64142 11.8778 2.64151 11.8777 2.64147C12.0839 2.78304 12.2812 2.93603 12.4685 3.09922C12.6351 3.24436 12.7939 3.39767 12.9444 3.55848C13.0974 3.72197 13.2419 3.89322 13.3771 4.07152C13.5555 4.3066 13.7179 4.55395 13.8631 4.81195C13.9427 4.95336 14.0171 5.09798 14.0861 5.24552C14.1253 5.32914 14.1627 5.41371 14.1983 5.49916C14.203 5.51043 14.2076 5.52172 14.2123 5.53302C14.2122 5.53292 14.2123 5.53312 14.2123 5.53302C14.2878 5.71693 14.4333 5.86367 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44722 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05516 15.6003 4.96402C15.6002 4.9639 15.6003 4.96414 15.6003 4.96402C15.5091 4.74187 15.4082 4.5242 15.2981 4.31229C15.2617 4.2422 15.2242 4.17269 15.1858 4.10379ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.61405 3.10512 8.46624 3.03145 8.30786 3.00806C8.27188 3.00276 8.23508 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41452 9.72278C5.40159 9.73483 5.38887 9.74755 5.37686 9.76044C5.32041 9.82102 5.2743 9.89062 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.23863 10.5736 5.24804 10.5942 5.25834 10.6142C5.29387 10.6834 5.34002 10.7468 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.30668 10.923 6.37628 10.8769 6.43686 10.8204C6.44966 10.8085 6.46206 10.7961 6.47403 10.7833C6.47395 10.7834 6.47411 10.7832 6.47403 10.7833L8.94828 8.31002V3.75002ZM13.4483 12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3895 13 14.5732 12.927 14.7121 12.7963C14.7177 12.7911 14.7232 12.7858 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V10.0566C14.7015 10.0191 14.4509 10 14.1983 10C13.9457 10 13.695 10.0191 13.4483 10.0566V12.25ZM13.4483 9.76927C13.6932 9.84828 13.9441 9.90719 14.1983 9.94551C14.4264 9.97989 14.6572 9.99769 14.8889 9.99854C14.9087 9.99861 14.9285 9.99856 14.9483 9.99838V8.75002C14.9483 8.65356 14.9297 8.55901 14.8945 8.47117C14.8571 8.37787 14.8011 8.29213 14.7286 8.21969C14.588 8.07904 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07904 13.668 8.21969C13.665 8.22268 13.662 8.22569 13.6591 8.22872C13.5282 8.3641 13.453 8.54376 13.4485 8.73188C13.4484 8.73792 13.4483 8.74397 13.4483 8.75002V9.76927ZM15.1963 15.0626C15.1976 15.0418 15.1983 15.0209 15.1983 15C15.1983 14.9984 15.1983 14.9968 15.1983 14.9951C15.197 14.7317 15.0918 14.4793 14.9054 14.2929C14.7178 14.1054 14.4635 14 14.1983 14C13.9331 14 13.6787 14.1054 13.4912 14.2929C13.3036 14.4804 13.1983 14.7348 13.1983 15C13.1983 15.2652 13.3036 15.5196 13.4912 15.7071C13.6787 15.8947 13.9331 16 14.1983 16C14.4635 16 14.7178 15.8947 14.9054 15.7071C15.0781 15.5344 15.1811 15.305 15.1963 15.0626Z\" fill=\"#F79009\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22852\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.199219)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"cursor-pointer\" *ngIf=\"obj?.revopsType&&obj?.revopsType!==''\" (click)=\"revopTagging(obj)\" ngbTooltip=\"Customer Tagging is Done\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22856)\">\r\n <path d=\"M15.0638 7.38662V7.99995C15.063 9.43756 14.5975 10.8364 13.7367 11.9878C12.8759 13.1393 11.666 13.9816 10.2874 14.3892C8.90876 14.7968 7.43531 14.7479 6.08678 14.2497C4.73826 13.7515 3.58691 12.8307 2.80444 11.6247C2.02198 10.4186 1.65033 8.99199 1.74492 7.55749C1.83951 6.12299 2.39527 4.7575 3.32932 3.66467C4.26337 2.57183 5.52566 1.81021 6.92793 1.49338C8.3302 1.17656 9.79731 1.32151 11.1105 1.90662M15.0638 2.66662L8.39714 9.33995L6.39714 7.33995\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22856\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.398438)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"py-2 img-doc-value\">{{obj.timeSpent.entryTime}} </div>\r\n <div *ngIf=\"clientData?.trackerFF\" class=\"py-2 img-doc-value\">{{obj.timeSpent.exitTime}}</div>\r\n <div *ngIf=\"clientData?.trackerFF\" class=\"py-2 img-doc-value\">{{obj.timeSpent.totalTimeSpent}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </section>\r\n <section *ngIf=\"imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-between align-items-center px-0\">\r\n <div class=\"\">\r\n <span class=\"cursor-pointer\" (click)=\"backToView()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"ms-2 py-2 img-doc-directory\"><span class=\"badge badge-light-info\">{{Imagedata.tempId}}</span> \r\n <ng-container *ngIf=\"Imagedata?.revopsType || selectControl.value as value\">\r\n <span *ngIf=\"value\"\r\n class=\"badge ms-2\"\r\n [ngClass]=\"{\r\n 'badge-light-success': value === 'footfall' || value === 'purchaser',\r\n 'badge-light-warning': value === 'nonShopper',\r\n 'badge-light-danger': value === 'bounced' || value === 'engager' || value === 'missedOpportunity' || value === 'conversion'\r\n }\">\r\n {{\r\n value === 'purchaser' ? 'Purchaser' :\r\n value === 'nonShopper' ? 'Non Shopper' :\r\n value === 'missedOpportunity' ? 'Missed Opportunity' :\r\n (value | titlecase)\r\n }}\r\n </span>\r\n </ng-container>\r\n \r\n \r\n </span>\r\n </div>\r\n <div class=\"\">\r\n <span class=\"cursor-pointer\" [ngClass]=\"{ 'cursor-not-allowed opacity-50': isFirstImage() }\"\r\n [style.pointer-events]=\"isFirstImage() ? 'none' : 'auto'\"\r\n (click)=\"!isFirstImage() && previous()\" ><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <path d=\"M0.5 8C0.5 3.85786 3.85786 0.5 8 0.5H39.5V39.5H8C3.85786 39.5 0.5 36.1421 0.5 32V8Z\"\r\n fill=\"white\" />\r\n <path d=\"M0.5 8C0.5 3.85786 3.85786 0.5 8 0.5H39.5V39.5H8C3.85786 39.5 0.5 36.1421 0.5 32V8Z\"\r\n stroke=\"#D0D5DD\" />\r\n <path d=\"M22.5 25L17.5 20L22.5 15\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <span class=\"cursor-pointer\" [ngClass]=\"{ 'cursor-not-allowed opacity-50': isLastImage() }\"\r\n [style.pointer-events]=\"isLastImage() ? 'none' : 'auto'\"\r\n (click)=\"!isLastImage() && next()\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <path d=\"M0.5 0.5H32C36.1421 0.5 39.5 3.85786 39.5 8V32C39.5 36.1421 36.1421 39.5 32 39.5H0.5V0.5Z\"\r\n fill=\"white\" />\r\n <path d=\"M0.5 0.5H32C36.1421 0.5 39.5 3.85786 39.5 8V32C39.5 36.1421 36.1421 39.5 32 39.5H0.5V0.5Z\"\r\n stroke=\"#D0D5DD\" />\r\n <path d=\"M17.5 25L22.5 20L17.5 15\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row contain mt-10\">\r\n <div class=\"col-md-6 col-lg-6 col-xl-6\">\r\n <img class=\"cursor-pointer\" class=\"img-src1\" [src]=\"Images\"\r\n (error)=\"Images = null\" alt=\"\">\r\n <div *ngIf=\"!Images\" class=\"no-preview\">\r\n <span class=\"mb-5\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\" d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n \r\n \r\n \r\n <div class=\"row slider mt-5\">\r\n <ng-container>\r\n <div class=\"col-4\" *ngIf=\"Imagedata?.images?.entryTimeImage\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.entryTimeImage,\r\n 'border-gray': Images !== Imagedata?.images?.entryTimeImage\r\n }\">\r\n <div>Entry Time</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.entryTimeImage\"\r\n (error)=\"Imagedata?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageData('entry')\">\r\n <div *ngIf=\"!Imagedata?.images?.entryTimeImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\" *ngIf=\"Imagedata?.images?.staffEngagementImage\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.staffEngagementImage,\r\n 'border-gray': Images !== Imagedata?.images?.staffEngagementImage\r\n }\">\r\n <div>Staff Engagement</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.staffEngagementImage\"\r\n (error)=\"Imagedata?.images.staffEngagementImage = null\" alt=\"\" (click)=\"imageData('staff')\">\r\n <div *ngIf=\"!Imagedata?.images?.staffEngagementImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4 \" *ngIf=\"Imagedata?.images?.exitTimeImage && this.clientData.trackerFF\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.exitTimeImage,\r\n 'border-gray': Images !== Imagedata?.images?.exitTimeImage\r\n }\">\r\n <div>Exit Time</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.exitTimeImage\"\r\n (error)=\"Imagedata?.images.exitTimeImage = null\" alt=\"\" (click)=\"imageData('exit')\">\r\n <div *ngIf=\"!Imagedata?.images?.exitTimeImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n </div>\r\n <div class=\"col-md-6 col-lg-6 col-xl-6 pe-0 mb-3\">\r\n <ul class=\"nav flex-wrap nav-dev fw-bold align-items-center\">\r\n <li class=\"nav-item my-1 w-50\">\r\n <a (click)=\"selectedTab = 'tagged'\" [ngClass]=\"{\r\n 'tab-active': selectedTab === 'tagged'\r\n }\" class=\"tab-text-default btn nav-link px-3 px-lg-8 mx-1\">\r\n Tagged Info\r\n </a>\r\n </li>\r\n \r\n <li class=\"nav-item my-1 w-50\">\r\n <a (click)=\"selectedTab = 'customer'\" [ngClass]=\"{\r\n 'tab-active': selectedTab === 'customer'\r\n }\" class=\"tab-text-default btn nav-link px-3 px-lg-8 mx-1\">\r\n Customer Info\r\n </a>\r\n </li>\r\n </ul>\r\n <section *ngIf=\"selectedTab === 'tagged'\">\r\n <div class=\"row mx-3 mt-5 mb-3\">\r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioNonShopper\"\r\n value=\"nonShopper\" [(ngModel)]=\"selectedCustomerType\" (change)=\"onRadioChange('nonShopper')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioNonShopper\">\r\n Non Shopper\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioPurchaser\" value=\"purchaser\"\r\n [(ngModel)]=\"selectedCustomerType\" (change)=\"onRadioChange('purchaser')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioPurchaser\">\r\n Purchaser\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check \">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioMissed\"\r\n value=\"missedOpportunity\" [(ngModel)]=\"selectedCustomerType\"\r\n (change)=\"onRadioChange('missedOpportunity')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioMissed\">\r\n Missed Opportunity\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <section *ngIf=\"selectedCustomerType ==='nonShopper'\">\r\n <div class=\"row mt-5 mx-3\">\r\n <div class=\"border-gray-active1\">\r\n <span *ngFor=\"let obj of nonShopperList\" class=\"cursor-pointer\">\r\n <div class=\"badge mt-3 me-8\" [ngClass]=\"obj!==nonShoperType ? 'badge-light-default' :'badge-light-primary'\" (click)=\"selectnonShoper(obj)\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" *ngIf=\"obj!==nonShoperType\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M6 2.5V9.5M2.5 6H9.5\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" *ngIf=\"obj===nonShoperType\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" rx=\"8\" fill=\"#DAF1FF\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.3977 4.92661L6.62434 9.53328L5.35767 8.17994C5.12434 7.95994 4.75767 7.94661 4.491 8.13328C4.231 8.32661 4.15767 8.66661 4.31767 8.93994L5.81767 11.3799C5.96434 11.6066 6.21767 11.7466 6.50434 11.7466C6.77767 11.7466 7.03767 11.6066 7.18434 11.3799C7.42434 11.0666 12.0043 5.60661 12.0043 5.60661C12.6043 4.99328 11.8777 4.45328 11.3977 4.91994V4.92661Z\" fill=\"#33B5FF\"/>\r\n </svg>\r\n <span class=\"ms-3\">{{obj}}</span></div>\r\n </span>\r\n \r\n <div class=\"col-md-12 mt-5 pb-10\">\r\n <div class=\"form-group\">\r\n <label for=\"exampleInputName\">Description (Optional)</label>\r\n <textarea [(ngModel)]=\"description\" class=\"form-control mt-3\" rows=\"4\" placeholder=\"\"></textarea>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"text-end mt-5\" (click)=\"nonShopperSubmit()\" >\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </div>\r\n </section>\r\n <section *ngIf=\"selectedCustomerType ==='purchaser'\">\r\n <div class=\"row mt-5\">\r\n <form [formGroup]=\"userForm\" (ngSubmit)=\"onSubmit()\">\r\n <div class=\"row border-gray-active1\">\r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"name\">Name</label>\r\n <input\r\n type=\"text\"\r\n id=\"name\"\r\n class=\"form-control mt-3\"\r\n placeholder=\"Enter Name\" autocomplete=\"off\"\r\n formControlName=\"name\" required [ngClass]=\"{ 'is-invalid':userForm.get('name')?.invalid && (userForm.get('name')?.touched)}\"\r\n />\r\n <div *ngIf=\"isInvalid('name')\" class=\"text-danger\">\r\n <div *ngIf=\"f.name.errors?.required\">Name is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 col-lg-6 col-xl-6 col-xxl-6 mt-3\">\r\n <label for=\"contact\" class=\"form-label\">Contact Number <span class=\"alert-required text-danger\">*</span></label>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 col-lg-4 col-xl-4\">\r\n <select class=\"form-select ps-3 pe-8\" id=\"inputGroupSelect01\" formControlName=\"countryCode\">\r\n <option *ngFor=\"let country of countryList\" [value]=\"country.phonecode\">\r\n {{country.name}} ({{country.phonecode}})\r\n </option>\r\n </select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-8 col-xl-8\">\r\n <input type=\"text\" class=\"form-control\" (keypress)=\"omit_special_char($event)\"\r\n id=\"mobile\" autocomplete=\"off\" formControlName=\"mobile\" minlength=\"8\" maxlength=\"13\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('mobile')?.invalid && (userForm.get('mobile')?.touched)}\">\r\n <div *ngIf=\"isInvalid('mobile')\" class=\"text-danger\">\r\n <div *ngIf=\"f.mobile.errors?.required\">Contact Number is required.</div>\r\n <div *ngIf=\"f.mobile.errors?.minlength\">Contact Number must be at least 8 digits.</div>\r\n <div *ngIf=\"f.mobile.errors?.maxlength\">Contact Number cannot exceed 13 digits.</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 col-lg-6 col-xl-6 col-xxl-6 mt-3\">\r\n <label for=\"email\" class=\"form-label\">Email <span class=\"alert-required text-danger\">*</span></label>\r\n <input type=\"email\" class=\"form-control\" id=\"email\" formControlName=\"email\" autocomplete=\"off\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('email')?.invalid && (userForm.get('email')?.touched)}\">\r\n <div *ngIf=\"isInvalid('email')\" class=\"text-danger\">\r\n <div *ngIf=\"f.email.errors?.required\">Email is required.</div>\r\n <div *ngIf=\"f.email.errors?.pattern\">Invalid email format.</div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"location\">Location</label>\r\n <!-- <input\r\n type=\"text\"\r\n id=\"location\"\r\n class=\"form-control mt-3\"\r\n placeholder=\"Location\"\r\n formControlName=\"location\"\r\n /> -->\r\n <input type=\"text\" class=\"form-control mt-3\" id=\"location\" formControlName=\"location\" #placesRef=\"ngx-places\" ngx-gp-autocomplete (onAddressChange)=\"handleAddressChange($event)\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('location')?.invalid && (userForm.get('location')?.touched)}\">\r\n <div *ngIf=\"(f.location.touched || submitted) && f.location.errors\" class=\"text-danger\">\r\n <div *ngIf=\"f.location.errors.required\">Location is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"age\">Age</label>\r\n <div class=\"input-group\">\r\n <button\r\n type=\"button\"\r\n class=\"btn pt-5 position-absolute top-50 translate-middle-y\"\r\n style=\"left: 0.25rem;\"\r\n (click)=\"decrementAge()\"\r\n >\r\n -\r\n </button>\r\n \r\n <input\r\n type=\"text\" (keypress)=\"omit_special_char($event)\"\r\n id=\"age\"\r\n class=\"form-control pe-5 text-center mt-3\"\r\n formControlName=\"age\"\r\n min=\"1\" max=\"99\"\r\n />\r\n \r\n <button\r\n type=\"button\"\r\n class=\"btn pt-5 position-absolute top-50 translate-middle-y\"\r\n style=\"right: 2.5rem;\"\r\n (click)=\"incrementAge()\"\r\n >\r\n +\r\n </button>\r\n </div>\r\n <div *ngIf=\"submitted && f.age.errors\" class=\"text-danger mt-1\">\r\n <div *ngIf=\"f.age.errors.required\">Age is required</div>\r\n <div *ngIf=\"f.age.errors.min\">Age must be at least 1</div>\r\n <div *ngIf=\"f.age.errors.max\">Age must be at least 99</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"gender\">Gender</label>\r\n <select class=\"form-select mt-3\" formControlName=\"gender\">\r\n <option value=\"\">Select Gender</option>\r\n <option value=\"male\">Male</option>\r\n <option value=\"female\">Female</option>\r\n </select>\r\n <div *ngIf=\"submitted && f.gender.errors\" class=\"text-danger\">\r\n <div *ngIf=\"f.gender.errors.required\">Gender is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"text-end mt-5\">\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </form>\r\n \r\n \r\n </div>\r\n </section>\r\n <section *ngIf=\"selectedCustomerType ==='missedOpportunity'\">\r\n <div class=\"row mt-5 mx-3 border-gray-active1\">\r\n \r\n <div\r\n *ngFor=\"let obj of missedOpportunityList\"\r\n class=\"nav-item nav-item1 w-25\"\r\n (click)=\"selectedTabs(obj.name)\">\r\n <span\r\n [ngClass]=\"selectedMissed === obj.name ? 'active' : 'active-normal'\"\r\n class=\"nav-link nav-link1 cursor-pointer text-nowrap\">\r\n {{ obj.name }}\r\n </span>\r\n </div>\r\n \r\n <div class=\"separator separator-double mb-3\"></div>\r\n <!-- Issue Badges -->\r\n <div *ngFor=\"let obj of missedOpportunityList\">\r\n <div *ngIf=\"selectedMissed === obj.name\" class=\"mt-4\">\r\n <span *ngFor=\"let item of obj.issues\">\r\n \r\n <span\r\n (click)=\"selectSubissue(obj, item)\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': selectedIssues.includes(item),\r\n 'badge-light-default':!selectedIssues.includes(item)\r\n }\"\r\n class=\"badge mt-2 me-2 cursor-pointer\">\r\n <span class=\"me-2\" *ngIf=\"!selectedIssues.includes(item)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M6 2.5V9.5M2.5 6H9.5\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <span class=\"me-2\" *ngIf=\"selectedIssues.includes(item)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" rx=\"8\" fill=\"#DAF1FF\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.3977 4.92661L6.62434 9.53328L5.35767 8.17994C5.12434 7.95994 4.75767 7.94661 4.491 8.13328C4.231 8.32661 4.15767 8.66661 4.31767 8.93994L5.81767 11.3799C5.96434 11.6066 6.21767 11.7466 6.50434 11.7466C6.77767 11.7466 7.03767 11.6066 7.18434 11.3799C7.42434 11.0666 12.0043 5.60661 12.0043 5.60661C12.6043 4.99328 11.8777 4.45328 11.3977 4.91994V4.92661Z\" fill=\"#33B5FF\"/>\r\n </svg>\r\n </span>\r\n {{ item }}\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"mt-4\">\r\n <label class=\"form-label\">Description (Optional)</label>\r\n <textarea\r\n rows=\"3\"\r\n class=\"form-control\"\r\n placeholder=\"Enter comments\"\r\n [(ngModel)]=\"description\"\r\n ></textarea>\r\n </div>\r\n \r\n \r\n <div class=\"text-end mt-5\" (click)=\"submitMissedOpportunity()\">\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </div>\r\n </section>\r\n </section>\r\n <section *ngIf=\"selectedTab === 'customer'\">\r\n <div class=\"row mt-10\">\r\n <div class=\"col-md-6\">\r\n <span class=\"tag-class\">Tagged Summary <span *ngIf=\"tagggedData?.status==='submitted'\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M14.6668 7.38674V8.00007C14.666 9.43769 14.2005 10.8365 13.3397 11.988C12.4789 13.1394 11.269 13.9817 9.8904 14.3893C8.51178 14.797 7.03834 14.748 5.68981 14.2498C4.34128 13.7516 3.18993 12.8308 2.40747 11.6248C1.62501 10.4188 1.25336 8.99211 1.34795 7.55761C1.44254 6.12312 1.9983 4.75762 2.93235 3.66479C3.8664 2.57195 5.12869 1.81033 6.53096 1.4935C7.93323 1.17668 9.40034 1.32163 10.7135 1.90674M14.6668 2.66674L8.00017 9.34007L6.00017 7.34007\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> </span>\r\n </div>\r\n <div class=\"col-md-6 text-end\" *ngIf=\"tagggedData?.status!='submitted'\">\r\n <span class=\"badge badge-light-warning ms-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10901_7795)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.13152 0.00142049C5.25855 -0.0175778 4.39195 0.154192 3.59222 0.504738C2.7925 0.855283 2.07892 1.37616 1.50131 2.03099C0.923703 2.68583 0.495981 3.45885 0.248009 4.29608C3.70294e-05 5.1333 -0.0622095 6.01457 0.0656154 6.87834C0.19344 7.74212 0.508256 8.56758 0.988083 9.29711C1.46791 10.0266 2.10119 10.6426 2.8437 11.1021C3.58621 11.5616 4.42006 11.8535 5.28703 11.9574C6.15401 12.0613 7.03322 11.9747 7.86327 11.7037C8.0051 11.6573 8.1227 11.5565 8.19022 11.4235C8.25773 11.2904 8.26962 11.136 8.22327 10.9942C8.17693 10.8523 8.07614 10.7347 7.94308 10.6672C7.81002 10.5997 7.6556 10.5878 7.51377 10.6342C6.61175 10.9287 5.64338 10.9536 4.72742 10.7058C3.81146 10.458 2.98773 9.94825 2.35725 9.2391C1.72677 8.52995 1.31696 7.65221 1.17807 6.71354C1.03917 5.77487 1.17724 4.81607 1.57534 3.95473C1.97343 3.09338 2.61425 2.36694 3.4192 1.86449C4.22414 1.36204 5.15823 1.10543 6.10689 1.12613C7.05556 1.14683 7.97756 1.44393 8.75983 1.98101C9.5421 2.51809 10.1506 3.27178 10.5108 4.14967C10.5674 4.28772 10.6765 4.39763 10.8141 4.45522C10.8822 4.48374 10.9553 4.49856 11.0292 4.49883C11.1031 4.4991 11.1763 4.48482 11.2446 4.4568C11.313 4.42878 11.3752 4.38757 11.4276 4.33552C11.48 4.28347 11.5217 4.22161 11.5502 4.15347C11.5787 4.08532 11.5935 4.01222 11.5938 3.93835C11.5941 3.86448 11.5798 3.79127 11.5518 3.72292C11.1085 2.64239 10.3596 1.7147 9.39677 1.05365C8.43396 0.392587 7.29915 0.0268946 6.13152 0.00142049ZM6.56277 2.81242C6.56277 2.66324 6.50351 2.52016 6.39802 2.41467C6.29253 2.30918 6.14946 2.24992 6.00027 2.24992C5.85109 2.24992 5.70801 2.30918 5.60252 2.41467C5.49704 2.52016 5.43777 2.66324 5.43777 2.81242V5.76742L3.91227 7.29217C3.85701 7.34367 3.81268 7.40577 3.78194 7.47477C3.75119 7.54377 3.73466 7.61825 3.73333 7.69378C3.732 7.76931 3.74589 7.84433 3.77418 7.91437C3.80247 7.98441 3.84458 8.04804 3.89799 8.10145C3.95141 8.15486 4.01503 8.19697 4.08507 8.22526C4.15512 8.25355 4.23014 8.26745 4.30566 8.26612C4.38119 8.26478 4.45568 8.24825 4.52468 8.21751C4.59368 8.18676 4.65578 8.14244 4.70727 8.08717L6.39777 6.39742L6.56277 6.23242V2.81242ZM11.2503 11.2499C11.2503 11.4488 11.1713 11.6396 11.0306 11.7803C10.8899 11.9209 10.6992 11.9999 10.5003 11.9999C10.3014 11.9999 10.1106 11.9209 9.96994 11.7803C9.82929 11.6396 9.75027 11.4488 9.75027 11.2499C9.75027 11.051 9.82929 10.8602 9.96994 10.7196C10.1106 10.5789 10.3014 10.4999 10.5003 10.4999C10.6992 10.4999 10.8899 10.5789 11.0306 10.7196C11.1713 10.8602 11.2503 11.051 11.2503 11.2499ZM11.0628 6.56242C11.0628 6.41324 11.0035 6.27016 10.898 6.16467C10.7925 6.05919 10.6495 5.99992 10.5003 5.99992C10.3511 5.99992 10.208 6.05919 10.1025 6.16467C9.99704 6.27016 9.93777 6.41324 9.93777 6.56242V9.18742C9.93777 9.33661 9.99704 9.47968 10.1025 9.58517C10.208 9.69066 10.3511 9.74992 10.5003 9.74992C10.6495 9.74992 10.7925 9.69066 10.898 9.58517C11.0035 9.47968 11.0628 9.33661 11.0628 9.18742V6.56242Z\" fill=\"#B54708\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.2409 3.07775C11.1762 2.96171 11.1078 2.84799 11.0357 2.73674C10.7826 2.34623 10.4848 1.98631 10.1483 1.6644C9.91561 1.44184 9.66446 1.23744 9.39677 1.05365C9.39672 1.05361 9.39683 1.05368 9.39677 1.05365C9.23737 0.944207 9.07308 0.842748 8.90487 0.749705C8.7207 0.647828 8.53163 0.5559 8.3385 0.474192C7.64269 0.179813 6.8941 0.0180577 6.13152 0.00142049C6.13149 0.00141983 6.13155 0.00142115 6.13152 0.00142049C6.08778 0.00046929 6.04397 -5.01265e-06 6.00027 3.99426e-08C5.19726 9.28871e-05 4.40222 0.161386 3.66237 0.47452C3.63893 0.484441 3.61555 0.494513 3.59222 0.504738C3.42243 0.579166 3.25651 0.661273 3.09496 0.75071C3.00307 0.801577 2.9126 0.854814 2.82363 0.910359C2.33223 1.21713 1.88653 1.59427 1.50131 2.03099C1.11608 2.46773 0.797516 2.95704 0.554486 3.48291C0.433124 3.74551 0.330597 4.01723 0.248009 4.29608C5.51343e-05 5.13324 -0.0622004 6.01444 0.0655874 6.87815C0.065578 6.87809 0.0655967 6.87822 0.0655874 6.87815C0.193412 7.74193 0.508256 8.56758 0.988083 9.29711C1.14783 9.53998 1.32458 9.77027 1.51671 9.98639C1.90168 10.4194 2.34838 10.7956 2.8437 11.1021C3.33882 11.4085 3.87455 11.6404 4.43364 11.7917C4.71299 11.8673 4.99817 11.9228 5.28703 11.9574C5.31999 11.9613 5.35296 11.965 5.38594 11.9684C5.86275 12.0175 6.34254 12.0092 6.81514 11.9445C6.99265 11.9202 7.16915 11.8879 7.34409 11.8477C7.5188 11.8076 7.69196 11.7596 7.86302 11.7038C7.86294 11.7038 7.86311 11.7037 7.86302 11.7038C7.89127 11.6945 7.9188 11.6831 7.94492 11.6697C8.04995 11.6159 8.13615 11.53 8.19022 11.4235C8.21812 11.3685 8.23653 11.3098 8.24524 11.2499C8.25761 11.1649 8.25046 11.0774 8.22327 10.9942C8.17693 10.8523 8.07614 10.7347 7.94308 10.6672C7.81011 10.5998 7.65579 10.5878 7.51404 10.6341C7.51395 10.6341 7.51413 10.6341 7.51404 10.6341C7.43563 10.6597 7.35645 10.6833 7.27711 10.7049C7.16292 10.7359 7.04786 10.7626 6.93215 10.7851C6.88016 10.7953 6.82804 10.8045 6.77581 10.8129C6.49267 10.8585 6.20633 10.879 5.92014 10.8743C5.84832 10.8731 5.7765 10.8704 5.70476 10.866C5.60998 10.8602 5.51532 10.8517 5.4209 10.8404C5.37256 10.8346 5.32428 10.8281 5.27608 10.8208C5.09176 10.7931 4.90856 10.7548 4.72742 10.7058C4.59856 10.6709 4.47152 10.6309 4.34659 10.5858C4.02763 10.4708 3.7224 10.3231 3.43559 10.1456C3.40186 10.1248 3.36839 10.1035 3.33518 10.0818C3.05409 9.89826 2.79178 9.68556 2.55287 9.44658C2.48578 9.37947 2.42054 9.31029 2.35725 9.2391C2.20011 9.06234 2.05667 8.87512 1.92772 8.67908C1.92445 8.67411 1.92118 8.66913 1.91793 8.66414C1.7113 8.34749 1.54234 8.00807 1.41432 7.65286C1.30511 7.34986 1.2257 7.03536 1.17809 6.71371C1.17808 6.71366 1.1781 6.71377 1.17809 6.71371C1.1575 6.57457 1.14297 6.43481 1.1345 6.29516C1.1301 6.22253 1.12732 6.14989 1.12617 6.07729C1.11832 5.58257 1.18585 5.08961 1.3263 4.61545C1.39297 4.39036 1.47607 4.16951 1.57534 3.95473C1.7744 3.52403 2.03414 3.12706 2.34475 2.77496C2.3762 2.73932 2.40816 2.70413 2.44064 2.66942C2.72893 2.36127 3.05749 2.09027 3.4192 1.86449C3.61995 1.73918 3.82874 1.62916 4.04379 1.53492C4.2051 1.46422 4.36993 1.40241 4.53753 1.34968C5.00877 1.20143 5.50191 1.125 6.00027 1.12497C6.03579 1.12497 6.07133 1.12535 6.10689 1.12613C6.56965 1.13624 7.02621 1.21212 7.46315 1.34954C7.9219 1.49383 8.35919 1.70595 8.75983 1.98101C8.75978 1.98097 8.75988 1.98104 8.75983 1.98101C8.91447 2.08719 9.06247 2.20193 9.20295 2.32433C9.32789 2.43318 9.447 2.54816 9.55988 2.66877C9.67464 2.79139 9.78295 2.91982 9.8844 3.05355C10.0182 3.22986 10.14 3.41537 10.2489 3.60887C10.3086 3.71493 10.3644 3.82339 10.4162 3.93405C10.4455 3.99677 10.4736 4.06019 10.5003 4.12428C10.5038 4.13273 10.5073 4.1412 10.5108 4.14967C10.5107 4.14959 10.5108 4.14975 10.5108 4.14967C10.5674 4.28761 10.6765 4.39766 10.8141 4.45522C10.8822 4.48374 10.9553 4.49856 11.0292 4.49883C11.1031 4.4991 11.1763 4.48482 11.2446 4.4568C11.313 4.42878 11.3752 4.38757 11.4276 4.33552C11.48 4.28348 11.5217 4.22161 11.5502 4.15347C11.5787 4.08532 11.5935 4.01222 11.5938 3.93835C11.5941 3.86448 11.5798 3.79127 11.5518 3.72292C11.5517 3.72283 11.5518 3.72301 11.5518 3.72292C11.4834 3.55631 11.4077 3.39306 11.3251 3.23413C11.2978 3.18156 11.2697 3.12942 11.2409 3.07775ZM6.56277 2.81242C6.56277 2.66324 6.50351 2.52016 6.39802 2.41467C6.3121 2.32875 6.20124 2.2735 6.08246 2.25595C6.05548 2.25198 6.02787 2.24992 6.00027 2.24992C5.85109 2.24992 5.70801 2.30918 5.60252 2.41467C5.49704 2.52016 5.43777 2.66324 5.43777 2.81242V5.76742L3.91245 7.292C3.90275 7.30103 3.89322 7.31057 3.88421 7.32023C3.84187 7.36567 3.80729 7.41787 3.78194 7.47477C3.75119 7.54377 3.73466 7.61825 3.73333 7.69378C3.732 7.76931 3.74589 7.84433 3.77418 7.91437C3.78054 7.93011 3.78759 7.94552 3.79532 7.96057C3.82196 8.01249 3.85658 8.06004 3.89799 8.10145C3.95141 8.15487 4.01503 8.19697 4.08507 8.22526C4.15512 8.25356 4.23014 8.26745 4.30566 8.26612C4.38119 8.26478 4.45568 8.24825 4.52468 8.21751C4.58157 8.19216 4.63377 8.15757 4.67921 8.11524C4.68881 8.10629 4.69811 8.097 4.70708 8.08737C4.70702 8.08744 4.70715 8.08731 4.70708 8.08737L6.56277 6.23242V2.81242ZM9.93777 9.18742C9.93777 9.33661 9.99704 9.47968 10.1025 9.58517C10.208 9.69066 10.3511 9.74992 10.5003 9.74992C10.6437 9.74992 10.7815 9.69514 10.8857 9.59716C10.8898 9.59323 10.894 9.58924 10.898 9.58517C11.0035 9.47968 11.0628 9.33661 11.0628 9.18742V7.54234C10.8777 7.51426 10.6897 7.49992 10.5003 7.49992C10.3108 7.49992 10.1228 7.51426 9.93777 7.54234V9.18742ZM9.93777 7.32686C10.1215 7.38612 10.3096 7.4303 10.5003 7.45904C10.6714 7.48483 10.8445 7.49818 11.0183 7.49881C11.0331 7.49887 11.0479 7.49883 11.0628 7.4987V6.56242C11.0628 6.49008 11.0488 6.41917 11.0224 6.35328C10.9944 6.28331 10.9524 6.21901 10.898 6.16468C10.7925 6.05919 10.6495 5.99992 10.5003 5.99992C10.3511 5.99992 10.208 6.05919 10.1025 6.16468C10.1003 6.16692 10.0981 6.16917 10.0959 6.17145C9.9977 6.27299 9.94135 6.40773 9.93794 6.54882C9.93783 6.55335 9.93777 6.55788 9.93777 6.56242V7.32686ZM11.2488 11.2968C11.2498 11.2813 11.2503 11.2656 11.2503 11.2499C11.2503 11.2487 11.2503 11.2475 11.2503 11.2463C11.2493 11.0487 11.1704 10.8594 11.0306 10.7196C10.8899 10.5789 10.6992 10.4999 10.5003 10.4999C10.3014 10.4999 10.1106 10.5789 9.96994 10.7196C9.82929 10.8602 9.75027 11.051 9.75027 11.2499C9.75027 11.4488 9.82929 11.6396 9.96994 11.7803C10.1106 11.9209 10.3014 11.9999 10.5003 11.9999C10.6992 11.9999 10.8899 11.9209 11.0306 11.7803C11.1602 11.6507 11.2374 11.4786 11.2488 11.2968Z\" fill=\"#B54708\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10901_7795\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"ms-2\">Pending Tagged Info</span></span> \r\n </div>\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngIf=\"tagggedData?.revopsType==='purchaser'\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Name</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.name}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Location</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.location}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Mobile</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.mobile}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Age</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.age}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Email</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.email}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Gender</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.gender}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"tagggedData?.revopsType==='missedOpportunity'\">\r\n\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngFor=\"let item of tagggedData.issueList\" >\r\n <div class=\"ms-2 mb-2 spent-value\">{{item.name}}</div>\r\n <span class=\"badge badge-light-default ms-2\" *ngFor=\"let data of item.issue\">{{data}}</span>\r\n </div>\r\n \r\n </div>\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngIf=\"tagggedData?.revopsType==='nonShopper'\">\r\n <span class=\"badge badge-light-default ms-2\">{{nonShoperType}}</span>\r\n </div>\r\n <div class=\"my-2\"><span class=\"desc-id\">Original ID</span> : <span class=\"spent-value1\"\r\n style=\"font-size: 12px !important;\">{{Imagedata?.tempId}}</span></div>\r\n \r\n <div *ngIf=\"tagggedData?.description&&tagggedData?.description!=''\" class=\"my-3 desc-id\">{{tagggedData.description}}\r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n <div class=\"my-3\">\r\n <span class=\"tag-class\">Time Spent</span>\r\n </div>\r\n\r\n <div class=\"d-flex flex-wrap\">\r\n <div class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.totalTimeSpent}} </div>\r\n </div>\r\n <div class=\"spent-value my-1\">Total Time Spent</div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.entryTime}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1 cursor-pointer\" (click)=\"imageData('entry')\">Entry Time <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.exitTime}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1 cursor-pointer\" (click)=\"imageData('exit')\">Exit Time <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!Imagedata?.zoneVisited\" class=\"separator separator-double m-3\"></div>\r\n\r\n <div *ngIf=\"!Imagedata?.zoneVisited\" class=\"row\">\r\n <div class=\"col-md-6\">\r\n <span class=\"tag-class\">Zones Visited</span>\r\n\r\n </div>\r\n <!-- <div class=\"col-md-6 text-end\">\r\n <span class=\"ms-2 mt-2 view-tetory cursor-pointer\">View Trajectory <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M15 10.8333V15.8333C15 16.2754 14.8244 16.6993 14.5118 17.0118C14.1993 17.3244 13.7754 17.5 13.3333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V6.66667C2.5 6.22464 2.67559 5.80072 2.98816 5.48816C3.30072 5.17559 3.72464 5 4.16667 5H9.16667M12.5 2.5H17.5M17.5 2.5V7.5M17.5 2.5L8.33333 11.6667\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></span>\r\n </div> -->\r\n <ng-container class=\"h-200px scroll\">\r\n <div class=\"col mt-2\" *ngFor=\"let obj of Imagedata?.zoneVisited\">\r\n <span class=\"badge badge-light-primary \">{{obj}}</span>\r\n </div>\r\n <!-- <div *ngIf=\"Imagedata?.zoneVisited.length ===0\" class=\"col-md-12 mt-2 text-center\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No Zones Visited</div>\r\n <div class=\"nodata-sub\">There is no result for this Zones</div>\r\n </div> -->\r\n \r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n\r\n <div class=\"my-3\">\r\n <span class=\"tag-class\">Staff Engagement</span>\r\n </div>\r\n\r\n <div class=\"d-flex flex-wrap\">\r\n <div class=\"border border-gray-300 border-dobule rounded w-45 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.staffEngagement.timeTakenToAssist}} </div>\r\n </div>\r\n <div class=\"spent-value my-1\">Time taken to assist \r\n <!-- <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> -->\r\n </div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-45 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.staffEngagement.timeSpentWithStaff}}</div>\r\n </div>\r\n <div class=\"spent-value my-1\">Time spent with staff</div>\r\n </div>\r\n \r\n \r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n \r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n \r\n</section>\r\n</div>", styles: [".switch-form-card{padding:8px 16px;border-radius:4px;border-left:2px solid var(--Primary-600, #00A3FF);background:var(--Primary-25, #F6FCFF);display:flex;align-items:center;justify-content:space-between}.switch-form-card .txt-one{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:140%}.nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.badge-num-primary{border-radius:16px!important;background:var(--Primary-50, #EAF8FF)!important;color:var(--Primary-700, #009BF3)!important;text-align:center;font-size:14px!important;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.badge-num-muted{border-radius:16px!important;background:var(--Primary-50, #F2F4F7)!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.img-src{width:100%;height:210px;border-radius:.625rem}.img-traffic .col-md-3{width:24%!important}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.img-doc-directory{color:var(--Gray-900, #101828)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline}.img-doc-time{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}.img-doc-value{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.overflow-x{overflow-x:auto}.no-preview{border:1px solid #F04438;background:#fee4e2;border-radius:8px;stroke-width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:41px 16px}.no-preview .header{color:#f04438;font-size:20px;font-weight:700;line-height:20px}.no-preview .description{color:#f04438;font-size:12px;font-weight:500;line-height:18px}.img-nodata{width:25%;height:15%}.img-nodata1{width:15%;height:15%}.nodata-title{font-size:14px!important;font-weight:600}.img-direc{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:500;line-height:28px}.custom-accordion{border-radius:5px}.custom-accordion-item{margin-bottom:10px}.custom-accordion-header{background-color:#fff;border:none;cursor:pointer;padding:10px;text-align:left;width:100%;display:flex;justify-content:space-between;align-items:center}.custom-accordion{width:100%}.mainheading{width:100%;display:flex;justify-content:space-between;align-items:center;padding:19px;border:none;background:none;cursor:pointer}.header-row{display:flex;align-items:center;width:100%;justify-content:space-between}.img-dire{font-size:16px;font-weight:700}.divider{flex-grow:1;height:1px;background-color:#ddd;margin:0 10px}.accordion-arrow{display:flex;align-items:center}.scroll-container{max-height:400px;overflow-y:auto;overflow-x:hidden}.high-400px{min-height:auto!important;max-height:800px!important}.slider{position:relative}.slider .previous{position:absolute;top:30%;left:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.slider .next{position:absolute;top:30%;right:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.img-src1{border-radius:12px;border:1px solid var(--Gray-400, #98A2B3);background:var(--Gray-50, #F9FAFB);width:100%;height:375px}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);padding:0 4px}.border-gray-active{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #EAF8FF);padding:0 4px}.zone-header{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.last-visit{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.toggle-label{color:var(--Gray-900, #101828);font-size:16px;font-weight:600;line-height:24px}.nav-dev{border-radius:8px!important;border:1px solid var(--Primary-200, #99DAFF)!important;background:var(--Primary-25, #F6FCFF)!important}.tab-active{border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:500;line-height:20px}.tab-text-default{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px}.border-gray-active1{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:12px!important}.nav-item1 .nav-link1.active{border:none;border-radius:0;background:var(--Primary-50, #EAF8FF);border-bottom:2px solid #009BF3!important;padding:12px;color:var(--Primary-700, #009BF3);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.active-normal{padding:12px;color:var(--Gray-500, #667085);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.nav-item1 .nav-link1:hover{border:none}.tag-class{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.spent-title{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.spent-value{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.spent-value1{color:var(--Primary-500, #33B5FF);font-size:14px;font-weight:500;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font}.w-33{width:30%}.w-45{width:45%}.view-tetory{color:var(--Primary-700, #009BF3);font-size:14px;font-weight:600;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font;text-transform:capitalize}.border-gray-tagged{border-radius:4px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:8px!important}.desc-id{color:var(--Gray-900, #101828);font-size:12px;font-style:normal;font-weight:400;line-height:20px}.active-tab{border-bottom:2px solid #0d6efd;font-weight:600;color:#0d6efd}.badge-selected{background-color:#e0f3ff;color:#0d6efd;border:1px solid #0d6efd;border-radius:20px;padding:6px 12px}.badge-unselected{background-color:#f0f0f0;color:#333;border-radius:20px;padding:6px 12px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.cursor-not-allowed{cursor:not-allowed!important}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i7.NgxGpAutocompleteDirective, selector: "[ngx-gp-autocomplete]", inputs: ["options"], outputs: ["onAddressChange"], exportAs: ["ngx-places"] }, { kind: "component", type: i8.ReactiveSelectComponent, selector: "lib-reactive-select", inputs: ["idField", "nameField", "label", "data"], outputs: ["valueChange"] }, { kind: "pipe", type: i6.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i6.DatePipe, name: "date" }] });
|
|
709
717
|
}
|
|
710
718
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImageDocComponent, decorators: [{
|
|
711
719
|
type: Component,
|
|
712
|
-
args: [{ selector: "lib-image-doc", template: "<div class=\"card mt-3\">\r\n <div class=\"card-header mt-3 px-0 border-bottom-0\">\r\n <div class=\"custom-accordion\">\r\n <div class=\"custom-accordion-item\">\r\n <button class=\"mainheading pb-0 custom-accordion-header\" (click)=\"toggleAccordion()\">\r\n <div class=\"header-row\">\r\n <span class=\"img-direc\">Image Directory</span>\r\n <span class=\"divider\"></span>\r\n <span class=\"accordion-arrow\">\r\n <!-- Down arrow for collapsed state, up arrow for expanded state -->\r\n <svg *ngIf=\"!isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\" viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 1L5 5L9 1\" stroke=\"#071437\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg *ngIf=\"isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\" viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 5L5 1L9 5\" stroke=\"#1b84ff\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n </div>\r\n </button>\r\n </div>\r\n </div>\r\n \r\n \r\n </div>\r\n <section *ngIf=\"isAccordionExpanded\">\r\n <div class=\"col-md-12 px-5\" *ngIf=\"!hideDoc\">\r\n <div class=\"switch-form-card\">\r\n <div class=\"d-flex align-items-center\">\r\n <svg width=\"46\" height=\"46\" viewBox=\"0 0 46 46\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" fill=\"#DAF1FF\" />\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" stroke=\"#EAF8FF\" stroke-width=\"6\" />\r\n <path d=\"M23.8333 14.6666L15.5 24.6666H23L22.1667 31.3333L30.5 21.3333H23L23.8333 14.6666Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <div class=\"txt-one ms-2\">\r\n <ng-container>Examine individual footfall in gallery view with optimal sample images for detailed analysis.</ng-container>\r\n <!-- <ng-container *ngIf=\"isMultiple\">Upload multiple stores for configuration</ng-container> -->\r\n </div>\r\n </div>\r\n <div class=\"cursor-pointer\" (click)=\"closeData()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M18.295 7.115C18.6844 6.72564 18.6844 6.09436 18.295 5.705C17.9056 5.31564 17.2744 5.31564 16.885 5.705L12 10.59L7.115 5.705C6.72564 5.31564 6.09436 5.31564 5.705 5.705C5.31564 6.09436 5.31564 6.72564 5.705 7.115L10.59 12L5.705 16.885C5.31564 17.2744 5.31564 17.9056 5.705 18.295C6.09436 18.6844 6.72564 18.6844 7.115 18.295L12 13.41L16.885 18.295C17.2744 18.6844 17.9056 18.6844 18.295 18.295C18.6844 17.9056 18.6844 17.2744 18.295 16.885L13.41 12L18.295 7.115Z\"\r\n fill=\"black\" />\r\n </svg>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <div *ngIf=\"folderView\" class=\"card-body px-0\">\r\n <div class=\"scroll-container\">\r\n <div class=\"row\">\r\n <div class=\"col-md-1 mt-5 text-center\" *ngFor=\"let obj of dateArray;let i = index\">\r\n <div (click)=\"getimages(i,obj)\">\r\n <div *ngIf=\"i === selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.154297\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#33B5FF\" />\r\n <path\r\n d=\"M39.8216 36.1667C39.8216 36.7855 39.5758 37.379 39.1382 37.8166C38.7006 38.2542 38.1071 38.5 37.4883 38.5H18.8216C18.2028 38.5 17.6093 38.2542 17.1717 37.8166C16.7341 37.379 16.4883 36.7855 16.4883 36.1667V19.8333C16.4883 19.2145 16.7341 18.621 17.1717 18.1834C17.6093 17.7458 18.2028 17.5 18.8216 17.5H24.6549L26.9883 21H37.4883C38.1071 21 38.7006 21.2458 39.1382 21.6834C39.5758 22.121 39.8216 22.7145 39.8216 23.3333V36.1667Z\"\r\n stroke=\"white\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n <div *ngIf=\"i !== selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.462891\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#EAF8FF\" />\r\n <path\r\n d=\"M40.1302 36.1667C40.1302 36.7855 39.8844 37.379 39.4468 37.8166C39.0092 38.2542 38.4157 38.5 37.7969 38.5H19.1302C18.5114 38.5 17.9179 38.2542 17.4803 37.8166C17.0427 37.379 16.7969 36.7855 16.7969 36.1667V19.8333C16.7969 19.2145 17.0427 18.621 17.4803 18.1834C17.9179 17.7458 18.5114 17.5 19.1302 17.5H24.9635L27.2969 21H37.7969C38.4157 21 39.0092 21.2458 39.4468 21.6834C39.8844 22.121 40.1302 22.7145 40.1302 23.3333V36.1667Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n \r\n </div>\r\n <div *ngIf=\"!folderView\" class=\"card-body\">\r\n <section *ngIf=\"!imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-between align-items-center px-0\">\r\n <span *ngIf=\"backnav\" class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"img-direc ms-2\">{{folderDate | date:'dd MMM, yyyy'}}</span>\r\n <div *ngIf=\"!normalize\" class=\"ms-auto text-end\">\r\n <form [formGroup]=\"form\">\r\n <lib-reactive-select \r\n [formControl]=\"selectControl\" \r\n [idField]=\"'value'\"\r\n [nameField]=\"'label'\"\r\n [data]=\"datasets\"\r\n class=\"w-100 text-start\"\r\n (valueChange)=\"onValueChange($event)\">\r\n </lib-reactive-select>\r\n </form>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-2 mb-2 w-100 overflow-x px-0\">\r\n <ng-container *ngIf=\"this.headerData?.client !=='459'\">\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray\">\r\n <ul *ngIf=\"lengthValue\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"this.headerData?.client ==='459'\">\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray.slice(0, -1)\">\r\n <ul *ngIf=\"lengthValue\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"loading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"noData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div *ngIf=\"normalize\" class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata1\" src=\"./assets/tango/Icons/not-applicable.svg\" alt=\"\">\r\n <div class=\"nodata-title mt-3\">Data Not Found</div>\r\n <div class=\"nodata-sub\">Normalized data is not applicable</div>\r\n </div>\r\n <div *ngIf=\"!normalize\" class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this image directory</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row px-0 img-traffic contain high-400px scroll-y\" *ngIf=\"!noData && !loading\">\r\n <div class=\"col-md-3 border-gray mx-2 p-2 mt-5\" *ngFor=\"let obj of imagesArrayData\">\r\n <img *ngIf=\"obj.images.entryTimeImage\" class=\"img-src cursor-pointer\" [src]=\"obj.images.entryTimeImage\" (error)=\"obj?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageView(obj,objData.footfallDate)\">\r\n <div *ngIf=\"!obj.images.entryTimeImage\" class=\"no-preview\">\r\n <span class=\"mb-5\" >\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n\r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n <div class=\"row px-2 mb-2\">\r\n <div class=\"col-md-8\">\r\n <div class=\"py-2 img-doc-directory\"><span class=\"badge badge-light-info\">{{obj.tempId}}</span> \r\n <!-- <span *ngIf=\"selectControl.value ==='missedOpportunity'\" class=\"badge badge-light-success ms-2\">Missed Opportunity</span>\r\n <span *ngIf=\"selectControl.value ==='bounced'\" class=\"badge badge-light-success ms-2\">Bounced Footfall</span> -->\r\n <span *ngIf=\"obj?.revopsType || selectControl.value as value\"\r\n class=\"badge ms-2\"\r\n [ngClass]=\"{\r\n 'badge-light-success': value === 'footfall' || value === 'purchaser',\r\n 'badge-light-warning': value === 'nonShopper',\r\n 'badge-light-danger': value === 'bounced' || value === 'engager' || value === 'missedOpportunity' || value === 'conversion',\r\n 'badge-light-primary': !value\r\n }\">\r\n {{\r\n value === 'purchaser' ? 'Purchaser' :\r\n value === 'nonShopper' ? 'Non Shopper' :\r\n value === 'missedOpportunity' ? 'Missed Opportunity' :\r\n (value | titlecase)\r\n }}\r\n </span>\r\n </div>\r\n <div class=\"py-2 img-doc-time\">Entry Time</div>\r\n <div *ngIf=\"clientData?.trackerFF\" class=\"py-2 img-doc-time\">Exit Time</div>\r\n <div *ngIf=\"clientData?.trackerFF\" class=\"py-2 img-doc-time\">Total Time Spent</div>\r\n </div>\r\n <div class=\"col-md-4 text-end\" >\r\n <div class=\"py-2\">\r\n <span class=\"cursor-pointer\" *ngIf=\"!obj?.revopsType||obj?.revopsType===''\" ngbTooltip=\"Yet to tag the customer\" (click)=\"revopTagging(obj)\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22852)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.37328 0.00201606C7.20932 -0.023315 6.05385 0.205711 4.98755 0.673106C3.92125 1.1405 2.96981 1.835 2.19967 2.70811C1.42952 3.58123 0.859225 4.61192 0.528596 5.72822C0.197966 6.84453 0.114971 8.01955 0.285404 9.17124C0.455837 10.3229 0.875591 11.4236 1.51536 12.3963C2.15513 13.369 2.9995 14.1903 3.98951 14.8029C4.97953 15.4156 6.09133 15.8048 7.2473 15.9433C8.40326 16.0818 9.57554 15.9664 10.6823 15.605C10.8714 15.5432 11.0282 15.4088 11.1182 15.2314C11.2082 15.054 11.2241 14.8481 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6113 14.1331 10.4054 14.1172 10.2163 14.179C9.01359 14.5717 7.72242 14.6049 6.50114 14.2745C5.27986 13.9441 4.18155 13.2644 3.34092 12.3189C2.50028 11.3734 1.95386 10.2031 1.76867 8.95151C1.58348 7.69995 1.76757 6.42155 2.29837 5.27309C2.82916 4.12463 3.68358 3.15604 4.75684 2.48611C5.83011 1.81618 7.07555 1.47403 8.34044 1.50163C9.60533 1.52922 10.8347 1.92536 11.8777 2.64147C12.9207 3.35757 13.7321 4.3625 14.2123 5.53302C14.2877 5.71708 14.4332 5.86362 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44721 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05515 15.6003 4.96402C15.0093 3.52331 14.0107 2.28639 12.7269 1.40498C11.4432 0.523571 9.93012 0.0359815 8.37328 0.00201606ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.58796 3.07903 8.39719 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41428 9.72302C5.34059 9.79168 5.28149 9.87448 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.26788 10.646 5.32402 10.7308 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.32282 10.9158 6.40562 10.8567 6.47428 10.783L8.72828 8.53002L8.94828 8.31002V3.75002ZM15.1983 15C15.1983 15.2652 15.0929 15.5196 14.9054 15.7071C14.7179 15.8947 14.4635 16 14.1983 16C13.9331 16 13.6787 15.8947 13.4912 15.7071C13.3036 15.5196 13.1983 15.2652 13.1983 15C13.1983 14.7348 13.3036 14.4804 13.4912 14.2929C13.6787 14.1054 13.9331 14 14.1983 14C14.4635 14 14.7179 14.1054 14.9054 14.2929C15.0929 14.4804 15.1983 14.7348 15.1983 15ZM14.9483 8.75002C14.9483 8.5511 14.8693 8.36034 14.7286 8.21969C14.588 8.07903 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07903 13.668 8.21969C13.5273 8.36034 13.4483 8.5511 13.4483 8.75002V12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3972 13 14.588 12.921 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V8.75002Z\" fill=\"#F79009\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.1858 4.10379C15.0996 3.94907 15.0083 3.79744 14.9121 3.64911C14.5747 3.12843 14.1776 2.64854 13.7289 2.21932C13.4187 1.92257 13.0839 1.65004 12.7269 1.40498C12.7269 1.40493 12.727 1.40504 12.7269 1.40498C12.5144 1.25906 12.2954 1.12379 12.0711 0.999729C11.8255 0.863893 11.5734 0.741322 11.3159 0.632377C10.3882 0.239873 9.39006 0.024199 8.37328 0.00201606C8.37324 0.00201518 8.37332 0.00201694 8.37328 0.00201606C8.31496 0.00074779 8.25655 0.000115387 8.19828 0.000122124C7.1276 0.00024592 6.06754 0.215304 5.08108 0.632816C5.04983 0.646043 5.01865 0.659473 4.98755 0.673106C4.76115 0.772343 4.53993 0.88182 4.32452 1.00107C4.20201 1.06889 4.08139 1.13987 3.96275 1.21393C3.30756 1.62296 2.71329 2.12581 2.19967 2.70811C1.68602 3.29043 1.26127 3.94285 0.937232 4.644C0.775415 4.99414 0.638713 5.35643 0.528596 5.72822C0.19799 6.84445 0.114983 8.01938 0.285366 9.17099C0.285354 9.17091 0.285379 9.17108 0.285366 9.17099C0.4558 10.3227 0.875591 11.4236 1.51536 12.3963C1.72835 12.7201 1.96402 13.0271 2.22019 13.3153C2.73349 13.8927 3.32909 14.3943 3.98951 14.8029C4.64967 15.2115 5.36398 15.5206 6.10943 15.7224C6.4819 15.8232 6.86215 15.8971 7.2473 15.9433C7.29123 15.9486 7.33519 15.9535 7.37917 15.958C8.01492 16.0235 8.65464 16.0124 9.28478 15.9261C9.52146 15.8937 9.75678 15.8507 9.99004 15.7971C10.223 15.7436 10.4539 15.6796 10.6819 15.6051C10.6818 15.6052 10.6821 15.6051 10.6819 15.6051C10.7196 15.5928 10.7563 15.5775 10.7911 15.5597C10.9312 15.488 11.0461 15.3735 11.1182 15.2314C11.1554 15.1581 11.18 15.0799 11.1916 15C11.2081 14.8867 11.1985 14.77 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6114 14.1331 10.4056 14.1172 10.2166 14.1789C10.2165 14.1789 10.2168 14.1789 10.2166 14.1789C10.1121 14.213 10.0065 14.2446 9.90073 14.2733C9.74848 14.3146 9.59506 14.3503 9.44078 14.3803C9.37146 14.3938 9.30196 14.4062 9.23233 14.4174C8.8548 14.4782 8.47302 14.5055 8.09144 14.4992C7.99568 14.4976 7.89992 14.4939 7.80426 14.4881C7.6779 14.4804 7.55168 14.4691 7.42578 14.454C7.36133 14.4463 7.29696 14.4376 7.23269 14.4279C6.98693 14.391 6.74267 14.3399 6.50114 14.2745C6.32933 14.228 6.15995 14.1746 5.99337 14.1146C5.56809 13.9612 5.16112 13.7642 4.7787 13.5276C4.73373 13.4998 4.68911 13.4714 4.64483 13.4425C4.27003 13.1978 3.92028 12.9142 3.60174 12.5956C3.51229 12.5061 3.42531 12.4138 3.34092 12.3189C3.13139 12.0832 2.94014 11.8336 2.76821 11.5722C2.76385 11.5656 2.7595 11.559 2.75516 11.5523C2.47964 11.1301 2.25437 10.6775 2.08368 10.2039C1.93807 9.79993 1.83218 9.38061 1.76871 8.95174C1.76869 8.95166 1.76872 8.95182 1.76871 8.95174C1.74125 8.76621 1.72188 8.57986 1.71059 8.39367C1.70471 8.29683 1.70101 8.19998 1.69948 8.10317C1.68902 7.44355 1.77905 6.78626 1.96631 6.15405C2.0552 5.85394 2.16601 5.55947 2.29837 5.27309C2.56378 4.69883 2.91011 4.16954 3.32425 3.70007C3.36618 3.65254 3.4088 3.60563 3.4521 3.55934C3.83649 3.14848 4.27458 2.78714 4.75684 2.48611C5.02452 2.31903 5.30291 2.17233 5.58963 2.04668C5.80471 1.95242 6.02449 1.87 6.24796 1.7997C6.87628 1.60202 7.5338 1.50012 8.19828 1.50008C8.24563 1.50008 8.29302 1.50059 8.34044 1.50163C8.95745 1.51511 9.5662 1.61629 10.1488 1.79952C10.7605 1.99189 11.3435 2.27472 11.8777 2.64147C11.8776 2.64142 11.8778 2.64151 11.8777 2.64147C12.0839 2.78304 12.2812 2.93603 12.4685 3.09922C12.6351 3.24436 12.7939 3.39767 12.9444 3.55848C13.0974 3.72197 13.2419 3.89322 13.3771 4.07152C13.5555 4.3066 13.7179 4.55395 13.8631 4.81195C13.9427 4.95336 14.0171 5.09798 14.0861 5.24552C14.1253 5.32914 14.1627 5.41371 14.1983 5.49916C14.203 5.51043 14.2076 5.52172 14.2123 5.53302C14.2122 5.53292 14.2123 5.53312 14.2123 5.53302C14.2878 5.71693 14.4333 5.86367 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44722 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05516 15.6003 4.96402C15.6002 4.9639 15.6003 4.96414 15.6003 4.96402C15.5091 4.74187 15.4082 4.5242 15.2981 4.31229C15.2617 4.2422 15.2242 4.17269 15.1858 4.10379ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.61405 3.10512 8.46624 3.03145 8.30786 3.00806C8.27188 3.00276 8.23508 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41452 9.72278C5.40159 9.73483 5.38887 9.74755 5.37686 9.76044C5.32041 9.82102 5.2743 9.89062 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.23863 10.5736 5.24804 10.5942 5.25834 10.6142C5.29387 10.6834 5.34002 10.7468 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.30668 10.923 6.37628 10.8769 6.43686 10.8204C6.44966 10.8085 6.46206 10.7961 6.47403 10.7833C6.47395 10.7834 6.47411 10.7832 6.47403 10.7833L8.94828 8.31002V3.75002ZM13.4483 12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3895 13 14.5732 12.927 14.7121 12.7963C14.7177 12.7911 14.7232 12.7858 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V10.0566C14.7015 10.0191 14.4509 10 14.1983 10C13.9457 10 13.695 10.0191 13.4483 10.0566V12.25ZM13.4483 9.76927C13.6932 9.84828 13.9441 9.90719 14.1983 9.94551C14.4264 9.97989 14.6572 9.99769 14.8889 9.99854C14.9087 9.99861 14.9285 9.99856 14.9483 9.99838V8.75002C14.9483 8.65356 14.9297 8.55901 14.8945 8.47117C14.8571 8.37787 14.8011 8.29213 14.7286 8.21969C14.588 8.07904 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07904 13.668 8.21969C13.665 8.22268 13.662 8.22569 13.6591 8.22872C13.5282 8.3641 13.453 8.54376 13.4485 8.73188C13.4484 8.73792 13.4483 8.74397 13.4483 8.75002V9.76927ZM15.1963 15.0626C15.1976 15.0418 15.1983 15.0209 15.1983 15C15.1983 14.9984 15.1983 14.9968 15.1983 14.9951C15.197 14.7317 15.0918 14.4793 14.9054 14.2929C14.7178 14.1054 14.4635 14 14.1983 14C13.9331 14 13.6787 14.1054 13.4912 14.2929C13.3036 14.4804 13.1983 14.7348 13.1983 15C13.1983 15.2652 13.3036 15.5196 13.4912 15.7071C13.6787 15.8947 13.9331 16 14.1983 16C14.4635 16 14.7178 15.8947 14.9054 15.7071C15.0781 15.5344 15.1811 15.305 15.1963 15.0626Z\" fill=\"#F79009\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22852\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.199219)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"cursor-pointer\" *ngIf=\"obj?.revopsType&&obj?.revopsType!==''\" (click)=\"revopTagging(obj)\" ngbTooltip=\"Customer Tagging is Done\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22856)\">\r\n <path d=\"M15.0638 7.38662V7.99995C15.063 9.43756 14.5975 10.8364 13.7367 11.9878C12.8759 13.1393 11.666 13.9816 10.2874 14.3892C8.90876 14.7968 7.43531 14.7479 6.08678 14.2497C4.73826 13.7515 3.58691 12.8307 2.80444 11.6247C2.02198 10.4186 1.65033 8.99199 1.74492 7.55749C1.83951 6.12299 2.39527 4.7575 3.32932 3.66467C4.26337 2.57183 5.52566 1.81021 6.92793 1.49338C8.3302 1.17656 9.79731 1.32151 11.1105 1.90662M15.0638 2.66662L8.39714 9.33995L6.39714 7.33995\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22856\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.398438)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"py-2 img-doc-value\">{{obj.timeSpent.entryTime}} </div>\r\n <div *ngIf=\"clientData?.trackerFF\" class=\"py-2 img-doc-value\">{{obj.timeSpent.exitTime}}</div>\r\n <div *ngIf=\"clientData?.trackerFF\" class=\"py-2 img-doc-value\">{{obj.timeSpent.totalTimeSpent}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </section>\r\n <section *ngIf=\"imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-between align-items-center px-0\">\r\n <div class=\"\">\r\n <span class=\"cursor-pointer\" (click)=\"backToView()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"ms-2 py-2 img-doc-directory\"><span class=\"badge badge-light-info\">{{Imagedata.tempId}}</span> \r\n <ng-container *ngIf=\"Imagedata?.revopsType || selectControl.value as value\">\r\n <span *ngIf=\"value\"\r\n class=\"badge ms-2\"\r\n [ngClass]=\"{\r\n 'badge-light-success': value === 'footfall' || value === 'purchaser',\r\n 'badge-light-warning': value === 'nonShopper',\r\n 'badge-light-danger': value === 'bounced' || value === 'engager' || value === 'missedOpportunity' || value === 'conversion'\r\n }\">\r\n {{\r\n value === 'purchaser' ? 'Purchaser' :\r\n value === 'nonShopper' ? 'Non Shopper' :\r\n value === 'missedOpportunity' ? 'Missed Opportunity' :\r\n (value | titlecase)\r\n }}\r\n </span>\r\n </ng-container>\r\n \r\n \r\n </span>\r\n </div>\r\n <div class=\"\">\r\n <span class=\"cursor-pointer\" [ngClass]=\"{ 'cursor-not-allowed opacity-50': isFirstImage() }\"\r\n [style.pointer-events]=\"isFirstImage() ? 'none' : 'auto'\"\r\n (click)=\"!isFirstImage() && previous()\" ><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <path d=\"M0.5 8C0.5 3.85786 3.85786 0.5 8 0.5H39.5V39.5H8C3.85786 39.5 0.5 36.1421 0.5 32V8Z\"\r\n fill=\"white\" />\r\n <path d=\"M0.5 8C0.5 3.85786 3.85786 0.5 8 0.5H39.5V39.5H8C3.85786 39.5 0.5 36.1421 0.5 32V8Z\"\r\n stroke=\"#D0D5DD\" />\r\n <path d=\"M22.5 25L17.5 20L22.5 15\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <span class=\"cursor-pointer\" [ngClass]=\"{ 'cursor-not-allowed opacity-50': isLastImage() }\"\r\n [style.pointer-events]=\"isLastImage() ? 'none' : 'auto'\"\r\n (click)=\"!isLastImage() && next()\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <path d=\"M0.5 0.5H32C36.1421 0.5 39.5 3.85786 39.5 8V32C39.5 36.1421 36.1421 39.5 32 39.5H0.5V0.5Z\"\r\n fill=\"white\" />\r\n <path d=\"M0.5 0.5H32C36.1421 0.5 39.5 3.85786 39.5 8V32C39.5 36.1421 36.1421 39.5 32 39.5H0.5V0.5Z\"\r\n stroke=\"#D0D5DD\" />\r\n <path d=\"M17.5 25L22.5 20L17.5 15\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row contain mt-10\">\r\n <div class=\"col-md-6 col-lg-6 col-xl-6\">\r\n <img class=\"cursor-pointer\" class=\"img-src1\" [src]=\"Images\"\r\n (error)=\"Images = null\" alt=\"\">\r\n <div *ngIf=\"!Images\" class=\"no-preview\">\r\n <span class=\"mb-5\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\" d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n \r\n \r\n \r\n <div class=\"row slider mt-5\">\r\n <ng-container>\r\n <div class=\"col-4\" *ngIf=\"Imagedata?.images?.entryTimeImage\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.entryTimeImage,\r\n 'border-gray': Images !== Imagedata?.images?.entryTimeImage\r\n }\">\r\n <div>Entry Time</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.entryTimeImage\"\r\n (error)=\"Imagedata?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageData('entry')\">\r\n <div *ngIf=\"!Imagedata?.images?.entryTimeImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\" *ngIf=\"Imagedata?.images?.staffEngagementImage\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.staffEngagementImage,\r\n 'border-gray': Images !== Imagedata?.images?.staffEngagementImage\r\n }\">\r\n <div>Staff Engagement</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.staffEngagementImage\"\r\n (error)=\"Imagedata?.images.staffEngagementImage = null\" alt=\"\" (click)=\"imageData('staff')\">\r\n <div *ngIf=\"!Imagedata?.images?.staffEngagementImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4 \" *ngIf=\"Imagedata?.images?.exitTimeImage && this.clientData.trackerFF\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.exitTimeImage,\r\n 'border-gray': Images !== Imagedata?.images?.exitTimeImage\r\n }\">\r\n <div>Exit Time</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.exitTimeImage\"\r\n (error)=\"Imagedata?.images.exitTimeImage = null\" alt=\"\" (click)=\"imageData('exit')\">\r\n <div *ngIf=\"!Imagedata?.images?.exitTimeImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n </div>\r\n <div class=\"col-md-6 col-lg-6 col-xl-6 pe-0 mb-3\">\r\n <ul class=\"nav flex-wrap nav-dev fw-bold align-items-center\">\r\n <li class=\"nav-item my-1 w-50\">\r\n <a (click)=\"selectedTab = 'tagged'\" [ngClass]=\"{\r\n 'tab-active': selectedTab === 'tagged'\r\n }\" class=\"tab-text-default btn nav-link px-3 px-lg-8 mx-1\">\r\n Tagged Info\r\n </a>\r\n </li>\r\n \r\n <li class=\"nav-item my-1 w-50\">\r\n <a (click)=\"selectedTab = 'customer'\" [ngClass]=\"{\r\n 'tab-active': selectedTab === 'customer'\r\n }\" class=\"tab-text-default btn nav-link px-3 px-lg-8 mx-1\">\r\n Customer Info\r\n </a>\r\n </li>\r\n </ul>\r\n <section *ngIf=\"selectedTab === 'tagged'\">\r\n <div class=\"row mx-3 mt-5 mb-3\">\r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioNonShopper\"\r\n value=\"nonShopper\" [(ngModel)]=\"selectedCustomerType\" (change)=\"onRadioChange('nonShopper')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioNonShopper\">\r\n Non Shopper\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioPurchaser\" value=\"purchaser\"\r\n [(ngModel)]=\"selectedCustomerType\" (change)=\"onRadioChange('purchaser')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioPurchaser\">\r\n Purchaser\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check \">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioMissed\"\r\n value=\"missedOpportunity\" [(ngModel)]=\"selectedCustomerType\"\r\n (change)=\"onRadioChange('missedOpportunity')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioMissed\">\r\n Missed Opportunity\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <section *ngIf=\"selectedCustomerType ==='nonShopper'\">\r\n <div class=\"row mt-5 mx-3\">\r\n <div class=\"border-gray-active1\">\r\n <span *ngFor=\"let obj of nonShopperList\" class=\"cursor-pointer\">\r\n <div class=\"badge mt-3 me-8\" [ngClass]=\"obj!==nonShoperType ? 'badge-light-default' :'badge-light-primary'\" (click)=\"selectnonShoper(obj)\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" *ngIf=\"obj!==nonShoperType\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M6 2.5V9.5M2.5 6H9.5\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" *ngIf=\"obj===nonShoperType\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" rx=\"8\" fill=\"#DAF1FF\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.3977 4.92661L6.62434 9.53328L5.35767 8.17994C5.12434 7.95994 4.75767 7.94661 4.491 8.13328C4.231 8.32661 4.15767 8.66661 4.31767 8.93994L5.81767 11.3799C5.96434 11.6066 6.21767 11.7466 6.50434 11.7466C6.77767 11.7466 7.03767 11.6066 7.18434 11.3799C7.42434 11.0666 12.0043 5.60661 12.0043 5.60661C12.6043 4.99328 11.8777 4.45328 11.3977 4.91994V4.92661Z\" fill=\"#33B5FF\"/>\r\n </svg>\r\n <span class=\"ms-3\">{{obj}}</span></div>\r\n </span>\r\n \r\n <div class=\"col-md-12 mt-5 pb-10\">\r\n <div class=\"form-group\">\r\n <label for=\"exampleInputName\">Description (Optional)</label>\r\n <textarea [(ngModel)]=\"description\" class=\"form-control mt-3\" rows=\"4\" placeholder=\"\"></textarea>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"text-end mt-5\" (click)=\"nonShopperSubmit()\" >\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </div>\r\n </section>\r\n <section *ngIf=\"selectedCustomerType ==='purchaser'\">\r\n <div class=\"row mt-5\">\r\n <form [formGroup]=\"userForm\" (ngSubmit)=\"onSubmit()\">\r\n <div class=\"row border-gray-active1\">\r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"name\">Name</label>\r\n <input\r\n type=\"text\"\r\n id=\"name\"\r\n class=\"form-control mt-3\"\r\n placeholder=\"Enter Name\" autocomplete=\"off\"\r\n formControlName=\"name\" required [ngClass]=\"{ 'is-invalid':userForm.get('name')?.invalid && (userForm.get('name')?.touched)}\"\r\n />\r\n <div *ngIf=\"isInvalid('name')\" class=\"text-danger\">\r\n <div *ngIf=\"f.name.errors?.required\">Name is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 col-lg-6 col-xl-6 col-xxl-6 mt-3\">\r\n <label for=\"contact\" class=\"form-label\">Contact Number <span class=\"alert-required text-danger\">*</span></label>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 col-lg-4 col-xl-4\">\r\n <select class=\"form-select ps-3 pe-8\" id=\"inputGroupSelect01\" formControlName=\"countryCode\">\r\n <option *ngFor=\"let country of countryList\" [value]=\"country.phonecode\">\r\n {{country.name}} ({{country.phonecode}})\r\n </option>\r\n </select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-8 col-xl-8\">\r\n <input type=\"text\" class=\"form-control\" (keypress)=\"omit_special_char($event)\"\r\n id=\"mobile\" autocomplete=\"off\" formControlName=\"mobile\" minlength=\"8\" maxlength=\"13\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('mobile')?.invalid && (userForm.get('mobile')?.touched)}\">\r\n <div *ngIf=\"isInvalid('mobile')\" class=\"text-danger\">\r\n <div *ngIf=\"f.mobile.errors?.required\">Contact Number is required.</div>\r\n <div *ngIf=\"f.mobile.errors?.minlength\">Contact Number must be at least 8 digits.</div>\r\n <div *ngIf=\"f.mobile.errors?.maxlength\">Contact Number cannot exceed 13 digits.</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 col-lg-6 col-xl-6 col-xxl-6 mt-3\">\r\n <label for=\"email\" class=\"form-label\">Email <span class=\"alert-required text-danger\">*</span></label>\r\n <input type=\"email\" class=\"form-control\" id=\"email\" formControlName=\"email\" autocomplete=\"off\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('email')?.invalid && (userForm.get('email')?.touched)}\">\r\n <div *ngIf=\"isInvalid('email')\" class=\"text-danger\">\r\n <div *ngIf=\"f.email.errors?.required\">Email is required.</div>\r\n <div *ngIf=\"f.email.errors?.pattern\">Invalid email format.</div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"location\">Location</label>\r\n <!-- <input\r\n type=\"text\"\r\n id=\"location\"\r\n class=\"form-control mt-3\"\r\n placeholder=\"Location\"\r\n formControlName=\"location\"\r\n /> -->\r\n <input type=\"text\" class=\"form-control mt-3\" id=\"location\" formControlName=\"location\" #placesRef=\"ngx-places\" ngx-gp-autocomplete (onAddressChange)=\"handleAddressChange($event)\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('location')?.invalid && (userForm.get('location')?.touched)}\">\r\n <div *ngIf=\"(f.location.touched || submitted) && f.location.errors\" class=\"text-danger\">\r\n <div *ngIf=\"f.location.errors.required\">Location is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"age\">Age</label>\r\n <div class=\"input-group\">\r\n <button\r\n type=\"button\"\r\n class=\"btn pt-5 position-absolute top-50 translate-middle-y\"\r\n style=\"left: 0.25rem;\"\r\n (click)=\"decrementAge()\"\r\n >\r\n -\r\n </button>\r\n \r\n <input\r\n type=\"text\" (keypress)=\"omit_special_char($event)\"\r\n id=\"age\"\r\n class=\"form-control pe-5 text-center mt-3\"\r\n formControlName=\"age\"\r\n min=\"1\" max=\"99\"\r\n />\r\n \r\n <button\r\n type=\"button\"\r\n class=\"btn pt-5 position-absolute top-50 translate-middle-y\"\r\n style=\"right: 2.5rem;\"\r\n (click)=\"incrementAge()\"\r\n >\r\n +\r\n </button>\r\n </div>\r\n <div *ngIf=\"submitted && f.age.errors\" class=\"text-danger mt-1\">\r\n <div *ngIf=\"f.age.errors.required\">Age is required</div>\r\n <div *ngIf=\"f.age.errors.min\">Age must be at least 1</div>\r\n <div *ngIf=\"f.age.errors.max\">Age must be at least 99</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"gender\">Gender</label>\r\n <select class=\"form-select mt-3\" formControlName=\"gender\">\r\n <option value=\"\">Select Gender</option>\r\n <option value=\"male\">Male</option>\r\n <option value=\"female\">Female</option>\r\n </select>\r\n <div *ngIf=\"submitted && f.gender.errors\" class=\"text-danger\">\r\n <div *ngIf=\"f.gender.errors.required\">Gender is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"text-end mt-5\">\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </form>\r\n \r\n \r\n </div>\r\n </section>\r\n <section *ngIf=\"selectedCustomerType ==='missedOpportunity'\">\r\n <div class=\"row mt-5 mx-3 border-gray-active1\">\r\n \r\n <div\r\n *ngFor=\"let obj of missedOpportunityList\"\r\n class=\"nav-item nav-item1 w-25\"\r\n (click)=\"selectedTabs(obj.name)\">\r\n <span\r\n [ngClass]=\"selectedMissed === obj.name ? 'active' : 'active-normal'\"\r\n class=\"nav-link nav-link1 cursor-pointer text-nowrap\">\r\n {{ obj.name }}\r\n </span>\r\n </div>\r\n \r\n <div class=\"separator separator-double mb-3\"></div>\r\n <!-- Issue Badges -->\r\n <div *ngFor=\"let obj of missedOpportunityList\">\r\n <div *ngIf=\"selectedMissed === obj.name\" class=\"mt-4\">\r\n <span *ngFor=\"let item of obj.issues\">\r\n \r\n <span\r\n (click)=\"selectSubissue(obj, item)\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': selectedIssues.includes(item),\r\n 'badge-light-default':!selectedIssues.includes(item)\r\n }\"\r\n class=\"badge mt-2 me-2 cursor-pointer\">\r\n <span class=\"me-2\" *ngIf=\"!selectedIssues.includes(item)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M6 2.5V9.5M2.5 6H9.5\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <span class=\"me-2\" *ngIf=\"selectedIssues.includes(item)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" rx=\"8\" fill=\"#DAF1FF\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.3977 4.92661L6.62434 9.53328L5.35767 8.17994C5.12434 7.95994 4.75767 7.94661 4.491 8.13328C4.231 8.32661 4.15767 8.66661 4.31767 8.93994L5.81767 11.3799C5.96434 11.6066 6.21767 11.7466 6.50434 11.7466C6.77767 11.7466 7.03767 11.6066 7.18434 11.3799C7.42434 11.0666 12.0043 5.60661 12.0043 5.60661C12.6043 4.99328 11.8777 4.45328 11.3977 4.91994V4.92661Z\" fill=\"#33B5FF\"/>\r\n </svg>\r\n </span>\r\n {{ item }}\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"mt-4\">\r\n <label class=\"form-label\">Description (Optional)</label>\r\n <textarea\r\n rows=\"3\"\r\n class=\"form-control\"\r\n placeholder=\"Enter comments\"\r\n [(ngModel)]=\"description\"\r\n ></textarea>\r\n </div>\r\n \r\n \r\n <div class=\"text-end mt-5\" (click)=\"submitMissedOpportunity()\">\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </div>\r\n </section>\r\n </section>\r\n <section *ngIf=\"selectedTab === 'customer'\">\r\n <div class=\"row mt-10\">\r\n <div class=\"col-md-6\">\r\n <span class=\"tag-class\">Tagged Summary <span *ngIf=\"tagggedData?.status==='submitted'\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M14.6668 7.38674V8.00007C14.666 9.43769 14.2005 10.8365 13.3397 11.988C12.4789 13.1394 11.269 13.9817 9.8904 14.3893C8.51178 14.797 7.03834 14.748 5.68981 14.2498C4.34128 13.7516 3.18993 12.8308 2.40747 11.6248C1.62501 10.4188 1.25336 8.99211 1.34795 7.55761C1.44254 6.12312 1.9983 4.75762 2.93235 3.66479C3.8664 2.57195 5.12869 1.81033 6.53096 1.4935C7.93323 1.17668 9.40034 1.32163 10.7135 1.90674M14.6668 2.66674L8.00017 9.34007L6.00017 7.34007\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> </span>\r\n </div>\r\n <div class=\"col-md-6 text-end\" *ngIf=\"tagggedData?.status!='submitted'\">\r\n <span class=\"badge badge-light-warning ms-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10901_7795)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.13152 0.00142049C5.25855 -0.0175778 4.39195 0.154192 3.59222 0.504738C2.7925 0.855283 2.07892 1.37616 1.50131 2.03099C0.923703 2.68583 0.495981 3.45885 0.248009 4.29608C3.70294e-05 5.1333 -0.0622095 6.01457 0.0656154 6.87834C0.19344 7.74212 0.508256 8.56758 0.988083 9.29711C1.46791 10.0266 2.10119 10.6426 2.8437 11.1021C3.58621 11.5616 4.42006 11.8535 5.28703 11.9574C6.15401 12.0613 7.03322 11.9747 7.86327 11.7037C8.0051 11.6573 8.1227 11.5565 8.19022 11.4235C8.25773 11.2904 8.26962 11.136 8.22327 10.9942C8.17693 10.8523 8.07614 10.7347 7.94308 10.6672C7.81002 10.5997 7.6556 10.5878 7.51377 10.6342C6.61175 10.9287 5.64338 10.9536 4.72742 10.7058C3.81146 10.458 2.98773 9.94825 2.35725 9.2391C1.72677 8.52995 1.31696 7.65221 1.17807 6.71354C1.03917 5.77487 1.17724 4.81607 1.57534 3.95473C1.97343 3.09338 2.61425 2.36694 3.4192 1.86449C4.22414 1.36204 5.15823 1.10543 6.10689 1.12613C7.05556 1.14683 7.97756 1.44393 8.75983 1.98101C9.5421 2.51809 10.1506 3.27178 10.5108 4.14967C10.5674 4.28772 10.6765 4.39763 10.8141 4.45522C10.8822 4.48374 10.9553 4.49856 11.0292 4.49883C11.1031 4.4991 11.1763 4.48482 11.2446 4.4568C11.313 4.42878 11.3752 4.38757 11.4276 4.33552C11.48 4.28347 11.5217 4.22161 11.5502 4.15347C11.5787 4.08532 11.5935 4.01222 11.5938 3.93835C11.5941 3.86448 11.5798 3.79127 11.5518 3.72292C11.1085 2.64239 10.3596 1.7147 9.39677 1.05365C8.43396 0.392587 7.29915 0.0268946 6.13152 0.00142049ZM6.56277 2.81242C6.56277 2.66324 6.50351 2.52016 6.39802 2.41467C6.29253 2.30918 6.14946 2.24992 6.00027 2.24992C5.85109 2.24992 5.70801 2.30918 5.60252 2.41467C5.49704 2.52016 5.43777 2.66324 5.43777 2.81242V5.76742L3.91227 7.29217C3.85701 7.34367 3.81268 7.40577 3.78194 7.47477C3.75119 7.54377 3.73466 7.61825 3.73333 7.69378C3.732 7.76931 3.74589 7.84433 3.77418 7.91437C3.80247 7.98441 3.84458 8.04804 3.89799 8.10145C3.95141 8.15486 4.01503 8.19697 4.08507 8.22526C4.15512 8.25355 4.23014 8.26745 4.30566 8.26612C4.38119 8.26478 4.45568 8.24825 4.52468 8.21751C4.59368 8.18676 4.65578 8.14244 4.70727 8.08717L6.39777 6.39742L6.56277 6.23242V2.81242ZM11.2503 11.2499C11.2503 11.4488 11.1713 11.6396 11.0306 11.7803C10.8899 11.9209 10.6992 11.9999 10.5003 11.9999C10.3014 11.9999 10.1106 11.9209 9.96994 11.7803C9.82929 11.6396 9.75027 11.4488 9.75027 11.2499C9.75027 11.051 9.82929 10.8602 9.96994 10.7196C10.1106 10.5789 10.3014 10.4999 10.5003 10.4999C10.6992 10.4999 10.8899 10.5789 11.0306 10.7196C11.1713 10.8602 11.2503 11.051 11.2503 11.2499ZM11.0628 6.56242C11.0628 6.41324 11.0035 6.27016 10.898 6.16467C10.7925 6.05919 10.6495 5.99992 10.5003 5.99992C10.3511 5.99992 10.208 6.05919 10.1025 6.16467C9.99704 6.27016 9.93777 6.41324 9.93777 6.56242V9.18742C9.93777 9.33661 9.99704 9.47968 10.1025 9.58517C10.208 9.69066 10.3511 9.74992 10.5003 9.74992C10.6495 9.74992 10.7925 9.69066 10.898 9.58517C11.0035 9.47968 11.0628 9.33661 11.0628 9.18742V6.56242Z\" fill=\"#B54708\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.2409 3.07775C11.1762 2.96171 11.1078 2.84799 11.0357 2.73674C10.7826 2.34623 10.4848 1.98631 10.1483 1.6644C9.91561 1.44184 9.66446 1.23744 9.39677 1.05365C9.39672 1.05361 9.39683 1.05368 9.39677 1.05365C9.23737 0.944207 9.07308 0.842748 8.90487 0.749705C8.7207 0.647828 8.53163 0.5559 8.3385 0.474192C7.64269 0.179813 6.8941 0.0180577 6.13152 0.00142049C6.13149 0.00141983 6.13155 0.00142115 6.13152 0.00142049C6.08778 0.00046929 6.04397 -5.01265e-06 6.00027 3.99426e-08C5.19726 9.28871e-05 4.40222 0.161386 3.66237 0.47452C3.63893 0.484441 3.61555 0.494513 3.59222 0.504738C3.42243 0.579166 3.25651 0.661273 3.09496 0.75071C3.00307 0.801577 2.9126 0.854814 2.82363 0.910359C2.33223 1.21713 1.88653 1.59427 1.50131 2.03099C1.11608 2.46773 0.797516 2.95704 0.554486 3.48291C0.433124 3.74551 0.330597 4.01723 0.248009 4.29608C5.51343e-05 5.13324 -0.0622004 6.01444 0.0655874 6.87815C0.065578 6.87809 0.0655967 6.87822 0.0655874 6.87815C0.193412 7.74193 0.508256 8.56758 0.988083 9.29711C1.14783 9.53998 1.32458 9.77027 1.51671 9.98639C1.90168 10.4194 2.34838 10.7956 2.8437 11.1021C3.33882 11.4085 3.87455 11.6404 4.43364 11.7917C4.71299 11.8673 4.99817 11.9228 5.28703 11.9574C5.31999 11.9613 5.35296 11.965 5.38594 11.9684C5.86275 12.0175 6.34254 12.0092 6.81514 11.9445C6.99265 11.9202 7.16915 11.8879 7.34409 11.8477C7.5188 11.8076 7.69196 11.7596 7.86302 11.7038C7.86294 11.7038 7.86311 11.7037 7.86302 11.7038C7.89127 11.6945 7.9188 11.6831 7.94492 11.6697C8.04995 11.6159 8.13615 11.53 8.19022 11.4235C8.21812 11.3685 8.23653 11.3098 8.24524 11.2499C8.25761 11.1649 8.25046 11.0774 8.22327 10.9942C8.17693 10.8523 8.07614 10.7347 7.94308 10.6672C7.81011 10.5998 7.65579 10.5878 7.51404 10.6341C7.51395 10.6341 7.51413 10.6341 7.51404 10.6341C7.43563 10.6597 7.35645 10.6833 7.27711 10.7049C7.16292 10.7359 7.04786 10.7626 6.93215 10.7851C6.88016 10.7953 6.82804 10.8045 6.77581 10.8129C6.49267 10.8585 6.20633 10.879 5.92014 10.8743C5.84832 10.8731 5.7765 10.8704 5.70476 10.866C5.60998 10.8602 5.51532 10.8517 5.4209 10.8404C5.37256 10.8346 5.32428 10.8281 5.27608 10.8208C5.09176 10.7931 4.90856 10.7548 4.72742 10.7058C4.59856 10.6709 4.47152 10.6309 4.34659 10.5858C4.02763 10.4708 3.7224 10.3231 3.43559 10.1456C3.40186 10.1248 3.36839 10.1035 3.33518 10.0818C3.05409 9.89826 2.79178 9.68556 2.55287 9.44658C2.48578 9.37947 2.42054 9.31029 2.35725 9.2391C2.20011 9.06234 2.05667 8.87512 1.92772 8.67908C1.92445 8.67411 1.92118 8.66913 1.91793 8.66414C1.7113 8.34749 1.54234 8.00807 1.41432 7.65286C1.30511 7.34986 1.2257 7.03536 1.17809 6.71371C1.17808 6.71366 1.1781 6.71377 1.17809 6.71371C1.1575 6.57457 1.14297 6.43481 1.1345 6.29516C1.1301 6.22253 1.12732 6.14989 1.12617 6.07729C1.11832 5.58257 1.18585 5.08961 1.3263 4.61545C1.39297 4.39036 1.47607 4.16951 1.57534 3.95473C1.7744 3.52403 2.03414 3.12706 2.34475 2.77496C2.3762 2.73932 2.40816 2.70413 2.44064 2.66942C2.72893 2.36127 3.05749 2.09027 3.4192 1.86449C3.61995 1.73918 3.82874 1.62916 4.04379 1.53492C4.2051 1.46422 4.36993 1.40241 4.53753 1.34968C5.00877 1.20143 5.50191 1.125 6.00027 1.12497C6.03579 1.12497 6.07133 1.12535 6.10689 1.12613C6.56965 1.13624 7.02621 1.21212 7.46315 1.34954C7.9219 1.49383 8.35919 1.70595 8.75983 1.98101C8.75978 1.98097 8.75988 1.98104 8.75983 1.98101C8.91447 2.08719 9.06247 2.20193 9.20295 2.32433C9.32789 2.43318 9.447 2.54816 9.55988 2.66877C9.67464 2.79139 9.78295 2.91982 9.8844 3.05355C10.0182 3.22986 10.14 3.41537 10.2489 3.60887C10.3086 3.71493 10.3644 3.82339 10.4162 3.93405C10.4455 3.99677 10.4736 4.06019 10.5003 4.12428C10.5038 4.13273 10.5073 4.1412 10.5108 4.14967C10.5107 4.14959 10.5108 4.14975 10.5108 4.14967C10.5674 4.28761 10.6765 4.39766 10.8141 4.45522C10.8822 4.48374 10.9553 4.49856 11.0292 4.49883C11.1031 4.4991 11.1763 4.48482 11.2446 4.4568C11.313 4.42878 11.3752 4.38757 11.4276 4.33552C11.48 4.28348 11.5217 4.22161 11.5502 4.15347C11.5787 4.08532 11.5935 4.01222 11.5938 3.93835C11.5941 3.86448 11.5798 3.79127 11.5518 3.72292C11.5517 3.72283 11.5518 3.72301 11.5518 3.72292C11.4834 3.55631 11.4077 3.39306 11.3251 3.23413C11.2978 3.18156 11.2697 3.12942 11.2409 3.07775ZM6.56277 2.81242C6.56277 2.66324 6.50351 2.52016 6.39802 2.41467C6.3121 2.32875 6.20124 2.2735 6.08246 2.25595C6.05548 2.25198 6.02787 2.24992 6.00027 2.24992C5.85109 2.24992 5.70801 2.30918 5.60252 2.41467C5.49704 2.52016 5.43777 2.66324 5.43777 2.81242V5.76742L3.91245 7.292C3.90275 7.30103 3.89322 7.31057 3.88421 7.32023C3.84187 7.36567 3.80729 7.41787 3.78194 7.47477C3.75119 7.54377 3.73466 7.61825 3.73333 7.69378C3.732 7.76931 3.74589 7.84433 3.77418 7.91437C3.78054 7.93011 3.78759 7.94552 3.79532 7.96057C3.82196 8.01249 3.85658 8.06004 3.89799 8.10145C3.95141 8.15487 4.01503 8.19697 4.08507 8.22526C4.15512 8.25356 4.23014 8.26745 4.30566 8.26612C4.38119 8.26478 4.45568 8.24825 4.52468 8.21751C4.58157 8.19216 4.63377 8.15757 4.67921 8.11524C4.68881 8.10629 4.69811 8.097 4.70708 8.08737C4.70702 8.08744 4.70715 8.08731 4.70708 8.08737L6.56277 6.23242V2.81242ZM9.93777 9.18742C9.93777 9.33661 9.99704 9.47968 10.1025 9.58517C10.208 9.69066 10.3511 9.74992 10.5003 9.74992C10.6437 9.74992 10.7815 9.69514 10.8857 9.59716C10.8898 9.59323 10.894 9.58924 10.898 9.58517C11.0035 9.47968 11.0628 9.33661 11.0628 9.18742V7.54234C10.8777 7.51426 10.6897 7.49992 10.5003 7.49992C10.3108 7.49992 10.1228 7.51426 9.93777 7.54234V9.18742ZM9.93777 7.32686C10.1215 7.38612 10.3096 7.4303 10.5003 7.45904C10.6714 7.48483 10.8445 7.49818 11.0183 7.49881C11.0331 7.49887 11.0479 7.49883 11.0628 7.4987V6.56242C11.0628 6.49008 11.0488 6.41917 11.0224 6.35328C10.9944 6.28331 10.9524 6.21901 10.898 6.16468C10.7925 6.05919 10.6495 5.99992 10.5003 5.99992C10.3511 5.99992 10.208 6.05919 10.1025 6.16468C10.1003 6.16692 10.0981 6.16917 10.0959 6.17145C9.9977 6.27299 9.94135 6.40773 9.93794 6.54882C9.93783 6.55335 9.93777 6.55788 9.93777 6.56242V7.32686ZM11.2488 11.2968C11.2498 11.2813 11.2503 11.2656 11.2503 11.2499C11.2503 11.2487 11.2503 11.2475 11.2503 11.2463C11.2493 11.0487 11.1704 10.8594 11.0306 10.7196C10.8899 10.5789 10.6992 10.4999 10.5003 10.4999C10.3014 10.4999 10.1106 10.5789 9.96994 10.7196C9.82929 10.8602 9.75027 11.051 9.75027 11.2499C9.75027 11.4488 9.82929 11.6396 9.96994 11.7803C10.1106 11.9209 10.3014 11.9999 10.5003 11.9999C10.6992 11.9999 10.8899 11.9209 11.0306 11.7803C11.1602 11.6507 11.2374 11.4786 11.2488 11.2968Z\" fill=\"#B54708\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10901_7795\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"ms-2\">Pending Tagged Info</span></span> \r\n </div>\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngIf=\"tagggedData?.revopsType==='purchaser'\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Name</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.name}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Location</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.location}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Mobile</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.mobile}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Age</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.age}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Email</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.email}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Gender</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.gender}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"tagggedData?.revopsType==='missedOpportunity'\">\r\n\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngFor=\"let item of tagggedData.issueList\" >\r\n <div class=\"ms-2 mb-2 spent-value\">{{item.name}}</div>\r\n <span class=\"badge badge-light-default ms-2\" *ngFor=\"let data of item.issue\">{{data}}</span>\r\n </div>\r\n \r\n </div>\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngIf=\"tagggedData?.revopsType==='nonShopper'\">\r\n <span class=\"badge badge-light-default ms-2\">{{nonShoperType}}</span>\r\n </div>\r\n <div class=\"my-2\"><span class=\"desc-id\">Original ID</span> : <span class=\"spent-value1\"\r\n style=\"font-size: 12px !important;\">{{Imagedata?.tempId}}</span></div>\r\n \r\n <div *ngIf=\"tagggedData?.description&&tagggedData?.description!=''\" class=\"my-3 desc-id\">{{tagggedData.description}}\r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n <div class=\"my-3\">\r\n <span class=\"tag-class\">Time Spent</span>\r\n </div>\r\n\r\n <div class=\"d-flex flex-wrap\">\r\n <div class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.totalTimeSpent}} </div>\r\n </div>\r\n <div class=\"spent-value my-1\">Total Time Spent</div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.entryTime}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1 cursor-pointer\" (click)=\"imageData('entry')\">Entry Time <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.exitTime}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1 cursor-pointer\" (click)=\"imageData('exit')\">Exit Time <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!Imagedata?.zoneVisited\" class=\"separator separator-double m-3\"></div>\r\n\r\n <div *ngIf=\"!Imagedata?.zoneVisited\" class=\"row\">\r\n <div class=\"col-md-6\">\r\n <span class=\"tag-class\">Zones Visited</span>\r\n\r\n </div>\r\n <!-- <div class=\"col-md-6 text-end\">\r\n <span class=\"ms-2 mt-2 view-tetory cursor-pointer\">View Trajectory <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M15 10.8333V15.8333C15 16.2754 14.8244 16.6993 14.5118 17.0118C14.1993 17.3244 13.7754 17.5 13.3333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V6.66667C2.5 6.22464 2.67559 5.80072 2.98816 5.48816C3.30072 5.17559 3.72464 5 4.16667 5H9.16667M12.5 2.5H17.5M17.5 2.5V7.5M17.5 2.5L8.33333 11.6667\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></span>\r\n </div> -->\r\n <ng-container class=\"h-200px scroll\">\r\n <div class=\"col mt-2\" *ngFor=\"let obj of Imagedata?.zoneVisited\">\r\n <span class=\"badge badge-light-primary \">{{obj}}</span>\r\n </div>\r\n <!-- <div *ngIf=\"Imagedata?.zoneVisited.length ===0\" class=\"col-md-12 mt-2 text-center\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No Zones Visited</div>\r\n <div class=\"nodata-sub\">There is no result for this Zones</div>\r\n </div> -->\r\n \r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n\r\n <div class=\"my-3\">\r\n <span class=\"tag-class\">Staff Engagement</span>\r\n </div>\r\n\r\n <div class=\"d-flex flex-wrap\">\r\n <div class=\"border border-gray-300 border-dobule rounded w-45 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.staffEngagement.timeTakenToAssist}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1\">Time taken to assist \r\n <!-- <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> -->\r\n </div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-45 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.staffEngagement.timeSpentWithStaff}}</div>\r\n </div>\r\n <div class=\"spent-value my-1\">Time spent with staff</div>\r\n </div>\r\n \r\n \r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n \r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n \r\n</section>\r\n</div>", styles: [".switch-form-card{padding:8px 16px;border-radius:4px;border-left:2px solid var(--Primary-600, #00A3FF);background:var(--Primary-25, #F6FCFF);display:flex;align-items:center;justify-content:space-between}.switch-form-card .txt-one{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:140%}.nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.badge-num-primary{border-radius:16px!important;background:var(--Primary-50, #EAF8FF)!important;color:var(--Primary-700, #009BF3)!important;text-align:center;font-size:14px!important;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.badge-num-muted{border-radius:16px!important;background:var(--Primary-50, #F2F4F7)!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.img-src{width:100%;height:210px;border-radius:.625rem}.img-traffic .col-md-3{width:24%!important}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.img-doc-directory{color:var(--Gray-900, #101828)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline}.img-doc-time{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}.img-doc-value{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.overflow-x{overflow-x:auto}.no-preview{border:1px solid #F04438;background:#fee4e2;border-radius:8px;stroke-width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:41px 16px}.no-preview .header{color:#f04438;font-size:20px;font-weight:700;line-height:20px}.no-preview .description{color:#f04438;font-size:12px;font-weight:500;line-height:18px}.img-nodata{width:25%;height:15%}.img-nodata1{width:15%;height:15%}.nodata-title{font-size:14px!important;font-weight:600}.img-direc{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:500;line-height:28px}.custom-accordion{border-radius:5px}.custom-accordion-item{margin-bottom:10px}.custom-accordion-header{background-color:#fff;border:none;cursor:pointer;padding:10px;text-align:left;width:100%;display:flex;justify-content:space-between;align-items:center}.custom-accordion{width:100%}.mainheading{width:100%;display:flex;justify-content:space-between;align-items:center;padding:19px;border:none;background:none;cursor:pointer}.header-row{display:flex;align-items:center;width:100%;justify-content:space-between}.img-dire{font-size:16px;font-weight:700}.divider{flex-grow:1;height:1px;background-color:#ddd;margin:0 10px}.accordion-arrow{display:flex;align-items:center}.scroll-container{max-height:400px;overflow-y:auto;overflow-x:hidden}.high-400px{min-height:auto!important;max-height:800px!important}.slider{position:relative}.slider .previous{position:absolute;top:30%;left:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.slider .next{position:absolute;top:30%;right:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.img-src1{border-radius:12px;border:1px solid var(--Gray-400, #98A2B3);background:var(--Gray-50, #F9FAFB);width:100%;height:375px}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);padding:0 4px}.border-gray-active{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #EAF8FF);padding:0 4px}.zone-header{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.last-visit{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.toggle-label{color:var(--Gray-900, #101828);font-size:16px;font-weight:600;line-height:24px}.nav-dev{border-radius:8px!important;border:1px solid var(--Primary-200, #99DAFF)!important;background:var(--Primary-25, #F6FCFF)!important}.tab-active{border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:500;line-height:20px}.tab-text-default{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px}.border-gray-active1{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:12px!important}.nav-item1 .nav-link1.active{border:none;border-radius:0;background:var(--Primary-50, #EAF8FF);border-bottom:2px solid #009BF3!important;padding:12px;color:var(--Primary-700, #009BF3);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.active-normal{padding:12px;color:var(--Gray-500, #667085);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.nav-item1 .nav-link1:hover{border:none}.tag-class{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.spent-title{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.spent-value{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.spent-value1{color:var(--Primary-500, #33B5FF);font-size:14px;font-weight:500;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font}.w-33{width:30%}.w-45{width:45%}.view-tetory{color:var(--Primary-700, #009BF3);font-size:14px;font-weight:600;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font;text-transform:capitalize}.border-gray-tagged{border-radius:4px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:8px!important}.desc-id{color:var(--Gray-900, #101828);font-size:12px;font-style:normal;font-weight:400;line-height:20px}.active-tab{border-bottom:2px solid #0d6efd;font-weight:600;color:#0d6efd}.badge-selected{background-color:#e0f3ff;color:#0d6efd;border:1px solid #0d6efd;border-radius:20px;padding:6px 12px}.badge-unselected{background-color:#f0f0f0;color:#333;border-radius:20px;padding:6px 12px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.cursor-not-allowed{cursor:not-allowed!important}\n"] }]
|
|
720
|
+
args: [{ selector: "lib-image-doc", template: "<div class=\"card mt-3\">\r\n <div class=\"card-header mt-3 px-0 border-bottom-0\">\r\n <div class=\"custom-accordion\">\r\n <div class=\"custom-accordion-item\">\r\n <button class=\"mainheading pb-0 custom-accordion-header\" (click)=\"toggleAccordion()\">\r\n <div class=\"header-row\">\r\n <span class=\"img-direc\">Image Directory</span>\r\n <span class=\"divider\"></span>\r\n <span class=\"accordion-arrow\">\r\n <!-- Down arrow for collapsed state, up arrow for expanded state -->\r\n <svg *ngIf=\"!isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\" viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 1L5 5L9 1\" stroke=\"#071437\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg *ngIf=\"isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\" viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 5L5 1L9 5\" stroke=\"#1b84ff\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n </div>\r\n </button>\r\n </div>\r\n </div>\r\n \r\n \r\n </div>\r\n <section *ngIf=\"isAccordionExpanded\">\r\n <div class=\"col-md-12 px-5\" *ngIf=\"!hideDoc\">\r\n <div class=\"switch-form-card\">\r\n <div class=\"d-flex align-items-center\">\r\n <svg width=\"46\" height=\"46\" viewBox=\"0 0 46 46\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" fill=\"#DAF1FF\" />\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" stroke=\"#EAF8FF\" stroke-width=\"6\" />\r\n <path d=\"M23.8333 14.6666L15.5 24.6666H23L22.1667 31.3333L30.5 21.3333H23L23.8333 14.6666Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <div class=\"txt-one ms-2\">\r\n <ng-container>Examine individual footfall in gallery view with optimal sample images for detailed analysis.</ng-container>\r\n <!-- <ng-container *ngIf=\"isMultiple\">Upload multiple stores for configuration</ng-container> -->\r\n </div>\r\n </div>\r\n <div class=\"cursor-pointer\" (click)=\"closeData()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M18.295 7.115C18.6844 6.72564 18.6844 6.09436 18.295 5.705C17.9056 5.31564 17.2744 5.31564 16.885 5.705L12 10.59L7.115 5.705C6.72564 5.31564 6.09436 5.31564 5.705 5.705C5.31564 6.09436 5.31564 6.72564 5.705 7.115L10.59 12L5.705 16.885C5.31564 17.2744 5.31564 17.9056 5.705 18.295C6.09436 18.6844 6.72564 18.6844 7.115 18.295L12 13.41L16.885 18.295C17.2744 18.6844 17.9056 18.6844 18.295 18.295C18.6844 17.9056 18.6844 17.2744 18.295 16.885L13.41 12L18.295 7.115Z\"\r\n fill=\"black\" />\r\n </svg>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <div *ngIf=\"folderView\" class=\"card-body px-0\">\r\n <div class=\"scroll-container\">\r\n <div class=\"row\">\r\n <div class=\"col-md-1 mt-5 text-center\" *ngFor=\"let obj of dateArray;let i = index\">\r\n <div (click)=\"getimages(i,obj)\">\r\n <div *ngIf=\"i === selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.154297\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#33B5FF\" />\r\n <path\r\n d=\"M39.8216 36.1667C39.8216 36.7855 39.5758 37.379 39.1382 37.8166C38.7006 38.2542 38.1071 38.5 37.4883 38.5H18.8216C18.2028 38.5 17.6093 38.2542 17.1717 37.8166C16.7341 37.379 16.4883 36.7855 16.4883 36.1667V19.8333C16.4883 19.2145 16.7341 18.621 17.1717 18.1834C17.6093 17.7458 18.2028 17.5 18.8216 17.5H24.6549L26.9883 21H37.4883C38.1071 21 38.7006 21.2458 39.1382 21.6834C39.5758 22.121 39.8216 22.7145 39.8216 23.3333V36.1667Z\"\r\n stroke=\"white\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n <div *ngIf=\"i !== selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.462891\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#EAF8FF\" />\r\n <path\r\n d=\"M40.1302 36.1667C40.1302 36.7855 39.8844 37.379 39.4468 37.8166C39.0092 38.2542 38.4157 38.5 37.7969 38.5H19.1302C18.5114 38.5 17.9179 38.2542 17.4803 37.8166C17.0427 37.379 16.7969 36.7855 16.7969 36.1667V19.8333C16.7969 19.2145 17.0427 18.621 17.4803 18.1834C17.9179 17.7458 18.5114 17.5 19.1302 17.5H24.9635L27.2969 21H37.7969C38.4157 21 39.0092 21.2458 39.4468 21.6834C39.8844 22.121 40.1302 22.7145 40.1302 23.3333V36.1667Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n \r\n </div>\r\n <div *ngIf=\"!folderView\" class=\"card-body\">\r\n <section *ngIf=\"!imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-between align-items-center px-0\">\r\n <span *ngIf=\"backnav\" class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"img-direc ms-2\">{{folderDate | date:'dd MMM, yyyy'}}</span>\r\n <div *ngIf=\"!normalize\" class=\"ms-auto text-end\">\r\n <form [formGroup]=\"form\">\r\n <lib-reactive-select \r\n [formControl]=\"selectControl\" \r\n [idField]=\"'value'\"\r\n [nameField]=\"'label'\"\r\n [data]=\"datasets\"\r\n class=\"w-100 text-start\"\r\n (valueChange)=\"onValueChange($event)\">\r\n </lib-reactive-select>\r\n </form>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-2 mb-2 w-100 overflow-x px-0\">\r\n <ng-container *ngIf=\"this.headerData?.client !=='459'\">\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray\">\r\n <ul *ngIf=\"lengthValue\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"this.headerData?.client ==='459'\">\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray.slice(0, -1)\">\r\n <ul *ngIf=\"lengthValue\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"loading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"noData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div *ngIf=\"normalize\" class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata1\" src=\"./assets/tango/Icons/not-applicable.svg\" alt=\"\">\r\n <div class=\"nodata-title mt-3\">Data Not Found</div>\r\n <div class=\"nodata-sub\">Normalized data is not applicable</div>\r\n </div>\r\n <div *ngIf=\"!normalize\" class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this image directory</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row px-0 img-traffic contain high-400px scroll-y\" *ngIf=\"!noData && !loading\">\r\n <div class=\"col-md-3 border-gray mx-2 p-2 mt-5\" *ngFor=\"let obj of imagesArrayData\">\r\n <img *ngIf=\"obj.images.entryTimeImage\" class=\"img-src cursor-pointer\" [src]=\"obj.images.entryTimeImage\" (error)=\"obj?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageView(obj,objData.footfallDate)\">\r\n <div *ngIf=\"!obj.images.entryTimeImage\" class=\"no-preview\">\r\n <span class=\"mb-5\" >\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n\r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n <div class=\"row px-2 mb-2\">\r\n <div class=\"col-md-8\">\r\n <div class=\"py-2 img-doc-directory\"><span class=\"badge badge-light-info\">{{obj.tempId}}</span> \r\n <!-- <span *ngIf=\"selectControl.value ==='missedOpportunity'\" class=\"badge badge-light-success ms-2\">Missed Opportunity</span>\r\n <span *ngIf=\"selectControl.value ==='bounced'\" class=\"badge badge-light-success ms-2\">Bounced Footfall</span> -->\r\n <span *ngIf=\"obj?.revopsType || selectControl.value as value\"\r\n class=\"badge ms-2\"\r\n [ngClass]=\"{\r\n 'badge-light-success': value === 'footfall' || value === 'purchaser',\r\n 'badge-light-warning': value === 'nonShopper',\r\n 'badge-light-danger': value === 'bounced' || value === 'engager' || value === 'missedOpportunity' || value === 'conversion',\r\n 'badge-light-primary': !value\r\n }\">\r\n {{\r\n value === 'purchaser' ? 'Purchaser' :\r\n value === 'nonShopper' ? 'Non Shopper' :\r\n value === 'missedOpportunity' ? 'Missed Opportunity' :\r\n (value | titlecase)\r\n }}\r\n </span>\r\n </div>\r\n <div class=\"py-2 img-doc-time\">Entry Time</div>\r\n <div *ngIf=\"clientData?.trackerFF\" class=\"py-2 img-doc-time\">Exit Time</div>\r\n <div *ngIf=\"clientData?.trackerFF\" class=\"py-2 img-doc-time\">Total Time Spent</div>\r\n </div>\r\n <div class=\"col-md-4 text-end\" >\r\n <div class=\"py-2\">\r\n <span class=\"cursor-pointer\" *ngIf=\"!obj?.revopsType||obj?.revopsType===''\" ngbTooltip=\"Yet to tag the customer\" (click)=\"revopTagging(obj)\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22852)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.37328 0.00201606C7.20932 -0.023315 6.05385 0.205711 4.98755 0.673106C3.92125 1.1405 2.96981 1.835 2.19967 2.70811C1.42952 3.58123 0.859225 4.61192 0.528596 5.72822C0.197966 6.84453 0.114971 8.01955 0.285404 9.17124C0.455837 10.3229 0.875591 11.4236 1.51536 12.3963C2.15513 13.369 2.9995 14.1903 3.98951 14.8029C4.97953 15.4156 6.09133 15.8048 7.2473 15.9433C8.40326 16.0818 9.57554 15.9664 10.6823 15.605C10.8714 15.5432 11.0282 15.4088 11.1182 15.2314C11.2082 15.054 11.2241 14.8481 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6113 14.1331 10.4054 14.1172 10.2163 14.179C9.01359 14.5717 7.72242 14.6049 6.50114 14.2745C5.27986 13.9441 4.18155 13.2644 3.34092 12.3189C2.50028 11.3734 1.95386 10.2031 1.76867 8.95151C1.58348 7.69995 1.76757 6.42155 2.29837 5.27309C2.82916 4.12463 3.68358 3.15604 4.75684 2.48611C5.83011 1.81618 7.07555 1.47403 8.34044 1.50163C9.60533 1.52922 10.8347 1.92536 11.8777 2.64147C12.9207 3.35757 13.7321 4.3625 14.2123 5.53302C14.2877 5.71708 14.4332 5.86362 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44721 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05515 15.6003 4.96402C15.0093 3.52331 14.0107 2.28639 12.7269 1.40498C11.4432 0.523571 9.93012 0.0359815 8.37328 0.00201606ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.58796 3.07903 8.39719 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41428 9.72302C5.34059 9.79168 5.28149 9.87448 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.26788 10.646 5.32402 10.7308 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.32282 10.9158 6.40562 10.8567 6.47428 10.783L8.72828 8.53002L8.94828 8.31002V3.75002ZM15.1983 15C15.1983 15.2652 15.0929 15.5196 14.9054 15.7071C14.7179 15.8947 14.4635 16 14.1983 16C13.9331 16 13.6787 15.8947 13.4912 15.7071C13.3036 15.5196 13.1983 15.2652 13.1983 15C13.1983 14.7348 13.3036 14.4804 13.4912 14.2929C13.6787 14.1054 13.9331 14 14.1983 14C14.4635 14 14.7179 14.1054 14.9054 14.2929C15.0929 14.4804 15.1983 14.7348 15.1983 15ZM14.9483 8.75002C14.9483 8.5511 14.8693 8.36034 14.7286 8.21969C14.588 8.07903 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07903 13.668 8.21969C13.5273 8.36034 13.4483 8.5511 13.4483 8.75002V12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3972 13 14.588 12.921 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V8.75002Z\" fill=\"#F79009\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.1858 4.10379C15.0996 3.94907 15.0083 3.79744 14.9121 3.64911C14.5747 3.12843 14.1776 2.64854 13.7289 2.21932C13.4187 1.92257 13.0839 1.65004 12.7269 1.40498C12.7269 1.40493 12.727 1.40504 12.7269 1.40498C12.5144 1.25906 12.2954 1.12379 12.0711 0.999729C11.8255 0.863893 11.5734 0.741322 11.3159 0.632377C10.3882 0.239873 9.39006 0.024199 8.37328 0.00201606C8.37324 0.00201518 8.37332 0.00201694 8.37328 0.00201606C8.31496 0.00074779 8.25655 0.000115387 8.19828 0.000122124C7.1276 0.00024592 6.06754 0.215304 5.08108 0.632816C5.04983 0.646043 5.01865 0.659473 4.98755 0.673106C4.76115 0.772343 4.53993 0.88182 4.32452 1.00107C4.20201 1.06889 4.08139 1.13987 3.96275 1.21393C3.30756 1.62296 2.71329 2.12581 2.19967 2.70811C1.68602 3.29043 1.26127 3.94285 0.937232 4.644C0.775415 4.99414 0.638713 5.35643 0.528596 5.72822C0.19799 6.84445 0.114983 8.01938 0.285366 9.17099C0.285354 9.17091 0.285379 9.17108 0.285366 9.17099C0.4558 10.3227 0.875591 11.4236 1.51536 12.3963C1.72835 12.7201 1.96402 13.0271 2.22019 13.3153C2.73349 13.8927 3.32909 14.3943 3.98951 14.8029C4.64967 15.2115 5.36398 15.5206 6.10943 15.7224C6.4819 15.8232 6.86215 15.8971 7.2473 15.9433C7.29123 15.9486 7.33519 15.9535 7.37917 15.958C8.01492 16.0235 8.65464 16.0124 9.28478 15.9261C9.52146 15.8937 9.75678 15.8507 9.99004 15.7971C10.223 15.7436 10.4539 15.6796 10.6819 15.6051C10.6818 15.6052 10.6821 15.6051 10.6819 15.6051C10.7196 15.5928 10.7563 15.5775 10.7911 15.5597C10.9312 15.488 11.0461 15.3735 11.1182 15.2314C11.1554 15.1581 11.18 15.0799 11.1916 15C11.2081 14.8867 11.1985 14.77 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6114 14.1331 10.4056 14.1172 10.2166 14.1789C10.2165 14.1789 10.2168 14.1789 10.2166 14.1789C10.1121 14.213 10.0065 14.2446 9.90073 14.2733C9.74848 14.3146 9.59506 14.3503 9.44078 14.3803C9.37146 14.3938 9.30196 14.4062 9.23233 14.4174C8.8548 14.4782 8.47302 14.5055 8.09144 14.4992C7.99568 14.4976 7.89992 14.4939 7.80426 14.4881C7.6779 14.4804 7.55168 14.4691 7.42578 14.454C7.36133 14.4463 7.29696 14.4376 7.23269 14.4279C6.98693 14.391 6.74267 14.3399 6.50114 14.2745C6.32933 14.228 6.15995 14.1746 5.99337 14.1146C5.56809 13.9612 5.16112 13.7642 4.7787 13.5276C4.73373 13.4998 4.68911 13.4714 4.64483 13.4425C4.27003 13.1978 3.92028 12.9142 3.60174 12.5956C3.51229 12.5061 3.42531 12.4138 3.34092 12.3189C3.13139 12.0832 2.94014 11.8336 2.76821 11.5722C2.76385 11.5656 2.7595 11.559 2.75516 11.5523C2.47964 11.1301 2.25437 10.6775 2.08368 10.2039C1.93807 9.79993 1.83218 9.38061 1.76871 8.95174C1.76869 8.95166 1.76872 8.95182 1.76871 8.95174C1.74125 8.76621 1.72188 8.57986 1.71059 8.39367C1.70471 8.29683 1.70101 8.19998 1.69948 8.10317C1.68902 7.44355 1.77905 6.78626 1.96631 6.15405C2.0552 5.85394 2.16601 5.55947 2.29837 5.27309C2.56378 4.69883 2.91011 4.16954 3.32425 3.70007C3.36618 3.65254 3.4088 3.60563 3.4521 3.55934C3.83649 3.14848 4.27458 2.78714 4.75684 2.48611C5.02452 2.31903 5.30291 2.17233 5.58963 2.04668C5.80471 1.95242 6.02449 1.87 6.24796 1.7997C6.87628 1.60202 7.5338 1.50012 8.19828 1.50008C8.24563 1.50008 8.29302 1.50059 8.34044 1.50163C8.95745 1.51511 9.5662 1.61629 10.1488 1.79952C10.7605 1.99189 11.3435 2.27472 11.8777 2.64147C11.8776 2.64142 11.8778 2.64151 11.8777 2.64147C12.0839 2.78304 12.2812 2.93603 12.4685 3.09922C12.6351 3.24436 12.7939 3.39767 12.9444 3.55848C13.0974 3.72197 13.2419 3.89322 13.3771 4.07152C13.5555 4.3066 13.7179 4.55395 13.8631 4.81195C13.9427 4.95336 14.0171 5.09798 14.0861 5.24552C14.1253 5.32914 14.1627 5.41371 14.1983 5.49916C14.203 5.51043 14.2076 5.52172 14.2123 5.53302C14.2122 5.53292 14.2123 5.53312 14.2123 5.53302C14.2878 5.71693 14.4333 5.86367 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44722 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05516 15.6003 4.96402C15.6002 4.9639 15.6003 4.96414 15.6003 4.96402C15.5091 4.74187 15.4082 4.5242 15.2981 4.31229C15.2617 4.2422 15.2242 4.17269 15.1858 4.10379ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.61405 3.10512 8.46624 3.03145 8.30786 3.00806C8.27188 3.00276 8.23508 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41452 9.72278C5.40159 9.73483 5.38887 9.74755 5.37686 9.76044C5.32041 9.82102 5.2743 9.89062 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.23863 10.5736 5.24804 10.5942 5.25834 10.6142C5.29387 10.6834 5.34002 10.7468 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.30668 10.923 6.37628 10.8769 6.43686 10.8204C6.44966 10.8085 6.46206 10.7961 6.47403 10.7833C6.47395 10.7834 6.47411 10.7832 6.47403 10.7833L8.94828 8.31002V3.75002ZM13.4483 12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3895 13 14.5732 12.927 14.7121 12.7963C14.7177 12.7911 14.7232 12.7858 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V10.0566C14.7015 10.0191 14.4509 10 14.1983 10C13.9457 10 13.695 10.0191 13.4483 10.0566V12.25ZM13.4483 9.76927C13.6932 9.84828 13.9441 9.90719 14.1983 9.94551C14.4264 9.97989 14.6572 9.99769 14.8889 9.99854C14.9087 9.99861 14.9285 9.99856 14.9483 9.99838V8.75002C14.9483 8.65356 14.9297 8.55901 14.8945 8.47117C14.8571 8.37787 14.8011 8.29213 14.7286 8.21969C14.588 8.07904 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07904 13.668 8.21969C13.665 8.22268 13.662 8.22569 13.6591 8.22872C13.5282 8.3641 13.453 8.54376 13.4485 8.73188C13.4484 8.73792 13.4483 8.74397 13.4483 8.75002V9.76927ZM15.1963 15.0626C15.1976 15.0418 15.1983 15.0209 15.1983 15C15.1983 14.9984 15.1983 14.9968 15.1983 14.9951C15.197 14.7317 15.0918 14.4793 14.9054 14.2929C14.7178 14.1054 14.4635 14 14.1983 14C13.9331 14 13.6787 14.1054 13.4912 14.2929C13.3036 14.4804 13.1983 14.7348 13.1983 15C13.1983 15.2652 13.3036 15.5196 13.4912 15.7071C13.6787 15.8947 13.9331 16 14.1983 16C14.4635 16 14.7178 15.8947 14.9054 15.7071C15.0781 15.5344 15.1811 15.305 15.1963 15.0626Z\" fill=\"#F79009\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22852\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.199219)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"cursor-pointer\" *ngIf=\"obj?.revopsType&&obj?.revopsType!==''\" (click)=\"revopTagging(obj)\" ngbTooltip=\"Customer Tagging is Done\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22856)\">\r\n <path d=\"M15.0638 7.38662V7.99995C15.063 9.43756 14.5975 10.8364 13.7367 11.9878C12.8759 13.1393 11.666 13.9816 10.2874 14.3892C8.90876 14.7968 7.43531 14.7479 6.08678 14.2497C4.73826 13.7515 3.58691 12.8307 2.80444 11.6247C2.02198 10.4186 1.65033 8.99199 1.74492 7.55749C1.83951 6.12299 2.39527 4.7575 3.32932 3.66467C4.26337 2.57183 5.52566 1.81021 6.92793 1.49338C8.3302 1.17656 9.79731 1.32151 11.1105 1.90662M15.0638 2.66662L8.39714 9.33995L6.39714 7.33995\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22856\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.398438)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"py-2 img-doc-value\">{{obj.timeSpent.entryTime}} </div>\r\n <div *ngIf=\"clientData?.trackerFF\" class=\"py-2 img-doc-value\">{{obj.timeSpent.exitTime}}</div>\r\n <div *ngIf=\"clientData?.trackerFF\" class=\"py-2 img-doc-value\">{{obj.timeSpent.totalTimeSpent}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </section>\r\n <section *ngIf=\"imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-between align-items-center px-0\">\r\n <div class=\"\">\r\n <span class=\"cursor-pointer\" (click)=\"backToView()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"ms-2 py-2 img-doc-directory\"><span class=\"badge badge-light-info\">{{Imagedata.tempId}}</span> \r\n <ng-container *ngIf=\"Imagedata?.revopsType || selectControl.value as value\">\r\n <span *ngIf=\"value\"\r\n class=\"badge ms-2\"\r\n [ngClass]=\"{\r\n 'badge-light-success': value === 'footfall' || value === 'purchaser',\r\n 'badge-light-warning': value === 'nonShopper',\r\n 'badge-light-danger': value === 'bounced' || value === 'engager' || value === 'missedOpportunity' || value === 'conversion'\r\n }\">\r\n {{\r\n value === 'purchaser' ? 'Purchaser' :\r\n value === 'nonShopper' ? 'Non Shopper' :\r\n value === 'missedOpportunity' ? 'Missed Opportunity' :\r\n (value | titlecase)\r\n }}\r\n </span>\r\n </ng-container>\r\n \r\n \r\n </span>\r\n </div>\r\n <div class=\"\">\r\n <span class=\"cursor-pointer\" [ngClass]=\"{ 'cursor-not-allowed opacity-50': isFirstImage() }\"\r\n [style.pointer-events]=\"isFirstImage() ? 'none' : 'auto'\"\r\n (click)=\"!isFirstImage() && previous()\" ><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <path d=\"M0.5 8C0.5 3.85786 3.85786 0.5 8 0.5H39.5V39.5H8C3.85786 39.5 0.5 36.1421 0.5 32V8Z\"\r\n fill=\"white\" />\r\n <path d=\"M0.5 8C0.5 3.85786 3.85786 0.5 8 0.5H39.5V39.5H8C3.85786 39.5 0.5 36.1421 0.5 32V8Z\"\r\n stroke=\"#D0D5DD\" />\r\n <path d=\"M22.5 25L17.5 20L22.5 15\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <span class=\"cursor-pointer\" [ngClass]=\"{ 'cursor-not-allowed opacity-50': isLastImage() }\"\r\n [style.pointer-events]=\"isLastImage() ? 'none' : 'auto'\"\r\n (click)=\"!isLastImage() && next()\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <path d=\"M0.5 0.5H32C36.1421 0.5 39.5 3.85786 39.5 8V32C39.5 36.1421 36.1421 39.5 32 39.5H0.5V0.5Z\"\r\n fill=\"white\" />\r\n <path d=\"M0.5 0.5H32C36.1421 0.5 39.5 3.85786 39.5 8V32C39.5 36.1421 36.1421 39.5 32 39.5H0.5V0.5Z\"\r\n stroke=\"#D0D5DD\" />\r\n <path d=\"M17.5 25L22.5 20L17.5 15\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row contain mt-10\">\r\n <div class=\"col-md-6 col-lg-6 col-xl-6\">\r\n <img class=\"cursor-pointer\" class=\"img-src1\" [src]=\"Images\"\r\n (error)=\"Images = null\" alt=\"\">\r\n <div *ngIf=\"!Images\" class=\"no-preview\">\r\n <span class=\"mb-5\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\" d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n \r\n \r\n \r\n <div class=\"row slider mt-5\">\r\n <ng-container>\r\n <div class=\"col-4\" *ngIf=\"Imagedata?.images?.entryTimeImage\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.entryTimeImage,\r\n 'border-gray': Images !== Imagedata?.images?.entryTimeImage\r\n }\">\r\n <div>Entry Time</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.entryTimeImage\"\r\n (error)=\"Imagedata?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageData('entry')\">\r\n <div *ngIf=\"!Imagedata?.images?.entryTimeImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\" *ngIf=\"Imagedata?.images?.staffEngagementImage\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.staffEngagementImage,\r\n 'border-gray': Images !== Imagedata?.images?.staffEngagementImage\r\n }\">\r\n <div>Staff Engagement</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.staffEngagementImage\"\r\n (error)=\"Imagedata?.images.staffEngagementImage = null\" alt=\"\" (click)=\"imageData('staff')\">\r\n <div *ngIf=\"!Imagedata?.images?.staffEngagementImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4 \" *ngIf=\"Imagedata?.images?.exitTimeImage && this.clientData.trackerFF\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.exitTimeImage,\r\n 'border-gray': Images !== Imagedata?.images?.exitTimeImage\r\n }\">\r\n <div>Exit Time</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.exitTimeImage\"\r\n (error)=\"Imagedata?.images.exitTimeImage = null\" alt=\"\" (click)=\"imageData('exit')\">\r\n <div *ngIf=\"!Imagedata?.images?.exitTimeImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n </div>\r\n <div class=\"col-md-6 col-lg-6 col-xl-6 pe-0 mb-3\">\r\n <ul class=\"nav flex-wrap nav-dev fw-bold align-items-center\">\r\n <li class=\"nav-item my-1 w-50\">\r\n <a (click)=\"selectedTab = 'tagged'\" [ngClass]=\"{\r\n 'tab-active': selectedTab === 'tagged'\r\n }\" class=\"tab-text-default btn nav-link px-3 px-lg-8 mx-1\">\r\n Tagged Info\r\n </a>\r\n </li>\r\n \r\n <li class=\"nav-item my-1 w-50\">\r\n <a (click)=\"selectedTab = 'customer'\" [ngClass]=\"{\r\n 'tab-active': selectedTab === 'customer'\r\n }\" class=\"tab-text-default btn nav-link px-3 px-lg-8 mx-1\">\r\n Customer Info\r\n </a>\r\n </li>\r\n </ul>\r\n <section *ngIf=\"selectedTab === 'tagged'\">\r\n <div class=\"row mx-3 mt-5 mb-3\">\r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioNonShopper\"\r\n value=\"nonShopper\" [(ngModel)]=\"selectedCustomerType\" (change)=\"onRadioChange('nonShopper')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioNonShopper\">\r\n Non Shopper\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioPurchaser\" value=\"purchaser\"\r\n [(ngModel)]=\"selectedCustomerType\" (change)=\"onRadioChange('purchaser')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioPurchaser\">\r\n Purchaser\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check \">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioMissed\"\r\n value=\"missedOpportunity\" [(ngModel)]=\"selectedCustomerType\"\r\n (change)=\"onRadioChange('missedOpportunity')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioMissed\">\r\n Missed Opportunity\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <section *ngIf=\"selectedCustomerType ==='nonShopper'\">\r\n <div class=\"row mt-5 mx-3\">\r\n <div class=\"border-gray-active1\">\r\n <span *ngFor=\"let obj of nonShopperList\" class=\"cursor-pointer\">\r\n <div class=\"badge mt-3 me-8\" [ngClass]=\"obj!==nonShoperType ? 'badge-light-default' :'badge-light-primary'\" (click)=\"selectnonShoper(obj)\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" *ngIf=\"obj!==nonShoperType\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M6 2.5V9.5M2.5 6H9.5\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" *ngIf=\"obj===nonShoperType\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" rx=\"8\" fill=\"#DAF1FF\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.3977 4.92661L6.62434 9.53328L5.35767 8.17994C5.12434 7.95994 4.75767 7.94661 4.491 8.13328C4.231 8.32661 4.15767 8.66661 4.31767 8.93994L5.81767 11.3799C5.96434 11.6066 6.21767 11.7466 6.50434 11.7466C6.77767 11.7466 7.03767 11.6066 7.18434 11.3799C7.42434 11.0666 12.0043 5.60661 12.0043 5.60661C12.6043 4.99328 11.8777 4.45328 11.3977 4.91994V4.92661Z\" fill=\"#33B5FF\"/>\r\n </svg>\r\n <span class=\"ms-3\">{{obj}}</span></div>\r\n </span>\r\n \r\n <div class=\"col-md-12 mt-5 pb-10\">\r\n <div class=\"form-group\">\r\n <label for=\"exampleInputName\">Description (Optional)</label>\r\n <textarea [(ngModel)]=\"description\" class=\"form-control mt-3\" rows=\"4\" placeholder=\"\"></textarea>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"text-end mt-5\" (click)=\"nonShopperSubmit()\" >\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </div>\r\n </section>\r\n <section *ngIf=\"selectedCustomerType ==='purchaser'\">\r\n <div class=\"row mt-5\">\r\n <form [formGroup]=\"userForm\" (ngSubmit)=\"onSubmit()\">\r\n <div class=\"row border-gray-active1\">\r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"name\">Name</label>\r\n <input\r\n type=\"text\"\r\n id=\"name\"\r\n class=\"form-control mt-3\"\r\n placeholder=\"Enter Name\" autocomplete=\"off\"\r\n formControlName=\"name\" required [ngClass]=\"{ 'is-invalid':userForm.get('name')?.invalid && (userForm.get('name')?.touched)}\"\r\n />\r\n <div *ngIf=\"isInvalid('name')\" class=\"text-danger\">\r\n <div *ngIf=\"f.name.errors?.required\">Name is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 col-lg-6 col-xl-6 col-xxl-6 mt-3\">\r\n <label for=\"contact\" class=\"form-label\">Contact Number <span class=\"alert-required text-danger\">*</span></label>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 col-lg-4 col-xl-4\">\r\n <select class=\"form-select ps-3 pe-8\" id=\"inputGroupSelect01\" formControlName=\"countryCode\">\r\n <option *ngFor=\"let country of countryList\" [value]=\"country.phonecode\">\r\n {{country.name}} ({{country.phonecode}})\r\n </option>\r\n </select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-8 col-xl-8\">\r\n <input type=\"text\" class=\"form-control\" (keypress)=\"omit_special_char($event)\"\r\n id=\"mobile\" autocomplete=\"off\" formControlName=\"mobile\" minlength=\"8\" maxlength=\"13\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('mobile')?.invalid && (userForm.get('mobile')?.touched)}\">\r\n <div *ngIf=\"isInvalid('mobile')\" class=\"text-danger\">\r\n <div *ngIf=\"f.mobile.errors?.required\">Contact Number is required.</div>\r\n <div *ngIf=\"f.mobile.errors?.minlength\">Contact Number must be at least 8 digits.</div>\r\n <div *ngIf=\"f.mobile.errors?.maxlength\">Contact Number cannot exceed 13 digits.</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 col-lg-6 col-xl-6 col-xxl-6 mt-3\">\r\n <label for=\"email\" class=\"form-label\">Email <span class=\"alert-required text-danger\">*</span></label>\r\n <input type=\"email\" class=\"form-control\" id=\"email\" formControlName=\"email\" autocomplete=\"off\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('email')?.invalid && (userForm.get('email')?.touched)}\">\r\n <div *ngIf=\"isInvalid('email')\" class=\"text-danger\">\r\n <div *ngIf=\"f.email.errors?.required\">Email is required.</div>\r\n <div *ngIf=\"f.email.errors?.pattern\">Invalid email format.</div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"location\">Location</label>\r\n <!-- <input\r\n type=\"text\"\r\n id=\"location\"\r\n class=\"form-control mt-3\"\r\n placeholder=\"Location\"\r\n formControlName=\"location\"\r\n /> -->\r\n <input type=\"text\" class=\"form-control mt-3\" id=\"location\" formControlName=\"location\" #placesRef=\"ngx-places\" ngx-gp-autocomplete (onAddressChange)=\"handleAddressChange($event)\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('location')?.invalid && (userForm.get('location')?.touched)}\">\r\n <div *ngIf=\"(f.location.touched || submitted) && f.location.errors\" class=\"text-danger\">\r\n <div *ngIf=\"f.location.errors.required\">Location is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"age\">Age</label>\r\n <div class=\"input-group\">\r\n <button\r\n type=\"button\"\r\n class=\"btn pt-5 position-absolute top-50 translate-middle-y\"\r\n style=\"left: 0.25rem;\"\r\n (click)=\"decrementAge()\"\r\n >\r\n -\r\n </button>\r\n \r\n <input\r\n type=\"text\" (keypress)=\"omit_special_char($event)\"\r\n id=\"age\"\r\n class=\"form-control pe-5 text-center mt-3\"\r\n formControlName=\"age\"\r\n min=\"1\" max=\"99\"\r\n />\r\n \r\n <button\r\n type=\"button\"\r\n class=\"btn pt-5 position-absolute top-50 translate-middle-y\"\r\n style=\"right: 2.5rem;\"\r\n (click)=\"incrementAge()\"\r\n >\r\n +\r\n </button>\r\n </div>\r\n <div *ngIf=\"submitted && f.age.errors\" class=\"text-danger mt-1\">\r\n <div *ngIf=\"f.age.errors.required\">Age is required</div>\r\n <div *ngIf=\"f.age.errors.min\">Age must be at least 1</div>\r\n <div *ngIf=\"f.age.errors.max\">Age must be at least 99</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"gender\">Gender</label>\r\n <select class=\"form-select mt-3\" formControlName=\"gender\">\r\n <option value=\"\">Select Gender</option>\r\n <option value=\"male\">Male</option>\r\n <option value=\"female\">Female</option>\r\n </select>\r\n <div *ngIf=\"submitted && f.gender.errors\" class=\"text-danger\">\r\n <div *ngIf=\"f.gender.errors.required\">Gender is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"text-end mt-5\">\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </form>\r\n \r\n \r\n </div>\r\n </section>\r\n <section *ngIf=\"selectedCustomerType ==='missedOpportunity'\">\r\n <div class=\"row mt-5 mx-3 border-gray-active1\">\r\n \r\n <div\r\n *ngFor=\"let obj of missedOpportunityList\"\r\n class=\"nav-item nav-item1 w-25\"\r\n (click)=\"selectedTabs(obj.name)\">\r\n <span\r\n [ngClass]=\"selectedMissed === obj.name ? 'active' : 'active-normal'\"\r\n class=\"nav-link nav-link1 cursor-pointer text-nowrap\">\r\n {{ obj.name }}\r\n </span>\r\n </div>\r\n \r\n <div class=\"separator separator-double mb-3\"></div>\r\n <!-- Issue Badges -->\r\n <div *ngFor=\"let obj of missedOpportunityList\">\r\n <div *ngIf=\"selectedMissed === obj.name\" class=\"mt-4\">\r\n <span *ngFor=\"let item of obj.issues\">\r\n \r\n <span\r\n (click)=\"selectSubissue(obj, item)\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': selectedIssues.includes(item),\r\n 'badge-light-default':!selectedIssues.includes(item)\r\n }\"\r\n class=\"badge mt-2 me-2 cursor-pointer\">\r\n <span class=\"me-2\" *ngIf=\"!selectedIssues.includes(item)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M6 2.5V9.5M2.5 6H9.5\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <span class=\"me-2\" *ngIf=\"selectedIssues.includes(item)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" rx=\"8\" fill=\"#DAF1FF\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.3977 4.92661L6.62434 9.53328L5.35767 8.17994C5.12434 7.95994 4.75767 7.94661 4.491 8.13328C4.231 8.32661 4.15767 8.66661 4.31767 8.93994L5.81767 11.3799C5.96434 11.6066 6.21767 11.7466 6.50434 11.7466C6.77767 11.7466 7.03767 11.6066 7.18434 11.3799C7.42434 11.0666 12.0043 5.60661 12.0043 5.60661C12.6043 4.99328 11.8777 4.45328 11.3977 4.91994V4.92661Z\" fill=\"#33B5FF\"/>\r\n </svg>\r\n </span>\r\n {{ item }}\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"mt-4\">\r\n <label class=\"form-label\">Description (Optional)</label>\r\n <textarea\r\n rows=\"3\"\r\n class=\"form-control\"\r\n placeholder=\"Enter comments\"\r\n [(ngModel)]=\"description\"\r\n ></textarea>\r\n </div>\r\n \r\n \r\n <div class=\"text-end mt-5\" (click)=\"submitMissedOpportunity()\">\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </div>\r\n </section>\r\n </section>\r\n <section *ngIf=\"selectedTab === 'customer'\">\r\n <div class=\"row mt-10\">\r\n <div class=\"col-md-6\">\r\n <span class=\"tag-class\">Tagged Summary <span *ngIf=\"tagggedData?.status==='submitted'\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M14.6668 7.38674V8.00007C14.666 9.43769 14.2005 10.8365 13.3397 11.988C12.4789 13.1394 11.269 13.9817 9.8904 14.3893C8.51178 14.797 7.03834 14.748 5.68981 14.2498C4.34128 13.7516 3.18993 12.8308 2.40747 11.6248C1.62501 10.4188 1.25336 8.99211 1.34795 7.55761C1.44254 6.12312 1.9983 4.75762 2.93235 3.66479C3.8664 2.57195 5.12869 1.81033 6.53096 1.4935C7.93323 1.17668 9.40034 1.32163 10.7135 1.90674M14.6668 2.66674L8.00017 9.34007L6.00017 7.34007\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> </span>\r\n </div>\r\n <div class=\"col-md-6 text-end\" *ngIf=\"tagggedData?.status!='submitted'\">\r\n <span class=\"badge badge-light-warning ms-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10901_7795)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.13152 0.00142049C5.25855 -0.0175778 4.39195 0.154192 3.59222 0.504738C2.7925 0.855283 2.07892 1.37616 1.50131 2.03099C0.923703 2.68583 0.495981 3.45885 0.248009 4.29608C3.70294e-05 5.1333 -0.0622095 6.01457 0.0656154 6.87834C0.19344 7.74212 0.508256 8.56758 0.988083 9.29711C1.46791 10.0266 2.10119 10.6426 2.8437 11.1021C3.58621 11.5616 4.42006 11.8535 5.28703 11.9574C6.15401 12.0613 7.03322 11.9747 7.86327 11.7037C8.0051 11.6573 8.1227 11.5565 8.19022 11.4235C8.25773 11.2904 8.26962 11.136 8.22327 10.9942C8.17693 10.8523 8.07614 10.7347 7.94308 10.6672C7.81002 10.5997 7.6556 10.5878 7.51377 10.6342C6.61175 10.9287 5.64338 10.9536 4.72742 10.7058C3.81146 10.458 2.98773 9.94825 2.35725 9.2391C1.72677 8.52995 1.31696 7.65221 1.17807 6.71354C1.03917 5.77487 1.17724 4.81607 1.57534 3.95473C1.97343 3.09338 2.61425 2.36694 3.4192 1.86449C4.22414 1.36204 5.15823 1.10543 6.10689 1.12613C7.05556 1.14683 7.97756 1.44393 8.75983 1.98101C9.5421 2.51809 10.1506 3.27178 10.5108 4.14967C10.5674 4.28772 10.6765 4.39763 10.8141 4.45522C10.8822 4.48374 10.9553 4.49856 11.0292 4.49883C11.1031 4.4991 11.1763 4.48482 11.2446 4.4568C11.313 4.42878 11.3752 4.38757 11.4276 4.33552C11.48 4.28347 11.5217 4.22161 11.5502 4.15347C11.5787 4.08532 11.5935 4.01222 11.5938 3.93835C11.5941 3.86448 11.5798 3.79127 11.5518 3.72292C11.1085 2.64239 10.3596 1.7147 9.39677 1.05365C8.43396 0.392587 7.29915 0.0268946 6.13152 0.00142049ZM6.56277 2.81242C6.56277 2.66324 6.50351 2.52016 6.39802 2.41467C6.29253 2.30918 6.14946 2.24992 6.00027 2.24992C5.85109 2.24992 5.70801 2.30918 5.60252 2.41467C5.49704 2.52016 5.43777 2.66324 5.43777 2.81242V5.76742L3.91227 7.29217C3.85701 7.34367 3.81268 7.40577 3.78194 7.47477C3.75119 7.54377 3.73466 7.61825 3.73333 7.69378C3.732 7.76931 3.74589 7.84433 3.77418 7.91437C3.80247 7.98441 3.84458 8.04804 3.89799 8.10145C3.95141 8.15486 4.01503 8.19697 4.08507 8.22526C4.15512 8.25355 4.23014 8.26745 4.30566 8.26612C4.38119 8.26478 4.45568 8.24825 4.52468 8.21751C4.59368 8.18676 4.65578 8.14244 4.70727 8.08717L6.39777 6.39742L6.56277 6.23242V2.81242ZM11.2503 11.2499C11.2503 11.4488 11.1713 11.6396 11.0306 11.7803C10.8899 11.9209 10.6992 11.9999 10.5003 11.9999C10.3014 11.9999 10.1106 11.9209 9.96994 11.7803C9.82929 11.6396 9.75027 11.4488 9.75027 11.2499C9.75027 11.051 9.82929 10.8602 9.96994 10.7196C10.1106 10.5789 10.3014 10.4999 10.5003 10.4999C10.6992 10.4999 10.8899 10.5789 11.0306 10.7196C11.1713 10.8602 11.2503 11.051 11.2503 11.2499ZM11.0628 6.56242C11.0628 6.41324 11.0035 6.27016 10.898 6.16467C10.7925 6.05919 10.6495 5.99992 10.5003 5.99992C10.3511 5.99992 10.208 6.05919 10.1025 6.16467C9.99704 6.27016 9.93777 6.41324 9.93777 6.56242V9.18742C9.93777 9.33661 9.99704 9.47968 10.1025 9.58517C10.208 9.69066 10.3511 9.74992 10.5003 9.74992C10.6495 9.74992 10.7925 9.69066 10.898 9.58517C11.0035 9.47968 11.0628 9.33661 11.0628 9.18742V6.56242Z\" fill=\"#B54708\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.2409 3.07775C11.1762 2.96171 11.1078 2.84799 11.0357 2.73674C10.7826 2.34623 10.4848 1.98631 10.1483 1.6644C9.91561 1.44184 9.66446 1.23744 9.39677 1.05365C9.39672 1.05361 9.39683 1.05368 9.39677 1.05365C9.23737 0.944207 9.07308 0.842748 8.90487 0.749705C8.7207 0.647828 8.53163 0.5559 8.3385 0.474192C7.64269 0.179813 6.8941 0.0180577 6.13152 0.00142049C6.13149 0.00141983 6.13155 0.00142115 6.13152 0.00142049C6.08778 0.00046929 6.04397 -5.01265e-06 6.00027 3.99426e-08C5.19726 9.28871e-05 4.40222 0.161386 3.66237 0.47452C3.63893 0.484441 3.61555 0.494513 3.59222 0.504738C3.42243 0.579166 3.25651 0.661273 3.09496 0.75071C3.00307 0.801577 2.9126 0.854814 2.82363 0.910359C2.33223 1.21713 1.88653 1.59427 1.50131 2.03099C1.11608 2.46773 0.797516 2.95704 0.554486 3.48291C0.433124 3.74551 0.330597 4.01723 0.248009 4.29608C5.51343e-05 5.13324 -0.0622004 6.01444 0.0655874 6.87815C0.065578 6.87809 0.0655967 6.87822 0.0655874 6.87815C0.193412 7.74193 0.508256 8.56758 0.988083 9.29711C1.14783 9.53998 1.32458 9.77027 1.51671 9.98639C1.90168 10.4194 2.34838 10.7956 2.8437 11.1021C3.33882 11.4085 3.87455 11.6404 4.43364 11.7917C4.71299 11.8673 4.99817 11.9228 5.28703 11.9574C5.31999 11.9613 5.35296 11.965 5.38594 11.9684C5.86275 12.0175 6.34254 12.0092 6.81514 11.9445C6.99265 11.9202 7.16915 11.8879 7.34409 11.8477C7.5188 11.8076 7.69196 11.7596 7.86302 11.7038C7.86294 11.7038 7.86311 11.7037 7.86302 11.7038C7.89127 11.6945 7.9188 11.6831 7.94492 11.6697C8.04995 11.6159 8.13615 11.53 8.19022 11.4235C8.21812 11.3685 8.23653 11.3098 8.24524 11.2499C8.25761 11.1649 8.25046 11.0774 8.22327 10.9942C8.17693 10.8523 8.07614 10.7347 7.94308 10.6672C7.81011 10.5998 7.65579 10.5878 7.51404 10.6341C7.51395 10.6341 7.51413 10.6341 7.51404 10.6341C7.43563 10.6597 7.35645 10.6833 7.27711 10.7049C7.16292 10.7359 7.04786 10.7626 6.93215 10.7851C6.88016 10.7953 6.82804 10.8045 6.77581 10.8129C6.49267 10.8585 6.20633 10.879 5.92014 10.8743C5.84832 10.8731 5.7765 10.8704 5.70476 10.866C5.60998 10.8602 5.51532 10.8517 5.4209 10.8404C5.37256 10.8346 5.32428 10.8281 5.27608 10.8208C5.09176 10.7931 4.90856 10.7548 4.72742 10.7058C4.59856 10.6709 4.47152 10.6309 4.34659 10.5858C4.02763 10.4708 3.7224 10.3231 3.43559 10.1456C3.40186 10.1248 3.36839 10.1035 3.33518 10.0818C3.05409 9.89826 2.79178 9.68556 2.55287 9.44658C2.48578 9.37947 2.42054 9.31029 2.35725 9.2391C2.20011 9.06234 2.05667 8.87512 1.92772 8.67908C1.92445 8.67411 1.92118 8.66913 1.91793 8.66414C1.7113 8.34749 1.54234 8.00807 1.41432 7.65286C1.30511 7.34986 1.2257 7.03536 1.17809 6.71371C1.17808 6.71366 1.1781 6.71377 1.17809 6.71371C1.1575 6.57457 1.14297 6.43481 1.1345 6.29516C1.1301 6.22253 1.12732 6.14989 1.12617 6.07729C1.11832 5.58257 1.18585 5.08961 1.3263 4.61545C1.39297 4.39036 1.47607 4.16951 1.57534 3.95473C1.7744 3.52403 2.03414 3.12706 2.34475 2.77496C2.3762 2.73932 2.40816 2.70413 2.44064 2.66942C2.72893 2.36127 3.05749 2.09027 3.4192 1.86449C3.61995 1.73918 3.82874 1.62916 4.04379 1.53492C4.2051 1.46422 4.36993 1.40241 4.53753 1.34968C5.00877 1.20143 5.50191 1.125 6.00027 1.12497C6.03579 1.12497 6.07133 1.12535 6.10689 1.12613C6.56965 1.13624 7.02621 1.21212 7.46315 1.34954C7.9219 1.49383 8.35919 1.70595 8.75983 1.98101C8.75978 1.98097 8.75988 1.98104 8.75983 1.98101C8.91447 2.08719 9.06247 2.20193 9.20295 2.32433C9.32789 2.43318 9.447 2.54816 9.55988 2.66877C9.67464 2.79139 9.78295 2.91982 9.8844 3.05355C10.0182 3.22986 10.14 3.41537 10.2489 3.60887C10.3086 3.71493 10.3644 3.82339 10.4162 3.93405C10.4455 3.99677 10.4736 4.06019 10.5003 4.12428C10.5038 4.13273 10.5073 4.1412 10.5108 4.14967C10.5107 4.14959 10.5108 4.14975 10.5108 4.14967C10.5674 4.28761 10.6765 4.39766 10.8141 4.45522C10.8822 4.48374 10.9553 4.49856 11.0292 4.49883C11.1031 4.4991 11.1763 4.48482 11.2446 4.4568C11.313 4.42878 11.3752 4.38757 11.4276 4.33552C11.48 4.28348 11.5217 4.22161 11.5502 4.15347C11.5787 4.08532 11.5935 4.01222 11.5938 3.93835C11.5941 3.86448 11.5798 3.79127 11.5518 3.72292C11.5517 3.72283 11.5518 3.72301 11.5518 3.72292C11.4834 3.55631 11.4077 3.39306 11.3251 3.23413C11.2978 3.18156 11.2697 3.12942 11.2409 3.07775ZM6.56277 2.81242C6.56277 2.66324 6.50351 2.52016 6.39802 2.41467C6.3121 2.32875 6.20124 2.2735 6.08246 2.25595C6.05548 2.25198 6.02787 2.24992 6.00027 2.24992C5.85109 2.24992 5.70801 2.30918 5.60252 2.41467C5.49704 2.52016 5.43777 2.66324 5.43777 2.81242V5.76742L3.91245 7.292C3.90275 7.30103 3.89322 7.31057 3.88421 7.32023C3.84187 7.36567 3.80729 7.41787 3.78194 7.47477C3.75119 7.54377 3.73466 7.61825 3.73333 7.69378C3.732 7.76931 3.74589 7.84433 3.77418 7.91437C3.78054 7.93011 3.78759 7.94552 3.79532 7.96057C3.82196 8.01249 3.85658 8.06004 3.89799 8.10145C3.95141 8.15487 4.01503 8.19697 4.08507 8.22526C4.15512 8.25356 4.23014 8.26745 4.30566 8.26612C4.38119 8.26478 4.45568 8.24825 4.52468 8.21751C4.58157 8.19216 4.63377 8.15757 4.67921 8.11524C4.68881 8.10629 4.69811 8.097 4.70708 8.08737C4.70702 8.08744 4.70715 8.08731 4.70708 8.08737L6.56277 6.23242V2.81242ZM9.93777 9.18742C9.93777 9.33661 9.99704 9.47968 10.1025 9.58517C10.208 9.69066 10.3511 9.74992 10.5003 9.74992C10.6437 9.74992 10.7815 9.69514 10.8857 9.59716C10.8898 9.59323 10.894 9.58924 10.898 9.58517C11.0035 9.47968 11.0628 9.33661 11.0628 9.18742V7.54234C10.8777 7.51426 10.6897 7.49992 10.5003 7.49992C10.3108 7.49992 10.1228 7.51426 9.93777 7.54234V9.18742ZM9.93777 7.32686C10.1215 7.38612 10.3096 7.4303 10.5003 7.45904C10.6714 7.48483 10.8445 7.49818 11.0183 7.49881C11.0331 7.49887 11.0479 7.49883 11.0628 7.4987V6.56242C11.0628 6.49008 11.0488 6.41917 11.0224 6.35328C10.9944 6.28331 10.9524 6.21901 10.898 6.16468C10.7925 6.05919 10.6495 5.99992 10.5003 5.99992C10.3511 5.99992 10.208 6.05919 10.1025 6.16468C10.1003 6.16692 10.0981 6.16917 10.0959 6.17145C9.9977 6.27299 9.94135 6.40773 9.93794 6.54882C9.93783 6.55335 9.93777 6.55788 9.93777 6.56242V7.32686ZM11.2488 11.2968C11.2498 11.2813 11.2503 11.2656 11.2503 11.2499C11.2503 11.2487 11.2503 11.2475 11.2503 11.2463C11.2493 11.0487 11.1704 10.8594 11.0306 10.7196C10.8899 10.5789 10.6992 10.4999 10.5003 10.4999C10.3014 10.4999 10.1106 10.5789 9.96994 10.7196C9.82929 10.8602 9.75027 11.051 9.75027 11.2499C9.75027 11.4488 9.82929 11.6396 9.96994 11.7803C10.1106 11.9209 10.3014 11.9999 10.5003 11.9999C10.6992 11.9999 10.8899 11.9209 11.0306 11.7803C11.1602 11.6507 11.2374 11.4786 11.2488 11.2968Z\" fill=\"#B54708\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10901_7795\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"ms-2\">Pending Tagged Info</span></span> \r\n </div>\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngIf=\"tagggedData?.revopsType==='purchaser'\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Name</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.name}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Location</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.location}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Mobile</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.mobile}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Age</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.age}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Email</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.email}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Gender</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.gender}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"tagggedData?.revopsType==='missedOpportunity'\">\r\n\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngFor=\"let item of tagggedData.issueList\" >\r\n <div class=\"ms-2 mb-2 spent-value\">{{item.name}}</div>\r\n <span class=\"badge badge-light-default ms-2\" *ngFor=\"let data of item.issue\">{{data}}</span>\r\n </div>\r\n \r\n </div>\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngIf=\"tagggedData?.revopsType==='nonShopper'\">\r\n <span class=\"badge badge-light-default ms-2\">{{nonShoperType}}</span>\r\n </div>\r\n <div class=\"my-2\"><span class=\"desc-id\">Original ID</span> : <span class=\"spent-value1\"\r\n style=\"font-size: 12px !important;\">{{Imagedata?.tempId}}</span></div>\r\n \r\n <div *ngIf=\"tagggedData?.description&&tagggedData?.description!=''\" class=\"my-3 desc-id\">{{tagggedData.description}}\r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n <div class=\"my-3\">\r\n <span class=\"tag-class\">Time Spent</span>\r\n </div>\r\n\r\n <div class=\"d-flex flex-wrap\">\r\n <div class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.totalTimeSpent}} </div>\r\n </div>\r\n <div class=\"spent-value my-1\">Total Time Spent</div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.entryTime}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1 cursor-pointer\" (click)=\"imageData('entry')\">Entry Time <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.exitTime}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1 cursor-pointer\" (click)=\"imageData('exit')\">Exit Time <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!Imagedata?.zoneVisited\" class=\"separator separator-double m-3\"></div>\r\n\r\n <div *ngIf=\"!Imagedata?.zoneVisited\" class=\"row\">\r\n <div class=\"col-md-6\">\r\n <span class=\"tag-class\">Zones Visited</span>\r\n\r\n </div>\r\n <!-- <div class=\"col-md-6 text-end\">\r\n <span class=\"ms-2 mt-2 view-tetory cursor-pointer\">View Trajectory <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M15 10.8333V15.8333C15 16.2754 14.8244 16.6993 14.5118 17.0118C14.1993 17.3244 13.7754 17.5 13.3333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V6.66667C2.5 6.22464 2.67559 5.80072 2.98816 5.48816C3.30072 5.17559 3.72464 5 4.16667 5H9.16667M12.5 2.5H17.5M17.5 2.5V7.5M17.5 2.5L8.33333 11.6667\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></span>\r\n </div> -->\r\n <ng-container class=\"h-200px scroll\">\r\n <div class=\"col mt-2\" *ngFor=\"let obj of Imagedata?.zoneVisited\">\r\n <span class=\"badge badge-light-primary \">{{obj}}</span>\r\n </div>\r\n <!-- <div *ngIf=\"Imagedata?.zoneVisited.length ===0\" class=\"col-md-12 mt-2 text-center\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No Zones Visited</div>\r\n <div class=\"nodata-sub\">There is no result for this Zones</div>\r\n </div> -->\r\n \r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n\r\n <div class=\"my-3\">\r\n <span class=\"tag-class\">Staff Engagement</span>\r\n </div>\r\n\r\n <div class=\"d-flex flex-wrap\">\r\n <div class=\"border border-gray-300 border-dobule rounded w-45 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.staffEngagement.timeTakenToAssist}} </div>\r\n </div>\r\n <div class=\"spent-value my-1\">Time taken to assist \r\n <!-- <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> -->\r\n </div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-45 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.staffEngagement.timeSpentWithStaff}}</div>\r\n </div>\r\n <div class=\"spent-value my-1\">Time spent with staff</div>\r\n </div>\r\n \r\n \r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n \r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n \r\n</section>\r\n</div>", styles: [".switch-form-card{padding:8px 16px;border-radius:4px;border-left:2px solid var(--Primary-600, #00A3FF);background:var(--Primary-25, #F6FCFF);display:flex;align-items:center;justify-content:space-between}.switch-form-card .txt-one{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:140%}.nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.badge-num-primary{border-radius:16px!important;background:var(--Primary-50, #EAF8FF)!important;color:var(--Primary-700, #009BF3)!important;text-align:center;font-size:14px!important;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.badge-num-muted{border-radius:16px!important;background:var(--Primary-50, #F2F4F7)!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.img-src{width:100%;height:210px;border-radius:.625rem}.img-traffic .col-md-3{width:24%!important}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.img-doc-directory{color:var(--Gray-900, #101828)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline}.img-doc-time{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}.img-doc-value{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.overflow-x{overflow-x:auto}.no-preview{border:1px solid #F04438;background:#fee4e2;border-radius:8px;stroke-width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:41px 16px}.no-preview .header{color:#f04438;font-size:20px;font-weight:700;line-height:20px}.no-preview .description{color:#f04438;font-size:12px;font-weight:500;line-height:18px}.img-nodata{width:25%;height:15%}.img-nodata1{width:15%;height:15%}.nodata-title{font-size:14px!important;font-weight:600}.img-direc{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:500;line-height:28px}.custom-accordion{border-radius:5px}.custom-accordion-item{margin-bottom:10px}.custom-accordion-header{background-color:#fff;border:none;cursor:pointer;padding:10px;text-align:left;width:100%;display:flex;justify-content:space-between;align-items:center}.custom-accordion{width:100%}.mainheading{width:100%;display:flex;justify-content:space-between;align-items:center;padding:19px;border:none;background:none;cursor:pointer}.header-row{display:flex;align-items:center;width:100%;justify-content:space-between}.img-dire{font-size:16px;font-weight:700}.divider{flex-grow:1;height:1px;background-color:#ddd;margin:0 10px}.accordion-arrow{display:flex;align-items:center}.scroll-container{max-height:400px;overflow-y:auto;overflow-x:hidden}.high-400px{min-height:auto!important;max-height:800px!important}.slider{position:relative}.slider .previous{position:absolute;top:30%;left:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.slider .next{position:absolute;top:30%;right:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.img-src1{border-radius:12px;border:1px solid var(--Gray-400, #98A2B3);background:var(--Gray-50, #F9FAFB);width:100%;height:375px}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);padding:0 4px}.border-gray-active{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #EAF8FF);padding:0 4px}.zone-header{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.last-visit{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.toggle-label{color:var(--Gray-900, #101828);font-size:16px;font-weight:600;line-height:24px}.nav-dev{border-radius:8px!important;border:1px solid var(--Primary-200, #99DAFF)!important;background:var(--Primary-25, #F6FCFF)!important}.tab-active{border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:500;line-height:20px}.tab-text-default{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px}.border-gray-active1{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:12px!important}.nav-item1 .nav-link1.active{border:none;border-radius:0;background:var(--Primary-50, #EAF8FF);border-bottom:2px solid #009BF3!important;padding:12px;color:var(--Primary-700, #009BF3);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.active-normal{padding:12px;color:var(--Gray-500, #667085);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.nav-item1 .nav-link1:hover{border:none}.tag-class{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.spent-title{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.spent-value{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.spent-value1{color:var(--Primary-500, #33B5FF);font-size:14px;font-weight:500;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font}.w-33{width:30%}.w-45{width:45%}.view-tetory{color:var(--Primary-700, #009BF3);font-size:14px;font-weight:600;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font;text-transform:capitalize}.border-gray-tagged{border-radius:4px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:8px!important}.desc-id{color:var(--Gray-900, #101828);font-size:12px;font-style:normal;font-weight:400;line-height:20px}.active-tab{border-bottom:2px solid #0d6efd;font-weight:600;color:#0d6efd}.badge-selected{background-color:#e0f3ff;color:#0d6efd;border:1px solid #0d6efd;border-radius:20px;padding:6px 12px}.badge-unselected{background-color:#f0f0f0;color:#333;border-radius:20px;padding:6px 12px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.cursor-not-allowed{cursor:not-allowed!important}\n"] }]
|
|
713
721
|
}], ctorParameters: () => [{ type: i1.TrafficService }, { type: i2.GlobalStateService }, { type: i0.ChangeDetectorRef }, { type: i3.NgbModal }, { type: i4.FormBuilder }, { type: i5.ToastService }], propDecorators: { placesRef: [{
|
|
714
722
|
type: ViewChild,
|
|
715
723
|
args: ["ngxPlaces"]
|
|
716
724
|
}] } });
|
|
717
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZG9jLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJhZmZpYy9zcmMvbGliL2NvbXBvbmVudHMvaW1hZ2UtZG9jL2ltYWdlLWRvYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYWZmaWMvc3JjL2xpYi9jb21wb25lbnRzL2ltYWdlLWRvYy9pbWFnZS1kb2MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFbkYsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBZSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7QUFRdEUsTUFBTSxPQUFPLGlCQUFpQjtJQXlDbEI7SUFDRDtJQUNDO0lBQ0E7SUFDQTtJQUNBO0lBN0NjLFNBQVMsQ0FBNkI7SUFDOUQsV0FBVyxHQUFRLENBQUMsQ0FBQztJQUNyQixZQUFZLENBQU07SUFDbEIsT0FBTyxDQUFNO0lBQ2IsWUFBWSxHQUFRLEVBQUUsQ0FBQztJQUN2QixlQUFlLENBQU07SUFDckIsV0FBVyxHQUFHLFVBQVUsQ0FBQztJQUN6QixVQUFVLENBQU07SUFDaEIsVUFBVSxDQUFVO0lBQ3BCLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDZCxTQUFTLENB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LENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvQixFQUFFLFNBQVMsQ0FBQztZQUNWLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsRUFBRTtvQkFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsd0NBQXdDLENBQUMsQ0FBQTtvQkFDdEUsVUFBVSxDQUFDLEdBQUcsRUFBRTt3QkFDaEIsSUFBSSxDQUFDLFdBQVcsR0FBSSxVQUFVLENBQUE7d0JBQzlCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtvQkFFbkIsQ0FBQyxFQUFDLEdBQUcsQ0FBQyxDQUFBO2lCQUNQO1lBQ0gsQ0FBQztTQUNGLENBQUMsQ0FBQTtJQUlOLENBQUM7SUFFRCxTQUFTLENBQUMsU0FBaUI7UUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0MsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDL0UsQ0FBQzt3R0FsdEJVLGlCQUFpQjs0RkFBakIsaUJBQWlCLDZKQ2pCOUIsbzczRkE0NEJNOzs0RkQzM0JPLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxlQUFlO2dPQUtELFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhZmZpY1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFmZmljLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBJbWFnZURvY1ZpZXdDb21wb25lbnQgfSBmcm9tICcuLi9pbWFnZS1kb2Mtdmlldy9pbWFnZS1kb2Mtdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IER1cGxpY2F0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2R1cGxpY2F0ZS9kdXBsaWNhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcbmltcG9ydCB7IE5neEdwQXV0b2NvbXBsZXRlRGlyZWN0aXZlIH0gZnJvbSBcIkBhbmd1bGFyLW1hZ2ljL25neC1ncC1hdXRvY29tcGxldGUvbGliL25neC1ncC1hdXRvY29tcGxldGUuZGlyZWN0aXZlXCI7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi1pbWFnZS1kb2NcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2ltYWdlLWRvYy5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsOiBcIi4vaW1hZ2UtZG9jLmNvbXBvbmVudC5zY3NzXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbWFnZURvY0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKFwibmd4UGxhY2VzXCIpIHBsYWNlc1JlZjogTmd4R3BBdXRvY29tcGxldGVEaXJlY3RpdmU7XHJcbiAgc2VsZWN0SW5kZXg6IGFueSA9IDA7XHJcbiAgc2VsZWN0ZWRUaW1lOiBhbnk7XHJcbiAgb2JqRGF0YTogYW55O1xyXG4gIG9iamVjdHNBcnJheTogYW55ID0gW107XHJcbiAgaW1hZ2VzQXJyYXlEYXRhOiBhbnk7XHJcbiAgcHJvY2Vzc1R5cGUgPSBcImZvb3RmYWxsXCI7XHJcbiAgaGVhZGVyRGF0YTogYW55O1xyXG4gIGZvbGRlclZpZXc6IGJvb2xlYW47XHJcbiAgZGF5anMgPSBkYXlqcztcclxuICBkYXRlQXJyYXk6IGFueTtcclxuICBmb3JtOiBhbnk7XHJcbiAgbm9EYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgc3RvcmVBcnJheVZhbHVlOiBhbnk7XHJcbiAgc3RvcmVJZGFycmF5OiBhbnk7XHJcbiAgdmFsdWVUeXBlOiBhbnkgPSAnYWN0dWFsJztcclxuICBpc0F2ZXJhZ2U6IGFueSA9IGZhbHNlO1xyXG4gIGxlbmd0aFZhbHVlOiBib29sZWFuO1xyXG4gIGhpZGVEb2M6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0FjY29yZGlvbkV4cGFuZGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICBmb2xkZXJEYXRlOiBhbnk7XHJcbiAgYmFja25hdjogYm9vbGVhbjtcclxuICB1c2VyRm9ybTogRm9ybUdyb3VwO1xyXG4gIHN1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gIG1pc3NlZE9wcG9ydHVuaXR5TGlzdDogYW55ID0gW10gIFxyXG4gIHBob25lUmVnZXg6IFJlZ0V4cCA9IC9eKFxcZHszfSk/XFxkezE1fSQvO1xyXG4gIGVtYWlsUmVnZXg6IFJlZ0V4cCA9IC9eW15cXHNAXStAW15cXHNAXStcXC5bXlxcc0BdKyQvO1xyXG4gIG5vblNob3BwZXJMaXN0ID0gWydFbXBsb3llZS9TdGFmZicsICdEZWxpdmVyeSBQZXJzb24nLCAnRHVwbGljYXRlJywgJ0FnZW50cycsICdPdGhlcnMnXTtcclxuICAvLyBtaXNzZWRPcHBvcnR1bml0eUxpc3QgPVsnUHJvZHVjdCBOZWVkIE1pc21hdGNoJywnUHJvZHVjdCBVbmF2YWlsYWJpbGl0eScsJ1Byb2R1Y3QgRGFtYWdlZCcsJ1Byb2R1Y3QgRW5xdWlyeScsJ1F1YWxpdHknXTtcclxuICBzZWxlY3RlZE1pc3NlZDogYW55ID0gJ1Byb2R1Y3QgSXNzdWUnO1xyXG4gIGlzc3VlczogYW55ID0gW11cclxuICBub25TaG9wZXJUeXBlOiBhbnkgPSAnJ1xyXG4gIGRlc2NyaXB0aW9uOiBhbnkgPSAnJ1xyXG4gIHNlbGVjdGVkSXNzdWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHNlbGVjdGVkTWFpbklzc3Vlczogc3RyaW5nW10gPSBbXTtcclxuICB0YWdnZ2VkRGF0YTogYW55ID0ge31cclxuICBtaXNzZWRvcHR1bml0eVJlYXNvbjogYW55ID0gW11cclxuICBjb3VudHJ5TGlzdDphbnk9W11cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc2VydmljZTogVHJhZmZpY1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIHRvYXN0ZXI6IFRvYXN0U2VydmljZSxcclxuICApIHtcclxuXHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgc2VsZWN0VmFsdWU6IG5ldyBGb3JtQ29udHJvbCgnJykgLy8gSW5pdGlhbGl6ZSBhcyBGb3JtQ29udHJvbFxyXG4gICAgfSk7XHJcblxyXG4gICAgXHJcbiAgfVxyXG4gIGluaXR1c2VyRm9ybSgpIHtcclxuICAgIHRoaXMudXNlckZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgbmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgbW9iaWxlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxMyksVmFsaWRhdG9ycy5taW5MZW5ndGgoOCksXV0sXHJcbiAgICAgIGVtYWlsOiBbJycsIFsgVmFsaWRhdG9ycy5yZXF1aXJlZCxcclxuICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oXCJeW2EtekEtWjAtOV0rKFsuLV9dP1thLXpBLVowLTldKykqQFthLXpBLVowLTldKyhbLi1fXT9bYS16QS1aXSspKlsuXXsxfVthLXpBLVpdezIsfSRcIiksXHJcbiAgICAgIF0sXSxcclxuICAgICAgbG9jYXRpb246IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgIGFnZTogWzEsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbigxKSxWYWxpZGF0b3JzLm1heCg5OSldXSxcclxuICAgICAgZ2VuZGVyOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICBjb3VudHJ5Q29kZTogW1wiOTFcIiwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldENvdW50cnlDb2RlcygpXHJcbiAgICB0aGlzLmluaXR1c2VyRm9ybSgpXHJcbiAgICB0aGlzLmdldEluaXRhbCgpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaGlkZURvYyA9IGZhbHNlO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmhpZGVEb2MgPSB0cnVlO1xyXG4gICAgICB9LCA1MDAwKTtcclxuXHJcbiAgICB9LCAxMDAwKTtcclxuICB9XHJcbiAgZ2V0Q291bnRyeUNvZGVzKCkge1xyXG4gICAgdGhpcy5zZXJ2aWNlLmdldEFsbENvdW50cmllcygpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6YW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb3VudHJ5TGlzdCA9IHJlcy5kYXRhXHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnI6YW55KSA9PiB7XHJcblxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBvbWl0X3NwZWNpYWxfY2hhcihldmVudDogYW55KSB7XHJcbiAgICB2YXIgaztcclxuICAgIGsgPSBldmVudC5jaGFyQ29kZTtcclxuICAgIHJldHVybiBrID09IDggfHwgayA9PSAzMiB8fCAoayA+PSA0OCAmJiBrIDw9IDU3KTtcclxuICB9XHJcblxyXG4gIGNsaWVudERhdGE6IGFueTtcclxuICBnZXQgZigpIHtcclxuICAgIHJldHVybiB0aGlzLnVzZXJGb3JtLmNvbnRyb2xzO1xyXG4gIH1cclxuICBnZXRJbml0YWwoKSB7XHJcbiAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGVib3VuY2VUaW1lKDEwMCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmKGRhdGEgIT09bnVsbCB8fCBkYXRhPy5jbGllbnQgIT09IG51bGwpe1xyXG4gICAgICAgIHRoaXMuaGVhZGVyRGF0YSA9IGRhdGE7XHJcbiAgICAgICAgdGhpcy5zdG9yZUlkYXJyYXkgPSB0aGlzLmhlYWRlckRhdGE/LnN0b3Jlcy5maWx0ZXIoKHN0b3JlOmFueSkgPT4gc3RvcmUuY2hlY2tlZCkubWFwKChzdG9yZTphbnkpID0+IHN0b3JlLnN0b3JlSWQpXHJcbiAgICAgICAgdGhpcy5vYmpEYXRhID0ge1xyXG4gICAgICAgICAgc3RvcmVJZDogdGhpcy5oZWFkZXJEYXRhPy5zdG9yZXNcclxuICAgICAgICAgICAgLmZpbHRlcigoc3RvcmU6IGFueSkgPT4gc3RvcmUuY2hlY2tlZClcclxuICAgICAgICAgICAgLm1hcCgoc3RvcmU6IGFueSkgPT4gc3RvcmUuc3RvcmVJZCksXHJcbiAgICAgICAgICBjbGllbnRJZDogdGhpcy5oZWFkZXJEYXRhPy5jbGllbnQsXHJcbiAgICAgICAgICBwcm9jZXNzVHlwZTogdGhpcy5wcm9jZXNzVHlwZSxcclxuICAgICAgICAgIGZvb3RmYWxsRGF0ZTogdGhpcy5oZWFkZXJEYXRhLmRhdGUuZW5kRGF0ZSxcclxuICAgICAgICAgIC8vIHZhbHVlVHlwZSA6dGhpcy52YWx1ZVR5cGVcclxuICAgICAgICB9O1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgICAgIGNvbnN0IGNsaWVudERhdGE6YW55ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNsaWVudC1kZXRhaWxzXCIpIHx8IFwie31cIik7XHJcbiAgICAgICAgICB0aGlzLmNsaWVudERhdGEgPSBjbGllbnREYXRhXHJcbiAgICAgICAgICBjb25zdCBsaW1pdCA9IGNsaWVudERhdGE/LmJvdW5jZWRMaW1pdD8udmFsdWUgPz8gY2xpZW50RGF0YT8uYm91bmNlZExpbWl0VmFsdWUgPz8gJyc7XHJcbiAgICAgICAgICBjb25zdCBjb252ID0gY2xpZW50RGF0YT8uY29udmVyc2lvbj8udmFsdWUgPz8gY2xpZW50RGF0YT8uY29udmVyc2lvblZhbHVlID8/ICcnOyBcclxuICAgICAgICAgIGlmICh0aGlzLmhlYWRlckRhdGEuY2xpZW50ID09PSAnNDUyJykge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFzZXRzID0gW1xyXG4gICAgICAgICAgICAgIHsgdmFsdWU6ICdmb290ZmFsbCcsIGxhYmVsOiAnRm9vdGZhbGwnIH0sXHJcbiAgICAgICAgICAgICAgeyB2YWx1ZTogJ2JvdW5jZWQnLCBsYWJlbDogYExlc3MgdGhhbiAke2xpbWl0fSBtaW5zYCB9LFxyXG4gICAgICAgICAgICAgIHsgdmFsdWU6ICdlbmdhZ2VyJywgbGFiZWw6IGBNb3JlIHRoYW4gJHtsaW1pdH0gbWluc2AgfSxcclxuICAgICAgICAgICAgICB7IHZhbHVlOiAnbWlzc2VkT3Bwb3J0dW5pdHknLCBsYWJlbDogYCR7bGltaXR9IC0gJHtjb252fSBtaW5zYCB9LFxyXG4gICAgICAgICAgICAgIHsgdmFsdWU6ICdjb252ZXJzaW9uJywgbGFiZWw6IGBNb3JlIHRoYW4gJHtjb252fSBtaW5zYCB9XHJcbiAgICAgICAgICAgIF07XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFzZXRzID0gW1xyXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogJ2Zvb3RmYWxsJywgbGFiZWw6ICdGb290ZmFsbCcgfSxcclxuICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdib3VuY2VkJywgbGFiZWw6ICdCb3VuY2VkIEZvb3RmYWxsJyB9LFxyXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogJ2VuZ2FnZXInLCBsYWJlbDogJ0VuZ2FnZXJzJyB9LFxyXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogJ21pc3NlZE9wcG9ydHVuaXR5JywgbGFiZWw6ICdNaXNzZWQgT3Bwb3J0dW5pdHknIH0sXHJcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiAnY29udmVyc2lvbicsIGxhYmVsOiAnQ29udmVyc2lvbicgfVxyXG4gICAgICAgICAgICBdO1xyXG4gICAgICAgICAgfSAgICAgXHJcbiAgICAgICAgICBjb25zdCBpbml0aWFsVmFsdWUgPSB0aGlzLmdldEluaXRpYWxWYWx1ZSgpO1xyXG4gICAgICAgICAgY29uc3Qgc2VsZWN0Q29udHJvbCA9IHRoaXMuZm9ybS5nZXQoJ3NlbGVjdFZhbHVlJykgYXMgRm9ybUNvbnRyb2w7XHJcbiAgICAgICAgICBpZiAoc2VsZWN0Q29udHJvbCkge1xyXG4gICAgICAgICAgICBzZWxlY3RDb250cm9sLnNldFZhbHVlKGluaXRpYWxWYWx1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwxMDApXHJcbiAgICAgICAgdGhpcy5iYWNrVG9Gb290ZmFsbCgpO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheURhdGVSYW5nZSgpO1xyXG4gICAgICBpZih0aGlzLmhlYWRlckRhdGE/LmRhdGU/LnN0YXJ0RGF0ZSA9PT0gdGhpcy5oZWFkZXJEYXRhPy5kYXRlPy5lbmREYXRlKXtcclxuICAgICAgdGhpcy5iYWNrbmF2ID1mYWxzZTtcclxuICAgICAgICB0aGlzLmRpc3BsYXlEYXRlUmFuZ2UoKTtcclxuICAgICAgICB0aGlzLmdldGltYWdlcygwLHRoaXMuaGVhZGVyRGF0YS5kYXRlLmVuZERhdGUpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5mb2xkZXJWaWV3ID10cnVlO1xyXG4gICAgICAgIHRoaXMuYmFja25hdiA9dHJ1ZVxyXG4gICAgICB9IFxyXG4gICAgICB0aGlzLmluaXRpYWxEYXRhKClcclxuICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gICAgIFxyXG4gIGluaXRpYWxEYXRhKCkge1xyXG4gICAgdGhpcy5zZXJ2aWNlLmdldHJldm9wY29uZmlnKHRoaXMuaGVhZGVyRGF0YS5jbGllbnQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWlzc2VkT3Bwb3J0dW5pdHlMaXN0ID0gcmVzLmRhdGEuaXNzdWVMaXN0XHJcbiAgICAgICAgICAgIHRoaXMuaXNzdWVzID0gdGhpcy5taXNzZWRPcHBvcnR1bml0eUxpc3QuZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGEubmFtZSA9PT0gdGhpcy5zZWxlY3RlZE1pc3NlZClcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG5cclxuICB9XHJcbiAgdG9nZ2xlQWNjb3JkaW9uKCkge1xyXG4gICAgdGhpcy5pc0FjY29yZGlvbkV4cGFuZGVkID0gIXRoaXMuaXNBY2NvcmRpb25FeHBhbmRlZDtcclxuXHJcbiAgfVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuICBnZXRJbWFnZUZvbGRlcigpIHtcclxuXHJcbiAgICBkZWxldGUgdGhpcy5vYmpEYXRhLmZvbGRlck5hbWU7XHJcbiAgICB0aGlzLnNlcnZpY2VcclxuICAgICAgLmdldEZvb3RmYWxsRGlyZWN0b3J5Rm9sZGVycyh0aGlzLm9iakRhdGEpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMub2JqZWN0c0FycmF5ID0gcmVzPy5kYXRhLmZvb3RmYWxsRGF0YTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRpbWUgPSB0aGlzLm9iamVjdHNBcnJheVswXS5mb2xkZXJOYW1lO1xyXG4gICAgICAgICAgICB0aGlzLm9iakRhdGEuZm9sZGVyTmFtZSA9IHRoaXMuc2VsZWN0ZWRUaW1lO1xyXG4gICAgICAgICAgICB0aGlzLmxlbmd0aFZhbHVlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5nZXRJbWFnZVZpZXcoKTtcclxuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmxlbmd0aFZhbHVlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMub2JqZWN0c0FycmF5ID0gW11cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHsgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIGdldEltYWdlVmlldygpIHtcclxuXHJcblxyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlcnZpY2VcclxuICAgICAgLmdldEZvb3RmYWxsRGlyZWN0b3J5KHRoaXMub2JqRGF0YSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICA/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgaWYgKCFyZXM/LmRhdGEuZm9vdGZhbGxEYXRhLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmltYWdlc0FycmF5RGF0YSA9IHJlcz8uZGF0YS5mb290ZmFsbERhdGE7XHJcbiAgICAgICAgICAgICAgdGhpcy5zdG9yZUFycmF5VmFsdWUgPSByZXM/LmRhdGEuc3RvcmVOYW1lXHJcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuXHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb21wbGV0ZTogKCkgPT4geyB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgbm9ybWFsaXplOiBhbnlcclxuICBzZWxlY3RlZFRhYnMobmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTWlzc2VkID0gbmFtZTtcclxuICAgIC8vIHRoaXMuc2VsZWN0ZWRJc3N1ZXMgPSBbXTsgLy8gcmVzZXQgd2hlbiBzd2l0Y2hpbmcgdGFic1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0U3ViaXNzdWUob2JqOiBhbnksIGlzc3VlOiBzdHJpbmcpIHtcclxuXHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJc3N1ZXMuaW5kZXhPZihpc3N1ZSk7XHJcbiAgICBjb25zdCBtYWluaW5kZXggPSB0aGlzLnNlbGVjdGVkTWFpbklzc3Vlcy5pbmRleE9mKG9iai5uYW1lKTtcclxuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcclxuICAgICAgbGV0IGV4aXRzQ291bnQgPSB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uLmZpbHRlcigoZGF0YTogYW55KSA9PiBkYXRhLm5hbWUgPT09IG9iai5uYW1lKS5sZW5ndGhcclxuICAgICAgaWYgKGV4aXRzQ291bnQgPiAwKSB7XHJcbiAgICAgICAgdGhpcy5taXNzZWRvcHR1bml0eVJlYXNvbi5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGRhdGEubmFtZSA9PT0gb2JqLm5hbWUpIHtcclxuICAgICAgICAgICAgZGF0YS5pc3N1ZS5wdXNoKGlzc3VlKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5taXNzZWRvcHR1bml0eVJlYXNvbi5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IG9iai5uYW1lLFxyXG4gICAgICAgICAgaXNzdWU6IFtpc3N1ZV1cclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRNYWluSXNzdWVzLnB1c2gob2JqLm5hbWUpXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJc3N1ZXMucHVzaChpc3N1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXNzdWVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRNYWluSXNzdWVzLnNwbGljZShtYWluaW5kZXgsIDEpO1xyXG4gICAgICB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uLm1hcCgoZGF0YTogYW55LCBpOiBudW1iZXIpID0+IHtcclxuICAgICAgICBpZiAoZGF0YS5uYW1lID09PSBvYmoubmFtZSkge1xyXG4gICAgICAgICAgY29uc3Qgc3ViSW5kZXggPSBkYXRhLmlzc3VlLmluZGV4T2YoaXNzdWUpO1xyXG4gICAgICAgICAgaWYgKHN1YkluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgICBkYXRhLmlzc3VlLnNwbGljZShzdWJJbmRleCwgMSk7XHJcbiAgICAgICAgICAgIGlmIChkYXRhLmlzc3VlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMubWlzc2Vkb3B0dW5pdHlSZWFzb24uc3BsaWNlKGksIDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIGdldGltYWdlcyhpbmRleDogYW55LCBvYmo6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RJbmRleCA9IGluZGV4O1xyXG4gICAgdGhpcy5mb2xkZXJEYXRlID0gb2JqO1xyXG4gICAgKHRoaXMub2JqRGF0YS5mb290ZmFsbERhdGUgPSBvYmopLCAodGhpcy5mb2xkZXJWaWV3ID0gZmFsc2UpO1xyXG4gICAgdGhpcy5zZXJ2aWNlPy5pc25vcm1hbGl6ZVNvdXJjZVxyXG4gICAgICA/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLCBkZWJvdW5jZVRpbWUoMzAwKSlcclxuICAgICAgPy5zdWJzY3JpYmUoKG5vcm1hbGl6ZTogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5ub3JtYWxpemUgPSBub3JtYWxpemU7XHJcbiAgICAgICAgaWYgKCFub3JtYWxpemUpIHtcclxuICAgICAgICAgIHRoaXMuZ2V0SW1hZ2VGb2xkZXIoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5sZW5ndGhWYWx1ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLm9iamVjdHNBcnJheSA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIGJhY2tUb0Zvb3RmYWxsKCkge1xyXG4gICAgdGhpcy5zZWxlY3RJbmRleCA9IDA7XHJcbiAgICB0aGlzLmZvbGRlclZpZXcgPSB0cnVlO1xyXG5cclxuICB9XHJcbiAgc2VsZWN0ZWRUaW1lcyh2YWw6IGFueSkge1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRUaW1lID0gdmFsO1xyXG4gICAgdGhpcy5vYmpEYXRhLmZvbGRlck5hbWUgPSB2YWw7XHJcbiAgICB0aGlzLmZvbGRlclZpZXcgPSBmYWxzZTtcclxuICAgIHRoaXMuc2VsZWN0ZWRUaW1lID0gdmFsO1xyXG4gICAgdGhpcy5nZXRJbWFnZVZpZXcoKTtcclxuICB9XHJcbiAgSW1hZ2VkYXRhOiBhbnk7XHJcbiAgaW1hZ2VGbG93ID0gZmFsc2U7XHJcbiAgSW1hZ2VzOiBhbnk7XHJcblxyXG4gIHJldm9wVGFnZ2luZyhvYmo6IGFueSkge1xyXG4gICAgdGhpcy5pbWFnZUZsb3cgPSB0cnVlO1xyXG4gICAgdGhpcy5JbWFnZWRhdGEgPSBvYmo7XHJcbiAgICAvLyB0aGlzLnNlbGVjdGVkVGFiID0ndGFnZ2VkJztcclxuICAgIHRoaXMuc2VsZWN0ZWRDdXN0b21lclR5cGUgPSB0aGlzLkltYWdlZGF0YT8ucmV2b3BzVHlwZSA/IHRoaXMuSW1hZ2VkYXRhPy5yZXZvcHNUeXBlOiAnbm9uU2hvcHBlcic7XHJcbiAgICB0aGlzLkltYWdlcyA9IHRoaXMuSW1hZ2VkYXRhPy5pbWFnZXM/LmVudHJ5VGltZUltYWdlXHJcbiAgICB0aGlzLmdldFJldm9wRGF0YSgpXHJcbiAgfVxyXG4gIGdldFJldm9wRGF0YSgpIHtcclxuICAgIGxldCBwYXlsb2FkID0ge1xyXG4gICAgICBjbGllbnRJZDogdGhpcy5oZWFkZXJEYXRhLmNsaWVudCxcclxuICAgICAgc3RvcmVJZDogdGhpcy5zdG9yZUlkYXJyYXlbMF0sXHJcbiAgICAgIGRhdGVTdHJpbmc6IHRoaXMuZm9sZGVyRGF0ZSxcclxuICAgICAgdGVtcElkOiB0aGlzLkltYWdlZGF0YS50ZW1wSWQsXHJcbiAgICAgIHByb2Nlc3NUeXBlOiB0aGlzLkltYWdlZGF0YT8ucmV2b3BzVHlwZSA/IHRoaXMuSW1hZ2VkYXRhPy5yZXZvcHNUeXBlOiB0aGlzLnByb2Nlc3NUeXBlXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0cmV2b3B0YWdnaW5nKHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy50YWdnZ2VkRGF0YSA9IHJlcy5kYXRhXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDdXN0b21lclR5cGUgPSByZXMuZGF0YS5yZXZvcHNUeXBlXHJcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSByZXMuZGF0YS5kZXNjcmlwdGlvblxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdENvbnRyb2wuc2V0VmFsdWUocmVzLmRhdGEucmV2b3BzVHlwZSk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkQ3VzdG9tZXJUeXBlID09PSAnbm9uU2hvcHBlcicpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXNzdWVzID0gW107XHJcbiAgICAgICAgICAgICAgdGhpcy5ub25TaG9wZXJUeXBlID0gcmVzLmRhdGEubm9uc2hvcGVyVHlwZVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCduYW1lJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ21vYmlsZScpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdjb3VudHJ5Q29kZScpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdlbWFpbCcpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdsb2NhdGlvbicpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdhZ2UnKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnZ2VuZGVyJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZEN1c3RvbWVyVHlwZSA9PT0gJ3B1cmNoYXNlcicpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXNzdWVzID0gW107XHJcbiAgICAgICAgICAgICAgdGhpcy5ub25TaG9wZXJUeXBlID0gJydcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnbmFtZScpPy5zZXRWYWx1ZShyZXMuZGF0YS5jdXN0b21lckluZm8ubmFtZSlcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnbW9iaWxlJyk/LnNldFZhbHVlKHJlcy5kYXRhLmN1c3RvbWVySW5mby5tb2JpbGUpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2NvdW50cnlDb2RlJyk/LnNldFZhbHVlKHJlcy5kYXRhLmN1c3RvbWVySW5mby5jb3VudHJ5Q29kZSlcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnZW1haWwnKT8uc2V0VmFsdWUocmVzLmRhdGEuY3VzdG9tZXJJbmZvLmVtYWlsKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdsb2NhdGlvbicpPy5zZXRWYWx1ZShyZXMuZGF0YS5jdXN0b21lckluZm8ubG9jYXRpb24pXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2FnZScpPy5zZXRWYWx1ZShyZXMuZGF0YS5jdXN0b21lckluZm8uYWdlKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdnZW5kZXInKT8uc2V0VmFsdWUocmVzLmRhdGEuY3VzdG9tZXJJbmZvLmdlbmRlcilcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkQ3VzdG9tZXJUeXBlID09PSAnbWlzc2VkT3Bwb3J0dW5pdHknKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5taXNzZWRvcHR1bml0eVJlYXNvbiA9IHJlcy5kYXRhLmlzc3VlTGlzdFxyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlcy5kYXRhKVxyXG4gICAgICAgICAgICAgIHJlcy5kYXRhLmlzc3VlTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZElzc3VlcyA9IFsuLi50aGlzLnNlbGVjdGVkSXNzdWVzLCAuLi5kYXRhLmlzc3VlXVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgdGhpcy5ub25TaG9wZXJUeXBlID0gJydcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnbmFtZScpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdtb2JpbGUnKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnY291bnRyeUNvZGUnKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnZW1haWwnKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnbG9jYXRpb24nKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnYWdlJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2dlbmRlcicpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9ZWxzZSBpZighcmVzIHx8IHJlcz8uY29kZSA9PT0gMjA0KXtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RDb250cm9sLnNldFZhbHVlKFwiZm9vdGZhbGxcIik7XHJcbiAgICAgICAgICAgIHRoaXMudGFnZ2dlZERhdGEgPVtdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIGVycm9yOiAoZXJyOmFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RDb250cm9sLnNldFZhbHVlKFwiZm9vdGZhbGxcIik7XHJcbiAgICAgICAgICB0aGlzLnRhZ2dnZWREYXRhID1bXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG4gIHB1YmxpYyBoYW5kbGVBZGRyZXNzQ2hhbmdlKHBsYWNlOiBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VSZXN1bHQgfCBhbnkpIHsgXHJcbiAgICBpZiAocGxhY2UuZ2VvbWV0cnkpIHtcclxuICAgICAgbGV0IGNvdW50cnkgPSBcIlwiLCBjaXR5ID0gXCJcIiwgc3RhdGUgPSBcIlwiLCBwaW5jb2RlID0gXCJcIjtcclxuICAgICAgbGV0IGxhdGl0dWRlID0gcGxhY2UuZ2VvbWV0cnkubG9jYXRpb24ubGF0KCk7XHJcbiAgICAgIGxldCBsb25naXR1ZGUgPSBwbGFjZS5nZW9tZXRyeS5sb2NhdGlvbi5sbmcoKTtcclxuICAgICAgcGxhY2UuYWRkcmVzc19jb21wb25lbnRzLmZvckVhY2goKGNvbXBvbmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGNvbXBvbmVudC50eXBlcy5pbmNsdWRlcyhcImNvdW50cnlcIikpIHtcclxuICAgICAgICAgIGNvdW50cnkgPSBjb21wb25lbnQubG9uZ19uYW1lO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY29tcG9uZW50LnR5cGVzLmluY2x1ZGVzKFwibG9jYWxpdHlcIikpIHtcclxuICAgICAgICAgIGNpdHkgPSBjb21wb25lbnQubG9uZ19uYW1lO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY29tcG9uZW50LnR5cGVzLmluY2x1ZGVzKFwiYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8xXCIpKSB7XHJcbiAgICAgICAgICBzdGF0ZSA9IGNvbXBvbmVudC5sb25nX25hbWU7XHJcbiAgICAgICAgfSBlbHNlIGlmIChjb21wb25lbnQudHlwZXMuaW5jbHVkZXMoXCJwb3N0YWxfY29kZVwiKSkge1xyXG4gICAgICAgICAgcGluY29kZSA9IGNvbXBvbmVudC5sb25nX25hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdG5vblNob3BlcihkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMubm9uU2hvcGVyVHlwZSA9IGRhdGFcclxuICAgIGlmIChkYXRhID09PSAnRHVwbGljYXRlJykge1xyXG4gICAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oRHVwbGljYXRlQ29tcG9uZW50LCB7XHJcbiAgICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgICAgc2l6ZTogXCJsZ1wiLFxyXG4gICAgICAgIHNjcm9sbGFibGU6IHRydWUsXHJcbiAgICAgICAgYmFja2Ryb3A6ICdzdGF0aWMnXHJcbiAgICAgIH0pO1xyXG4gICAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5pbnB1dERhdGEgPSB7XHJcbiAgICAgICAgXCJzdG9yZUlkXCI6IHRoaXMuc3RvcmVJZGFycmF5LFxyXG4gICAgICAgIFwiY2xpZW50SWRcIjogdGhpcy5oZWFkZXJEYXRhLmNsaWVudCxcclxuICAgICAgICBcInByb2Nlc3NUeXBlXCI6IHRoaXMucHJvY2Vzc1R5cGUsXHJcbiAgICAgICAgXCJmb290ZmFsbERhdGVcIjogdGhpcy5mb2xkZXJEYXRlLFxyXG4gICAgICAgIFwiZm9sZGVyTmFtZVwiOiB0aGlzLnNlbGVjdGVkVGltZVxyXG4gICAgICB9XHJcbiAgICAgIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZ2V0UmV2b3BEYXRhKClcclxuICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW1hZ2VWaWV3KG9iajogYW55LCBmb290ZmFsbERhdGU6IGFueSkge1xyXG5cclxuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihJbWFnZURvY1ZpZXdDb21wb25lbnQsIHtcclxuICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgIHNpemU6IFwieGxcIixcclxuICAgICAgc2Nyb2xsYWJsZTogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuSW1hZ2VkYXRhID0gb2JqO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UucHJvY2Vzc1R5cGUgPSB0aGlzLm9iakRhdGEucHJvY2Vzc1R5cGU7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5mb290ZmFsbERhdGUgPSBmb290ZmFsbERhdGU7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5zdG9yZU5hbWUgPSB0aGlzLnN0b3JlQXJyYXlWYWx1ZTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnN0b3JlSWQgPSB0aGlzLnN0b3JlSWRhcnJheVxyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuaGVhZGVyRGF0YSA9IHRoaXMuaGVhZGVyRGF0YTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmltYWdlQXJyYXkgPSB0aGlzLm9iamVjdHNBcnJheTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmZvbGRlck5hbWUgPSB0aGlzLm9iakRhdGEuZm9sZGVyTmFtZVxyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UudHJhY2tlciA9IHRoaXMuY2xpZW50RGF0YS50cmFja2VyRkY7XHJcbiAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0OiBhbnkpID0+IHsgfSk7XHJcbiAgICAvLyBtb2RhbFJlZi5kaXNtaXNzKCdDbGljayBvdXRzaWRlJyk7XHJcbiAgfVxyXG5cclxuICBnZXREYXRlUmFuZ2VBcnJheShmcm9tRGF0ZTogc3RyaW5nLCB0b0RhdGU6IHN0cmluZyk6IHN0cmluZ1tdIHtcclxuICAgIGNvbnN0IHN0YXJ0ID0gbmV3IERhdGUoZnJvbURhdGUpOyAvLyBDb252ZXJ0IHN0cmluZyB0byBEYXRlIG9iamVjdFxyXG4gICAgY29uc3QgZW5kID0gbmV3IERhdGUodG9EYXRlKTsgLy8gQ29udmVydCBzdHJpbmcgdG8gRGF0ZSBvYmplY3RcclxuICAgIGNvbnN0IGRhdGVBcnJheTogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICAvLyBDaGVjayBpZiB0aGUgZGF0ZXMgYXJlIHZhbGlkXHJcbiAgICBpZiAoaXNOYU4oc3RhcnQuZ2V0VGltZSgpKSB8fCBpc05hTihlbmQuZ2V0VGltZSgpKSkge1xyXG4gICAgICByZXR1cm4gZGF0ZUFycmF5O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIExvb3AgZnJvbSBzdGFydCBkYXRlIHRvIGVuZCBkYXRlXHJcbiAgICBsZXQgY3VycmVudERhdGUgPSBzdGFydDtcclxuICAgIHdoaWxlIChjdXJyZW50RGF0ZSA8PSBlbmQpIHtcclxuICAgICAgZGF0ZUFycmF5LnB1c2goY3VycmVudERhdGUudG9JU09TdHJpbmcoKS5zcGxpdChcIlRcIilbMF0pOyAvLyBGb3JtYXQgWVlZWS1NTS1ERFxyXG4gICAgICBjdXJyZW50RGF0ZS5zZXREYXRlKGN1cnJlbnREYXRlLmdldERhdGUoKSArIDEpOyAvLyBJbmNyZW1lbnQgdGhlIGRhdGUgYnkgMSBkYXlcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGF0ZUFycmF5O1xyXG4gIH1cclxuXHJcbiAgLy8gTWV0aG9kIHRvIGRpc3BsYXkgb3IgbG9nIHRoZSBkYXRlIHJhbmdlIGFycmF5XHJcbiAgZGlzcGxheURhdGVSYW5nZSgpIHtcclxuICAgIGNvbnN0IGRhdGVzID0gdGhpcy5nZXREYXRlUmFuZ2VBcnJheShcclxuICAgICAgdGhpcy5oZWFkZXJEYXRhLmRhdGUuc3RhcnREYXRlLFxyXG4gICAgICB0aGlzLmhlYWRlckRhdGEuZGF0ZS5lbmREYXRlXHJcbiAgICApO1xyXG4gICAgdGhpcy5kYXRlQXJyYXkgPSBkYXRlcztcclxuICB9XHJcbiAgZGF0YXNldHMgPSBbXHJcbiAgICB7IHZhbHVlOiAnZm9vdGZhbGwnLCBsYWJlbDogJ0Zvb3RmYWxsJyB9LFxyXG4gICAgeyB2YWx1ZTogJ2JvdW5jZWQnLCBsYWJlbDogJ0JvdW5jZWQgRm9vdGZhbGwnIH0sXHJcbiAgICB7IHZhbHVlOiAnZW5nYWdlcicsIGxhYmVsOiAnRW5nYWdlcnMnIH0sXHJcbiAgICB7IHZhbHVlOiAnbWlzc2VkT3Bwb3J0dW5pdHknLCBsYWJlbDogJ01pc3NlZCBPcHBvcnR1bml0eScgfSxcclxuICAgIHsgdmFsdWU6ICdjb252ZXJzaW9uJywgbGFiZWw6ICdDb252ZXJzaW9uJyB9XHJcbiAgXTtcclxuICBnZXRJbml0aWFsVmFsdWUoKTogc3RyaW5nIHtcclxuICAgIC8vIEZvciBleGFtcGxlLCBzZWxlY3RpbmcgdGhlIHNlY29uZCBpdGVtIGluIHRoZSBkYXRhc2V0XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhc2V0c1swXS52YWx1ZTsgLy8gQ2hhbmdlIGFzIG5lZWRlZFxyXG4gIH1cclxuICBvblZhbHVlQ2hhbmdlKHNlbGVjdGVkSWQ6IGFueSkge1xyXG4gICAgdGhpcy5vYmpEYXRhLnByb2Nlc3NUeXBlID0gc2VsZWN0ZWRJZCxcclxuICAgICAgdGhpcy5nZXRJbWFnZUZvbGRlcigpO1xyXG4gIH1cclxuICBnZXQgc2VsZWN0Q29udHJvbCgpOiBGb3JtQ29udHJvbCB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgnc2VsZWN0VmFsdWUnKSBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcbiAgY2xvc2VEYXRhKCkge1xyXG4gICAgdGhpcy5oaWRlRG9jID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGJhY2tUb1ZpZXcoKSB7XHJcbiAgICB0aGlzLnNlbGVjdENvbnRyb2wuc2V0VmFsdWUoXCJmb290ZmFsbFwiKTtcclxuICAgIHRoaXMuaW1hZ2VGbG93ID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGVjdGVkVGltZXModGhpcy5zZWxlY3RlZFRpbWUpO1xyXG4gIH1cclxuXHJcbiAgaW1hZ2VEYXRhKHR5cGU6IGFueSkge1xyXG4gICAgaWYgKHR5cGUgPT09ICdlbnRyeScpIHtcclxuICAgICAgdGhpcy5JbWFnZXMgPSB0aGlzLkltYWdlZGF0YT8uaW1hZ2VzPy5lbnRyeVRpbWVJbWFnZVxyXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnZXhpdCcpIHtcclxuICAgICAgdGhpcy5JbWFnZXMgPSB0aGlzLkltYWdlZGF0YT8uaW1hZ2VzPy5leGl0VGltZUltYWdlXHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzdGFmZicpIHtcclxuICAgICAgdGhpcy5JbWFnZXMgPSB0aGlzLkltYWdlZGF0YT8uaW1hZ2VzPy5zdGFmZkVuZ2FnZW1lbnRJbWFnZVxyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgaXNGaXJzdEltYWdlKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmltYWdlc0FycmF5RGF0YS5maW5kSW5kZXgoKGRhdGE6IGFueSkgPT4gZGF0YS50ZW1wSWQgPT09IHRoaXMuSW1hZ2VkYXRhPy50ZW1wSWQpO1xyXG4gICAgcmV0dXJuIGluZGV4IDw9IDA7XHJcbiAgfVxyXG4gIFxyXG4gIGlzTGFzdEltYWdlKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmltYWdlc0FycmF5RGF0YS5maW5kSW5kZXgoKGRhdGE6IGFueSkgPT4gZGF0YS50ZW1wSWQgPT09IHRoaXMuSW1hZ2VkYXRhPy50ZW1wSWQpO1xyXG4gICAgcmV0dXJuIGluZGV4ID49IHRoaXMuaW1hZ2VzQXJyYXlEYXRhLmxlbmd0aCAtIDE7XHJcbiAgfVxyXG4gIFxyXG4gIHByZXZpb3VzKCl7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuaW1hZ2VzQXJyYXlEYXRhLmZpbmRJbmRleCgoZGF0YTphbnkpID0+IGRhdGEudGVtcElkID09PSB0aGlzLkltYWdlZGF0YS50ZW1wSWQpO1xyXG4gICAgaWYgKGluZGV4ID4gMCkge1xyXG4gICAgICB0aGlzLkltYWdlZGF0YSA9IHRoaXMuaW1hZ2VzQXJyYXlEYXRhW2luZGV4IC0gMV07XHJcbiAgICBpZih0aGlzLkltYWdlZGF0YSl7XHJcbiAgICAgIHRoaXMucmV2b3BUYWdnaW5nKHRoaXMuSW1hZ2VkYXRhKVxyXG4gICAgfVxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuSW1hZ2VkYXRhID0gdGhpcy5pbWFnZXNBcnJheURhdGFbMF07XHJcbiAgICBpZih0aGlzLkltYWdlZGF0YSl7XHJcbiAgICAgIHRoaXMucmV2b3BUYWdnaW5nKHRoaXMuSW1hZ2VkYXRhKVxyXG4gICAgfVxyXG4gICAgICBcclxuICAgIH1cclxuICB9XHJcbm5leHQoKXtcclxuICBjb25zdCBpbmRleCA9IHRoaXMuaW1hZ2VzQXJyYXlEYXRhLmZpbmRJbmRleCgoZGF0YTphbnkpID0+IGRhdGEudGVtcElkID09PSB0aGlzLkltYWdlZGF0YS50ZW1wSWQpO1xyXG4gICAgaWYodGhpcy5pbWFnZXNBcnJheURhdGEubGVuZ3RoLTEhPWluZGV4KXtcclxuXHJcbiAgICAgIHRoaXMuSW1hZ2VkYXRhID0gdGhpcy5pbWFnZXNBcnJheURhdGFbaW5kZXggKyAxXTtcclxuICAgICAgaWYodGhpcy5JbWFnZWRhdGEpe1xyXG4gICAgICAgIHRoaXMucmV2b3BUYWdnaW5nKHRoaXMuSW1hZ2VkYXRhKVxyXG4gICAgICB9XHJcbiAgICB9IFxyXG59XHJcblxyXG4gIHNlbGVjdGVkVGFiID0gJ3RhZ2dlZCc7XHJcbiAgc2VsZWN0ZWRDdXN0b21lclR5cGUgPSAnbm9uU2hvcHBlcic7XHJcbiAgb25SYWRpb0NoYW5nZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQ3VzdG9tZXJUeXBlID0gdmFsdWU7XHJcbiAgICBpZih2YWx1ZSA9PT0ncHVyY2hhc2VyJyl7XHJcbiAgICAgIHRoaXMuc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICAgIE9iamVjdC52YWx1ZXModGhpcy51c2VyRm9ybS5jb250cm9scykuZm9yRWFjaChjb250cm9sID0+IHtcclxuICAgICAgICBjb250cm9sLm1hcmtBc1VudG91Y2hlZCgpO1xyXG4gICAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFnZTogbnVtYmVyID0gMTtcclxuXHJcbiAgaW5jcmVtZW50QWdlKCkge1xyXG4gICAgY29uc3QgY3VycmVudEFnZSA9IHRoaXMudXNlckZvcm0uZ2V0KCdhZ2UnKT8udmFsdWUgfHwgMDtcclxuICAgIHRoaXMudXNlckZvcm0uZ2V0KCdhZ2UnKT8uc2V0VmFsdWUoY3VycmVudEFnZSArIDEpO1xyXG4gIH1cclxuXHJcbiAgZGVjcmVtZW50QWdlKCkge1xyXG4gICAgY29uc3QgY3VycmVudEFnZSA9IHRoaXMudXNlckZvcm0uZ2V0KCdhZ2UnKT8udmFsdWUgfHwgMDtcclxuICAgIGlmIChjdXJyZW50QWdlID4gMCkge1xyXG4gICAgICB0aGlzLnVzZXJGb3JtLmdldCgnYWdlJyk/LnNldFZhbHVlKGN1cnJlbnRBZ2UgLSAxKTtcclxuICAgIH1cclxuICB9XHJcbiAgc3VibWl0TWlzc2VkT3Bwb3J0dW5pdHkoKSB7XHJcbiAgICBpZiAodGhpcy5taXNzZWRvcHR1bml0eVJlYXNvbi5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy50b2FzdGVyLmdldEVycm9yVG9hc3QoXCJwbGVhc2Ugc2VsZWN0IG1pc3NlZCBvcHBvcnR1bml0eSByZWFzb25cIilcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICBsZXQgcGF5bG9hZCA9IFt7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckRhdGEuY2xpZW50LFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLnN0b3JlSWRhcnJheVswXSxcclxuICAgICAgZGF0ZVN0cmluZzogdGhpcy5mb2xkZXJEYXRlLFxyXG4gICAgICB0aW1lUmFuZ2U6IHRoaXMuc2VsZWN0ZWRUaW1lLFxyXG4gICAgICB0ZW1wSWQ6IHRoaXMuSW1hZ2VkYXRhLnRlbXBJZCxcclxuICAgICAgcHJvY2Vzc1R5cGU6IHRoaXMuc2VsZWN0Q29udHJvbC52YWx1ZSxcclxuICAgICAgcmV2b3BzVHlwZTogdGhpcy5zZWxlY3RlZEN1c3RvbWVyVHlwZSxcclxuICAgICAgbm9uc2hvcGVyVHlwZTogXCJcIixcclxuICAgICAgY3VzdG9tZXJJbmZvOiB7XHJcbiAgICAgICAgbmFtZTogXCJcIixcclxuICAgICAgICBtb2JpbGU6IFwiXCIsXHJcbiAgICAgICAgY291bnRyeUNvZGU6XCJcIixcclxuICAgICAgICBlbWFpbDogXCJcIixcclxuICAgICAgICBsb2NhdGlvbjogXCJcIixcclxuICAgICAgICBhZ2U6IFwiXCIsXHJcbiAgICAgICAgZ2VuZGVyOiBcIlwiLFxyXG4gICAgICB9LFxyXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcclxuICAgICAgc3RhdHVzOiBcInN1Ym1pdHRlZFwiLFxyXG4gICAgICBpc3N1ZUxpc3Q6IHRoaXMubWlzc2Vkb3B0dW5pdHlSZWFzb25cclxuICAgIH1dXHJcbiAgICB0aGlzLnNlcnZpY2VcclxuICAgICAgLnN1Ym1pdFJldm9wVGFnZ2luZyhwYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgID8uc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0ZXIuZ2V0U3VjY2Vzc1RvYXN0KFwiQ3VzdG9tZXIgaGFzIGJlZW4gdGFnZ2VkIHN1Y2Nlc3NmdWxseS5cIilcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSAgJ2N1c3RvbWVyJ1xyXG4gICAgICAgICAgICB0aGlzLmdldFJldm9wRGF0YSgpXHJcbiAgICAgICAgICAgIH0sNTAwKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcblxyXG5cclxuICBub25TaG9wcGVyU3VibWl0KCkge1xyXG5cclxuICAgIGlmICh0aGlzLm5vblNob3BlclR5cGUgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMudG9hc3Rlci5nZXRFcnJvclRvYXN0KFwicGxlYXNlIHNlbGVjdCBub25zaG9wcGVyIFR5cGVcIilcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBheWxvYWQgPSBbe1xyXG4gICAgICBjbGllbnRJZDogdGhpcy5oZWFkZXJEYXRhLmNsaWVudCxcclxuICAgICAgc3RvcmVJZDogdGhpcy5zdG9yZUlkYXJyYXlbMF0sXHJcbiAgICAgIHRpbWVSYW5nZTogdGhpcy5zZWxlY3RlZFRpbWUsXHJcbiAgICAgIGRhdGVTdHJpbmc6IHRoaXMuZm9sZGVyRGF0ZSxcclxuICAgICAgdGVtcElkOiB0aGlzLkltYWdlZGF0YS50ZW1wSWQsXHJcbiAgICAgIHByb2Nlc3NUeXBlOiB0aGlzLnNlbGVjdENvbnRyb2wudmFsdWUsXHJcbiAgICAgIHJldm9wc1R5cGU6IHRoaXMuc2VsZWN0ZWRDdXN0b21lclR5cGUsXHJcbiAgICAgIG5vbnNob3BlclR5cGU6IHRoaXMubm9uU2hvcGVyVHlwZSxcclxuICAgICAgY3VzdG9tZXJJbmZvOiB7XHJcbiAgICAgICAgbmFtZTogXCJcIixcclxuICAgICAgICBtb2JpbGU6IFwiXCIsXHJcbiAgICAgICAgY291bnRyeUNvZGU6XCJcIixcclxuICAgICAgICBlbWFpbDogXCJcIixcclxuICAgICAgICBsb2NhdGlvbjogXCJcIixcclxuICAgICAgICBhZ2U6IFwiXCIsXHJcbiAgICAgICAgZ2VuZGVyOiBcIlwiLFxyXG4gICAgICB9LFxyXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcclxuICAgICAgc3RhdHVzOiBcInN1Ym1pdHRlZFwiLFxyXG4gICAgICBpc3N1ZUxpc3Q6IFtdXHJcbiAgICB9XVxyXG4gICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgIC5zdWJtaXRSZXZvcFRhZ2dpbmcocGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICA/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdGVyLmdldFN1Y2Nlc3NUb2FzdChcIkN1c3RvbWVyIGhhcyBiZWVuIHRhZ2dlZCBzdWNjZXNzZnVsbHkuXCIpXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gICdjdXN0b21lcidcclxuICAgICAgICAgICAgdGhpcy5nZXRSZXZvcERhdGEoKVxyXG4gICAgICAgICAgICB9LDUwMClcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLnVzZXJGb3JtLmludmFsaWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IHBheWxvYWQgPSBbe1xyXG4gICAgICBjbGllbnRJZDogdGhpcy5oZWFkZXJEYXRhLmNsaWVudCxcclxuICAgICAgc3RvcmVJZDogdGhpcy5zdG9yZUlkYXJyYXlbMF0sXHJcbiAgICAgIHRpbWVSYW5nZTogdGhpcy5zZWxlY3RlZFRpbWUsXHJcbiAgICAgIGRhdGVTdHJpbmc6IHRoaXMuZm9sZGVyRGF0ZSxcclxuICAgICAgdGVtcElkOiB0aGlzLkltYWdlZGF0YS50ZW1wSWQsXHJcbiAgICAgIHByb2Nlc3NUeXBlOiB0aGlzLnNlbGVjdENvbnRyb2wudmFsdWUsXHJcbiAgICAgIHJldm9wc1R5cGU6IHRoaXMuc2VsZWN0ZWRDdXN0b21lclR5cGUsXHJcbiAgICAgIG5vbnNob3BlclR5cGU6IFwiXCIsXHJcbiAgICAgIGN1c3RvbWVySW5mbzoge1xyXG4gICAgICAgIG5hbWU6IHRoaXMudXNlckZvcm0udmFsdWUubmFtZSxcclxuICAgICAgICBtb2JpbGU6IHRoaXMudXNlckZvcm0udmFsdWUubW9iaWxlLFxyXG4gICAgICAgIGNvdW50cnlDb2RlOiB0aGlzLnVzZXJGb3JtLnZhbHVlLmNvdW50cnlDb2RlLFxyXG4gICAgICAgIGVtYWlsOiB0aGlzLnVzZXJGb3JtLnZhbHVlLmVtYWlsLFxyXG4gICAgICAgIGxvY2F0aW9uOiB0aGlzLnVzZXJGb3JtLnZhbHVlLmxvY2F0aW9uLFxyXG4gICAgICAgIGFnZTogdGhpcy51c2VyRm9ybS52YWx1ZS5hZ2UsXHJcbiAgICAgICAgZ2VuZGVyOiB0aGlzLnVzZXJGb3JtLnZhbHVlLmdlbmRlcixcclxuICAgICAgfSxcclxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXHJcbiAgICAgIHN0YXR1czogXCJzdWJtaXR0ZWRcIixcclxuICAgICAgaXNzdWVMaXN0OiBbXVxyXG4gICAgfV1cclxuICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAuc3VibWl0UmV2b3BUYWdnaW5nKHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3Rlci5nZXRTdWNjZXNzVG9hc3QoXCJDdXN0b21lciBoYXMgYmVlbiB0YWdnZWQgc3VjY2Vzc2Z1bGx5LlwiKVxyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9ICAnY3VzdG9tZXInXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0UmV2b3BEYXRhKClcclxuXHJcbiAgICAgICAgICAgIH0sNTAwKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuXHJcblxyXG5cclxuICB9XHJcblxyXG4gIGlzSW52YWxpZChmaWVsZE5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMudXNlckZvcm0uZ2V0KGZpZWxkTmFtZSk7XHJcbiAgICByZXR1cm4gISEoY29udHJvbCAmJiBjb250cm9sLmludmFsaWQgJiYgKGNvbnRyb2wudG91Y2hlZCB8fCB0aGlzLnN1Ym1pdHRlZCkpO1xyXG4gIH1cclxuICBcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FyZCBtdC0zXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgbXQtMyBweC0wIGJvcmRlci1ib3R0b20tMFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tYWNjb3JkaW9uXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tYWNjb3JkaW9uLWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWFpbmhlYWRpbmcgcGItMCBjdXN0b20tYWNjb3JkaW9uLWhlYWRlclwiIChjbGljayk9XCJ0b2dnbGVBY2NvcmRpb24oKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbWctZGlyZWNcIj5JbWFnZSBEaXJlY3Rvcnk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvcmRpb24tYXJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIERvd24gYXJyb3cgZm9yIGNvbGxhcHNlZCBzdGF0ZSwgdXAgYXJyb3cgZm9yIGV4cGFuZGVkIHN0YXRlIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCIhaXNBY2NvcmRpb25FeHBhbmRlZFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI2XCIgaGVpZ2h0PVwiNlwiIHZpZXdCb3g9XCIwIDAgMTYgNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEgMUw1IDVMOSAxXCIgc3Ryb2tlPVwiIzA3MTQzN1wiIHN0cm9rZS13aWR0aD1cIjFcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cImlzQWNjb3JkaW9uRXhwYW5kZWRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNlwiIGhlaWdodD1cIjZcIiB2aWV3Qm94PVwiMCAwIDE2IDZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xIDVMNSAxTDkgNVwiIHN0cm9rZT1cIiMxYjg0ZmZcIiBzdHJva2Utd2lkdGg9XCIxXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIFxyXG4gICAgICAgIFxyXG4gICAgPC9kaXY+XHJcbiAgICA8c2VjdGlvbiAqbmdJZj1cImlzQWNjb3JkaW9uRXhwYW5kZWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgcHgtNVwiICpuZ0lmPVwiIWhpZGVEb2NcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3dpdGNoLWZvcm0tY2FyZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjQ2XCIgaGVpZ2h0PVwiNDZcIiB2aWV3Qm94PVwiMCAwIDQ2IDQ2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjNcIiB5PVwiM1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHJ4PVwiMjBcIiBmaWxsPVwiI0RBRjFGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjNcIiB5PVwiM1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHJ4PVwiMjBcIiBzdHJva2U9XCIjRUFGOEZGXCIgc3Ryb2tlLXdpZHRoPVwiNlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yMy44MzMzIDE0LjY2NjZMMTUuNSAyNC42NjY2SDIzTDIyLjE2NjcgMzEuMzMzM0wzMC41IDIxLjMzMzNIMjNMMjMuODMzMyAxNC42NjY2WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR4dC1vbmUgbXMtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+RXhhbWluZSBpbmRpdmlkdWFsIGZvb3RmYWxsIGluIGdhbGxlcnkgdmlldyB3aXRoIG9wdGltYWwgc2FtcGxlIGltYWdlcyBmb3IgZGV0YWlsZWQgYW5hbHlzaXMuPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNNdWx0aXBsZVwiPlVwbG9hZCBtdWx0aXBsZSBzdG9yZXMgZm9yIGNvbmZpZ3VyYXRpb248L25nLWNvbnRhaW5lcj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJjbG9zZURhdGEoKVwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xOC4yOTUgNy4xMTVDMTguNjg0NCA2LjcyNTY0IDE4LjY4NDQgNi4wOTQzNiAxOC4yOTUgNS43MDVDMTcuOTA1NiA1LjMxNTY0IDE3LjI3NDQgNS4zMTU2NCAxNi44ODUgNS43MDVMMTIgMTAuNTlMNy4xMTUgNS43MDVDNi43MjU2NCA1LjMxNTY0IDYuMDk0MzYgNS4zMTU2NCA1LjcwNSA1LjcwNUM1LjMxNTY0IDYuMDk0MzYgNS4zMTU2NCA2LjcyNTY0IDUuNzA1IDcuMTE1TDEwLjU5IDEyTDUuNzA1IDE2Ljg4NUM1LjMxNTY0IDE3LjI3NDQgNS4zMTU2NCAxNy45MDU2IDUuNzA1IDE4LjI5NUM2LjA5NDM2IDE4LjY4NDQgNi43MjU2NCAxOC42ODQ0IDcuMTE1IDE4LjI5NUwxMiAxMy40MUwxNi44ODUgMTguMjk1QzE3LjI3NDQgMTguNjg0NCAxNy45MDU2IDE4LjY4NDQgMTguMjk1IDE4LjI5NUMxOC42ODQ0IDE3LjkwNTYgMTguNjg0NCAxNy4yNzQ0IDE4LjI5NSAxNi44ODVMMTMuNDEgMTJMMTguMjk1IDcuMTE1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJibGFja1wiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cImZvbGRlclZpZXdcIiBjbGFzcz1cImNhcmQtYm9keSBweC0wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNjcm9sbC1jb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMSBtdC01IHRleHQtY2VudGVyXCIgKm5nRm9yPVwibGV0IG9iaiBvZiBkYXRlQXJyYXk7bGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiZ2V0aW1hZ2VzKGksb2JqKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpID09PSBzZWxlY3RJbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPjxzdmcgd2lkdGg9XCI1N1wiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NyA1NlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjAuMTU0Mjk3XCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgcng9XCIxMlwiIGZpbGw9XCIjMzNCNUZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTM5LjgyMTYgMzYuMTY2N0MzOS44MjE2IDM2Ljc4NTUgMzkuNTc1OCAzNy4zNzkgMzkuMTM4MiAzNy44MTY2QzM4LjcwMDYgMzguMjU0MiAzOC4xMDcxIDM4LjUgMzcuNDg4MyAzOC41SDE4LjgyMTZDMTguMjAyOCAzOC41IDE3LjYwOTMgMzguMjU0MiAxNy4xNzE3IDM3LjgxNjZDMTYuNzM0MSAzNy4zNzkgMTYuNDg4MyAzNi43ODU1IDE2LjQ4ODMgMzYuMTY2N1YxOS44MzMzQzE2LjQ4ODMgMTkuMjE0NSAxNi43MzQxIDE4LjYyMSAxNy4xNzE3IDE4LjE4MzRDMTcuNjA5MyAxNy43NDU4IDE4LjIwMjggMTcuNSAxOC44MjE2IDE3LjVIMjQuNjU0OUwyNi45ODgzIDIxSDM3LjQ4ODNDMzguMTA3MSAyMSAzOC43MDA2IDIxLjI0NTggMzkuMTM4MiAyMS42ODM0QzM5LjU3NTggMjIuMTIxIDM5LjgyMTYgMjIuNzE0NSAzOS44MjE2IDIzLjMzMzNWMzYuMTY2N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjIuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgbXQtMlwiPnt7b2JqIHwgZGF0ZTonZGQgTU1NJ319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImkgIT09IHNlbGVjdEluZGV4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+PHN2ZyB3aWR0aD1cIjU3XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU3IDU2XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMC40NjI4OTFcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiByeD1cIjEyXCIgZmlsbD1cIiNFQUY4RkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNDAuMTMwMiAzNi4xNjY3QzQwLjEzMDIgMzYuNzg1NSAzOS44ODQ0IDM3LjM3OSAzOS40NDY4IDM3LjgxNjZDMzkuMDA5MiAzOC4yNTQyIDM4LjQxNTcgMzguNSAzNy43OTY5IDM4LjVIMTkuMTMwMkMxOC41MTE0IDM4LjUgMTcuOTE3OSAzOC4yNTQyIDE3LjQ4MDMgMzcuODE2NkMxNy4wNDI3IDM3LjM3OSAxNi43OTY5IDM2Ljc4NTUgMTYuNzk2OSAzNi4xNjY3VjE5LjgzMzNDMTYuNzk2OSAxOS4yMTQ1IDE3LjA0MjcgMTguNjIxIDE3LjQ4MDMgMTguMTgzNEMxNy45MTc5IDE3Ljc0NTggMTguNTExNCAxNy41IDE5LjEzMDIgMTcuNUgyNC45NjM1TDI3LjI5NjkgMjFIMzcuNzk2OUMzOC40MTU3IDIxIDM5LjAwOTIgMjEuMjQ1OCAzOS40NDY4IDIxLjY4MzRDMzkuODg0NCAyMi4xMjEgNDAuMTMwMiAyMi43MTQ1IDQwLjEzMDIgMjMuMzMzM1YzNi4xNjY3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIyLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG10LTJcIj57e29iaiB8IGRhdGU6J2RkIE1NTSd9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuICAgICAgIFxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiIWZvbGRlclZpZXdcIiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgIDxzZWN0aW9uICpuZ0lmPVwiIWltYWdlRmxvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXNocmluay0wIG10LTMganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIHB4LTBcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiYmFja25hdlwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiYmFja1RvRm9vdGZhbGwoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8yNTg1XzcwMzYpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIxXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgcng9XCI4XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyLjVcIiB5PVwiMS41XCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgcng9XCI3LjVcIiBzdHJva2U9XCIjRDBENUREXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjUuODMyNyAxOUgxNC4xNjZNMTQuMTY2IDE5TDE5Ljk5OTMgMjQuODMzNE0xNC4xNjYgMTlMMTkuOTk5MyAxMy4xNjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMjU4NV83MDM2XCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0IGR5PVwiMVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9XCIwIDAgMCAwIDAuMDYyNzQ1MSAwIDAgMCAwIDAuMDk0MTE3NiAwIDAgMCAwIDAuMTU2ODYzIDAgMCAwIDAuMDUgMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18yNTg1XzcwMzZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjU4NV83MDM2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PVwic2hhcGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW1nLWRpcmVjIG1zLTJcIj57e2ZvbGRlckRhdGUgfCBkYXRlOidkZCBNTU0sIHl5eXknfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIW5vcm1hbGl6ZVwiIGNsYXNzPVwibXMtYXV0byB0ZXh0LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGxpYi1yZWFjdGl2ZS1zZWxlY3QgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWxlY3RDb250cm9sXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpZEZpZWxkXT1cIid2YWx1ZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmFtZUZpZWxkXT1cIidsYWJlbCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJkYXRhc2V0c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy0xMDAgdGV4dC1zdGFydFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbGliLXJlYWN0aXZlLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgIDxkaXYgIGNsYXNzPVwiZC1mbGV4IG10LTIgbWItMiB3LTEwMCBvdmVyZmxvdy14IHB4LTBcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGhpcy5oZWFkZXJEYXRhPy5jbGllbnQgIT09JzQ1OSdcIj5cclxuICAgICAgICA8ZGl2ICBjbGFzcz1cImNvbCB0ZXh0LW5vd3JhcFwiICpuZ0Zvcj1cImxldCBvYmogb2Ygb2JqZWN0c0FycmF5XCI+XHJcbiAgICAgICAgICAgIDx1bCAqbmdJZj1cImxlbmd0aFZhbHVlXCIgY2xhc3M9XCJuYXYgbmF2LXN0cmV0Y2ggbmF2LWxpbmUtdGFiczEgbmF2LWxpbmUtdGFicyBib3JkZXItdHJhbnNwYXJlbnQgZmxleC1ub3dyYXBcIj5cclxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cInNlbGVjdGVkVGltZXMob2JqLmZvbGRlck5hbWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzZWxlY3RlZFRpbWUgPT09IG9iaj8uZm9sZGVyTmFtZSA/ICdhY3RpdmUnIDogJydcIiBjbGFzcz1cIm5hdi1saW5rIGN1cnNvci1wb2ludGVyIG5vLWJvcmRlciBteC0zIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tvYmo/LmZvbGRlck5hbWV9fTxzcGFuIGNsYXNzPVwibXgtMiBcIiBbbmdDbGFzc109XCJzZWxlY3RlZFRpbWUgPT09IG9iaj8uZm9sZGVyTmFtZSA/ICdiYWRnZS1udW0tcHJpbWFyeScgOidiYWRnZS1udW0tbXV0ZWQnXCI+e3tvYmo/LmNvdW50P29iaj8uY291bnQ6MH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRoaXMuaGVhZGVyRGF0YT8uY2xpZW50ID09PSc0NTknXCI+XHJcbiAgICAgICAgPGRpdiAgY2xhc3M9XCJjb2wgdGV4dC1ub3dyYXBcIiAqbmdGb3I9XCJsZXQgb2JqIG9mIG9iamVjdHNBcnJheS5zbGljZSgwLCAtMSlcIj5cclxuICAgICAgICAgICAgPHVsICpuZ0lmPVwibGVuZ3RoVmFsdWVcIiBjbGFzcz1cIm5hdiBuYXYtc3RyZXRjaCBuYXYtbGluZS10YWJzMSBuYXYtbGluZS10YWJzIGJvcmRlci10cmFuc3BhcmVudCBmbGV4LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwic2VsZWN0ZWRUaW1lcyhvYmouZm9sZGVyTmFtZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlbGVjdGVkVGltZSA9PT0gb2JqPy5mb2xkZXJOYW1lID8gJ2FjdGl2ZScgOiAnJ1wiIGNsYXNzPVwibmF2LWxpbmsgY3Vyc29yLXBvaW50ZXIgbm8tYm9yZGVyIG14LTMgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e29iaj8uZm9sZGVyTmFtZX19PHNwYW4gY2xhc3M9XCJteC0yIFwiIFtuZ0NsYXNzXT1cInNlbGVjdGVkVGltZSA9PT0gb2JqPy5mb2xkZXJOYW1lID8gJ2JhZGdlLW51bS1wcmltYXJ5JyA6J2JhZGdlLW51bS1tdXRlZCdcIj57e29iaj8uY291bnQ/b2JqPy5jb3VudDowfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPC91bD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJsb2FkaW5nXCIgY2xhc3M9XCJyb3cgbG9hZGVyICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwibm9EYXRhXCIgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibm9ybWFsaXplXCIgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1ub2RhdGExXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvbm90LWFwcGxpY2FibGUuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS10aXRsZSBtdC0zXCI+RGF0YSBOb3QgRm91bmQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXN1YlwiPk5vcm1hbGl6ZWQgZGF0YSBpcyBub3QgYXBwbGljYWJsZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIW5vcm1hbGl6ZVwiIGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctbm9kYXRhXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhMS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXRpdGxlXCI+Tm8gZGF0YSBmb3VuZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtc3ViXCI+VGhlcmUgaXMgbm8gcmVzdWx0IGZvciB0aGlzIGltYWdlIGRpcmVjdG9yeTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtMCBpbWctdHJhZmZpYyBjb250YWluIGhpZ2gtNDAwcHggc2Nyb2xsLXlcIiAqbmdJZj1cIiFub0RhdGEgJiYgIWxvYWRpbmdcIj5cclxuICAgICAgICAgICAgPGRpdiAgY2xhc3M9XCJjb2wtbWQtMyBib3JkZXItZ3JheSBteC0yIHAtMiBtdC01XCIgKm5nRm9yPVwibGV0IG9iaiBvZiBpbWFnZXNBcnJheURhdGFcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJvYmouaW1hZ2VzLmVudHJ5VGltZUltYWdlXCIgY2xhc3M9XCJpbWctc3JjIGN1cnNvci1wb2ludGVyXCIgW3NyY109XCJvYmouaW1hZ2VzLmVudHJ5VGltZUltYWdlXCIgKGVycm9yKT1cIm9iaj8uaW1hZ2VzLmVudHJ5VGltZUltYWdlID0gbnVsbFwiIGFsdD1cIlwiIChjbGljayk9XCJpbWFnZVZpZXcob2JqLG9iakRhdGEuZm9vdGZhbGxEYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFvYmouaW1hZ2VzLmVudHJ5VGltZUltYWdlXCIgY2xhc3M9XCJuby1wcmV2aWV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYi01XCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjNcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjMgMjBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBpZD1cIkdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuNSA2LjMyMjI3SDYuNTFNMTYuMjUgOS4zMjIyN0gyMS41TDE4IDE2LjMyMjNMMTQuOTEgMTIuMDAyM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3Rvcl8yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xLjUgMTYuMzIyOUg1LjI2QzUuNjMyNzMgMTYuMzI1NSA1Ljk5ODc3IDE2LjIyMzkgNi4zMTY4MiAxNi4wMjk1QzYuNjM0ODcgMTUuODM1MiA2Ljg5MjI4IDE1LjU1NTggNy4wNiAxNS4yMjI5TDguNSAxMi4zMjI5TTEuNSAxOC4zMjI5VjE0LjMyMjlNMTcuNSA2LjgyMjkxTDEzLjUgMTQuODIyOUwzLjExIDkuNjIyOTFDMi40MjAzMyA5LjI3NTUzIDEuODk2MzUgOC42NjkxIDEuNjUyNzIgNy45MzYzMkMxLjQwOTA5IDcuMjAzNTQgMS40NjU2NCA2LjQwNDEgMS44MSA1LjcxMjkxTDMuMTkgMi45MjI5MUMzLjM2MiAyLjU4MDE0IDMuNTk5ODQgMi4yNzQ2IDMuODg5OTQgMi4wMjM3NUM0LjE4MDAzIDEuNzcyOSA0LjUxNjcgMS41ODE2NSA0Ljg4MDcyIDEuNDYwOTNDNS4yNDQ3NCAxLjM0MDIxIDUuNjI4OTcgMS4yOTIzOSA2LjAxMTQ3IDEuMzIwMThDNi4zOTM5OCAxLjM0Nzk3IDYuNzY3MjYgMS40NTA4NCA3LjExIDEuNjIyOTFMMTcuNSA2LjgyMjkxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlciBtYi01IHRleHQtY2VudGVyXCI+UHJldmlldyBub3QgYXZhaWxhYmxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGVzY3JpcHRpb24gbWItNSB0ZXh0LWNlbnRlclwiPlRoZSBzZWxlY3RlZCBjYW1lcmEgaXMgbm90IGF2YWlsYWJsZSBhdCB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgbW9tZW50Ljwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBweC0yIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTIgaW1nLWRvYy1kaXJlY3RvcnlcIj48c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LWluZm9cIj57e29iai50ZW1wSWR9fTwvc3Bhbj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuICpuZ0lmPVwic2VsZWN0Q29udHJvbC52YWx1ZSA9PT0nbWlzc2VkT3Bwb3J0dW5pdHknXCIgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1zdWNjZXNzIG1zLTJcIj5NaXNzZWQgT3Bwb3J0dW5pdHk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdENvbnRyb2wudmFsdWUgPT09J2JvdW5jZWQnXCIgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1zdWNjZXNzIG1zLTJcIj5Cb3VuY2VkIEZvb3RmYWxsPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwib2JqPy5yZXZvcHNUeXBlIHx8IHNlbGVjdENvbnRyb2wudmFsdWUgYXMgdmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWRnZSBtcy0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhZGdlLWxpZ2h0LXN1Y2Nlc3MnOiB2YWx1ZSA9PT0gJ2Zvb3RmYWxsJyB8fCB2YWx1ZSA9PT0gJ3B1cmNoYXNlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWRnZS1saWdodC13YXJuaW5nJzogdmFsdWUgPT09ICdub25TaG9wcGVyJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhZGdlLWxpZ2h0LWRhbmdlcic6IHZhbHVlID09PSAnYm91bmNlZCcgfHwgdmFsdWUgPT09ICdlbmdhZ2VyJyB8fCB2YWx1ZSA9PT0gJ21pc3NlZE9wcG9ydHVuaXR5JyB8fCB2YWx1ZSA9PT0gJ2NvbnZlcnNpb24nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtcHJpbWFyeSc6ICF2YWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID09PSAncHVyY2hhc2VyJyA/ICdQdXJjaGFzZXInIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gJ25vblNob3BwZXInID8gJ05vbiBTaG9wcGVyJyA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT09ICdtaXNzZWRPcHBvcnR1bml0eScgPyAnTWlzc2VkIE9wcG9ydHVuaXR5JyA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlIHwgdGl0bGVjYXNlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTIgaW1nLWRvYy10aW1lXCI+RW50cnkgVGltZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY2xpZW50RGF0YT8udHJhY2tlckZGXCIgY2xhc3M9XCJweS0yIGltZy1kb2MtdGltZVwiPkV4aXQgVGltZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY2xpZW50RGF0YT8udHJhY2tlckZGXCIgY2xhc3M9XCJweS0yIGltZy1kb2MtdGltZVwiPlRvdGFsIFRpbWUgU3BlbnQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgdGV4dC1lbmRcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAqbmdJZj1cIiFvYmo/LnJldm9wc1R5cGV8fG9iaj8ucmV2b3BzVHlwZT09PScnXCIgbmdiVG9vbHRpcD1cIllldCB0byB0YWcgdGhlIGN1c3RvbWVyXCIgKGNsaWNrKT1cInJldm9wVGFnZ2luZyhvYmopXCIgcGxhY2VtZW50PVwidG9wXCI+IDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTdcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTcgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTAzMzVfMjI4NTIpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOC4zNzMyOCAwLjAwMjAxNjA2QzcuMjA5MzIgLTAuMDIzMzE1IDYuMDUzODUgMC4yMDU3MTEgNC45ODc1NSAwLjY3MzEwNkMzLjkyMTI1IDEuMTQwNSAyLjk2OTgxIDEuODM1IDIuMTk5NjcgMi43MDgxMUMxLjQyOTUyIDMuNTgxMjMgMC44NTkyMjUgNC42MTE5MiAwLjUyODU5NiA1LjcyODIyQzAuMTk3OTY2IDYuODQ0NTMgMC4xMTQ5NzEgOC4wMTk1NSAwLjI4NTQwNCA5LjE3MTI0QzAuNDU1ODM3IDEwLjMyMjkgMC44NzU1OTEgMTEuNDIzNiAxLjUxNTM2IDEyLjM5NjNDMi4xNTUxMyAxMy4zNjkgMi45OTk1IDE0LjE5MDMgMy45ODk1MSAxNC44MDI5QzQuOTc5NTMgMTUuNDE1NiA2LjA5MTMzIDE1LjgwNDggNy4yNDczIDE1Ljk0MzNDOC40MDMyNiAxNi4wODE4IDkuNTc1NTQgMTUuOTY2NCAxMC42ODIzIDE1LjYwNUMxMC44NzE0IDE1LjU0MzIgMTEuMDI4MiAxNS40MDg4IDExLjExODIgMTUuMjMxNEMxMS4yMDgyIDE1LjA1NCAxMS4yMjQxIDE0Ljg0ODEgMTEuMTYyMyAxNC42NTlDMTEuMTAwNSAxNC40Njk5IDEwLjk2NjEgMTQuMzEzMSAxMC43ODg3IDE0LjIyMzFDMTAuNjExMyAxNC4xMzMxIDEwLjQwNTQgMTQuMTE3MiAxMC4yMTYzIDE0LjE3OUM5LjAxMzU5IDE0LjU3MTcgNy43MjI0MiAxNC42MDQ5IDYuNTAxMTQgMTQuMjc0NUM1LjI3OTg2IDEzLjk0NDEgNC4xODE1NSAxMy4yNjQ0IDMuMzQwOTIgMTIuMzE4OUMyLjUwMDI4IDExLjM3MzQgMS45NTM4NiAxMC4yMDMxIDEuNzY4NjcgOC45NTE1MUMxLjU4MzQ4IDcuNjk5OTUgMS43Njc1NyA2LjQyMTU1IDIuMjk4MzcgNS4yNzMwOUMyLjgyOTE2IDQuMTI0NjMgMy42ODM1OCAzLjE1NjA0IDQuNzU2ODQgMi40ODYxMUM1LjgzMDExIDEuODE2MTggNy4wNzU1NSAxLjQ3NDAzIDguMzQwNDQgMS41MDE2M0M5LjYwNTMzIDEuNTI5MjIgMTAuODM0NyAxLjkyNTM2IDExLjg3NzcgMi42NDE0N0MxMi45MjA3IDMuMzU3NTcgMTMuNzMyMSA0LjM2MjUgMTQuMjEyMyA1LjUzMzAyQzE0LjI4NzcgNS43MTcwOCAxNC40MzMyIDUuODYzNjIgMTQuNjE2NyA1Ljk0MDQyQzE0LjcwNzYgNS45Nzg0NSAxNC44MDUgNS45OTgyIDE0LjkwMzUgNS45OTg1NkMxNS4wMDIgNS45OTg5MiAxNS4wOTk2IDUuOTc5ODggMTUuMTkwOCA1Ljk0MjUyQzE1LjI4MTkgNS45MDUxNiAxNS4zNjQ4IDUuODUwMjEgMTUuNDM0NyA1Ljc4MDgyQzE1LjUwNDYgNS43MTE0MiAxNS41NjAyIDUuNjI4OTQgMTUuNTk4MiA1LjUzODA4QzE1LjYzNjIgNS40NDcyMSAxNS42NTYgNS4zNDk3NSAxNS42NTYzIDUuMjUxMjZDMTUuNjU2NyA1LjE1Mjc2IDE1LjYzNzYgNS4wNTUxNSAxNS42MDAzIDQuOTY0MDJDMTUuMDA5MyAzLjUyMzMxIDE0LjAxMDcgMi4yODYzOSAxMi43MjY5IDEuNDA0OThDMTEuNDQzMiAwLjUyMzU3MSA5LjkzMDEyIDAuMDM1OTgxNSA4LjM3MzI4IDAuMDAyMDE2MDZaTTguOTQ4MjggMy43NTAwMkM4Ljk0ODI4IDMuNTUxMSA4Ljg2OTI2IDMuMzYwMzQgOC43Mjg2MSAzLjIxOTY5QzguNTg3OTYgMy4wNzkwMyA4LjM5NzE5IDMuMDAwMDIgOC4xOTgyOCAzLjAwMDAyQzcuOTk5MzcgMy4wMDAwMiA3LjgwODYgMy4wNzkwMyA3LjY2Nzk1IDMuMjE5NjlDNy41MjczIDMuMzYwMzQgNy40NDgyOCAzLjU1MTEgNy40NDgyOCAzLjc1MDAyVjcuNjkwMDJMNS40MTQyOCA5LjcyMzAyQzUuMzQwNTkgOS43OTE2OCA1LjI4MTQ5IDkuODc0NDggNS4yNDA1IDkuOTY2NDhDNS4xOTk1MSAxMC4wNTg1IDUuMTc3NDYgMTAuMTU3OCA1LjE3NTY5IDEwLjI1ODVDNS4xNzM5MSAxMC4zNTkyIDUuMTkyNDQgMTAuNDU5MiA1LjIzMDE2IDEwLjU1MjZDNS4yNjc4OCAxMC42NDYgNS4zMjQwMiAxMC43MzA4IDUuMzk1MjQgMTAuODAyMUM1LjQ2NjQ2IDEwLjg3MzMgNS41NTEyOSAxMC45Mjk0IDUuNjQ0NjggMTAuOTY3MUM1LjczODA3IDExLjAwNDkgNS44MzgxIDExLjAyMzQgNS45Mzg4IDExLjAyMTZDNi4wMzk1MSAxMS4wMTk4IDYuMTM4ODIgMTAuOTk3OCA2LjIzMDgyIDEwLjk1NjhDNi4zMjI4MiAxMC45MTU4IDYuNDA1NjIgMTAuODU2NyA2LjQ3NDI4IDEwLjc4M0w4LjcyODI4IDguNTMwMDJMOC45NDgyOCA4LjMxMDAyVjMuNzUwMDJaTTE1LjE5ODMgMTVDMTUuMTk4MyAxNS4yNjUyIDE1LjA5MjkgMTUuNTE5NiAxNC45MDU0IDE1LjcwNzFDMTQuNzE3OSAxNS44OTQ3IDE0LjQ2MzUgMTYgMTQuMTk4MyAxNkMxMy45MzMxIDE2IDEzLjY3ODcgMTUuODk0NyAxMy40OTEyIDE1LjcwNzFDMTMuMzAzNiAxNS41MTk2IDEzLjE5ODMgMTUuMjY1MiAxMy4xOTgzIDE1QzEzLjE5ODMgMTQuNzM0OCAxMy4zMDM2IDE0LjQ4MDQgMTMuNDkxMiAxNC4yOTI5QzEzLjY3ODcgMTQuMTA1NCAxMy45MzMxIDE0IDE0LjE5ODMgMTRDMTQuNDYzNSAxNCAxNC43MTc5IDE0LjEwNTQgMTQuOTA1NCAxNC4yOTI5QzE1LjA5MjkgMTQuNDgwNCAxNS4xOTgzIDE0LjczNDggMTUuMTk4MyAxNVpNMTQuOTQ4MyA4Ljc1MDAyQzE0Ljk0ODMgOC41NTExIDE0Ljg2OTMgOC4zNjAzNCAxNC43Mjg2IDguMjE5NjlDMTQuNTg4IDguMDc5MDMgMTQuMzk3MiA4LjAwMDAyIDE0LjE5ODMgOC4wMDAwMkMxMy45OTk0IDguMDAwMDIgMTMuODA4NiA4LjA3OTAzIDEzLjY2OCA4LjIxOTY5QzEzLjUyNzMgOC4zNjAzNCAxMy40NDgzIDguNTUxMSAxMy40NDgzIDguNzUwMDJWMTIuMjVDMTMuNDQ4MyAxMi40NDg5IDEzLjUyNzMgMTIuNjM5NyAxMy42NjggMTIuNzgwM0MxMy44MDg2IDEyLjkyMSAxMy45OTk0IDEzIDE0LjE5ODMgMTNDMTQuMzk3MiAxMyAxNC41ODggMTIuOTIxIDE0LjcyODYgMTIuNzgwM0MxNC44NjkzIDEyLjYzOTcgMTQuOTQ4MyAxMi40NDg5IDE0Ljk0ODMgMTIuMjVWOC43NTAwMlpcIiBmaWxsPVwiI0Y3OTAwOVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xNS4xODU4IDQuMTAzNzlDMTUuMDk5NiAzLjk0OTA3IDE1LjAwODMgMy43OTc0NCAxNC45MTIxIDMuNjQ5MTFDMTQuNTc0NyAzLjEyODQzIDE0LjE3NzYgMi42NDg1NCAxMy43Mjg5IDIuMjE5MzJDMTMuNDE4NyAxLjkyMjU3IDEzLjA4MzkgMS42NTAwNCAxMi43MjY5IDEuNDA0OThDMTIuNzI2OSAxLjQwNDkzIDEyLjcyNyAxLjQwNTA0IDEyLjcyNjkgMS40MDQ5OEMxMi41MTQ0IDEuMjU5MDYgMTIuMjk1NCAxLjEyMzc5IDEyLjA3MTEgMC45OTk3MjlDMTEuODI1NSAwLjg2Mzg5MyAxMS41NzM0IDAuNzQxMzIyIDExLjMxNTkgMC42MzIzNzdDMTAuMzg4MiAwLjIzOTg3MyA5LjM5MDA2IDAuMDI0MTk5IDguMzczMjggMC4wMDIwMTYwNkM4LjM3MzI0IDAuMDAyMDE1MTggOC4zNzMzMiAwLjAwMjAxNjk0IDguMzczMjggMC4wMDIwMTYwNkM4LjMxNDk2IDAuMDAwNzQ3NzkgOC4yNTY1NSAwLjAwMDExNTM4NyA4LjE5ODI4IDAuMDAwMTIyMTI0QzcuMTI3NiAwLjAwMDI0NTkyIDYuMDY3NTQgMC4yMTUzMDQgNS4wODEwOCAwLjYzMjgxNkM1LjA0OTgzIDAuNjQ2MDQzIDUuMDE4NjUgMC42NTk0NzMgNC45ODc1NSAwLjY3MzEwNkM0Ljc2MTE1IDAuNzcyMzQzIDQuNTM5OTMgMC44ODE4MiA0LjMyNDUyIDEuMDAxMDdDNC4yMDIwMSAxLjA2ODg5IDQuMDgxMzkgMS4xMzk4NyAzLjk2Mjc1IDEuMjEzOTNDMy4zMDc1NiAxLjYyMjk2IDIuNzEzMjkgMi4xMjU4MSAyLjE5OTY3IDIuNzA4MTFDMS42ODYwMiAzLjI5MDQzIDEuMjYxMjcgMy45NDI4NSAwLjkzNzIzMiA0LjY0NEMwLjc3NTQxNSA0Ljk5NDE0IDAuNjM4NzEzIDUuMzU2NDMgMC41Mjg1OTYgNS43MjgyMkMwLjE5Nzk5IDYuODQ0NDUgMC4xMTQ5ODMgOC4wMTkzOCAwLjI4NTM2NiA5LjE3MDk5QzAuMjg1MzU0IDkuMTcwOTEgMC4yODUzNzkgOS4xNzEwOCAwLjI4NTM2NiA5LjE3MDk5QzAuNDU1OCAxMC4zMjI3IDAuODc1NTkxIDExLjQyMzYgMS41MTUzNiAxMi4zOTYzQzEuNzI4MzUgMTIuNzIwMSAxLjk2NDAyIDEzLjAyNzEgMi4yMjAxOSAxMy4zMTUzQzIuNzMzNDkgMTMuODkyNyAzLjMyOTA5IDE0LjM5NDMgMy45ODk1MSAxNC44MDI5QzQuNjQ5NjcgMTUuMjExNSA1LjM2Mzk4IDE1LjUyMDYgNi4xMDk0MyAxNS43MjI0QzYuNDgxOSAxNS44MjMyIDYuODYyMTUgMTUuODk3MSA3LjI0NzMgMTUuOTQzM0M3LjI5MTIzIDE1Ljk0ODYgNy4zMzUxOSAxNS45NTM1IDcuMzc5MTcgMTUuOTU4QzguMDE0OTIgMTYuMDIzNSA4LjY1NDY0IDE2LjAxMjQgOS4yODQ3OCAxNS45MjYxQzkuNTIxNDYgMTUuODkzNyA5Ljc1Njc4IDE1Ljg1MDcgOS45OTAwNCAxNS43OTcxQzEwLjIyMyAxNS43NDM2IDEwLjQ1MzkgMTUuNjc5NiAxMC42ODE5IDE1LjYwNTFDMTAuNjgxOCAxNS42MDUyIDEwLjY4MjEgMTUuNjA1MSAxMC42ODE5IDE1LjYwNTFDMTAuNzE5NiAxNS41OTI4IDEwLjc1NjMgMTUuNTc3NSAxMC43OTExIDE1LjU1OTdDMTAuOTMxMiAxNS40ODggMTEuMDQ2MSAxNS4zNzM1IDExLjExODIgMTUuMjMxNEMxMS4xNTU0IDE1LjE1ODEgMTEuMTggMTUuMDc5OSAxMS4xOTE2IDE1QzExLjIwODEgMTQuODg2NyAxMS4xOTg1IDE0Ljc3IDExLjE2MjMgMTQuNjU5QzExLjEwMDUgMTQuNDY5OSAxMC45NjYxIDE0LjMxMzEgMTAuNzg4NyAxNC4yMjMxQzEwLjYxMTQgMTQuMTMzMSAxMC40MDU2IDE0LjExNzIgMTAuMjE2NiAxNC4xNzg5QzEwLjIxNjUgMTQuMTc4OSAxMC4yMTY4IDE0LjE3ODkgMTAuMjE2NiAxNC4xNzg5QzEwLjExMjEgMTQuMjEzIDEwLjAwNjUgMTQuMjQ0NiA5LjkwMDczIDE0LjI3MzNDOS43NDg0OCAxNC4zMTQ2IDkuNTk1MDYgMTQuMzUwMyA5LjQ0MDc4IDE0LjM4MDNDOS4zNzE0NiAxNC4zOTM4IDkuMzAxOTYgMTQuNDA2MiA5LjIzMjMzIDE0LjQxNzRDOC44NTQ4IDE0LjQ3ODIgOC40NzMwMiAxNC41MDU1IDguMDkxNDQgMTQuNDk5MkM3Ljk5NTY4IDE0LjQ5NzYgNy44OTk5MiAxNC40OTM5IDcuODA0MjYgMTQuNDg4MUM3LjY3NzkgMTQuNDgwNCA3LjU1MTY4IDE0LjQ2OTEgNy40MjU3OCAxNC40NTRDNy4zNjEzMyAxNC40NDYzIDcuMjk2OTYgMTQuNDM3NiA3LjIzMjY5IDE0LjQyNzlDNi45ODY5MyAxNC4zOTEgNi43NDI2NyAxNC4zMzk5IDYuNTAxMTQgMTQuMjc0NUM2LjMyOTMzIDE0LjIyOCA2LjE1OTk1IDE0LjE3NDYgNS45OTMzNyAxNC4xMTQ2QzUuNTY4MDkgMTMuOTYxMiA1LjE2MTEyIDEzLjc2NDIgNC43Nzg3IDEzLjUyNzZDNC43MzM3MyAxMy40OTk4IDQuNjg5MTEgMTMuNDcxNCA0LjY0NDgzIDEzLjQ0MjVDNC4yNzAwMyAxMy4xOTc4IDMuOTIwMjggMTIuOTE0MiAzLjYwMTc0IDEyLjU5NTZDMy41MTIyOSAxMi41MDYxIDMuNDI1MzEgMTIuNDEzOCAzLjM0MDkyIDEyLjMxODlDMy4xMzEzOSAxMi4wODMyIDIuOTQwMTQgMTEuODMzNiAyLjc2ODIxIDExLjU3MjJDMi43NjM4NSAxMS41NjU2IDIuNzU5NSAxMS41NTkgMi43NTUxNiAxMS41NTIzQzIuNDc5NjQgMTEuMTMwMSAyLjI1NDM3IDEwLjY3NzUgMi4wODM2OCAxMC4yMDM5QzEuOTM4MDcgOS43OTk5MyAxLjgzMjE4IDkuMzgwNjEgMS43Njg3MSA4Ljk1MTc0QzEuNzY4NjkgOC45NTE2NiAxLjc2ODcyIDguOTUxODIgMS43Njg3MSA4Ljk1MTc0QzEuNzQxMjUgOC43NjYyMSAxLjcyMTg4IDguNTc5ODYgMS43MTA1OSA4LjM5MzY3QzEuNzA0NzEgOC4yOTY4MyAxLjcwMTAxIDguMTk5OTggMS42OTk0OCA4LjEwMzE3QzEuNjg5MDIgNy40NDM1NSAxLjc3OTA1IDYuNzg2MjYgMS45NjYzMSA2LjE1NDA1QzIuMDU1MiA1Ljg1Mzk0IDIuMTY2MDEgNS41NTk0NyAyLjI5ODM3IDUuMjczMDlDMi41NjM3OCA0LjY5ODgzIDIuOTEwMTEgNC4xNjk1NCAzLjMyNDI1IDMuNzAwMDdDMy4zNjYxOCAzLjY1MjU0IDMuNDA4OCAzLjYwNTYzIDMuNDUyMSAzLjU1OTM0QzMuODM2NDkgMy4xNDg0OCA0LjI3NDU4IDIuNzg3MTQgNC43NTY4NCAyLjQ4NjExQzUuMDI0NTIgMi4zMTkwMyA1LjMwMjkxIDIuMTcyMzMgNS41ODk2MyAyLjA0NjY4QzUuODA0NzEgMS45NTI0MiA2LjAyNDQ5IDEuODcgNi4yNDc5NiAxLjc5OTdDNi44NzYyOCAxLjYwMjAyIDcuNTMzOCAxLjUwMDEyIDguMTk4MjggMS41MDAwOEM4LjI0NTYzIDEuNTAwMDggOC4yOTMwMiAxLjUwMDU5IDguMzQwNDQgMS41MDE2M0M4Ljk1NzQ1IDEuNTE1MTEgOS41NjYyIDEuNjE2MjkgMTAuMTQ4OCAxLjc5OTUyQzEwLjc2MDUgMS45OTE4OSAxMS4zNDM1IDIuMjc0NzIgMTEuODc3NyAyLjY0MTQ3QzExLjg3NzYgMi42NDE0MiAxMS44Nzc4IDIuNjQxNTEgMTEuODc3NyAyLjY0MTQ3QzEyLjA4MzkgMi43ODMwNCAxMi4yODEyIDIuOTM2MDMgMTIuNDY4NSAzLjA5OTIyQzEyLjYzNTEgMy4yNDQzNiAxMi43OTM5IDMuMzk3NjcgMTIuOTQ0NCAzLjU1ODQ4QzEzLjA5NzQgMy43MjE5NyAxMy4yNDE5IDMuODkzMjIgMTMuMzc3MSA0LjA3MTUyQzEzLjU1NTUgNC4zMDY2IDEzLjcxNzkgNC41NTM5NSAxMy44NjMxIDQuODExOTVDMTMuOTQyNyA0Ljk1MzM2IDE0LjAxNzEgNS4wOTc5OCAxNC4wODYxIDUuMjQ1NTJDMTQuMTI1MyA1LjMyOTE0IDE0LjE2MjcgNS40MTM3MSAxNC4xOTgzIDUuNDk5MTZDMTQuMjAzIDUuNTEwNDMgMTQuMjA3NiA1LjUyMTcyIDE0LjIxMjMgNS41MzMwMkMxNC4yMTIyIDUuNTMyOTIgMTQuMjEyMyA1LjUzMzEyIDE0LjIxMjMgNS41MzMwMkMxNC4yODc4IDUuNzE2OTMgMTQuNDMzMyA1Ljg2MzY3IDE0LjYxNjcgNS45NDA0MkMxNC43MDc2IDUuOTc4NDUgMTQuODA1IDUuOTk4MiAxNC45MDM1IDUuOTk4NTZDMTUuMDAyIDUuOTk4OTIgMTUuMDk5NiA1Ljk3OTg4IDE1LjE5MDggNS45NDI1MkMxNS4yODE5IDUuOTA1MTYgMTUuMzY0OCA1Ljg1MDIxIDE1LjQzNDcgNS43ODA4MkMxNS41MDQ2IDUuNzExNDIgMTUuNTYwMiA1LjYyODk0IDE1LjU5ODIgNS41MzgwOEMxNS42MzYyIDUuNDQ3MjIgMTUuNjU2IDUuMzQ5NzUgMTUuNjU2MyA1LjI1MTI2QzE1LjY1NjcgNS4xNTI3NiAxNS42Mzc2IDUuMDU1MTYgMTUuNjAwMyA0Ljk2NDAyQzE1LjYwMDIgNC45NjM5IDE1LjYwMDMgNC45NjQxNCAxNS42MDAzIDQuOTY0MDJDMTUuNTA5MSA0Ljc0MTg3IDE1LjQwODIgNC41MjQyIDE1LjI5ODEgNC4zMTIyOUMxNS4yNjE3IDQuMjQyMiAxNS4yMjQyIDQuMTcyNjkgMTUuMTg1OCA0LjEwMzc5Wk04Ljk0ODI4IDMuNzUwMDJDOC45NDgyOCAzLjU1MTEgOC44NjkyNiAzLjM2MDM0IDguNzI4NjEgMy4yMTk2OUM4LjYxNDA1IDMuMTA1MTIgOC40NjYyNCAzLjAzMTQ1IDguMzA3ODYgMy4wMDgwNkM4LjI3MTg4IDMuMDAyNzYgOC4yMzUwOCAzLjAwMDAyIDguMTk4MjggMy4wMDAwMkM3Ljk5OTM3IDMuMDAwMDIgNy44MDg2IDMuMDc5MDMgNy42Njc5NSAzLjIxOTY5QzcuNTI3MyAzLjM2MDM0IDcuNDQ4MjggMy41NTExIDcuNDQ4MjggMy43NTAwMlY3LjY5MDAyTDUuNDE0NTIgOS43MjI3OEM1LjQwMTU5IDkuNzM0ODMgNS4zODg4NyA5Ljc0NzU1IDUuMzc2ODYgOS43NjA0NEM1LjMyMDQxIDkuODIxMDIgNS4yNzQzIDkuODkwNjIgNS4yNDA1IDkuOTY2NDhDNS4xOTk1MSAxMC4wNTg1IDUuMTc3NDYgMTAuMTU3OCA1LjE3NTY5IDEwLjI1ODVDNS4xNzM5MSAxMC4zNTkyIDUuMTkyNDQgMTAuNDU5MiA1LjIzMDE2IDEwLjU1MjZDNS4yMzg2MyAxMC41NzM2IDUuMjQ4MDQgMTAuNTk0MiA1LjI1ODM0IDEwLjYxNDJDNS4yOTM4NyAxMC42ODM0IDUuMzQwMDIgMTAuNzQ2OCA1LjM5NTI0IDEwLjgwMjFDNS40NjY0NiAxMC44NzMzIDUuNTUxMjkgMTAuOTI5NCA1LjY0NDY4IDEwLjk2NzFDNS43MzgwNyAxMS4wMDQ5IDUuODM4MSAxMS4wMjM0IDUuOTM4OCAxMS4wMjE2QzYuMDM5NTEgMTEuMDE5OCA2LjEzODgyIDEwLjk5NzggNi4yMzA4MiAxMC45NTY4QzYuMzA2NjggMTAuOTIzIDYuMzc2MjggMTAuODc2OSA2LjQzNjg2IDEwLjgyMDRDNi40NDk2NiAxMC44MDg1IDYuNDYyMDYgMTAuNzk2MSA2LjQ3NDAzIDEwLjc4MzNDNi40NzM5NSAxMC43ODM0IDYuNDc0MTEgMTAuNzgzMiA2LjQ3NDAzIDEwLjc4MzNMOC45NDgyOCA4LjMxMDAyVjMuNzUwMDJaTTEzLjQ0ODMgMTIuMjVDMTMuNDQ4MyAxMi40NDg5IDEzLjUyNzMgMTIuNjM5NyAxMy42NjggMTIuNzgwM0MxMy44MDg2IDEyLjkyMSAxMy45OTk0IDEzIDE0LjE5ODMgMTNDMTQuMzg5NSAxMyAxNC41NzMyIDEyLjkyNyAxNC43MTIxIDEyLjc5NjNDMTQuNzE3NyAxMi43OTExIDE0LjcyMzIgMTIuNzg1OCAxNC43Mjg2IDEyLjc4MDNDMTQuODY5MyAxMi42Mzk3IDE0Ljk0ODMgMTIuNDQ4OSAxNC45NDgzIDEyLjI1VjEwLjA1NjZDMTQuNzAxNSAxMC4wMTkxIDE0LjQ1MDkgMTAgMTQuMTk4MyAxMEMxMy45NDU3IDEwIDEzLjY5NSAxMC4wMTkxIDEzLjQ0ODMgMTAuMDU2NlYxMi4yNVpNMTMuNDQ4MyA5Ljc2OTI3QzEzLjY5MzIgOS44NDgyOCAxMy45NDQxIDkuOTA3MTkgMTQuMTk4MyA5Ljk0NTUxQzE0LjQyNjQgOS45Nzk4OSAxNC42NTcyIDkuOTk3NjkgMTQuODg4OSA5Ljk5ODU0QzE0LjkwODcgOS45OTg2MSAxNC45Mjg1IDkuOTk4NTYgMTQuOTQ4MyA5Ljk5ODM4VjguNzUwMDJDMTQuOTQ4MyA4LjY1MzU2IDE0LjkyOTcgOC41NTkwMSAxNC44OTQ1IDguNDcxMTdDMTQuODU3MSA4LjM3Nzg3IDE0LjgwMTEgOC4yOTIxMyAxNC43Mjg2IDguMjE5NjlDMTQuNTg4IDguMDc5MDQgMTQuMzk3MiA4LjAwMDAyIDE0LjE5ODMgOC4wMDAwMkMxMy45OTk0IDguMDAwMDIgMTMuODA4NiA4LjA3OTA0IDEzLjY2OCA4LjIxOTY5QzEzLjY2NSA4LjIyMjY4IDEzLjY2MiA4LjIyNTY5IDEzLjY1OTEgOC4yMjg3MkMxMy41MjgyIDguMzY0MSAxMy40NTMgOC41NDM3NiAxMy40NDg1IDguNzMxODhDMTMuNDQ4NCA4LjczNzkyIDEzLjQ0ODMgOC43NDM5NyAxMy40NDgzIDguNzUwMDJWOS43NjkyN1pNMTUuMTk2MyAxNS4wNjI2QzE1LjE5NzYgMTUuMDQxOCAxNS4xOTgzIDE1LjAyMDkgMTUuMTk4MyAxNUMxNS4xOTgzIDE0Ljk5ODQgMTUuMTk4MyAxNC45OTY4IDE1LjE5ODMgMTQuOTk1MUMxNS4xOTcgMTQuNzMxNyAxNS4wOTE4IDE0LjQ3OTMgMTQuOTA1NCAxNC4yOTI5QzE0LjcxNzggMTQuMTA1NCAxNC40NjM1IDE0IDE0LjE5ODMgMTRDMTMuOTMzMSAxNCAxMy42Nzg3IDE0LjEwNTQgMTMuNDkxMiAxNC4yOTI5QzEzLjMwMzYgMTQuNDgwNCAxMy4xOTgzIDE0LjczNDggMTMuMTk4MyAxNUMxMy4xOTgzIDE1LjI2NTIgMTMuMzAzNiAxNS41MTk2IDEzLjQ5MTIgMTUuNzA3MUMxMy42Nzg3IDE1Ljg5NDcgMTMuOTMzMSAxNiAxNC4xOTgzIDE2QzE0LjQ2MzUgMTYgMTQuNzE3OCAxNS44OTQ3IDE0LjkwNTQgMTUuNzA3MUMxNS4wNzgxIDE1LjUzNDQgMTUuMTgxMSAxNS4zMDUgMTUuMTk2MyAxNS4wNjI2WlwiIGZpbGw9XCIjRjc5MDA5XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzEwMzM1XzIyODUyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLjE5OTIxOSlcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiICpuZ0lmPVwib2JqPy5yZXZvcHNUeXBlJiZvYmo/LnJldm9wc1R5cGUhPT0nJ1wiICAoY2xpY2spPVwicmV2b3BUYWdnaW5nKG9iailcIiBuZ2JUb29sdGlwPVwiQ3VzdG9tZXIgVGFnZ2luZyBpcyBEb25lXCIgIHBsYWNlbWVudD1cInRvcFwiPiA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE3XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE3IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzEwMzM1XzIyODU2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNS4wNjM4IDcuMzg2NjJWNy45OTk5NUMxNS4wNjMgOS40Mzc1NiAxNC41OTc1IDEwLjgzNjQgMTMuNzM2NyAxMS45ODc4QzEyLjg3NTkgMTMuMTM5MyAxMS42NjYgMTMuOTgxNiAxMC4yODc0IDE0LjM4OTJDOC45MDg3NiAxNC43OTY4IDcuNDM1MzEgMTQuNzQ3OSA2LjA4Njc4IDE0LjI0OTdDNC43MzgyNiAxMy43NTE1IDMuNTg2OTEgMTIuODMwNyAyLjgwNDQ0IDExLjYyNDdDMi4wMjE5OCAxMC40MTg2IDEuNjUwMzMgOC45OTE5OSAxLjc0NDkyIDcuNTU3NDlDMS44Mzk1MSA2LjEyMjk5IDIuMzk1MjcgNC43NTc1IDMuMzI5MzIgMy42NjQ2N0M0LjI2MzM3IDIuNTcxODMgNS41MjU2NiAxLjgxMDIxIDYuOTI3OTMgMS40OTMzOEM4LjMzMDIgMS4xNzY1NiA5Ljc5NzMxIDEuMzIxNTEgMTEuMTEwNSAxLjkwNjYyTTE1LjA2MzggMi42NjY2Mkw4LjM5NzE0IDkuMzM5OTVMNi4zOTcxNCA3LjMzOTk1XCIgc3Ryb2tlPVwiIzEyQjc2QVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xMDMzNV8yMjg1NlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMC4zOTg0MzgpXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMiBpbWctZG9jLXZhbHVlXCI+e3tvYmoudGltZVNwZW50LmVudHJ5VGltZX19IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY2xpZW50RGF0YT8udHJhY2tlckZGXCIgY2xhc3M9XCJweS0yIGltZy1kb2MtdmFsdWVcIj57e29iai50aW1lU3BlbnQuZXhpdFRpbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY2xpZW50RGF0YT8udHJhY2tlckZGXCIgY2xhc3M9XCJweS0yIGltZy1kb2MtdmFsdWVcIj57e29iai50aW1lU3BlbnQudG90YWxUaW1lU3BlbnR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICBcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgPHNlY3Rpb24gKm5nSWY9XCJpbWFnZUZsb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXNocmluay0wIG10LTMganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIHB4LTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiYmFja1RvVmlldygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzI1ODVfNzAzNilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIxXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgcng9XCI4XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMi41XCIgeT1cIjEuNVwiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNS44MzI3IDE5SDE0LjE2Nk0xNC4xNjYgMTlMMTkuOTk5MyAyNC44MzM0TTE0LjE2NiAxOUwxOS45OTkzIDEzLjE2NjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzI1ODVfNzAzNlwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0IGR5PVwiMVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIxXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9XCIwIDAgMCAwIDAuMDYyNzQ1MSAwIDAgMCAwIDAuMDk0MTE3NiAwIDAgMCAwIDAuMTU2ODYzIDAgMCAwIDAuMDUgMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzI1ODVfNzAzNlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjU4NV83MDM2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD1cInNoYXBlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBweS0yIGltZy1kb2MtZGlyZWN0b3J5XCI+PHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1pbmZvXCI+e3tJbWFnZWRhdGEudGVtcElkfX08L3NwYW4+IFxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJJbWFnZWRhdGE/LnJldm9wc1R5cGUgfHwgc2VsZWN0Q29udHJvbC52YWx1ZSBhcyB2YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWRnZSBtcy0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWRnZS1saWdodC1zdWNjZXNzJzogdmFsdWUgPT09ICdmb290ZmFsbCcgfHwgdmFsdWUgPT09ICdwdXJjaGFzZXInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWRnZS1saWdodC13YXJuaW5nJzogdmFsdWUgPT09ICdub25TaG9wcGVyJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtZGFuZ2VyJzogdmFsdWUgPT09ICdib3VuY2VkJyB8fCB2YWx1ZSA9PT0gJ2VuZ2FnZXInIHx8IHZhbHVlID09PSAnbWlzc2VkT3Bwb3J0dW5pdHknIHx8IHZhbHVlID09PSAnY29udmVyc2lvbidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gJ3B1cmNoYXNlcicgPyAnUHVyY2hhc2VyJyA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gJ25vblNob3BwZXInID8gJ05vbiBTaG9wcGVyJyA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gJ21pc3NlZE9wcG9ydHVuaXR5JyA/ICdNaXNzZWQgT3Bwb3J0dW5pdHknIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSB8IHRpdGxlY2FzZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiBbbmdDbGFzc109XCJ7ICdjdXJzb3Itbm90LWFsbG93ZWQgb3BhY2l0eS01MCc6IGlzRmlyc3RJbWFnZSgpIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUucG9pbnRlci1ldmVudHNdPVwiaXNGaXJzdEltYWdlKCkgPyAnbm9uZScgOiAnYXV0bydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiIWlzRmlyc3RJbWFnZSgpICYmIHByZXZpb3VzKClcIiA+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0wLjUgOEMwLjUgMy44NTc4NiAzLjg1Nzg2IDAuNSA4IDAuNUgzOS41VjM5LjVIOEMzLjg1Nzg2IDM5LjUgMC41IDM2LjE0MjEgMC41IDMyVjhaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTAuNSA4QzAuNSAzLjg1Nzg2IDMuODU3ODYgMC41IDggMC41SDM5LjVWMzkuNUg4QzMuODU3ODYgMzkuNSAwLjUgMzYuMTQyMSAwLjUgMzJWOFpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjRDBENUREXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIyLjUgMjVMMTcuNSAyMEwyMi41IDE1XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgW25nQ2xhc3NdPVwieyAnY3Vyc29yLW5vdC1hbGxvd2VkIG9wYWNpdHktNTAnOiBpc0xhc3RJbWFnZSgpIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUucG9pbnRlci1ldmVudHNdPVwiaXNMYXN0SW1hZ2UoKSA/ICdub25lJyA6ICdhdXRvJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIhaXNMYXN0SW1hZ2UoKSAmJiBuZXh0KClcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiB2aWV3Qm94PVwiMCAwIDQwIDQwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTAuNSAwLjVIMzJDMzYuMTQyMSAwLjUgMzkuNSAzLjg1Nzg2IDM5LjUgOFYzMkMzOS41IDM2LjE0MjEgMzYuMTQyMSAzOS41IDMyIDM5LjVIMC41VjAuNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMC41IDAuNUgzMkMzNi4xNDIxIDAuNSAzOS41IDMuODU3ODYgMzkuNSA4VjMyQzM5LjUgMzYuMTQyMSAzNi4xNDIxIDM5LjUgMzIgMzkuNUgwLjVWMC41WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiNEMEQ1RERcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTcuNSAyNUwyMi41IDIwTDE3LjUgMTVcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgY29udGFpbiBtdC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgY29sLWxnLTYgY29sLXhsLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIGNsYXNzPVwiaW1nLXNyYzFcIiBbc3JjXT1cIkltYWdlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cIkltYWdlcyA9IG51bGxcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhSW1hZ2VzXCIgY2xhc3M9XCJuby1wcmV2aWV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyM1wiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMyAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgaWQ9XCJHcm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXCIgZD1cIk02LjUgNi4zMjIyN0g2LjUxTTE2LjI1IDkuMzIyMjdIMjEuNUwxOCAxNi4zMjIzTDE0LjkxIDEyLjAwMjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JfMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMS41IDE2LjMyMjlINS4yNkM1LjYzMjczIDE2LjMyNTUgNS45OTg3NyAxNi4yMjM5IDYuMzE2ODIgMTYuMDI5NUM2LjYzNDg3IDE1LjgzNTIgNi44OTIyOCAxNS41NTU4IDcuMDYgMTUuMjIyOUw4LjUgMTIuMzIyOU0xLjUgMTguMzIyOVYxNC4zMjI5TTE3LjUgNi44MjI5MUwxMy41IDE0LjgyMjlMMy4xMSA5LjYyMjkxQzIuNDIwMzMgOS4yNzU1MyAxLjg5NjM1IDguNjY5MSAxLjY1MjcyIDcuOTM2MzJDMS40MDkwOSA3LjIwMzU0IDEuNDY1NjQgNi40MDQxIDEuODEgNS43MTI5MUwzLjE5IDIuOTIyOTFDMy4zNjIgMi41ODAxNCAzLjU5OTg0IDIuMjc0NiAzLjg4OTk0IDIuMDIzNzVDNC4xODAwMyAxLjc3MjkgNC41MTY3IDEuNTgxNjUgNC44ODA3MiAxLjQ2MDkzQzUuMjQ0NzQgMS4zNDAyMSA1LjYyODk3IDEuMjkyMzkgNi4wMTE0NyAxLjMyMDE4QzYuMzkzOTggMS4zNDc5NyA2Ljc2NzI2IDEuNDUwODQgNy4xMSAxLjYyMjkxTDE3LjUgNi44MjI5MVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkZXIgbWItNSB0ZXh0LWNlbnRlclwiPlByZXZpZXcgbm90IGF2YWlsYWJsZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRlc2NyaXB0aW9uIG1iLTUgdGV4dC1jZW50ZXJcIj5UaGUgc2VsZWN0ZWQgY2FtZXJhIGlzIG5vdCBhdmFpbGFibGUgYXQgdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbWVudC48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHNsaWRlciBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00XCIgKm5nSWY9XCJJbWFnZWRhdGE/LmltYWdlcz8uZW50cnlUaW1lSW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTUgIGJvcmRlci0yXCIgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1ncmF5LWFjdGl2ZSc6IEltYWdlcyA9PT0gSW1hZ2VkYXRhPy5pbWFnZXM/LmVudHJ5VGltZUltYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1ncmF5JzogSW1hZ2VzICE9PSBJbWFnZWRhdGE/LmltYWdlcz8uZW50cnlUaW1lSW1hZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PkVudHJ5IFRpbWU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciB3LTEwMCByb3VuZGVkLTIgbWgtMTAwcHggcGItMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJJbWFnZWRhdGE/LmltYWdlcz8uZW50cnlUaW1lSW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJJbWFnZWRhdGE/LmltYWdlcy5lbnRyeVRpbWVJbWFnZSA9IG51bGxcIiBhbHQ9XCJcIiAoY2xpY2spPVwiaW1hZ2VEYXRhKCdlbnRyeScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIUltYWdlZGF0YT8uaW1hZ2VzPy5lbnRyeVRpbWVJbWFnZVwiIGNsYXNzPVwibm8tcHJldmlldy1zbSBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjNcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjMgMjBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBpZD1cIkdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuNSA2LjMyMjI3SDYuNTFNMTYuMjUgOS4zMjIyN0gyMS41TDE4IDE2LjMyMjNMMTQuOTEgMTIuMDAyM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3Rvcl8yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xLjUgMTYuMzIyOUg1LjI2QzUuNjMyNzMgMTYuMzI1NSA1Ljk5ODc3IDE2LjIyMzkgNi4zMTY4MiAxNi4wMjk1QzYuNjM0ODcgMTUuODM1MiA2Ljg5MjI4IDE1LjU1NTggNy4wNiAxNS4yMjI5TDguNSAxMi4zMjI5TTEuNSAxOC4zMjI5VjE0LjMyMjlNMTcuNSA2LjgyMjkxTDEzLjUgMTQuODIyOUwzLjExIDkuNjIyOTFDMi40MjAzMyA5LjI3NTUzIDEuODk2MzUgOC42NjkxIDEuNjUyNzIgNy45MzYzMkMxLjQwOTA5IDcuMjAzNTQgMS40NjU2NCA2LjQwNDEgMS44MSA1LjcxMjkxTDMuMTkgMi45MjI5MUMzLjM2MiAyLjU4MDE0IDMuNTk5ODQgMi4yNzQ2IDMuODg5OTQgMi4wMjM3NUM0LjE4MDAzIDEuNzcyOSA0LjUxNjcgMS41ODE2NSA0Ljg4MDcyIDEuNDYwOTNDNS4yNDQ3NCAxLjM0MDIxIDUuNjI4OTcgMS4yOTIzOSA2LjAxMTQ3IDEuMzIwMThDNi4zOTM5OCAxLjM0Nzk3IDYuNzY3MjYgMS40NTA4NCA3LjExIDEuNjIyOTFMMTcuNSA2LjgyMjkxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlciBtYi0yIHRleHQtY2VudGVyXCI+UHJldmlldyBub3QgYXZhaWxhYmxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGVzY3JpcHRpb24gbWItMiB0ZXh0LWNlbnRlclwiPlRoZSBzZWxlY3RlZCBjYW1lcmEgaXMgbm90IGF2YWlsYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9tZW50Ljwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTRcIiAqbmdJZj1cIkltYWdlZGF0YT8uaW1hZ2VzPy5zdGFmZkVuZ2FnZW1lbnRJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNSBib3JkZXItMlwiIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItZ3JheS1hY3RpdmUnOiBJbWFnZXMgPT09IEltYWdlZGF0YT8uaW1hZ2VzPy5zdGFmZkVuZ2FnZW1lbnRJbWFnZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItZ3JheSc6IEltYWdlcyAhPT0gSW1hZ2VkYXRhPy5pbWFnZXM/LnN0YWZmRW5nYWdlbWVudEltYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5TdGFmZiBFbmdhZ2VtZW50PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgdy0xMDAgcm91bmRlZC0yIG1oLTEwMHB4IHBiLTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiSW1hZ2VkYXRhPy5pbWFnZXM/LnN0YWZmRW5nYWdlbWVudEltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IpPVwiSW1hZ2VkYXRhPy5pbWFnZXMuc3RhZmZFbmdhZ2VtZW50SW1hZ2UgPSBudWxsXCIgYWx0PVwiXCIgKGNsaWNrKT1cImltYWdlRGF0YSgnc3RhZmYnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFJbWFnZWRhdGE/LmltYWdlcz8uc3RhZmZFbmdhZ2VtZW50SW1hZ2VcIiBjbGFzcz1cIm5vLXByZXZpZXctc20gY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjIzXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIzIDIwXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgaWQ9XCJHcm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjUgNi4zMjIyN0g2LjUxTTE2LjI1IDkuMzIyMjdIMjEuNUwxOCAxNi4zMjIzTDE0LjkxIDEyLjAwMjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JfMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMS41IDE2LjMyMjlINS4yNkM1LjYzMjczIDE2LjMyNTUgNS45OTg3NyAxNi4yMjM5IDYuMzE2ODIgMTYuMDI5NUM2LjYzNDg3IDE1LjgzNTIgNi44OTIyOCAxNS41NTU4IDcuMDYgMTUuMjIyOUw4LjUgMTIuMzIyOU0xLjUgMTguMzIyOVYxNC4zMjI5TTE3LjUgNi44MjI5MUwxMy41IDE0LjgyMjlMMy4xMSA5LjYyMjkxQzIuNDIwMzMgOS4yNzU1MyAxLjg5NjM1IDguNjY5MSAxLjY1MjcyIDcuOTM2MzJDMS40MDkwOSA3LjIwMzU0IDEuNDY1NjQgNi40MDQxIDEuODEgNS43MTI5MUwzLjE5IDIuOTIyOTFDMy4zNjIgMi41ODAxNCAzLjU5OTg0IDIuMjc0NiAzLjg4OTk0IDIuMDIzNzVDNC4xODAwMyAxLjc3MjkgNC41MTY3IDEuNTgxNjUgNC44ODA3MiAxLjQ2MDkzQzUuMjQ0NzQgMS4zNDAyMSA1LjYyODk3IDEuMjkyMzkgNi4wMTE0NyAxLjMyMDE4QzYuMzkzOTggMS4zNDc5NyA2Ljc2NzI2IDEuNDUwODQgNy4xMSAxLjYyMjkxTDE3LjUgNi44MjI5MVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkZXIgbWItMiB0ZXh0LWNlbnRlclwiPlByZXZpZXcgbm90IGF2YWlsYWJsZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRlc2NyaXB0aW9uIG1iLTIgdGV4dC1jZW50ZXJcIj5UaGUgc2VsZWN0ZWQgY2FtZXJhIGlzIG5vdCBhdmFpbGFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbWVudC48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAgY2xhc3M9XCJjb2wtNCBcIiAqbmdJZj1cIkltYWdlZGF0YT8uaW1hZ2VzPy5leGl0VGltZUltYWdlICYmIHRoaXMuY2xpZW50RGF0YS50cmFja2VyRkZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTUgIGJvcmRlci0yXCIgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1ncmF5LWFjdGl2ZSc6IEltYWdlcyA9PT0gSW1hZ2VkYXRhPy5pbWFnZXM/LmV4aXRUaW1lSW1hZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYm9yZGVyLWdyYXknOiBJbWFnZXMgIT09IEltYWdlZGF0YT8uaW1hZ2VzPy5leGl0VGltZUltYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5FeGl0IFRpbWU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciB3LTEwMCByb3VuZGVkLTIgbWgtMTAwcHggcGItMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJJbWFnZWRhdGE/LmltYWdlcz8uZXhpdFRpbWVJbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cIkltYWdlZGF0YT8uaW1hZ2VzLmV4aXRUaW1lSW1hZ2UgPSBudWxsXCIgYWx0PVwiXCIgKGNsaWNrKT1cImltYWdlRGF0YSgnZXhpdCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIUltYWdlZGF0YT8uaW1hZ2VzPy5leGl0VGltZUltYWdlXCIgY2xhc3M9XCJuby1wcmV2aWV3LXNtIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyM1wiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMyAyMFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPVwiR3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3RvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi41IDYuMzIyMjdINi41MU0xNi4yNSA5LjMyMjI3SDIxLjVMMTggMTYuMzIyM0wxNC45MSAxMi4wMDIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEuNSAxNi4zMjI5SDUuMjZDNS42MzI3MyAxNi4zMjU1IDUuOTk4NzcgMTYuMjIzOSA2LjMxNjgyIDE2LjAyOTVDNi42MzQ4NyAxNS44MzUyIDYuODkyMjggMTUuNTU1OCA3LjA2IDE1LjIyMjlMOC41IDEyLjMyMjlNMS41IDE4LjMyMjlWMTQuMzIyOU0xNy41IDYuODIyOTFMMTMuNSAxNC44MjI5TDMuMTEgOS42MjI5MUMyLjQyMDMzIDkuMjc1NTMgMS44OTYzNSA4LjY2OTEgMS42NTI3MiA3LjkzNjMyQzEuNDA5MDkgNy4yMDM1NCAxLjQ2NTY0IDYuNDA0MSAxLjgxIDUuNzEyOTFMMy4xOSAyLjkyMjkxQzMuMzYyIDIuNTgwMTQgMy41OTk4NCAyLjI3NDYgMy44ODk5NCAyLjAyMzc1QzQuMTgwMDMgMS43NzI5IDQuNTE2NyAxLjU4MTY1IDQuODgwNzIgMS40NjA5M0M1LjI0NDc0IDEuMzQwMjEgNS42Mjg5NyAxLjI5MjM5IDYuMDExNDcgMS4zMjAxOEM2LjM5Mzk4IDEuMzQ3OTcgNi43NjcyNiAxLjQ1MDg0IDcuMTEgMS42MjI5MUwxNy41IDYuODIyOTFaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyIG1iLTIgdGV4dC1jZW50ZXJcIj5QcmV2aWV3IG5vdCBhdmFpbGFibGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjcmlwdGlvbiBtYi0yIHRleHQtY2VudGVyXCI+VGhlIHNlbGVjdGVkIGNhbWVyYSBpcyBub3QgYXZhaWxhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb21lbnQuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC1sZy02IGNvbC14bC02IHBlLTAgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibmF2IGZsZXgtd3JhcCBuYXYtZGV2IGZ3LWJvbGQgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gbXktMSB3LTUwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJzZWxlY3RlZFRhYiA9ICd0YWdnZWQnXCIgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RhYi1hY3RpdmUnOiBzZWxlY3RlZFRhYiA9PT0gJ3RhZ2dlZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCIgY2xhc3M9XCJ0YWItdGV4dC1kZWZhdWx0IGJ0biBuYXYtbGluayBweC0zIHB4LWxnLTggbXgtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFnZ2VkIEluZm9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIG15LTEgdy01MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwic2VsZWN0ZWRUYWIgPSAnY3VzdG9tZXInXCIgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RhYi1hY3RpdmUnOiBzZWxlY3RlZFRhYiA9PT0gJ2N1c3RvbWVyJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIiBjbGFzcz1cInRhYi10ZXh0LWRlZmF1bHQgYnRuIG5hdi1saW5rIHB4LTMgcHgtbGctOCBteC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdXN0b21lciBJbmZvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uICpuZ0lmPVwic2VsZWN0ZWRUYWIgPT09ICd0YWdnZWQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG14LTMgbXQtNSBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGZvcm0tY2hlY2sgbXQtNSBweC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cImV4YW1wbGVSYWRpb3NcIiBpZD1cInJhZGlvTm9uU2hvcHBlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJub25TaG9wcGVyXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEN1c3RvbWVyVHlwZVwiIChjaGFuZ2UpPVwib25SYWRpb0NoYW5nZSgnbm9uU2hvcHBlcicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGN1cnNvci1wb2ludGVyIHRvZ2dsZS1sYWJlbFwiIGZvcj1cInJhZGlvTm9uU2hvcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vbiBTaG9wcGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGZvcm0tY2hlY2sgbXQtNSBweC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cImV4YW1wbGVSYWRpb3NcIiBpZD1cInJhZGlvUHVyY2hhc2VyXCIgdmFsdWU9XCJwdXJjaGFzZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRDdXN0b21lclR5cGVcIiAoY2hhbmdlKT1cIm9uUmFkaW9DaGFuZ2UoJ3B1cmNoYXNlcicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGN1cnNvci1wb2ludGVyIHRvZ2dsZS1sYWJlbFwiIGZvcj1cInJhZGlvUHVyY2hhc2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVyY2hhc2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGZvcm0tY2hlY2sgbXQtNSBweC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJleGFtcGxlUmFkaW9zXCIgaWQ9XCJyYWRpb01pc3NlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJtaXNzZWRPcHBvcnR1bml0eVwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRDdXN0b21lclR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25SYWRpb0NoYW5nZSgnbWlzc2VkT3Bwb3J0dW5pdHknKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBjdXJzb3ItcG9pbnRlciB0b2dnbGUtbGFiZWxcIiBmb3I9XCJyYWRpb01pc3NlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pc3NlZCBPcHBvcnR1bml0eVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cInNlbGVjdGVkQ3VzdG9tZXJUeXBlID09PSdub25TaG9wcGVyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNSBteC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItZ3JheS1hY3RpdmUxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgb2JqIG9mIG5vblNob3BwZXJMaXN0XCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhZGdlICBtdC0zIG1lLThcIiAgICAgW25nQ2xhc3NdPVwib2JqIT09bm9uU2hvcGVyVHlwZSA/ICdiYWRnZS1saWdodC1kZWZhdWx0JyA6J2JhZGdlLWxpZ2h0LXByaW1hcnknXCIgKGNsaWNrKT1cInNlbGVjdG5vblNob3BlcihvYmopXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiICpuZ0lmPVwib2JqIT09bm9uU2hvcGVyVHlwZVwiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYgMi41VjkuNU0yLjUgNkg5LjVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiAqbmdJZj1cIm9iaj09PW5vblNob3BlclR5cGVcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgcng9XCI4XCIgZmlsbD1cIiNEQUYxRkZcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMS4zOTc3IDQuOTI2NjFMNi42MjQzNCA5LjUzMzI4TDUuMzU3NjcgOC4xNzk5NEM1LjEyNDM0IDcuOTU5OTQgNC43NTc2NyA3Ljk0NjYxIDQuNDkxIDguMTMzMjhDNC4yMzEgOC4zMjY2MSA0LjE1NzY3IDguNjY2NjEgNC4zMTc2NyA4LjkzOTk0TDUuODE3NjcgMTEuMzc5OUM1Ljk2NDM0IDExLjYwNjYgNi4yMTc2NyAxMS43NDY2IDYuNTA0MzQgMTEuNzQ2NkM2Ljc3NzY3IDExLjc0NjYgNy4wMzc2NyAxMS42MDY2IDcuMTg0MzQgMTEuMzc5OUM3LjQyNDM0IDExLjA2NjYgMTIuMDA0MyA1LjYwNjYxIDEyLjAwNDMgNS42MDY2MUMxMi42MDQzIDQuOTkzMjggMTEuODc3NyA0LjQ1MzI4IDExLjM5NzcgNC45MTk5NFY0LjkyNjYxWlwiIGZpbGw9XCIjMzNCNUZGXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtM1wiPnt7b2JqfX08L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbXQtNSBwYi0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJleGFtcGxlSW5wdXROYW1lXCI+RGVzY3JpcHRpb24gKE9wdGlvbmFsKTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgWyhuZ01vZGVsKV09XCJkZXNjcmlwdGlvblwiIGNsYXNzPVwiZm9ybS1jb250cm9sIG10LTNcIiByb3dzPVwiNFwiIHBsYWNlaG9sZGVyPVwiXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmQgbXQtNVwiIChjbGljayk9XCJub25TaG9wcGVyU3VibWl0KClcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtdC0zXCI+U3VibWl0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cInNlbGVjdGVkQ3VzdG9tZXJUeXBlID09PSdwdXJjaGFzZXInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwidXNlckZvcm1cIiAobmdTdWJtaXQpPVwib25TdWJtaXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBib3JkZXItZ3JheS1hY3RpdmUxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJuYW1lXCI+TmFtZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBOYW1lXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHJlcXVpcmVkIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOnVzZXJGb3JtLmdldCgnbmFtZScpPy5pbnZhbGlkICYmICh1c2VyRm9ybS5nZXQoJ25hbWUnKT8udG91Y2hlZCl9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNJbnZhbGlkKCduYW1lJylcIiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmLm5hbWUuZXJyb3JzPy5yZXF1aXJlZFwiPk5hbWUgaXMgcmVxdWlyZWQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC1sZy02IGNvbC14bC02IGNvbC14eGwtNiBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNvbnRhY3RcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5Db250YWN0IE51bWJlciA8c3BhbiBjbGFzcz1cImFsZXJ0LXJlcXVpcmVkIHRleHQtZGFuZ2VyXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTQgY29sLXhsLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IHBzLTMgcGUtOFwiIGlkPVwiaW5wdXRHcm91cFNlbGVjdDAxXCIgZm9ybUNvbnRyb2xOYW1lPVwiY291bnRyeUNvZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBjb3VudHJ5IG9mIGNvdW50cnlMaXN0XCIgW3ZhbHVlXT1cImNvdW50cnkucGhvbmVjb2RlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvdW50cnkubmFtZX19ICh7e2NvdW50cnkucGhvbmVjb2RlfX0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy04IGNvbC14bC04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgKGtleXByZXNzKT1cIm9taXRfc3BlY2lhbF9jaGFyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibW9iaWxlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgZm9ybUNvbnRyb2xOYW1lPVwibW9iaWxlXCIgbWlubGVuZ3RoPVwiOFwiIG1heGxlbmd0aD1cIjEzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzp1c2VyRm9ybS5nZXQoJ21vYmlsZScpPy5pbnZhbGlkICYmICh1c2VyRm9ybS5nZXQoJ21vYmlsZScpPy50b3VjaGVkKX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNJbnZhbGlkKCdtb2JpbGUnKVwiIGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmLm1vYmlsZS5lcnJvcnM/LnJlcXVpcmVkXCI+Q29udGFjdCBOdW1iZXIgaXMgcmVxdWlyZWQuPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZi5tb2JpbGUuZXJyb3JzPy5taW5sZW5ndGhcIj5Db250YWN0IE51bWJlciBtdXN0IGJlIGF0IGxlYXN0IDggZGlnaXRzLjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImYubW9iaWxlLmVycm9ycz8ubWF4bGVuZ3RoXCI+Q29udGFjdCBOdW1iZXIgY2Fubm90IGV4Y2VlZCAxMyBkaWdpdHMuPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtbGctNiBjb2wteGwtNiBjb2wteHhsLTYgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbWFpbFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkVtYWlsIDxzcGFuIGNsYXNzPVwiYWxlcnQtcmVxdWlyZWQgdGV4dC1kYW5nZXJcIj4qPC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJlbWFpbFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJlbWFpbFwiIGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzp1c2VyRm9ybS5nZXQoJ2VtYWlsJyk/LmludmFsaWQgJiYgKHVzZXJGb3JtLmdldCgnZW1haWwnKT8udG91Y2hlZCl9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzSW52YWxpZCgnZW1haWwnKVwiIGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImYuZW1haWwuZXJyb3JzPy5yZXF1aXJlZFwiPkVtYWlsIGlzIHJlcXVpcmVkLjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZi5lbWFpbC5lcnJvcnM/LnBhdHRlcm5cIj5JbnZhbGlkIGVtYWlsIGZvcm1hdC48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImxvY2F0aW9uXCI+TG9jYXRpb248L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibG9jYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkxvY2F0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxvY2F0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIG10LTNcIiBpZD1cImxvY2F0aW9uXCIgZm9ybUNvbnRyb2xOYW1lPVwibG9jYXRpb25cIiAjcGxhY2VzUmVmPVwibmd4LXBsYWNlc1wiIG5neC1ncC1hdXRvY29tcGxldGUgKG9uQWRkcmVzc0NoYW5nZSk9XCJoYW5kbGVBZGRyZXNzQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6dXNlckZvcm0uZ2V0KCdsb2NhdGlvbicpPy5pbnZhbGlkICYmICh1c2VyRm9ybS5nZXQoJ2xvY2F0aW9uJyk/LnRvdWNoZWQpfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihmLmxvY2F0aW9uLnRvdWNoZWQgfHwgc3VibWl0dGVkKSAmJiBmLmxvY2F0aW9uLmVycm9yc1wiIGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImYubG9jYXRpb24uZXJyb3JzLnJlcXVpcmVkXCI+TG9jYXRpb24gaXMgcmVxdWlyZWQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImFnZVwiPkFnZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIHB0LTUgcG9zaXRpb24tYWJzb2x1dGUgdG9wLTUwIHRyYW5zbGF0ZS1taWRkbGUteVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJsZWZ0OiAwLjI1cmVtO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlY3JlbWVudEFnZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCIgKGtleXByZXNzKT1cIm9taXRfc3BlY2lhbF9jaGFyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBwZS01IHRleHQtY2VudGVyIG10LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluPVwiMVwiIG1heD1cIjk5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIHB0LTUgcG9zaXRpb24tYWJzb2x1dGUgdG9wLTUwIHRyYW5zbGF0ZS1taWRkbGUteVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJyaWdodDogMi41cmVtO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImluY3JlbWVudEFnZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgZi5hZ2UuZXJyb3JzXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlciBtdC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmLmFnZS5lcnJvcnMucmVxdWlyZWRcIj5BZ2UgaXMgcmVxdWlyZWQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImYuYWdlLmVycm9ycy5taW5cIj5BZ2UgbXVzdCBiZSBhdCBsZWFzdCAxPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmLmFnZS5lcnJvcnMubWF4XCI+QWdlIG11c3QgYmUgYXQgbGVhc3QgOTk8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImdlbmRlclwiPkdlbmRlcjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3QgbXQtM1wiIGZvcm1Db250cm9sTmFtZT1cImdlbmRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+U2VsZWN0IEdlbmRlcjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibWFsZVwiPk1hbGU8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImZlbWFsZVwiPkZlbWFsZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3VibWl0dGVkICYmIGYuZ2VuZGVyLmVycm9yc1wiIGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImYuZ2VuZGVyLmVycm9ycy5yZXF1aXJlZFwiPkdlbmRlciBpcyByZXF1aXJlZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmQgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtdC0zXCI+U3VibWl0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cInNlbGVjdGVkQ3VzdG9tZXJUeXBlID09PSdtaXNzZWRPcHBvcnR1bml0eSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTUgbXgtMyBib3JkZXItZ3JheS1hY3RpdmUxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvYmogb2YgbWlzc2VkT3Bwb3J0dW5pdHlMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtaXRlbSBuYXYtaXRlbTEgdy0yNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RlZFRhYnMob2JqLm5hbWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic2VsZWN0ZWRNaXNzZWQgPT09IG9iai5uYW1lID8gJ2FjdGl2ZScgOiAnYWN0aXZlLW5vcm1hbCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmsgbmF2LWxpbmsxIGN1cnNvci1wb2ludGVyIHRleHQtbm93cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgb2JqLm5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3Igc2VwYXJhdG9yLWRvdWJsZSBtYi0zXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBJc3N1ZSBCYWRnZXMgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgb2JqIG9mIG1pc3NlZE9wcG9ydHVuaXR5TGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkTWlzc2VkID09PSBvYmoubmFtZVwiIGNsYXNzPVwibXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBvYmouaXNzdWVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RTdWJpc3N1ZShvYmosIGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhZGdlLWxpZ2h0LXByaW1hcnknOiBzZWxlY3RlZElzc3Vlcy5pbmNsdWRlcyhpdGVtKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhZGdlLWxpZ2h0LWRlZmF1bHQnOiFzZWxlY3RlZElzc3Vlcy5pbmNsdWRlcyhpdGVtKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhZGdlIG10LTIgbWUtMiBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS0yXCIgKm5nSWY9XCIhc2VsZWN0ZWRJc3N1ZXMuaW5jbHVkZXMoaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYgMi41VjkuNU0yLjUgNkg5LjVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS0yXCIgKm5nSWY9XCJzZWxlY3RlZElzc3Vlcy5pbmNsdWRlcyhpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiByeD1cIjhcIiBmaWxsPVwiI0RBRjFGRlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTExLjM5NzcgNC45MjY2MUw2LjYyNDM0IDkuNTMzMjhMNS4zNTc2NyA4LjE3OTk0QzUuMTI0MzQgNy45NTk5NCA0Ljc1NzY3IDcuOTQ2NjEgNC40OTEgOC4xMzMyOEM0LjIzMSA4LjMyNjYxIDQuMTU3NjcgOC42NjY2MSA0LjMxNzY3IDguOTM5OTRMNS44MTc2NyAxMS4zNzk5QzUuOTY0MzQgMTEuNjA2NiA2LjIxNzY3IDExLjc0NjYgNi41MDQzNCAxMS43NDY2QzYuNzc3NjcgMTEuNzQ2NiA3LjAzNzY3IDExLjYwNjYgNy4xODQzNCAxMS4zNzk5QzcuNDI0MzQgMTEuMDY2NiAxMi4wMDQzIDUuNjA2NjEgMTIuMDA0MyA1LjYwNjYxQzEyLjYwNDMgNC45OTMyOCAxMS44Nzc3IDQuNDUzMjggMTEuMzk3NyA0LjkxOTk0VjQuOTI2NjFaXCIgZmlsbD1cIiMzM0I1RkZcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0gfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+RGVzY3JpcHRpb24gKE9wdGlvbmFsKTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cz1cIjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgY29tbWVudHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZW5kIG10LTVcIiAoY2xpY2spPVwic3VibWl0TWlzc2VkT3Bwb3J0dW5pdHkoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXQtM1wiPlN1Ym1pdDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uICpuZ0lmPVwic2VsZWN0ZWRUYWIgPT09ICdjdXN0b21lcidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRhZy1jbGFzc1wiPlRhZ2dlZCBTdW1tYXJ5IDxzcGFuICpuZ0lmPVwidGFnZ2dlZERhdGE/LnN0YXR1cz09PSdzdWJtaXR0ZWQnXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTQuNjY2OCA3LjM4Njc0VjguMDAwMDdDMTQuNjY2IDkuNDM3NjkgMTQuMjAwNSAxMC44MzY1IDEzLjMzOTcgMTEuOTg4QzEyLjQ3ODkgMTMuMTM5NCAxMS4yNjkgMTMuOTgxNyA5Ljg5MDQgMTQuMzg5M0M4LjUxMTc4IDE0Ljc5NyA3LjAzODM0IDE0Ljc0OCA1LjY4OTgxIDE0LjI0OThDNC4zNDEyOCAxMy43NTE2IDMuMTg5OTMgMTIuODMwOCAyLjQwNzQ3IDExLjYyNDhDMS42MjUwMSAxMC40MTg4IDEuMjUzMzYgOC45OTIxMSAxLjM0Nzk1IDcuNTU3NjFDMS40NDI1NCA2LjEyMzEyIDEuOTk4MyA0Ljc1NzYyIDIuOTMyMzUgMy42NjQ3OUMzLjg2NjQgMi41NzE5NSA1LjEyODY5IDEuODEwMzMgNi41MzA5NiAxLjQ5MzVDNy45MzMyMyAxLjE3NjY4IDkuNDAwMzQgMS4zMjE2MyAxMC43MTM1IDEuOTA2NzRNMTQuNjY2OCAyLjY2Njc0TDguMDAwMTcgOS4zNDAwN0w2LjAwMDE3IDcuMzQwMDdcIiBzdHJva2U9XCIjMTJCNzZBXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPiA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiB0ZXh0LWVuZFwiICpuZ0lmPVwidGFnZ2dlZERhdGE/LnN0YXR1cyE9J3N1Ym1pdHRlZCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtd2FybmluZyBtcy0yXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xMDkwMV83Nzk1KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTYuMTMxNTIgMC4wMDE0MjA0OUM1LjI1ODU1IC0wLjAxNzU3NzggNC4zOTE5NSAwLjE1NDE5MiAzLjU5MjIyIDAuNTA0NzM4QzIuNzkyNSAwLjg1NTI4MyAyLjA3ODkyIDEuMzc2MTYgMS41MDEzMSAyLjAzMDk5QzAuOTIzNzAzIDIuNjg1ODMgMC40OTU5ODEgMy40NTg4NSAwLjI0ODAwOSA0LjI5NjA4QzMuNzAyOTRlLTA1IDUuMTMzMyAtMC4wNjIyMDk1IDYuMDE0NTcgMC4wNjU2MTU0IDYuODc4MzRDMC4xOTM0NCA3Ljc0MjEyIDAuNTA4MjU2IDguNTY3NTggMC45ODgwODMgOS4yOTcxMUMxLjQ2NzkxIDEwLjAyNjYgMi4xMDExOSAxMC42NDI2IDIuODQzNyAxMS4xMDIxQzMuNTg2MjEgMTEuNTYxNiA0LjQyMDA2IDExLjg1MzUgNS4yODcwMyAxMS45NTc0QzYuMTU0MDEgMTIuMDYxMyA3LjAzMzIyIDExLjk3NDcgNy44NjMyNyAxMS43MDM3QzguMDA1MSAxMS42NTczIDguMTIyNyAxMS41NTY1IDguMTkwMjIgMTEuNDIzNUM4LjI1NzczIDExLjI5MDQgOC4yNjk2MiAxMS4xMzYgOC4yMjMyNyAxMC45OTQyQzguMTc2OTMgMTAuODUyMyA4LjA3NjE0IDEwLjczNDcgNy45NDMwOCAxMC42NjcyQzcuODEwMDIgMTAuNTk5NyA3LjY1NTYgMTAuNTg3OCA3LjUxMzc3IDEwLjYzNDJDNi42MTE3NSAxMC45Mjg3IDUuNjQzMzggMTAuOTUzNiA0LjcyNzQyIDEwLjcwNThDMy44MTE0NiAxMC40NTggMi45ODc3MyA5Ljk0ODI1IDIuMzU3MjUgOS4yMzkxQzEuNzI2NzcgOC41Mjk5NSAxLjMxNjk2IDcuNjUyMjEgMS4xNzgwNyA2LjcxMzU0QzEuMDM5MTcgNS43NzQ4NyAxLjE3NzI0IDQuODE2MDcgMS41NzUzNCAzLjk1NDczQzEuOTczNDMgMy4wOTMzOCAyLjYxNDI1IDIuMzY2OTQgMy40MTkyIDEuODY0NDlDNC4yMjQxNCAxLjM2MjA0IDUuMTU4MjMgMS4xMDU0MyA2LjEwNjg5IDEuMTI2MTNDNy4wNTU1NiAxLjE0NjgzIDcuOTc3NTYgMS40NDM5MyA4Ljc1OTgzIDEuOTgxMDFDOS41NDIxIDIuNTE4MDkgMTAuMTUwNiAzLjI3MTc4IDEwLjUxMDggNC4xNDk2N0MxMC41Njc0IDQuMjg3NzIgMTAuNjc2NSA0LjM5NzYzIDEwLjgxNDEgNC40NTUyMkMxMC44ODIyIDQuNDgzNzQgMTAuOTU1MyA0LjQ5ODU2IDExLjAyOTIgNC40OTg4M0MxMS4xMDMxIDQuNDk5MSAxMS4xNzYzIDQuNDg0ODIgMTEuMjQ0NiA0LjQ1NjhDMTEuMzEzIDQuNDI4NzggMTEuMzc1MiA0LjM4NzU3IDExLjQyNzYgNC4zMzU1MkMxMS40OCA0LjI4MzQ3IDExLjUyMTcgNC4yMjE2MSAxMS41NTAyIDQuMTUzNDdDMTEuNTc4NyA0LjA4NTMyIDExLjU5MzUgNC4wMTIyMiAxMS41OTM4IDMuOTM4MzVDMTEuNTk0MSAzLjg2NDQ4IDExLjU3OTggMy43OTEyNyAxMS41NTE4IDMuNzIyOTJDMTEuMTA4NSAyLjY0MjM5IDEwLjM1OTYgMS43MTQ3IDkuMzk2NzcgMS4wNTM2NUM4LjQzMzk2IDAuMzkyNTg3IDcuMjk5MTUgMC4wMjY4OTQ2IDYuMTMxNTIgMC4wMDE0MjA0OVpNNi41NjI3NyAyLjgxMjQyQzYuNTYyNzcgMi42NjMyNCA2LjUwMzUxIDIuNTIwMTYgNi4zOTgwMiAyLjQxNDY3QzYuMjkyNTMgMi4zMDkxOCA2LjE0OTQ2IDIuMjQ5OTIgNi4wMDAyNyAyLjI0OTkyQzUuODUxMDkgMi4yNDk5MiA1LjcwODAxIDIuMzA5MTggNS42MDI1MiAyLjQxNDY3QzUuNDk3MDQgMi41MjAxNiA1LjQzNzc3IDIuNjYzMjQgNS40Mzc3NyAyLjgxMjQyVjUuNzY3NDJMMy45MTIyNyA3LjI5MjE3QzMuODU3MDEgNy4zNDM2NyAzLjgxMjY4IDcuNDA1NzcgMy43ODE5NCA3LjQ3NDc3QzMuNzUxMTkgNy41NDM3NyAzLjczNDY2IDcuNjE4MjUgMy43MzMzMyA3LjY5Mzc4QzMuNzMyIDcuNzY5MzEgMy43NDU4OSA3Ljg0NDMzIDMuNzc0MTggNy45MTQzN0MzLjgwMjQ3IDcuOTg0NDEgMy44NDQ1OCA4LjA0ODA0IDMuODk3OTkgOC4xMDE0NUMzLjk1MTQxIDguMTU0ODYgNC4wMTUwMyA4LjE5Njk3IDQuMDg1MDcgOC4yMjUyNkM0LjE1NTEyIDguMjUzNTUgNC4yMzAxNCA4LjI2NzQ1IDQuMzA1NjYgOC4yNjYxMkM0LjM4MTE5IDguMjY0NzggNC40NTU2OCA4LjI0ODI1IDQuNTI0NjggOC4yMTc1MUM0LjU5MzY4IDguMTg2NzYgNC42NTU3OCA4LjE0MjQ0IDQuNzA3MjcgOC4wODcxN0w2LjM5Nzc3IDYuMzk3NDJMNi41NjI3NyA2LjIzMjQyVjIuODEyNDJaTTExLjI1MDMgMTEuMjQ5OUMxMS4yNTAzIDExLjQ0ODggMTEuMTcxMyAxMS42Mzk2IDExLjAzMDYgMTEuNzgwM0MxMC44ODk5IDExLjkyMDkgMTAuNjk5MiAxMS45OTk5IDEwLjUwMDMgMTEuOTk5OUMxMC4zMDE0IDExLjk5OTkgMTAuMTEwNiAxMS45MjA5IDkuOTY5OTQgMTEuNzgwM0M5LjgyOTI5IDExLjYzOTYgOS43NTAyNyAxMS40NDg4IDkuNzUwMjcgMTEuMjQ5OUM5Ljc1MDI3IDExLjA1MSA5LjgyOTI5IDEwLjg2MDIgOS45Njk5NCAxMC43MTk2QzEwLjExMDYgMTAuNTc4OSAxMC4zMDE0IDEwLjQ5OTkgMTAuNTAwMyAxMC40OTk5QzEwLjY5OTIgMTAuNDk5OSAxMC44ODk5IDEwLjU3ODkgMTEuMDMwNiAxMC43MTk2QzExLjE3MTMgMTAuODYwMiAxMS4yNTAzIDExLjA1MSAxMS4yNTAzIDExLjI0OTlaTTExLjA2MjggNi41NjI0MkMxMS4wNjI4IDYuNDEzMjQgMTEuMDAzNSA2LjI3MDE2IDEwLjg5OCA2LjE2NDY3QzEwLjc5MjUgNi4wNTkxOSAxMC42NDk1IDUuOTk5OTIgMTAuNTAwMyA1Ljk5OTkyQzEwLjM1MTEgNS45OTk5MiAxMC4yMDggNi4wNTkxOSAxMC4xMDI1IDYuMTY0NjdDOS45OTcwNCA2LjI3MDE2IDkuOTM3NzcgNi40MTMyNCA5LjkzNzc3IDYuNTYyNDJWOS4xODc0MkM5LjkzNzc3IDkuMzM2NjEgOS45OTcwNCA5LjQ3OTY4IDEwLjEwMjUgOS41ODUxN0MxMC4yMDggOS42OTA2NiAxMC4zNTExIDkuNzQ5OTIgMTAuNTAwMyA5Ljc0OTkyQzEwLjY0OTUgOS43NDk5MiAxMC43OTI1IDkuNjkwNjYgMTAuODk4IDkuNTg1MTdDMTEuMDAzNSA5LjQ3OTY4IDExLjA2MjggOS4zMzY2MSAxMS4wNjI4IDkuMTg3NDJWNi41NjI0MlpcIiBmaWxsPVwiI0I1NDcwOFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMS4yNDA5IDMuMDc3NzVDMTEuMTc2MiAyLjk2MTcxIDExLjEwNzggMi44NDc5OSAxMS4wMzU3IDIuNzM2NzRDMTAuNzgyNiAyLjM0NjIzIDEwLjQ4NDggMS45ODYzMSAxMC4xNDgzIDEuNjY0NEM5LjkxNTYxIDEuNDQxODQgOS42NjQ0NiAxLjIzNzQ0IDkuMzk2NzcgMS4wNTM2NUM5LjM5NjcyIDEuMDUzNjEgOS4zOTY4MyAxLjA1MzY4IDkuMzk2NzcgMS4wNTM2NUM5LjIzNzM3IDAuOTQ0MjA3IDkuMDczMDggMC44NDI3NDggOC45MDQ4NyAwLjc0OTcwNUM4LjcyMDcgMC42NDc4MjggOC41MzE2MyAwLjU1NTkgOC4zMzg1IDAuNDc0MTkyQzcuNjQyNjkgMC4xNzk4MTMgNi44OTQxIDAuMDE4MDU3NyA2LjEzMTUyIDAuMDAxNDIwNDlDNi4xMzE0OSAwLjAwMTQxOTgzIDYuMTMxNTUgMC4wMDE0MjExNSA2LjEzMTUyIDAuMDAxNDIwNDlDNi4wODc3OCAwLjAwMDQ2OTI5IDYuMDQzOTcgLTUuMDEyNjVlLTA2IDYuMDAwMjcgMy45OTQyNmUtMDhDNS4xOTcyNiA5LjI4ODcxZS0wNSA0LjQwMjIyIDAuMTYxMzg2IDMuNjYyMzcgMC40NzQ1MkMzLjYzODkzIDAuNDg0NDQxIDMuNjE1NTUgMC40OTQ1MTMgMy41OTIyMiAwLjUwNDczOEMzLjQyMjQzIDAuNTc5MTY2IDMuMjU2NTEgMC42NjEyNzMgMy4wOTQ5NiAwLjc1MDcxQzMuMDAzMDcgMC44MDE1NzcgMi45MTI2IDAuODU0ODE0IDIuODIzNjMgMC45MTAzNTlDMi4zMzIyMyAxLjIxNzEzIDEuODg2NTMgMS41OTQyNyAxLjUwMTMxIDIuMDMwOTlDMS4xMTYwOCAyLjQ2NzczIDAuNzk3NTE2IDIuOTU3MDQgMC41NTQ0ODYgMy40ODI5MUMwLjQzMzEyNCAzLjc0NTUxIDAuMzMwNTk3IDQuMDE3MjMgMC4yNDgwMDkgNC4yOTYwOEM1LjUxMzQzZS0wNSA1LjEzMzI0IC0wLjA2MjIwMDQgNi4wMTQ0NCAwLjA2NTU4NzQgNi44NzgxNUMwLjA2NTU3OCA2Ljg3ODA5IDAuMDY1NTk2NyA2Ljg3ODIyIDAuMDY1NTg3NCA2Ljg3ODE1QzAuMTkzNDEyIDcuNzQxOTMgMC41MDgyNTYgOC41Njc1OCAwLjk4ODA4MyA5LjI5NzExQzEuMTQ3ODMgOS41Mzk5OCAxLjMyNDU4IDkuNzcwMjcgMS41MTY3MSA5Ljk4NjM5QzEuOTAxNjggMTAuNDE5NCAyLjM0ODM4IDEwLjc5NTYgMi44NDM3IDExLjEwMjFDMy4zMzg4MiAxMS40MDg1IDMuODc0NTUgMTEuNjQwNCA0LjQzMzY0IDExLjc5MTdDNC43MTI5OSAxMS44NjczIDQuOTk4MTcgMTEuOTIyOCA1LjI4NzAzIDExLjk1NzRDNS4zMTk5OSAxMS45NjEzIDUuMzUyOTYgMTEuOTY1IDUuMzg1OTQgMTEuOTY4NEM1Ljg2Mjc1IDEyLjAxNzUgNi4zNDI1NCAxMi4wMDkyIDYuODE1MTQgMTEuOTQ0NUM2Ljk5MjY1IDExLjkyMDIgNy4xNjkxNSAxMS44ODc5IDcuMzQ0MDkgMTEuODQ3N0M3LjUxODggMTEuODA3NiA3LjY5MTk2IDExLjc1OTYgNy44NjMwMiAxMS43MDM4QzcuODYyOTQgMTEuNzAzOCA3Ljg2MzExIDExLjcwMzcgNy44NjMwMiAxMS43MDM4QzcuODkxMjcgMTEuNjk0NSA3LjkxODggMTEuNjgzMSA3Ljk0NDkyIDExLjY2OTdDOC4wNDk5NSAxMS42MTU5IDguMTM2MTUgMTEuNTMgOC4xOTAyMiAxMS40MjM1QzguMjE4MTIgMTEuMzY4NSA4LjIzNjUzIDExLjMwOTggOC4yNDUyNCAxMS4yNDk5QzguMjU3NjEgMTEuMTY0OSA4LjI1MDQ2IDExLjA3NzQgOC4yMjMyNyAxMC45OTQyQzguMTc2OTMgMTAuODUyMyA4LjA3NjE0IDEwLjczNDcgNy45NDMwOCAxMC42NjcyQzcuODEwMTEgMTAuNTk5OCA3LjY1NTc5IDEwLjU4NzggNy41MTQwNCAxMC42MzQxQzcuNTEzOTUgMTAuNjM0MSA3LjUxNDEzIDEwLjYzNDEgNy41MTQwNCAxMC42MzQxQzcuNDM1NjMgMTAuNjU5NyA3LjM1NjQ1IDEwLjY4MzMgNy4yNzcxMSAxMC43MDQ5QzcuMTYyOTIgMTAuNzM1OSA3LjA0Nzg2IDEwLjc2MjYgNi45MzIxNSAxMC43ODUxQzYuODgwMTYgMTAuNzk1MyA2LjgyODA0IDEwLjgwNDUgNi43NzU4MSAxMC44MTI5QzYuNDkyNjcgMTAuODU4NSA2LjIwNjMzIDEwLjg3OSA1LjkyMDE0IDEwLjg3NDNDNS44NDgzMiAxMC44NzMxIDUuNzc2NSAxMC44NzA0IDUuNzA0NzYgMTAuODY2QzUuNjA5OTggMTAuODYwMiA1LjUxNTMyIDEwLjg1MTcgNS40MjA5IDEwLjg0MDRDNS4zNzI1NiAxMC44MzQ2IDUuMzI0MjggMTAuODI4MSA1LjI3NjA4IDEwLjgyMDhDNS4wOTE3NiAxMC43OTMxIDQuOTA4NTYgMTAuNzU0OCA0LjcyNzQyIDEwLjcwNThDNC41OTg1NiAxMC42NzA5IDQuNDcxNTIgMTAuNjMwOSA0LjM0NjU5IDEwLjU4NThDNC4wMjc2MyAxMC40NzA4IDMuNzIyNCAxMC4zMjMxIDMuNDM1NTkgMTAuMTQ1NkMzLjQwMTg2IDEwLjEyNDggMy4zNjgzOSAxMC4xMDM1IDMuMzM1MTggMTAuMDgxOEMzLjA1NDA5IDkuODk4MjYgMi43OTE3OCA5LjY4NTU2IDIuNTUyODcgOS40NDY1OEMyLjQ4NTc4IDkuMzc5NDcgMi40MjA1NCA5LjMxMDI5IDIuMzU3MjUgOS4yMzkxQzIuMjAwMTEgOS4wNjIzNCAyLjA1NjY3IDguODc1MTIgMS45Mjc3MiA4LjY3OTA4QzEuOTI0NDUgOC42NzQxMSAxLjkyMTE4IDguNjY5MTMgMS45MTc5MyA4LjY2NDE0QzEuNzExMyA4LjM0NzQ5IDEuNTQyMzQgOC4wMDgwNyAxLjQxNDMyIDcuNjUyODZDMS4zMDUxMSA3LjM0OTg2IDEuMjI1NyA3LjAzNTM2IDEuMTc4MDkgNi43MTM3MUMxLjE3ODA4IDYuNzEzNjYgMS4xNzgxIDYuNzEzNzcgMS4xNzgwOSA2LjcxMzcxQzEuMTU3NSA2LjU3NDU3IDEuMTQyOTcgNi40MzQ4MSAxLjEzNDUgNi4yOTUxNkMxLjEzMDEgNi4yMjI1MyAxLjEyNzMyIDYuMTQ5ODkgMS4xMjYxNyA2LjA3NzI5QzEuMTE4MzIgNS41ODI1NyAxLjE4NTg1IDUuMDg5NjEgMS4zMjYzIDQuNjE1NDVDMS4zOTI5NyA0LjM5MDM2IDEuNDc2MDcgNC4xNjk1MSAxLjU3NTM0IDMuOTU0NzNDMS43NzQ0IDMuNTI0MDMgMi4wMzQxNCAzLjEyNzA2IDIuMzQ0NzUgMi43NzQ5NkMyLjM3NjIgMi43MzkzMiAyLjQwODE2IDIuNzA0MTMgMi40NDA2NCAyLjY2OTQyQzIuNzI4OTMgMi4zNjEyNyAzLjA1NzQ5IDIuMDkwMjcgMy40MTkyIDEuODY0NDlDMy42MTk5NSAxLjczOTE4IDMuODI4NzQgMS42MjkxNiA0LjA0Mzc5IDEuNTM0OTJDNC4yMDUxIDEuNDY0MjIgNC4zNjk5MyAxLjQwMjQxIDQuNTM3NTMgMS4zNDk2OEM1LjAwODc3IDEuMjAxNDMgNS41MDE5MSAxLjEyNSA2LjAwMDI3IDEuMTI0OTdDNi4wMzU3OSAxLjEyNDk3IDYuMDcxMzMgMS4xMjUzNSA2LjEwNjg5IDEuMTI2MTNDNi41Njk2NSAxLjEzNjI0IDcuMDI2MjEgMS4yMTIxMiA3LjQ2MzE1IDEuMzQ5NTRDNy45MjE5IDEuNDkzODMgOC4zNTkxOSAxLjcwNTk1IDguNzU5ODMgMS45ODEwMUM4Ljc1OTc4IDEuOTgwOTcgOC43NTk4OCAxLjk4MTA0IDguNzU5ODMgMS45ODEwMUM4LjkxNDQ3IDIuMDg3MTkgOS4wNjI0NyAyLjIwMTkzIDkuMjAyOTUgMi4zMjQzM0M5LjMyNzg5IDIuNDMzMTggOS40NDcgMi41NDgxNiA5LjU1OTg4IDIuNjY4NzdDOS42NzQ2NCAyLjc5MTM5IDkuNzgyOTUgMi45MTk4MiA5Ljg4NDQgMy4wNTM1NUMxMC4wMTgyIDMuMjI5ODYgMTAuMTQgMy40MTUzNyAxMC4yNDg5IDMuNjA4ODdDMTAuMzA4NiAzLjcxNDkzIDEwLjM2NDQgMy44MjMzOSAxMC40MTYyIDMuOTM0MDVDMTAuNDQ1NSAzLjk5Njc3IDEwLjQ3MzYgNC4wNjAxOSAxMC41MDAzIDQuMTI0MjhDMTAuNTAzOCA0LjEzMjczIDEwLjUwNzMgNC4xNDEyIDEwLjUxMDggNC4xNDk2N0MxMC41MTA3IDQuMTQ5NTkgMTAuNTEwOCA0LjE0OTc1IDEwLjUxMDggNC4xNDk2N0MxMC41Njc0IDQuMjg3NjEgMTAuNjc2NSA0LjM5NzY2IDEwLjgxNDEgNC40NTUyMkMxMC44ODIyIDQuNDgzNzQgMTAuOTU1MyA0LjQ5ODU2IDExLjAyOTIgNC40OTg4M0MxMS4xMDMxIDQuNDk5MSAxMS4xNzYzIDQuNDg0ODIgMTEuMjQ0NiA0LjQ1NjhDMTEuMzEzIDQuNDI4NzggMTEuMzc1MiA0LjM4NzU3IDExLjQyNzYgNC4zMzU1MkMxMS40OCA0LjI4MzQ4IDExLjUyMTcgNC4yMjE2MSAxMS41NTAyIDQuMTUzNDdDMTEuNTc4NyA0LjA4NTMyIDExLjU5MzUgNC4wMTIyMiAxMS41OTM4IDMuOTM4MzVDMTEuNTk0MSAzLjg2NDQ4IDExLjU3OTggMy43OTEyNyAxMS41NTE4IDMuNzIyOTJDMTEuNTUxNyAzLjcyMjgzIDExLjU1MTggMy43MjMwMSAxMS41NTE4IDMuNzIyOTJDMTEuNDgzNCAzLjU1NjMxIDExLjQwNzcgMy4zOTMwNiAxMS4zMjUxIDMuMjM0MTNDMTEuMjk3OCAzLjE4MTU2IDExLjI2OTcgMy4xMjk0MiAxMS4yNDA5IDMuMDc3NzVaTTYuNTYyNzcgMi44MTI0MkM2LjU2Mjc3IDIuNjYzMjQgNi41MDM1MSAyLjUyMDE2IDYuMzk4MDIgMi40MTQ2N0M2LjMxMjEgMi4zMjg3NSA2LjIwMTI0IDIuMjczNSA2LjA4MjQ2IDIuMjU1OTVDNi4wNTU0OCAyLjI1MTk4IDYuMDI3ODcgMi4yNDk5MiA2LjAwMDI3IDIuMjQ5OTJDNS44NTEwOSAyLjI0OTkyIDUuNzA4MDEgMi4zMDkxOCA1LjYwMjUyIDIuNDE0NjdDNS40OTcwNCAyLjUyMDE2IDUuNDM3NzcgMi42NjMyNCA1LjQzNzc3IDIuODEyNDJWNS43Njc0MkwzLjkxMjQ1IDcuMjkyQzMuOTAyNzUgNy4zMDEwMyAzLjg5MzIyIDcuMzEwNTcgMy44ODQyMSA3LjMyMDIzQzMuODQxODcgNy4zNjU2NyAzLjgwNzI5IDcuNDE3ODcgMy43ODE5NCA3LjQ3NDc3QzMuNzUxMTkgNy41NDM3NyAzLjczNDY2IDcuNjE4MjUgMy43MzMzMyA3LjY5Mzc4QzMuNzMyIDcuNzY5MzEgMy43NDU4OSA3Ljg0NDMzIDMuNzc0MTggNy45MTQzN0MzLjc4MDU0IDcuOTMwMTEgMy43ODc1OSA3Ljk0NTUyIDMuNzk1MzIgNy45NjA1N0MzLjgyMTk2IDguMDEyNDkgMy44NTY1OCA4LjA2MDA0IDMuODk3OTkgOC4xMDE0NUMzLjk1MTQxIDguMTU0ODcgNC4wMTUwMyA4LjE5Njk3IDQuMDg1MDcgOC4yMjUyNkM0LjE1NTEyIDguMjUzNTYgNC4yMzAxNCA4LjI2NzQ1IDQuMzA1NjYgOC4yNjYxMkM0LjM4MTE5IDguMjY0NzggNC40NTU2OCA4LjI0ODI1IDQuNTI0NjggOC4yMTc1MUM0LjU4MTU3IDguMTkyMTYgNC42MzM3NyA4LjE1NzU3IDQuNjc5MjEgOC4xMTUyNEM0LjY4ODgxIDguMTA2MjkgNC42OTgxMSA4LjA5NyA0LjcwNzA4IDguMDg3MzdDNC43MDcwMiA4LjA4NzQ0IDQuNzA3MTUgOC4wODczMSA0LjcwNzA4IDguMDg3MzdMNi41NjI3NyA2LjIzMjQyVjIuODEyNDJaTTkuOTM3NzcgOS4xODc0MkM5LjkzNzc3IDkuMzM2NjEgOS45OTcwNCA5LjQ3OTY4IDEwLjEwMjUgOS41ODUxN0MxMC4yMDggOS42OTA2NiAxMC4zNTExIDkuNzQ5OTIgMTAuNTAwMyA5Ljc0OTkyQzEwLjY0MzcgOS43NDk5MiAxMC43ODE1IDkuNjk1MTQgMTAuODg1NyA5LjU5NzE2QzEwLjg4OTggOS41OTMyMyAxMC44OTQgOS41ODkyNCAxMC44OTggOS41ODUxN0MxMS4wMDM1IDkuNDc5NjggMTEuMDYyOCA5LjMzNjYxIDExLjA2MjggOS4xODc0MlY3LjU0MjM0QzEwLjg3NzcgNy41MTQyNiAxMC42ODk3IDcuNDk5OTIgMTAuNTAwMyA3LjQ5OTkyQzEwLjMxMDggNy40OTk5MiAxMC4xMjI4IDcuNTE0MjYgOS45Mzc3NyA3LjU0MjM0VjkuMTg3NDJaTTkuOTM3NzcgNy4zMjY4NkMxMC4xMjE1IDcuMzg2MTIgMTAuMzA5NiA3LjQzMDMgMTAuNTAwMyA3LjQ1OTA0QzEwLjY3MTQgNy40ODQ4MyAxMC44NDQ1IDcuNDk4MTggMTEuMDE4MyA3LjQ5ODgxQzExLjAzMzEgNy40OTg4NyAxMS4wNDc5IDcuNDk4ODMgMTEuMDYyOCA3LjQ5ODdWNi41NjI0MkMxMS4wNjI4IDYuNDkwMDggMTEuMDQ4OCA2LjQxOTE3IDExLjAyMjQgNi4zNTMyOEMxMC45OTQ0IDYuMjgzMzEgMTAuOTUyNCA2LjIxOTAxIDEwLjg5OCA2LjE2NDY4QzEwLjc5MjUgNi4wNTkxOSAxMC42NDk1IDUuOTk5OTIgMTAuNTAwMyA1Ljk5OTkyQzEwLjM1MTEgNS45OTk5MiAxMC4yMDggNi4wNTkxOSAxMC4xMDI1IDYuMTY0NjhDMTAuMTAwMyA2LjE2NjkyIDEwLjA5ODEgNi4xNjkxNyAxMC4wOTU5IDYuMTcxNDVDOS45OTc3IDYuMjcyOTkgOS45NDEzNSA2LjQwNzczIDkuOTM3OTQgNi41NDg4MkM5LjkzNzgzIDYuNTUzMzUgOS45Mzc3NyA2LjU1Nzg4IDkuOTM3NzcgNi41NjI0MlY3LjMyNjg2Wk0xMS4yNDg4IDExLjI5NjhDMTEuMjQ5OCAxMS4yODEzIDExLjI1MDMgMTEuMjY1NiAxMS4yNTAzIDExLjI0OTlDMTEuMjUwMyAxMS4yNDg3IDExLjI1MDMgMTEuMjQ3NSAxMS4yNTAzIDExLjI0NjNDMTEuMjQ5MyAxMS4wNDg3IDExLjE3MDQgMTAuODU5NCAxMS4wMzA2IDEwLjcxOTZDMTAuODg5OSAxMC41Nzg5IDEwLjY5OTIgMTAuNDk5OSAxMC41MDAzIDEwLjQ5OTlDMTAuMzAxNCAxMC40OTk5IDEwLjExMDYgMTAuNTc4OSA5Ljk2OTk0IDEwLjcxOTZDOS44MjkyOSAxMC44NjAyIDkuNzUwMjcgMTEuMDUxIDkuNzUwMjcgMTEuMjQ5OUM5Ljc1MDI3IDExLjQ0ODggOS44MjkyOSAxMS42Mzk2IDkuOTY5OTQgMTEuNzgwM0MxMC4xMTA2IDExLjkyMDkgMTAuMzAxNCAxMS45OTk5IDEwLjUwMDMgMTEuOTk5OUMxMC42OTkyIDExLjk5OTkgMTAuODg5OSAxMS45MjA5IDExLjAzMDYgMTEuNzgwM0MxMS4xNjAyIDExLjY1MDcgMTEuMjM3NCAxMS40Nzg2IDExLjI0ODggMTEuMjk2OFpcIiBmaWxsPVwiI0I1NDcwOFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xMDkwMV83Nzk1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48c3BhbiBjbGFzcz1cIm1zLTJcIj5QZW5kaW5nIFRhZ2dlZCBJbmZvPC9zcGFuPjwvc3Bhbj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItZ3JheS10YWdnZWQgbXgtMyBteS0yXCIgKm5nSWY9XCJ0YWdnZ2VkRGF0YT8ucmV2b3BzVHlwZT09PSdwdXJjaGFzZXInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC12YWx1ZSBcIj5OYW1lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC10aXRsZSBcIj57e3RhZ2dnZWREYXRhPy5jdXN0b21lckluZm8/Lm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXQtMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG1iLTIgc3BlbnQtdmFsdWUgXCI+TG9jYXRpb248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtYi0yIHNwZW50LXRpdGxlIFwiPnt7dGFnZ2dlZERhdGE/LmN1c3RvbWVySW5mbz8ubG9jYXRpb259fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXQtMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG1iLTIgc3BlbnQtdmFsdWUgXCI+TW9iaWxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC10aXRsZSBcIj57e3RhZ2dnZWREYXRhPy5jdXN0b21lckluZm8/Lm1vYmlsZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC12YWx1ZSBcIj5BZ2U8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtYi0yIHNwZW50LXRpdGxlIFwiPnt7dGFnZ2dlZERhdGE/LmN1c3RvbWVySW5mbz8uYWdlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IG10LTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLXN0YXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtYi0yIHNwZW50LXZhbHVlIFwiPkVtYWlsPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC10aXRsZSBcIj57e3RhZ2dnZWREYXRhPy5jdXN0b21lckluZm8/LmVtYWlsfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IG10LTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLXN0YXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtYi0yIHNwZW50LXZhbHVlIFwiPkdlbmRlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG1iLTIgc3BlbnQtdGl0bGUgXCI+e3t0YWdnZ2VkRGF0YT8uY3VzdG9tZXJJbmZvPy5nZW5kZXJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRhZ2dnZWREYXRhPy5yZXZvcHNUeXBlPT09J21pc3NlZE9wcG9ydHVuaXR5J1wiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLWdyYXktdGFnZ2VkIG14LTMgbXktMlwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHRhZ2dnZWREYXRhLmlzc3VlTGlzdFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC12YWx1ZVwiPnt7aXRlbS5uYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0IG1zLTJcIiAqbmdGb3I9XCJsZXQgZGF0YSBvZiBpdGVtLmlzc3VlXCI+e3tkYXRhfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItZ3JheS10YWdnZWQgbXgtMyBteS0yXCIgKm5nSWY9XCJ0YWdnZ2VkRGF0YT8ucmV2b3BzVHlwZT09PSdub25TaG9wcGVyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdCBtcy0yXCI+e3tub25TaG9wZXJUeXBlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0yXCI+PHNwYW4gY2xhc3M9XCJkZXNjLWlkXCI+T3JpZ2luYWwgSUQ8L3NwYW4+IDogPHNwYW4gY2xhc3M9XCJzcGVudC12YWx1ZTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50O1wiPnt7SW1hZ2VkYXRhPy50ZW1wSWR9fTwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwidGFnZ2dlZERhdGE/LmRlc2NyaXB0aW9uJiZ0YWdnZ2VkRGF0YT8uZGVzY3JpcHRpb24hPScnXCIgY2xhc3M9XCJteS0zIGRlc2MtaWRcIj57e3RhZ2dnZWREYXRhLmRlc2NyaXB0aW9ufX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBzZXBhcmF0b3ItZG91YmxlIG0tM1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRhZy1jbGFzc1wiPlRpbWUgU3BlbnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLWdyYXktMzAwIGJvcmRlci1kb2J1bGUgcm91bmRlZCB3LTMzICBweS0zIHB4LTQgbWUtNiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BlbnQtdGl0bGVcIj57e0ltYWdlZGF0YT8udGltZVNwZW50Py50b3RhbFRpbWVTcGVudH19IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwZW50LXZhbHVlIG15LTFcIj5Ub3RhbCBUaW1lIFNwZW50PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheS0zMDAgYm9yZGVyLWRvYnVsZSByb3VuZGVkIHctMzMgIHB5LTMgcHgtNCBtZS02IG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGVudC10aXRsZVwiPnt7SW1hZ2VkYXRhPy50aW1lU3BlbnQ/LmVudHJ5VGltZX19ICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGVudC12YWx1ZTEgbXktMSBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJpbWFnZURhdGEoJ2VudHJ5JylcIj5FbnRyeSBUaW1lIDxzcGFuIGNsYXNzPVwibXMtMVwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0zLjMzMzMzIDE0SDEyLjY2NjdDMTMuNDAzIDE0IDE0IDEzLjQwMyAxNCAxMi42NjY3VjMuMzMzMzNDMTQgMi41OTY5NSAxMy40MDMgMiAxMi42NjY3IDJIMy4zMzMzM0MyLjU5Njk1IDIgMiAyLjU5Njk1IDIgMy4zMzMzM1YxMi42NjY3QzIgMTMuNDAzIDIuNTk2OTUgMTQgMy4zMzMzMyAxNFpNMy4zMzMzMyAxNEwxMC42NjY3IDYuNjY2NjdMMTQgMTBNNi42NjY2NyA1LjY2NjY3QzYuNjY2NjcgNi4yMTg5NSA2LjIxODk1IDYuNjY2NjcgNS42NjY2NyA2LjY2NjY3QzUuMTE0MzggNi42NjY2NyA0LjY2NjY3IDYuMjE4OTUgNC42NjY2NyA1LjY2NjY3QzQuNjY2NjcgNS4xMTQzOCA1LjExNDM4IDQuNjY2NjcgNS42NjY2NyA0LjY2NjY3QzYuMjE4OTUgNC42NjY2NyA2LjY2NjY3IDUuMTE0MzggNi42NjY2NyA1LjY2NjY3WlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLWdyYXktMzAwIGJvcmRlci1kb2J1bGUgcm91bmRlZCB3LTMzICBweS0zIHB4LTQgbWUtNiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BlbnQtdGl0bGVcIj57e0ltYWdlZGF0YT8udGltZVNwZW50Py5leGl0VGltZX19IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwZW50LXZhbHVlMSBteS0xIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImltYWdlRGF0YSgnZXhpdCcpXCI+RXhpdCBUaW1lIDxzcGFuIGNsYXNzPVwibXMtMVwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0zLjMzMzMzIDE0SDEyLjY2NjdDMTMuNDAzIDE0IDE0IDEzLjQwMyAxNCAxMi42NjY3VjMuMzMzMzNDMTQgMi41OTY5NSAxMy40MDMgMiAxMi42NjY3IDJIMy4zMzMzM0MyLjU5Njk1IDIgMiAyLjU5Njk1IDIgMy4zMzMzM1YxMi42NjY3QzIgMTMuNDAzIDIuNTk2OTUgMTQgMy4zMzMzMyAxNFpNMy4zMzMzMyAxNEwxMC42NjY3IDYuNjY2NjdMMTQgMTBNNi42NjY2NyA1LjY2NjY3QzYuNjY2NjcgNi4yMTg5NSA2LjIxODk1IDYuNjY2NjcgNS42NjY2NyA2LjY2NjY3QzUuMTE0MzggNi42NjY2NyA0LjY2NjY3IDYuMjE4OTUgNC42NjY2NyA1LjY2NjY3QzQuNjY2NjcgNS4xMTQzOCA1LjExNDM4IDQuNjY2NjcgNS42NjY2NyA0LjY2NjY3QzYuMjE4OTUgNC42NjY2NyA2LjY2NjY3IDUuMTE0MzggNi42NjY2NyA1LjY2NjY3WlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIUltYWdlZGF0YT8uem9uZVZpc2l0ZWRcIiBjbGFzcz1cInNlcGFyYXRvciBzZXBhcmF0b3ItZG91YmxlIG0tM1wiPjwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhSW1hZ2VkYXRhPy56b25lVmlzaXRlZFwiICBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRhZy1jbGFzc1wiPlpvbmVzIFZpc2l0ZWQ8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNvbC1tZC02IHRleHQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG10LTIgdmlldy10ZXRvcnkgY3Vyc29yLXBvaW50ZXJcIj5WaWV3IFRyYWplY3RvcnkgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUgMTAuODMzM1YxNS44MzMzQzE1IDE2LjI3NTQgMTQuODI0NCAxNi42OTkzIDE0LjUxMTggMTcuMDExOEMxNC4xOTkzIDE3LjMyNDQgMTMuNzc1NCAxNy41IDEzLjMzMzMgMTcuNUg0LjE2NjY3QzMuNzI0NjQgMTcuNSAzLjMwMDcyIDE3LjMyNDQgMi45ODgxNiAxNy4wMTE4QzIuNjc1NTkgMTYuNjk5MyAyLjUgMTYuMjc1NCAyLjUgMTUuODMzM1Y2LjY2NjY3QzIuNSA2LjIyNDY0IDIuNjc1NTkgNS44MDA3MiAyLjk4ODE2IDUuNDg4MTZDMy4zMDA3MiA1LjE3NTU5IDMuNzI0NjQgNSA0LjE2NjY3IDVIOS4xNjY2N00xMi41IDIuNUgxNy41TTE3LjUgMi41VjcuNU0xNy41IDIuNUw4LjMzMzMzIDExLjY2NjdcIiBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgY2xhc3M9XCJoLTIwMHB4IHNjcm9sbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIG10LTJcIiAqbmdGb3I9XCJsZXQgb2JqIG9mIEltYWdlZGF0YT8uem9uZVZpc2l0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeSBcIj57e29ian19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cIkltYWdlZGF0YT8uem9uZVZpc2l0ZWQubGVuZ3RoID09PTBcIiBjbGFzcz1cImNvbC1tZC0xMiBtdC0yIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLW5vZGF0YVwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTEuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXRpdGxlXCI+Tm8gWm9uZXMgVmlzaXRlZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS1zdWJcIj5UaGVyZSBpcyBubyByZXN1bHQgZm9yIHRoaXMgWm9uZXM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIHNlcGFyYXRvci1kb3VibGUgbS0zXCI+PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRhZy1jbGFzc1wiPlN0YWZmIEVuZ2FnZW1lbnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLWdyYXktMzAwIGJvcmRlci1kb2J1bGUgcm91bmRlZCB3LTQ1IHB5LTMgcHgtNCBtZS02IG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGVudC10aXRsZVwiPnt7SW1hZ2VkYXRhPy5zdGFmZkVuZ2FnZW1lbnQudGltZVRha2VuVG9Bc3Npc3R9fSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGVudC12YWx1ZTEgbXktMVwiPlRpbWUgdGFrZW4gdG8gYXNzaXN0IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cIm1zLTFcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMy4zMzMzMyAxNEgxMi42NjY3QzEzLjQwMyAxNCAxNCAxMy40MDMgMTQgMTIuNjY2N1YzLjMzMzMzQzE0IDIuNTk2OTUgMTMuNDAzIDIgMTIuNjY2NyAySDMuMzMzMzNDMi41OTY5NSAyIDIgMi41OTY5NSAyIDMuMzMzMzNWMTIuNjY2N0MyIDEzLjQwMyAyLjU5Njk1IDE0IDMuMzMzMzMgMTRaTTMuMzMzMzMgMTRMMTAuNjY2NyA2LjY2NjY3TDE0IDEwTTYuNjY2NjcgNS42NjY2N0M2LjY2NjY3IDYuMjE4OTUgNi4yMTg5NSA2LjY2NjY3IDUuNjY2NjcgNi42NjY2N0M1LjExNDM4IDYuNjY2NjcgNC42NjY2NyA2LjIxODk1IDQuNjY2NjcgNS42NjY2N0M0LjY2NjY3IDUuMTE0MzggNS4xMTQzOCA0LjY2NjY3IDUuNjY2NjcgNC42NjY2N0M2LjIxODk1IDQuNjY2NjcgNi42NjY2NyA1LjExNDM4IDYuNjY2NjcgNS42NjY2N1pcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4yXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLWdyYXktMzAwIGJvcmRlci1kb2J1bGUgcm91bmRlZCB3LTQ1IHB5LTMgcHgtNCBtZS02IG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGVudC10aXRsZVwiPnt7SW1hZ2VkYXRhPy5zdGFmZkVuZ2FnZW1lbnQudGltZVNwZW50V2l0aFN0YWZmfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGVudC12YWx1ZSBteS0xXCI+VGltZSBzcGVudCB3aXRoIHN0YWZmPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG48L3NlY3Rpb24+XHJcbjwvZGl2PiJdfQ==
|
|
725
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZG9jLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJhZmZpYy9zcmMvbGliL2NvbXBvbmVudHMvaW1hZ2UtZG9jL2ltYWdlLWRvYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYWZmaWMvc3JjL2xpYi9jb21wb25lbnRzL2ltYWdlLWRvYy9pbWFnZS1kb2MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFbkYsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRzFCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7QUFDbkMsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxFQUFlLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7OztBQU50RSxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2xCLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7QUFhdEIsTUFBTSxPQUFPLGlCQUFpQjtJQXlDbEI7SUFDRDtJQUNDO0lBQ0E7SUFDQTtJQUNBO0lBN0NjLFNBQVMsQ0FBNkI7SUFDOUQsV0FBVyxHQUFRLENBQUMsQ0FB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QjlCLG03M0ZBNDRCTTs7NEZEdDNCTyxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsZUFBZTtnT0FLRCxTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYWZmaWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhZmZpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSW1hZ2VEb2NWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZG9jLXZpZXcvaW1hZ2UtZG9jLXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmRheWpzLmV4dGVuZCh1dGMpO1xyXG5kYXlqcy5leHRlbmQodGltZXpvbmUpXHJcbmltcG9ydCAnZGF5anMvbG9jYWxlL2VuJztcclxuaW1wb3J0IHV0YyBmcm9tICdkYXlqcy9wbHVnaW4vdXRjJztcclxuaW1wb3J0IHRpbWV6b25lIGZyb20gJ2RheWpzL3BsdWdpbi90aW1lem9uZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEdXBsaWNhdGVDb21wb25lbnQgfSBmcm9tICcuLi9kdXBsaWNhdGUvZHVwbGljYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBOZ3hHcEF1dG9jb21wbGV0ZURpcmVjdGl2ZSB9IGZyb20gXCJAYW5ndWxhci1tYWdpYy9uZ3gtZ3AtYXV0b2NvbXBsZXRlL2xpYi9uZ3gtZ3AtYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZVwiO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJsaWItaW1hZ2UtZG9jXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbWFnZS1kb2MuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL2ltYWdlLWRvYy5jb21wb25lbnQuc2Nzc1wiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW1hZ2VEb2NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZChcIm5neFBsYWNlc1wiKSBwbGFjZXNSZWY6IE5neEdwQXV0b2NvbXBsZXRlRGlyZWN0aXZlO1xyXG4gIHNlbGVjdEluZGV4OiBhbnkgPSAwO1xyXG4gIHNlbGVjdGVkVGltZTogYW55O1xyXG4gIG9iakRhdGE6IGFueTtcclxuICBvYmplY3RzQXJyYXk6IGFueSA9IFtdO1xyXG4gIGltYWdlc0FycmF5RGF0YTogYW55O1xyXG4gIHByb2Nlc3NUeXBlID0gXCJmb290ZmFsbFwiO1xyXG4gIGhlYWRlckRhdGE6IGFueTtcclxuICBmb2xkZXJWaWV3OiBib29sZWFuO1xyXG4gIGRheWpzPSBkYXlqc1xyXG4gIGRhdGVBcnJheTogYW55O1xyXG4gIGZvcm06IGFueTtcclxuICBub0RhdGE6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBsb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBzdG9yZUFycmF5VmFsdWU6IGFueTtcclxuICBzdG9yZUlkYXJyYXk6IGFueTtcclxuICB2YWx1ZVR5cGU6IGFueSA9ICdhY3R1YWwnO1xyXG4gIGlzQXZlcmFnZTogYW55ID0gZmFsc2U7XHJcbiAgbGVuZ3RoVmFsdWU6IGJvb2xlYW47XHJcbiAgaGlkZURvYzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlzQWNjb3JkaW9uRXhwYW5kZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGZvbGRlckRhdGU6IGFueTtcclxuICBiYWNrbmF2OiBib29sZWFuO1xyXG4gIHVzZXJGb3JtOiBGb3JtR3JvdXA7XHJcbiAgc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgbWlzc2VkT3Bwb3J0dW5pdHlMaXN0OiBhbnkgPSBbXSAgXHJcbiAgcGhvbmVSZWdleDogUmVnRXhwID0gL14oXFxkezN9KT9cXGR7MTV9JC87XHJcbiAgZW1haWxSZWdleDogUmVnRXhwID0gL15bXlxcc0BdK0BbXlxcc0BdK1xcLlteXFxzQF0rJC87XHJcbiAgbm9uU2hvcHBlckxpc3QgPSBbJ0VtcGxveWVlL1N0YWZmJywgJ0RlbGl2ZXJ5IFBlcnNvbicsICdEdXBsaWNhdGUnLCAnQWdlbnRzJywgJ090aGVycyddO1xyXG4gIC8vIG1pc3NlZE9wcG9ydHVuaXR5TGlzdCA9WydQcm9kdWN0IE5lZWQgTWlzbWF0Y2gnLCdQcm9kdWN0IFVuYXZhaWxhYmlsaXR5JywnUHJvZHVjdCBEYW1hZ2VkJywnUHJvZHVjdCBFbnF1aXJ5JywnUXVhbGl0eSddO1xyXG4gIHNlbGVjdGVkTWlzc2VkOiBhbnkgPSAnUHJvZHVjdCBJc3N1ZSc7XHJcbiAgaXNzdWVzOiBhbnkgPSBbXVxyXG4gIG5vblNob3BlclR5cGU6IGFueSA9ICcnXHJcbiAgZGVzY3JpcHRpb246IGFueSA9ICcnXHJcbiAgc2VsZWN0ZWRJc3N1ZXM6IHN0cmluZ1tdID0gW107XHJcbiAgc2VsZWN0ZWRNYWluSXNzdWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHRhZ2dnZWREYXRhOiBhbnkgPSB7fVxyXG4gIG1pc3NlZG9wdHVuaXR5UmVhc29uOiBhbnkgPSBbXVxyXG4gIGNvdW50cnlMaXN0OmFueT1bXVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBUcmFmZmljU2VydmljZSxcclxuICAgIHB1YmxpYyBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwsXHJcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgdG9hc3RlcjogVG9hc3RTZXJ2aWNlLFxyXG4gICkge1xyXG5cclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBzZWxlY3RWYWx1ZTogbmV3IEZvcm1Db250cm9sKCcnKSAvLyBJbml0aWFsaXplIGFzIEZvcm1Db250cm9sXHJcbiAgICB9KTtcclxuXHJcbiAgICBcclxuICB9XHJcbiAgaW5pdHVzZXJGb3JtKCkge1xyXG4gICAgdGhpcy51c2VyRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBuYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICBtb2JpbGU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEzKSxWYWxpZGF0b3JzLm1pbkxlbmd0aCg4KSxdXSxcclxuICAgICAgZW1haWw6IFsnJywgWyBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybihcIl5bYS16QS1aMC05XSsoWy4tX10/W2EtekEtWjAtOV0rKSpAW2EtekEtWjAtOV0rKFsuLV9dP1thLXpBLVpdKykqWy5dezF9W2EtekEtWl17Mix9JFwiKSxcclxuICAgICAgXSxdLFxyXG4gICAgICBsb2NhdGlvbjogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgYWdlOiBbMSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluKDEpLFZhbGlkYXRvcnMubWF4KDk5KV1dLFxyXG4gICAgICBnZW5kZXI6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgIGNvdW50cnlDb2RlOiBbXCI5MVwiLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0Q291bnRyeUNvZGVzKClcclxuICAgIHRoaXMuaW5pdHVzZXJGb3JtKClcclxuICAgIHRoaXMuZ2V0SW5pdGFsKCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5oaWRlRG9jID0gZmFsc2U7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaGlkZURvYyA9IHRydWU7XHJcbiAgICAgIH0sIDUwMDApO1xyXG5cclxuICAgIH0sIDEwMDApO1xyXG4gIH1cclxuICBnZXRDb3VudHJ5Q29kZXMoKSB7XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0QWxsQ291bnRyaWVzKCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczphbnkpID0+IHtcclxuICAgICAgICB0aGlzLmNvdW50cnlMaXN0ID0gcmVzLmRhdGFcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycjphbnkpID0+IHtcclxuXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIG9taXRfc3BlY2lhbF9jaGFyKGV2ZW50OiBhbnkpIHtcclxuICAgIHZhciBrO1xyXG4gICAgayA9IGV2ZW50LmNoYXJDb2RlO1xyXG4gICAgcmV0dXJuIGsgPT0gOCB8fCBrID09IDMyIHx8IChrID49IDQ4ICYmIGsgPD0gNTcpO1xyXG4gIH1cclxuXHJcbiAgY2xpZW50RGF0YTogYW55O1xyXG4gIGdldCBmKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlckZvcm0uY29udHJvbHM7XHJcbiAgfVxyXG4gIGdldEluaXRhbCgpIHtcclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWVcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLCBkZWJvdW5jZVRpbWUoMTAwKSlcclxuICAgICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYoZGF0YSAhPT1udWxsIHx8IGRhdGE/LmNsaWVudCAhPT0gbnVsbCl7XHJcbiAgICAgICAgdGhpcy5oZWFkZXJEYXRhID0gZGF0YTtcclxuICAgICAgICB0aGlzLnN0b3JlSWRhcnJheSA9IHRoaXMuaGVhZGVyRGF0YT8uc3RvcmVzLmZpbHRlcigoc3RvcmU6YW55KSA9PiBzdG9yZS5jaGVja2VkKS5tYXAoKHN0b3JlOmFueSkgPT4gc3RvcmUuc3RvcmVJZClcclxuICAgICAgICB0aGlzLm9iakRhdGEgPSB7XHJcbiAgICAgICAgICBzdG9yZUlkOiB0aGlzLmhlYWRlckRhdGE/LnN0b3Jlc1xyXG4gICAgICAgICAgICAuZmlsdGVyKChzdG9yZTogYW55KSA9PiBzdG9yZS5jaGVja2VkKVxyXG4gICAgICAgICAgICAubWFwKChzdG9yZTogYW55KSA9PiBzdG9yZS5zdG9yZUlkKSxcclxuICAgICAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckRhdGE/LmNsaWVudCxcclxuICAgICAgICAgIHByb2Nlc3NUeXBlOiB0aGlzLnByb2Nlc3NUeXBlLFxyXG4gICAgICAgICAgZm9vdGZhbGxEYXRlOiB0aGlzLmhlYWRlckRhdGEuZGF0ZS5lbmREYXRlLFxyXG4gICAgICAgICAgLy8gdmFsdWVUeXBlIDp0aGlzLnZhbHVlVHlwZVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgc2V0VGltZW91dCgoKT0+e1xyXG4gICAgICAgICAgY29uc3QgY2xpZW50RGF0YTphbnkgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2xpZW50LWRldGFpbHNcIikgfHwgXCJ7fVwiKTtcclxuICAgICAgICAgIHRoaXMuY2xpZW50RGF0YSA9IGNsaWVudERhdGFcclxuICAgICAgICAgIGNvbnN0IGxpbWl0ID0gY2xpZW50RGF0YT8uYm91bmNlZExpbWl0Py52YWx1ZSA/PyBjbGllbnREYXRhPy5ib3VuY2VkTGltaXRWYWx1ZSA/PyAnJztcclxuICAgICAgICAgIGNvbnN0IGNvbnYgPSBjbGllbnREYXRhPy5jb252ZXJzaW9uPy52YWx1ZSA/PyBjbGllbnREYXRhPy5jb252ZXJzaW9uVmFsdWUgPz8gJyc7IFxyXG4gICAgICAgICAgaWYgKHRoaXMuaGVhZGVyRGF0YS5jbGllbnQgPT09ICc0NTInKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YXNldHMgPSBbXHJcbiAgICAgICAgICAgICAgeyB2YWx1ZTogJ2Zvb3RmYWxsJywgbGFiZWw6ICdGb290ZmFsbCcgfSxcclxuICAgICAgICAgICAgICB7IHZhbHVlOiAnYm91bmNlZCcsIGxhYmVsOiBgTGVzcyB0aGFuICR7bGltaXR9IG1pbnNgIH0sXHJcbiAgICAgICAgICAgICAgeyB2YWx1ZTogJ2VuZ2FnZXInLCBsYWJlbDogYE1vcmUgdGhhbiAke2xpbWl0fSBtaW5zYCB9LFxyXG4gICAgICAgICAgICAgIHsgdmFsdWU6ICdtaXNzZWRPcHBvcnR1bml0eScsIGxhYmVsOiBgJHtsaW1pdH0gLSAke2NvbnZ9IG1pbnNgIH0sXHJcbiAgICAgICAgICAgICAgeyB2YWx1ZTogJ2NvbnZlcnNpb24nLCBsYWJlbDogYE1vcmUgdGhhbiAke2NvbnZ9IG1pbnNgIH1cclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YXNldHMgPSBbXHJcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiAnZm9vdGZhbGwnLCBsYWJlbDogJ0Zvb3RmYWxsJyB9LFxyXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogJ2JvdW5jZWQnLCBsYWJlbDogJ0JvdW5jZWQgRm9vdGZhbGwnIH0sXHJcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiAnZW5nYWdlcicsIGxhYmVsOiAnRW5nYWdlcnMnIH0sXHJcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiAnbWlzc2VkT3Bwb3J0dW5pdHknLCBsYWJlbDogJ01pc3NlZCBPcHBvcnR1bml0eScgfSxcclxuICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdjb252ZXJzaW9uJywgbGFiZWw6ICdDb252ZXJzaW9uJyB9XHJcbiAgICAgICAgICAgIF07XHJcbiAgICAgICAgICB9ICAgICBcclxuICAgICAgICAgIGNvbnN0IGluaXRpYWxWYWx1ZSA9IHRoaXMuZ2V0SW5pdGlhbFZhbHVlKCk7XHJcbiAgICAgICAgICBjb25zdCBzZWxlY3RDb250cm9sID0gdGhpcy5mb3JtLmdldCgnc2VsZWN0VmFsdWUnKSBhcyBGb3JtQ29udHJvbDtcclxuICAgICAgICAgIGlmIChzZWxlY3RDb250cm9sKSB7XHJcbiAgICAgICAgICAgIHNlbGVjdENvbnRyb2wuc2V0VmFsdWUoaW5pdGlhbFZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LDEwMClcclxuICAgICAgICB0aGlzLmJhY2tUb0Zvb3RmYWxsKCk7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5RGF0ZVJhbmdlKCk7XHJcbiAgICAgIGlmKHRoaXMuaGVhZGVyRGF0YT8uZGF0ZT8uc3RhcnREYXRlID09PSB0aGlzLmhlYWRlckRhdGE/LmRhdGU/LmVuZERhdGUpe1xyXG4gICAgICB0aGlzLmJhY2tuYXYgPWZhbHNlO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheURhdGVSYW5nZSgpO1xyXG4gICAgICAgIHRoaXMuZ2V0aW1hZ2VzKDAsdGhpcy5oZWFkZXJEYXRhLmRhdGUuZW5kRGF0ZSlcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmZvbGRlclZpZXcgPXRydWU7XHJcbiAgICAgICAgdGhpcy5iYWNrbmF2ID10cnVlXHJcbiAgICAgIH0gXHJcbiAgICAgIHRoaXMuaW5pdGlhbERhdGEoKVxyXG4gICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgICAgXHJcbiAgaW5pdGlhbERhdGEoKSB7XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0cmV2b3Bjb25maWcodGhpcy5oZWFkZXJEYXRhLmNsaWVudClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICA/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5taXNzZWRPcHBvcnR1bml0eUxpc3QgPSByZXMuZGF0YS5pc3N1ZUxpc3RcclxuICAgICAgICAgICAgdGhpcy5pc3N1ZXMgPSB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5TGlzdC5maWx0ZXIoKGRhdGE6IGFueSkgPT4gZGF0YS5uYW1lID09PSB0aGlzLnNlbGVjdGVkTWlzc2VkKVxyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcblxyXG4gIH1cclxuICB0b2dnbGVBY2NvcmRpb24oKSB7XHJcbiAgICB0aGlzLmlzQWNjb3JkaW9uRXhwYW5kZWQgPSAhdGhpcy5pc0FjY29yZGlvbkV4cGFuZGVkO1xyXG5cclxuICB9XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG4gIGdldEltYWdlRm9sZGVyKCkge1xyXG5cclxuICAgIGRlbGV0ZSB0aGlzLm9iakRhdGEuZm9sZGVyTmFtZTtcclxuICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAuZ2V0Rm9vdGZhbGxEaXJlY3RvcnlGb2xkZXJzKHRoaXMub2JqRGF0YSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICA/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5vYmplY3RzQXJyYXkgPSByZXM/LmRhdGEuZm9vdGZhbGxEYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGltZSA9IHRoaXMub2JqZWN0c0FycmF5WzBdLmZvbGRlck5hbWU7XHJcbiAgICAgICAgICAgIHRoaXMub2JqRGF0YS5mb2xkZXJOYW1lID0gdGhpcy5zZWxlY3RlZFRpbWU7XHJcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoVmFsdWUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmdldEltYWdlVmlldygpO1xyXG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoVmFsdWUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5vYmplY3RzQXJyYXkgPSBbXVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb21wbGV0ZTogKCkgPT4geyB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgZ2V0SW1hZ2VWaWV3KCkge1xyXG5cclxuXHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAuZ2V0Rm9vdGZhbGxEaXJlY3RvcnkodGhpcy5vYmpEYXRhKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgID8uc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICBpZiAoIXJlcz8uZGF0YS5mb290ZmFsbERhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuaW1hZ2VzQXJyYXlEYXRhID0gcmVzPy5kYXRhLmZvb3RmYWxsRGF0YTtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5zdG9yZUFycmF5VmFsdWUgPSByZXM/LmRhdGEuc3RvcmVOYW1lXHJcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuXHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb21wbGV0ZTogKCkgPT4geyB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgbm9ybWFsaXplOiBhbnlcclxuICBzZWxlY3RlZFRhYnMobmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTWlzc2VkID0gbmFtZTtcclxuICAgIC8vIHRoaXMuc2VsZWN0ZWRJc3N1ZXMgPSBbXTsgLy8gcmVzZXQgd2hlbiBzd2l0Y2hpbmcgdGFic1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0U3ViaXNzdWUob2JqOiBhbnksIGlzc3VlOiBzdHJpbmcpIHtcclxuXHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJc3N1ZXMuaW5kZXhPZihpc3N1ZSk7XHJcbiAgICBjb25zdCBtYWluaW5kZXggPSB0aGlzLnNlbGVjdGVkTWFpbklzc3Vlcy5pbmRleE9mKG9iai5uYW1lKTtcclxuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcclxuICAgICAgbGV0IGV4aXRzQ291bnQgPSB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uLmZpbHRlcigoZGF0YTogYW55KSA9PiBkYXRhLm5hbWUgPT09IG9iai5uYW1lKS5sZW5ndGhcclxuICAgICAgaWYgKGV4aXRzQ291bnQgPiAwKSB7XHJcbiAgICAgICAgdGhpcy5taXNzZWRvcHR1bml0eVJlYXNvbi5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGRhdGEubmFtZSA9PT0gb2JqLm5hbWUpIHtcclxuICAgICAgICAgICAgZGF0YS5pc3N1ZS5wdXNoKGlzc3VlKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5taXNzZWRvcHR1bml0eVJlYXNvbi5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IG9iai5uYW1lLFxyXG4gICAgICAgICAgaXNzdWU6IFtpc3N1ZV1cclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRNYWluSXNzdWVzLnB1c2gob2JqLm5hbWUpXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJc3N1ZXMucHVzaChpc3N1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXNzdWVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRNYWluSXNzdWVzLnNwbGljZShtYWluaW5kZXgsIDEpO1xyXG4gICAgICB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uLm1hcCgoZGF0YTogYW55LCBpOiBudW1iZXIpID0+IHtcclxuICAgICAgICBpZiAoZGF0YS5uYW1lID09PSBvYmoubmFtZSkge1xyXG4gICAgICAgICAgY29uc3Qgc3ViSW5kZXggPSBkYXRhLmlzc3VlLmluZGV4T2YoaXNzdWUpO1xyXG4gICAgICAgICAgaWYgKHN1YkluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgICBkYXRhLmlzc3VlLnNwbGljZShzdWJJbmRleCwgMSk7XHJcbiAgICAgICAgICAgIGlmIChkYXRhLmlzc3VlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMubWlzc2Vkb3B0dW5pdHlSZWFzb24uc3BsaWNlKGksIDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIGdldGltYWdlcyhpbmRleDogYW55LCBvYmo6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RJbmRleCA9IGluZGV4O1xyXG4gICAgdGhpcy5mb2xkZXJEYXRlID0gb2JqO1xyXG4gICAgKHRoaXMub2JqRGF0YS5mb290ZmFsbERhdGUgPSBvYmopLCAodGhpcy5mb2xkZXJWaWV3ID0gZmFsc2UpO1xyXG4gICAgdGhpcy5zZXJ2aWNlPy5pc25vcm1hbGl6ZVNvdXJjZVxyXG4gICAgICA/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLCBkZWJvdW5jZVRpbWUoMzAwKSlcclxuICAgICAgPy5zdWJzY3JpYmUoKG5vcm1hbGl6ZTogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5ub3JtYWxpemUgPSBub3JtYWxpemU7XHJcbiAgICAgICAgaWYgKCFub3JtYWxpemUpIHtcclxuICAgICAgICAgIHRoaXMuZ2V0SW1hZ2VGb2xkZXIoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5sZW5ndGhWYWx1ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLm9iamVjdHNBcnJheSA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIGJhY2tUb0Zvb3RmYWxsKCkge1xyXG4gICAgdGhpcy5zZWxlY3RJbmRleCA9IDA7XHJcbiAgICB0aGlzLmZvbGRlclZpZXcgPSB0cnVlO1xyXG5cclxuICB9XHJcbiAgc2VsZWN0ZWRUaW1lcyh2YWw6IGFueSkge1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRUaW1lID0gdmFsO1xyXG4gICAgdGhpcy5vYmpEYXRhLmZvbGRlck5hbWUgPSB2YWw7XHJcbiAgICB0aGlzLmZvbGRlclZpZXcgPSBmYWxzZTtcclxuICAgIHRoaXMuc2VsZWN0ZWRUaW1lID0gdmFsO1xyXG4gICAgdGhpcy5nZXRJbWFnZVZpZXcoKTtcclxuICB9XHJcbiAgSW1hZ2VkYXRhOiBhbnk7XHJcbiAgaW1hZ2VGbG93ID0gZmFsc2U7XHJcbiAgSW1hZ2VzOiBhbnk7XHJcblxyXG4gIHJldm9wVGFnZ2luZyhvYmo6IGFueSkge1xyXG4gICAgdGhpcy5pbWFnZUZsb3cgPSB0cnVlO1xyXG4gICAgdGhpcy5JbWFnZWRhdGEgPSBvYmo7XHJcbiAgICAvLyB0aGlzLnNlbGVjdGVkVGFiID0ndGFnZ2VkJztcclxuICAgIHRoaXMuc2VsZWN0ZWRDdXN0b21lclR5cGUgPSB0aGlzLkltYWdlZGF0YT8ucmV2b3BzVHlwZSA/IHRoaXMuSW1hZ2VkYXRhPy5yZXZvcHNUeXBlOiAnbm9uU2hvcHBlcic7XHJcbiAgICB0aGlzLkltYWdlcyA9IHRoaXMuSW1hZ2VkYXRhPy5pbWFnZXM/LmVudHJ5VGltZUltYWdlXHJcbiAgICB0aGlzLmdldFJldm9wRGF0YSgpXHJcbiAgfVxyXG4gIGdldFJldm9wRGF0YSgpIHtcclxuICAgIGxldCBwYXlsb2FkID0ge1xyXG4gICAgICBjbGllbnRJZDogdGhpcy5oZWFkZXJEYXRhLmNsaWVudCxcclxuICAgICAgc3RvcmVJZDogdGhpcy5zdG9yZUlkYXJyYXlbMF0sXHJcbiAgICAgIGRhdGVTdHJpbmc6IHRoaXMuZm9sZGVyRGF0ZSxcclxuICAgICAgdGVtcElkOiB0aGlzLkltYWdlZGF0YS50ZW1wSWQsXHJcbiAgICAgIHByb2Nlc3NUeXBlOiB0aGlzLkltYWdlZGF0YT8ucmV2b3BzVHlwZSA/IHRoaXMuSW1hZ2VkYXRhPy5yZXZvcHNUeXBlOiB0aGlzLnByb2Nlc3NUeXBlXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0cmV2b3B0YWdnaW5nKHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy50YWdnZ2VkRGF0YSA9IHJlcy5kYXRhXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDdXN0b21lclR5cGUgPSByZXMuZGF0YS5yZXZvcHNUeXBlXHJcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSByZXMuZGF0YS5kZXNjcmlwdGlvblxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdENvbnRyb2wuc2V0VmFsdWUocmVzLmRhdGEucmV2b3BzVHlwZSk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkQ3VzdG9tZXJUeXBlID09PSAnbm9uU2hvcHBlcicpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXNzdWVzID0gW107XHJcbiAgICAgICAgICAgICAgdGhpcy5ub25TaG9wZXJUeXBlID0gcmVzLmRhdGEubm9uc2hvcGVyVHlwZVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCduYW1lJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ21vYmlsZScpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdjb3VudHJ5Q29kZScpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdlbWFpbCcpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdsb2NhdGlvbicpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdhZ2UnKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnZ2VuZGVyJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZEN1c3RvbWVyVHlwZSA9PT0gJ3B1cmNoYXNlcicpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXNzdWVzID0gW107XHJcbiAgICAgICAgICAgICAgdGhpcy5ub25TaG9wZXJUeXBlID0gJydcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnbmFtZScpPy5zZXRWYWx1ZShyZXMuZGF0YS5jdXN0b21lckluZm8ubmFtZSlcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnbW9iaWxlJyk/LnNldFZhbHVlKHJlcy5kYXRhLmN1c3RvbWVySW5mby5tb2JpbGUpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2NvdW50cnlDb2RlJyk/LnNldFZhbHVlKHJlcy5kYXRhLmN1c3RvbWVySW5mby5jb3VudHJ5Q29kZSlcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnZW1haWwnKT8uc2V0VmFsdWUocmVzLmRhdGEuY3VzdG9tZXJJbmZvLmVtYWlsKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdsb2NhdGlvbicpPy5zZXRWYWx1ZShyZXMuZGF0YS5jdXN0b21lckluZm8ubG9jYXRpb24pXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2FnZScpPy5zZXRWYWx1ZShyZXMuZGF0YS5jdXN0b21lckluZm8uYWdlKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdnZW5kZXInKT8uc2V0VmFsdWUocmVzLmRhdGEuY3VzdG9tZXJJbmZvLmdlbmRlcilcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkQ3VzdG9tZXJUeXBlID09PSAnbWlzc2VkT3Bwb3J0dW5pdHknKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5taXNzZWRvcHR1bml0eVJlYXNvbiA9IHJlcy5kYXRhLmlzc3VlTGlzdFxyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlcy5kYXRhKVxyXG4gICAgICAgICAgICAgIHJlcy5kYXRhLmlzc3VlTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZElzc3VlcyA9IFsuLi50aGlzLnNlbGVjdGVkSXNzdWVzLCAuLi5kYXRhLmlzc3VlXVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgdGhpcy5ub25TaG9wZXJUeXBlID0gJydcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnbmFtZScpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdtb2JpbGUnKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnY291bnRyeUNvZGUnKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnZW1haWwnKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnbG9jYXRpb24nKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnYWdlJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2dlbmRlcicpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9ZWxzZSBpZighcmVzIHx8IHJlcz8uY29kZSA9PT0gMjA0KXtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RDb250cm9sLnNldFZhbHVlKFwiZm9vdGZhbGxcIik7XHJcbiAgICAgICAgICAgIHRoaXMubm9uU2hvcGVyVHlwZT0nJztcclxuICAgICAgICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9ICcnXHJcbiAgICAgICAgICAgIHRoaXMudGFnZ2dlZERhdGEgPVtdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIGVycm9yOiAoZXJyOmFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RDb250cm9sLnNldFZhbHVlKFwiZm9vdGZhbGxcIik7XHJcbiAgICAgICAgICB0aGlzLnRhZ2dnZWREYXRhID1bXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG4gIHB1YmxpYyBoYW5kbGVBZGRyZXNzQ2hhbmdlKHBsYWNlOiBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VSZXN1bHQgfCBhbnkpIHsgXHJcbiAgICBpZiAocGxhY2UuZ2VvbWV0cnkpIHtcclxuICAgICAgbGV0IGNvdW50cnkgPSBcIlwiLCBjaXR5ID0gXCJcIiwgc3RhdGUgPSBcIlwiLCBwaW5jb2RlID0gXCJcIjtcclxuICAgICAgbGV0IGxhdGl0dWRlID0gcGxhY2UuZ2VvbWV0cnkubG9jYXRpb24ubGF0KCk7XHJcbiAgICAgIGxldCBsb25naXR1ZGUgPSBwbGFjZS5nZW9tZXRyeS5sb2NhdGlvbi5sbmcoKTtcclxuICAgICAgcGxhY2UuYWRkcmVzc19jb21wb25lbnRzLmZvckVhY2goKGNvbXBvbmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGNvbXBvbmVudC50eXBlcy5pbmNsdWRlcyhcImNvdW50cnlcIikpIHtcclxuICAgICAgICAgIGNvdW50cnkgPSBjb21wb25lbnQubG9uZ19uYW1lO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY29tcG9uZW50LnR5cGVzLmluY2x1ZGVzKFwibG9jYWxpdHlcIikpIHtcclxuICAgICAgICAgIGNpdHkgPSBjb21wb25lbnQubG9uZ19uYW1lO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY29tcG9uZW50LnR5cGVzLmluY2x1ZGVzKFwiYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8xXCIpKSB7XHJcbiAgICAgICAgICBzdGF0ZSA9IGNvbXBvbmVudC5sb25nX25hbWU7XHJcbiAgICAgICAgfSBlbHNlIGlmIChjb21wb25lbnQudHlwZXMuaW5jbHVkZXMoXCJwb3N0YWxfY29kZVwiKSkge1xyXG4gICAgICAgICAgcGluY29kZSA9IGNvbXBvbmVudC5sb25nX25hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdG5vblNob3BlcihkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMubm9uU2hvcGVyVHlwZSA9IGRhdGFcclxuICAgIGlmIChkYXRhID09PSAnRHVwbGljYXRlJykge1xyXG4gICAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oRHVwbGljYXRlQ29tcG9uZW50LCB7XHJcbiAgICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgICAgc2l6ZTogXCJsZ1wiLFxyXG4gICAgICAgIHNjcm9sbGFibGU6IHRydWUsXHJcbiAgICAgICAgYmFja2Ryb3A6ICdzdGF0aWMnXHJcbiAgICAgIH0pO1xyXG4gICAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5pbnB1dERhdGEgPSB7XHJcbiAgICAgICAgXCJzdG9yZUlkXCI6IHRoaXMuc3RvcmVJZGFycmF5LFxyXG4gICAgICAgIFwiY2xpZW50SWRcIjogdGhpcy5oZWFkZXJEYXRhLmNsaWVudCxcclxuICAgICAgICBcInByb2Nlc3NUeXBlXCI6IHRoaXMucHJvY2Vzc1R5cGUsXHJcbiAgICAgICAgXCJmb290ZmFsbERhdGVcIjogdGhpcy5mb2xkZXJEYXRlLFxyXG4gICAgICAgIFwiZm9sZGVyTmFtZVwiOiB0aGlzLnNlbGVjdGVkVGltZVxyXG4gICAgICB9XHJcbiAgICAgIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZ2V0UmV2b3BEYXRhKClcclxuICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW1hZ2VWaWV3KG9iajogYW55LCBmb290ZmFsbERhdGU6IGFueSkge1xyXG5cclxuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihJbWFnZURvY1ZpZXdDb21wb25lbnQsIHtcclxuICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgIHNpemU6IFwieGxcIixcclxuICAgICAgc2Nyb2xsYWJsZTogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuSW1hZ2VkYXRhID0gb2JqO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UucHJvY2Vzc1R5cGUgPSB0aGlzLm9iakRhdGEucHJvY2Vzc1R5cGU7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5mb290ZmFsbERhdGUgPSBmb290ZmFsbERhdGU7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5zdG9yZU5hbWUgPSB0aGlzLnN0b3JlQXJyYXlWYWx1ZTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnN0b3JlSWQgPSB0aGlzLnN0b3JlSWRhcnJheVxyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuaGVhZGVyRGF0YSA9IHRoaXMuaGVhZGVyRGF0YTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmltYWdlQXJyYXkgPSB0aGlzLm9iamVjdHNBcnJheTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmZvbGRlck5hbWUgPSB0aGlzLm9iakRhdGEuZm9sZGVyTmFtZVxyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UudHJhY2tlciA9IHRoaXMuY2xpZW50RGF0YS50cmFja2VyRkY7XHJcbiAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0OiBhbnkpID0+IHsgfSk7XHJcbiAgICAvLyBtb2RhbFJlZi5kaXNtaXNzKCdDbGljayBvdXRzaWRlJyk7XHJcbiAgfVxyXG5cclxuICBnZXREYXRlUmFuZ2VBcnJheShmcm9tRGF0ZTogc3RyaW5nLCB0b0RhdGU6IHN0cmluZyk6IHN0cmluZ1tdIHtcclxuICAgIGNvbnN0IHN0YXJ0ID0gbmV3IERhdGUoZnJvbURhdGUpOyAvLyBDb252ZXJ0IHN0cmluZyB0byBEYXRlIG9iamVjdFxyXG4gICAgY29uc3QgZW5kID0gbmV3IERhdGUodG9EYXRlKTsgLy8gQ29udmVydCBzdHJpbmcgdG8gRGF0ZSBvYmplY3RcclxuICAgIGNvbnN0IGRhdGVBcnJheTogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICAvLyBDaGVjayBpZiB0aGUgZGF0ZXMgYXJlIHZhbGlkXHJcbiAgICBpZiAoaXNOYU4oc3RhcnQuZ2V0VGltZSgpKSB8fCBpc05hTihlbmQuZ2V0VGltZSgpKSkge1xyXG4gICAgICByZXR1cm4gZGF0ZUFycmF5O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIExvb3AgZnJvbSBzdGFydCBkYXRlIHRvIGVuZCBkYXRlXHJcbiAgICBsZXQgY3VycmVudERhdGUgPSBzdGFydDtcclxuICAgIHdoaWxlIChjdXJyZW50RGF0ZSA8PSBlbmQpIHtcclxuICAgICAgZGF0ZUFycmF5LnB1c2goY3VycmVudERhdGUudG9JU09TdHJpbmcoKS5zcGxpdChcIlRcIilbMF0pOyAvLyBGb3JtYXQgWVlZWS1NTS1ERFxyXG4gICAgICBjdXJyZW50RGF0ZS5zZXREYXRlKGN1cnJlbnREYXRlLmdldERhdGUoKSArIDEpOyAvLyBJbmNyZW1lbnQgdGhlIGRhdGUgYnkgMSBkYXlcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGF0ZUFycmF5O1xyXG4gIH1cclxuXHJcbiAgLy8gTWV0aG9kIHRvIGRpc3BsYXkgb3IgbG9nIHRoZSBkYXRlIHJhbmdlIGFycmF5XHJcbiAgZGlzcGxheURhdGVSYW5nZSgpIHtcclxuICAgIGNvbnN0IGRhdGVzID0gdGhpcy5nZXREYXRlUmFuZ2VBcnJheShcclxuICAgICAgdGhpcy5oZWFkZXJEYXRhLmRhdGUuc3RhcnREYXRlLFxyXG4gICAgICB0aGlzLmhlYWRlckRhdGEuZGF0ZS5lbmREYXRlXHJcbiAgICApO1xyXG4gICAgdGhpcy5kYXRlQXJyYXkgPSBkYXRlcztcclxuICB9XHJcbiAgZGF0YXNldHMgPSBbXHJcbiAgICB7IHZhbHVlOiAnZm9vdGZhbGwnLCBsYWJlbDogJ0Zvb3RmYWxsJyB9LFxyXG4gICAgeyB2YWx1ZTogJ2JvdW5jZWQnLCBsYWJlbDogJ0JvdW5jZWQgRm9vdGZhbGwnIH0sXHJcbiAgICB7IHZhbHVlOiAnZW5nYWdlcicsIGxhYmVsOiAnRW5nYWdlcnMnIH0sXHJcbiAgICB7IHZhbHVlOiAnbWlzc2VkT3Bwb3J0dW5pdHknLCBsYWJlbDogJ01pc3NlZCBPcHBvcnR1bml0eScgfSxcclxuICAgIHsgdmFsdWU6ICdjb252ZXJzaW9uJywgbGFiZWw6ICdDb252ZXJzaW9uJyB9XHJcbiAgXTtcclxuICBnZXRJbml0aWFsVmFsdWUoKTogc3RyaW5nIHtcclxuICAgIC8vIEZvciBleGFtcGxlLCBzZWxlY3RpbmcgdGhlIHNlY29uZCBpdGVtIGluIHRoZSBkYXRhc2V0XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhc2V0c1swXS52YWx1ZTsgLy8gQ2hhbmdlIGFzIG5lZWRlZFxyXG4gIH1cclxuICBvblZhbHVlQ2hhbmdlKHNlbGVjdGVkSWQ6IGFueSkge1xyXG4gICAgdGhpcy5vYmpEYXRhLnByb2Nlc3NUeXBlID0gc2VsZWN0ZWRJZCxcclxuICAgICAgdGhpcy5nZXRJbWFnZUZvbGRlcigpO1xyXG4gIH1cclxuICBnZXQgc2VsZWN0Q29udHJvbCgpOiBGb3JtQ29udHJvbCB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgnc2VsZWN0VmFsdWUnKSBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcbiAgY2xvc2VEYXRhKCkge1xyXG4gICAgdGhpcy5oaWRlRG9jID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGJhY2tUb1ZpZXcoKSB7XHJcbiAgICB0aGlzLnNlbGVjdENvbnRyb2wuc2V0VmFsdWUoXCJmb290ZmFsbFwiKTtcclxuICAgIHRoaXMuaW1hZ2VGbG93ID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGVjdGVkVGltZXModGhpcy5zZWxlY3RlZFRpbWUpO1xyXG4gIH1cclxuXHJcbiAgaW1hZ2VEYXRhKHR5cGU6IGFueSkge1xyXG4gICAgaWYgKHR5cGUgPT09ICdlbnRyeScpIHtcclxuICAgICAgdGhpcy5JbWFnZXMgPSB0aGlzLkltYWdlZGF0YT8uaW1hZ2VzPy5lbnRyeVRpbWVJbWFnZVxyXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnZXhpdCcpIHtcclxuICAgICAgdGhpcy5JbWFnZXMgPSB0aGlzLkltYWdlZGF0YT8uaW1hZ2VzPy5leGl0VGltZUltYWdlXHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzdGFmZicpIHtcclxuICAgICAgdGhpcy5JbWFnZXMgPSB0aGlzLkltYWdlZGF0YT8uaW1hZ2VzPy5zdGFmZkVuZ2FnZW1lbnRJbWFnZVxyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgaXNGaXJzdEltYWdlKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmltYWdlc0FycmF5RGF0YS5maW5kSW5kZXgoKGRhdGE6IGFueSkgPT4gZGF0YS50ZW1wSWQgPT09IHRoaXMuSW1hZ2VkYXRhPy50ZW1wSWQpO1xyXG4gICAgcmV0dXJuIGluZGV4IDw9IDA7XHJcbiAgfVxyXG4gIFxyXG4gIGlzTGFzdEltYWdlKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmltYWdlc0FycmF5RGF0YS5maW5kSW5kZXgoKGRhdGE6IGFueSkgPT4gZGF0YS50ZW1wSWQgPT09IHRoaXMuSW1hZ2VkYXRhPy50ZW1wSWQpO1xyXG4gICAgcmV0dXJuIGluZGV4ID49IHRoaXMuaW1hZ2VzQXJyYXlEYXRhLmxlbmd0aCAtIDE7XHJcbiAgfVxyXG4gIFxyXG4gIHByZXZpb3VzKCl7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuaW1hZ2VzQXJyYXlEYXRhLmZpbmRJbmRleCgoZGF0YTphbnkpID0+IGRhdGEudGVtcElkID09PSB0aGlzLkltYWdlZGF0YS50ZW1wSWQpO1xyXG4gICAgaWYgKGluZGV4ID4gMCkge1xyXG4gICAgICB0aGlzLkltYWdlZGF0YSA9IHRoaXMuaW1hZ2VzQXJyYXlEYXRhW2luZGV4IC0gMV07XHJcbiAgICBpZih0aGlzLkltYWdlZGF0YSl7XHJcbiAgICAgIHRoaXMucmV2b3BUYWdnaW5nKHRoaXMuSW1hZ2VkYXRhKVxyXG4gICAgfVxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuSW1hZ2VkYXRhID0gdGhpcy5pbWFnZXNBcnJheURhdGFbMF07XHJcbiAgICBpZih0aGlzLkltYWdlZGF0YSl7XHJcbiAgICAgIHRoaXMucmV2b3BUYWdnaW5nKHRoaXMuSW1hZ2VkYXRhKVxyXG4gICAgfVxyXG4gICAgICBcclxuICAgIH1cclxuICB9XHJcbm5leHQoKXtcclxuICBjb25zdCBpbmRleCA9IHRoaXMuaW1hZ2VzQXJyYXlEYXRhLmZpbmRJbmRleCgoZGF0YTphbnkpID0+IGRhdGEudGVtcElkID09PSB0aGlzLkltYWdlZGF0YS50ZW1wSWQpO1xyXG4gICAgaWYodGhpcy5pbWFnZXNBcnJheURhdGEubGVuZ3RoLTEhPWluZGV4KXtcclxuXHJcbiAgICAgIHRoaXMuSW1hZ2VkYXRhID0gdGhpcy5pbWFnZXNBcnJheURhdGFbaW5kZXggKyAxXTtcclxuICAgICAgaWYodGhpcy5JbWFnZWRhdGEpe1xyXG4gICAgICAgIHRoaXMucmV2b3BUYWdnaW5nKHRoaXMuSW1hZ2VkYXRhKVxyXG4gICAgICB9XHJcbiAgICB9IFxyXG59XHJcblxyXG4gIHNlbGVjdGVkVGFiID0gJ3RhZ2dlZCc7XHJcbiAgc2VsZWN0ZWRDdXN0b21lclR5cGUgPSAnbm9uU2hvcHBlcic7XHJcbiAgb25SYWRpb0NoYW5nZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQ3VzdG9tZXJUeXBlID0gdmFsdWU7XHJcbiAgICBpZih2YWx1ZSA9PT0ncHVyY2hhc2VyJyl7XHJcbiAgICAgIHRoaXMuc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICAgIE9iamVjdC52YWx1ZXModGhpcy51c2VyRm9ybS5jb250cm9scykuZm9yRWFjaChjb250cm9sID0+IHtcclxuICAgICAgICBjb250cm9sLm1hcmtBc1VudG91Y2hlZCgpO1xyXG4gICAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFnZTogbnVtYmVyID0gMTtcclxuXHJcbiAgaW5jcmVtZW50QWdlKCkge1xyXG4gICAgY29uc3QgY3VycmVudEFnZSA9IHRoaXMudXNlckZvcm0uZ2V0KCdhZ2UnKT8udmFsdWUgfHwgMDtcclxuICAgIHRoaXMudXNlckZvcm0uZ2V0KCdhZ2UnKT8uc2V0VmFsdWUoY3VycmVudEFnZSArIDEpO1xyXG4gIH1cclxuXHJcbiAgZGVjcmVtZW50QWdlKCkge1xyXG4gICAgY29uc3QgY3VycmVudEFnZSA9IHRoaXMudXNlckZvcm0uZ2V0KCdhZ2UnKT8udmFsdWUgfHwgMDtcclxuICAgIGNvbnNvbGUubG9nKGN1cnJlbnRBZ2UpXHJcbiAgICBpZiAoY3VycmVudEFnZSA+IDEpIHtcclxuICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2FnZScpPy5zZXRWYWx1ZShjdXJyZW50QWdlIC0gMSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHN1Ym1pdE1pc3NlZE9wcG9ydHVuaXR5KCkge1xyXG4gICAgaWYgKHRoaXMubWlzc2Vkb3B0dW5pdHlSZWFzb24ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMudG9hc3Rlci5nZXRFcnJvclRvYXN0KFwicGxlYXNlIHNlbGVjdCBtaXNzZWQgb3Bwb3J0dW5pdHkgcmVhc29uXCIpXHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG4gICAgbGV0IHBheWxvYWQgPSBbe1xyXG4gICAgICBjbGllbnRJZDogdGhpcy5oZWFkZXJEYXRhLmNsaWVudCxcclxuICAgICAgc3RvcmVJZDogdGhpcy5zdG9yZUlkYXJyYXlbMF0sXHJcbiAgICAgIGRhdGVTdHJpbmc6IHRoaXMuZm9sZGVyRGF0ZSxcclxuICAgICAgdGltZVJhbmdlOiB0aGlzLnNlbGVjdGVkVGltZSxcclxuICAgICAgdGVtcElkOiB0aGlzLkltYWdlZGF0YS50ZW1wSWQsXHJcbiAgICAgIHByb2Nlc3NUeXBlOiB0aGlzLnNlbGVjdENvbnRyb2wudmFsdWUsXHJcbiAgICAgIHJldm9wc1R5cGU6IHRoaXMuc2VsZWN0ZWRDdXN0b21lclR5cGUsXHJcbiAgICAgIG5vbnNob3BlclR5cGU6IFwiXCIsXHJcbiAgICAgIGN1c3RvbWVySW5mbzoge1xyXG4gICAgICAgIG5hbWU6IFwiXCIsXHJcbiAgICAgICAgbW9iaWxlOiBcIlwiLFxyXG4gICAgICAgIGNvdW50cnlDb2RlOlwiXCIsXHJcbiAgICAgICAgZW1haWw6IFwiXCIsXHJcbiAgICAgICAgbG9jYXRpb246IFwiXCIsXHJcbiAgICAgICAgYWdlOiBcIlwiLFxyXG4gICAgICAgIGdlbmRlcjogXCJcIixcclxuICAgICAgfSxcclxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXHJcbiAgICAgIHN0YXR1czogXCJzdWJtaXR0ZWRcIixcclxuICAgICAgaXNzdWVMaXN0OiB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uXHJcbiAgICB9XVxyXG4gICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgIC5zdWJtaXRSZXZvcFRhZ2dpbmcocGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICA/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdGVyLmdldFN1Y2Nlc3NUb2FzdChcIkN1c3RvbWVyIGhhcyBiZWVuIHRhZ2dlZCBzdWNjZXNzZnVsbHkuXCIpXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFiID0gICdjdXN0b21lcidcclxuICAgICAgICAgICAgdGhpcy5nZXRSZXZvcERhdGEoKVxyXG4gICAgICAgICAgICB9LDUwMClcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgbm9uU2hvcHBlclN1Ym1pdCgpIHtcclxuXHJcbiAgICBpZiAodGhpcy5ub25TaG9wZXJUeXBlID09PSAnJykge1xyXG4gICAgICB0aGlzLnRvYXN0ZXIuZ2V0RXJyb3JUb2FzdChcInBsZWFzZSBzZWxlY3Qgbm9uc2hvcHBlciBUeXBlXCIpXHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG5cclxuICAgIGxldCBwYXlsb2FkID0gW3tcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRGF0YS5jbGllbnQsXHJcbiAgICAgIHN0b3JlSWQ6IHRoaXMuc3RvcmVJZGFycmF5WzBdLFxyXG4gICAgICB0aW1lUmFuZ2U6IHRoaXMuc2VsZWN0ZWRUaW1lLFxyXG4gICAgICBkYXRlU3RyaW5nOiB0aGlzLmZvbGRlckRhdGUsXHJcbiAgICAgIHRlbXBJZDogdGhpcy5JbWFnZWRhdGEudGVtcElkLFxyXG4gICAgICBwcm9jZXNzVHlwZTogdGhpcy5zZWxlY3RDb250cm9sLnZhbHVlLFxyXG4gICAgICByZXZvcHNUeXBlOiB0aGlzLnNlbGVjdGVkQ3VzdG9tZXJUeXBlLFxyXG4gICAgICBub25zaG9wZXJUeXBlOiB0aGlzLm5vblNob3BlclR5cGUsXHJcbiAgICAgIGN1c3RvbWVySW5mbzoge1xyXG4gICAgICAgIG5hbWU6IFwiXCIsXHJcbiAgICAgICAgbW9iaWxlOiBcIlwiLFxyXG4gICAgICAgIGNvdW50cnlDb2RlOlwiXCIsXHJcbiAgICAgICAgZW1haWw6IFwiXCIsXHJcbiAgICAgICAgbG9jYXRpb246IFwiXCIsXHJcbiAgICAgICAgYWdlOiBcIlwiLFxyXG4gICAgICAgIGdlbmRlcjogXCJcIixcclxuICAgICAgfSxcclxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXHJcbiAgICAgIHN0YXR1czogXCJzdWJtaXR0ZWRcIixcclxuICAgICAgaXNzdWVMaXN0OiBbXVxyXG4gICAgfV1cclxuICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAuc3VibWl0UmV2b3BUYWdnaW5nKHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3Rlci5nZXRTdWNjZXNzVG9hc3QoXCJDdXN0b21lciBoYXMgYmVlbiB0YWdnZWQgc3VjY2Vzc2Z1bGx5LlwiKVxyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9ICAnY3VzdG9tZXInXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0UmV2b3BEYXRhKClcclxuICAgICAgICAgICAgfSw1MDApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy51c2VyRm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBwYXlsb2FkID0gW3tcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRGF0YS5jbGllbnQsXHJcbiAgICAgIHN0b3JlSWQ6IHRoaXMuc3RvcmVJZGFycmF5WzBdLFxyXG4gICAgICB0aW1lUmFuZ2U6IHRoaXMuc2VsZWN0ZWRUaW1lLFxyXG4gICAgICBkYXRlU3RyaW5nOiB0aGlzLmZvbGRlckRhdGUsXHJcbiAgICAgIHRlbXBJZDogdGhpcy5JbWFnZWRhdGEudGVtcElkLFxyXG4gICAgICBwcm9jZXNzVHlwZTogdGhpcy5zZWxlY3RDb250cm9sLnZhbHVlLFxyXG4gICAgICByZXZvcHNUeXBlOiB0aGlzLnNlbGVjdGVkQ3VzdG9tZXJUeXBlLFxyXG4gICAgICBub25zaG9wZXJUeXBlOiBcIlwiLFxyXG4gICAgICBjdXN0b21lckluZm86IHtcclxuICAgICAgICBuYW1lOiB0aGlzLnVzZXJGb3JtLnZhbHVlLm5hbWUsXHJcbiAgICAgICAgbW9iaWxlOiB0aGlzLnVzZXJGb3JtLnZhbHVlLm1vYmlsZSxcclxuICAgICAgICBjb3VudHJ5Q29kZTogdGhpcy51c2VyRm9ybS52YWx1ZS5jb3VudHJ5Q29kZSxcclxuICAgICAgICBlbWFpbDogdGhpcy51c2VyRm9ybS52YWx1ZS5lbWFpbCxcclxuICAgICAgICBsb2NhdGlvbjogdGhpcy51c2VyRm9ybS52YWx1ZS5sb2NhdGlvbixcclxuICAgICAgICBhZ2U6IHRoaXMudXNlckZvcm0udmFsdWUuYWdlLFxyXG4gICAgICAgIGdlbmRlcjogdGhpcy51c2VyRm9ybS52YWx1ZS5nZW5kZXIsXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLFxyXG4gICAgICBzdGF0dXM6IFwic3VibWl0dGVkXCIsXHJcbiAgICAgIGlzc3VlTGlzdDogW11cclxuICAgIH1dXHJcbiAgICB0aGlzLnNlcnZpY2VcclxuICAgICAgLnN1Ym1pdFJldm9wVGFnZ2luZyhwYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgID8uc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0ZXIuZ2V0U3VjY2Vzc1RvYXN0KFwiQ3VzdG9tZXIgaGFzIGJlZW4gdGFnZ2VkIHN1Y2Nlc3NmdWxseS5cIilcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSAgJ2N1c3RvbWVyJ1xyXG4gICAgICAgICAgICB0aGlzLmdldFJldm9wRGF0YSgpXHJcblxyXG4gICAgICAgICAgICB9LDUwMClcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcblxyXG5cclxuXHJcbiAgfVxyXG5cclxuICBpc0ludmFsaWQoZmllbGROYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnVzZXJGb3JtLmdldChmaWVsZE5hbWUpO1xyXG4gICAgcmV0dXJuICEhKGNvbnRyb2wgJiYgY29udHJvbC5pbnZhbGlkICYmIChjb250cm9sLnRvdWNoZWQgfHwgdGhpcy5zdWJtaXR0ZWQpKTtcclxuICB9XHJcbiAgXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmQgbXQtM1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIG10LTMgcHgtMCBib3JkZXItYm90dG9tLTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWFjY29yZGlvblwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWFjY29yZGlvbi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1haW5oZWFkaW5nIHBiLTAgY3VzdG9tLWFjY29yZGlvbi1oZWFkZXJcIiAoY2xpY2spPVwidG9nZ2xlQWNjb3JkaW9uKClcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW1nLWRpcmVjXCI+SW1hZ2UgRGlyZWN0b3J5PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3JkaW9uLWFycm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBEb3duIGFycm93IGZvciBjb2xsYXBzZWQgc3RhdGUsIHVwIGFycm93IGZvciBleHBhbmRlZCBzdGF0ZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnICpuZ0lmPVwiIWlzQWNjb3JkaW9uRXhwYW5kZWRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNlwiIGhlaWdodD1cIjZcIiB2aWV3Qm94PVwiMCAwIDE2IDZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xIDFMNSA1TDkgMVwiIHN0cm9rZT1cIiMwNzE0MzdcIiBzdHJva2Utd2lkdGg9XCIxXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJpc0FjY29yZGlvbkV4cGFuZGVkXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjZcIiBoZWlnaHQ9XCI2XCIgdmlld0JveD1cIjAgMCAxNiA2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMSA1TDUgMUw5IDVcIiBzdHJva2U9XCIjMWI4NGZmXCIgc3Ryb2tlLXdpZHRoPVwiMVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICBcclxuICAgICAgICBcclxuICAgIDwvZGl2PlxyXG4gICAgPHNlY3Rpb24gKm5nSWY9XCJpc0FjY29yZGlvbkV4cGFuZGVkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIHB4LTVcIiAqbmdJZj1cIiFoaWRlRG9jXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN3aXRjaC1mb3JtLWNhcmRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI0NlwiIGhlaWdodD1cIjQ2XCIgdmlld0JveD1cIjAgMCA0NiA0NlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjNcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiByeD1cIjIwXCIgZmlsbD1cIiNEQUYxRkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjNcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiByeD1cIjIwXCIgc3Ryb2tlPVwiI0VBRjhGRlwiIHN0cm9rZS13aWR0aD1cIjZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjMuODMzMyAxNC42NjY2TDE1LjUgMjQuNjY2NkgyM0wyMi4xNjY3IDMxLjMzMzNMMzAuNSAyMS4zMzMzSDIzTDIzLjgzMzMgMTQuNjY2NlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eHQtb25lIG1zLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPkV4YW1pbmUgaW5kaXZpZHVhbCBmb290ZmFsbCBpbiBnYWxsZXJ5IHZpZXcgd2l0aCBvcHRpbWFsIHNhbXBsZSBpbWFnZXMgZm9yIGRldGFpbGVkIGFuYWx5c2lzLjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTXVsdGlwbGVcIj5VcGxvYWQgbXVsdGlwbGUgc3RvcmVzIGZvciBjb25maWd1cmF0aW9uPC9uZy1jb250YWluZXI+IC0tPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY2xvc2VEYXRhKClcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTguMjk1IDcuMTE1QzE4LjY4NDQgNi43MjU2NCAxOC42ODQ0IDYuMDk0MzYgMTguMjk1IDUuNzA1QzE3LjkwNTYgNS4zMTU2NCAxNy4yNzQ0IDUuMzE1NjQgMTYuODg1IDUuNzA1TDEyIDEwLjU5TDcuMTE1IDUuNzA1QzYuNzI1NjQgNS4zMTU2NCA2LjA5NDM2IDUuMzE1NjQgNS43MDUgNS43MDVDNS4zMTU2NCA2LjA5NDM2IDUuMzE1NjQgNi43MjU2NCA1LjcwNSA3LjExNUwxMC41OSAxMkw1LjcwNSAxNi44ODVDNS4zMTU2NCAxNy4yNzQ0IDUuMzE1NjQgMTcuOTA1NiA1LjcwNSAxOC4yOTVDNi4wOTQzNiAxOC42ODQ0IDYuNzI1NjQgMTguNjg0NCA3LjExNSAxOC4yOTVMMTIgMTMuNDFMMTYuODg1IDE4LjI5NUMxNy4yNzQ0IDE4LjY4NDQgMTcuOTA1NiAxOC42ODQ0IDE4LjI5NSAxOC4yOTVDMTguNjg0NCAxNy45MDU2IDE4LjY4NDQgMTcuMjc0NCAxOC4yOTUgMTYuODg1TDEzLjQxIDEyTDE4LjI5NSA3LjExNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiYmxhY2tcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJmb2xkZXJWaWV3XCIgY2xhc3M9XCJjYXJkLWJvZHkgcHgtMFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGwtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEgbXQtNSB0ZXh0LWNlbnRlclwiICpuZ0Zvcj1cImxldCBvYmogb2YgZGF0ZUFycmF5O2xldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImdldGltYWdlcyhpLG9iailcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaSA9PT0gc2VsZWN0SW5kZXg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj48c3ZnIHdpZHRoPVwiNTdcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTcgNTZcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwLjE1NDI5N1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHJ4PVwiMTJcIiBmaWxsPVwiIzMzQjVGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zOS44MjE2IDM2LjE2NjdDMzkuODIxNiAzNi43ODU1IDM5LjU3NTggMzcuMzc5IDM5LjEzODIgMzcuODE2NkMzOC43MDA2IDM4LjI1NDIgMzguMTA3MSAzOC41IDM3LjQ4ODMgMzguNUgxOC44MjE2QzE4LjIwMjggMzguNSAxNy42MDkzIDM4LjI1NDIgMTcuMTcxNyAzNy44MTY2QzE2LjczNDEgMzcuMzc5IDE2LjQ4ODMgMzYuNzg1NSAxNi40ODgzIDM2LjE2NjdWMTkuODMzM0MxNi40ODgzIDE5LjIxNDUgMTYuNzM0MSAxOC42MjEgMTcuMTcxNyAxOC4xODM0QzE3LjYwOTMgMTcuNzQ1OCAxOC4yMDI4IDE3LjUgMTguODIxNiAxNy41SDI0LjY1NDlMMjYuOTg4MyAyMUgzNy40ODgzQzM4LjEwNzEgMjEgMzguNzAwNiAyMS4yNDU4IDM5LjEzODIgMjEuNjgzNEMzOS41NzU4IDIyLjEyMSAzOS44MjE2IDIyLjcxNDUgMzkuODIxNiAyMy4zMzMzVjM2LjE2NjdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIyLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG10LTJcIj57e29iaiB8IGRhdGU6J2RkIE1NTSd9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpICE9PSBzZWxlY3RJbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPjxzdmcgd2lkdGg9XCI1N1wiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NyA1NlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjAuNDYyODkxXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgcng9XCIxMlwiIGZpbGw9XCIjRUFGOEZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTQwLjEzMDIgMzYuMTY2N0M0MC4xMzAyIDM2Ljc4NTUgMzkuODg0NCAzNy4zNzkgMzkuNDQ2OCAzNy44MTY2QzM5LjAwOTIgMzguMjU0MiAzOC40MTU3IDM4LjUgMzcuNzk2OSAzOC41SDE5LjEzMDJDMTguNTExNCAzOC41IDE3LjkxNzkgMzguMjU0MiAxNy40ODAzIDM3LjgxNjZDMTcuMDQyNyAzNy4zNzkgMTYuNzk2OSAzNi43ODU1IDE2Ljc5NjkgMzYuMTY2N1YxOS44MzMzQzE2Ljc5NjkgMTkuMjE0NSAxNy4wNDI3IDE4LjYyMSAxNy40ODAzIDE4LjE4MzRDMTcuOTE3OSAxNy43NDU4IDE4LjUxMTQgMTcuNSAxOS4xMzAyIDE3LjVIMjQuOTYzNUwyNy4yOTY5IDIxSDM3Ljc5NjlDMzguNDE1NyAyMSAzOS4wMDkyIDIxLjI0NTggMzkuNDQ2OCAyMS42ODM0QzM5Ljg4NDQgMjIuMTIxIDQwLjEzMDIgMjIuNzE0NSA0MC4xMzAyIDIzLjMzMzNWMzYuMTY2N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMi4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtdC0yXCI+e3tvYmogfCBkYXRlOidkZCBNTU0nfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiAgICAgICBcclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cIiFmb2xkZXJWaWV3XCIgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICA8c2VjdGlvbiAqbmdJZj1cIiFpbWFnZUZsb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1zaHJpbmstMCBtdC0zIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBweC0wXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImJhY2tuYXZcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImJhY2tUb0Zvb3RmYWxsKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgNDAgNDBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMjU4NV83MDM2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMVwiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHJ4PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMi41XCIgeT1cIjEuNVwiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTI1LjgzMjcgMTlIMTQuMTY2TTE0LjE2NiAxOUwxOS45OTkzIDI0LjgzMzRNMTQuMTY2IDE5TDE5Ljk5OTMgMTMuMTY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzI1ODVfNzAzNlwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldCBkeT1cIjFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIxXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjU4NV83MDM2XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93XzI1ODVfNzAzNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD1cInNoYXBlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImltZy1kaXJlYyBtcy0yXCI+e3tmb2xkZXJEYXRlIHwgZGF0ZTonZGQgTU1NLCB5eXl5J319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFub3JtYWxpemVcIiBjbGFzcz1cIm1zLWF1dG8gdGV4dC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxsaWItcmVhY3RpdmUtc2VsZWN0IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2VsZWN0Q29udHJvbFwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWRGaWVsZF09XCIndmFsdWUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVGaWVsZF09XCInbGFiZWwnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwiZGF0YXNldHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctMTAwIHRleHQtc3RhcnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2xpYi1yZWFjdGl2ZS1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICA8ZGl2ICBjbGFzcz1cImQtZmxleCBtdC0yIG1iLTIgdy0xMDAgb3ZlcmZsb3cteCBweC0wXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRoaXMuaGVhZGVyRGF0YT8uY2xpZW50ICE9PSc0NTknXCI+XHJcbiAgICAgICAgPGRpdiAgY2xhc3M9XCJjb2wgdGV4dC1ub3dyYXBcIiAqbmdGb3I9XCJsZXQgb2JqIG9mIG9iamVjdHNBcnJheVwiPlxyXG4gICAgICAgICAgICA8dWwgKm5nSWY9XCJsZW5ndGhWYWx1ZVwiIGNsYXNzPVwibmF2IG5hdi1zdHJldGNoIG5hdi1saW5lLXRhYnMxIG5hdi1saW5lLXRhYnMgYm9yZGVyLXRyYW5zcGFyZW50IGZsZXgtbm93cmFwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbSBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJzZWxlY3RlZFRpbWVzKG9iai5mb2xkZXJOYW1lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic2VsZWN0ZWRUaW1lID09PSBvYmo/LmZvbGRlck5hbWUgPyAnYWN0aXZlJyA6ICcnXCIgY2xhc3M9XCJuYXYtbGluayBjdXJzb3ItcG9pbnRlciBuby1ib3JkZXIgbXgtMyBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7b2JqPy5mb2xkZXJOYW1lfX08c3BhbiBjbGFzcz1cIm14LTIgXCIgW25nQ2xhc3NdPVwic2VsZWN0ZWRUaW1lID09PSBvYmo/LmZvbGRlck5hbWUgPyAnYmFkZ2UtbnVtLXByaW1hcnknIDonYmFkZ2UtbnVtLW11dGVkJ1wiPnt7b2JqPy5jb3VudD9vYmo/LmNvdW50OjB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0aGlzLmhlYWRlckRhdGE/LmNsaWVudCA9PT0nNDU5J1wiPlxyXG4gICAgICAgIDxkaXYgIGNsYXNzPVwiY29sIHRleHQtbm93cmFwXCIgKm5nRm9yPVwibGV0IG9iaiBvZiBvYmplY3RzQXJyYXkuc2xpY2UoMCwgLTEpXCI+XHJcbiAgICAgICAgICAgIDx1bCAqbmdJZj1cImxlbmd0aFZhbHVlXCIgY2xhc3M9XCJuYXYgbmF2LXN0cmV0Y2ggbmF2LWxpbmUtdGFiczEgbmF2LWxpbmUtdGFicyBib3JkZXItdHJhbnNwYXJlbnQgZmxleC1ub3dyYXBcIj5cclxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cInNlbGVjdGVkVGltZXMob2JqLmZvbGRlck5hbWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzZWxlY3RlZFRpbWUgPT09IG9iaj8uZm9sZGVyTmFtZSA/ICdhY3RpdmUnIDogJydcIiBjbGFzcz1cIm5hdi1saW5rIGN1cnNvci1wb2ludGVyIG5vLWJvcmRlciBteC0zIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tvYmo/LmZvbGRlck5hbWV9fTxzcGFuIGNsYXNzPVwibXgtMiBcIiBbbmdDbGFzc109XCJzZWxlY3RlZFRpbWUgPT09IG9iaj8uZm9sZGVyTmFtZSA/ICdiYWRnZS1udW0tcHJpbWFyeScgOidiYWRnZS1udW0tbXV0ZWQnXCI+e3tvYmo/LmNvdW50P29iaj8uY291bnQ6MH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwibG9hZGluZ1wiIGNsYXNzPVwicm93IGxvYWRlciAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIm5vRGF0YVwiIGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm5vcm1hbGl6ZVwiIGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctbm9kYXRhMVwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL25vdC1hcHBsaWNhYmxlLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtdGl0bGUgbXQtM1wiPkRhdGEgTm90IEZvdW5kPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS1zdWJcIj5Ob3JtYWxpemVkIGRhdGEgaXMgbm90IGFwcGxpY2FibGU8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFub3JtYWxpemVcIiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLW5vZGF0YVwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTEuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS10aXRsZVwiPk5vIGRhdGEgZm91bmQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXN1YlwiPlRoZXJlIGlzIG5vIHJlc3VsdCBmb3IgdGhpcyBpbWFnZSBkaXJlY3Rvcnk8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHB4LTAgaW1nLXRyYWZmaWMgY29udGFpbiBoaWdoLTQwMHB4IHNjcm9sbC15XCIgKm5nSWY9XCIhbm9EYXRhICYmICFsb2FkaW5nXCI+XHJcbiAgICAgICAgICAgIDxkaXYgIGNsYXNzPVwiY29sLW1kLTMgYm9yZGVyLWdyYXkgbXgtMiBwLTIgbXQtNVwiICpuZ0Zvcj1cImxldCBvYmogb2YgaW1hZ2VzQXJyYXlEYXRhXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwib2JqLmltYWdlcy5lbnRyeVRpbWVJbWFnZVwiIGNsYXNzPVwiaW1nLXNyYyBjdXJzb3ItcG9pbnRlclwiIFtzcmNdPVwib2JqLmltYWdlcy5lbnRyeVRpbWVJbWFnZVwiIChlcnJvcik9XCJvYmo/LmltYWdlcy5lbnRyeVRpbWVJbWFnZSA9IG51bGxcIiBhbHQ9XCJcIiAoY2xpY2spPVwiaW1hZ2VWaWV3KG9iaixvYmpEYXRhLmZvb3RmYWxsRGF0ZSlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhb2JqLmltYWdlcy5lbnRyeVRpbWVJbWFnZVwiIGNsYXNzPVwibm8tcHJldmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWItNVwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjIzXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIzIDIwXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgaWQ9XCJHcm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjUgNi4zMjIyN0g2LjUxTTE2LjI1IDkuMzIyMjdIMjEuNUwxOCAxNi4zMjIzTDE0LjkxIDEyLjAwMjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JfMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMS41IDE2LjMyMjlINS4yNkM1LjYzMjczIDE2LjMyNTUgNS45OTg3NyAxNi4yMjM5IDYuMzE2ODIgMTYuMDI5NUM2LjYzNDg3IDE1LjgzNTIgNi44OTIyOCAxNS41NTU4IDcuMDYgMTUuMjIyOUw4LjUgMTIuMzIyOU0xLjUgMTguMzIyOVYxNC4zMjI5TTE3LjUgNi44MjI5MUwxMy41IDE0LjgyMjlMMy4xMSA5LjYyMjkxQzIuNDIwMzMgOS4yNzU1MyAxLjg5NjM1IDguNjY5MSAxLjY1MjcyIDcuOTM2MzJDMS40MDkwOSA3LjIwMzU0IDEuNDY1NjQgNi40MDQxIDEuODEgNS43MTI5MUwzLjE5IDIuOTIyOTFDMy4zNjIgMi41ODAxNCAzLjU5OTg0IDIuMjc0NiAzLjg4OTk0IDIuMDIzNzVDNC4xODAwMyAxLjc3MjkgNC41MTY3IDEuNTgxNjUgNC44ODA3MiAxLjQ2MDkzQzUuMjQ0NzQgMS4zNDAyMSA1LjYyODk3IDEuMjkyMzkgNi4wMTE0NyAxLjMyMDE4QzYuMzkzOTggMS4zNDc5NyA2Ljc2NzI2IDEuNDUwODQgNy4xMSAxLjYyMjkxTDE3LjUgNi44MjI5MVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkZXIgbWItNSB0ZXh0LWNlbnRlclwiPlByZXZpZXcgbm90IGF2YWlsYWJsZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRlc2NyaXB0aW9uIG1iLTUgdGV4dC1jZW50ZXJcIj5UaGUgc2VsZWN0ZWQgY2FtZXJhIGlzIG5vdCBhdmFpbGFibGUgYXQgdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vbWVudC48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtMiBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yIGltZy1kb2MtZGlyZWN0b3J5XCI+PHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1pbmZvXCI+e3tvYmoudGVtcElkfX08L3NwYW4+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiAqbmdJZj1cInNlbGVjdENvbnRyb2wudmFsdWUgPT09J21pc3NlZE9wcG9ydHVuaXR5J1wiIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2VzcyBtcy0yXCI+TWlzc2VkIE9wcG9ydHVuaXR5PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RDb250cm9sLnZhbHVlID09PSdib3VuY2VkJ1wiIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2VzcyBtcy0yXCI+Qm91bmNlZCBGb290ZmFsbDwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm9iaj8ucmV2b3BzVHlwZSB8fCBzZWxlY3RDb250cm9sLnZhbHVlIGFzIHZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2UgbXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWRnZS1saWdodC1zdWNjZXNzJzogdmFsdWUgPT09ICdmb290ZmFsbCcgfHwgdmFsdWUgPT09ICdwdXJjaGFzZXInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtd2FybmluZyc6IHZhbHVlID09PSAnbm9uU2hvcHBlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWRnZS1saWdodC1kYW5nZXInOiB2YWx1ZSA9PT0gJ2JvdW5jZWQnIHx8IHZhbHVlID09PSAnZW5nYWdlcicgfHwgdmFsdWUgPT09ICdtaXNzZWRPcHBvcnR1bml0eScgfHwgdmFsdWUgPT09ICdjb252ZXJzaW9uJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhZGdlLWxpZ2h0LXByaW1hcnknOiAhdmFsdWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gJ3B1cmNoYXNlcicgPyAnUHVyY2hhc2VyJyA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT09ICdub25TaG9wcGVyJyA/ICdOb24gU2hvcHBlcicgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID09PSAnbWlzc2VkT3Bwb3J0dW5pdHknID8gJ01pc3NlZCBPcHBvcnR1bml0eScgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSB8IHRpdGxlY2FzZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yIGltZy1kb2MtdGltZVwiPkVudHJ5IFRpbWU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNsaWVudERhdGE/LnRyYWNrZXJGRlwiIGNsYXNzPVwicHktMiBpbWctZG9jLXRpbWVcIj5FeGl0IFRpbWU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNsaWVudERhdGE/LnRyYWNrZXJGRlwiIGNsYXNzPVwicHktMiBpbWctZG9jLXRpbWVcIj5Ub3RhbCBUaW1lIFNwZW50PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IHRleHQtZW5kXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKm5nSWY9XCIhb2JqPy5yZXZvcHNUeXBlfHxvYmo/LnJldm9wc1R5cGU9PT0nJ1wiIG5nYlRvb2x0aXA9XCJZZXQgdG8gdGFnIHRoZSBjdXN0b21lclwiIChjbGljayk9XCJyZXZvcFRhZ2dpbmcob2JqKVwiIHBsYWNlbWVudD1cInRvcFwiPiA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE3XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE3IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzEwMzM1XzIyODUyKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTguMzczMjggMC4wMDIwMTYwNkM3LjIwOTMyIC0wLjAyMzMxNSA2LjA1Mzg1IDAuMjA1NzExIDQuOTg3NTUgMC42NzMxMDZDMy45MjEyNSAxLjE0MDUgMi45Njk4MSAxLjgzNSAyLjE5OTY3IDIuNzA4MTFDMS40Mjk1MiAzLjU4MTIzIDAuODU5MjI1IDQuNjExOTIgMC41Mjg1OTYgNS43MjgyMkMwLjE5Nzk2NiA2Ljg0NDUzIDAuMTE0OTcxIDguMDE5NTUgMC4yODU0MDQgOS4xNzEyNEMwLjQ1NTgzNyAxMC4zMjI5IDAuODc1NTkxIDExLjQyMzYgMS41MTUzNiAxMi4zOTYzQzIuMTU1MTMgMTMuMzY5IDIuOTk5NSAxNC4xOTAzIDMuOTg5NTEgMTQuODAyOUM0Ljk3OTUzIDE1LjQxNTYgNi4wOTEzMyAxNS44MDQ4IDcuMjQ3MyAxNS45NDMzQzguNDAzMjYgMTYuMDgxOCA5LjU3NTU0IDE1Ljk2NjQgMTAuNjgyMyAxNS42MDVDMTAuODcxNCAxNS41NDMyIDExLjAyODIgMTUuNDA4OCAxMS4xMTgyIDE1LjIzMTRDMTEuMjA4MiAxNS4wNTQgMTEuMjI0MSAxNC44NDgxIDExLjE2MjMgMTQuNjU5QzExLjEwMDUgMTQuNDY5OSAxMC45NjYxIDE0LjMxMzEgMTAuNzg4NyAxNC4yMjMxQzEwLjYxMTMgMTQuMTMzMSAxMC40MDU0IDE0LjExNzIgMTAuMjE2MyAxNC4xNzlDOS4wMTM1OSAxNC41NzE3IDcuNzIyNDIgMTQuNjA0OSA2LjUwMTE0IDE0LjI3NDVDNS4yNzk4NiAxMy45NDQxIDQuMTgxNTUgMTMuMjY0NCAzLjM0MDkyIDEyLjMxODlDMi41MDAyOCAxMS4zNzM0IDEuOTUzODYgMTAuMjAzMSAxLjc2ODY3IDguOTUxNTFDMS41ODM0OCA3LjY5OTk1IDEuNzY3NTcgNi40MjE1NSAyLjI5ODM3IDUuMjczMDlDMi44MjkxNiA0LjEyNDYzIDMuNjgzNTggMy4xNTYwNCA0Ljc1Njg0IDIuNDg2MTFDNS44MzAxMSAxLjgxNjE4IDcuMDc1NTUgMS40NzQwMyA4LjM0MDQ0IDEuNTAxNjNDOS42MDUzMyAxLjUyOTIyIDEwLjgzNDcgMS45MjUzNiAxMS44Nzc3IDIuNjQxNDdDMTIuOTIwNyAzLjM1NzU3IDEzLjczMjEgNC4zNjI1IDE0LjIxMjMgNS41MzMwMkMxNC4yODc3IDUuNzE3MDggMTQuNDMzMiA1Ljg2MzYyIDE0LjYxNjcgNS45NDA0MkMxNC43MDc2IDUuOTc4NDUgMTQuODA1IDUuOTk4MiAxNC45MDM1IDUuOTk4NTZDMTUuMDAyIDUuOTk4OTIgMTUuMDk5NiA1Ljk3OTg4IDE1LjE5MDggNS45NDI1MkMxNS4yODE5IDUuOTA1MTYgMTUuMzY0OCA1Ljg1MDIxIDE1LjQzNDcgNS43ODA4MkMxNS41MDQ2IDUuNzExNDIgMTUuNTYwMiA1LjYyODk0IDE1LjU5ODIgNS41MzgwOEMxNS42MzYyIDUuNDQ3MjEgMTUuNjU2IDUuMzQ5NzUgMTUuNjU2MyA1LjI1MTI2QzE1LjY1NjcgNS4xNTI3NiAxNS42Mzc2IDUuMDU1MTUgMTUuNjAwMyA0Ljk2NDAyQzE1LjAwOTMgMy41MjMzMSAxNC4wMTA3IDIuMjg2MzkgMTIuNzI2OSAxLjQwNDk4QzExLjQ0MzIgMC41MjM1NzEgOS45MzAxMiAwLjAzNTk4MTUgOC4zNzMyOCAwLjAwMjAxNjA2Wk04Ljk0ODI4IDMuNzUwMDJDOC45NDgyOCAzLjU1MTEgOC44NjkyNiAzLjM2MDM0IDguNzI4NjEgMy4yMTk2OUM4LjU4Nzk2IDMuMDc5MDMgOC4zOTcxOSAzLjAwMDAyIDguMTk4MjggMy4wMDAwMkM3Ljk5OTM3IDMuMDAwMDIgNy44MDg2IDMuMDc5MDMgNy42Njc5NSAzLjIxOTY5QzcuNTI3MyAzLjM2MDM0IDcuNDQ4MjggMy41NTExIDcuNDQ4MjggMy43NTAwMlY3LjY5MDAyTDUuNDE0MjggOS43MjMwMkM1LjM0MDU5IDkuNzkxNjggNS4yODE0OSA5Ljg3NDQ4IDUuMjQwNSA5Ljk2NjQ4QzUuMTk5NTEgMTAuMDU4NSA1LjE3NzQ2IDEwLjE1NzggNS4xNzU2OSAxMC4yNTg1QzUuMTczOTEgMTAuMzU5MiA1LjE5MjQ0IDEwLjQ1OTIgNS4yMzAxNiAxMC41NTI2QzUuMjY3ODggMTAuNjQ2IDUuMzI0MDIgMTAuNzMwOCA1LjM5NTI0IDEwLjgwMjFDNS40NjY0NiAxMC44NzMzIDUuNTUxMjkgMTAuOTI5NCA1LjY0NDY4IDEwLjk2NzFDNS43MzgwNyAxMS4wMDQ5IDUuODM4MSAxMS4wMjM0IDUuOTM4OCAxMS4wMjE2QzYuMDM5NTEgMTEuMDE5OCA2LjEzODgyIDEwLjk5NzggNi4yMzA4MiAxMC45NTY4QzYuMzIyODIgMTAuOTE1OCA2LjQwNTYyIDEwLjg1NjcgNi40NzQyOCAxMC43ODNMOC43MjgyOCA4LjUzMDAyTDguOTQ4MjggOC4zMTAwMlYzLjc1MDAyWk0xNS4xOTgzIDE1QzE1LjE5ODMgMTUuMjY1MiAxNS4wOTI5IDE1LjUxOTYgMTQuOTA1NCAxNS43MDcxQzE0LjcxNzkgMTUuODk0NyAxNC40NjM1IDE2IDE0LjE5ODMgMTZDMTMuOTMzMSAxNiAxMy42Nzg3IDE1Ljg5NDcgMTMuNDkxMiAxNS43MDcxQzEzLjMwMzYgMTUuNTE5NiAxMy4xOTgzIDE1LjI2NTIgMTMuMTk4MyAxNUMxMy4xOTgzIDE0LjczNDggMTMuMzAzNiAxNC40ODA0IDEzLjQ5MTIgMTQuMjkyOUMxMy42Nzg3IDE0LjEwNTQgMTMuOTMzMSAxNCAxNC4xOTgzIDE0QzE0LjQ2MzUgMTQgMTQuNzE3OSAxNC4xMDU0IDE0LjkwNTQgMTQuMjkyOUMxNS4wOTI5IDE0LjQ4MDQgMTUuMTk4MyAxNC43MzQ4IDE1LjE5ODMgMTVaTTE0Ljk0ODMgOC43NTAwMkMxNC45NDgzIDguNTUxMSAxNC44NjkzIDguMzYwMzQgMTQuNzI4NiA4LjIxOTY5QzE0LjU4OCA4LjA3OTAzIDE0LjM5NzIgOC4wMDAwMiAxNC4xOTgzIDguMDAwMDJDMTMuOTk5NCA4LjAwMDAyIDEzLjgwODYgOC4wNzkwMyAxMy42NjggOC4yMTk2OUMxMy41MjczIDguMzYwMzQgMTMuNDQ4MyA4LjU1MTEgMTMuNDQ4MyA4Ljc1MDAyVjEyLjI1QzEzLjQ0ODMgMTIuNDQ4OSAxMy41MjczIDEyLjYzOTcgMTMuNjY4IDEyLjc4MDNDMTMuODA4NiAxMi45MjEgMTMuOTk5NCAxMyAxNC4xOTgzIDEzQzE0LjM5NzIgMTMgMTQuNTg4IDEyLjkyMSAxNC43Mjg2IDEyLjc4MDNDMTQuODY5MyAxMi42Mzk3IDE0Ljk0ODMgMTIuNDQ4OSAxNC45NDgzIDEyLjI1VjguNzUwMDJaXCIgZmlsbD1cIiNGNzkwMDlcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTUuMTg1OCA0LjEwMzc5QzE1LjA5OTYgMy45NDkwNyAxNS4wMDgzIDMuNzk3NDQgMTQuOTEyMSAzLjY0OTExQzE0LjU3NDcgMy4xMjg0MyAxNC4xNzc2IDIuNjQ4NTQgMTMuNzI4OSAyLjIxOTMyQzEzLjQxODcgMS45MjI1NyAxMy4wODM5IDEuNjUwMDQgMTIuNzI2OSAxLjQwNDk4QzEyLjcyNjkgMS40MDQ5MyAxMi43MjcgMS40MDUwNCAxMi43MjY5IDEuNDA0OThDMTIuNTE0NCAxLjI1OTA2IDEyLjI5NTQgMS4xMjM3OSAxMi4wNzExIDAuOTk5NzI5QzExLjgyNTUgMC44NjM4OTMgMTEuNTczNCAwLjc0MTMyMiAxMS4zMTU5IDAuNjMyMzc3QzEwLjM4ODIgMC4yMzk4NzMgOS4zOTAwNiAwLjAyNDE5OSA4LjM3MzI4IDAuMDAyMDE2MDZDOC4zNzMyNCAwLjAwMjAxNTE4IDguMzczMzIgMC4wMDIwMTY5NCA4LjM3MzI4IDAuMDAyMDE2MDZDOC4zMTQ5NiAwLjAwMDc0Nzc5IDguMjU2NTUgMC4wMDAxMTUzODcgOC4xOTgyOCAwLjAwMDEyMjEyNEM3LjEyNzYgMC4wMDAyNDU5MiA2LjA2NzU0IDAuMjE1MzA0IDUuMDgxMDggMC42MzI4MTZDNS4wNDk4MyAwLjY0NjA0MyA1LjAxODY1IDAuNjU5NDczIDQuOTg3NTUgMC42NzMxMDZDNC43NjExNSAwLjc3MjM0MyA0LjUzOTkzIDAuODgxODIgNC4zMjQ1MiAxLjAwMTA3QzQuMjAyMDEgMS4wNjg4OSA0LjA4MTM5IDEuMTM5ODcgMy45NjI3NSAxLjIxMzkzQzMuMzA3NTYgMS42MjI5NiAyLjcxMzI5IDIuMTI1ODEgMi4xOTk2NyAyLjcwODExQzEuNjg2MDIgMy4yOTA0MyAxLjI2MTI3IDMuOTQyODUgMC45MzcyMzIgNC42NDRDMC43NzU0MTUgNC45OTQxNCAwLjYzODcxMyA1LjM1NjQzIDAuNTI4NTk2IDUuNzI4MjJDMC4xOTc5OSA2Ljg0NDQ1IDAuMTE0OTgzIDguMDE5MzggMC4yODUzNjYgOS4xNzA5OUMwLjI4NTM1NCA5LjE3MDkxIDAuMjg1Mzc5IDkuMTcxMDggMC4yODUzNjYgOS4xNzA5OUMwLjQ1NTggMTAuMzIyNyAwLjg3NTU5MSAxMS40MjM2IDEuNTE1MzYgMTIuMzk2M0MxLjcyODM1IDEyLjcyMDEgMS45NjQwMiAxMy4wMjcxIDIuMjIwMTkgMTMuMzE1M0MyLjczMzQ5IDEzLjg5MjcgMy4zMjkwOSAxNC4zOTQzIDMuOTg5NTEgMTQuODAyOUM0LjY0OTY3IDE1LjIxMTUgNS4zNjM5OCAxNS41MjA2IDYuMTA5NDMgMTUuNzIyNEM2LjQ4MTkgMTUuODIzMiA2Ljg2MjE1IDE1Ljg5NzEgNy4yNDczIDE1Ljk0MzNDNy4yOTEyMyAxNS45NDg2IDcuMzM1MTkgMTUuOTUzNSA3LjM3OTE3IDE1Ljk1OEM4LjAxNDkyIDE2LjAyMzUgOC42NTQ2NCAxNi4wMTI0IDkuMjg0NzggMTUuOTI2MUM5LjUyMTQ2IDE1Ljg5MzcgOS43NTY3OCAxNS44NTA3IDkuOTkwMDQgMTUuNzk3MUMxMC4yMjMgMTUuNzQzNiAxMC40NTM5IDE1LjY3OTYgMTAuNjgxOSAxNS42MDUxQzEwLjY4MTggMTUuNjA1MiAxMC42ODIxIDE1LjYwNTEgMTAuNjgxOSAxNS42MDUxQzEwLjcxOTYgMTUuNTkyOCAxMC43NTYzIDE1LjU3NzUgMTAuNzkxMSAxNS41NTk3QzEwLjkzMTIgMTUuNDg4IDExLjA0NjEgMTUuMzczNSAxMS4xMTgyIDE1LjIzMTRDMTEuMTU1NCAxNS4xNTgxIDExLjE4IDE1LjA3OTkgMTEuMTkxNiAxNUMxMS4yMDgxIDE0Ljg4NjcgMTEuMTk4NSAxNC43NyAxMS4xNjIzIDE0LjY1OUMxMS4xMDA1IDE0LjQ2OTkgMTAuOTY2MSAxNC4zMTMxIDEwLjc4ODcgMTQuMjIzMUMxMC42MTE0IDE0LjEzMzEgMTAuNDA1NiAxNC4xMTcyIDEwLjIxNjYgMTQuMTc4OUMxMC4yMTY1IDE0LjE3ODkgMTAuMjE2OCAxNC4xNzg5IDEwLjIxNjYgMTQuMTc4OUMxMC4xMTIxIDE0LjIxMyAxMC4wMDY1IDE0LjI0NDYgOS45MDA3MyAxNC4yNzMzQzkuNzQ4NDggMTQuMzE0NiA5LjU5NTA2IDE0LjM1MDMgOS40NDA3OCAxNC4zODAzQzkuMzcxNDYgMTQuMzkzOCA5LjMwMTk2IDE0LjQwNjIgOS4yMzIzMyAxNC40MTc0QzguODU0OCAxNC40NzgyIDguNDczMDIgMTQuNTA1NSA4LjA5MTQ0IDE0LjQ5OTJDNy45OTU2OCAxNC40OTc2IDcuODk5OTIgMTQuNDkzOSA3LjgwNDI2IDE0LjQ4ODFDNy42Nzc5IDE0LjQ4MDQgNy41NTE2OCAxNC40NjkxIDcuNDI1NzggMTQuNDU0QzcuMzYxMzMgMTQuNDQ2MyA3LjI5Njk2IDE0LjQzNzYgNy4yMzI2OSAxNC40Mjc5QzYuOTg2OTMgMTQuMzkxIDYuNzQyNjcgMTQuMzM5OSA2LjUwMTE0IDE0LjI3NDVDNi4zMjkzMyAxNC4yMjggNi4xNTk5NSAxNC4xNzQ2IDUuOTkzMzcgMTQuMTE0NkM1LjU2ODA5IDEzLjk2MTIgNS4xNjExMiAxMy43NjQyIDQuNzc4NyAxMy41Mjc2QzQuNzMzNzMgMTMuNDk5OCA0LjY4OTExIDEzLjQ3MTQgNC42NDQ4MyAxMy40NDI1QzQuMjcwMDMgMTMuMTk3OCAzLjkyMDI4IDEyLjkxNDIgMy42MDE3NCAxMi41OTU2QzMuNTEyMjkgMTIuNTA2MSAzLjQyNTMxIDEyLjQxMzggMy4zNDA5MiAxMi4zMTg5QzMuMTMxMzkgMTIuMDgzMiAyLjk0MDE0IDExLjgzMzYgMi43NjgyMSAxMS41NzIyQzIuNzYzODUgMTEuNTY1NiAyLjc1OTUgMTEuNTU5IDIuNzU1MTYgMTEuNTUyM0MyLjQ3OTY0IDExLjEzMDEgMi4yNTQzNyAxMC42Nzc1IDIuMDgzNjggMTAuMjAzOUMxLjkzODA3IDkuNzk5OTMgMS44MzIxOCA5LjM4MDYxIDEuNzY4NzEgOC45NTE3NEMxLjc2ODY5IDguOTUxNjYgMS43Njg3MiA4Ljk1MTgyIDEuNzY4NzEgOC45NTE3NEMxLjc0MTI1IDguNzY2MjEgMS43MjE4OCA4LjU3OTg2IDEuNzEwNTkgOC4zOTM2N0MxLjcwNDcxIDguMjk2ODMgMS43MDEwMSA4LjE5OTk4IDEuNjk5NDggOC4xMDMxN0MxLjY4OTAyIDcuNDQzNTUgMS43NzkwNSA2Ljc4NjI2IDEuOTY2MzEgNi4xNTQwNUMyLjA1NTIgNS44NTM5NCAyLjE2NjAxIDUuNTU5NDcgMi4yOTgzNyA1LjI3MzA5QzIuNTYzNzggNC42OTg4MyAyLjkxMDExIDQuMTY5NTQgMy4zMjQyNSAzLjcwMDA3QzMuMzY2MTggMy42NTI1NCAzLjQwODggMy42MDU2MyAzLjQ1MjEgMy41NTkzNEMzLjgzNjQ5IDMuMTQ4NDggNC4yNzQ1OCAyLjc4NzE0IDQuNzU2ODQgMi40ODYxMUM1LjAyNDUyIDIuMzE5MDMgNS4zMDI5MSAyLjE3MjMzIDUuNTg5NjMgMi4wNDY2OEM1LjgwNDcxIDEuOTUyNDIgNi4wMjQ0OSAxLjg3IDYuMjQ3OTYgMS43OTk3QzYuODc2MjggMS42MDIwMiA3LjUzMzggMS41MDAxMiA4LjE5ODI4IDEuNTAwMDhDOC4yNDU2MyAxLjUwMDA4IDguMjkzMDIgMS41MDA1OSA4LjM0MDQ0IDEuNTAxNjNDOC45NTc0NSAxLjUxNTExIDkuNTY2MiAxLjYxNjI5IDEwLjE0ODggMS43OTk1MkMxMC43NjA1IDEuOTkxODkgMTEuMzQzNSAyLjI3NDcyIDExLjg3NzcgMi42NDE0N0MxMS44Nzc2IDIuNjQxNDIgMTEuODc3OCAyLjY0MTUxIDExLjg3NzcgMi42NDE0N0MxMi4wODM5IDIuNzgzMDQgMTIuMjgxMiAyLjkzNjAzIDEyLjQ2ODUgMy4wOTkyMkMxMi42MzUxIDMuMjQ0MzYgMTIuNzkzOSAzLjM5NzY3IDEyLjk0NDQgMy41NTg0OEMxMy4wOTc0IDMuNzIxOTcgMTMuMjQxOSAzLjg5MzIyIDEzLjM3NzEgNC4wNzE1MkMxMy41NTU1IDQuMzA2NiAxMy43MTc5IDQuNTUzOTUgMTMuODYzMSA0LjgxMTk1QzEzLjk0MjcgNC45NTMzNiAxNC4wMTcxIDUuMDk3OTggMTQuMDg2MSA1LjI0NTUyQzE0LjEyNTMgNS4zMjkxNCAxNC4xNjI3IDUuNDEzNzEgMTQuMTk4MyA1LjQ5OTE2QzE0LjIwMyA1LjUxMDQzIDE0LjIwNzYgNS41MjE3MiAxNC4yMTIzIDUuNTMzMDJDMTQuMjEyMiA1LjUzMjkyIDE0LjIxMjMgNS41MzMxMiAxNC4yMTIzIDUuNTMzMDJDMTQuMjg3OCA1LjcxNjkzIDE0LjQzMzMgNS44NjM2NyAxNC42MTY3IDUuOTQwNDJDMTQuNzA3NiA1Ljk3ODQ1IDE0LjgwNSA1Ljk5ODIgMTQuOTAzNSA1Ljk5ODU2QzE1LjAwMiA1Ljk5ODkyIDE1LjA5OTYgNS45Nzk4OCAxNS4xOTA4IDUuOTQyNTJDMTUuMjgxOSA1LjkwNTE2IDE1LjM2NDggNS44NTAyMSAxNS40MzQ3IDUuNzgwODJDMTUuNTA0NiA1LjcxMTQyIDE1LjU2MDIgNS42Mjg5NCAxNS41OTgyIDUuNTM4MDhDMTUuNjM2MiA1LjQ0NzIyIDE1LjY1NiA1LjM0OTc1IDE1LjY1NjMgNS4yNTEyNkMxNS42NTY3IDUuMTUyNzYgMTUuNjM3NiA1LjA1NTE2IDE1LjYwMDMgNC45NjQwMkMxNS42MDAyIDQuOTYzOSAxNS42MDAzIDQuOTY0MTQgMTUuNjAwMyA0Ljk2NDAyQzE1LjUwOTEgNC43NDE4NyAxNS40MDgyIDQuNTI0MiAxNS4yOTgxIDQuMzEyMjlDMTUuMjYxNyA0LjI0MjIgMTUuMjI0MiA0LjE3MjY5IDE1LjE4NTggNC4xMDM3OVpNOC45NDgyOCAzLjc1MDAyQzguOTQ4MjggMy41NTExIDguODY5MjYgMy4zNjAzNCA4LjcyODYxIDMuMjE5NjlDOC42MTQwNSAzLjEwNTEyIDguNDY2MjQgMy4wMzE0NSA4LjMwNzg2IDMuMDA4MDZDOC4yNzE4OCAzLjAwMjc2IDguMjM1MDggMy4wMDAwMiA4LjE5ODI4IDMuMDAwMDJDNy45OTkzNyAzLjAwMDAyIDcuODA4NiAzLjA3OTAzIDcuNjY3OTUgMy4yMTk2OUM3LjUyNzMgMy4zNjAzNCA3LjQ0ODI4IDMuNTUxMSA3LjQ0ODI4IDMuNzUwMDJWNy42OTAwMkw1LjQxNDUyIDkuNzIyNzhDNS40MDE1OSA5LjczNDgzIDUuMzg4ODcgOS43NDc1NSA1LjM3Njg2IDkuNzYwNDRDNS4zMjA0MSA5LjgyMTAyIDUuMjc0MyA5Ljg5MDYyIDUuMjQwNSA5Ljk2NjQ4QzUuMTk5NTEgMTAuMDU4NSA1LjE3NzQ2IDEwLjE1NzggNS4xNzU2OSAxMC4yNTg1QzUuMTczOTEgMTAuMzU5MiA1LjE5MjQ0IDEwLjQ1OTIgNS4yMzAxNiAxMC41NTI2QzUuMjM4NjMgMTAuNTczNiA1LjI0ODA0IDEwLjU5NDIgNS4yNTgzNCAxMC42MTQyQzUuMjkzODcgMTAuNjgzNCA1LjM0MDAyIDEwLjc0NjggNS4zOTUyNCAxMC44MDIxQzUuNDY2NDYgMTAuODczMyA1LjU1MTI5IDEwLjkyOTQgNS42NDQ2OCAxMC45NjcxQzUuNzM4MDcgMTEuMDA0OSA1LjgzODEgMTEuMDIzNCA1LjkzODggMTEuMDIxNkM2LjAzOTUxIDExLjAxOTggNi4xMzg4MiAxMC45OTc4IDYuMjMwODIgMTAuOTU2OEM2LjMwNjY4IDEwLjkyMyA2LjM3NjI4IDEwLjg3NjkgNi40MzY4NiAxMC44MjA0QzYuNDQ5NjYgMTAuODA4NSA2LjQ2MjA2IDEwLjc5NjEgNi40NzQwMyAxMC43ODMzQzYuNDczOTUgMTAuNzgzNCA2LjQ3NDExIDEwLjc4MzIgNi40NzQwMyAxMC43ODMzTDguOTQ4MjggOC4zMTAwMlYzLjc1MDAyWk0xMy40NDgzIDEyLjI1QzEzLjQ0ODMgMTIuNDQ4OSAxMy41MjczIDEyLjYzOTcgMTMuNjY4IDEyLjc4MDNDMTMuODA4NiAxMi45MjEgMTMuOTk5NCAxMyAxNC4xOTgzIDEzQzE0LjM4OTUgMTMgMTQuNTczMiAxMi45MjcgMTQuNzEyMSAxMi43OTYzQzE0LjcxNzcgMTIuNzkxMSAxNC43MjMyIDEyLjc4NTggMTQuNzI4NiAxMi43ODAzQzE0Ljg2OTMgMTIuNjM5NyAxNC45NDgzIDEyLjQ0ODkgMTQuOTQ4MyAxMi4yNVYxMC4wNTY2QzE0LjcwMTUgMTAuMDE5MSAxNC40NTA5IDEwIDE0LjE5ODMgMTBDMTMuOTQ1NyAxMCAxMy42OTUgMTAuMDE5MSAxMy40NDgzIDEwLjA1NjZWMTIuMjVaTTEzLjQ0ODMgOS43NjkyN0MxMy42OTMyIDkuODQ4MjggMTMuOTQ0MSA5LjkwNzE5IDE0LjE5ODMgOS45NDU1MUMxNC40MjY0IDkuOTc5ODkgMTQuNjU3MiA5Ljk5NzY5IDE0Ljg4ODkgOS45OTg1NEMxNC45MDg3IDkuOTk4NjEgMTQuOTI4NSA5Ljk5ODU2IDE0Ljk0ODMgOS45OTgzOFY4Ljc1MDAyQzE0Ljk0ODMgOC42NTM1NiAxNC45Mjk3IDguNTU5MDEgMTQuODk0NSA4LjQ3MTE3QzE0Ljg1NzEgOC4zNzc4NyAxNC44MDExIDguMjkyMTMgMTQuNzI4NiA4LjIxOTY5QzE0LjU4OCA4LjA3OTA0IDE0LjM5NzIgOC4wMDAwMiAxNC4xOTgzIDguMDAwMDJDMTMuOTk5NCA4LjAwMDAyIDEzLjgwODYgOC4wNzkwNCAxMy42NjggOC4yMTk2OUMxMy42NjUgOC4yMjI2OCAxMy42NjIgOC4yMjU2OSAxMy42NTkxIDguMjI4NzJDMTMuNTI4MiA4LjM2NDEgMTMuNDUzIDguNTQzNzYgMTMuNDQ4NSA4LjczMTg4QzEzLjQ0ODQgOC43Mzc5MiAxMy40NDgzIDguNzQzOTcgMTMuNDQ4MyA4Ljc1MDAyVjkuNzY5MjdaTTE1LjE5NjMgMTUuMDYyNkMxNS4xOTc2IDE1LjA0MTggMTUuMTk4MyAxNS4wMjA5IDE1LjE5ODMgMTVDMTUuMTk4MyAxNC45OTg0IDE1LjE5ODMgMTQuOTk2OCAxNS4xOTgzIDE0Ljk5NTFDMTUuMTk3IDE0LjczMTcgMTUuMDkxOCAxNC40NzkzIDE0LjkwNTQgMTQuMjkyOUMxNC43MTc4IDE0LjEwNTQgMTQuNDYzNSAxNCAxNC4xOTgzIDE0QzEzLjkzMzEgMTQgMTMuNjc4NyAxNC4xMDU0IDEzLjQ5MTIgMTQuMjkyOUMxMy4zMDM2IDE0LjQ4MDQgMTMuMTk4MyAxNC43MzQ4IDEzLjE5ODMgMTVDMTMuMTk4MyAxNS4yNjUyIDEzLjMwMzYgMTUuNTE5NiAxMy40OTEyIDE1LjcwNzFDMTMuNjc4NyAxNS44OTQ3IDEzLjkzMzEgMTYgMTQuMTk4MyAxNkMxNC40NjM1IDE2IDE0LjcxNzggMTUuODk0NyAxNC45MDU0IDE1LjcwNzFDMTUuMDc4MSAxNS41MzQ0IDE1LjE4MTEgMTUuMzA1IDE1LjE5NjMgMTUuMDYyNlpcIiBmaWxsPVwiI0Y3OTAwOVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xMDMzNV8yMjg1MlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMC4xOTkyMTkpXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAqbmdJZj1cIm9iaj8ucmV2b3BzVHlwZSYmb2JqPy5yZXZvcHNUeXBlIT09JydcIiAgKGNsaWNrKT1cInJldm9wVGFnZ2luZyhvYmopXCIgbmdiVG9vbHRpcD1cIkN1c3RvbWVyIFRhZ2dpbmcgaXMgRG9uZVwiICBwbGFjZW1lbnQ9XCJ0b3BcIj4gPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxN1wiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNyAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xMDMzNV8yMjg1NilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUuMDYzOCA3LjM4NjYyVjcuOTk5OTVDMTUuMDYzIDkuNDM3NTYgMTQuNTk3NSAxMC44MzY0IDEzLjczNjcgMTEuOTg3OEMxMi44NzU5IDEzLjEzOTMgMTEuNjY2IDEzLjk4MTYgMTAuMjg3NCAxNC4zODkyQzguOTA4NzYgMTQuNzk2OCA3LjQzNTMxIDE0Ljc0NzkgNi4wODY3OCAxNC4yNDk3QzQuNzM4MjYgMTMuNzUxNSAzLjU4NjkxIDEyLjgzMDcgMi44MDQ0NCAxMS42MjQ3QzIuMDIxOTggMTAuNDE4NiAxLjY1MDMzIDguOTkxOTkgMS43NDQ5MiA3LjU1NzQ5QzEuODM5NTEgNi4xMjI5OSAyLjM5NTI3IDQuNzU3NSAzLjMyOTMyIDMuNjY0NjdDNC4yNjMzNyAyLjU3MTgzIDUuNTI1NjYgMS44MTAyMSA2LjkyNzkzIDEuNDkzMzhDOC4zMzAyIDEuMTc2NTYgOS43OTczMSAxLjMyMTUxIDExLjExMDUgMS45MDY2Mk0xNS4wNjM4IDIuNjY2NjJMOC4zOTcxNCA5LjMzOTk1TDYuMzk3MTQgNy4zMzk5NVwiIHN0cm9rZT1cIiMxMkI3NkFcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTAzMzVfMjI4NTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAuMzk4NDM4KVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTIgaW1nLWRvYy12YWx1ZVwiPnt7b2JqLnRpbWVTcGVudC5lbnRyeVRpbWV9fSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNsaWVudERhdGE/LnRyYWNrZXJGRlwiIGNsYXNzPVwicHktMiBpbWctZG9jLXZhbHVlXCI+e3tvYmoudGltZVNwZW50LmV4aXRUaW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNsaWVudERhdGE/LnRyYWNrZXJGRlwiIGNsYXNzPVwicHktMiBpbWctZG9jLXZhbHVlXCI+e3tvYmoudGltZVNwZW50LnRvdGFsVGltZVNwZW50fX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgIDxzZWN0aW9uICpuZ0lmPVwiaW1hZ2VGbG93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1zaHJpbmstMCBtdC0zIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBweC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImJhY2tUb1ZpZXcoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgNDAgNDBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8yNTg1XzcwMzYpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMVwiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHJ4PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjIuNVwiIHk9XCIxLjVcIiB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMzVcIiByeD1cIjcuNVwiIHN0cm9rZT1cIiNEMEQ1RERcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjUuODMyNyAxOUgxNC4xNjZNMTQuMTY2IDE5TDE5Ljk5OTMgMjQuODMzNE0xNC4xNjYgMTlMMTkuOTk5MyAxMy4xNjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZF8yNTg1XzcwMzZcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldCBkeT1cIjFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18yNTg1XzcwMzZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93XzI1ODVfNzAzNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJzaGFwZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgcHktMiBpbWctZG9jLWRpcmVjdG9yeVwiPjxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtaW5mb1wiPnt7SW1hZ2VkYXRhLnRlbXBJZH19PC9zcGFuPiBcclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiSW1hZ2VkYXRhPy5yZXZvcHNUeXBlIHx8IHNlbGVjdENvbnRyb2wudmFsdWUgYXMgdmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2UgbXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtc3VjY2Vzcyc6IHZhbHVlID09PSAnZm9vdGZhbGwnIHx8IHZhbHVlID09PSAncHVyY2hhc2VyJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtd2FybmluZyc6IHZhbHVlID09PSAnbm9uU2hvcHBlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhZGdlLWxpZ2h0LWRhbmdlcic6IHZhbHVlID09PSAnYm91bmNlZCcgfHwgdmFsdWUgPT09ICdlbmdhZ2VyJyB8fCB2YWx1ZSA9PT0gJ21pc3NlZE9wcG9ydHVuaXR5JyB8fCB2YWx1ZSA9PT0gJ2NvbnZlcnNpb24nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT09ICdwdXJjaGFzZXInID8gJ1B1cmNoYXNlcicgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT09ICdub25TaG9wcGVyJyA/ICdOb24gU2hvcHBlcicgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT09ICdtaXNzZWRPcHBvcnR1bml0eScgPyAnTWlzc2VkIE9wcG9ydHVuaXR5JyA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmFsdWUgfCB0aXRsZWNhc2UpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgW25nQ2xhc3NdPVwieyAnY3Vyc29yLW5vdC1hbGxvd2VkIG9wYWNpdHktNTAnOiBpc0ZpcnN0SW1hZ2UoKSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnBvaW50ZXItZXZlbnRzXT1cImlzRmlyc3RJbWFnZSgpID8gJ25vbmUnIDogJ2F1dG8nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiFpc0ZpcnN0SW1hZ2UoKSAmJiBwcmV2aW91cygpXCIgPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgNDAgNDBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMC41IDhDMC41IDMuODU3ODYgMy44NTc4NiAwLjUgOCAwLjVIMzkuNVYzOS41SDhDMy44NTc4NiAzOS41IDAuNSAzNi4xNDIxIDAuNSAzMlY4WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0wLjUgOEMwLjUgMy44NTc4NiAzLjg1Nzg2IDAuNSA4IDAuNUgzOS41VjM5LjVIOEMzLjg1Nzg2IDM5LjUgMC41IDM2LjE0MjEgMC41IDMyVjhaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiI0QwRDVERFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yMi41IDI1TDE3LjUgMjBMMjIuNSAxNVwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIFtuZ0NsYXNzXT1cInsgJ2N1cnNvci1ub3QtYWxsb3dlZCBvcGFjaXR5LTUwJzogaXNMYXN0SW1hZ2UoKSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnBvaW50ZXItZXZlbnRzXT1cImlzTGFzdEltYWdlKCkgPyAnbm9uZScgOiAnYXV0bydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiIWlzTGFzdEltYWdlKCkgJiYgbmV4dCgpXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0wLjUgMC41SDMyQzM2LjE0MjEgMC41IDM5LjUgMy44NTc4NiAzOS41IDhWMzJDMzkuNSAzNi4xNDIxIDM2LjE0MjEgMzkuNSAzMiAzOS41SDAuNVYwLjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTAuNSAwLjVIMzJDMzYuMTQyMSAwLjUgMzkuNSAzLjg1Nzg2IDM5LjUgOFYzMkMzOS41IDM2LjE0MjEgMzYuMTQyMSAzOS41IDMyIDM5LjVIMC41VjAuNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjRDBENUREXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE3LjUgMjVMMjIuNSAyMEwxNy41IDE1XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGNvbnRhaW4gbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC1sZy02IGNvbC14bC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiBjbGFzcz1cImltZy1zcmMxXCIgW3NyY109XCJJbWFnZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJJbWFnZXMgPSBudWxsXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIUltYWdlc1wiIGNsYXNzPVwibm8tcHJldmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjNcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjMgMjBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPVwiR3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3RvclwiIGQ9XCJNNi41IDYuMzIyMjdINi41MU0xNi4yNSA5LjMyMjI3SDIxLjVMMTggMTYuMzIyM0wxNC45MSAxMi4wMDIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEuNSAxNi4zMjI5SDUuMjZDNS42MzI3MyAxNi4zMjU1IDUuOTk4NzcgMTYuMjIzOSA2LjMxNjgyIDE2LjAyOTVDNi42MzQ4NyAxNS44MzUyIDYuODkyMjggMTUuNTU1OCA3LjA2IDE1LjIyMjlMOC41IDEyLjMyMjlNMS41IDE4LjMyMjlWMTQuMzIyOU0xNy41IDYuODIyOTFMMTMuNSAxNC44MjI5TDMuMTEgOS42MjI5MUMyLjQyMDMzIDkuMjc1NTMgMS44OTYzNSA4LjY2OTEgMS42NTI3MiA3LjkzNjMyQzEuNDA5MDkgNy4yMDM1NCAxLjQ2NTY0IDYuNDA0MSAxLjgxIDUuNzEyOTFMMy4xOSAyLjkyMjkxQzMuMzYyIDIuNTgwMTQgMy41OTk4NCAyLjI3NDYgMy44ODk5NCAyLjAyMzc1QzQuMTgwMDMgMS43NzI5IDQuNTE2NyAxLjU4MTY1IDQuODgwNzIgMS40NjA5M0M1LjI0NDc0IDEuMzQwMjEgNS42Mjg5NyAxLjI5MjM5IDYuMDExNDcgMS4zMjAxOEM2LjM5Mzk4IDEuMzQ3OTcgNi43NjcyNiAxLjQ1MDg0IDcuMTEgMS42MjI5MUwxNy41IDYuODIyOTFaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyIG1iLTUgdGV4dC1jZW50ZXJcIj5QcmV2aWV3IG5vdCBhdmFpbGFibGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjcmlwdGlvbiBtYi01IHRleHQtY2VudGVyXCI+VGhlIHNlbGVjdGVkIGNhbWVyYSBpcyBub3QgYXZhaWxhYmxlIGF0IHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb21lbnQuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBzbGlkZXIgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNFwiICpuZ0lmPVwiSW1hZ2VkYXRhPy5pbWFnZXM/LmVudHJ5VGltZUltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi01ICBib3JkZXItMlwiIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItZ3JheS1hY3RpdmUnOiBJbWFnZXMgPT09IEltYWdlZGF0YT8uaW1hZ2VzPy5lbnRyeVRpbWVJbWFnZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItZ3JheSc6IEltYWdlcyAhPT0gSW1hZ2VkYXRhPy5pbWFnZXM/LmVudHJ5VGltZUltYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5FbnRyeSBUaW1lPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgdy0xMDAgcm91bmRlZC0yIG1oLTEwMHB4IHBiLTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiSW1hZ2VkYXRhPy5pbWFnZXM/LmVudHJ5VGltZUltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IpPVwiSW1hZ2VkYXRhPy5pbWFnZXMuZW50cnlUaW1lSW1hZ2UgPSBudWxsXCIgYWx0PVwiXCIgKGNsaWNrKT1cImltYWdlRGF0YSgnZW50cnknKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFJbWFnZWRhdGE/LmltYWdlcz8uZW50cnlUaW1lSW1hZ2VcIiBjbGFzcz1cIm5vLXByZXZpZXctc20gY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjIzXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIzIDIwXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgaWQ9XCJHcm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjUgNi4zMjIyN0g2LjUxTTE2LjI1IDkuMzIyMjdIMjEuNUwxOCAxNi4zMjIzTDE0LjkxIDEyLjAwMjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JfMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMS41IDE2LjMyMjlINS4yNkM1LjYzMjczIDE2LjMyNTUgNS45OTg3NyAxNi4yMjM5IDYuMzE2ODIgMTYuMDI5NUM2LjYzNDg3IDE1LjgzNTIgNi44OTIyOCAxNS41NTU4IDcuMDYgMTUuMjIyOUw4LjUgMTIuMzIyOU0xLjUgMTguMzIyOVYxNC4zMjI5TTE3LjUgNi44MjI5MUwxMy41IDE0LjgyMjlMMy4xMSA5LjYyMjkxQzIuNDIwMzMgOS4yNzU1MyAxLjg5NjM1IDguNjY5MSAxLjY1MjcyIDcuOTM2MzJDMS40MDkwOSA3LjIwMzU0IDEuNDY1NjQgNi40MDQxIDEuODEgNS43MTI5MUwzLjE5IDIuOTIyOTFDMy4zNjIgMi41ODAxNCAzLjU5OTg0IDIuMjc0NiAzLjg4OTk0IDIuMDIzNzVDNC4xODAwMyAxLjc3MjkgNC41MTY3IDEuNTgxNjUgNC44ODA3MiAxLjQ2MDkzQzUuMjQ0NzQgMS4zNDAyMSA1LjYyODk3IDEuMjkyMzkgNi4wMTE0NyAxLjMyMDE4QzYuMzkzOTggMS4zNDc5NyA2Ljc2NzI2IDEuNDUwODQgNy4xMSAxLjYyMjkxTDE3LjUgNi44MjI5MVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkZXIgbWItMiB0ZXh0LWNlbnRlclwiPlByZXZpZXcgbm90IGF2YWlsYWJsZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRlc2NyaXB0aW9uIG1iLTIgdGV4dC1jZW50ZXJcIj5UaGUgc2VsZWN0ZWQgY2FtZXJhIGlzIG5vdCBhdmFpbGFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbWVudC48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00XCIgKm5nSWY9XCJJbWFnZWRhdGE/LmltYWdlcz8uc3RhZmZFbmdhZ2VtZW50SW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTUgYm9yZGVyLTJcIiBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYm9yZGVyLWdyYXktYWN0aXZlJzogSW1hZ2VzID09PSBJbWFnZWRhdGE/LmltYWdlcz8uc3RhZmZFbmdhZ2VtZW50SW1hZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYm9yZGVyLWdyYXknOiBJbWFnZXMgIT09IEltYWdlZGF0YT8uaW1hZ2VzPy5zdGFmZkVuZ2FnZW1lbnRJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+U3RhZmYgRW5nYWdlbWVudDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyIHctMTAwIHJvdW5kZWQtMiBtaC0xMDBweCBwYi0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIkltYWdlZGF0YT8uaW1hZ2VzPy5zdGFmZkVuZ2FnZW1lbnRJbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cIkltYWdlZGF0YT8uaW1hZ2VzLnN0YWZmRW5nYWdlbWVudEltYWdlID0gbnVsbFwiIGFsdD1cIlwiIChjbGljayk9XCJpbWFnZURhdGEoJ3N0YWZmJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhSW1hZ2VkYXRhPy5pbWFnZXM/LnN0YWZmRW5nYWdlbWVudEltYWdlXCIgY2xhc3M9XCJuby1wcmV2aWV3LXNtIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyM1wiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMyAyMFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPVwiR3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3RvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi41IDYuMzIyMjdINi41MU0xNi4yNSA5LjMyMjI3SDIxLjVMMTggMTYuMzIyM0wxNC45MSAxMi4wMDIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEuNSAxNi4zMjI5SDUuMjZDNS42MzI3MyAxNi4zMjU1IDUuOTk4NzcgMTYuMjIzOSA2LjMxNjgyIDE2LjAyOTVDNi42MzQ4NyAxNS44MzUyIDYuODkyMjggMTUuNTU1OCA3LjA2IDE1LjIyMjlMOC41IDEyLjMyMjlNMS41IDE4LjMyMjlWMTQuMzIyOU0xNy41IDYuODIyOTFMMTMuNSAxNC44MjI5TDMuMTEgOS42MjI5MUMyLjQyMDMzIDkuMjc1NTMgMS44OTYzNSA4LjY2OTEgMS42NTI3MiA3LjkzNjMyQzEuNDA5MDkgNy4yMDM1NCAxLjQ2NTY0IDYuNDA0MSAxLjgxIDUuNzEyOTFMMy4xOSAyLjkyMjkxQzMuMzYyIDIuNTgwMTQgMy41OTk4NCAyLjI3NDYgMy44ODk5NCAyLjAyMzc1QzQuMTgwMDMgMS43NzI5IDQuNTE2NyAxLjU4MTY1IDQuODgwNzIgMS40NjA5M0M1LjI0NDc0IDEuMzQwMjEgNS42Mjg5NyAxLjI5MjM5IDYuMDExNDcgMS4zMjAxOEM2LjM5Mzk4IDEuMzQ3OTcgNi43NjcyNiAxLjQ1MDg0IDcuMTEgMS42MjI5MUwxNy41IDYuODIyOTFaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyIG1iLTIgdGV4dC1jZW50ZXJcIj5QcmV2aWV3IG5vdCBhdmFpbGFibGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjcmlwdGlvbiBtYi0yIHRleHQtY2VudGVyXCI+VGhlIHNlbGVjdGVkIGNhbWVyYSBpcyBub3QgYXZhaWxhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb21lbnQuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgIGNsYXNzPVwiY29sLTQgXCIgKm5nSWY9XCJJbWFnZWRhdGE/LmltYWdlcz8uZXhpdFRpbWVJbWFnZSAmJiB0aGlzLmNsaWVudERhdGEudHJhY2tlckZGXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi01ICBib3JkZXItMlwiIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItZ3JheS1hY3RpdmUnOiBJbWFnZXMgPT09IEltYWdlZGF0YT8uaW1hZ2VzPy5leGl0VGltZUltYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1ncmF5JzogSW1hZ2VzICE9PSBJbWFnZWRhdGE/LmltYWdlcz8uZXhpdFRpbWVJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+RXhpdCBUaW1lPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgdy0xMDAgcm91bmRlZC0yIG1oLTEwMHB4IHBiLTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiSW1hZ2VkYXRhPy5pbWFnZXM/LmV4aXRUaW1lSW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJJbWFnZWRhdGE/LmltYWdlcy5leGl0VGltZUltYWdlID0gbnVsbFwiIGFsdD1cIlwiIChjbGljayk9XCJpbWFnZURhdGEoJ2V4aXQnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFJbWFnZWRhdGE/LmltYWdlcz8uZXhpdFRpbWVJbWFnZVwiIGNsYXNzPVwibm8tcHJldmlldy1zbSBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjNcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjMgMjBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBpZD1cIkdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuNSA2LjMyMjI3SDYuNTFNMTYuMjUgOS4zMjIyN0gyMS41TDE4IDE2LjMyMjNMMTQuOTEgMTIuMDAyM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3Rvcl8yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xLjUgMTYuMzIyOUg1LjI2QzUuNjMyNzMgMTYuMzI1NSA1Ljk5ODc3IDE2LjIyMzkgNi4zMTY4MiAxNi4wMjk1QzYuNjM0ODcgMTUuODM1MiA2Ljg5MjI4IDE1LjU1NTggNy4wNiAxNS4yMjI5TDguNSAxMi4zMjI5TTEuNSAxOC4zMjI5VjE0LjMyMjlNMTcuNSA2LjgyMjkxTDEzLjUgMTQuODIyOUwzLjExIDkuNjIyOTFDMi40MjAzMyA5LjI3NTUzIDEuODk2MzUgOC42NjkxIDEuNjUyNzIgNy45MzYzMkMxLjQwOTA5IDcuMjAzNTQgMS40NjU2NCA2LjQwNDEgMS44MSA1LjcxMjkxTDMuMTkgMi45MjI5MUMzLjM2MiAyLjU4MDE0IDMuNTk5ODQgMi4yNzQ2IDMuODg5OTQgMi4wMjM3NUM0LjE4MDAzIDEuNzcyOSA0LjUxNjcgMS41ODE2NSA0Ljg4MDcyIDEuNDYwOTNDNS4yNDQ3NCAxLjM0MDIxIDUuNjI4OTcgMS4yOTIzOSA2LjAxMTQ3IDEuMzIwMThDNi4zOTM5OCAxLjM0Nzk3IDYuNzY3MjYgMS40NTA4NCA3LjExIDEuNjIyOTFMMTcuNSA2LjgyMjkxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlciBtYi0yIHRleHQtY2VudGVyXCI+UHJldmlldyBub3QgYXZhaWxhYmxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGVzY3JpcHRpb24gbWItMiB0ZXh0LWNlbnRlclwiPlRoZSBzZWxlY3RlZCBjYW1lcmEgaXMgbm90IGF2YWlsYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9tZW50Ljwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtbGctNiBjb2wteGwtNiBwZS0wIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cIm5hdiBmbGV4LXdyYXAgbmF2LWRldiBmdy1ib2xkIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIG15LTEgdy01MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwic2VsZWN0ZWRUYWIgPSAndGFnZ2VkJ1wiIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0YWItYWN0aXZlJzogc2VsZWN0ZWRUYWIgPT09ICd0YWdnZWQnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiIGNsYXNzPVwidGFiLXRleHQtZGVmYXVsdCBidG4gbmF2LWxpbmsgcHgtMyBweC1sZy04IG14LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhZ2dlZCBJbmZvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbSBteS0xIHctNTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cInNlbGVjdGVkVGFiID0gJ2N1c3RvbWVyJ1wiIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0YWItYWN0aXZlJzogc2VsZWN0ZWRUYWIgPT09ICdjdXN0b21lcidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCIgY2xhc3M9XCJ0YWItdGV4dC1kZWZhdWx0IGJ0biBuYXYtbGluayBweC0zIHB4LWxnLTggbXgtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXIgSW5mb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cInNlbGVjdGVkVGFiID09PSAndGFnZ2VkJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBteC0zIG10LTUgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBmb3JtLWNoZWNrIG10LTUgcHgtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJleGFtcGxlUmFkaW9zXCIgaWQ9XCJyYWRpb05vblNob3BwZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwibm9uU2hvcHBlclwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRDdXN0b21lclR5cGVcIiAoY2hhbmdlKT1cIm9uUmFkaW9DaGFuZ2UoJ25vblNob3BwZXInKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBjdXJzb3ItcG9pbnRlciB0b2dnbGUtbGFiZWxcIiBmb3I9XCJyYWRpb05vblNob3BwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb24gU2hvcHBlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBmb3JtLWNoZWNrIG10LTUgcHgtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJleGFtcGxlUmFkaW9zXCIgaWQ9XCJyYWRpb1B1cmNoYXNlclwiIHZhbHVlPVwicHVyY2hhc2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkQ3VzdG9tZXJUeXBlXCIgKGNoYW5nZSk9XCJvblJhZGlvQ2hhbmdlKCdwdXJjaGFzZXInKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBjdXJzb3ItcG9pbnRlciB0b2dnbGUtbGFiZWxcIiBmb3I9XCJyYWRpb1B1cmNoYXNlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1cmNoYXNlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBmb3JtLWNoZWNrIG10LTUgcHgtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwiZXhhbXBsZVJhZGlvc1wiIGlkPVwicmFkaW9NaXNzZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwibWlzc2VkT3Bwb3J0dW5pdHlcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkQ3VzdG9tZXJUeXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uUmFkaW9DaGFuZ2UoJ21pc3NlZE9wcG9ydHVuaXR5JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgY3Vyc29yLXBvaW50ZXIgdG9nZ2xlLWxhYmVsXCIgZm9yPVwicmFkaW9NaXNzZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaXNzZWQgT3Bwb3J0dW5pdHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gKm5nSWY9XCJzZWxlY3RlZEN1c3RvbWVyVHlwZSA9PT0nbm9uU2hvcHBlcidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTUgbXgtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLWdyYXktYWN0aXZlMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IG9iaiBvZiBub25TaG9wcGVyTGlzdFwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYWRnZSAgbXQtMyBtZS04XCIgICAgIFtuZ0NsYXNzXT1cIm9iaiE9PW5vblNob3BlclR5cGUgPyAnYmFkZ2UtbGlnaHQtZGVmYXVsdCcgOidiYWRnZS1saWdodC1wcmltYXJ5J1wiIChjbGljayk9XCJzZWxlY3Rub25TaG9wZXIob2JqKVwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiAqbmdJZj1cIm9iaiE9PW5vblNob3BlclR5cGVcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk02IDIuNVY5LjVNMi41IDZIOS41XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgKm5nSWY9XCJvYmo9PT1ub25TaG9wZXJUeXBlXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHJ4PVwiOFwiIGZpbGw9XCIjREFGMUZGXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTEuMzk3NyA0LjkyNjYxTDYuNjI0MzQgOS41MzMyOEw1LjM1NzY3IDguMTc5OTRDNS4xMjQzNCA3Ljk1OTk0IDQuNzU3NjcgNy45NDY2MSA0LjQ5MSA4LjEzMzI4QzQuMjMxIDguMzI2NjEgNC4xNTc2NyA4LjY2NjYxIDQuMzE3NjcgOC45Mzk5NEw1LjgxNzY3IDExLjM3OTlDNS45NjQzNCAxMS42MDY2IDYuMjE3NjcgMTEuNzQ2NiA2LjUwNDM0IDExLjc0NjZDNi43Nzc2NyAxMS43NDY2IDcuMDM3NjcgMTEuNjA2NiA3LjE4NDM0IDExLjM3OTlDNy40MjQzNCAxMS4wNjY2IDEyLjAwNDMgNS42MDY2MSAxMi4wMDQzIDUuNjA2NjFDMTIuNjA0MyA0Ljk5MzI4IDExLjg3NzcgNC40NTMyOCAxMS4zOTc3IDQuOTE5OTRWNC45MjY2MVpcIiBmaWxsPVwiIzMzQjVGRlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTNcIj57e29ian19PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG10LTUgcGItMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZXhhbXBsZUlucHV0TmFtZVwiPkRlc2NyaXB0aW9uIChPcHRpb25hbCk8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIFsobmdNb2RlbCldPVwiZGVzY3JpcHRpb25cIiBjbGFzcz1cImZvcm0tY29udHJvbCBtdC0zXCIgcm93cz1cIjRcIiBwbGFjZWhvbGRlcj1cIlwiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZW5kIG10LTVcIiAoY2xpY2spPVwibm9uU2hvcHBlclN1Ym1pdCgpXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXQtM1wiPlN1Ym1pdDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gKm5nSWY9XCJzZWxlY3RlZEN1c3RvbWVyVHlwZSA9PT0ncHVyY2hhc2VyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInVzZXJGb3JtXCIgKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYm9yZGVyLWdyYXktYWN0aXZlMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibmFtZVwiPk5hbWU8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJuYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgTmFtZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiByZXF1aXJlZCBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzp1c2VyRm9ybS5nZXQoJ25hbWUnKT8uaW52YWxpZCAmJiAodXNlckZvcm0uZ2V0KCduYW1lJyk/LnRvdWNoZWQpfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzSW52YWxpZCgnbmFtZScpXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZi5uYW1lLmVycm9ycz8ucmVxdWlyZWRcIj5OYW1lIGlzIHJlcXVpcmVkPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtbGctNiBjb2wteGwtNiBjb2wteHhsLTYgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJjb250YWN0XCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+Q29udGFjdCBOdW1iZXIgPHNwYW4gY2xhc3M9XCJhbGVydC1yZXF1aXJlZCB0ZXh0LWRhbmdlclwiPio8L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy00IGNvbC14bC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCBwcy0zIHBlLThcIiBpZD1cImlucHV0R3JvdXBTZWxlY3QwMVwiIGZvcm1Db250cm9sTmFtZT1cImNvdW50cnlDb2RlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgY291bnRyeSBvZiBjb3VudHJ5TGlzdFwiIFt2YWx1ZV09XCJjb3VudHJ5LnBob25lY29kZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjb3VudHJ5Lm5hbWV9fSAoe3tjb3VudHJ5LnBob25lY29kZX19KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctOCBjb2wteGwtOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIChrZXlwcmVzcyk9XCJvbWl0X3NwZWNpYWxfY2hhcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cIm1vYmlsZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIGZvcm1Db250cm9sTmFtZT1cIm1vYmlsZVwiIG1pbmxlbmd0aD1cIjhcIiBtYXhsZW5ndGg9XCIxM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6dXNlckZvcm0uZ2V0KCdtb2JpbGUnKT8uaW52YWxpZCAmJiAodXNlckZvcm0uZ2V0KCdtb2JpbGUnKT8udG91Y2hlZCl9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzSW52YWxpZCgnbW9iaWxlJylcIiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZi5tb2JpbGUuZXJyb3JzPy5yZXF1aXJlZFwiPkNvbnRhY3QgTnVtYmVyIGlzIHJlcXVpcmVkLjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImYubW9iaWxlLmVycm9ycz8ubWlubGVuZ3RoXCI+Q29udGFjdCBOdW1iZXIgbXVzdCBiZSBhdCBsZWFzdCA4IGRpZ2l0cy48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmLm1vYmlsZS5lcnJvcnM/Lm1heGxlbmd0aFwiPkNvbnRhY3QgTnVtYmVyIGNhbm5vdCBleGNlZWQgMTMgZGlnaXRzLjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgY29sLWxnLTYgY29sLXhsLTYgY29sLXh4bC02IG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1haWxcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5FbWFpbCA8c3BhbiBjbGFzcz1cImFsZXJ0LXJlcXVpcmVkIHRleHQtZGFuZ2VyXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZW1haWxcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiZW1haWxcIiBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6dXNlckZvcm0uZ2V0KCdlbWFpbCcpPy5pbnZhbGlkICYmICh1c2VyRm9ybS5nZXQoJ2VtYWlsJyk/LnRvdWNoZWQpfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc0ludmFsaWQoJ2VtYWlsJylcIiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmLmVtYWlsLmVycm9ycz8ucmVxdWlyZWRcIj5FbWFpbCBpcyByZXF1aXJlZC48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImYuZW1haWwuZXJyb3JzPy5wYXR0ZXJuXCI+SW52YWxpZCBlbWFpbCBmb3JtYXQuPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJsb2NhdGlvblwiPkxvY2F0aW9uPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImxvY2F0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIG10LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJMb2NhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsb2NhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbCBtdC0zXCIgaWQ9XCJsb2NhdGlvblwiIGZvcm1Db250cm9sTmFtZT1cImxvY2F0aW9uXCIgI3BsYWNlc1JlZj1cIm5neC1wbGFjZXNcIiBuZ3gtZ3AtYXV0b2NvbXBsZXRlIChvbkFkZHJlc3NDaGFuZ2UpPVwiaGFuZGxlQWRkcmVzc0NoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOnVzZXJGb3JtLmdldCgnbG9jYXRpb24nKT8uaW52YWxpZCAmJiAodXNlckZvcm0uZ2V0KCdsb2NhdGlvbicpPy50b3VjaGVkKX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIoZi5sb2NhdGlvbi50b3VjaGVkIHx8IHN1Ym1pdHRlZCkgJiYgZi5sb2NhdGlvbi5lcnJvcnNcIiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmLmxvY2F0aW9uLmVycm9ycy5yZXF1aXJlZFwiPkxvY2F0aW9uIGlzIHJlcXVpcmVkPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJhZ2VcIj5BZ2U8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBwdC01IHBvc2l0aW9uLWFic29sdXRlIHRvcC01MCB0cmFuc2xhdGUtbWlkZGxlLXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwibGVmdDogMC4yNXJlbTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWNyZW1lbnRBZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiIChrZXlwcmVzcyk9XCJvbWl0X3NwZWNpYWxfY2hhcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgcGUtNSB0ZXh0LWNlbnRlciBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbj1cIjFcIiBtYXg9XCI5OVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBwdC01IHBvc2l0aW9uLWFic29sdXRlIHRvcC01MCB0cmFuc2xhdGUtbWlkZGxlLXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwicmlnaHQ6IDIuNXJlbTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJpbmNyZW1lbnRBZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3VibWl0dGVkICYmIGYuYWdlLmVycm9yc1wiIGNsYXNzPVwidGV4dC1kYW5nZXIgbXQtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZi5hZ2UuZXJyb3JzLnJlcXVpcmVkXCI+QWdlIGlzIHJlcXVpcmVkPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmLmFnZS5lcnJvcnMubWluXCI+QWdlIG11c3QgYmUgYXQgbGVhc3QgMTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZi5hZ2UuZXJyb3JzLm1heFwiPkFnZSBtdXN0IGJlIGF0IGxlYXN0IDk5PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJnZW5kZXJcIj5HZW5kZXI8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IG10LTNcIiBmb3JtQ29udHJvbE5hbWU9XCJnZW5kZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPlNlbGVjdCBHZW5kZXI8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm1hbGVcIj5NYWxlPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJmZW1hbGVcIj5GZW1hbGU8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN1Ym1pdHRlZCAmJiBmLmdlbmRlci5lcnJvcnNcIiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmLmdlbmRlci5lcnJvcnMucmVxdWlyZWRcIj5HZW5kZXIgaXMgcmVxdWlyZWQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZW5kIG10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXQtM1wiPlN1Ym1pdDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gKm5nSWY9XCJzZWxlY3RlZEN1c3RvbWVyVHlwZSA9PT0nbWlzc2VkT3Bwb3J0dW5pdHknXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC01IG14LTMgYm9yZGVyLWdyYXktYWN0aXZlMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb2JqIG9mIG1pc3NlZE9wcG9ydHVuaXR5TGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWl0ZW0gbmF2LWl0ZW0xIHctMjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0ZWRUYWJzKG9iai5uYW1lKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlbGVjdGVkTWlzc2VkID09PSBvYmoubmFtZSA/ICdhY3RpdmUnIDogJ2FjdGl2ZS1ub3JtYWwnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rIG5hdi1saW5rMSBjdXJzb3ItcG9pbnRlciB0ZXh0LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG9iai5uYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIHNlcGFyYXRvci1kb3VibGUgbWItM1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gSXNzdWUgQmFkZ2VzIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG9iaiBvZiBtaXNzZWRPcHBvcnR1bml0eUxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZE1pc3NlZCA9PT0gb2JqLm5hbWVcIiBjbGFzcz1cIm10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb2JqLmlzc3Vlc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0U3ViaXNzdWUob2JqLCBpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWRnZS1saWdodC1wcmltYXJ5Jzogc2VsZWN0ZWRJc3N1ZXMuaW5jbHVkZXMoaXRlbSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWRnZS1saWdodC1kZWZhdWx0Jzohc2VsZWN0ZWRJc3N1ZXMuaW5jbHVkZXMoaXRlbSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWRnZSBtdC0yIG1lLTIgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWUtMlwiICpuZ0lmPVwiIXNlbGVjdGVkSXNzdWVzLmluY2x1ZGVzKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk02IDIuNVY5LjVNMi41IDZIOS41XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWUtMlwiICpuZ0lmPVwic2VsZWN0ZWRJc3N1ZXMuaW5jbHVkZXMoaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiICB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgcng9XCI4XCIgZmlsbD1cIiNEQUYxRkZcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMS4zOTc3IDQuOTI2NjFMNi42MjQzNCA5LjUzMzI4TDUuMzU3NjcgOC4xNzk5NEM1LjEyNDM0IDcuOTU5OTQgNC43NTc2NyA3Ljk0NjYxIDQuNDkxIDguMTMzMjhDNC4yMzEgOC4zMjY2MSA0LjE1NzY3IDguNjY2NjEgNC4zMTc2NyA4LjkzOTk0TDUuODE3NjcgMTEuMzc5OUM1Ljk2NDM0IDExLjYwNjYgNi4yMTc2NyAxMS43NDY2IDYuNTA0MzQgMTEuNzQ2NkM2Ljc3NzY3IDExLjc0NjYgNy4wMzc2NyAxMS42MDY2IDcuMTg0MzQgMTEuMzc5OUM3LjQyNDM0IDExLjA2NjYgMTIuMDA0MyA1LjYwNjYxIDEyLjAwNDMgNS42MDY2MUMxMi42MDQzIDQuOTkzMjggMTEuODc3NyA0LjQ1MzI4IDExLjM5NzcgNC45MTk5NFY0LjkyNjYxWlwiIGZpbGw9XCIjMzNCNUZGXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkRlc2NyaXB0aW9uIChPcHRpb25hbCk8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M9XCIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIGNvbW1lbnRzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJkZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWVuZCBtdC01XCIgKGNsaWNrKT1cInN1Ym1pdE1pc3NlZE9wcG9ydHVuaXR5KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG10LTNcIj5TdWJtaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cInNlbGVjdGVkVGFiID09PSAnY3VzdG9tZXInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWctY2xhc3NcIj5UYWdnZWQgU3VtbWFyeSA8c3BhbiAqbmdJZj1cInRhZ2dnZWREYXRhPy5zdGF0dXM9PT0nc3VibWl0dGVkJ1wiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE0LjY2NjggNy4zODY3NFY4LjAwMDA3QzE0LjY2NiA5LjQzNzY5IDE0LjIwMDUgMTAuODM2NSAxMy4zMzk3IDExLjk4OEMxMi40Nzg5IDEzLjEzOTQgMTEuMjY5IDEzLjk4MTcgOS44OTA0IDE0LjM4OTNDOC41MTE3OCAxNC43OTcgNy4wMzgzNCAxNC43NDggNS42ODk4MSAxNC4yNDk4QzQuMzQxMjggMTMuNzUxNiAzLjE4OTkzIDEyLjgzMDggMi40MDc0NyAxMS42MjQ4QzEuNjI1MDEgMTAuNDE4OCAxLjI1MzM2IDguOTkyMTEgMS4zNDc5NSA3LjU1NzYxQzEuNDQyNTQgNi4xMjMxMiAxLjk5ODMgNC43NTc2MiAyLjkzMjM1IDMuNjY0NzlDMy44NjY0IDIuNTcxOTUgNS4xMjg2OSAxLjgxMDMzIDYuNTMwOTYgMS40OTM1QzcuOTMzMjMgMS4xNzY2OCA5LjQwMDM0IDEuMzIxNjMgMTAuNzEzNSAxLjkwNjc0TTE0LjY2NjggMi42NjY3NEw4LjAwMDE3IDkuMzQwMDdMNi4wMDAxNyA3LjM0MDA3XCIgc3Ryb2tlPVwiIzEyQjc2QVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj4gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgdGV4dC1lbmRcIiAqbmdJZj1cInRhZ2dnZWREYXRhPy5zdGF0dXMhPSdzdWJtaXR0ZWQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXdhcm5pbmcgbXMtMlwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTA5MDFfNzc5NSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk02LjEzMTUyIDAuMDAxNDIwNDlDNS4yNTg1NSAtMC4wMTc1Nzc4IDQuMzkxOTUgMC4xNTQxOTIgMy41OTIyMiAwLjUwNDczOEMyLjc5MjUgMC44NTUyODMgMi4wNzg5MiAxLjM3NjE2IDEuNTAxMzEgMi4wMzA5OUMwLjkyMzcwMyAyLjY4NTgzIDAuNDk1OTgxIDMuNDU4ODUgMC4yNDgwMDkgNC4yOTYwOEMzLjcwMjk0ZS0wNSA1LjEzMzMgLTAuMDYyMjA5NSA2LjAxNDU3IDAuMDY1NjE1NCA2Ljg3ODM0QzAuMTkzNDQgNy43NDIxMiAwLjUwODI1NiA4LjU2NzU4IDAuOTg4MDgzIDkuMjk3MTFDMS40Njc5MSAxMC4wMjY2IDIuMTAxMTkgMTAuNjQyNiAyLjg0MzcgMTEuMTAyMUMzLjU4NjIxIDExLjU2MTYgNC40MjAwNiAxMS44NTM1IDUuMjg3MDMgMTEuOTU3NEM2LjE1NDAxIDEyLjA2MTMgNy4wMzMyMiAxMS45NzQ3IDcuODYzMjcgMTEuNzAzN0M4LjAwNTEgMTEuNjU3MyA4LjEyMjcgMTEuNTU2NSA4LjE5MDIyIDExLjQyMzVDOC4yNTc3MyAxMS4yOTA0IDguMjY5NjIgMTEuMTM2IDguMjIzMjcgMTAuOTk0MkM4LjE3NjkzIDEwLjg1MjMgOC4wNzYxNCAxMC43MzQ3IDcuOTQzMDggMTAuNjY3MkM3LjgxMDAyIDEwLjU5OTcgNy42NTU2IDEwLjU4NzggNy41MTM3NyAxMC42MzQyQzYuNjExNzUgMTAuOTI4NyA1LjY0MzM4IDEwLjk1MzYgNC43Mjc0MiAxMC43MDU4QzMuODExNDYgMTAuNDU4IDIuOTg3NzMgOS45NDgyNSAyLjM1NzI1IDkuMjM5MUMxLjcyNjc3IDguNTI5OTUgMS4zMTY5NiA3LjY1MjIxIDEuMTc4MDcgNi43MTM1NEMxLjAzOTE3IDUuNzc0ODcgMS4xNzcyNCA0LjgxNjA3IDEuNTc1MzQgMy45NTQ3M0MxLjk3MzQzIDMuMDkzMzggMi42MTQyNSAyLjM2Njk0IDMuNDE5MiAxLjg2NDQ5QzQuMjI0MTQgMS4zNjIwNCA1LjE1ODIzIDEuMTA1NDMgNi4xMDY4OSAxLjEyNjEzQzcuMDU1NTYgMS4xNDY4MyA3Ljk3NzU2IDEuNDQzOTMgOC43NTk4MyAxLjk4MTAxQzkuNTQyMSAyLjUxODA5IDEwLjE1MDYgMy4yNzE3OCAxMC41MTA4IDQuMTQ5NjdDMTAuNTY3NCA0LjI4NzcyIDEwLjY3NjUgNC4zOTc2MyAxMC44MTQxIDQuNDU1MjJDMTAuODgyMiA0LjQ4Mzc0IDEwLjk1NTMgNC40OTg1NiAxMS4wMjkyIDQuNDk4ODNDMTEuMTAzMSA0LjQ5OTEgMTEuMTc2MyA0LjQ4NDgyIDExLjI0NDYgNC40NTY4QzExLjMxMyA0LjQyODc4IDExLjM3NTIgNC4zODc1NyAxMS40Mjc2IDQuMzM1NTJDMTEuNDggNC4yODM0NyAxMS41MjE3IDQuMjIxNjEgMTEuNTUwMiA0LjE1MzQ3QzExLjU3ODcgNC4wODUzMiAxMS41OTM1IDQuMDEyMjIgMTEuNTkzOCAzLjkzODM1QzExLjU5NDEgMy44NjQ0OCAxMS41Nzk4IDMuNzkxMjcgMTEuNTUxOCAzLjcyMjkyQzExLjEwODUgMi42NDIzOSAxMC4zNTk2IDEuNzE0NyA5LjM5Njc3IDEuMDUzNjVDOC40MzM5NiAwLjM5MjU4NyA3LjI5OTE1IDAuMDI2ODk0NiA2LjEzMTUyIDAuMDAxNDIwNDlaTTYuNTYyNzcgMi44MTI0MkM2LjU2Mjc3IDIuNjYzMjQgNi41MDM1MSAyLjUyMDE2IDYuMzk4MDIgMi40MTQ2N0M2LjI5MjUzIDIuMzA5MTggNi4xNDk0NiAyLjI0OTkyIDYuMDAwMjcgMi4yNDk5MkM1Ljg1MTA5IDIuMjQ5OTIgNS43MDgwMSAyLjMwOTE4IDUuNjAyNTIgMi40MTQ2N0M1LjQ5NzA0IDIuNTIwMTYgNS40Mzc3NyAyLjY2MzI0IDUuNDM3NzcgMi44MTI0MlY1Ljc2NzQyTDMuOTEyMjcgNy4yOTIxN0MzLjg1NzAxIDcuMzQzNjcgMy44MTI2OCA3LjQwNTc3IDMuNzgxOTQgNy40NzQ3N0MzLjc1MTE5IDcuNTQzNzcgMy43MzQ2NiA3LjYxODI1IDMuNzMzMzMgNy42OTM3OEMzLjczMiA3Ljc2OTMxIDMuNzQ1ODkgNy44NDQzMyAzLjc3NDE4IDcuOTE0MzdDMy44MDI0NyA3Ljk4NDQxIDMuODQ0NTggOC4wNDgwNCAzLjg5Nzk5IDguMTAxNDVDMy45NTE0MSA4LjE1NDg2IDQuMDE1MDMgOC4xOTY5NyA0LjA4NTA3IDguMjI1MjZDNC4xNTUxMiA4LjI1MzU1IDQuMjMwMTQgOC4yNjc0NSA0LjMwNTY2IDguMjY2MTJDNC4zODExOSA4LjI2NDc4IDQuNDU1NjggOC4yNDgyNSA0LjUyNDY4IDguMjE3NTFDNC41OTM2OCA4LjE4Njc2IDQuNjU1NzggOC4xNDI0NCA0LjcwNzI3IDguMDg3MTdMNi4zOTc3NyA2LjM5NzQyTDYuNTYyNzcgNi4yMzI0MlYyLjgxMjQyWk0xMS4yNTAzIDExLjI0OTlDMTEuMjUwMyAxMS40NDg4IDExLjE3MTMgMTEuNjM5NiAxMS4wMzA2IDExLjc4MDNDMTAuODg5OSAxMS45MjA5IDEwLjY5OTIgMTEuOTk5OSAxMC41MDAzIDExLjk5OTlDMTAuMzAxNCAxMS45OTk5IDEwLjExMDYgMTEuOTIwOSA5Ljk2OTk0IDExLjc4MDNDOS44MjkyOSAxMS42Mzk2IDkuNzUwMjcgMTEuNDQ4OCA5Ljc1MDI3IDExLjI0OTlDOS43NTAyNyAxMS4wNTEgOS44MjkyOSAxMC44NjAyIDkuOTY5OTQgMTAuNzE5NkMxMC4xMTA2IDEwLjU3ODkgMTAuMzAxNCAxMC40OTk5IDEwLjUwMDMgMTAuNDk5OUMxMC42OTkyIDEwLjQ5OTkgMTAuODg5OSAxMC41Nzg5IDExLjAzMDYgMTAuNzE5NkMxMS4xNzEzIDEwLjg2MDIgMTEuMjUwMyAxMS4wNTEgMTEuMjUwMyAxMS4yNDk5Wk0xMS4wNjI4IDYuNTYyNDJDMTEuMDYyOCA2LjQxMzI0IDExLjAwMzUgNi4yNzAxNiAxMC44OTggNi4xNjQ2N0MxMC43OTI1IDYuMDU5MTkgMTAuNjQ5NSA1Ljk5OTkyIDEwLjUwMDMgNS45OTk5MkMxMC4zNTExIDUuOTk5OTIgMTAuMjA4IDYuMDU5MTkgMTAuMTAyNSA2LjE2NDY3QzkuOTk3MDQgNi4yNzAxNiA5LjkzNzc3IDYuNDEzMjQgOS45Mzc3NyA2LjU2MjQyVjkuMTg3NDJDOS45Mzc3NyA5LjMzNjYxIDkuOTk3MDQgOS40Nzk2OCAxMC4xMDI1IDkuNTg1MTdDMTAuMjA4IDkuNjkwNjYgMTAuMzUxMSA5Ljc0OTkyIDEwLjUwMDMgOS43NDk5MkMxMC42NDk1IDkuNzQ5OTIgMTAuNzkyNSA5LjY5MDY2IDEwLjg5OCA5LjU4NTE3QzExLjAwMzUgOS40Nzk2OCAxMS4wNjI4IDkuMzM2NjEgMTEuMDYyOCA5LjE4NzQyVjYuNTYyNDJaXCIgZmlsbD1cIiNCNTQ3MDhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTEuMjQwOSAzLjA3Nzc1QzExLjE3NjIgMi45NjE3MSAxMS4xMDc4IDIuODQ3OTkgMTEuMDM1NyAyLjczNjc0QzEwLjc4MjYgMi4zNDYyMyAxMC40ODQ4IDEuOTg2MzEgMTAuMTQ4MyAxLjY2NDRDOS45MTU2MSAxLjQ0MTg0IDkuNjY0NDYgMS4yMzc0NCA5LjM5Njc3IDEuMDUzNjVDOS4zOTY3MiAxLjA1MzYxIDkuMzk2ODMgMS4wNTM2OCA5LjM5Njc3IDEuMDUzNjVDOS4yMzczNyAwLjk0NDIwNyA5LjA3MzA4IDAuODQyNzQ4IDguOTA0ODcgMC43NDk3MDVDOC43MjA3IDAuNjQ3ODI4IDguNTMxNjMgMC41NTU5IDguMzM4NSAwLjQ3NDE5MkM3LjY0MjY5IDAuMTc5ODEzIDYuODk0MSAwLjAxODA1NzcgNi4xMzE1MiAwLjAwMTQyMDQ5QzYuMTMxNDkgMC4wMDE0MTk4MyA2LjEzMTU1IDAuMDAxNDIxMTUgNi4xMzE1MiAwLjAwMTQyMDQ5QzYuMDg3NzggMC4wMDA0NjkyOSA2LjA0Mzk3IC01LjAxMjY1ZS0wNiA2LjAwMDI3IDMuOTk0MjZlLTA4QzUuMTk3MjYgOS4yODg3MWUtMDUgNC40MDIyMiAwLjE2MTM4NiAzLjY2MjM3IDAuNDc0NTJDMy42Mzg5MyAwLjQ4NDQ0MSAzLjYxNTU1IDAuNDk0NTEzIDMuNTkyMjIgMC41MDQ3MzhDMy40MjI0MyAwLjU3OTE2NiAzLjI1NjUxIDAuNjYxMjczIDMuMDk0OTYgMC43NTA3MUMzLjAwMzA3IDAuODAxNTc3IDIuOTEyNiAwLjg1NDgxNCAyLjgyMzYzIDAuOTEwMzU5QzIuMzMyMjMgMS4yMTcxMyAxLjg4NjUzIDEuNTk0MjcgMS41MDEzMSAyLjAzMDk5QzEuMTE2MDggMi40Njc3MyAwLjc5NzUxNiAyLjk1NzA0IDAuNTU0NDg2IDMuNDgyOTFDMC40MzMxMjQgMy43NDU1MSAwLjMzMDU5NyA0LjAxNzIzIDAuMjQ4MDA5IDQuMjk2MDhDNS41MTM0M2UtMDUgNS4xMzMyNCAtMC4wNjIyMDA0IDYuMDE0NDQgMC4wNjU1ODc0IDYuODc4MTVDMC4wNjU1NzggNi44NzgwOSAwLjA2NTU5NjcgNi44NzgyMiAwLjA2NTU4NzQgNi44NzgxNUMwLjE5MzQxMiA3Ljc0MTkzIDAuNTA4MjU2IDguNTY3NTggMC45ODgwODMgOS4yOTcxMUMxLjE0NzgzIDkuNTM5OTggMS4zMjQ1OCA5Ljc3MDI3IDEuNTE2NzEgOS45ODYzOUMxLjkwMTY4IDEwLjQxOTQgMi4zNDgzOCAxMC43OTU2IDIuODQzNyAxMS4xMDIxQzMuMzM4ODIgMTEuNDA4NSAzLjg3NDU1IDExLjY0MDQgNC40MzM2NCAxMS43OTE3QzQuNzEyOTkgMTEuODY3MyA0Ljk5ODE3IDExLjkyMjggNS4yODcwMyAxMS45NTc0QzUuMzE5OTkgMTEuOTYxMyA1LjM1Mjk2IDExLjk2NSA1LjM4NTk0IDExLjk2ODRDNS44NjI3NSAxMi4wMTc1IDYuMzQyNTQgMTIuMDA5MiA2LjgxNTE0IDExLjk0NDVDNi45OTI2NSAxMS45MjAyIDcuMTY5MTUgMTEuODg3OSA3LjM0NDA5IDExLjg0NzdDNy41MTg4IDExLjgwNzYgNy42OTE5NiAxMS43NTk2IDcuODYzMDIgMTEuNzAzOEM3Ljg2Mjk0IDExLjcwMzggNy44NjMxMSAxMS43MDM3IDcuODYzMDIgMTEuNzAzOEM3Ljg5MTI3IDExLjY5NDUgNy45MTg4IDExLjY4MzEgNy45NDQ5MiAxMS42Njk3QzguMDQ5OTUgMTEuNjE1OSA4LjEzNjE1IDExLjUzIDguMTkwMjIgMTEuNDIzNUM4LjIxODEyIDExLjM2ODUgOC4yMzY1MyAxMS4zMDk4IDguMjQ1MjQgMTEuMjQ5OUM4LjI1NzYxIDExLjE2NDkgOC4yNTA0NiAxMS4wNzc0IDguMjIzMjcgMTAuOTk0MkM4LjE3NjkzIDEwLjg1MjMgOC4wNzYxNCAxMC43MzQ3IDcuOTQzMDggMTAuNjY3MkM3LjgxMDExIDEwLjU5OTggNy42NTU3OSAxMC41ODc4IDcuNTE0MDQgMTAuNjM0MUM3LjUxMzk1IDEwLjYzNDEgNy41MTQxMyAxMC42MzQxIDcuNTE0MDQgMTAuNjM0MUM3LjQzNTYzIDEwLjY1OTcgNy4zNTY0NSAxMC42ODMzIDcuMjc3MTEgMTAuNzA0OUM3LjE2MjkyIDEwLjczNTkgNy4wNDc4NiAxMC43NjI2IDYuOTMyMTUgMTAuNzg1MUM2Ljg4MDE2IDEwLjc5NTMgNi44MjgwNCAxMC44MDQ1IDYuNzc1ODEgMTAuODEyOUM2LjQ5MjY3IDEwLjg1ODUgNi4yMDYzMyAxMC44NzkgNS45MjAxNCAxMC44NzQzQzUuODQ4MzIgMTAuODczMSA1Ljc3NjUgMTAuODcwNCA1LjcwNDc2IDEwLjg2NkM1LjYwOTk4IDEwLjg2MDIgNS41MTUzMiAxMC44NTE3IDUuNDIwOSAxMC44NDA0QzUuMzcyNTYgMTAuODM0NiA1LjMyNDI4IDEwLjgyODEgNS4yNzYwOCAxMC44MjA4QzUuMDkxNzYgMTAuNzkzMSA0LjkwODU2IDEwLjc1NDggNC43Mjc0MiAxMC43MDU4QzQuNTk4NTYgMTAuNjcwOSA0LjQ3MTUyIDEwLjYzMDkgNC4zNDY1OSAxMC41ODU4QzQuMDI3NjMgMTAuNDcwOCAzLjcyMjQgMTAuMzIzMSAzLjQzNTU5IDEwLjE0NTZDMy40MDE4NiAxMC4xMjQ4IDMuMzY4MzkgMTAuMTAzNSAzLjMzNTE4IDEwLjA4MThDMy4wNTQwOSA5Ljg5ODI2IDIuNzkxNzggOS42ODU1NiAyLjU1Mjg3IDkuNDQ2NThDMi40ODU3OCA5LjM3OTQ3IDIuNDIwNTQgOS4zMTAyOSAyLjM1NzI1IDkuMjM5MUMyLjIwMDExIDkuMDYyMzQgMi4wNTY2NyA4Ljg3NTEyIDEuOTI3NzIgOC42NzkwOEMxLjkyNDQ1IDguNjc0MTEgMS45MjExOCA4LjY2OTEzIDEuOTE3OTMgOC42NjQxNEMxLjcxMTMgOC4zNDc0OSAxLjU0MjM0IDguMDA4MDcgMS40MTQzMiA3LjY1Mjg2QzEuMzA1MTEgNy4zNDk4NiAxLjIyNTcgNy4wMzUzNiAxLjE3ODA5IDYuNzEzNzFDMS4xNzgwOCA2LjcxMzY2IDEuMTc4MSA2LjcxMzc3IDEuMTc4MDkgNi43MTM3MUMxLjE1NzUgNi41NzQ1NyAxLjE0Mjk3IDYuNDM0ODEgMS4xMzQ1IDYuMjk1MTZDMS4xMzAxIDYuMjIyNTMgMS4xMjczMiA2LjE0OTg5IDEuMTI2MTcgNi4wNzcyOUMxLjExODMyIDUuNTgyNTcgMS4xODU4NSA1LjA4OTYxIDEuMzI2MyA0LjYxNTQ1QzEuMzkyOTcgNC4zOTAzNiAxLjQ3NjA3IDQuMTY5NTEgMS41NzUzNCAzLjk1NDczQzEuNzc0NCAzLjUyNDAzIDIuMDM0MTQgMy4xMjcwNiAyLjM0NDc1IDIuNzc0OTZDMi4zNzYyIDIuNzM5MzIgMi40MDgxNiAyLjcwNDEzIDIuNDQwNjQgMi42Njk0MkMyLjcyODkzIDIuMzYxMjcgMy4wNTc0OSAyLjA5MDI3IDMuNDE5MiAxLjg2NDQ5QzMuNjE5OTUgMS43MzkxOCAzLjgyODc0IDEuNjI5MTYgNC4wNDM3OSAxLjUzNDkyQzQuMjA1MSAxLjQ2NDIyIDQuMzY5OTMgMS40MDI0MSA0LjUzNzUzIDEuMzQ5NjhDNS4wMDg3NyAxLjIwMTQzIDUuNTAxOTEgMS4xMjUgNi4wMDAyNyAxLjEyNDk3QzYuMDM1NzkgMS4xMjQ5NyA2LjA3MTMzIDEuMTI1MzUgNi4xMDY4OSAxLjEyNjEzQzYuNTY5NjUgMS4xMzYyNCA3LjAyNjIxIDEuMjEyMTIgNy40NjMxNSAxLjM0OTU0QzcuOTIxOSAxLjQ5MzgzIDguMzU5MTkgMS43MDU5NSA4Ljc1OTgzIDEuOTgxMDFDOC43NTk3OCAxLjk4MDk3IDguNzU5ODggMS45ODEwNCA4Ljc1OTgzIDEuOTgxMDFDOC45MTQ0NyAyLjA4NzE5IDkuMDYyNDcgMi4yMDE5MyA5LjIwMjk1IDIuMzI0MzNDOS4zMjc4OSAyLjQzMzE4IDkuNDQ3IDIuNTQ4MTYgOS41NTk4OCAyLjY2ODc3QzkuNjc0NjQgMi43OTEzOSA5Ljc4Mjk1IDIuOTE5ODIgOS44ODQ0IDMuMDUzNTVDMTAuMDE4MiAzLjIyOTg2IDEwLjE0IDMuNDE1MzcgMTAuMjQ4OSAzLjYwODg3QzEwLjMwODYgMy43MTQ5MyAxMC4zNjQ0IDMuODIzMzkgMTAuNDE2MiAzLjkzNDA1QzEwLjQ0NTUgMy45OTY3NyAxMC40NzM2IDQuMDYwMTkgMTAuNTAwMyA0LjEyNDI4QzEwLjUwMzggNC4xMzI3MyAxMC41MDczIDQuMTQxMiAxMC41MTA4IDQuMTQ5NjdDMTAuNTEwNyA0LjE0OTU5IDEwLjUxMDggNC4xNDk3NSAxMC41MTA4IDQuMTQ5NjdDMTAuNTY3NCA0LjI4NzYxIDEwLjY3NjUgNC4zOTc2NiAxMC44MTQxIDQuNDU1MjJDMTAuODgyMiA0LjQ4Mzc0IDEwLjk1NTMgNC40OTg1NiAxMS4wMjkyIDQuNDk4ODNDMTEuMTAzMSA0LjQ5OTEgMTEuMTc2MyA0LjQ4NDgyIDExLjI0NDYgNC40NTY4QzExLjMxMyA0LjQyODc4IDExLjM3NTIgNC4zODc1NyAxMS40Mjc2IDQuMzM1NTJDMTEuNDggNC4yODM0OCAxMS41MjE3IDQuMjIxNjEgMTEuNTUwMiA0LjE1MzQ3QzExLjU3ODcgNC4wODUzMiAxMS41OTM1IDQuMDEyMjIgMTEuNTkzOCAzLjkzODM1QzExLjU5NDEgMy44NjQ0OCAxMS41Nzk4IDMuNzkxMjcgMTEuNTUxOCAzLjcyMjkyQzExLjU1MTcgMy43MjI4MyAxMS41NTE4IDMuNzIzMDEgMTEuNTUxOCAzLjcyMjkyQzExLjQ4MzQgMy41NTYzMSAxMS40MDc3IDMuMzkzMDYgMTEuMzI1MSAzLjIzNDEzQzExLjI5NzggMy4xODE1NiAxMS4yNjk3IDMuMTI5NDIgMTEuMjQwOSAzLjA3Nzc1Wk02LjU2Mjc3IDIuODEyNDJDNi41NjI3NyAyLjY2MzI0IDYuNTAzNTEgMi41MjAxNiA2LjM5ODAyIDIuNDE0NjdDNi4zMTIxIDIuMzI4NzUgNi4yMDEyNCAyLjI3MzUgNi4wODI0NiAyLjI1NTk1QzYuMDU1NDggMi4yNTE5OCA2LjAyNzg3IDIuMjQ5OTIgNi4wMDAyNyAyLjI0OTkyQzUuODUxMDkgMi4yNDk5MiA1LjcwODAxIDIuMzA5MTggNS42MDI1MiAyLjQxNDY3QzUuNDk3MDQgMi41MjAxNiA1LjQzNzc3IDIuNjYzMjQgNS40Mzc3NyAyLjgxMjQyVjUuNzY3NDJMMy45MTI0NSA3LjI5MkMzLjkwMjc1IDcuMzAxMDMgMy44OTMyMiA3LjMxMDU3IDMuODg0MjEgNy4zMjAyM0MzLjg0MTg3IDcuMzY1NjcgMy44MDcyOSA3LjQxNzg3IDMuNzgxOTQgNy40NzQ3N0MzLjc1MTE5IDcuNTQzNzcgMy43MzQ2NiA3LjYxODI1IDMuNzMzMzMgNy42OTM3OEMzLjczMiA3Ljc2OTMxIDMuNzQ1ODkgNy44NDQzMyAzLjc3NDE4IDcuOTE0MzdDMy43ODA1NCA3LjkzMDExIDMuNzg3NTkgNy45NDU1MiAzLjc5NTMyIDcuOTYwNTdDMy44MjE5NiA4LjAxMjQ5IDMuODU2NTggOC4wNjAwNCAzLjg5Nzk5IDguMTAxNDVDMy45NTE0MSA4LjE1NDg3IDQuMDE1MDMgOC4xOTY5NyA0LjA4NTA3IDguMjI1MjZDNC4xNTUxMiA4LjI1MzU2IDQuMjMwMTQgOC4yNjc0NSA0LjMwNTY2IDguMjY2MTJDNC4zODExOSA4LjI2NDc4IDQuNDU1NjggOC4yNDgyNSA0LjUyNDY4IDguMjE3NTFDNC41ODE1NyA4LjE5MjE2IDQuNjMzNzcgOC4xNTc1NyA0LjY3OTIxIDguMTE1MjRDNC42ODg4MSA4LjEwNjI5IDQuNjk4MTEgOC4wOTcgNC43MDcwOCA4LjA4NzM3QzQuNzA3MDIgOC4wODc0NCA0LjcwNzE1IDguMDg3MzEgNC43MDcwOCA4LjA4NzM3TDYuNTYyNzcgNi4yMzI0MlYyLjgxMjQyWk05LjkzNzc3IDkuMTg3NDJDOS45Mzc3NyA5LjMzNjYxIDkuOTk3MDQgOS40Nzk2OCAxMC4xMDI1IDkuNTg1MTdDMTAuMjA4IDkuNjkwNjYgMTAuMzUxMSA5Ljc0OTkyIDEwLjUwMDMgOS43NDk5MkMxMC42NDM3IDkuNzQ5OTIgMTAuNzgxNSA5LjY5NTE0IDEwLjg4NTcgOS41OTcxNkMxMC44ODk4IDkuNTkzMjMgMTAuODk0IDkuNTg5MjQgMTAuODk4IDkuNTg1MTdDMTEuMDAzNSA5LjQ3OTY4IDExLjA2MjggOS4zMzY2MSAxMS4wNjI4IDkuMTg3NDJWNy41NDIzNEMxMC44Nzc3IDcuNTE0MjYgMTAuNjg5NyA3LjQ5OTkyIDEwLjUwMDMgNy40OTk5MkMxMC4zMTA4IDcuNDk5OTIgMTAuMTIyOCA3LjUxNDI2IDkuOTM3NzcgNy41NDIzNFY5LjE4NzQyWk05LjkzNzc3IDcuMzI2ODZDMTAuMTIxNSA3LjM4NjEyIDEwLjMwOTYgNy40MzAzIDEwLjUwMDMgNy40NTkwNEMxMC42NzE0IDcuNDg0ODMgMTAuODQ0NSA3LjQ5ODE4IDExLjAxODMgNy40OTg4MUMxMS4wMzMxIDcuNDk4ODcgMTEuMDQ3OSA3LjQ5ODgzIDExLjA2MjggNy40OTg3VjYuNTYyNDJDMTEuMDYyOCA2LjQ5MDA4IDExLjA0ODggNi40MTkxNyAxMS4wMjI0IDYuMzUzMjhDMTAuOTk0NCA2LjI4MzMxIDEwLjk1MjQgNi4yMTkwMSAxMC44OTggNi4xNjQ2OEMxMC43OTI1IDYuMDU5MTkgMTAuNjQ5NSA1Ljk5OTkyIDEwLjUwMDMgNS45OTk5MkMxMC4zNTExIDUuOTk5OTIgMTAuMjA4IDYuMDU5MTkgMTAuMTAyNSA2LjE2NDY4QzEwLjEwMDMgNi4xNjY5MiAxMC4wOTgxIDYuMTY5MTcgMTAuMDk1OSA2LjE3MTQ1QzkuOTk3NyA2LjI3Mjk5IDkuOTQxMzUgNi40MDc3MyA5LjkzNzk0IDYuNTQ4ODJDOS45Mzc4MyA2LjU1MzM1IDkuOTM3NzcgNi41NTc4OCA5LjkzNzc3IDYuNTYyNDJWNy4zMjY4NlpNMTEuMjQ4OCAxMS4yOTY4QzExLjI0OTggMTEuMjgxMyAxMS4yNTAzIDExLjI2NTYgMTEuMjUwMyAxMS4yNDk5QzExLjI1MDMgMTEuMjQ4NyAxMS4yNTAzIDExLjI0NzUgMTEuMjUwMyAxMS4yNDYzQzExLjI0OTMgMTEuMDQ4NyAxMS4xNzA0IDEwLjg1OTQgMTEuMDMwNiAxMC43MTk2QzEwLjg4OTkgMTAuNTc4OSAxMC42OTkyIDEwLjQ5OTkgMTAuNTAwMyAxMC40OTk5QzEwLjMwMTQgMTAuNDk5OSAxMC4xMTA2IDEwLjU3ODkgOS45Njk5NCAxMC43MTk2QzkuODI5MjkgMTAuODYwMiA5Ljc1MDI3IDExLjA1MSA5Ljc1MDI3IDExLjI0OTlDOS43NTAyNyAxMS40NDg4IDkuODI5MjkgMTEuNjM5NiA5Ljk2OTk0IDExLjc4MDNDMTAuMTEwNiAxMS45MjA5IDEwLjMwMTQgMTEuOTk5OSAxMC41MDAzIDExLjk5OTlDMTAuNjk5MiAxMS45OTk5IDEwLjg4OTkgMTEuOTIwOSAxMS4wMzA2IDExLjc4MDNDMTEuMTYwMiAxMS42NTA3IDExLjIzNzQgMTEuNDc4NiAxMS4yNDg4IDExLjI5NjhaXCIgZmlsbD1cIiNCNTQ3MDhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTA5MDFfNzc5NVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PHNwYW4gY2xhc3M9XCJtcy0yXCI+UGVuZGluZyBUYWdnZWQgSW5mbzwvc3Bhbj48L3NwYW4+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLWdyYXktdGFnZ2VkIG14LTMgbXktMlwiICpuZ0lmPVwidGFnZ2dlZERhdGE/LnJldm9wc1R5cGU9PT0ncHVyY2hhc2VyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXQtMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG1iLTIgc3BlbnQtdmFsdWUgXCI+TmFtZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG1iLTIgc3BlbnQtdGl0bGUgXCI+e3t0YWdnZ2VkRGF0YT8uY3VzdG9tZXJJbmZvPy5uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IG10LTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLXN0YXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtYi0yIHNwZW50LXZhbHVlIFwiPkxvY2F0aW9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC10aXRsZSBcIj57e3RhZ2dnZWREYXRhPy5jdXN0b21lckluZm8/LmxvY2F0aW9ufX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IG10LTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLXN0YXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtYi0yIHNwZW50LXZhbHVlIFwiPk1vYmlsZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG1iLTIgc3BlbnQtdGl0bGUgXCI+e3t0YWdnZ2VkRGF0YT8uY3VzdG9tZXJJbmZvPy5tb2JpbGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXQtMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG1iLTIgc3BlbnQtdmFsdWUgXCI+QWdlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC10aXRsZSBcIj57e3RhZ2dnZWREYXRhPy5jdXN0b21lckluZm8/LmFnZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC12YWx1ZSBcIj5FbWFpbDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG1iLTIgc3BlbnQtdGl0bGUgXCI+e3t0YWdnZ2VkRGF0YT8uY3VzdG9tZXJJbmZvPy5lbWFpbH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC12YWx1ZSBcIj5HZW5kZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtYi0yIHNwZW50LXRpdGxlIFwiPnt7dGFnZ2dlZERhdGE/LmN1c3RvbWVySW5mbz8uZ2VuZGVyfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0YWdnZ2VkRGF0YT8ucmV2b3BzVHlwZT09PSdtaXNzZWRPcHBvcnR1bml0eSdcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1ncmF5LXRhZ2dlZCBteC0zIG15LTJcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiB0YWdnZ2VkRGF0YS5pc3N1ZUxpc3RcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcy0yIG1iLTIgc3BlbnQtdmFsdWVcIj57e2l0ZW0ubmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdCBtcy0yXCIgKm5nRm9yPVwibGV0IGRhdGEgb2YgaXRlbS5pc3N1ZVwiPnt7ZGF0YX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLWdyYXktdGFnZ2VkIG14LTMgbXktMlwiICpuZ0lmPVwidGFnZ2dlZERhdGE/LnJldm9wc1R5cGU9PT0nbm9uU2hvcHBlcidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHQgbXMtMlwiPnt7bm9uU2hvcGVyVHlwZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktMlwiPjxzcGFuIGNsYXNzPVwiZGVzYy1pZFwiPk9yaWdpbmFsIElEPC9zcGFuPiA6IDxzcGFuIGNsYXNzPVwic3BlbnQtdmFsdWUxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcIj57e0ltYWdlZGF0YT8udGVtcElkfX08L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICAqbmdJZj1cInRhZ2dnZWREYXRhPy5kZXNjcmlwdGlvbiYmdGFnZ2dlZERhdGE/LmRlc2NyaXB0aW9uIT0nJ1wiIGNsYXNzPVwibXktMyBkZXNjLWlkXCI+e3t0YWdnZ2VkRGF0YS5kZXNjcmlwdGlvbn19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3Igc2VwYXJhdG9yLWRvdWJsZSBtLTNcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWctY2xhc3NcIj5UaW1lIFNwZW50PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXdyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBib3JkZXItZG9idWxlIHJvdW5kZWQgdy0zMyAgcHktMyBweC00IG1lLTYgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwZW50LXRpdGxlXCI+e3tJbWFnZWRhdGE/LnRpbWVTcGVudD8udG90YWxUaW1lU3BlbnR9fSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGVudC12YWx1ZSBteS0xXCI+VG90YWwgVGltZSBTcGVudDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLWdyYXktMzAwIGJvcmRlci1kb2J1bGUgcm91bmRlZCB3LTMzICBweS0zIHB4LTQgbWUtNiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BlbnQtdGl0bGVcIj57e0ltYWdlZGF0YT8udGltZVNwZW50Py5lbnRyeVRpbWV9fSAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BlbnQtdmFsdWUxIG15LTEgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiaW1hZ2VEYXRhKCdlbnRyeScpXCI+RW50cnkgVGltZSA8c3BhbiBjbGFzcz1cIm1zLTFcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMy4zMzMzMyAxNEgxMi42NjY3QzEzLjQwMyAxNCAxNCAxMy40MDMgMTQgMTIuNjY2N1YzLjMzMzMzQzE0IDIuNTk2OTUgMTMuNDAzIDIgMTIuNjY2NyAySDMuMzMzMzNDMi41OTY5NSAyIDIgMi41OTY5NSAyIDMuMzMzMzNWMTIuNjY2N0MyIDEzLjQwMyAyLjU5Njk1IDE0IDMuMzMzMzMgMTRaTTMuMzMzMzMgMTRMMTAuNjY2NyA2LjY2NjY3TDE0IDEwTTYuNjY2NjcgNS42NjY2N0M2LjY2NjY3IDYuMjE4OTUgNi4yMTg5NSA2LjY2NjY3IDUuNjY2NjcgNi42NjY2N0M1LjExNDM4IDYuNjY2NjcgNC42NjY2NyA2LjIxODk1IDQuNjY2NjcgNS42NjY2N0M0LjY2NjY3IDUuMTE0MzggNS4xMTQzOCA0LjY2NjY3IDUuNjY2NjcgNC42NjY2N0M2LjIxODk1IDQuNjY2NjcgNi42NjY2NyA1LjExNDM4IDYuNjY2NjcgNS42NjY2N1pcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4yXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBib3JkZXItZG9idWxlIHJvdW5kZWQgdy0zMyAgcHktMyBweC00IG1lLTYgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwZW50LXRpdGxlXCI+e3tJbWFnZWRhdGE/LnRpbWVTcGVudD8uZXhpdFRpbWV9fSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGVudC12YWx1ZTEgbXktMSBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJpbWFnZURhdGEoJ2V4aXQnKVwiPkV4aXQgVGltZSA8c3BhbiBjbGFzcz1cIm1zLTFcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMy4zMzMzMyAxNEgxMi42NjY3QzEzLjQwMyAxNCAxNCAxMy40MDMgMTQgMTIuNjY2N1YzLjMzMzMzQzE0IDIuNTk2OTUgMTMuNDAzIDIgMTIuNjY2NyAySDMuMzMzMzNDMi41OTY5NSAyIDIgMi41OTY5NSAyIDMuMzMzMzNWMTIuNjY2N0MyIDEzLjQwMyAyLjU5Njk1IDE0IDMuMzMzMzMgMTRaTTMuMzMzMzMgMTRMMTAuNjY2NyA2LjY2NjY3TDE0IDEwTTYuNjY2NjcgNS42NjY2N0M2LjY2NjY3IDYuMjE4OTUgNi4yMTg5NSA2LjY2NjY3IDUuNjY2NjcgNi42NjY2N0M1LjExNDM4IDYuNjY2NjcgNC42NjY2NyA2LjIxODk1IDQuNjY2NjcgNS42NjY2N0M0LjY2NjY3IDUuMTE0MzggNS4xMTQzOCA0LjY2NjY3IDUuNjY2NjcgNC42NjY2N0M2LjIxODk1IDQuNjY2NjcgNi42NjY2NyA1LjExNDM4IDYuNjY2NjcgNS42NjY2N1pcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4yXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFJbWFnZWRhdGE/LnpvbmVWaXNpdGVkXCIgY2xhc3M9XCJzZXBhcmF0b3Igc2VwYXJhdG9yLWRvdWJsZSBtLTNcIj48L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIUltYWdlZGF0YT8uem9uZVZpc2l0ZWRcIiAgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWctY2xhc3NcIj5ab25lcyBWaXNpdGVkPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiB0ZXh0LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtdC0yIHZpZXctdGV0b3J5IGN1cnNvci1wb2ludGVyXCI+VmlldyBUcmFqZWN0b3J5IDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE1IDEwLjgzMzNWMTUuODMzM0MxNSAxNi4yNzU0IDE0LjgyNDQgMTYuNjk5MyAxNC41MTE4IDE3LjAxMThDMTQuMTk5MyAxNy4zMjQ0IDEzLjc3NTQgMTcuNSAxMy4zMzMzIDE3LjVINC4xNjY2N0MzLjcyNDY0IDE3LjUgMy4zMDA3MiAxNy4zMjQ0IDIuOTg4MTYgMTcuMDExOEMyLjY3NTU5IDE2LjY5OTMgMi41IDE2LjI3NTQgMi41IDE1LjgzMzNWNi42NjY2N0MyLjUgNi4yMjQ2NCAyLjY3NTU5IDUuODAwNzIgMi45ODgxNiA1LjQ4ODE2QzMuMzAwNzIgNS4xNzU1OSAzLjcyNDY0IDUgNC4xNjY2NyA1SDkuMTY2NjdNMTIuNSAyLjVIMTcuNU0xNy41IDIuNVY3LjVNMTcuNSAyLjVMOC4zMzMzMyAxMS42NjY3XCIgc3Ryb2tlPVwiIzAwOUJGM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGNsYXNzPVwiaC0yMDBweCBzY3JvbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbCBtdC0yXCIgKm5nRm9yPVwibGV0IG9iaiBvZiBJbWFnZWRhdGE/LnpvbmVWaXNpdGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXByaW1hcnkgXCI+e3tvYmp9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJJbWFnZWRhdGE/LnpvbmVWaXNpdGVkLmxlbmd0aCA9PT0wXCIgY2xhc3M9XCJjb2wtbWQtMTIgbXQtMiB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1ub2RhdGFcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGExLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS10aXRsZVwiPk5vIFpvbmVzIFZpc2l0ZWQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtc3ViXCI+VGhlcmUgaXMgbm8gcmVzdWx0IGZvciB0aGlzIFpvbmVzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBzZXBhcmF0b3ItZG91YmxlIG0tM1wiPjwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWctY2xhc3NcIj5TdGFmZiBFbmdhZ2VtZW50PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXdyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBib3JkZXItZG9idWxlIHJvdW5kZWQgdy00NSBweS0zIHB4LTQgbWUtNiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BlbnQtdGl0bGVcIj57e0ltYWdlZGF0YT8uc3RhZmZFbmdhZ2VtZW50LnRpbWVUYWtlblRvQXNzaXN0fX0gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BlbnQtdmFsdWUgbXktMVwiPlRpbWUgdGFrZW4gdG8gYXNzaXN0IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz1cIm1zLTFcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMy4zMzMzMyAxNEgxMi42NjY3QzEzLjQwMyAxNCAxNCAxMy40MDMgMTQgMTIuNjY2N1YzLjMzMzMzQzE0IDIuNTk2OTUgMTMuNDAzIDIgMTIuNjY2NyAySDMuMzMzMzNDMi41OTY5NSAyIDIgMi41OTY5NSAyIDMuMzMzMzNWMTIuNjY2N0MyIDEzLjQwMyAyLjU5Njk1IDE0IDMuMzMzMzMgMTRaTTMuMzMzMzMgMTRMMTAuNjY2NyA2LjY2NjY3TDE0IDEwTTYuNjY2NjcgNS42NjY2N0M2LjY2NjY3IDYuMjE4OTUgNi4yMTg5NSA2LjY2NjY3IDUuNjY2NjcgNi42NjY2N0M1LjExNDM4IDYuNjY2NjcgNC42NjY2NyA2LjIxODk1IDQuNjY2NjcgNS42NjY2N0M0LjY2NjY3IDUuMTE0MzggNS4xMTQzOCA0LjY2NjY3IDUuNjY2NjcgNC42NjY2N0M2LjIxODk1IDQuNjY2NjcgNi42NjY2NyA1LjExNDM4IDYuNjY2NjcgNS42NjY2N1pcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4yXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLWdyYXktMzAwIGJvcmRlci1kb2J1bGUgcm91bmRlZCB3LTQ1IHB5LTMgcHgtNCBtZS02IG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGVudC10aXRsZVwiPnt7SW1hZ2VkYXRhPy5zdGFmZkVuZ2FnZW1lbnQudGltZVNwZW50V2l0aFN0YWZmfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGVudC12YWx1ZSBteS0xXCI+VGltZSBzcGVudCB3aXRoIHN0YWZmPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG48L3NlY3Rpb24+XHJcbjwvZGl2PiJdfQ==
|