tango-app-ui-analyse-traffic 3.3.0-beta.1 → 3.3.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/explore-view/explore-view.component.mjs +51 -10
- package/esm2022/lib/components/image-doc-view/image-doc-view.component.mjs +3 -3
- package/esm2022/lib/components/traffic-analysis/traffic-analysis.component.mjs +249 -77
- package/esm2022/lib/services/traffic.service.mjs +7 -1
- package/fesm2022/tango-app-ui-analyse-traffic.mjs +302 -85
- package/fesm2022/tango-app-ui-analyse-traffic.mjs.map +1 -1
- package/lib/components/explore-view/explore-view.component.d.ts +7 -0
- package/lib/components/traffic-analysis/traffic-analysis.component.d.ts +31 -5
- package/lib/services/traffic.service.d.ts +2 -0
- package/package.json +1 -1
|
@@ -6,6 +6,7 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
import * as i1 from "../../services/traffic.service";
|
|
7
7
|
import * as i2 from "tango-app-ui-global";
|
|
8
8
|
import * as i3 from "@angular/router";
|
|
9
|
+
import * as i4 from "@angular/common";
|
|
9
10
|
export class ExploreViewComponent {
|
|
10
11
|
service;
|
|
11
12
|
gs;
|
|
@@ -20,12 +21,18 @@ export class ExploreViewComponent {
|
|
|
20
21
|
zoom: 14,
|
|
21
22
|
};
|
|
22
23
|
destroy$ = new Subject();
|
|
24
|
+
auth = false; // Set this based on your initial logic
|
|
25
|
+
setClass = 'col-md-12';
|
|
26
|
+
selectedStore;
|
|
27
|
+
loading = true;
|
|
28
|
+
noData = false;
|
|
23
29
|
constructor(service, gs, router) {
|
|
24
30
|
this.service = service;
|
|
25
31
|
this.gs = gs;
|
|
26
32
|
this.router = router;
|
|
27
33
|
}
|
|
28
34
|
ngOnInit() {
|
|
35
|
+
mapboxgl.accessToken = 'pk.eyJ1IjoiYmFsYWppdGFuZ28iLCJhIjoiY20wZ2xiem55MDFxYTJ3b21zb3FjNHdwayJ9.nnIIzt7OeYlYHufGE8lFWQ';
|
|
29
36
|
this.gs.dataRangeValue
|
|
30
37
|
.pipe(takeUntil(this.destroy$), debounceTime(300))
|
|
31
38
|
.subscribe((data) => {
|
|
@@ -41,6 +48,7 @@ export class ExploreViewComponent {
|
|
|
41
48
|
}
|
|
42
49
|
map;
|
|
43
50
|
getMap() {
|
|
51
|
+
this.loading = true;
|
|
44
52
|
const obj = {
|
|
45
53
|
clientId: this.headerData.client,
|
|
46
54
|
storeDate: this.headerData.date.endDate,
|
|
@@ -68,18 +76,23 @@ export class ExploreViewComponent {
|
|
|
68
76
|
else {
|
|
69
77
|
console.warn('No location data available.');
|
|
70
78
|
}
|
|
79
|
+
this.loading = false;
|
|
80
|
+
this.noData = false;
|
|
71
81
|
}
|
|
72
82
|
else {
|
|
73
83
|
console.warn('Invalid response data:', res);
|
|
84
|
+
this.loading = false;
|
|
85
|
+
this.noData = true;
|
|
74
86
|
}
|
|
75
87
|
},
|
|
76
88
|
error: (err) => {
|
|
77
89
|
console.error('Error fetching map data:', err);
|
|
90
|
+
this.loading = false;
|
|
91
|
+
this.noData = true;
|
|
78
92
|
}
|
|
79
93
|
});
|
|
80
94
|
}
|
|
81
95
|
getData() {
|
|
82
|
-
mapboxgl.accessToken = 'pk.eyJ1IjoiYmFsYWppdGFuZ28iLCJhIjoiY20wZ2xiem55MDFxYTJ3b21zb3FjNHdwayJ9.nnIIzt7OeYlYHufGE8lFWQ';
|
|
83
96
|
// Check that locations exist before proceeding
|
|
84
97
|
if (this.auLocations.length === 0) {
|
|
85
98
|
console.warn('No locations to display.');
|
|
@@ -109,27 +122,45 @@ export class ExploreViewComponent {
|
|
|
109
122
|
container: 'map',
|
|
110
123
|
style: 'mapbox://styles/mapbox/streets-v12',
|
|
111
124
|
center: [firstLocation.lng, firstLocation.lat],
|
|
112
|
-
zoom:
|
|
125
|
+
zoom: 4 // Adjust zoom as necessary
|
|
113
126
|
});
|
|
114
127
|
// Add markers to the map
|
|
115
|
-
geojson.features.forEach(feature => {
|
|
128
|
+
geojson.features.forEach((feature, featureIndex) => {
|
|
116
129
|
const { properties, geometry } = feature;
|
|
117
130
|
const el = document.createElement('div');
|
|
118
131
|
const width = properties.iconSize[0];
|
|
119
132
|
const height = properties.iconSize[1];
|
|
120
133
|
el.className = 'marker';
|
|
121
|
-
el.
|
|
134
|
+
el.innerHTML = `
|
|
135
|
+
<div class="marker-icon" style="background-color: white; width: 65px; height: 70px; display: flex; justify-content: center; align-items: center;">
|
|
136
|
+
<div class="marker-content" style="display: flex; flex-direction: column; align-items: center;">
|
|
137
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 13 13" fill="none">
|
|
138
|
+
<path d="M1.33654 3.3637L1.29658 3.42611C0.877698 4.16701 1.32493 5.10335 2.12931 5.21076C2.20218 5.21967 2.26999 5.22438 2.33625 5.22438C2.77021 5.22438 3.1539 5.03821 3.42132 4.74793L3.83666 4.2971L4.25059 4.74923C4.51476 5.03778 4.89758 5.22438 5.33448 5.22438C5.76941 5.22438 6.15443 5.03752 6.41837 4.74923L6.83359 4.29568L7.24882 4.74923C7.51275 5.03752 7.89777 5.22438 8.33271 5.22438C8.76764 5.22438 9.15266 5.03752 9.4166 4.74923L9.83182 4.29568L10.247 4.74923C10.511 5.03752 10.896 5.22438 11.3309 5.22438C11.395 5.22438 11.4649 5.21966 11.5372 5.21083C12.3593 5.09875 12.808 4.11225 12.3286 3.36408C12.3286 3.36403 12.3285 3.36399 12.3285 3.36395L11.0088 1.30621L11.0081 1.30511C10.9967 1.28722 10.9686 1.26804 10.9332 1.26804H2.72942C2.69403 1.26804 2.66589 1.28722 2.65448 1.30511L2.65401 1.30584L1.33654 3.3637ZM11.0731 7.06667V9.41753V9.98049H10.5101H3.15248H2.58952V9.41753V7.06702C2.50678 7.07318 2.42308 7.07634 2.33855 7.07634C2.30679 7.07634 2.27525 7.07587 2.24392 7.07495V9.41753V10.8696C2.24392 11.3526 2.64467 11.7587 3.15248 11.7587H10.5101C11.0179 11.7587 11.4187 11.3526 11.4187 10.8696V9.41753V7.07509C11.3888 7.07591 11.3587 7.07634 11.3286 7.07634C11.2428 7.07634 11.1575 7.07308 11.0731 7.06667Z" stroke="#101828" stroke-width="1.12592"/>
|
|
139
|
+
</svg>
|
|
140
|
+
<div class="marker-label" style="font-size: 10px; text-align: center;">
|
|
141
|
+
${properties.storeName}
|
|
142
|
+
</div>
|
|
143
|
+
</div>
|
|
144
|
+
</div>
|
|
145
|
+
`;
|
|
122
146
|
el.style.width = `${width}px`;
|
|
123
147
|
el.style.height = `${height}px`;
|
|
124
148
|
el.style.backgroundSize = '100%';
|
|
149
|
+
// Apply dynamic class based on auth
|
|
150
|
+
const store = this.auLocations[featureIndex];
|
|
151
|
+
if (store) {
|
|
152
|
+
el?.addEventListener('click', () => {
|
|
153
|
+
this.adjustLayout(store);
|
|
154
|
+
});
|
|
155
|
+
}
|
|
125
156
|
// Create a popup instance with the feature properties
|
|
126
157
|
const popup = new mapboxgl.Popup({ offset: 25 })
|
|
127
158
|
.setHTML(`
|
|
128
159
|
<div style="background-color: rgba(255, 255, 255, 0.8); color: #333; padding: 10px; border-radius: 8px;">
|
|
129
160
|
<h3>${properties.storeName || 'Store Name'}</h3>
|
|
130
|
-
<p>Average Footfall: ${properties.footfall || '
|
|
131
|
-
<p>Open Time: ${properties.openTime || '
|
|
132
|
-
<p>Close Time: ${properties.closeTime || '
|
|
161
|
+
<p>Average Footfall: ${properties.footfall || '--'}</p>
|
|
162
|
+
<p>Open Time: ${properties.openTime || '--'}</p>
|
|
163
|
+
<p>Close Time: ${properties.closeTime || '--'}</p>
|
|
133
164
|
</div>
|
|
134
165
|
`);
|
|
135
166
|
// Use the coordinates from the feature
|
|
@@ -141,14 +172,24 @@ export class ExploreViewComponent {
|
|
|
141
172
|
.addTo(this.map);
|
|
142
173
|
});
|
|
143
174
|
}
|
|
175
|
+
adjustLayout(store) {
|
|
176
|
+
this.selectedStore = store;
|
|
177
|
+
console.log(this.selectedStore);
|
|
178
|
+
this.auth = true;
|
|
179
|
+
this.setClass = 'col-md-9'; // Adjust the layout to 8 columns on marker click
|
|
180
|
+
}
|
|
181
|
+
toggleAuth() {
|
|
182
|
+
this.auth = !this.auth;
|
|
183
|
+
this.setClass = this.auth ? 'col-md-9' : 'col-md-12';
|
|
184
|
+
}
|
|
144
185
|
backToFootfall() {
|
|
145
186
|
this.router.navigate(['/manage/traffic']);
|
|
146
187
|
}
|
|
147
188
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExploreViewComponent, deps: [{ token: i1.TrafficService }, { token: i2.GlobalStateService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
148
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ExploreViewComponent, selector: "lib-explore-view", ngImport: i0, template: "\r\n <div class=\"row mx-1\">\r\n <div class=\"col-md-12\">\r\n <div class=\"card h-100 px-5 py-3\">\r\n <div class=\"d-flex align-items-center mb-5 me-2\">\r\n <div class=\"flex-shrink-0\">\r\n <span 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 </div>\r\n </div>\r\n <!-- <google-map id=\"map\" [options]=\"mapOptions\">\r\n @for (location of auLocations; track location) {\r\n <map-advanced-marker \r\n #markerElem=\"mapAdvancedMarker\"\r\n [position]=\"{ lat: location.lat, lng: location.lng }\"\r\n (markerClick)=\"onMarkerClick(location)\"\r\n />\r\n }\r\n </google-map> -->\r\n <div id=\"map\" class=\"mt-20\" style=\"width: 100%; height: 100vh;\"></div>\r\n </div>\r\n </div>\r\n \r\n <!-- <div class=\"col-md-4\">\r\n <div class=\"card px-5 h-100 py-3\">\r\n <img class=\"w-100\" src=\"assets/tango/Image/baseimg.png\">\r\n <div class=\"card-header my-3 px-0\">\r\n <div class=\"col-md-12\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n\r\n <span class=\"card-label header\">{{storeName | titlecase}} - {{footfallDate | date:'dd MMM, yyyy'}}</span>\r\n </h3>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div> -->\r\n </div>\r\n\r\n\r\n \r\n", styles: ["#map{width:100%!important;position:relative}:host::ng-deep .map-container{height:500px;width:100%!important;position:relative;overflow:hidden}#map{position:absolute;top:0;bottom:0;width:100%}.marker{display:block;border:none;border-radius:50%;cursor:pointer;padding:0}.tooltip{position:absolute;background-color:#fff;padding:5px 10px;border-radius:4px;box-shadow:0 2px 6px #00000026;z-index:3;font-size:12px;pointer-events:none}.mapboxgl-popup{background-color:#fffc;border-radius:8px;padding:10px}.mapboxgl-popup-content{background-color:#fffc;color:#333;padding:5px;border-radius:5px}\n"] });
|
|
189
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ExploreViewComponent, selector: "lib-explore-view", ngImport: i0, template: "<div *ngIf=\"!noData\" class=\"row\">\r\n <div [ngClass]=\"setClass\">\r\n <div class=\"card px-2 py-3\">\r\n <div class=\"d-flex align-items-center me-2\">\r\n <div class=\"flex-shrink-0\">\r\n <span class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" 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 </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div id=\"map\" style=\"width: 100%; height: 100vh;\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"auth\" class=\"col-md-3\">\r\n <div class=\"card px-5 h-100 py-3 position-relative\">\r\n <img (click)=\"toggleAuth()\" class=\"leftIcon position-absolute left-0 cursor-pointer\"\r\n src=\"assets/tango/Image/leftIcon.svg\">\r\n <img class=\"w-100\" src=\"assets/tango/Image/baseimg.png\">\r\n <div class=\"card-header mt-3 px-0 border-0 min-h-10px\">\r\n <div class=\"col-md-12\">\r\n <h3 class=\"card-title align-items-start d-flex\">\r\n <span class=\"card-label\">{{selectedStore.storeName ?? '--'}}</span>\r\n <span class=\"badge badge-light-primary mt-1\">App ID : {{selectedStore.appId ?? '--'}}</span>\r\n </h3>\r\n </div>\r\n \r\n </div>\r\n <div class=\"card-body pt-0 px-0\">\r\n <div class=\"col-md-12\">\r\n <span class=\"map-subtext\">{{selectedStore?.storeProfile?.address ? selectedStore?.storeProfile?.address:'--'}} {{selectedStore?.storeProfile?.country ? selectedStore?.storeProfile?.country:'--'}} {{selectedStore?.storeProfile?.pincode ? selectedStore?.storeProfile?.pincode:'--'}}</span>\r\n <div class=\"flex items-center gap-5 mt-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.name ?selectedStore?.spocDetails?.name:'--'}}\r\n </span>\r\n </span>\r\n <span class=\"text-sm text-gray-600 mx-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146516)\">\r\n <path\r\n d=\"M14.665 11.2802V13.2802C14.6657 13.4659 14.6277 13.6497 14.5533 13.8198C14.479 13.9899 14.3699 14.1426 14.233 14.2681C14.0962 14.3937 13.9347 14.4892 13.7588 14.5487C13.5829 14.6082 13.3966 14.6303 13.2117 14.6136C11.1602 14.3907 9.18966 13.6897 7.45833 12.5669C5.84755 11.5433 4.48189 10.1777 3.45833 8.56689C2.33165 6.8277 1.63049 4.84756 1.41166 2.78689C1.395 2.60254 1.41691 2.41673 1.47599 2.24131C1.53508 2.06589 1.63004 1.90469 1.75484 1.76797C1.87964 1.63126 2.03153 1.52203 2.20086 1.44724C2.37018 1.37245 2.55322 1.33374 2.73833 1.33356H4.73833C5.06187 1.33038 5.37552 1.44495 5.62084 1.65592C5.86615 1.86689 6.02638 2.15986 6.07166 2.48023C6.15608 3.12027 6.31263 3.74871 6.53833 4.35356C6.62802 4.59218 6.64744 4.8515 6.59427 5.10081C6.5411 5.35012 6.41757 5.57897 6.23833 5.76023L5.39166 6.60689C6.3407 8.27592 7.72263 9.65786 9.39166 10.6069L10.2383 9.76023C10.4196 9.58099 10.6484 9.45746 10.8977 9.40429C11.1471 9.35112 11.4064 9.37053 11.645 9.46023C12.2498 9.68593 12.8783 9.84248 13.5183 9.92689C13.8422 9.97258 14.1379 10.1357 14.3494 10.3852C14.5608 10.6348 14.6731 10.9533 14.665 11.2802Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146516\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.contact ?selectedStore?.spocDetails?.contact:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"my-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M14.6654 3.99984C14.6654 3.2665 14.0654 2.6665 13.332 2.6665H2.66536C1.93203 2.6665 1.33203 3.2665 1.33203 3.99984M14.6654 3.99984V11.9998C14.6654 12.7332 14.0654 13.3332 13.332 13.3332H2.66536C1.93203 13.3332 1.33203 12.7332 1.33203 11.9998V3.99984M14.6654 3.99984L7.9987 8.6665L1.33203 3.99984\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.email ? selectedStore?.spocDetails?.email:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"flex items-center gap-5 my-3\">\r\n <span class=\"text-sm text-gray-600 \">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.storeType?.type ? selectedStore?.storeType?.type:'--'}}\r\n </span>\r\n </span>\r\n <span class=\"text-sm text-gray-600 mx-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146516)\">\r\n <path\r\n d=\"M14.665 11.2802V13.2802C14.6657 13.4659 14.6277 13.6497 14.5533 13.8198C14.479 13.9899 14.3699 14.1426 14.233 14.2681C14.0962 14.3937 13.9347 14.4892 13.7588 14.5487C13.5829 14.6082 13.3966 14.6303 13.2117 14.6136C11.1602 14.3907 9.18966 13.6897 7.45833 12.5669C5.84755 11.5433 4.48189 10.1777 3.45833 8.56689C2.33165 6.8277 1.63049 4.84756 1.41166 2.78689C1.395 2.60254 1.41691 2.41673 1.47599 2.24131C1.53508 2.06589 1.63004 1.90469 1.75484 1.76797C1.87964 1.63126 2.03153 1.52203 2.20086 1.44724C2.37018 1.37245 2.55322 1.33374 2.73833 1.33356H4.73833C5.06187 1.33038 5.37552 1.44495 5.62084 1.65592C5.86615 1.86689 6.02638 2.15986 6.07166 2.48023C6.15608 3.12027 6.31263 3.74871 6.53833 4.35356C6.62802 4.59218 6.64744 4.8515 6.59427 5.10081C6.5411 5.35012 6.41757 5.57897 6.23833 5.76023L5.39166 6.60689C6.3407 8.27592 7.72263 9.65786 9.39166 10.6069L10.2383 9.76023C10.4196 9.58099 10.6484 9.45746 10.8977 9.40429C11.1471 9.35112 11.4064 9.37053 11.645 9.46023C12.2498 9.68593 12.8783 9.84248 13.5183 9.92689C13.8422 9.97258 14.1379 10.1357 14.3494 10.3852C14.5608 10.6348 14.6731 10.9533 14.665 11.2802Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146516\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.storeType?.name ? selectedStore?.storeType?.name:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n \r\n <div class=\"flex items-center gap-5 my-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146529)\">\r\n <path\r\n d=\"M9 4.5V9L12 10.5M16.5 9C16.5 13.1421 13.1421 16.5 9 16.5C4.85786 16.5 1.5 13.1421 1.5 9C1.5 4.85786 4.85786 1.5 9 1.5C13.1421 1.5 16.5 4.85786 16.5 9Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146529\">\r\n <rect width=\"18\" height=\"18\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium text-gray-800\">\r\n {{selectedStore?.openTime ? selectedStore?.openTime:'--'}} - {{selectedStore?.closeTime ? selectedStore?.closeTime:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{selectedStore?.avgFootfall? selectedStore?.avgFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Footfall \r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{selectedStore?.avgWeekdayFootfall ? selectedStore?.avgWeekdayFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Weekday Footfall <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{selectedStore?.avgWeekendFootfall ? selectedStore?.avgWeekendFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Weekend Footfall <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n \r\n \r\n <!-- <div class=\"mt-5 col-lg-12\">\r\n <button class=\"btn btn-light-primary1 w-100 px-2\"><span class=\"ms-2\">View more\r\n Details</span></button>\r\n </div> -->\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n</div>\r\n\r\n<!-- <div *ngIf=\"loading\" class=\"row px-3 loader card 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 px-3\">\r\n <div class=\"card\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata-table\" 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 Store map</div>\r\n </div>\r\n </div>\r\n</div>", styles: ["#map{width:100%!important;position:relative}:host::ng-deep .map-container{height:500px;width:100%!important;position:relative;overflow:hidden}#map{top:0;bottom:0;width:100%}.marker{display:block;border:none;border-radius:50%;cursor:pointer;padding:0}.tooltip{position:absolute;background-color:#fff;padding:5px 10px;border-radius:4px;box-shadow:0 2px 6px #00000026;z-index:3;font-size:12px;pointer-events:none}.mapboxgl-popup{background-color:#fffc;border-radius:8px;padding:10px}.mapboxgl-popup-content{background-color:#fffc;color:#333;padding:5px;border-radius:5px}.leftIcon{width:50px;height:50px;left:-25px;top:31px}.card-title .card-label{color:var(--Gray-900, #101828)!important;font-family:Inter;font-size:14px!important;font-weight:600!important;line-height:30px}.btn-light-primary1{color:var(--White, #FFF)!important;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize;border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important}.map-subtext{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-style:normal;font-weight:500!important;line-height:18px}.map-avg{color:var(--Gray-700, #344054)!important;font-size:18px!important;font-style:normal;font-weight:600;line-height:28px}.map-avgtest{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-style:normal;font-weight:500;line-height:20px}.img-nodata-table{width:35%;height:20%}:host::ng-deep .mapboxgl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0;outline:none!important}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
149
190
|
}
|
|
150
191
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExploreViewComponent, decorators: [{
|
|
151
192
|
type: Component,
|
|
152
|
-
args: [{ selector: 'lib-explore-view', template: "\r\n <div class=\"row mx-1\">\r\n <div class=\"col-md-12\">\r\n <div class=\"card h-100 px-5 py-3\">\r\n <div class=\"d-flex align-items-center mb-5 me-2\">\r\n <div class=\"flex-shrink-0\">\r\n <span 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 </div>\r\n </div>\r\n <!-- <google-map id=\"map\" [options]=\"mapOptions\">\r\n @for (location of auLocations; track location) {\r\n <map-advanced-marker \r\n #markerElem=\"mapAdvancedMarker\"\r\n [position]=\"{ lat: location.lat, lng: location.lng }\"\r\n (markerClick)=\"onMarkerClick(location)\"\r\n />\r\n }\r\n </google-map> -->\r\n <div id=\"map\" class=\"mt-20\" style=\"width: 100%; height: 100vh;\"></div>\r\n </div>\r\n </div>\r\n \r\n <!-- <div class=\"col-md-4\">\r\n <div class=\"card px-5 h-100 py-3\">\r\n <img class=\"w-100\" src=\"assets/tango/Image/baseimg.png\">\r\n <div class=\"card-header my-3 px-0\">\r\n <div class=\"col-md-12\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n\r\n <span class=\"card-label header\">{{storeName | titlecase}} - {{footfallDate | date:'dd MMM, yyyy'}}</span>\r\n </h3>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div> -->\r\n </div>\r\n\r\n\r\n \r\n", styles: ["#map{width:100%!important;position:relative}:host::ng-deep .map-container{height:500px;width:100%!important;position:relative;overflow:hidden}#map{position:absolute;top:0;bottom:0;width:100%}.marker{display:block;border:none;border-radius:50%;cursor:pointer;padding:0}.tooltip{position:absolute;background-color:#fff;padding:5px 10px;border-radius:4px;box-shadow:0 2px 6px #00000026;z-index:3;font-size:12px;pointer-events:none}.mapboxgl-popup{background-color:#fffc;border-radius:8px;padding:10px}.mapboxgl-popup-content{background-color:#fffc;color:#333;padding:5px;border-radius:5px}\n"] }]
|
|
193
|
+
args: [{ selector: 'lib-explore-view', template: "<div *ngIf=\"!noData\" class=\"row\">\r\n <div [ngClass]=\"setClass\">\r\n <div class=\"card px-2 py-3\">\r\n <div class=\"d-flex align-items-center me-2\">\r\n <div class=\"flex-shrink-0\">\r\n <span class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" 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 </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div id=\"map\" style=\"width: 100%; height: 100vh;\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"auth\" class=\"col-md-3\">\r\n <div class=\"card px-5 h-100 py-3 position-relative\">\r\n <img (click)=\"toggleAuth()\" class=\"leftIcon position-absolute left-0 cursor-pointer\"\r\n src=\"assets/tango/Image/leftIcon.svg\">\r\n <img class=\"w-100\" src=\"assets/tango/Image/baseimg.png\">\r\n <div class=\"card-header mt-3 px-0 border-0 min-h-10px\">\r\n <div class=\"col-md-12\">\r\n <h3 class=\"card-title align-items-start d-flex\">\r\n <span class=\"card-label\">{{selectedStore.storeName ?? '--'}}</span>\r\n <span class=\"badge badge-light-primary mt-1\">App ID : {{selectedStore.appId ?? '--'}}</span>\r\n </h3>\r\n </div>\r\n \r\n </div>\r\n <div class=\"card-body pt-0 px-0\">\r\n <div class=\"col-md-12\">\r\n <span class=\"map-subtext\">{{selectedStore?.storeProfile?.address ? selectedStore?.storeProfile?.address:'--'}} {{selectedStore?.storeProfile?.country ? selectedStore?.storeProfile?.country:'--'}} {{selectedStore?.storeProfile?.pincode ? selectedStore?.storeProfile?.pincode:'--'}}</span>\r\n <div class=\"flex items-center gap-5 mt-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.name ?selectedStore?.spocDetails?.name:'--'}}\r\n </span>\r\n </span>\r\n <span class=\"text-sm text-gray-600 mx-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146516)\">\r\n <path\r\n d=\"M14.665 11.2802V13.2802C14.6657 13.4659 14.6277 13.6497 14.5533 13.8198C14.479 13.9899 14.3699 14.1426 14.233 14.2681C14.0962 14.3937 13.9347 14.4892 13.7588 14.5487C13.5829 14.6082 13.3966 14.6303 13.2117 14.6136C11.1602 14.3907 9.18966 13.6897 7.45833 12.5669C5.84755 11.5433 4.48189 10.1777 3.45833 8.56689C2.33165 6.8277 1.63049 4.84756 1.41166 2.78689C1.395 2.60254 1.41691 2.41673 1.47599 2.24131C1.53508 2.06589 1.63004 1.90469 1.75484 1.76797C1.87964 1.63126 2.03153 1.52203 2.20086 1.44724C2.37018 1.37245 2.55322 1.33374 2.73833 1.33356H4.73833C5.06187 1.33038 5.37552 1.44495 5.62084 1.65592C5.86615 1.86689 6.02638 2.15986 6.07166 2.48023C6.15608 3.12027 6.31263 3.74871 6.53833 4.35356C6.62802 4.59218 6.64744 4.8515 6.59427 5.10081C6.5411 5.35012 6.41757 5.57897 6.23833 5.76023L5.39166 6.60689C6.3407 8.27592 7.72263 9.65786 9.39166 10.6069L10.2383 9.76023C10.4196 9.58099 10.6484 9.45746 10.8977 9.40429C11.1471 9.35112 11.4064 9.37053 11.645 9.46023C12.2498 9.68593 12.8783 9.84248 13.5183 9.92689C13.8422 9.97258 14.1379 10.1357 14.3494 10.3852C14.5608 10.6348 14.6731 10.9533 14.665 11.2802Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146516\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.contact ?selectedStore?.spocDetails?.contact:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"my-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M14.6654 3.99984C14.6654 3.2665 14.0654 2.6665 13.332 2.6665H2.66536C1.93203 2.6665 1.33203 3.2665 1.33203 3.99984M14.6654 3.99984V11.9998C14.6654 12.7332 14.0654 13.3332 13.332 13.3332H2.66536C1.93203 13.3332 1.33203 12.7332 1.33203 11.9998V3.99984M14.6654 3.99984L7.9987 8.6665L1.33203 3.99984\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.email ? selectedStore?.spocDetails?.email:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"flex items-center gap-5 my-3\">\r\n <span class=\"text-sm text-gray-600 \">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.storeType?.type ? selectedStore?.storeType?.type:'--'}}\r\n </span>\r\n </span>\r\n <span class=\"text-sm text-gray-600 mx-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146516)\">\r\n <path\r\n d=\"M14.665 11.2802V13.2802C14.6657 13.4659 14.6277 13.6497 14.5533 13.8198C14.479 13.9899 14.3699 14.1426 14.233 14.2681C14.0962 14.3937 13.9347 14.4892 13.7588 14.5487C13.5829 14.6082 13.3966 14.6303 13.2117 14.6136C11.1602 14.3907 9.18966 13.6897 7.45833 12.5669C5.84755 11.5433 4.48189 10.1777 3.45833 8.56689C2.33165 6.8277 1.63049 4.84756 1.41166 2.78689C1.395 2.60254 1.41691 2.41673 1.47599 2.24131C1.53508 2.06589 1.63004 1.90469 1.75484 1.76797C1.87964 1.63126 2.03153 1.52203 2.20086 1.44724C2.37018 1.37245 2.55322 1.33374 2.73833 1.33356H4.73833C5.06187 1.33038 5.37552 1.44495 5.62084 1.65592C5.86615 1.86689 6.02638 2.15986 6.07166 2.48023C6.15608 3.12027 6.31263 3.74871 6.53833 4.35356C6.62802 4.59218 6.64744 4.8515 6.59427 5.10081C6.5411 5.35012 6.41757 5.57897 6.23833 5.76023L5.39166 6.60689C6.3407 8.27592 7.72263 9.65786 9.39166 10.6069L10.2383 9.76023C10.4196 9.58099 10.6484 9.45746 10.8977 9.40429C11.1471 9.35112 11.4064 9.37053 11.645 9.46023C12.2498 9.68593 12.8783 9.84248 13.5183 9.92689C13.8422 9.97258 14.1379 10.1357 14.3494 10.3852C14.5608 10.6348 14.6731 10.9533 14.665 11.2802Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146516\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.storeType?.name ? selectedStore?.storeType?.name:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n \r\n <div class=\"flex items-center gap-5 my-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146529)\">\r\n <path\r\n d=\"M9 4.5V9L12 10.5M16.5 9C16.5 13.1421 13.1421 16.5 9 16.5C4.85786 16.5 1.5 13.1421 1.5 9C1.5 4.85786 4.85786 1.5 9 1.5C13.1421 1.5 16.5 4.85786 16.5 9Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146529\">\r\n <rect width=\"18\" height=\"18\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium text-gray-800\">\r\n {{selectedStore?.openTime ? selectedStore?.openTime:'--'}} - {{selectedStore?.closeTime ? selectedStore?.closeTime:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{selectedStore?.avgFootfall? selectedStore?.avgFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Footfall \r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{selectedStore?.avgWeekdayFootfall ? selectedStore?.avgWeekdayFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Weekday Footfall <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{selectedStore?.avgWeekendFootfall ? selectedStore?.avgWeekendFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Weekend Footfall <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n \r\n \r\n <!-- <div class=\"mt-5 col-lg-12\">\r\n <button class=\"btn btn-light-primary1 w-100 px-2\"><span class=\"ms-2\">View more\r\n Details</span></button>\r\n </div> -->\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n</div>\r\n\r\n<!-- <div *ngIf=\"loading\" class=\"row px-3 loader card 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 px-3\">\r\n <div class=\"card\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata-table\" 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 Store map</div>\r\n </div>\r\n </div>\r\n</div>", styles: ["#map{width:100%!important;position:relative}:host::ng-deep .map-container{height:500px;width:100%!important;position:relative;overflow:hidden}#map{top:0;bottom:0;width:100%}.marker{display:block;border:none;border-radius:50%;cursor:pointer;padding:0}.tooltip{position:absolute;background-color:#fff;padding:5px 10px;border-radius:4px;box-shadow:0 2px 6px #00000026;z-index:3;font-size:12px;pointer-events:none}.mapboxgl-popup{background-color:#fffc;border-radius:8px;padding:10px}.mapboxgl-popup-content{background-color:#fffc;color:#333;padding:5px;border-radius:5px}.leftIcon{width:50px;height:50px;left:-25px;top:31px}.card-title .card-label{color:var(--Gray-900, #101828)!important;font-family:Inter;font-size:14px!important;font-weight:600!important;line-height:30px}.btn-light-primary1{color:var(--White, #FFF)!important;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize;border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important}.map-subtext{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-style:normal;font-weight:500!important;line-height:18px}.map-avg{color:var(--Gray-700, #344054)!important;font-size:18px!important;font-style:normal;font-weight:600;line-height:28px}.map-avgtest{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-style:normal;font-weight:500;line-height:20px}.img-nodata-table{width:35%;height:20%}:host::ng-deep .mapboxgl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0;outline:none!important}\n"] }]
|
|
153
194
|
}], ctorParameters: () => [{ type: i1.TrafficService }, { type: i2.GlobalStateService }, { type: i3.Router }] });
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbG9yZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJhZmZpYy9zcmMvbGliL2NvbXBvbmVudHMvZXhwbG9yZS12aWV3L2V4cGxvcmUtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYWZmaWMvc3JjL2xpYi9jb21wb25lbnRzL2V4cGxvcmUtdmlldy9leHBsb3JlLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sS0FBSyxRQUFRLE1BQU0sV0FBVyxDQUFDOzs7OztBQU10QyxNQUFNLE9BQU8sb0JBQW9CO0lBWVo7SUFBK0I7SUFBK0I7SUFYakYsVUFBVSxDQUFNO0lBQ2hCLFlBQVksQ0FBTTtJQUVsQixvQ0FBb0M7SUFDcEMsV0FBVyxHQUFVLEVBQUUsQ0FBQztJQUN4QixVQUFVLEdBQTJCO1FBQ25DLEtBQUssRUFBRSxhQUFhO1FBQ3BCLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtRQUMxQixJQUFJLEVBQUUsRUFBRTtLQUNULENBQUM7SUFDZSxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUM1QyxZQUFxQixPQUF1QixFQUFRLEVBQXNCLEVBQVMsTUFBYTtRQUEzRSxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUFRLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBTztJQUVoRyxDQUFDO0lBQ0MsUUFBUTtRQUNOLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYzthQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDakQsU0FBUyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDdkIsbURBQW1EO1lBQ25ELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBUyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBUyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7WUFFbEgsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFLSCxHQUFHLENBQWU7SUFFbEIsTUFBTTtRQUNKLE1BQU0sR0FBRyxHQUFHO1lBQ1YsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTTtZQUNoQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTztZQUN2QyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDM0IsQ0FBQztRQUVGLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3JELFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO29CQUN6QyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO29CQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQywyQkFBMkI7b0JBQ3hFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFFZixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTt3QkFDL0IsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDMUMsSUFBSSxhQUFhLElBQUksT0FBTyxhQUFhLENBQUMsR0FBRyxLQUFLLFFBQVEsSUFBSSxPQUFPLGFBQWEsQ0FBQyxHQUFHLEtBQUssUUFBUSxFQUFFOzRCQUNuRyxJQUFJLENBQUMsVUFBVSxHQUFHO2dDQUNoQixHQUFHLElBQUksQ0FBQyxVQUFVO2dDQUNsQixNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsYUFBYSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsYUFBYSxDQUFDLEdBQUcsRUFBRTs2QkFDM0QsQ0FBQzt5QkFDSDs2QkFBTTs0QkFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLCtCQUErQixFQUFFLGFBQWEsQ0FBQyxDQUFDO3lCQUMvRDtxQkFDRjt5QkFBTTt3QkFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLENBQUM7cUJBQzdDO2lCQUNGO3FCQUFNO29CQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxDQUFDLENBQUM7aUJBQzdDO1lBQ0gsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDakQsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxPQUFPO1FBQ0osUUFBZ0IsQ0FBQyxXQUFXLEdBQUcsZ0dBQWdHLENBQUM7UUFFakksK0NBQStDO1FBQy9DLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQztZQUN6QyxPQUFPO1NBQ1I7UUFFRCxNQUFNLE9BQU8sR0FBRztZQUNkLE1BQU0sRUFBRSxtQkFBbUI7WUFDM0IsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDbEQsTUFBTSxFQUFFLFNBQVM7Z0JBQ2pCLFlBQVksRUFBRTtvQkFDWixXQUFXLEVBQUUsS0FBSyxDQUFDLFNBQVM7b0JBQzVCLFNBQVMsRUFBRSxJQUFJLEdBQUcsS0FBSztvQkFDdkIsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztvQkFDcEIsVUFBVSxFQUFFLEtBQUssQ0FBQyxXQUFXO29CQUM3QixVQUFVLEVBQUUsS0FBSyxDQUFDLFFBQVE7b0JBQzFCLFdBQVcsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFVLGFBQWE7aUJBQ3BEO2dCQUNELFVBQVUsRUFBRTtvQkFDVixNQUFNLEVBQUUsT0FBTztvQkFDZixhQUFhLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBRSw4QkFBOEI7aUJBQ3RFO2FBQ0YsQ0FBQyxDQUFDO1NBQ0osQ0FBQztRQUVGLHlEQUF5RDtRQUN6RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQzFCLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLEtBQUssRUFBRSxvQ0FBb0M7WUFDM0MsTUFBTSxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsR0FBRyxDQUFDO1lBQzlDLElBQUksRUFBRSxFQUFFLENBQUMsMkJBQTJCO1NBQ3JDLENBQUMsQ0FBQztRQUVILHlCQUF5QjtRQUN6QixPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNqQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQztZQUV6QyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QyxFQUFFLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztZQUN4QixFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxnQ0FBZ0MsVUFBVSxDQUFDLE9BQU8sSUFBSSxLQUFLLElBQUksTUFBTSxHQUFHLENBQUM7WUFDcEcsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxLQUFLLElBQUksQ0FBQztZQUM5QixFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDO1lBQ2hDLEVBQUUsQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztZQUVqQyxzREFBc0Q7WUFDdEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDO2lCQUMvQyxPQUFPLENBQUM7O2dCQUVDLFVBQVUsQ0FBQyxTQUFTLElBQUksWUFBWTtpQ0FDbkIsVUFBVSxDQUFDLFFBQVEsSUFBSSxLQUFLOzBCQUNuQyxVQUFVLENBQUMsUUFBUSxJQUFJLEtBQUs7MkJBQzNCLFVBQVUsQ0FBQyxTQUFTLElBQUksS0FBSzs7T0FFakQsQ0FBQyxDQUFDO1lBRUgsdUNBQXVDO1lBQ3ZDLE1BQU0sV0FBVyxHQUFxQixRQUFRLENBQUMsV0FBK0IsQ0FBQztZQUUvRSx5QkFBeUI7WUFDekIsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztpQkFDcEIsU0FBUyxDQUFDLFdBQVcsQ0FBQztpQkFDdEIsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFFLGlDQUFpQztpQkFDbEQsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFNQyxjQUFjO1FBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUE7SUFDM0MsQ0FBQzt3R0F4SlUsb0JBQW9COzRGQUFwQixvQkFBb0Isd0RDWmpDLGtnSEFtRUE7OzRGRHZEYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhZmZpY1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFmZmljLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgKiBhcyBtYXBib3hnbCBmcm9tICdtYXBib3gtZ2wnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1leHBsb3JlLXZpZXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9leHBsb3JlLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9leHBsb3JlLXZpZXcuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFeHBsb3JlVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCAge1xyXG4gIGhlYWRlckRhdGE6IGFueTtcclxuICBzdG9yZUlkYXJyYXk6IGFueTtcclxuICBcclxuICAvLyBtYXA6IGdvb2dsZS5tYXBzLk1hcCB8IHVuZGVmaW5lZDtcclxuICBhdUxvY2F0aW9uczogYW55W10gPSBbXTtcclxuICBtYXBPcHRpb25zOiBnb29nbGUubWFwcy5NYXBPcHRpb25zID0ge1xyXG4gICAgbWFwSWQ6IFwiREVNT19NQVBfSURcIixcclxuICAgIGNlbnRlcjogeyBsYXQ6IDAsIGxuZzogMCB9LCAgLy8gSW5pdGlhbCBjZW50ZXJcclxuICAgIHpvb206IDE0LFxyXG4gIH07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbmNvbnN0cnVjdG9yKCBwcml2YXRlIHNlcnZpY2U6IFRyYWZmaWNTZXJ2aWNlLHB1YmxpYyBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLHByaXZhdGUgcm91dGVyOlJvdXRlcil7XHJcblxyXG59XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGVib3VuY2VUaW1lKDMwMCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIC8vIE9ubHkgcHJvY2VzcyB0aGUgbGF0ZXN0IGRhdGEgYWZ0ZXIgZGVib3VuY2UgdGltZVxyXG4gICAgICAgIHRoaXMuaGVhZGVyRGF0YSA9IGRhdGE7XHJcbiAgICAgICAgdGhpcy5zdG9yZUlkYXJyYXkgPSB0aGlzLmhlYWRlckRhdGE/LnN0b3Jlcy5maWx0ZXIoKHN0b3JlOmFueSkgPT4gc3RvcmUuY2hlY2tlZCkubWFwKChzdG9yZTphbnkpID0+IHN0b3JlLnN0b3JlSWQpXHJcbiAgICAgICBcclxuICAgICAgICB0aGlzLmdldE1hcCgpO1xyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG5cclxuICBtYXA6IG1hcGJveGdsLk1hcDtcclxuXHJcbiAgZ2V0TWFwKCkge1xyXG4gICAgY29uc3Qgb2JqID0ge1xyXG4gICAgICBjbGllbnRJZDogdGhpcy5oZWFkZXJEYXRhLmNsaWVudCxcclxuICAgICAgc3RvcmVEYXRlOiB0aGlzLmhlYWRlckRhdGEuZGF0ZS5lbmREYXRlLFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLnN0b3JlSWRhcnJheVxyXG4gICAgfTtcclxuICBcclxuICAgIHRoaXMuc2VydmljZS5nZU1hcHMob2JqKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuZGF0YSAmJiByZXMuZGF0YS5zdG9yZURhdGEpIHtcclxuICAgICAgICAgICAgdGhpcy5hdUxvY2F0aW9ucyA9IHJlcy5kYXRhLnN0b3JlRGF0YTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ0xvY2F0aW9uczonLCB0aGlzLmF1TG9jYXRpb25zKTsgLy8gQ2hlY2sgaWYgZGF0YSBpcyBjb3JyZWN0XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0RGF0YSgpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgaWYgKHRoaXMuYXVMb2NhdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGZpcnN0TG9jYXRpb24gPSB0aGlzLmF1TG9jYXRpb25zWzBdO1xyXG4gICAgICAgICAgICAgIGlmIChmaXJzdExvY2F0aW9uICYmIHR5cGVvZiBmaXJzdExvY2F0aW9uLmxhdCA9PT0gJ251bWJlcicgJiYgdHlwZW9mIGZpcnN0TG9jYXRpb24ubG5nID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYXBPcHRpb25zID0ge1xyXG4gICAgICAgICAgICAgICAgICAuLi50aGlzLm1hcE9wdGlvbnMsXHJcbiAgICAgICAgICAgICAgICAgIGNlbnRlcjogeyBsYXQ6IGZpcnN0TG9jYXRpb24ubGF0LCBsbmc6IGZpcnN0TG9jYXRpb24ubG5nIH1cclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgY29vcmRpbmF0ZXMgcmVjZWl2ZWQ6JywgZmlyc3RMb2NhdGlvbik7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUud2FybignTm8gbG9jYXRpb24gZGF0YSBhdmFpbGFibGUuJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignSW52YWxpZCByZXNwb25zZSBkYXRhOicsIHJlcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgbWFwIGRhdGE6JywgZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBcclxuICBnZXREYXRhKCkge1xyXG4gICAgKG1hcGJveGdsIGFzIGFueSkuYWNjZXNzVG9rZW4gPSAncGsuZXlKMUlqb2lZbUZzWVdwcGRHRnVaMjhpTENKaElqb2lZMjB3WjJ4aWVtNTVNREZ4WVRKM2IyMXpiM0ZqTkhkd2F5Sjkubm5JSXp0N09lWWxZSHVmR0U4bEZXUSc7XHJcbiAgXHJcbiAgICAvLyBDaGVjayB0aGF0IGxvY2F0aW9ucyBleGlzdCBiZWZvcmUgcHJvY2VlZGluZ1xyXG4gICAgaWYgKHRoaXMuYXVMb2NhdGlvbnMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybignTm8gbG9jYXRpb25zIHRvIGRpc3BsYXkuJyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICBcclxuICAgIGNvbnN0IGdlb2pzb24gPSB7XHJcbiAgICAgICd0eXBlJzogJ0ZlYXR1cmVDb2xsZWN0aW9uJyxcclxuICAgICAgJ2ZlYXR1cmVzJzogdGhpcy5hdUxvY2F0aW9ucy5tYXAoKHN0b3JlLCBpbmRleCkgPT4gKHtcclxuICAgICAgICAndHlwZSc6ICdGZWF0dXJlJyxcclxuICAgICAgICAncHJvcGVydGllcyc6IHtcclxuICAgICAgICAgICdzdG9yZU5hbWUnOiBzdG9yZS5zdG9yZU5hbWUsICAgICAgICAgLy8gU3RvcmUgbmFtZVxyXG4gICAgICAgICAgJ2ltYWdlSWQnOiAxMDExICsgaW5kZXgsICAgICAgICAgICAgICAvLyBEeW5hbWljIGltYWdlIElEXHJcbiAgICAgICAgICAnaWNvblNpemUnOiBbNjAsIDYwXSwgICAgICAgICAgICAgICAgIC8vIEFkanVzdCBpY29uIHNpemUgYXMgbmVlZGVkXHJcbiAgICAgICAgICAnZm9vdGZhbGwnOiBzdG9yZS5hdmdGb290ZmFsbCwgICAgICAgIC8vIEZvb3RmYWxsIGRhdGFcclxuICAgICAgICAgICdvcGVuVGltZSc6IHN0b3JlLm9wZW5UaW1lLCAgICAgICAgICAgLy8gT3BlbiB0aW1lXHJcbiAgICAgICAgICAnY2xvc2VUaW1lJzogc3RvcmUuY2xvc2VUaW1lLCAgICAgICAgIC8vIENsb3NlIHRpbWVcclxuICAgICAgICB9LFxyXG4gICAgICAgICdnZW9tZXRyeSc6IHtcclxuICAgICAgICAgICd0eXBlJzogJ1BvaW50JyxcclxuICAgICAgICAgICdjb29yZGluYXRlcyc6IFtzdG9yZS5sbmcsIHN0b3JlLmxhdF0gIC8vIENvb3JkaW5hdGVzIGZyb20gc3RvcmUgZGF0YVxyXG4gICAgICAgIH1cclxuICAgICAgfSkpXHJcbiAgICB9O1xyXG4gIFxyXG4gICAgLy8gRHluYW1pY2FsbHkgc2V0IG1hcCBjZW50ZXIgYmFzZWQgb24gdGhlIGZpcnN0IGxvY2F0aW9uXHJcbiAgICBjb25zdCBmaXJzdExvY2F0aW9uID0gdGhpcy5hdUxvY2F0aW9uc1swXTtcclxuICAgIHRoaXMubWFwID0gbmV3IG1hcGJveGdsLk1hcCh7XHJcbiAgICAgIGNvbnRhaW5lcjogJ21hcCcsXHJcbiAgICAgIHN0eWxlOiAnbWFwYm94Oi8vc3R5bGVzL21hcGJveC9zdHJlZXRzLXYxMicsXHJcbiAgICAgIGNlbnRlcjogW2ZpcnN0TG9jYXRpb24ubG5nLCBmaXJzdExvY2F0aW9uLmxhdF0sIC8vIENlbnRlciBtYXAgb24gdGhlIGZpcnN0IGxvY2F0aW9uXHJcbiAgICAgIHpvb206IDEyIC8vIEFkanVzdCB6b29tIGFzIG5lY2Vzc2FyeVxyXG4gICAgfSk7XHJcbiAgXHJcbiAgICAvLyBBZGQgbWFya2VycyB0byB0aGUgbWFwXHJcbiAgICBnZW9qc29uLmZlYXR1cmVzLmZvckVhY2goZmVhdHVyZSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgcHJvcGVydGllcywgZ2VvbWV0cnkgfSA9IGZlYXR1cmU7XHJcbiAgXHJcbiAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgIGNvbnN0IHdpZHRoID0gcHJvcGVydGllcy5pY29uU2l6ZVswXTtcclxuICAgICAgY29uc3QgaGVpZ2h0ID0gcHJvcGVydGllcy5pY29uU2l6ZVsxXTtcclxuICAgICAgZWwuY2xhc3NOYW1lID0gJ21hcmtlcic7XHJcbiAgICAgIGVsLnN0eWxlLmJhY2tncm91bmRJbWFnZSA9IGB1cmwoaHR0cHM6Ly9waWNzdW0ucGhvdG9zL2lkLyR7cHJvcGVydGllcy5pbWFnZUlkfS8ke3dpZHRofS8ke2hlaWdodH0pYDtcclxuICAgICAgZWwuc3R5bGUud2lkdGggPSBgJHt3aWR0aH1weGA7XHJcbiAgICAgIGVsLnN0eWxlLmhlaWdodCA9IGAke2hlaWdodH1weGA7XHJcbiAgICAgIGVsLnN0eWxlLmJhY2tncm91bmRTaXplID0gJzEwMCUnO1xyXG4gIFxyXG4gICAgICAvLyBDcmVhdGUgYSBwb3B1cCBpbnN0YW5jZSB3aXRoIHRoZSBmZWF0dXJlIHByb3BlcnRpZXNcclxuICAgICAgY29uc3QgcG9wdXAgPSBuZXcgbWFwYm94Z2wuUG9wdXAoeyBvZmZzZXQ6IDI1IH0pXHJcbiAgICAgIC5zZXRIVE1MKGBcclxuICAgICAgICA8ZGl2IHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpOyBjb2xvcjogIzMzMzsgcGFkZGluZzogMTBweDsgYm9yZGVyLXJhZGl1czogOHB4O1wiPlxyXG4gICAgICAgICAgPGgzPiR7cHJvcGVydGllcy5zdG9yZU5hbWUgfHwgJ1N0b3JlIE5hbWUnfTwvaDM+XHJcbiAgICAgICAgICA8cD5BdmVyYWdlIEZvb3RmYWxsOiAke3Byb3BlcnRpZXMuZm9vdGZhbGwgfHwgJ04vQSd9PC9wPlxyXG4gICAgICAgICAgPHA+T3BlbiBUaW1lOiAke3Byb3BlcnRpZXMub3BlblRpbWUgfHwgJ04vQSd9PC9wPlxyXG4gICAgICAgICAgPHA+Q2xvc2UgVGltZTogJHtwcm9wZXJ0aWVzLmNsb3NlVGltZSB8fCAnTi9BJ308L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIGApO1xyXG4gIFxyXG4gICAgICAvLyBVc2UgdGhlIGNvb3JkaW5hdGVzIGZyb20gdGhlIGZlYXR1cmVcclxuICAgICAgY29uc3QgY29vcmRpbmF0ZXM6IFtudW1iZXIsIG51bWJlcl0gPSBnZW9tZXRyeS5jb29yZGluYXRlcyBhcyBbbnVtYmVyLCBudW1iZXJdO1xyXG4gIFxyXG4gICAgICAvLyBBZGQgbWFya2VycyB0byB0aGUgbWFwXHJcbiAgICAgIG5ldyBtYXBib3hnbC5NYXJrZXIoZWwpXHJcbiAgICAgICAgLnNldExuZ0xhdChjb29yZGluYXRlcylcclxuICAgICAgICAuc2V0UG9wdXAocG9wdXApICAvLyBBdHRhY2ggdGhlIHBvcHVwIHRvIHRoZSBtYXJrZXJcclxuICAgICAgICAuYWRkVG8odGhpcy5tYXApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIFxyXG4gIFxyXG4gIFxyXG5cclxuICAgIGJhY2tUb0Zvb3RmYWxsKCl7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9tYW5hZ2UvdHJhZmZpYyddKVxyXG4gIH1cclxuXHJcbiAgLy8gb25NYXJrZXJDbGljayhsb2NhdGlvbjogYW55KSB7XHJcbiAgLy8gICBjb25zb2xlLmxvZygnTWFya2VyIGNsaWNrZWQ6JywgbG9jYXRpb24pO1xyXG4gIC8vICAgLy8gUGVyZm9ybSBhY3Rpb25zIGJhc2VkIG9uIHRoZSBjbGlja2VkIGxvY2F0aW9uXHJcbiAgLy8gfVxyXG59XHJcbiIsIlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBteC0xXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBoLTEwMCBweC01IHB5LTNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtYi01IG1lLTJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc2hyaW5rLTBcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiYmFja1RvRm9vdGZhbGwoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8yNTg1XzcwMzYpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIxXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgcng9XCI4XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyLjVcIiB5PVwiMS41XCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgcng9XCI3LjVcIiBzdHJva2U9XCIjRDBENUREXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjUuODMyNyAxOUgxNC4xNjZNMTQuMTY2IDE5TDE5Ljk5OTMgMjQuODMzNE0xNC4xNjYgMTlMMTkuOTk5MyAxMy4xNjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMjU4NV83MDM2XCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0IGR5PVwiMVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9XCIwIDAgMCAwIDAuMDYyNzQ1MSAwIDAgMCAwIDAuMDk0MTE3NiAwIDAgMCAwIDAuMTU2ODYzIDAgMCAwIDAuMDUgMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18yNTg1XzcwMzZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjU4NV83MDM2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PVwic2hhcGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgPCEtLSA8Z29vZ2xlLW1hcCBpZD1cIm1hcFwiICBbb3B0aW9uc109XCJtYXBPcHRpb25zXCI+XHJcbiAgICAgICAgQGZvciAobG9jYXRpb24gb2YgYXVMb2NhdGlvbnM7IHRyYWNrIGxvY2F0aW9uKSB7XHJcbiAgICAgICAgPG1hcC1hZHZhbmNlZC1tYXJrZXIgXHJcbiAgICAgICAgICAjbWFya2VyRWxlbT1cIm1hcEFkdmFuY2VkTWFya2VyXCJcclxuICAgICAgICAgIFtwb3NpdGlvbl09XCJ7IGxhdDogbG9jYXRpb24ubGF0LCBsbmc6IGxvY2F0aW9uLmxuZyB9XCJcclxuICAgICAgICAgIChtYXJrZXJDbGljayk9XCJvbk1hcmtlckNsaWNrKGxvY2F0aW9uKVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZ29vZ2xlLW1hcD4gLS0+XHJcbiAgICAgIDxkaXYgaWQ9XCJtYXBcIiBjbGFzcz1cIm10LTIwXCIgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMDB2aDtcIj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICBcclxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBweC01IGgtMTAwIHB5LTNcIj5cclxuICAgICAgICAgICAgPGltZyBjbGFzcz1cInctMTAwXCIgc3JjPVwiYXNzZXRzL3RhbmdvL0ltYWdlL2Jhc2VpbWcucG5nXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBteS0zIHB4LTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1sYWJlbCBoZWFkZXJcIj57e3N0b3JlTmFtZSB8IHRpdGxlY2FzZX19IC0ge3tmb290ZmFsbERhdGUgfCBkYXRlOidkZCBNTU0sIHl5eXknfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwvZGl2PiAtLT5cclxuICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICBcclxuIl19
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbG9yZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJhZmZpYy9zcmMvbGliL2NvbXBvbmVudHMvZXhwbG9yZS12aWV3L2V4cGxvcmUtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYWZmaWMvc3JjL2xpYi9jb21wb25lbnRzL2V4cGxvcmUtdmlldy9leHBsb3JlLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sS0FBSyxRQUFRLE1BQU0sV0FBVyxDQUFDOzs7Ozs7QUFNdEMsTUFBTSxPQUFPLG9CQUFvQjtJQWlCWjtJQUErQjtJQUErQjtJQWhCakYsVUFBVSxDQUFNO0lBQ2hCLFlBQVksQ0FBTTtJQUVsQixvQ0FBb0M7SUFDcEMsV0FBVyxHQUFVLEVBQUUsQ0FBQztJQUN4QixVQUFVLEdBQTJCO1FBQ25DLEtBQUssRUFBRSxhQUFhO1FBQ3BCLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtRQUMxQixJQUFJLEVBQUUsRUFBRTtLQUNULENBQUM7SUFDZSxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUNuQyxJQUFJLEdBQVksS0FBSyxDQUFDLENBQUUsdUNBQXVDO0lBQy9ELFFBQVEsR0FBVyxXQUFXLENBQUM7SUFDdEMsYUFBYSxDQUFNO0lBQ25CLE9BQU8sR0FBVSxJQUFJLENBQUM7SUFDdEIsTUFBTSxHQUFXLEtBQUss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QUFDLElBQUksQ0FBQyxhQUFhLENBQUUsQ0FBQTtRQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFFLElBQUksQ0FBQztRQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxDQUFDLGlEQUFpRDtJQUMvRSxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFDdkQsQ0FBQztJQUVDLGNBQWM7UUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQTtJQUMzQyxDQUFDO3dHQS9MVSxvQkFBb0I7NEZBQXBCLG9CQUFvQix3RENaakMsczVtQkE4UE07OzRGRGxQTyxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhZmZpY1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFmZmljLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgKiBhcyBtYXBib3hnbCBmcm9tICdtYXBib3gtZ2wnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1leHBsb3JlLXZpZXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9leHBsb3JlLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9leHBsb3JlLXZpZXcuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFeHBsb3JlVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCAge1xyXG4gIGhlYWRlckRhdGE6IGFueTtcclxuICBzdG9yZUlkYXJyYXk6IGFueTtcclxuICBcclxuICAvLyBtYXA6IGdvb2dsZS5tYXBzLk1hcCB8IHVuZGVmaW5lZDtcclxuICBhdUxvY2F0aW9uczogYW55W10gPSBbXTtcclxuICBtYXBPcHRpb25zOiBnb29nbGUubWFwcy5NYXBPcHRpb25zID0ge1xyXG4gICAgbWFwSWQ6IFwiREVNT19NQVBfSURcIixcclxuICAgIGNlbnRlcjogeyBsYXQ6IDAsIGxuZzogMCB9LCAgLy8gSW5pdGlhbCBjZW50ZXJcclxuICAgIHpvb206IDE0LFxyXG4gIH07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHVibGljIGF1dGg6IGJvb2xlYW4gPSBmYWxzZTsgIC8vIFNldCB0aGlzIGJhc2VkIG9uIHlvdXIgaW5pdGlhbCBsb2dpY1xyXG4gIHB1YmxpYyBzZXRDbGFzczogc3RyaW5nID0gJ2NvbC1tZC0xMic7XHJcbiAgc2VsZWN0ZWRTdG9yZTogYW55O1xyXG4gIGxvYWRpbmc6Ym9vbGVhbiA9dHJ1ZTtcclxuICBub0RhdGE6IGJvb2xlYW4gPWZhbHNlO1xyXG5jb25zdHJ1Y3RvciggcHJpdmF0ZSBzZXJ2aWNlOiBUcmFmZmljU2VydmljZSxwdWJsaWMgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSxwcml2YXRlIHJvdXRlcjpSb3V0ZXIpe1xyXG5cclxufVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgKG1hcGJveGdsIGFzIGFueSkuYWNjZXNzVG9rZW4gPSAncGsuZXlKMUlqb2lZbUZzWVdwcGRHRnVaMjhpTENKaElqb2lZMjB3WjJ4aWVtNTVNREZ4WVRKM2IyMXpiM0ZqTkhkd2F5Sjkubm5JSXp0N09lWWxZSHVmR0U4bEZXUSc7XHJcblxyXG4gICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIGRlYm91bmNlVGltZSgzMDApKVxyXG4gICAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAvLyBPbmx5IHByb2Nlc3MgdGhlIGxhdGVzdCBkYXRhIGFmdGVyIGRlYm91bmNlIHRpbWVcclxuICAgICAgICB0aGlzLmhlYWRlckRhdGEgPSBkYXRhO1xyXG4gICAgICAgIHRoaXMuc3RvcmVJZGFycmF5ID0gdGhpcy5oZWFkZXJEYXRhPy5zdG9yZXMuZmlsdGVyKChzdG9yZTphbnkpID0+IHN0b3JlLmNoZWNrZWQpLm1hcCgoc3RvcmU6YW55KSA9PiBzdG9yZS5zdG9yZUlkKVxyXG4gICAgICAgXHJcbiAgICAgICAgdGhpcy5nZXRNYXAoKTtcclxuICAgICAgfSlcclxuICAgICAgXHJcbiAgICB9XHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcblxyXG4gIG1hcDogbWFwYm94Z2wuTWFwO1xyXG5cclxuICBnZXRNYXAoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPXRydWU7XHJcbiAgICBjb25zdCBvYmogPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckRhdGEuY2xpZW50LFxyXG4gICAgICBzdG9yZURhdGU6IHRoaXMuaGVhZGVyRGF0YS5kYXRlLmVuZERhdGUsXHJcbiAgICAgIHN0b3JlSWQ6IHRoaXMuc3RvcmVJZGFycmF5XHJcbiAgICB9O1xyXG4gIFxyXG4gICAgdGhpcy5zZXJ2aWNlLmdlTWFwcyhvYmopPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5kYXRhICYmIHJlcy5kYXRhLnN0b3JlRGF0YSkge1xyXG4gICAgICAgICAgICB0aGlzLmF1TG9jYXRpb25zID0gcmVzLmRhdGEuc3RvcmVEYXRhO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnTG9jYXRpb25zOicsIHRoaXMuYXVMb2NhdGlvbnMpOyAvLyBDaGVjayBpZiBkYXRhIGlzIGNvcnJlY3RcclxuICAgICAgICAgICAgdGhpcy5nZXREYXRhKCk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBpZiAodGhpcy5hdUxvY2F0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZmlyc3RMb2NhdGlvbiA9IHRoaXMuYXVMb2NhdGlvbnNbMF07XHJcbiAgICAgICAgICAgICAgaWYgKGZpcnN0TG9jYXRpb24gJiYgdHlwZW9mIGZpcnN0TG9jYXRpb24ubGF0ID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgZmlyc3RMb2NhdGlvbi5sbmcgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hcE9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgICAgICAgIC4uLnRoaXMubWFwT3B0aW9ucyxcclxuICAgICAgICAgICAgICAgICAgY2VudGVyOiB7IGxhdDogZmlyc3RMb2NhdGlvbi5sYXQsIGxuZzogZmlyc3RMb2NhdGlvbi5sbmcgfVxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignSW52YWxpZCBjb29yZGluYXRlcyByZWNlaXZlZDonLCBmaXJzdExvY2F0aW9uKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdObyBsb2NhdGlvbiBkYXRhIGF2YWlsYWJsZS4nKTtcclxuICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID1mYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub0RhdGEgPWZhbHNlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKCdJbnZhbGlkIHJlc3BvbnNlIGRhdGE6JywgcmVzKTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID1mYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub0RhdGEgPXRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgbWFwIGRhdGE6JywgZXJyKTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9ZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9dHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBcclxuICBnZXREYXRhKCkge1xyXG4gIFxyXG4gICAgLy8gQ2hlY2sgdGhhdCBsb2NhdGlvbnMgZXhpc3QgYmVmb3JlIHByb2NlZWRpbmdcclxuICAgIGlmICh0aGlzLmF1TG9jYXRpb25zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBjb25zb2xlLndhcm4oJ05vIGxvY2F0aW9ucyB0byBkaXNwbGF5LicpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgXHJcbiAgICBjb25zdCBnZW9qc29uID0ge1xyXG4gICAgICAndHlwZSc6ICdGZWF0dXJlQ29sbGVjdGlvbicsXHJcbiAgICAgICdmZWF0dXJlcyc6IHRoaXMuYXVMb2NhdGlvbnMubWFwKChzdG9yZSwgaW5kZXgpID0+ICh7XHJcbiAgICAgICAgJ3R5cGUnOiAnRmVhdHVyZScsXHJcbiAgICAgICAgJ3Byb3BlcnRpZXMnOiB7XHJcbiAgICAgICAgICAnc3RvcmVOYW1lJzogc3RvcmUuc3RvcmVOYW1lLCAgICAgICAgIC8vIFN0b3JlIG5hbWVcclxuICAgICAgICAgICdpbWFnZUlkJzogMTAxMSArIGluZGV4LCAgICAgICAgICAgICAgLy8gRHluYW1pYyBpbWFnZSBJRFxyXG4gICAgICAgICAgJ2ljb25TaXplJzogWzYwLCA2MF0sICAgICAgICAgICAgICAgICAvLyBBZGp1c3QgaWNvbiBzaXplIGFzIG5lZWRlZFxyXG4gICAgICAgICAgJ2Zvb3RmYWxsJzogc3RvcmUuYXZnRm9vdGZhbGwsICAgICAgICAvLyBGb290ZmFsbCBkYXRhXHJcbiAgICAgICAgICAnb3BlblRpbWUnOiBzdG9yZS5vcGVuVGltZSwgICAgICAgICAgIC8vIE9wZW4gdGltZVxyXG4gICAgICAgICAgJ2Nsb3NlVGltZSc6IHN0b3JlLmNsb3NlVGltZSwgICAgICAgICAvLyBDbG9zZSB0aW1lXHJcbiAgICAgICAgfSxcclxuICAgICAgICAnZ2VvbWV0cnknOiB7XHJcbiAgICAgICAgICAndHlwZSc6ICdQb2ludCcsXHJcbiAgICAgICAgICAnY29vcmRpbmF0ZXMnOiBbc3RvcmUubG5nLCBzdG9yZS5sYXRdICAvLyBDb29yZGluYXRlcyBmcm9tIHN0b3JlIGRhdGFcclxuICAgICAgICB9XHJcbiAgICAgIH0pKVxyXG4gICAgfTtcclxuICBcclxuICAgIC8vIER5bmFtaWNhbGx5IHNldCBtYXAgY2VudGVyIGJhc2VkIG9uIHRoZSBmaXJzdCBsb2NhdGlvblxyXG4gICAgY29uc3QgZmlyc3RMb2NhdGlvbiA9IHRoaXMuYXVMb2NhdGlvbnNbMF07XHJcbiAgICB0aGlzLm1hcCA9IG5ldyBtYXBib3hnbC5NYXAoe1xyXG4gICAgICBjb250YWluZXI6ICdtYXAnLFxyXG4gICAgICBzdHlsZTogJ21hcGJveDovL3N0eWxlcy9tYXBib3gvc3RyZWV0cy12MTInLFxyXG4gICAgICBjZW50ZXI6IFtmaXJzdExvY2F0aW9uLmxuZywgZmlyc3RMb2NhdGlvbi5sYXRdLCAvLyBDZW50ZXIgbWFwIG9uIHRoZSBmaXJzdCBsb2NhdGlvblxyXG4gICAgICB6b29tOiA0IC8vIEFkanVzdCB6b29tIGFzIG5lY2Vzc2FyeVxyXG4gICAgfSk7XHJcbiAgXHJcbiAgICAvLyBBZGQgbWFya2VycyB0byB0aGUgbWFwXHJcbiAgICBnZW9qc29uLmZlYXR1cmVzLmZvckVhY2goKGZlYXR1cmUsIGZlYXR1cmVJbmRleCkgPT4ge1xyXG4gICAgICBjb25zdCB7IHByb3BlcnRpZXMsIGdlb21ldHJ5IH0gPSBmZWF0dXJlO1xyXG4gIFxyXG4gICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICBjb25zdCB3aWR0aCA9IHByb3BlcnRpZXMuaWNvblNpemVbMF07XHJcbiAgICAgIGNvbnN0IGhlaWdodCA9IHByb3BlcnRpZXMuaWNvblNpemVbMV07XHJcbiAgICAgIGVsLmNsYXNzTmFtZSA9ICdtYXJrZXInO1xyXG4gICAgICBlbC5pbm5lckhUTUwgPSBgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYXJrZXItaWNvblwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IHdpZHRoOiA2NXB4OyBoZWlnaHQ6IDcwcHg7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBhbGlnbi1pdGVtczogY2VudGVyO1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXJrZXItY29udGVudFwiIHN0eWxlPVwiZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTNcIiBoZWlnaHQ9XCIxM1wiIHZpZXdCb3g9XCIwIDAgMTMgMTNcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICA8cGF0aCBkPVwiTTEuMzM2NTQgMy4zNjM3TDEuMjk2NTggMy40MjYxMUMwLjg3NzY5OCA0LjE2NzAxIDEuMzI0OTMgNS4xMDMzNSAyLjEyOTMxIDUuMjEwNzZDMi4yMDIxOCA1LjIxOTY3IDIuMjY5OTkgNS4yMjQzOCAyLjMzNjI1IDUuMjI0MzhDMi43NzAyMSA1LjIyNDM4IDMuMTUzOSA1LjAzODIxIDMuNDIxMzIgNC43NDc5M0wzLjgzNjY2IDQuMjk3MUw0LjI1MDU5IDQuNzQ5MjNDNC41MTQ3NiA1LjAzNzc4IDQuODk3NTggNS4yMjQzOCA1LjMzNDQ4IDUuMjI0MzhDNS43Njk0MSA1LjIyNDM4IDYuMTU0NDMgNS4wMzc1MiA2LjQxODM3IDQuNzQ5MjNMNi44MzM1OSA0LjI5NTY4TDcuMjQ4ODIgNC43NDkyM0M3LjUxMjc1IDUuMDM3NTIgNy44OTc3NyA1LjIyNDM4IDguMzMyNzEgNS4yMjQzOEM4Ljc2NzY0IDUuMjI0MzggOS4xNTI2NiA1LjAzNzUyIDkuNDE2NiA0Ljc0OTIzTDkuODMxODIgNC4yOTU2OEwxMC4yNDcgNC43NDkyM0MxMC41MTEgNS4wMzc1MiAxMC44OTYgNS4yMjQzOCAxMS4zMzA5IDUuMjI0MzhDMTEuMzk1IDUuMjI0MzggMTEuNDY0OSA1LjIxOTY2IDExLjUzNzIgNS4yMTA4M0MxMi4zNTkzIDUuMDk4NzUgMTIuODA4IDQuMTEyMjUgMTIuMzI4NiAzLjM2NDA4QzEyLjMyODYgMy4zNjQwMyAxMi4zMjg1IDMuMzYzOTkgMTIuMzI4NSAzLjM2Mzk1TDExLjAwODggMS4zMDYyMUwxMS4wMDgxIDEuMzA1MTFDMTAuOTk2NyAxLjI4NzIyIDEwLjk2ODYgMS4yNjgwNCAxMC45MzMyIDEuMjY4MDRIMi43Mjk0MkMyLjY5NDAzIDEuMjY4MDQgMi42NjU4OSAxLjI4NzIyIDIuNjU0NDggMS4zMDUxMUwyLjY1NDAxIDEuMzA1ODRMMS4zMzY1NCAzLjM2MzdaTTExLjA3MzEgNy4wNjY2N1Y5LjQxNzUzVjkuOTgwNDlIMTAuNTEwMUgzLjE1MjQ4SDIuNTg5NTJWOS40MTc1M1Y3LjA2NzAyQzIuNTA2NzggNy4wNzMxOCAyLjQyMzA4IDcuMDc2MzQgMi4zMzg1NSA3LjA3NjM0QzIuMzA2NzkgNy4wNzYzNCAyLjI3NTI1IDcuMDc1ODcgMi4yNDM5MiA3LjA3NDk1VjkuNDE3NTNWMTAuODY5NkMyLjI0MzkyIDExLjM1MjYgMi42NDQ2NyAxMS43NTg3IDMuMTUyNDggMTEuNzU4N0gxMC41MTAxQzExLjAxNzkgMTEuNzU4NyAxMS40MTg3IDExLjM1MjYgMTEuNDE4NyAxMC44Njk2VjkuNDE3NTNWNy4wNzUwOUMxMS4zODg4IDcuMDc1OTEgMTEuMzU4NyA3LjA3NjM0IDExLjMyODYgNy4wNzYzNEMxMS4yNDI4IDcuMDc2MzQgMTEuMTU3NSA3LjA3MzA4IDExLjA3MzEgNy4wNjY2N1pcIiBzdHJva2U9XCIjMTAxODI4XCIgc3Ryb2tlLXdpZHRoPVwiMS4xMjU5MlwiLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1hcmtlci1sYWJlbFwiIHN0eWxlPVwiZm9udC1zaXplOiAxMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7XCI+XHJcbiAgICAgICAgICAgICR7cHJvcGVydGllcy5zdG9yZU5hbWV9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICBgO1xyXG4gICAgICBlbC5zdHlsZS53aWR0aCA9IGAke3dpZHRofXB4YDtcclxuICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gYCR7aGVpZ2h0fXB4YDtcclxuICAgICAgZWwuc3R5bGUuYmFja2dyb3VuZFNpemUgPSAnMTAwJSc7XHJcbiAgIC8vIEFwcGx5IGR5bmFtaWMgY2xhc3MgYmFzZWQgb24gYXV0aFxyXG4gICBjb25zdCBzdG9yZSA9IHRoaXMuYXVMb2NhdGlvbnNbZmVhdHVyZUluZGV4XTtcclxuICAgaWYgKHN0b3JlKSB7XHJcbiAgIGVsPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcclxuICAgIHRoaXMuYWRqdXN0TGF5b3V0KHN0b3JlKTtcclxuICB9KTtcclxufVxyXG4gICAgICAvLyBDcmVhdGUgYSBwb3B1cCBpbnN0YW5jZSB3aXRoIHRoZSBmZWF0dXJlIHByb3BlcnRpZXNcclxuICAgICAgY29uc3QgcG9wdXAgPSBuZXcgbWFwYm94Z2wuUG9wdXAoeyBvZmZzZXQ6IDI1IH0pXHJcbiAgICAgIC5zZXRIVE1MKGBcclxuICAgICAgICA8ZGl2IHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpOyBjb2xvcjogIzMzMzsgcGFkZGluZzogMTBweDsgYm9yZGVyLXJhZGl1czogOHB4O1wiPlxyXG4gICAgICAgICAgPGgzPiR7cHJvcGVydGllcy5zdG9yZU5hbWUgfHwgJ1N0b3JlIE5hbWUnfTwvaDM+XHJcbiAgICAgICAgICA8cD5BdmVyYWdlIEZvb3RmYWxsOiAke3Byb3BlcnRpZXMuZm9vdGZhbGwgfHwgJy0tJ308L3A+XHJcbiAgICAgICAgICA8cD5PcGVuIFRpbWU6ICR7cHJvcGVydGllcy5vcGVuVGltZSB8fCAnLS0nfTwvcD5cclxuICAgICAgICAgIDxwPkNsb3NlIFRpbWU6ICR7cHJvcGVydGllcy5jbG9zZVRpbWUgfHwgJy0tJ308L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIGApO1xyXG5cclxuICAgICAgLy8gVXNlIHRoZSBjb29yZGluYXRlcyBmcm9tIHRoZSBmZWF0dXJlXHJcbiAgICAgIGNvbnN0IGNvb3JkaW5hdGVzOiBbbnVtYmVyLCBudW1iZXJdID0gZ2VvbWV0cnkuY29vcmRpbmF0ZXMgYXMgW251bWJlciwgbnVtYmVyXTtcclxuICBcclxuICAgICAgLy8gQWRkIG1hcmtlcnMgdG8gdGhlIG1hcFxyXG4gICAgICBuZXcgbWFwYm94Z2wuTWFya2VyKGVsKVxyXG4gICAgICAgIC5zZXRMbmdMYXQoY29vcmRpbmF0ZXMpXHJcbiAgICAgICAgLnNldFBvcHVwKHBvcHVwKSAgLy8gQXR0YWNoIHRoZSBwb3B1cCB0byB0aGUgbWFya2VyXHJcbiAgICAgICAgLmFkZFRvKHRoaXMubWFwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBcclxuICBhZGp1c3RMYXlvdXQoc3RvcmU6YW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkU3RvcmUgPSBzdG9yZTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRTdG9yZSApXHJcbiAgICB0aGlzLmF1dGggPXRydWU7XHJcbiAgICB0aGlzLnNldENsYXNzID0gJ2NvbC1tZC05JzsgLy8gQWRqdXN0IHRoZSBsYXlvdXQgdG8gOCBjb2x1bW5zIG9uIG1hcmtlciBjbGlja1xyXG4gIH1cclxuICBcclxuICB0b2dnbGVBdXRoKCkge1xyXG4gICAgdGhpcy5hdXRoID0gIXRoaXMuYXV0aDtcclxuICAgIHRoaXMuc2V0Q2xhc3MgPSB0aGlzLmF1dGggPyAnY29sLW1kLTknIDogJ2NvbC1tZC0xMic7XHJcbiAgfVxyXG5cclxuICAgIGJhY2tUb0Zvb3RmYWxsKCl7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9tYW5hZ2UvdHJhZmZpYyddKVxyXG4gIH1cclxuXHJcbiAgLy8gb25NYXJrZXJDbGljayhsb2NhdGlvbjogYW55KSB7XHJcbiAgLy8gICBjb25zb2xlLmxvZygnTWFya2VyIGNsaWNrZWQ6JywgbG9jYXRpb24pO1xyXG4gIC8vICAgLy8gUGVyZm9ybSBhY3Rpb25zIGJhc2VkIG9uIHRoZSBjbGlja2VkIGxvY2F0aW9uXHJcbiAgLy8gfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCIhbm9EYXRhXCIgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXYgW25nQ2xhc3NdPVwic2V0Q2xhc3NcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBweC0yIHB5LTNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWUtMlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc2hyaW5rLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImJhY2tUb0Zvb3RmYWxsKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiB2aWV3Qm94PVwiMCAwIDQwIDQwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8yNTg1XzcwMzYpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMVwiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHJ4PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjIuNVwiIHk9XCIxLjVcIiB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMzVcIiByeD1cIjcuNVwiIHN0cm9rZT1cIiNEMEQ1RERcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjUuODMyNyAxOUgxNC4xNjZNMTQuMTY2IDE5TDE5Ljk5OTMgMjQuODMzNE0xNC4xNjYgMTlMMTkuOTk5MyAxMy4xNjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZF8yNTg1XzcwMzZcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldCBkeT1cIjFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18yNTg1XzcwMzZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93XzI1ODVfNzAzNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJzaGFwZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwLTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJtYXBcIiBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMHZoO1wiPjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJhdXRoXCIgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIHB4LTUgaC0xMDAgcHktMyBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICA8aW1nIChjbGljayk9XCJ0b2dnbGVBdXRoKClcIiBjbGFzcz1cImxlZnRJY29uIHBvc2l0aW9uLWFic29sdXRlIGxlZnQtMCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJhc3NldHMvdGFuZ28vSW1hZ2UvbGVmdEljb24uc3ZnXCI+XHJcbiAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJ3LTEwMFwiIHNyYz1cImFzc2V0cy90YW5nby9JbWFnZS9iYXNlaW1nLnBuZ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgbXQtMyBweC0wIGJvcmRlci0wIG1pbi1oLTEwcHhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcmQtbGFiZWxcIj57e3NlbGVjdGVkU3RvcmUuc3RvcmVOYW1lID8/ICctLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IG10LTFcIj5BcHAgSUQgOiB7e3NlbGVjdGVkU3RvcmUuYXBwSWQgPz8gJy0tJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwdC0wIHB4LTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hcC1zdWJ0ZXh0XCI+e3tzZWxlY3RlZFN0b3JlPy5zdG9yZVByb2ZpbGU/LmFkZHJlc3MgPyBzZWxlY3RlZFN0b3JlPy5zdG9yZVByb2ZpbGU/LmFkZHJlc3M6Jy0tJ319IHt7c2VsZWN0ZWRTdG9yZT8uc3RvcmVQcm9maWxlPy5jb3VudHJ5ID8gc2VsZWN0ZWRTdG9yZT8uc3RvcmVQcm9maWxlPy5jb3VudHJ5OictLSd9fSB7e3NlbGVjdGVkU3RvcmU/LnN0b3JlUHJvZmlsZT8ucGluY29kZSA/IHNlbGVjdGVkU3RvcmU/LnN0b3JlUHJvZmlsZT8ucGluY29kZTonLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC01IG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzM0NiAxNFYxMi42NjY3QzEzLjMzNDYgMTEuOTU5NCAxMy4wNTM3IDExLjI4MTEgMTIuNTUzNiAxMC43ODFDMTIuMDUzNSAxMC4yODEgMTEuMzc1MiAxMCAxMC42NjggMTBINS4zMzQ2NEM0LjYyNzM5IDEwIDMuOTQ5MTEgMTAuMjgxIDMuNDQ5MDIgMTAuNzgxQzIuOTQ4OTIgMTEuMjgxMSAyLjY2Nzk3IDExLjk1OTQgMi42Njc5NyAxMi42NjY3VjE0TTEwLjY2OCA0LjY2NjY3QzEwLjY2OCA2LjEzOTQzIDkuNDc0MDYgNy4zMzMzMyA4LjAwMTMgNy4zMzMzM0M2LjUyODU0IDcuMzMzMzMgNS4zMzQ2NCA2LjEzOTQzIDUuMzM0NjQgNC42NjY2N0M1LjMzNDY0IDMuMTkzOTEgNi41Mjg1NCAyIDguMDAxMyAyQzkuNDc0MDYgMiAxMC42NjggMy4xOTM5MSAxMC42NjggNC42NjY2N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS40XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIG1hcC1zdWJ0ZXh0IHRleHQtZ3JheS04MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3NlbGVjdGVkU3RvcmU/LnNwb2NEZXRhaWxzPy5uYW1lID9zZWxlY3RlZFN0b3JlPy5zcG9jRGV0YWlscz8ubmFtZTonLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gdGV4dC1ncmF5LTYwMCBteC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4NjVfMTQ2NTE2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC42NjUgMTEuMjgwMlYxMy4yODAyQzE0LjY2NTcgMTMuNDY1OSAxNC42Mjc3IDEzLjY0OTcgMTQuNTUzMyAxMy44MTk4QzE0LjQ3OSAxMy45ODk5IDE0LjM2OTkgMTQuMTQyNiAxNC4yMzMgMTQuMjY4MUMxNC4wOTYyIDE0LjM5MzcgMTMuOTM0NyAxNC40ODkyIDEzLjc1ODggMTQuNTQ4N0MxMy41ODI5IDE0LjYwODIgMTMuMzk2NiAxNC42MzAzIDEzLjIxMTcgMTQuNjEzNkMxMS4xNjAyIDE0LjM5MDcgOS4xODk2NiAxMy42ODk3IDcuNDU4MzMgMTIuNTY2OUM1Ljg0NzU1IDExLjU0MzMgNC40ODE4OSAxMC4xNzc3IDMuNDU4MzMgOC41NjY4OUMyLjMzMTY1IDYuODI3NyAxLjYzMDQ5IDQuODQ3NTYgMS40MTE2NiAyLjc4Njg5QzEuMzk1IDIuNjAyNTQgMS40MTY5MSAyLjQxNjczIDEuNDc1OTkgMi4yNDEzMUMxLjUzNTA4IDIuMDY1ODkgMS42MzAwNCAxLjkwNDY5IDEuNzU0ODQgMS43Njc5N0MxLjg3OTY0IDEuNjMxMjYgMi4wMzE1MyAxLjUyMjAzIDIuMjAwODYgMS40NDcyNEMyLjM3MDE4IDEuMzcyNDUgMi41NTMyMiAxLjMzMzc0IDIuNzM4MzMgMS4zMzM1Nkg0LjczODMzQzUuMDYxODcgMS4zMzAzOCA1LjM3NTUyIDEuNDQ0OTUgNS42MjA4NCAxLjY1NTkyQzUuODY2MTUgMS44NjY4OSA2LjAyNjM4IDIuMTU5ODYgNi4wNzE2NiAyLjQ4MDIzQzYuMTU2MDggMy4xMjAyNyA2LjMxMjYzIDMuNzQ4NzEgNi41MzgzMyA0LjM1MzU2QzYuNjI4MDIgNC41OTIxOCA2LjY0NzQ0IDQuODUxNSA2LjU5NDI3IDUuMTAwODFDNi41NDExIDUuMzUwMTIgNi40MTc1NyA1LjU3ODk3IDYuMjM4MzMgNS43NjAyM0w1LjM5MTY2IDYuNjA2ODlDNi4zNDA3IDguMjc1OTIgNy43MjI2MyA5LjY1Nzg2IDkuMzkxNjYgMTAuNjA2OUwxMC4yMzgzIDkuNzYwMjNDMTAuNDE5NiA5LjU4MDk5IDEwLjY0ODQgOS40NTc0NiAxMC44OTc3IDkuNDA0MjlDMTEuMTQ3MSA5LjM1MTEyIDExLjQwNjQgOS4zNzA1MyAxMS42NDUgOS40NjAyM0MxMi4yNDk4IDkuNjg1OTMgMTIuODc4MyA5Ljg0MjQ4IDEzLjUxODMgOS45MjY4OUMxMy44NDIyIDkuOTcyNTggMTQuMTM3OSAxMC4xMzU3IDE0LjM0OTQgMTAuMzg1MkMxNC41NjA4IDEwLjYzNDggMTQuNjczMSAxMC45NTMzIDE0LjY2NSAxMS4yODAyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS40XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xODY1XzE0NjUxNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSBmb250LW1lZGl1bSBtYXAtc3VidGV4dCB0ZXh0LWdyYXktODAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tzZWxlY3RlZFN0b3JlPy5zcG9jRGV0YWlscz8uY29udGFjdCA/c2VsZWN0ZWRTdG9yZT8uc3BvY0RldGFpbHM/LmNvbnRhY3Q6Jy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gdGV4dC1ncmF5LTYwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC42NjU0IDMuOTk5ODRDMTQuNjY1NCAzLjI2NjUgMTQuMDY1NCAyLjY2NjUgMTMuMzMyIDIuNjY2NUgyLjY2NTM2QzEuOTMyMDMgMi42NjY1IDEuMzMyMDMgMy4yNjY1IDEuMzMyMDMgMy45OTk4NE0xNC42NjU0IDMuOTk5ODRWMTEuOTk5OEMxNC42NjU0IDEyLjczMzIgMTQuMDY1NCAxMy4zMzMyIDEzLjMzMiAxMy4zMzMySDIuNjY1MzZDMS45MzIwMyAxMy4zMzMyIDEuMzMyMDMgMTIuNzMzMiAxLjMzMjAzIDExLjk5OThWMy45OTk4NE0xNC42NjU0IDMuOTk5ODRMNy45OTg3IDguNjY2NUwxLjMzMjAzIDMuOTk5ODRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS40XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIG1hcC1zdWJ0ZXh0IHRleHQtZ3JheS04MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3NlbGVjdGVkU3RvcmU/LnNwb2NEZXRhaWxzPy5lbWFpbCA/IHNlbGVjdGVkU3RvcmU/LnNwb2NEZXRhaWxzPy5lbWFpbDonLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNSBteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzQ2IDE0VjEyLjY2NjdDMTMuMzM0NiAxMS45NTk0IDEzLjA1MzcgMTEuMjgxMSAxMi41NTM2IDEwLjc4MUMxMi4wNTM1IDEwLjI4MSAxMS4zNzUyIDEwIDEwLjY2OCAxMEg1LjMzNDY0QzQuNjI3MzkgMTAgMy45NDkxMSAxMC4yODEgMy40NDkwMiAxMC43ODFDMi45NDg5MiAxMS4yODExIDIuNjY3OTcgMTEuOTU5NCAyLjY2Nzk3IDEyLjY2NjdWMTRNMTAuNjY4IDQuNjY2NjdDMTAuNjY4IDYuMTM5NDMgOS40NzQwNiA3LjMzMzMzIDguMDAxMyA3LjMzMzMzQzYuNTI4NTQgNy4zMzMzMyA1LjMzNDY0IDYuMTM5NDMgNS4zMzQ2NCA0LjY2NjY3QzUuMzM0NjQgMy4xOTM5MSA2LjUyODU0IDIgOC4wMDEzIDJDOS40NzQwNiAyIDEwLjY2OCAzLjE5MzkxIDEwLjY2OCA0LjY2NjY3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gbWFwLXN1YnRleHQgdGV4dC1ncmF5LTgwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2VsZWN0ZWRTdG9yZT8uc3RvcmVUeXBlPy50eXBlID8gc2VsZWN0ZWRTdG9yZT8uc3RvcmVUeXBlPy50eXBlOictLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwIG14LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTg2NV8xNDY1MTYpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE0LjY2NSAxMS4yODAyVjEzLjI4MDJDMTQuNjY1NyAxMy40NjU5IDE0LjYyNzcgMTMuNjQ5NyAxNC41NTMzIDEzLjgxOThDMTQuNDc5IDEzLjk4OTkgMTQuMzY5OSAxNC4xNDI2IDE0LjIzMyAxNC4yNjgxQzE0LjA5NjIgMTQuMzkzNyAxMy45MzQ3IDE0LjQ4OTIgMTMuNzU4OCAxNC41NDg3QzEzLjU4MjkgMTQuNjA4MiAxMy4zOTY2IDE0LjYzMDMgMTMuMjExNyAxNC42MTM2QzExLjE2MDIgMTQuMzkwNyA5LjE4OTY2IDEzLjY4OTcgNy40NTgzMyAxMi41NjY5QzUuODQ3NTUgMTEuNTQzMyA0LjQ4MTg5IDEwLjE3NzcgMy40NTgzMyA4LjU2Njg5QzIuMzMxNjUgNi44Mjc3IDEuNjMwNDkgNC44NDc1NiAxLjQxMTY2IDIuNzg2ODlDMS4zOTUgMi42MDI1NCAxLjQxNjkxIDIuNDE2NzMgMS40NzU5OSAyLjI0MTMxQzEuNTM1MDggMi4wNjU4OSAxLjYzMDA0IDEuOTA0NjkgMS43NTQ4NCAxLjc2Nzk3QzEuODc5NjQgMS42MzEyNiAyLjAzMTUzIDEuNTIyMDMgMi4yMDA4NiAxLjQ0NzI0QzIuMzcwMTggMS4zNzI0NSAyLjU1MzIyIDEuMzMzNzQgMi43MzgzMyAxLjMzMzU2SDQuNzM4MzNDNS4wNjE4NyAxLjMzMDM4IDUuMzc1NTIgMS40NDQ5NSA1LjYyMDg0IDEuNjU1OTJDNS44NjYxNSAxLjg2Njg5IDYuMDI2MzggMi4xNTk4NiA2LjA3MTY2IDIuNDgwMjNDNi4xNTYwOCAzLjEyMDI3IDYuMzEyNjMgMy43NDg3MSA2LjUzODMzIDQuMzUzNTZDNi42MjgwMiA0LjU5MjE4IDYuNjQ3NDQgNC44NTE1IDYuNTk0MjcgNS4xMDA4MUM2LjU0MTEgNS4zNTAxMiA2LjQxNzU3IDUuNTc4OTcgNi4yMzgzMyA1Ljc2MDIzTDUuMzkxNjYgNi42MDY4OUM2LjM0MDcgOC4yNzU5MiA3LjcyMjYzIDkuNjU3ODYgOS4zOTE2NiAxMC42MDY5TDEwLjIzODMgOS43NjAyM0MxMC40MTk2IDkuNTgwOTkgMTAuNjQ4NCA5LjQ1NzQ2IDEwLjg5NzcgOS40MDQyOUMxMS4xNDcxIDkuMzUxMTIgMTEuNDA2NCA5LjM3MDUzIDExLjY0NSA5LjQ2MDIzQzEyLjI0OTggOS42ODU5MyAxMi44NzgzIDkuODQyNDggMTMuNTE4MyA5LjkyNjg5QzEzLjg0MjIgOS45NzI1OCAxNC4xMzc5IDEwLjEzNTcgMTQuMzQ5NCAxMC4zODUyQzE0LjU2MDggMTAuNjM0OCAxNC42NzMxIDEwLjk1MzMgMTQuNjY1IDExLjI4MDJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NjVfMTQ2NTE2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIG1hcC1zdWJ0ZXh0IHRleHQtZ3JheS04MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3NlbGVjdGVkU3RvcmU/LnN0b3JlVHlwZT8ubmFtZSA/IHNlbGVjdGVkU3RvcmU/LnN0b3JlVHlwZT8ubmFtZTonLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC01IG15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMTggMThcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTg2NV8xNDY1MjkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkgNC41VjlMMTIgMTAuNU0xNi41IDlDMTYuNSAxMy4xNDIxIDEzLjE0MjEgMTYuNSA5IDE2LjVDNC44NTc4NiAxNi41IDEuNSAxMy4xNDIxIDEuNSA5QzEuNSA0Ljg1Nzg2IDQuODU3ODYgMS41IDkgMS41QzEzLjE0MjEgMS41IDE2LjUgNC44NTc4NiAxNi41IDlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NjVfMTQ2NTI5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS04MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3NlbGVjdGVkU3RvcmU/Lm9wZW5UaW1lID8gc2VsZWN0ZWRTdG9yZT8ub3BlblRpbWU6Jy0tJ319IC0ge3tzZWxlY3RlZFN0b3JlPy5jbG9zZVRpbWUgPyBzZWxlY3RlZFN0b3JlPy5jbG9zZVRpbWU6Jy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibWFwLWF2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tzZWxlY3RlZFN0b3JlPy5hdmdGb290ZmFsbD8gc2VsZWN0ZWRTdG9yZT8uYXZnRm9vdGZhbGw6Jy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gdGV4dC1ncmF5LTcwMCBtYXAtYXZndGVzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQXZnIEZvb3RmYWxsIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTg2NV8xNDY1MzYpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNiA4VjZNNiA0SDYuMDA1TTExIDZDMTEgOC43NjE0MiA4Ljc2MTQyIDExIDYgMTFDMy4yMzg1OCAxMSAxIDguNzYxNDIgMSA2QzEgMy4yMzg1OCAzLjIzODU4IDEgNiAxQzguNzYxNDIgMSAxMSAzLjIzODU4IDExIDZaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjOThBMkIzXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTg2NV8xNDY1MzZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJtYXAtYXZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3NlbGVjdGVkU3RvcmU/LmF2Z1dlZWtkYXlGb290ZmFsbCA/IHNlbGVjdGVkU3RvcmU/LmF2Z1dlZWtkYXlGb290ZmFsbDonLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSB0ZXh0LWdyYXktNzAwIG1hcC1hdmd0ZXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdmcgV2Vla2RheSBGb290ZmFsbCA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xODY1XzE0NjUzNilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02IDhWNk02IDRINi4wMDVNMTEgNkMxMSA4Ljc2MTQyIDguNzYxNDIgMTEgNiAxMUMzLjIzODU4IDExIDEgOC43NjE0MiAxIDZDMSAzLjIzODU4IDMuMjM4NTggMSA2IDFDOC43NjE0MiAxIDExIDMuMjM4NTggMTEgNlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM5OEEyQjNcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xODY1XzE0NjUzNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbXktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm1hcC1hdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2VsZWN0ZWRTdG9yZT8uYXZnV2Vla2VuZEZvb3RmYWxsID8gc2VsZWN0ZWRTdG9yZT8uYXZnV2Vla2VuZEZvb3RmYWxsOictLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIHRleHQtZ3JheS03MDAgbWFwLWF2Z3Rlc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF2ZyBXZWVrZW5kIEZvb3RmYWxsIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4NjVfMTQ2NTM2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYgOFY2TTYgNEg2LjAwNU0xMSA2QzExIDguNzYxNDIgOC43NjE0MiAxMSA2IDExQzMuMjM4NTggMTEgMSA4Ljc2MTQyIDEgNkMxIDMuMjM4NTggMy4yMzg1OCAxIDYgMUM4Ljc2MTQyIDEgMTEgMy4yMzg1OCAxMSA2WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzk4QTJCM1wiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NjVfMTQ2NTM2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwibXQtNSBjb2wtbGctMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tbGlnaHQtcHJpbWFyeTEgdy0xMDAgcHgtMlwiPjxzcGFuIGNsYXNzPVwibXMtMlwiPlZpZXcgbW9yZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERldGFpbHM8L3NwYW4+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48IS0tIDxkaXYgKm5nSWY9XCJsb2FkaW5nXCIgY2xhc3M9XCJyb3cgcHgtMyBsb2FkZXIgY2FyZCAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+IC0tPlxyXG48ZGl2ICpuZ0lmPVwibm9EYXRhXCIgY2xhc3M9XCJyb3cgcHgtM1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLW5vZGF0YS10YWJsZVwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTEuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtdGl0bGVcIj5ObyBkYXRhIGZvdW5kPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtc3ViXCI+VGhlcmUgaXMgbm8gcmVzdWx0IGZvciB0aGlzIFN0b3JlIG1hcDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|