tango-app-ui-analyse-trax 3.0.0-dev → 3.3.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/add-checklist/add-checklist.component.mjs +1389 -0
- package/esm2022/lib/components/checklist/checklist.component.mjs +235 -0
- package/esm2022/lib/components/checklist-configure/checklist-configure.component.mjs +1809 -0
- package/esm2022/lib/components/dashboard/dashboard.component.mjs +515 -0
- package/esm2022/lib/components/dashboard-info/dashboard-info.component.mjs +503 -0
- package/esm2022/lib/components/dashboard-info/monthlyperformance-datepicker/monthlyperformance-datepicker.component.mjs +169 -0
- package/esm2022/lib/components/flags/flags.component.mjs +188 -0
- package/esm2022/lib/components/flags/flags.interface.mjs +2 -0
- package/esm2022/lib/components/flags-info/flags-info.component.mjs +257 -0
- package/esm2022/lib/components/flags-info/flags-info.interface.mjs +2 -0
- package/esm2022/lib/components/flags-info/unattended-pie-chart/unattended-pie-chart.component.mjs +71 -0
- package/esm2022/lib/components/gallery/gallery.component.mjs +280 -0
- package/esm2022/lib/components/managechecklist/managechecklist.component.mjs +11 -0
- package/esm2022/lib/components/pagination/pagination.component.mjs +62 -0
- package/esm2022/lib/components/reactive-select/reactive-select.component.mjs +101 -0
- package/esm2022/lib/components/reports/reports.component.mjs +204 -0
- package/esm2022/lib/components/reports/reports.interface.mjs +2 -0
- package/esm2022/lib/components/tango-analyse-trax/tango-analyse-trax.component.mjs +27 -6
- package/esm2022/lib/components/trax-store/trax-store.component.mjs +144 -0
- package/esm2022/lib/components/traxpopup/traxpopup.component.mjs +64 -0
- package/esm2022/lib/services/trax.service.mjs +200 -0
- package/esm2022/lib/tango-analyse-trax-routing.module.mjs +62 -6
- package/esm2022/lib/tango-analyse-trax.module.mjs +82 -9
- package/fesm2022/tango-app-ui-analyse-trax.mjs +6211 -24
- package/fesm2022/tango-app-ui-analyse-trax.mjs.map +1 -1
- package/lib/components/add-checklist/add-checklist.component.d.ts +91 -0
- package/lib/components/checklist/checklist.component.d.ts +38 -0
- package/lib/components/checklist-configure/checklist-configure.component.d.ts +162 -0
- package/lib/components/dashboard/dashboard.component.d.ts +62 -0
- package/lib/components/dashboard-info/dashboard-info.component.d.ts +92 -0
- package/lib/components/dashboard-info/monthlyperformance-datepicker/monthlyperformance-datepicker.component.d.ts +39 -0
- package/lib/components/flags/flags.component.d.ts +40 -0
- package/lib/components/flags/flags.interface.d.ts +61 -0
- package/lib/components/flags-info/flags-info.component.d.ts +50 -0
- package/lib/components/flags-info/flags-info.interface.d.ts +207 -0
- package/lib/components/flags-info/unattended-pie-chart/unattended-pie-chart.component.d.ts +13 -0
- package/lib/components/gallery/gallery.component.d.ts +64 -0
- package/lib/components/managechecklist/managechecklist.component.d.ts +5 -0
- package/lib/components/pagination/pagination.component.d.ts +16 -0
- package/lib/components/reactive-select/reactive-select.component.d.ts +31 -0
- package/lib/components/reports/reports.component.d.ts +43 -0
- package/lib/components/reports/reports.interface.d.ts +44 -0
- package/lib/components/tango-analyse-trax/tango-analyse-trax.component.d.ts +10 -1
- package/lib/components/trax-store/trax-store.component.d.ts +43 -0
- package/lib/components/traxpopup/traxpopup.component.d.ts +22 -0
- package/lib/services/trax.service.d.ts +65 -0
- package/lib/tango-analyse-trax.module.d.ts +23 -3
- package/package.json +1 -1
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import dayjs from "dayjs";
|
|
3
|
+
import utc from 'dayjs/plugin/utc';
|
|
4
|
+
import { Subject, takeUntil } from "rxjs";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/forms";
|
|
7
|
+
import * as i2 from "tango-app-ui-global";
|
|
8
|
+
import * as i3 from "../../services/trax.service";
|
|
9
|
+
import * as i4 from "@angular/common";
|
|
10
|
+
import * as i5 from "tango-app-ui-shared";
|
|
11
|
+
import * as i6 from "@angular/cdk/drag-drop";
|
|
12
|
+
import * as i7 from "ngx-daterangepicker-material";
|
|
13
|
+
import * as i8 from "../reactive-select/reactive-select.component";
|
|
14
|
+
import * as i9 from "../pagination/pagination.component";
|
|
15
|
+
dayjs.extend(utc);
|
|
16
|
+
export class GalleryComponent {
|
|
17
|
+
fb;
|
|
18
|
+
gs;
|
|
19
|
+
traxService;
|
|
20
|
+
cd;
|
|
21
|
+
dayjs = dayjs;
|
|
22
|
+
selectedDateRange = {};
|
|
23
|
+
isCustomDate = (m) => {
|
|
24
|
+
const isValidDate = m > this.dayjs();
|
|
25
|
+
return isValidDate ? 'invalid-date' : false;
|
|
26
|
+
};
|
|
27
|
+
galleryForm;
|
|
28
|
+
type = [{ value: 'checklist', label: 'Checklist' },
|
|
29
|
+
// {value:'task', label:'Task'}
|
|
30
|
+
];
|
|
31
|
+
checklists = [{ sourceCheckList_id: 'storeopenandclose', checkListName: 'Store open and close' },
|
|
32
|
+
{ sourceCheckList_id: 'mobileusagedetection', checkListName: 'Mobile usage detection' },
|
|
33
|
+
{ sourceCheckList_id: 'eyetest', checkListName: 'Eye Test' }];
|
|
34
|
+
answerType = [
|
|
35
|
+
{ label: 'All Answer Type', value: 'all' },
|
|
36
|
+
{ label: 'Descriptive Answer', value: 'descriptive' },
|
|
37
|
+
{ label: 'A/B Question', value: 'yes/no' },
|
|
38
|
+
{ label: 'Multiple Choice Question - Single Answer', value: 'multiplechoicesingle' },
|
|
39
|
+
{ label: 'Multiple Choice Question - Multiple Answer', value: 'multiplechoicemultiple' },
|
|
40
|
+
{ label: 'Capture Image as answer', value: 'image' },
|
|
41
|
+
{ label: 'Capture video as answer', value: 'video' },
|
|
42
|
+
{ label: 'Capture Multiple Image', value: 'multipleImage' },
|
|
43
|
+
{ label: 'Date As Answer', value: 'date' }
|
|
44
|
+
];
|
|
45
|
+
headerFilters;
|
|
46
|
+
storeList = [];
|
|
47
|
+
destroy$ = new Subject();
|
|
48
|
+
checklistData = {};
|
|
49
|
+
stores;
|
|
50
|
+
items;
|
|
51
|
+
paginatedItems;
|
|
52
|
+
itemsPerPage = 10;
|
|
53
|
+
currentPage = 1;
|
|
54
|
+
totalItems = 0;
|
|
55
|
+
viewChecklistsData;
|
|
56
|
+
loading = true;
|
|
57
|
+
noData = false;
|
|
58
|
+
viewloading = true;
|
|
59
|
+
viewnoData = false;
|
|
60
|
+
constructor(fb, gs, traxService, cd) {
|
|
61
|
+
this.fb = fb;
|
|
62
|
+
this.gs = gs;
|
|
63
|
+
this.traxService = traxService;
|
|
64
|
+
this.cd = cd;
|
|
65
|
+
}
|
|
66
|
+
ngOnDestroy() {
|
|
67
|
+
this.destroy$.next(true);
|
|
68
|
+
this.destroy$.complete();
|
|
69
|
+
}
|
|
70
|
+
ngOnInit() {
|
|
71
|
+
this.createForm();
|
|
72
|
+
this.gs.dataRangeValue.pipe(takeUntil(this.destroy$)).subscribe({
|
|
73
|
+
next: (data) => {
|
|
74
|
+
if (data?.client) {
|
|
75
|
+
this.headerFilters = data;
|
|
76
|
+
this.stores = this.headerFilters.stores;
|
|
77
|
+
this.galleryForm.get('storeList')?.setValue(this.stores);
|
|
78
|
+
this.selectedDateRange.endDate = this.dayjs(this.headerFilters?.date?.endDate).utc().format("DD-MM-YYYY");
|
|
79
|
+
this.getAllStores();
|
|
80
|
+
this.getAllCheckLists();
|
|
81
|
+
this.getChecklistQA();
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
onStartDateChange(event) {
|
|
87
|
+
if (this.dayjs(event.startDate).isValid()) {
|
|
88
|
+
this.isCustomDate = (m) => {
|
|
89
|
+
const isValidDate = m > this.dayjs() || m > this.dayjs(event.startDate.add(90, "days"));
|
|
90
|
+
return isValidDate ? "invalid-date" : false;
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
createForm() {
|
|
95
|
+
this.galleryForm = this.fb.group({
|
|
96
|
+
fromDate: [this.dayjs().subtract(1, 'day').format('YYYY-MM-DD')],
|
|
97
|
+
toDate: [this.dayjs().format('YYYY-MM-DD')],
|
|
98
|
+
type: ['checklist'],
|
|
99
|
+
checklistType: ['storeopenandclose'],
|
|
100
|
+
storeList: [this.stores],
|
|
101
|
+
answerType: ['all'],
|
|
102
|
+
viewFlaggedOnly: [false]
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
datechange(event) {
|
|
106
|
+
if (!event.endDate || !event.startDate) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
this.galleryForm.get('fromDate')?.setValue(event.startDate.format('YYYY-MM-DD'));
|
|
110
|
+
this.galleryForm.get('toDate')?.setValue(event.endDate.format('YYYY-MM-DD'));
|
|
111
|
+
}
|
|
112
|
+
getAllStores() {
|
|
113
|
+
this.traxService.getStores({ clientId: this.headerFilters.client }).subscribe({
|
|
114
|
+
next: (res) => {
|
|
115
|
+
if (res && res.code == 200) {
|
|
116
|
+
this.storeList = res.data.result;
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
this.storeList = [];
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
error: () => {
|
|
123
|
+
this.storeList = [];
|
|
124
|
+
},
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
getAllCheckLists() {
|
|
128
|
+
let stores = this.stores.map((data) => data.storeId);
|
|
129
|
+
const payload = {
|
|
130
|
+
fromDate: this.galleryForm.get('fromDate')?.value,
|
|
131
|
+
toDate: this.galleryForm.get('toDate')?.value,
|
|
132
|
+
storeId: stores,
|
|
133
|
+
"clientId": "11"
|
|
134
|
+
};
|
|
135
|
+
this.traxService.getChecklists(payload).subscribe({
|
|
136
|
+
next: (res) => {
|
|
137
|
+
if (res && res.code == 200) {
|
|
138
|
+
this.checklists = [...this.checklists, ...res.data.checklistData];
|
|
139
|
+
console.log(this.checklists);
|
|
140
|
+
setTimeout(() => {
|
|
141
|
+
this.galleryForm.get('checklistType')?.setValue(this.checklists[0]?.checkListName);
|
|
142
|
+
this.cd.detectChanges();
|
|
143
|
+
}, 0);
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
this.checklists = [];
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
error: () => {
|
|
150
|
+
this.checklists = [];
|
|
151
|
+
},
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
onStoreChecklistType(data) {
|
|
155
|
+
console.log(data);
|
|
156
|
+
}
|
|
157
|
+
onStoreSelect(event) {
|
|
158
|
+
this.galleryForm.get('storeList')?.setValue(event);
|
|
159
|
+
}
|
|
160
|
+
select = 'openandclose';
|
|
161
|
+
onSubmit() {
|
|
162
|
+
if (this.galleryForm.value.checklistType === 'storeopenandclose') {
|
|
163
|
+
this.select = 'openandclose';
|
|
164
|
+
}
|
|
165
|
+
else if (this.galleryForm.value.checklistType === 'mobileusagedetection') {
|
|
166
|
+
this.select = 'mobileusage';
|
|
167
|
+
this.paginateItems();
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
this.select = this.galleryForm.value.type === 'checklist' ? "custom" : "";
|
|
171
|
+
// this.paginateItems();
|
|
172
|
+
}
|
|
173
|
+
console.log(this.select);
|
|
174
|
+
this.getChecklistQA();
|
|
175
|
+
}
|
|
176
|
+
show = 0;
|
|
177
|
+
accordian(index) {
|
|
178
|
+
if (this.show == index) {
|
|
179
|
+
this.show = -1;
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
this.show = index;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
// API Number: 1 (Checklist Questions)
|
|
186
|
+
getChecklistQA() {
|
|
187
|
+
this.loading = true;
|
|
188
|
+
this.noData = false;
|
|
189
|
+
this.viewloading = true;
|
|
190
|
+
this.viewnoData = false;
|
|
191
|
+
let stores = this.galleryForm.value.storeList.map((data) => data.storeId);
|
|
192
|
+
console.log(this.galleryForm.value.checklistType);
|
|
193
|
+
let obj = {
|
|
194
|
+
"ChecklistDate": this.galleryForm.value.fromDate,
|
|
195
|
+
"ChecklistType": this.galleryForm.value.type === 'checklist' ? "custom" : "",
|
|
196
|
+
"checklistName": this.galleryForm.value.checklistType,
|
|
197
|
+
"storeId": stores,
|
|
198
|
+
"answerType": this.galleryForm.value.answerType,
|
|
199
|
+
"viewFlag": this.galleryForm.value.viewFlaggedOnly //[true, false]
|
|
200
|
+
};
|
|
201
|
+
this.traxService.getchecklist(obj)?.pipe(takeUntil(this.destroy$))?.subscribe({
|
|
202
|
+
next: (res) => {
|
|
203
|
+
if (res && res.code === 200) {
|
|
204
|
+
this.checklistData = res?.data;
|
|
205
|
+
console.log(this.checklistData.checklistQuestions[0]);
|
|
206
|
+
this.viewloading = false;
|
|
207
|
+
this.viewnoData = false;
|
|
208
|
+
this.viewChecklists("all", "all");
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
this.checklistData = [];
|
|
212
|
+
this.viewChecklistsData = [];
|
|
213
|
+
this.loading = false;
|
|
214
|
+
this.noData = true;
|
|
215
|
+
this.viewloading = false;
|
|
216
|
+
this.viewnoData = true;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
viewChecklists(sectionName, questionName) {
|
|
222
|
+
this.loading = true;
|
|
223
|
+
this.noData = false;
|
|
224
|
+
console.log(sectionName, questionName);
|
|
225
|
+
let stores = this.galleryForm.value.storeList.map((data) => data.storeId);
|
|
226
|
+
console.log(this.galleryForm.value.checklistType);
|
|
227
|
+
let obj = {
|
|
228
|
+
"ChecklistDate": this.galleryForm.value.fromDate,
|
|
229
|
+
"ChecklistType": this.galleryForm.value.type === 'checklist' ? "custom" : "",
|
|
230
|
+
"checklistName": this.galleryForm.value.checklistType,
|
|
231
|
+
"storeId": stores,
|
|
232
|
+
"answerType": this.galleryForm.value.answerType,
|
|
233
|
+
"sectionName": sectionName,
|
|
234
|
+
"qname": questionName
|
|
235
|
+
};
|
|
236
|
+
this.traxService.viewChecklists(obj)?.pipe(takeUntil(this.destroy$))?.subscribe({
|
|
237
|
+
next: (res) => {
|
|
238
|
+
if (res && res.code === 200) {
|
|
239
|
+
this.viewChecklistsData = res.data;
|
|
240
|
+
this.loading = false;
|
|
241
|
+
this.noData = false;
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
this.viewChecklistsData = [];
|
|
245
|
+
this.loading = false;
|
|
246
|
+
this.noData = true;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
exportXLSX() {
|
|
252
|
+
}
|
|
253
|
+
taskCreate() { }
|
|
254
|
+
redo() { }
|
|
255
|
+
showsidenav = true;
|
|
256
|
+
sidenav() {
|
|
257
|
+
this.showsidenav = !this.showsidenav;
|
|
258
|
+
}
|
|
259
|
+
onPageChange(page) {
|
|
260
|
+
this.currentPage = page;
|
|
261
|
+
this.updatePaginatedItems();
|
|
262
|
+
}
|
|
263
|
+
paginateItems() {
|
|
264
|
+
this.items = 1;
|
|
265
|
+
this.totalItems = this.items;
|
|
266
|
+
this.updatePaginatedItems();
|
|
267
|
+
}
|
|
268
|
+
updatePaginatedItems() {
|
|
269
|
+
const startIndex = (this.currentPage - 1) * this.itemsPerPage;
|
|
270
|
+
const endIndex = startIndex + this.itemsPerPage;
|
|
271
|
+
this.paginatedItems = this.items.slice(startIndex, endIndex);
|
|
272
|
+
}
|
|
273
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GalleryComponent, deps: [{ token: i1.FormBuilder }, { token: i2.GlobalStateService }, { token: i3.TraxService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
274
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: GalleryComponent, selector: "lib-gallery", ngImport: i0, template: "<div class=\"gallery-card\">\r\n <div class=\"header mb-4\">Gallery</div>\r\n\r\n <form [formGroup]=\"galleryForm\">\r\n <div class=\"row\">\r\n <div class=\"col-md-11\">\r\n <div class=\"row\">\r\n <div class=\"col-md-2 mb-3\">\r\n <div class=\"position-relative\">\r\n <span style=\"top: 20%;\" class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" style=\"min-width: 100px !important;\"\r\n type=\"text\" matInput ngxDaterangepickerMd [singleDatePicker]=\"true\" [drops]=\"'down'\"\r\n [opens]=\"'right'\" [alwaysShowCalendars]=\"false\" [keepCalendarOpeningWithRange]=\"true\"\r\n [showCancel]=\"false\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\"\r\n [ngModelOptions]=\"{standalone: true}\" (startDateChanged)=\"onStartDateChange($event)\"\r\n [isCustomDate]=\"isCustomDate\" [autoApply]=\"true\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" [readonly]=\"true\" />\r\n </div>\r\n </div>\r\n <div class=\"col-md-2 mb-4\">\r\n <lib-reactive-select formControlName=\"type\" [idField]=\"'value'\" [nameField]=\"'label'\"\r\n [data]=\"type\"></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-2 mb-4\">\r\n <lib-reactive-select formControlName=\"checklistType\" [idField]=\"'checkListName'\"\r\n [nameField]=\"'checkListName'\" [data]=\"checklists\"></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-2 mb-4\">\r\n <lib-select [items]=\"storeList\" [disabled]=\"false\" [multi]=\"true\" [searchField]=\"'storeName'\"\r\n [idField]=\"'storeId'\" (selected)=\"onStoreSelect($event)\"\r\n [selectedValues]=\"galleryForm.get('storeList')?.value\"></lib-select>\r\n </div>\r\n <div class=\"col-md-2 mb-4\">\r\n <lib-reactive-select formControlName=\"answerType\" [idField]=\"'value'\" [nameField]=\"'label'\"\r\n [data]=\"answerType\"></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-2 mb-4\">\r\n <div class=\"h-100 d-flex align-items-center\">\r\n <div class=\"mb-3\">\r\n <span class=\"d-flex align-items-center\">\r\n <input formControlName=\"viewFlaggedOnly\" change type=\"checkbox\"\r\n class=\"form-check-input cursor-pointer mt-1 me-4\" id=\"viewFlaggedOnly\">\r\n <label class=\"checkbox-label\" for=\"viewFlaggedOnly\">View flagged only</label> </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-1\">\r\n <div class=\"d-flex justify-content-center\">\r\n <a (click)=\"onSubmit()\" type=\"submit\" class=\"btn btn-primary px-4 \"><span>Apply</span></a>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </form>\r\n</div>\r\n<div class=\"row my-5\">\r\n <div [ngClass]=\"showsidenav ? 'col-md-4':'d-none'\">\r\n <div class=\"card position-relative h-100\">\r\n <div class=\"card-body p-5\">\r\n <div class=\"checklist-left\">\r\n <div class=\"checklist-title\">{{this.galleryForm.value.checklistType}}</div>\r\n <div class=\"checklist-text\">Now that we\u2019ve covered the fundamentals of what a retail opening\r\n procedure</div>\r\n </div>\r\n <div *ngIf=\"viewloading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"viewnoData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div> \r\n <section *ngIf=\"!viewnoData && !viewloading\">\r\n <div class=\"view-all my-6\" style=\"cursor: pointer;\" (click)=\"viewChecklists('all','all')\" >\r\n View All Answers\r\n </div>\r\n <div class=\"mx-2\" *ngFor=\"let section of checklistData.checklistQuestions; let i=index;\">\r\n <div class=\"d-flex align-items-center justify-content-between mt-4\" style=\"cursor: pointer;\" (click)=\"viewChecklists(section.sectionName,'all')\">\r\n <div class=\"fs-4 fw-bold section\">{{section.sectionName}}</div>\r\n <hr class=\"mx-2\">\r\n <svg (click)=\"accordian(i)\" class=\"cursor-pointer\" [ngClass]=\"{'rotate' : show !== i}\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"25\" height=\"25\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <div *ngIf=\"show===i\" class=\"question-left\">\r\n <div cdkDropList [cdkDropListData]=\"section.questions\">\r\n\r\n <div *ngFor=\"let question of section.questions;let j=index;\" class=\"my-2 q-btn\" cdkDrag>\r\n\r\n <div class=\"editablecontent\" style=\"cursor: pointer;\" (click)=\"viewChecklists(section.sectionName,question?.qname)\">\r\n {{question.qno}} . {{question.qname}}\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n <div class=\"card-body p-5\" *ngIf=\"select ==='mobileusage'\">\r\n <div class=\"checklist-left\">\r\n <div class=\"checklist-title\">Mobile Usage Detection</div>\r\n <div class=\"checklist-text\">Now that we\u2019ve covered the fundamentals of what a retail opening\r\n procedure</div>\r\n </div>\r\n <div class=\"view-all my-6\">\r\n All Detections\r\n </div>\r\n </div>\r\n\r\n <div class=\"card-body p-5\" *ngIf=\"select ==='eyetest'\">\r\n <div class=\"checklist-left\">\r\n <div class=\"checklist-title\">Eye Test</div>\r\n <div class=\"checklist-text\">Now that we\u2019ve covered the fundamentals of what a retail opening\r\n procedure</div>\r\n </div>\r\n <div class=\"view-all my-6\">\r\n All Detections\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showsidenav\" (click)=\"sidenav()\" class=\"backButtonright text-center pt-1 cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M11 17L6 12L11 7M18 17L13 12L18 7\" stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"showsidenav ? 'col-md-8':'col-md-12'\">\r\n <div class=\"card position-relative h-100\">\r\n <div *ngIf=\"!showsidenav\" (click)=\"sidenav()\" class=\"backButtonleft mt-10 pt-1 cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M9.72714 12.6365L13.3635 9.00013L9.72714 5.36377M4.63623 12.6365L8.27259 9.00013L4.63623 5.36377\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <div class=\"card-header\" *ngIf=\"select ==='openandclose' || select ==='mobileusage' || select ==='eyetest'\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n\r\n </h3>\r\n\r\n <!-- Switch toggle -->\r\n <div class=\"card-toolbar\">\r\n <div class=\"col-md-12 text-end\">\r\n <button type=\"button\" (click)=\"exportXLSX()\"\r\n class=\"btn btn-light-primary1 mx-2 rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Export</span> </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div *ngIf=\"this.select==='custom'\">\r\n\r\n <div *ngIf=\"loading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"noData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div> \r\n <section *ngIf=\"!loading && !noData\" >\r\n <div *ngFor=\"let checklist of viewChecklistsData?.checklistAnswers\">\r\n <div class=\"text-center\">\r\n <img class=\"mt-5 mb-3 text-center\" src=\"assets/tango/Images/checklist-logo-img.svg\">\r\n </div>\r\n\r\n <div class=\"row px-10 mt-5\">\r\n <div class=\"col-md-3\">\r\n <h3 class=\"uni-title\">Store Name:</h3>\r\n </div>\r\n <div class=\"col-md-9\">\r\n <p class=\"uni-subtitle\">{{checklist?.storeProfile?.storeName}} |\r\n {{checklist?.storeProfile?.state}} {{checklist?.storeProfile?.Country}}</p>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <h3 class=\"uni-title\">Checklist Name:</h3>\r\n </div>\r\n <div class=\"col-md-9\">\r\n <p class=\"uni-subtitle\">{{checklist?.checklistInfo?.checklistName}}</p>\r\n </div>\r\n\r\n <ng-container>\r\n <div class=\"col-md-3\">\r\n <h3 class=\"uni-title\">State & Country :</h3>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <p class=\"uni-subtitle\">{{checklist?.storeProfile?.state}}\r\n {{checklist?.storeProfile?.Country}}</p>\r\n </div>\r\n <div class=\"col-md-2\">\r\n <h3 class=\"uni-title\">Duration :</h3>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <p class=\"uni-subtitle\"> {{checklist?.checklistInfo?.duration}}</p>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <h3 class=\"uni-title\">No. of Questions :</h3>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <p class=\"uni-subtitle\">{{checklist?.checklistInfo?.noofQuestions}}</p>\r\n </div>\r\n <div class=\"col-md-2\">\r\n <h3 class=\"uni-title\">Date :</h3>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <p class=\"uni-subtitle\"> {{checklist?.checklistInfo?.date}}</p>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <h3 class=\"uni-title\">Submitted By :</h3>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <p class=\"uni-subtitle\">{{checklist?.checklistInfo?.submittedBy}}</p>\r\n </div>\r\n <div class=\"col-md-2\">\r\n <h3 class=\"uni-title\">Time :</h3>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <p class=\"uni-subtitle\"> {{checklist?.checklistInfo?.time}}</p>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n\r\n <div class=\"row px-10 mt-5\">\r\n\r\n <div class=\"qa-bodrer my-3\" *ngFor=\"let questionlist of checklist.questionAnswer\">\r\n <div *ngFor=\"let question of questionlist.questions\">\r\n <ul>\r\n <li class=\"qa-heading\">{{question?.qno}}. {{question?.qname}}\r\n </li>\r\n\r\n\r\n <div class=\"Partially my-3\" *ngIf=\"question?.answerType==='descriptive'\">\r\n <div *ngFor=\"let item of question.userAnswer\">\r\n <span>{{item.answer}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"Partially my-3\" *ngIf=\"question?.answerType==='yes/no'\">\r\n <div *ngFor=\"let item of question.userAnswer\">\r\n <span>{{item.answer}}</span>\r\n <div *ngIf=\"item.validation\">\r\n <!-- <img src=\"{{item}}\"> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"Partially my-3\" *ngIf=\"question?.answerType==='multiplechoicesingle'\">\r\n <div *ngFor=\"let item of question.userAnswer\">\r\n <span>{{item.answer}}</span>\r\n </div>\r\n </div>\r\n <div class=\"row\" *ngIf=\"question?.answerType==='image'\">\r\n <div class=\"col-md-6\" *ngIf=\"question.questionReferenceImage!=''\">\r\n <div class=\"title-ref my-3\">Reference Image</div>\r\n <img class=\"img-logo\" src=\"https://dmrltd65ozcq0.cloudfront.net/{{question.questionReferenceImage}}\" alt=\"\">\r\n </div>\r\n <div class=\"col-md-6\"*ngFor=\"let item of question.userAnswer\">\r\n <div class=\"title-ref my-3\">Uploaded Image</div>\r\n <img class=\"img-logo\" src=\"https://dmrltd65ozcq0.cloudfront.net/{{item.answer}}\" alt=\"\">\r\n </div>\r\n </div>\r\n <div class=\"row\" *ngIf=\"question?.answerType==='video'\">\r\n <div class=\"col-md-6\" *ngIf=\"question.questionReferenceImage!=''\">\r\n <div class=\"title-ref my-3\">Reference Image</div>\r\n <img class=\"img-logo\" src=\"https://dmrltd65ozcq0.cloudfront.net/{{question.questionReferenceImage}}\" alt=\"\">\r\n </div>\r\n <div class=\"col-md-6\"*ngFor=\"let item of question.userAnswer\">\r\n <div class=\"title-ref my-3\">Uploaded Video</div>\r\n \r\n <video controls autoplay class=\"recap-img p-3\"src=\"https://dmrltd65ozcq0.cloudfront.net/{{item.answer}}\">\r\n </video>\r\n </div>\r\n </div>\r\n <div class=\"row\" *ngIf=\"question?.answerType==='multipleImage'\">\r\n <div class=\"col-md-6\" *ngIf=\"question.questionReferenceImage!=''\">\r\n <div class=\"title-ref my-3\">Reference Image</div>\r\n <img class=\"img-logo\" src=\"https://dmrltd65ozcq0.cloudfront.net/{{question.questionReferenceImage}}\" alt=\"\">\r\n </div>\r\n <div class=\"col-md-6\"*ngFor=\"let item of question.userAnswer\">\r\n <div class=\"title-ref my-3\">Uploaded Image</div>\r\n <img class=\"img-logo\" src=\"https://dmrltd65ozcq0.cloudfront.net/{{item.answer}}\" alt=\"\">\r\n </div>\r\n </div>\r\n <!-- <div class=\"text-end mt-5\">\r\n <button type=\"button\" (click)=\"redo()\"\r\n class=\"btn btn-outline btn-default btn-outline-default mx-2 rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <g clip-path=\"url(#clip0_2951_9176)\">\r\n <path\r\n d=\"M19.1693 3.33331V8.33332M19.1693 8.33332H14.1693M19.1693 8.33332L15.3026 4.69998C14.407 3.80391 13.299 3.14932 12.0819 2.79729C10.8649 2.44527 9.57853 2.40727 8.34284 2.68686C7.10716 2.96645 5.96244 3.55451 5.01549 4.39616C4.06855 5.23782 3.35024 6.30564 2.9276 7.49998M0.835938 16.6666V11.6666M0.835938 11.6666H5.83594M0.835938 11.6666L4.7026 15.3C5.59823 16.1961 6.70625 16.8506 7.92328 17.2027C9.14031 17.5547 10.4267 17.5927 11.6624 17.3131C12.898 17.0335 14.0428 16.4455 14.9897 15.6038C15.9367 14.7621 16.655 13.6943 17.0776 12.5\"\r\n stroke=\"#344054\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2951_9176\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"ms-2\">Redo</span> </button>\r\n <button type=\"button\" (click)=\"taskCreate()\"\r\n class=\"btn btn-light-primary1 btn-outline-primary mx-2 rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.6693 1.66675H5.0026C4.56058 1.66675 4.13665 1.84234 3.82409 2.1549C3.51153 2.46746 3.33594 2.89139 3.33594 3.33341V16.6667C3.33594 17.1088 3.51153 17.5327 3.82409 17.8453C4.13665 18.1578 4.56058 18.3334 5.0026 18.3334H15.0026C15.4446 18.3334 15.8686 18.1578 16.1811 17.8453C16.4937 17.5327 16.6693 17.1088 16.6693 16.6667V6.66675M11.6693 1.66675L16.6693 6.66675M11.6693 1.66675V6.66675H16.6693M10.0026 15.0001V10.0001M7.5026 12.5001H12.5026\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Task</span> </button>\r\n </div> -->\r\n </ul>\r\n </div>\r\n\r\n </div>\r\n <!-- <div class=\"qa-bodrer my-3\">\r\n <ul>\r\n <li class=\"qa-heading\">\r\n 2. Facade, Digital elements are intact?(Wire, Screen)\r\n </li>\r\n \r\n <div class=\"text-end mt-5\">\r\n <button type=\"button\" (click)=\"taskCreate()\"\r\n class=\"btn btn-light-primary1 btn-outline-primary mx-2 rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.6693 1.66675H5.0026C4.56058 1.66675 4.13665 1.84234 3.82409 2.1549C3.51153 2.46746 3.33594 2.89139 3.33594 3.33341V16.6667C3.33594 17.1088 3.51153 17.5327 3.82409 17.8453C4.13665 18.1578 4.56058 18.3334 5.0026 18.3334H15.0026C15.4446 18.3334 15.8686 18.1578 16.1811 17.8453C16.4937 17.5327 16.6693 17.1088 16.6693 16.6667V6.66675M11.6693 1.66675L16.6693 6.66675M11.6693 1.66675V6.66675H16.6693M10.0026 15.0001V10.0001M7.5026 12.5001H12.5026\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Task</span> </button>\r\n </div>\r\n </ul>\r\n </div>\r\n \r\n <div class=\"qa-bodrer my-3\">\r\n <ul>\r\n <li class=\"qa-heading\">\r\n 3. Is the Facade Coweb/dust/mat free and well maintained?\r\n </li>\r\n <div class=\"Partially my-3\">Yes</div>\r\n <div class=\"task-remarks my-3\">Remarks : Wire Hanging</div>\r\n <div class=\"text-end mt-5\">\r\n <button type=\"button\" (click)=\"taskCreate()\"\r\n class=\"btn btn-light-primary1 btn-outline-primary mx-2 rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.6693 1.66675H5.0026C4.56058 1.66675 4.13665 1.84234 3.82409 2.1549C3.51153 2.46746 3.33594 2.89139 3.33594 3.33341V16.6667C3.33594 17.1088 3.51153 17.5327 3.82409 17.8453C4.13665 18.1578 4.56058 18.3334 5.0026 18.3334H15.0026C15.4446 18.3334 15.8686 18.1578 16.1811 17.8453C16.4937 17.5327 16.6693 17.1088 16.6693 16.6667V6.66675M11.6693 1.66675L16.6693 6.66675M11.6693 1.66675V6.66675H16.6693M10.0026 15.0001V10.0001M7.5026 12.5001H12.5026\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Task</span> </button>\r\n </div>\r\n </ul>\r\n </div>\r\n \r\n <div class=\"qa-bodrer my-3\">\r\n <ul>\r\n <li class=\"qa-heading\">\r\n 4. Facade, Digital elements are intact?(Wire, Screen)\r\n </li>\r\n <div class=\"Partially text-danger my-3\">Partially Agreed</div>\r\n <div class=\"task-remarks my-3\">Remarks : Wire Hanging</div>\r\n <div class=\"text-end mt-5\">\r\n <button type=\"button\" (click)=\"taskCreate()\"\r\n class=\"btn btn-light-primary1 btn-outline-primary mx-2 rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.6693 1.66675H5.0026C4.56058 1.66675 4.13665 1.84234 3.82409 2.1549C3.51153 2.46746 3.33594 2.89139 3.33594 3.33341V16.6667C3.33594 17.1088 3.51153 17.5327 3.82409 17.8453C4.13665 18.1578 4.56058 18.3334 5.0026 18.3334H15.0026C15.4446 18.3334 15.8686 18.1578 16.1811 17.8453C16.4937 17.5327 16.6693 17.1088 16.6693 16.6667V6.66675M11.6693 1.66675L16.6693 6.66675M11.6693 1.66675V6.66675H16.6693M10.0026 15.0001V10.0001M7.5026 12.5001H12.5026\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Task</span> </button>\r\n </div>\r\n </ul>\r\n </div>\r\n \r\n <div class=\"qa-bodrer my-3\">\r\n <ul>\r\n <li class=\"qa-heading\">\r\n 5. Facade, Digital elements are intact?(Wire, Screen)\r\n </li>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <div class=\"title-ref my-3\">Reference Image</div>\r\n <img class=\"img-logo\" src=\"assets/tango/Images/unsplash_checklist.svg\" alt=\"\">\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"title-ref my-3\">Uploaded Image</div>\r\n <img class=\"img-logo\" src=\"assets/tango/Images/unsplash_checklist.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n <div class=\"text-end mt-5\">\r\n <button type=\"button\" (click)=\"taskCreate()\"\r\n class=\"btn btn-light-primary1 btn-outline-primary mx-2 rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.6693 1.66675H5.0026C4.56058 1.66675 4.13665 1.84234 3.82409 2.1549C3.51153 2.46746 3.33594 2.89139 3.33594 3.33341V16.6667C3.33594 17.1088 3.51153 17.5327 3.82409 17.8453C4.13665 18.1578 4.56058 18.3334 5.0026 18.3334H15.0026C15.4446 18.3334 15.8686 18.1578 16.1811 17.8453C16.4937 17.5327 16.6693 17.1088 16.6693 16.6667V6.66675M11.6693 1.66675L16.6693 6.66675M11.6693 1.66675V6.66675H16.6693M10.0026 15.0001V10.0001M7.5026 12.5001H12.5026\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Task</span> </button>\r\n </div>\r\n </ul>\r\n </div> -->\r\n\r\n\r\n </div>\r\n </div>\r\n </section> \r\n </div>\r\n <div class=\"row px-10 my-5\" *ngIf=\"select ==='mobileusage'\">\r\n <div class=\"qa-bodrer my-3\">\r\n <ul>\r\n <li class=\"qa-heading\">\r\n LKST001\r\n </li>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 my-2\">\r\n\r\n <img class=\"w-100 h-450px\" src=\"assets/tango/Images/unsplash_checklist.svg\" alt=\"\">\r\n </div>\r\n\r\n </div>\r\n\r\n </ul>\r\n </div>\r\n <div class=\"container my-4\">\r\n <lib-pagination-v2 [totalItems]=\"totalItems\" [itemsPerPage]=\"itemsPerPage\"\r\n [currentPage]=\"currentPage\" (pageChanged)=\"onPageChange($event)\">\r\n </lib-pagination-v2>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row px-10 my-5\" *ngIf=\"select ==='eyetest'\">\r\n <div class=\"qa-bodrer my-3\">\r\n <ul>\r\n <li class=\"qa-heading\">\r\n LKST001\r\n </li>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n\r\n <video controls autoplay class=\"recap-img p-3\"\r\n src=\"https://tangoeye.ai/wp-content/uploads/videos/tango-main-video.mp4\">\r\n </video>\r\n </div>\r\n\r\n </div>\r\n\r\n </ul>\r\n </div>\r\n\r\n <div class=\"container my-4\">\r\n\r\n <lib-pagination-v2 [totalItems]=\"totalItems\" [itemsPerPage]=\"itemsPerPage\"\r\n [currentPage]=\"currentPage\" (pageChanged)=\"onPageChange($event)\">\r\n </lib-pagination-v2>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>", styles: [".gallery-card{padding:24px;border-radius:12px;background:#fff}.gallery-card .header{color:#101828;font-size:18px;font-weight:500;line-height:28px}::ng-deep .applyBtn{display:none!important}:host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.show-ranges.shown{top:65px!important}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;right:-475px!important;left:unset!important;height:400px!important}:host::ng-deep .md-drppicker .btn{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;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}.btn-primary{line-height:18px!important}.checkbox-label{color:#344054;font-size:14px;font-weight:500;line-height:20px;cursor:pointer}.checklist-left .checklist-title{overflow:hidden;color:var(--Black, #101828)!important;text-overflow:ellipsis;font-size:18px!important;font-weight:500;line-height:28px}.checklist-left .checklist-text{overflow:hidden;color:var(--Black, #101828)!important;text-overflow:ellipsis;font-size:12px!important;font-weight:400!important;line-height:18px}.section{display:inline-block;width:600px;white-space:nowrap;outline:none!important;border:none!important;box-shadow:none!important;overflow:hidden!important;text-overflow:ellipsis!important;color:var(--Black, #101828)!important;font-size:16px!important;font-weight:500!important}.card hr{width:-webkit-fill-available}.editablecontent{color:var(--Gray-700, #344054)!important;font-size:16px!important;font-weight:400!important;line-height:24px}.rotate{transform:rotate(180deg);transition:1s}.question-left{color:var(--Gray-700, #344054)!important;font-size:16px;font-weight:400;line-height:24px}.view-all{padding:12px!important;border-radius:6px!important;background:var(--Primary-50, #EAF8FF)!important;color:var(--Primary-500, #33B5FF)!important;font-size:16px!important;font-weight:600!important;line-height:24px;text-decoration-line:underline!important}input[type=checkbox]{width:18px!important;height:18px!important;margin:0;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-300, #D0D5DD);box-shadow:none;font-size:.8em;text-align:center;line-height:1em;background:#fff}input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00A3FF);background-color:var(--primary-50, #EAF8FF)}input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.5em;padding-left:0!important;padding-top:12px;padding-right:6px}.uni-title{color:#000!important;font-size:18px!important;font-weight:600!important;line-height:28px}.uni-subtitle{color:#000!important;font-size:18px!important;font-weight:400!important;line-height:28px}.qa-heading{color:var(--Black, #101828)!important;font-size:18px!important;font-weight:700!important;line-height:28px;list-style:none}.qa-bodrer{padding:16px!important;border-radius:8px!important;border:1px solid var(--Gray-200, #EAECF0)!important;background:var(--text-primary, #FFF)!important;box-shadow:0 1px 3px #1018281a,0 1px 2px #1018280f!important}.title-ref{color:var(--Gray-900, #101828)!important;font-size:16px!important;font-weight:400!important;line-height:24px}.btn-outline-primary{border-radius:8px!important;border:1px solid var(--Primary-500, #33B5FF)!important;background:var(--Primary-50, #EAF8FF)!important;box-shadow:0 1px 2px #1018280d!important;padding:calc(.7rem + 0px) calc(1.5rem + 1px)!important}.Partially{color:#000;font-size:18px!important;font-style:italic!important;font-weight:500;line-height:28px}.task-remarks{color:#000!important;font-size:18px!important;font-weight:400!important;line-height:28px}.backButtonright{border-radius:1000px!important;background:var(--text-primary, #FFF)!important;padding:10px!important;box-shadow:0 12px 16px -4px #10182814,0 4px 6px -2px #10182808!important;box-shadow:0 8.727px 11.636px -2.909px #10182814,0 2.909px 4.364px -1.455px #10182808!important;position:absolute;top:30px;right:-10px;z-index:0}img.img-logo{width:100%;height:250px!important}.recap-img{width:100%;height:400px;object-fit:cover!important}.img-src{width:30%!important;height:20%!important}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.CustomSelectComponent, selector: "lib-select", inputs: ["items", "searchField", "multi", "idField", "selectedValues", "disabled", "label"], outputs: ["selected"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i7.DaterangepickerDirective, selector: "input[ngxDaterangepickerMd]", inputs: ["minDate", "maxDate", "autoApply", "alwaysShowCalendars", "showCustomRangeLabel", "linkedCalendars", "dateLimit", "singleDatePicker", "showWeekNumbers", "showISOWeekNumbers", "showDropdowns", "isInvalidDate", "isCustomDate", "isTooltipDate", "showClearButton", "customRangeDirection", "ranges", "opens", "drops", "firstMonthDayClass", "lastMonthDayClass", "emptyWeekRowClass", "emptyWeekColumnClass", "firstDayOfNextMonthClass", "lastDayOfPreviousMonthClass", "keepCalendarOpeningWithRange", "showRangeLabelOnInput", "showCancel", "lockStartDate", "timePicker", "timePicker24Hour", "timePickerIncrement", "timePickerSeconds", "closeOnAutoApply", "endKeyHolder", "startKey", "locale", "endKey"], outputs: ["change", "rangeClicked", "datesUpdated", "startDateChanged", "endDateChanged", "clearClicked"] }, { kind: "component", type: i8.ReactiveSelectComponent, selector: "lib-reactive-select", inputs: ["idField", "nameField", "label", "data"] }, { kind: "component", type: i9.PaginationComponent, selector: "lib-pagination-v2", inputs: ["totalItems", "itemsPerPage", "currentPage"], outputs: ["pageChanged"] }] });
|
|
275
|
+
}
|
|
276
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GalleryComponent, decorators: [{
|
|
277
|
+
type: Component,
|
|
278
|
+
args: [{ selector: 'lib-gallery', template: "<div class=\"gallery-card\">\r\n <div class=\"header mb-4\">Gallery</div>\r\n\r\n <form [formGroup]=\"galleryForm\">\r\n <div class=\"row\">\r\n <div class=\"col-md-11\">\r\n <div class=\"row\">\r\n <div class=\"col-md-2 mb-3\">\r\n <div class=\"position-relative\">\r\n <span style=\"top: 20%;\" class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" style=\"min-width: 100px !important;\"\r\n type=\"text\" matInput ngxDaterangepickerMd [singleDatePicker]=\"true\" [drops]=\"'down'\"\r\n [opens]=\"'right'\" [alwaysShowCalendars]=\"false\" [keepCalendarOpeningWithRange]=\"true\"\r\n [showCancel]=\"false\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\"\r\n [ngModelOptions]=\"{standalone: true}\" (startDateChanged)=\"onStartDateChange($event)\"\r\n [isCustomDate]=\"isCustomDate\" [autoApply]=\"true\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" [readonly]=\"true\" />\r\n </div>\r\n </div>\r\n <div class=\"col-md-2 mb-4\">\r\n <lib-reactive-select formControlName=\"type\" [idField]=\"'value'\" [nameField]=\"'label'\"\r\n [data]=\"type\"></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-2 mb-4\">\r\n <lib-reactive-select formControlName=\"checklistType\" [idField]=\"'checkListName'\"\r\n [nameField]=\"'checkListName'\" [data]=\"checklists\"></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-2 mb-4\">\r\n <lib-select [items]=\"storeList\" [disabled]=\"false\" [multi]=\"true\" [searchField]=\"'storeName'\"\r\n [idField]=\"'storeId'\" (selected)=\"onStoreSelect($event)\"\r\n [selectedValues]=\"galleryForm.get('storeList')?.value\"></lib-select>\r\n </div>\r\n <div class=\"col-md-2 mb-4\">\r\n <lib-reactive-select formControlName=\"answerType\" [idField]=\"'value'\" [nameField]=\"'label'\"\r\n [data]=\"answerType\"></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-2 mb-4\">\r\n <div class=\"h-100 d-flex align-items-center\">\r\n <div class=\"mb-3\">\r\n <span class=\"d-flex align-items-center\">\r\n <input formControlName=\"viewFlaggedOnly\" change type=\"checkbox\"\r\n class=\"form-check-input cursor-pointer mt-1 me-4\" id=\"viewFlaggedOnly\">\r\n <label class=\"checkbox-label\" for=\"viewFlaggedOnly\">View flagged only</label> </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-1\">\r\n <div class=\"d-flex justify-content-center\">\r\n <a (click)=\"onSubmit()\" type=\"submit\" class=\"btn btn-primary px-4 \"><span>Apply</span></a>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </form>\r\n</div>\r\n<div class=\"row my-5\">\r\n <div [ngClass]=\"showsidenav ? 'col-md-4':'d-none'\">\r\n <div class=\"card position-relative h-100\">\r\n <div class=\"card-body p-5\">\r\n <div class=\"checklist-left\">\r\n <div class=\"checklist-title\">{{this.galleryForm.value.checklistType}}</div>\r\n <div class=\"checklist-text\">Now that we\u2019ve covered the fundamentals of what a retail opening\r\n procedure</div>\r\n </div>\r\n <div *ngIf=\"viewloading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"viewnoData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div> \r\n <section *ngIf=\"!viewnoData && !viewloading\">\r\n <div class=\"view-all my-6\" style=\"cursor: pointer;\" (click)=\"viewChecklists('all','all')\" >\r\n View All Answers\r\n </div>\r\n <div class=\"mx-2\" *ngFor=\"let section of checklistData.checklistQuestions; let i=index;\">\r\n <div class=\"d-flex align-items-center justify-content-between mt-4\" style=\"cursor: pointer;\" (click)=\"viewChecklists(section.sectionName,'all')\">\r\n <div class=\"fs-4 fw-bold section\">{{section.sectionName}}</div>\r\n <hr class=\"mx-2\">\r\n <svg (click)=\"accordian(i)\" class=\"cursor-pointer\" [ngClass]=\"{'rotate' : show !== i}\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"25\" height=\"25\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <div *ngIf=\"show===i\" class=\"question-left\">\r\n <div cdkDropList [cdkDropListData]=\"section.questions\">\r\n\r\n <div *ngFor=\"let question of section.questions;let j=index;\" class=\"my-2 q-btn\" cdkDrag>\r\n\r\n <div class=\"editablecontent\" style=\"cursor: pointer;\" (click)=\"viewChecklists(section.sectionName,question?.qname)\">\r\n {{question.qno}} . {{question.qname}}\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n <div class=\"card-body p-5\" *ngIf=\"select ==='mobileusage'\">\r\n <div class=\"checklist-left\">\r\n <div class=\"checklist-title\">Mobile Usage Detection</div>\r\n <div class=\"checklist-text\">Now that we\u2019ve covered the fundamentals of what a retail opening\r\n procedure</div>\r\n </div>\r\n <div class=\"view-all my-6\">\r\n All Detections\r\n </div>\r\n </div>\r\n\r\n <div class=\"card-body p-5\" *ngIf=\"select ==='eyetest'\">\r\n <div class=\"checklist-left\">\r\n <div class=\"checklist-title\">Eye Test</div>\r\n <div class=\"checklist-text\">Now that we\u2019ve covered the fundamentals of what a retail opening\r\n procedure</div>\r\n </div>\r\n <div class=\"view-all my-6\">\r\n All Detections\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showsidenav\" (click)=\"sidenav()\" class=\"backButtonright text-center pt-1 cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M11 17L6 12L11 7M18 17L13 12L18 7\" stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"showsidenav ? 'col-md-8':'col-md-12'\">\r\n <div class=\"card position-relative h-100\">\r\n <div *ngIf=\"!showsidenav\" (click)=\"sidenav()\" class=\"backButtonleft mt-10 pt-1 cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M9.72714 12.6365L13.3635 9.00013L9.72714 5.36377M4.63623 12.6365L8.27259 9.00013L4.63623 5.36377\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <div class=\"card-header\" *ngIf=\"select ==='openandclose' || select ==='mobileusage' || select ==='eyetest'\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n\r\n </h3>\r\n\r\n <!-- Switch toggle -->\r\n <div class=\"card-toolbar\">\r\n <div class=\"col-md-12 text-end\">\r\n <button type=\"button\" (click)=\"exportXLSX()\"\r\n class=\"btn btn-light-primary1 mx-2 rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Export</span> </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div *ngIf=\"this.select==='custom'\">\r\n\r\n <div *ngIf=\"loading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"noData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div> \r\n <section *ngIf=\"!loading && !noData\" >\r\n <div *ngFor=\"let checklist of viewChecklistsData?.checklistAnswers\">\r\n <div class=\"text-center\">\r\n <img class=\"mt-5 mb-3 text-center\" src=\"assets/tango/Images/checklist-logo-img.svg\">\r\n </div>\r\n\r\n <div class=\"row px-10 mt-5\">\r\n <div class=\"col-md-3\">\r\n <h3 class=\"uni-title\">Store Name:</h3>\r\n </div>\r\n <div class=\"col-md-9\">\r\n <p class=\"uni-subtitle\">{{checklist?.storeProfile?.storeName}} |\r\n {{checklist?.storeProfile?.state}} {{checklist?.storeProfile?.Country}}</p>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <h3 class=\"uni-title\">Checklist Name:</h3>\r\n </div>\r\n <div class=\"col-md-9\">\r\n <p class=\"uni-subtitle\">{{checklist?.checklistInfo?.checklistName}}</p>\r\n </div>\r\n\r\n <ng-container>\r\n <div class=\"col-md-3\">\r\n <h3 class=\"uni-title\">State & Country :</h3>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <p class=\"uni-subtitle\">{{checklist?.storeProfile?.state}}\r\n {{checklist?.storeProfile?.Country}}</p>\r\n </div>\r\n <div class=\"col-md-2\">\r\n <h3 class=\"uni-title\">Duration :</h3>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <p class=\"uni-subtitle\"> {{checklist?.checklistInfo?.duration}}</p>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <h3 class=\"uni-title\">No. of Questions :</h3>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <p class=\"uni-subtitle\">{{checklist?.checklistInfo?.noofQuestions}}</p>\r\n </div>\r\n <div class=\"col-md-2\">\r\n <h3 class=\"uni-title\">Date :</h3>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <p class=\"uni-subtitle\"> {{checklist?.checklistInfo?.date}}</p>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <h3 class=\"uni-title\">Submitted By :</h3>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <p class=\"uni-subtitle\">{{checklist?.checklistInfo?.submittedBy}}</p>\r\n </div>\r\n <div class=\"col-md-2\">\r\n <h3 class=\"uni-title\">Time :</h3>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <p class=\"uni-subtitle\"> {{checklist?.checklistInfo?.time}}</p>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n\r\n <div class=\"row px-10 mt-5\">\r\n\r\n <div class=\"qa-bodrer my-3\" *ngFor=\"let questionlist of checklist.questionAnswer\">\r\n <div *ngFor=\"let question of questionlist.questions\">\r\n <ul>\r\n <li class=\"qa-heading\">{{question?.qno}}. {{question?.qname}}\r\n </li>\r\n\r\n\r\n <div class=\"Partially my-3\" *ngIf=\"question?.answerType==='descriptive'\">\r\n <div *ngFor=\"let item of question.userAnswer\">\r\n <span>{{item.answer}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"Partially my-3\" *ngIf=\"question?.answerType==='yes/no'\">\r\n <div *ngFor=\"let item of question.userAnswer\">\r\n <span>{{item.answer}}</span>\r\n <div *ngIf=\"item.validation\">\r\n <!-- <img src=\"{{item}}\"> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"Partially my-3\" *ngIf=\"question?.answerType==='multiplechoicesingle'\">\r\n <div *ngFor=\"let item of question.userAnswer\">\r\n <span>{{item.answer}}</span>\r\n </div>\r\n </div>\r\n <div class=\"row\" *ngIf=\"question?.answerType==='image'\">\r\n <div class=\"col-md-6\" *ngIf=\"question.questionReferenceImage!=''\">\r\n <div class=\"title-ref my-3\">Reference Image</div>\r\n <img class=\"img-logo\" src=\"https://dmrltd65ozcq0.cloudfront.net/{{question.questionReferenceImage}}\" alt=\"\">\r\n </div>\r\n <div class=\"col-md-6\"*ngFor=\"let item of question.userAnswer\">\r\n <div class=\"title-ref my-3\">Uploaded Image</div>\r\n <img class=\"img-logo\" src=\"https://dmrltd65ozcq0.cloudfront.net/{{item.answer}}\" alt=\"\">\r\n </div>\r\n </div>\r\n <div class=\"row\" *ngIf=\"question?.answerType==='video'\">\r\n <div class=\"col-md-6\" *ngIf=\"question.questionReferenceImage!=''\">\r\n <div class=\"title-ref my-3\">Reference Image</div>\r\n <img class=\"img-logo\" src=\"https://dmrltd65ozcq0.cloudfront.net/{{question.questionReferenceImage}}\" alt=\"\">\r\n </div>\r\n <div class=\"col-md-6\"*ngFor=\"let item of question.userAnswer\">\r\n <div class=\"title-ref my-3\">Uploaded Video</div>\r\n \r\n <video controls autoplay class=\"recap-img p-3\"src=\"https://dmrltd65ozcq0.cloudfront.net/{{item.answer}}\">\r\n </video>\r\n </div>\r\n </div>\r\n <div class=\"row\" *ngIf=\"question?.answerType==='multipleImage'\">\r\n <div class=\"col-md-6\" *ngIf=\"question.questionReferenceImage!=''\">\r\n <div class=\"title-ref my-3\">Reference Image</div>\r\n <img class=\"img-logo\" src=\"https://dmrltd65ozcq0.cloudfront.net/{{question.questionReferenceImage}}\" alt=\"\">\r\n </div>\r\n <div class=\"col-md-6\"*ngFor=\"let item of question.userAnswer\">\r\n <div class=\"title-ref my-3\">Uploaded Image</div>\r\n <img class=\"img-logo\" src=\"https://dmrltd65ozcq0.cloudfront.net/{{item.answer}}\" alt=\"\">\r\n </div>\r\n </div>\r\n <!-- <div class=\"text-end mt-5\">\r\n <button type=\"button\" (click)=\"redo()\"\r\n class=\"btn btn-outline btn-default btn-outline-default mx-2 rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <g clip-path=\"url(#clip0_2951_9176)\">\r\n <path\r\n d=\"M19.1693 3.33331V8.33332M19.1693 8.33332H14.1693M19.1693 8.33332L15.3026 4.69998C14.407 3.80391 13.299 3.14932 12.0819 2.79729C10.8649 2.44527 9.57853 2.40727 8.34284 2.68686C7.10716 2.96645 5.96244 3.55451 5.01549 4.39616C4.06855 5.23782 3.35024 6.30564 2.9276 7.49998M0.835938 16.6666V11.6666M0.835938 11.6666H5.83594M0.835938 11.6666L4.7026 15.3C5.59823 16.1961 6.70625 16.8506 7.92328 17.2027C9.14031 17.5547 10.4267 17.5927 11.6624 17.3131C12.898 17.0335 14.0428 16.4455 14.9897 15.6038C15.9367 14.7621 16.655 13.6943 17.0776 12.5\"\r\n stroke=\"#344054\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2951_9176\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"ms-2\">Redo</span> </button>\r\n <button type=\"button\" (click)=\"taskCreate()\"\r\n class=\"btn btn-light-primary1 btn-outline-primary mx-2 rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.6693 1.66675H5.0026C4.56058 1.66675 4.13665 1.84234 3.82409 2.1549C3.51153 2.46746 3.33594 2.89139 3.33594 3.33341V16.6667C3.33594 17.1088 3.51153 17.5327 3.82409 17.8453C4.13665 18.1578 4.56058 18.3334 5.0026 18.3334H15.0026C15.4446 18.3334 15.8686 18.1578 16.1811 17.8453C16.4937 17.5327 16.6693 17.1088 16.6693 16.6667V6.66675M11.6693 1.66675L16.6693 6.66675M11.6693 1.66675V6.66675H16.6693M10.0026 15.0001V10.0001M7.5026 12.5001H12.5026\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Task</span> </button>\r\n </div> -->\r\n </ul>\r\n </div>\r\n\r\n </div>\r\n <!-- <div class=\"qa-bodrer my-3\">\r\n <ul>\r\n <li class=\"qa-heading\">\r\n 2. Facade, Digital elements are intact?(Wire, Screen)\r\n </li>\r\n \r\n <div class=\"text-end mt-5\">\r\n <button type=\"button\" (click)=\"taskCreate()\"\r\n class=\"btn btn-light-primary1 btn-outline-primary mx-2 rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.6693 1.66675H5.0026C4.56058 1.66675 4.13665 1.84234 3.82409 2.1549C3.51153 2.46746 3.33594 2.89139 3.33594 3.33341V16.6667C3.33594 17.1088 3.51153 17.5327 3.82409 17.8453C4.13665 18.1578 4.56058 18.3334 5.0026 18.3334H15.0026C15.4446 18.3334 15.8686 18.1578 16.1811 17.8453C16.4937 17.5327 16.6693 17.1088 16.6693 16.6667V6.66675M11.6693 1.66675L16.6693 6.66675M11.6693 1.66675V6.66675H16.6693M10.0026 15.0001V10.0001M7.5026 12.5001H12.5026\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Task</span> </button>\r\n </div>\r\n </ul>\r\n </div>\r\n \r\n <div class=\"qa-bodrer my-3\">\r\n <ul>\r\n <li class=\"qa-heading\">\r\n 3. Is the Facade Coweb/dust/mat free and well maintained?\r\n </li>\r\n <div class=\"Partially my-3\">Yes</div>\r\n <div class=\"task-remarks my-3\">Remarks : Wire Hanging</div>\r\n <div class=\"text-end mt-5\">\r\n <button type=\"button\" (click)=\"taskCreate()\"\r\n class=\"btn btn-light-primary1 btn-outline-primary mx-2 rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.6693 1.66675H5.0026C4.56058 1.66675 4.13665 1.84234 3.82409 2.1549C3.51153 2.46746 3.33594 2.89139 3.33594 3.33341V16.6667C3.33594 17.1088 3.51153 17.5327 3.82409 17.8453C4.13665 18.1578 4.56058 18.3334 5.0026 18.3334H15.0026C15.4446 18.3334 15.8686 18.1578 16.1811 17.8453C16.4937 17.5327 16.6693 17.1088 16.6693 16.6667V6.66675M11.6693 1.66675L16.6693 6.66675M11.6693 1.66675V6.66675H16.6693M10.0026 15.0001V10.0001M7.5026 12.5001H12.5026\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Task</span> </button>\r\n </div>\r\n </ul>\r\n </div>\r\n \r\n <div class=\"qa-bodrer my-3\">\r\n <ul>\r\n <li class=\"qa-heading\">\r\n 4. Facade, Digital elements are intact?(Wire, Screen)\r\n </li>\r\n <div class=\"Partially text-danger my-3\">Partially Agreed</div>\r\n <div class=\"task-remarks my-3\">Remarks : Wire Hanging</div>\r\n <div class=\"text-end mt-5\">\r\n <button type=\"button\" (click)=\"taskCreate()\"\r\n class=\"btn btn-light-primary1 btn-outline-primary mx-2 rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.6693 1.66675H5.0026C4.56058 1.66675 4.13665 1.84234 3.82409 2.1549C3.51153 2.46746 3.33594 2.89139 3.33594 3.33341V16.6667C3.33594 17.1088 3.51153 17.5327 3.82409 17.8453C4.13665 18.1578 4.56058 18.3334 5.0026 18.3334H15.0026C15.4446 18.3334 15.8686 18.1578 16.1811 17.8453C16.4937 17.5327 16.6693 17.1088 16.6693 16.6667V6.66675M11.6693 1.66675L16.6693 6.66675M11.6693 1.66675V6.66675H16.6693M10.0026 15.0001V10.0001M7.5026 12.5001H12.5026\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Task</span> </button>\r\n </div>\r\n </ul>\r\n </div>\r\n \r\n <div class=\"qa-bodrer my-3\">\r\n <ul>\r\n <li class=\"qa-heading\">\r\n 5. Facade, Digital elements are intact?(Wire, Screen)\r\n </li>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <div class=\"title-ref my-3\">Reference Image</div>\r\n <img class=\"img-logo\" src=\"assets/tango/Images/unsplash_checklist.svg\" alt=\"\">\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"title-ref my-3\">Uploaded Image</div>\r\n <img class=\"img-logo\" src=\"assets/tango/Images/unsplash_checklist.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n <div class=\"text-end mt-5\">\r\n <button type=\"button\" (click)=\"taskCreate()\"\r\n class=\"btn btn-light-primary1 btn-outline-primary mx-2 rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.6693 1.66675H5.0026C4.56058 1.66675 4.13665 1.84234 3.82409 2.1549C3.51153 2.46746 3.33594 2.89139 3.33594 3.33341V16.6667C3.33594 17.1088 3.51153 17.5327 3.82409 17.8453C4.13665 18.1578 4.56058 18.3334 5.0026 18.3334H15.0026C15.4446 18.3334 15.8686 18.1578 16.1811 17.8453C16.4937 17.5327 16.6693 17.1088 16.6693 16.6667V6.66675M11.6693 1.66675L16.6693 6.66675M11.6693 1.66675V6.66675H16.6693M10.0026 15.0001V10.0001M7.5026 12.5001H12.5026\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Task</span> </button>\r\n </div>\r\n </ul>\r\n </div> -->\r\n\r\n\r\n </div>\r\n </div>\r\n </section> \r\n </div>\r\n <div class=\"row px-10 my-5\" *ngIf=\"select ==='mobileusage'\">\r\n <div class=\"qa-bodrer my-3\">\r\n <ul>\r\n <li class=\"qa-heading\">\r\n LKST001\r\n </li>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 my-2\">\r\n\r\n <img class=\"w-100 h-450px\" src=\"assets/tango/Images/unsplash_checklist.svg\" alt=\"\">\r\n </div>\r\n\r\n </div>\r\n\r\n </ul>\r\n </div>\r\n <div class=\"container my-4\">\r\n <lib-pagination-v2 [totalItems]=\"totalItems\" [itemsPerPage]=\"itemsPerPage\"\r\n [currentPage]=\"currentPage\" (pageChanged)=\"onPageChange($event)\">\r\n </lib-pagination-v2>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row px-10 my-5\" *ngIf=\"select ==='eyetest'\">\r\n <div class=\"qa-bodrer my-3\">\r\n <ul>\r\n <li class=\"qa-heading\">\r\n LKST001\r\n </li>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n\r\n <video controls autoplay class=\"recap-img p-3\"\r\n src=\"https://tangoeye.ai/wp-content/uploads/videos/tango-main-video.mp4\">\r\n </video>\r\n </div>\r\n\r\n </div>\r\n\r\n </ul>\r\n </div>\r\n\r\n <div class=\"container my-4\">\r\n\r\n <lib-pagination-v2 [totalItems]=\"totalItems\" [itemsPerPage]=\"itemsPerPage\"\r\n [currentPage]=\"currentPage\" (pageChanged)=\"onPageChange($event)\">\r\n </lib-pagination-v2>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>", styles: [".gallery-card{padding:24px;border-radius:12px;background:#fff}.gallery-card .header{color:#101828;font-size:18px;font-weight:500;line-height:28px}::ng-deep .applyBtn{display:none!important}:host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.show-ranges.shown{top:65px!important}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;right:-475px!important;left:unset!important;height:400px!important}:host::ng-deep .md-drppicker .btn{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;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}.btn-primary{line-height:18px!important}.checkbox-label{color:#344054;font-size:14px;font-weight:500;line-height:20px;cursor:pointer}.checklist-left .checklist-title{overflow:hidden;color:var(--Black, #101828)!important;text-overflow:ellipsis;font-size:18px!important;font-weight:500;line-height:28px}.checklist-left .checklist-text{overflow:hidden;color:var(--Black, #101828)!important;text-overflow:ellipsis;font-size:12px!important;font-weight:400!important;line-height:18px}.section{display:inline-block;width:600px;white-space:nowrap;outline:none!important;border:none!important;box-shadow:none!important;overflow:hidden!important;text-overflow:ellipsis!important;color:var(--Black, #101828)!important;font-size:16px!important;font-weight:500!important}.card hr{width:-webkit-fill-available}.editablecontent{color:var(--Gray-700, #344054)!important;font-size:16px!important;font-weight:400!important;line-height:24px}.rotate{transform:rotate(180deg);transition:1s}.question-left{color:var(--Gray-700, #344054)!important;font-size:16px;font-weight:400;line-height:24px}.view-all{padding:12px!important;border-radius:6px!important;background:var(--Primary-50, #EAF8FF)!important;color:var(--Primary-500, #33B5FF)!important;font-size:16px!important;font-weight:600!important;line-height:24px;text-decoration-line:underline!important}input[type=checkbox]{width:18px!important;height:18px!important;margin:0;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-300, #D0D5DD);box-shadow:none;font-size:.8em;text-align:center;line-height:1em;background:#fff}input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00A3FF);background-color:var(--primary-50, #EAF8FF)}input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.5em;padding-left:0!important;padding-top:12px;padding-right:6px}.uni-title{color:#000!important;font-size:18px!important;font-weight:600!important;line-height:28px}.uni-subtitle{color:#000!important;font-size:18px!important;font-weight:400!important;line-height:28px}.qa-heading{color:var(--Black, #101828)!important;font-size:18px!important;font-weight:700!important;line-height:28px;list-style:none}.qa-bodrer{padding:16px!important;border-radius:8px!important;border:1px solid var(--Gray-200, #EAECF0)!important;background:var(--text-primary, #FFF)!important;box-shadow:0 1px 3px #1018281a,0 1px 2px #1018280f!important}.title-ref{color:var(--Gray-900, #101828)!important;font-size:16px!important;font-weight:400!important;line-height:24px}.btn-outline-primary{border-radius:8px!important;border:1px solid var(--Primary-500, #33B5FF)!important;background:var(--Primary-50, #EAF8FF)!important;box-shadow:0 1px 2px #1018280d!important;padding:calc(.7rem + 0px) calc(1.5rem + 1px)!important}.Partially{color:#000;font-size:18px!important;font-style:italic!important;font-weight:500;line-height:28px}.task-remarks{color:#000!important;font-size:18px!important;font-weight:400!important;line-height:28px}.backButtonright{border-radius:1000px!important;background:var(--text-primary, #FFF)!important;padding:10px!important;box-shadow:0 12px 16px -4px #10182814,0 4px 6px -2px #10182808!important;box-shadow:0 8.727px 11.636px -2.909px #10182814,0 2.909px 4.364px -1.455px #10182808!important;position:absolute;top:30px;right:-10px;z-index:0}img.img-logo{width:100%;height:250px!important}.recap-img{width:100%;height:400px;object-fit:cover!important}.img-src{width:30%!important;height:20%!important}\n"] }]
|
|
279
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.GlobalStateService }, { type: i3.TraxService }, { type: i0.ChangeDetectorRef }] });
|
|
280
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2dhbGxlcnkvZ2FsbGVyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2dhbGxlcnkvZ2FsbGVyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFaEYsT0FBTyxLQUFnQixNQUFNLE9BQU8sQ0FBQztBQUNyQyxPQUFPLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQztBQUtuQyxPQUFPLEVBQUUsT0FBTyxFQUE4QyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7O0FBSnRGLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFXbEIsTUFBTSxPQUFPLGdCQUFnQjtJQXdDUDtJQUF5QjtJQUFnQztJQUFrQztJQXZDL0csS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNiLGlCQUFpQixHQUFRLEVBQUUsQ0FBQztJQUM1QixZQUFZLEdBQUcsQ0FBQyxDQUFjLEVBQUUsRUFBRTtRQUNoQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JDLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUM5QyxDQUFDLENBQUE7SUFDRCxXQUFXLENBQVc7SUFDdEIsSUFBSSxHQUFRLENBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7UUFDckQsK0JBQStCO0tBQ2hDLENBQUE7SUFDRCxVQUFVLEdBQVEsQ0FBQyxFQUFFLGtC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QUFJLENBQUM7SUFDNUIsT0FBTztRQUNMLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBWTtRQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDOUQsTUFBTSxRQUFRLEdBQUcsVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDaEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0QsQ0FBQzt3R0F0UlUsZ0JBQWdCOzRGQUFoQixnQkFBZ0IsbURDZjdCLHVtb0NBdWdCTTs7NEZEeGZPLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IGRheWpzLCB7IERheWpzIH0gZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yyc7XHJcbmRheWpzLmV4dGVuZCh1dGMpO1xyXG5pbXBvcnQgeyBUaW1lUGVyaW9kIH0gZnJvbSAnbmd4LWRhdGVyYW5nZXBpY2tlci1tYXRlcmlhbC9kYXRlcmFuZ2VwaWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7IFRyYXhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJheC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZ2FsbGVyeScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dhbGxlcnkuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9nYWxsZXJ5LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgR2FsbGVyeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBkYXlqcyA9IGRheWpzXHJcbiAgc2VsZWN0ZWREYXRlUmFuZ2U6IGFueSA9IHt9O1xyXG4gIGlzQ3VzdG9tRGF0ZSA9IChtOiBkYXlqcy5EYXlqcykgPT4ge1xyXG4gICAgY29uc3QgaXNWYWxpZERhdGUgPSBtID4gdGhpcy5kYXlqcygpO1xyXG4gICAgcmV0dXJuIGlzVmFsaWREYXRlID8gJ2ludmFsaWQtZGF0ZScgOiBmYWxzZTtcclxuICB9XHJcbiAgZ2FsbGVyeUZvcm06IEZvcm1Hcm91cFxyXG4gIHR5cGU6IGFueSA9IFt7IHZhbHVlOiAnY2hlY2tsaXN0JywgbGFiZWw6ICdDaGVja2xpc3QnIH0sXHJcbiAgICAvLyB7dmFsdWU6J3Rhc2snLCBsYWJlbDonVGFzayd9XHJcbiAgXVxyXG4gIGNoZWNrbGlzdHM6IGFueSA9IFt7IHNvdXJjZUNoZWNrTGlzdF9pZDogJ3N0b3Jlb3BlbmFuZGNsb3NlJywgY2hlY2tMaXN0TmFtZTogJ1N0b3JlIG9wZW4gYW5kIGNsb3NlJyB9LFxyXG4gIHsgc291cmNlQ2hlY2tMaXN0X2lkOiAnbW9iaWxldXNhZ2VkZXRlY3Rpb24nLCBjaGVja0xpc3ROYW1lOiAnTW9iaWxlIHVzYWdlIGRldGVjdGlvbicgfSxcclxuICB7IHNvdXJjZUNoZWNrTGlzdF9pZDogJ2V5ZXRlc3QnLCBjaGVja0xpc3ROYW1lOiAnRXllIFRlc3QnIH1dXHJcbiAgYW5zd2VyVHlwZSA9IFtcclxuICAgIHsgbGFiZWw6ICdBbGwgQW5zd2VyIFR5cGUnLCB2YWx1ZTogJ2FsbCcgfSxcclxuICAgIHsgbGFiZWw6ICdEZXNjcmlwdGl2ZSBBbnN3ZXInLCB2YWx1ZTogJ2Rlc2NyaXB0aXZlJyB9LFxyXG4gICAgeyBsYWJlbDogJ0EvQiBRdWVzdGlvbicsIHZhbHVlOiAneWVzL25vJyB9LFxyXG4gICAgeyBsYWJlbDogJ011bHRpcGxlIENob2ljZSBRdWVzdGlvbiAtIFNpbmdsZSBBbnN3ZXInLCB2YWx1ZTogJ211bHRpcGxlY2hvaWNlc2luZ2xlJyB9LFxyXG4gICAgeyBsYWJlbDogJ011bHRpcGxlIENob2ljZSBRdWVzdGlvbiAtIE11bHRpcGxlIEFuc3dlcicsIHZhbHVlOiAnbXVsdGlwbGVjaG9pY2VtdWx0aXBsZScgfSxcclxuICAgIHsgbGFiZWw6ICdDYXB0dXJlIEltYWdlIGFzIGFuc3dlcicsIHZhbHVlOiAnaW1hZ2UnIH0sXHJcbiAgICB7IGxhYmVsOiAnQ2FwdHVyZSB2aWRlbyBhcyBhbnN3ZXInLCB2YWx1ZTogJ3ZpZGVvJyB9LFxyXG4gICAgeyBsYWJlbDogJ0NhcHR1cmUgTXVsdGlwbGUgSW1hZ2UnLCB2YWx1ZTogJ211bHRpcGxlSW1hZ2UnIH0sXHJcbiAgICB7IGxhYmVsOiAnRGF0ZSBBcyBBbnN3ZXInLCB2YWx1ZTogJ2RhdGUnIH1cclxuICBdXHJcbiAgaGVhZGVyRmlsdGVyczogYW55O1xyXG4gIHN0b3JlTGlzdDogYW55W10gPSBbXVxyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGNoZWNrbGlzdERhdGE6IGFueSA9IHt9XHJcbiAgc3RvcmVzOiBhbnk7XHJcbiAgaXRlbXM6IGFueTtcclxuICBwYWdpbmF0ZWRJdGVtczogYW55O1xyXG4gIGl0ZW1zUGVyUGFnZSA9IDEwO1xyXG4gIGN1cnJlbnRQYWdlID0gMTtcclxuICB0b3RhbEl0ZW1zID0gMDtcclxuICB2aWV3Q2hlY2tsaXN0c0RhdGE6IGFueTtcclxuICBsb2FkaW5nOmJvb2xlYW4gPXRydWU7XHJcbiAgbm9EYXRhOmJvb2xlYW4gPWZhbHNlO1xyXG4gIHZpZXdsb2FkaW5nOmJvb2xlYW4gPXRydWU7XHJcbiAgdmlld25vRGF0YTpib29sZWFuID1mYWxzZTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLCBwcml2YXRlIHRyYXhTZXJ2aWNlOiBUcmF4U2VydmljZSwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuXHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xyXG4gICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhPy5jbGllbnQpIHtcclxuICAgICAgICAgIHRoaXMuaGVhZGVyRmlsdGVycyA9IGRhdGE7XHJcblxyXG4gICAgICAgICAgdGhpcy5zdG9yZXMgPSB0aGlzLmhlYWRlckZpbHRlcnMuc3RvcmVzXHJcbiAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnc3RvcmVMaXN0Jyk/LnNldFZhbHVlKHRoaXMuc3RvcmVzKVxyXG5cclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UuZW5kRGF0ZSA9IHRoaXMuZGF5anModGhpcy5oZWFkZXJGaWx0ZXJzPy5kYXRlPy5lbmREYXRlKS51dGMoKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpO1xyXG4gICAgICAgICAgdGhpcy5nZXRBbGxTdG9yZXMoKTtcclxuICAgICAgICAgIHRoaXMuZ2V0QWxsQ2hlY2tMaXN0cygpXHJcbiAgICAgICAgICB0aGlzLmdldENoZWNrbGlzdFFBKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICB9XHJcbiAgb25TdGFydERhdGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlKS5pc1ZhbGlkKCkpIHtcclxuICAgICAgdGhpcy5pc0N1c3RvbURhdGUgPSAobTogZGF5anMuRGF5anMpID0+IHtcclxuICAgICAgICBjb25zdCBpc1ZhbGlkRGF0ZSA9XHJcbiAgICAgICAgICBtID4gdGhpcy5kYXlqcygpIHx8IG0gPiB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZS5hZGQoOTAsIFwiZGF5c1wiKSk7XHJcbiAgICAgICAgcmV0dXJuIGlzVmFsaWREYXRlID8gXCJpbnZhbGlkLWRhdGVcIiA6IGZhbHNlO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuICBjcmVhdGVGb3JtKCkge1xyXG5cclxuICAgIHRoaXMuZ2FsbGVyeUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgZnJvbURhdGU6IFt0aGlzLmRheWpzKCkuc3VidHJhY3QoMSwgJ2RheScpLmZvcm1hdCgnWVlZWS1NTS1ERCcpXSxcclxuICAgICAgdG9EYXRlOiBbdGhpcy5kYXlqcygpLmZvcm1hdCgnWVlZWS1NTS1ERCcpXSxcclxuICAgICAgdHlwZTogWydjaGVja2xpc3QnXSxcclxuICAgICAgY2hlY2tsaXN0VHlwZTogWydzdG9yZW9wZW5hbmRjbG9zZSddLFxyXG4gICAgICBzdG9yZUxpc3Q6IFt0aGlzLnN0b3Jlc10sXHJcbiAgICAgIGFuc3dlclR5cGU6IFsnYWxsJ10sXHJcbiAgICAgIHZpZXdGbGFnZ2VkT25seTogW2ZhbHNlXVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGRhdGVjaGFuZ2UoZXZlbnQ6IFRpbWVQZXJpb2QpIHtcclxuICAgIGlmICghZXZlbnQuZW5kRGF0ZSB8fCAhZXZlbnQuc3RhcnREYXRlKSB7XHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdmcm9tRGF0ZScpPy5zZXRWYWx1ZShldmVudC5zdGFydERhdGUuZm9ybWF0KCdZWVlZLU1NLUREJykpXHJcbiAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgndG9EYXRlJyk/LnNldFZhbHVlKGV2ZW50LmVuZERhdGUuZm9ybWF0KCdZWVlZLU1NLUREJykpXHJcbiAgfVxyXG5cclxuICBnZXRBbGxTdG9yZXMoKSB7XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmdldFN0b3Jlcyh7IGNsaWVudElkOiB0aGlzLmhlYWRlckZpbHRlcnMuY2xpZW50IH0pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLnN0b3JlTGlzdCA9IHJlcy5kYXRhLnJlc3VsdDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zdG9yZUxpc3QgPSBbXTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsQ2hlY2tMaXN0cygpIHtcclxuICAgIGxldCBzdG9yZXMgPSAgdGhpcy5zdG9yZXMubWFwKChkYXRhOmFueSk9PmRhdGEuc3RvcmVJZClcclxuICAgIGNvbnN0IHBheWxvYWQgPSB7XHJcbiAgICAgIGZyb21EYXRlOiB0aGlzLmdhbGxlcnlGb3JtLmdldCgnZnJvbURhdGUnKT8udmFsdWUsXHJcbiAgICAgIHRvRGF0ZTogdGhpcy5nYWxsZXJ5Rm9ybS5nZXQoJ3RvRGF0ZScpPy52YWx1ZSxcclxuICAgICAgc3RvcmVJZDpzdG9yZXMsXHJcbiAgICAgICAgXCJjbGllbnRJZFwiOiBcIjExXCJcclxuICAgIH1cclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0Q2hlY2tsaXN0cyhwYXlsb2FkKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5jaGVja2xpc3RzID0gWy4uLnRoaXMuY2hlY2tsaXN0cywuLi5yZXMuZGF0YS5jaGVja2xpc3REYXRhXTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuY2hlY2tsaXN0cylcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlGb3JtLmdldCgnY2hlY2tsaXN0VHlwZScpPy5zZXRWYWx1ZSh0aGlzLmNoZWNrbGlzdHNbMF0/LmNoZWNrTGlzdE5hbWUpXHJcbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jaGVja2xpc3RzID0gW107XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICB0aGlzLmNoZWNrbGlzdHMgPSBbXTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25TdG9yZUNoZWNrbGlzdFR5cGUoZGF0YTphbnkpe1xyXG4gICAgY29uc29sZS5sb2coZGF0YSlcclxuXHJcbiAgfVxyXG5cclxuICBvblN0b3JlU2VsZWN0KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuZ2FsbGVyeUZvcm0uZ2V0KCdzdG9yZUxpc3QnKT8uc2V0VmFsdWUoZXZlbnQpXHJcblxyXG4gIH1cclxuICBzZWxlY3QgPSAnb3BlbmFuZGNsb3NlJ1xyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgaWYgKHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tsaXN0VHlwZSA9PT0gJ3N0b3Jlb3BlbmFuZGNsb3NlJykge1xyXG4gICAgICB0aGlzLnNlbGVjdCA9ICdvcGVuYW5kY2xvc2UnXHJcblxyXG4gICAgfSBlbHNlIGlmICh0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLmNoZWNrbGlzdFR5cGUgPT09ICdtb2JpbGV1c2FnZWRldGVjdGlvbicpIHtcclxuICAgICAgdGhpcy5zZWxlY3QgPSAnbW9iaWxldXNhZ2UnO1xyXG4gICAgICB0aGlzLnBhZ2luYXRlSXRlbXMoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ID0gdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS50eXBlPT09J2NoZWNrbGlzdCc/XCJjdXN0b21cIjpcIlwiO1xyXG4gICAgICAvLyB0aGlzLnBhZ2luYXRlSXRlbXMoKTtcclxuICAgIH1cclxuICAgICAgY29uc29sZS5sb2codGhpcy5zZWxlY3QpXHJcbiAgICB0aGlzLmdldENoZWNrbGlzdFFBKCk7XHJcbiAgfVxyXG5cclxuICBzaG93OiBudW1iZXIgPSAwO1xyXG4gIGFjY29yZGlhbihpbmRleDogYW55KSB7XHJcbiAgICBpZiAodGhpcy5zaG93ID09IGluZGV4KSB7XHJcbiAgICAgIHRoaXMuc2hvdyA9IC0xO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zaG93ID0gaW5kZXg7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuICAvLyBBUEkgTnVtYmVyOiAxIChDaGVja2xpc3QgUXVlc3Rpb25zKVxyXG5cclxuICBnZXRDaGVja2xpc3RRQSgpIHtcclxuICAgIHRoaXMubG9hZGluZyA9dHJ1ZTtcclxuICAgIHRoaXMubm9EYXRhID1mYWxzZVxyXG4gICAgdGhpcy52aWV3bG9hZGluZyA9dHJ1ZTtcclxuICAgIHRoaXMudmlld25vRGF0YSA9ZmFsc2VcclxuICAgIGxldCBzdG9yZXMgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnN0b3JlTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS5zdG9yZUlkKVxyXG4gICAgY29uc29sZS5sb2codGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja2xpc3RUeXBlKVxyXG4gICAgbGV0IG9iaiA9IHtcclxuICAgICAgXCJDaGVja2xpc3REYXRlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZnJvbURhdGUsXHJcbiAgICAgIFwiQ2hlY2tsaXN0VHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGU9PT0nY2hlY2tsaXN0Jz9cImN1c3RvbVwiOlwiXCIsIC8vIFtcImNoZWNrbGlzdFwiLCBcInRhc2tcIl1cclxuICAgICAgXCJjaGVja2xpc3ROYW1lXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tsaXN0VHlwZSxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJhbnN3ZXJUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuYW5zd2VyVHlwZSwgLy9bXCJkZXNjcmlwdGl2ZVwiLFwieWVzL25vXCIsXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLFwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiLFwiaW1hZ2VcIixcInZpZGVvXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsXCJtdWx0aXBsZUltYWdlXCJdXHJcbiAgICAgIFwidmlld0ZsYWdcIjogdGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS52aWV3RmxhZ2dlZE9ubHkgLy9bdHJ1ZSwgZmFsc2VdXHJcbiAgICB9XHJcblxyXG5cclxuICAgIHRoaXMudHJheFNlcnZpY2UuZ2V0Y2hlY2tsaXN0KG9iaik/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyYmcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5jaGVja2xpc3REYXRhID0gcmVzPy5kYXRhO1xyXG4gICAgICAgICAgY29uc29sZS5sb2codGhpcy5jaGVja2xpc3REYXRhLmNoZWNrbGlzdFF1ZXN0aW9uc1swXSlcclxuICAgICAgICAgIHRoaXMudmlld2xvYWRpbmcgPWZhbHNlO1xyXG4gICAgICAgICAgdGhpcy52aWV3bm9EYXRhID1mYWxzZTtcclxuICAgICAgICAgIHRoaXMudmlld0NoZWNrbGlzdHMoXCJhbGxcIixcImFsbFwiKVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5jaGVja2xpc3REYXRhID0gW107XHJcbiAgICAgICAgICB0aGlzLnZpZXdDaGVja2xpc3RzRGF0YSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID1mYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID10cnVlO1xyXG4gICAgICAgICAgdGhpcy52aWV3bG9hZGluZyA9ZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnZpZXdub0RhdGE9dHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG5cclxuICAgIFxyXG4gIH1cclxuICB2aWV3Q2hlY2tsaXN0cyhzZWN0aW9uTmFtZTphbnkscXVlc3Rpb25OYW1lOmFueSl7XHJcbiAgICB0aGlzLmxvYWRpbmcgPXRydWU7XHJcbiAgICB0aGlzLm5vRGF0YSA9ZmFsc2VcclxuICAgIGNvbnNvbGUubG9nKHNlY3Rpb25OYW1lLHF1ZXN0aW9uTmFtZSlcclxuICAgIGxldCBzdG9yZXMgPSB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnN0b3JlTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4gZGF0YS5zdG9yZUlkKVxyXG4gICAgY29uc29sZS5sb2codGhpcy5nYWxsZXJ5Rm9ybS52YWx1ZS5jaGVja2xpc3RUeXBlKVxyXG4gICAgbGV0IG9iaiA9IHtcclxuICAgICAgXCJDaGVja2xpc3REYXRlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuZnJvbURhdGUsXHJcbiAgICAgIFwiQ2hlY2tsaXN0VHlwZVwiOiB0aGlzLmdhbGxlcnlGb3JtLnZhbHVlLnR5cGU9PT0nY2hlY2tsaXN0Jz9cImN1c3RvbVwiOlwiXCIsIC8vIFtcImNoZWNrbGlzdFwiLCBcInRhc2tcIl1cclxuICAgICAgXCJjaGVja2xpc3ROYW1lXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tsaXN0VHlwZSxcclxuICAgICAgXCJzdG9yZUlkXCI6IHN0b3JlcyxcclxuICAgICAgXCJhbnN3ZXJUeXBlXCI6IHRoaXMuZ2FsbGVyeUZvcm0udmFsdWUuYW5zd2VyVHlwZSwgLy9bXCJkZXNjcmlwdGl2ZVwiLFwieWVzL25vXCIsXCJtdWx0aXBsZWNob2ljZXNpbmdsZVwiLFwibXVsdGlwbGVjaG9pY2VtdWx0aXBsZVwiLFwiaW1hZ2VcIixcInZpZGVvXCIsXCJkZXNjcmlwdGl2ZUltYWdlXCIsXCJtdWx0aXBsZUltYWdlXCJdXHJcbiAgICAgIFwic2VjdGlvbk5hbWVcIjogc2VjdGlvbk5hbWUsXHJcbiAgICAgIFwicW5hbWVcIjpxdWVzdGlvbk5hbWVcclxuICAgIH1cclxuXHJcblxyXG4gICAgdGhpcy50cmF4U2VydmljZS52aWV3Q2hlY2tsaXN0cyhvYmopPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMmJnJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICB0aGlzLnZpZXdDaGVja2xpc3RzRGF0YSAgPSByZXMuZGF0YTtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPWZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9EYXRhID1mYWxzZVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy52aWV3Q2hlY2tsaXN0c0RhdGEgPSBbXVxyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID1mYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID10cnVlXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBleHBvcnRYTFNYKCkge1xyXG5cclxuICB9XHJcblxyXG4gIHRhc2tDcmVhdGUoKSB7IH1cclxuXHJcbiAgcmVkbygpIHsgfVxyXG5cclxuICBzaG93c2lkZW5hdjogYm9vbGVhbiA9IHRydWU7XHJcbiAgc2lkZW5hdigpIHtcclxuICAgIHRoaXMuc2hvd3NpZGVuYXYgPSAhdGhpcy5zaG93c2lkZW5hdjtcclxuICB9XHJcblxyXG4gIG9uUGFnZUNoYW5nZShwYWdlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSBwYWdlO1xyXG4gICAgdGhpcy51cGRhdGVQYWdpbmF0ZWRJdGVtcygpO1xyXG4gIH1cclxuXHJcbiAgcGFnaW5hdGVJdGVtcygpOiB2b2lkIHtcclxuICAgIHRoaXMuaXRlbXMgPSAxO1xyXG4gICAgdGhpcy50b3RhbEl0ZW1zID0gdGhpcy5pdGVtcztcclxuICAgIHRoaXMudXBkYXRlUGFnaW5hdGVkSXRlbXMoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVBhZ2luYXRlZEl0ZW1zKCkge1xyXG4gICAgY29uc3Qgc3RhcnRJbmRleCA9ICh0aGlzLmN1cnJlbnRQYWdlIC0gMSkgKiB0aGlzLml0ZW1zUGVyUGFnZTtcclxuICAgIGNvbnN0IGVuZEluZGV4ID0gc3RhcnRJbmRleCArIHRoaXMuaXRlbXNQZXJQYWdlO1xyXG4gICAgdGhpcy5wYWdpbmF0ZWRJdGVtcyA9IHRoaXMuaXRlbXMuc2xpY2Uoc3RhcnRJbmRleCwgZW5kSW5kZXgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZ2FsbGVyeS1jYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyIG1iLTRcIj5HYWxsZXJ5PC9kaXY+XHJcblxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJnYWxsZXJ5Rm9ybVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJ0b3A6IDIwJTtcIiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTRcIiBzdHlsZT1cIm1pbi13aWR0aDogMTAwcHggIWltcG9ydGFudDtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWQgW3NpbmdsZURhdGVQaWNrZXJdPVwidHJ1ZVwiIFtkcm9wc109XCInZG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcGVuc109XCIncmlnaHQnXCIgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIiBba2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0NhbmNlbF09XCJmYWxzZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRlUmFuZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIiAoc3RhcnREYXRlQ2hhbmdlZCk9XCJvblN0YXJ0RGF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNDdXN0b21EYXRlXT1cImlzQ3VzdG9tRGF0ZVwiIFthdXRvQXBwbHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvY2FsZV09XCJ7IGZvcm1hdDogJ0RELU1NLVlZWVknLCBmaXJzdERheTogMSwgbW9udGhOYW1lczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10gfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVzVXBkYXRlZCk9XCJkYXRlY2hhbmdlKCRldmVudClcIiBuYW1lPVwiZGF0ZXJhbmdlXCIgW3JlYWRvbmx5XT1cInRydWVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgbWItNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGliLXJlYWN0aXZlLXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJ0eXBlXCIgW2lkRmllbGRdPVwiJ3ZhbHVlJ1wiIFtuYW1lRmllbGRdPVwiJ2xhYmVsJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJ0eXBlXCI+PC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBtYi00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItcmVhY3RpdmUtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImNoZWNrbGlzdFR5cGVcIiBbaWRGaWVsZF09XCInY2hlY2tMaXN0TmFtZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVGaWVsZF09XCInY2hlY2tMaXN0TmFtZSdcIiBbZGF0YV09XCJjaGVja2xpc3RzXCI+PC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBtYi00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItc2VsZWN0IFtpdGVtc109XCJzdG9yZUxpc3RcIiBbZGlzYWJsZWRdPVwiZmFsc2VcIiBbbXVsdGldPVwidHJ1ZVwiIFtzZWFyY2hGaWVsZF09XCInc3RvcmVOYW1lJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRGaWVsZF09XCInc3RvcmVJZCdcIiAoc2VsZWN0ZWQpPVwib25TdG9yZVNlbGVjdCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZFZhbHVlc109XCJnYWxsZXJ5Rm9ybS5nZXQoJ3N0b3JlTGlzdCcpPy52YWx1ZVwiPjwvbGliLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTIgbWItNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGliLXJlYWN0aXZlLXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJhbnN3ZXJUeXBlXCIgW2lkRmllbGRdPVwiJ3ZhbHVlJ1wiIFtuYW1lRmllbGRdPVwiJ2xhYmVsJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJhbnN3ZXJUeXBlXCI+PC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBtYi00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTEwMCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwidmlld0ZsYWdnZWRPbmx5XCIgY2hhbmdlIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXIgbXQtMSBtZS00XCIgaWQ9XCJ2aWV3RmxhZ2dlZE9ubHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY2hlY2tib3gtbGFiZWxcIiBmb3I9XCJ2aWV3RmxhZ2dlZE9ubHlcIj5WaWV3IGZsYWdnZWQgb25seTwvbGFiZWw+IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwib25TdWJtaXQoKVwiIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBweC00IFwiPjxzcGFuPkFwcGx5PC9zcGFuPjwvYT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvcm0+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwicm93IG15LTVcIj5cclxuICAgIDxkaXYgW25nQ2xhc3NdPVwic2hvd3NpZGVuYXYgPyAnY29sLW1kLTQnOidkLW5vbmUnXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgcG9zaXRpb24tcmVsYXRpdmUgaC0xMDBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwLTVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2xpc3QtbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2xpc3QtdGl0bGVcIj57e3RoaXMuZ2FsbGVyeUZvcm0udmFsdWUuY2hlY2tsaXN0VHlwZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrbGlzdC10ZXh0XCI+Tm93IHRoYXQgd2XigJl2ZSBjb3ZlcmVkIHRoZSBmdW5kYW1lbnRhbHMgb2Ygd2hhdCBhIHJldGFpbCBvcGVuaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2NlZHVyZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidmlld2xvYWRpbmdcIiBjbGFzcz1cInJvdyBsb2FkZXIgIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInZpZXdub0RhdGFcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1zcmMgdy0yNVwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTEuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+ICBcclxuICAgICAgICAgICAgICAgIDxzZWN0aW9uICpuZ0lmPVwiIXZpZXdub0RhdGEgJiYgIXZpZXdsb2FkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICBjbGFzcz1cInZpZXctYWxsIG15LTZcIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIiAoY2xpY2spPVwidmlld0NoZWNrbGlzdHMoJ2FsbCcsJ2FsbCcpXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgIFZpZXcgQWxsIEFuc3dlcnNcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm14LTJcIiAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBjaGVja2xpc3REYXRhLmNoZWNrbGlzdFF1ZXN0aW9uczsgbGV0IGk9aW5kZXg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtNFwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJ2aWV3Q2hlY2tsaXN0cyhzZWN0aW9uLnNlY3Rpb25OYW1lLCdhbGwnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtNCBmdy1ib2xkIHNlY3Rpb25cIj57e3NlY3Rpb24uc2VjdGlvbk5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aHIgY2xhc3M9XCJteC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKGNsaWNrKT1cImFjY29yZGlhbihpKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiBbbmdDbGFzc109XCJ7J3JvdGF0ZScgOiBzaG93ICE9PSBpfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNVwiIGhlaWdodD1cIjI1XCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgNy41TDEwIDEyLjVMMTUgNy41XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93PT09aVwiIGNsYXNzPVwicXVlc3Rpb24tbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNka0Ryb3BMaXN0IFtjZGtEcm9wTGlzdERhdGFdPVwic2VjdGlvbi5xdWVzdGlvbnNcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBxdWVzdGlvbiBvZiBzZWN0aW9uLnF1ZXN0aW9ucztsZXQgaj1pbmRleDtcIiBjbGFzcz1cIm15LTIgcS1idG5cIiBjZGtEcmFnPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdGFibGVjb250ZW50XCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCIgKGNsaWNrKT1cInZpZXdDaGVja2xpc3RzKHNlY3Rpb24uc2VjdGlvbk5hbWUscXVlc3Rpb24/LnFuYW1lKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3F1ZXN0aW9uLnFub319IC4ge3txdWVzdGlvbi5xbmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC01XCIgKm5nSWY9XCJzZWxlY3QgPT09J21vYmlsZXVzYWdlJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrbGlzdC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrbGlzdC10aXRsZVwiPk1vYmlsZSBVc2FnZSBEZXRlY3Rpb248L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tsaXN0LXRleHRcIj5Ob3cgdGhhdCB3ZeKAmXZlIGNvdmVyZWQgdGhlIGZ1bmRhbWVudGFscyBvZiB3aGF0IGEgcmV0YWlsIG9wZW5pbmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2VkdXJlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2aWV3LWFsbCBteS02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQWxsIERldGVjdGlvbnNcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC01XCIgKm5nSWY9XCJzZWxlY3QgPT09J2V5ZXRlc3QnXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tsaXN0LWxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tsaXN0LXRpdGxlXCI+RXllIFRlc3Q8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tsaXN0LXRleHRcIj5Ob3cgdGhhdCB3ZeKAmXZlIGNvdmVyZWQgdGhlIGZ1bmRhbWVudGFscyBvZiB3aGF0IGEgcmV0YWlsIG9wZW5pbmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2VkdXJlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2aWV3LWFsbCBteS02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQWxsIERldGVjdGlvbnNcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93c2lkZW5hdlwiIChjbGljayk9XCJzaWRlbmF2KClcIiBjbGFzcz1cImJhY2tCdXR0b25yaWdodCB0ZXh0LWNlbnRlciBwdC0xIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTExIDE3TDYgMTJMMTEgN00xOCAxN0wxMyAxMkwxOCA3XCIgc3Ryb2tlPVwiIzEwMTgyOFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInNob3dzaWRlbmF2ID8gJ2NvbC1tZC04JzonY29sLW1kLTEyJ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIHBvc2l0aW9uLXJlbGF0aXZlIGgtMTAwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhc2hvd3NpZGVuYXZcIiAoY2xpY2spPVwic2lkZW5hdigpXCIgY2xhc3M9XCJiYWNrQnV0dG9ubGVmdCBtdC0xMCBwdC0xIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkuNzI3MTQgMTIuNjM2NUwxMy4zNjM1IDkuMDAwMTNMOS43MjcxNCA1LjM2Mzc3TTQuNjM2MjMgMTIuNjM2NUw4LjI3MjU5IDkuMDAwMTNMNC42MzYyMyA1LjM2Mzc3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzEwMTgyOFwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIiAqbmdJZj1cInNlbGVjdCA9PT0nb3BlbmFuZGNsb3NlJyB8fCBzZWxlY3QgPT09J21vYmlsZXVzYWdlJyB8fCBzZWxlY3QgPT09J2V5ZXRlc3QnXCI+XHJcbiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9oMz5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIFN3aXRjaCB0b2dnbGUgLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiB0ZXh0LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiZXhwb3J0WExTWCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saWdodC1wcmltYXJ5MSBteC0yIHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTcuNSAxMi41VjE1LjgzMzNDMTcuNSAxNi4yNzU0IDE3LjMyNDQgMTYuNjk5MyAxNy4wMTE4IDE3LjAxMThDMTYuNjk5MyAxNy4zMjQ0IDE2LjI3NTQgMTcuNSAxNS44MzMzIDE3LjVINC4xNjY2N0MzLjcyNDY0IDE3LjUgMy4zMDA3MiAxNy4zMjQ0IDIuOTg4MTYgMTcuMDExOEMyLjY3NTU5IDE2LjY5OTMgMi41IDE2LjI3NTQgMi41IDE1LjgzMzNWMTIuNU0xNC4xNjY3IDYuNjY2NjdMMTAgMi41TTEwIDIuNUw1LjgzMzMzIDYuNjY2NjdNMTAgMi41VjEyLjVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48c3BhbiBjbGFzcz1cIm1zLTJcIj5FeHBvcnQ8L3NwYW4+IDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRoaXMuc2VsZWN0PT09J2N1c3RvbSdcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cInJvdyBsb2FkZXIgIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub0RhdGFcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1zcmMgdy0yNVwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTEuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICBcclxuICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiAgKm5nSWY9XCIhbG9hZGluZyAmJiAhbm9EYXRhXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGNoZWNrbGlzdCBvZiB2aWV3Q2hlY2tsaXN0c0RhdGE/LmNoZWNrbGlzdEFuc3dlcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibXQtNSBtYi0zIHRleHQtY2VudGVyXCIgc3JjPVwiYXNzZXRzL3RhbmdvL0ltYWdlcy9jaGVja2xpc3QtbG9nby1pbWcuc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBweC0xMCBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGVcIj5TdG9yZSBOYW1lOjwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+e3tjaGVja2xpc3Q/LnN0b3JlUHJvZmlsZT8uc3RvcmVOYW1lfX0gfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NoZWNrbGlzdD8uc3RvcmVQcm9maWxlPy5zdGF0ZX19IHt7Y2hlY2tsaXN0Py5zdG9yZVByb2ZpbGU/LkNvdW50cnl9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+Q2hlY2tsaXN0IE5hbWU6PC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj57e2NoZWNrbGlzdD8uY2hlY2tsaXN0SW5mbz8uY2hlY2tsaXN0TmFtZX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+U3RhdGUgJiBDb3VudHJ5IDo8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInVuaS1zdWJ0aXRsZVwiPnt7Y2hlY2tsaXN0Py5zdG9yZVByb2ZpbGU/LnN0YXRlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Y2hlY2tsaXN0Py5zdG9yZVByb2ZpbGU/LkNvdW50cnl9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+RHVyYXRpb24gOjwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+IHt7Y2hlY2tsaXN0Py5jaGVja2xpc3RJbmZvPy5kdXJhdGlvbn19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJ1bmktdGl0bGVcIj5Oby4gb2YgUXVlc3Rpb25zIDo8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInVuaS1zdWJ0aXRsZVwiPnt7Y2hlY2tsaXN0Py5jaGVja2xpc3RJbmZvPy5ub29mUXVlc3Rpb25zfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPkRhdGUgOjwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidW5pLXN1YnRpdGxlXCI+IHt7Y2hlY2tsaXN0Py5jaGVja2xpc3RJbmZvPy5kYXRlfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInVuaS10aXRsZVwiPlN1Ym1pdHRlZCBCeSA6PC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj57e2NoZWNrbGlzdD8uY2hlY2tsaXN0SW5mbz8uc3VibWl0dGVkQnl9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwidW5pLXRpdGxlXCI+VGltZSA6PC9oMz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ1bmktc3VidGl0bGVcIj4ge3tjaGVja2xpc3Q/LmNoZWNrbGlzdEluZm8/LnRpbWV9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBweC0xMCBtdC01XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInFhLWJvZHJlciBteS0zXCIgKm5nRm9yPVwibGV0IHF1ZXN0aW9ubGlzdCBvZiBjaGVja2xpc3QucXVlc3Rpb25BbnN3ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBxdWVzdGlvbiBvZiBxdWVzdGlvbmxpc3QucXVlc3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInFhLWhlYWRpbmdcIj57e3F1ZXN0aW9uPy5xbm99fS4ge3txdWVzdGlvbj8ucW5hbWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlBhcnRpYWxseSBteS0zXCIgKm5nSWY9XCJxdWVzdGlvbj8uYW5zd2VyVHlwZT09PSdkZXNjcmlwdGl2ZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIHF1ZXN0aW9uLnVzZXJBbnN3ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3tpdGVtLmFuc3dlcn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlBhcnRpYWxseSBteS0zXCIgKm5nSWY9XCJxdWVzdGlvbj8uYW5zd2VyVHlwZT09PSd5ZXMvbm8nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbi51c2VyQW5zd2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7aXRlbS5hbnN3ZXJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0udmFsaWRhdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxpbWcgc3JjPVwie3tpdGVtfX1cIj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiUGFydGlhbGx5IG15LTNcIiAqbmdJZj1cInF1ZXN0aW9uPy5hbnN3ZXJUeXBlPT09J211bHRpcGxlY2hvaWNlc2luZ2xlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVlc3Rpb24udXNlckFuc3dlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2l0ZW0uYW5zd2VyfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cInF1ZXN0aW9uPy5hbnN3ZXJUeXBlPT09J2ltYWdlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIiAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2UhPScnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5SZWZlcmVuY2UgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctbG9nb1wiIHNyYz1cImh0dHBzOi8vZG1ybHRkNjVvemNxMC5jbG91ZGZyb250Lm5ldC97e3F1ZXN0aW9uLnF1ZXN0aW9uUmVmZXJlbmNlSW1hZ2V9fVwiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIqbmdGb3I9XCJsZXQgaXRlbSBvZiBxdWVzdGlvbi51c2VyQW5zd2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcmVmIG15LTNcIj5VcGxvYWRlZCBJbWFnZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1sb2dvXCIgc3JjPVwiaHR0cHM6Ly9kbXJsdGQ2NW96Y3EwLmNsb3VkZnJvbnQubmV0L3t7aXRlbS5hbnN3ZXJ9fVwiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJxdWVzdGlvbj8uYW5zd2VyVHlwZT09PSd2aWRlbydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlIT0nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+UmVmZXJlbmNlIEltYWdlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLWxvZ29cIiBzcmM9XCJodHRwczovL2Rtcmx0ZDY1b3pjcTAuY2xvdWRmcm9udC5uZXQve3txdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlfX1cIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVlc3Rpb24udXNlckFuc3dlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+VXBsb2FkZWQgVmlkZW88L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlkZW8gY29udHJvbHMgYXV0b3BsYXkgY2xhc3M9XCJyZWNhcC1pbWcgcC0zXCJzcmM9XCJodHRwczovL2Rtcmx0ZDY1b3pjcTAuY2xvdWRmcm9udC5uZXQve3tpdGVtLmFuc3dlcn19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92aWRlbz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwicXVlc3Rpb24/LmFuc3dlclR5cGU9PT0nbXVsdGlwbGVJbWFnZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCIgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlIT0nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+UmVmZXJlbmNlIEltYWdlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLWxvZ29cIiBzcmM9XCJodHRwczovL2Rtcmx0ZDY1b3pjcTAuY2xvdWRmcm9udC5uZXQve3txdWVzdGlvbi5xdWVzdGlvblJlZmVyZW5jZUltYWdlfX1cIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVlc3Rpb24udXNlckFuc3dlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJlZiBteS0zXCI+VXBsb2FkZWQgSW1hZ2U8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctbG9nb1wiIHNyYz1cImh0dHBzOi8vZG1ybHRkNjVvemNxMC5jbG91ZGZyb250Lm5ldC97e2l0ZW0uYW5zd2VyfX1cIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJ0ZXh0LWVuZCBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwicmVkbygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBidG4tZGVmYXVsdCBidG4tb3V0bGluZS1kZWZhdWx0IG14LTIgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8yOTUxXzkxNzYpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTkuMTY5MyAzLjMzMzMxVjguMzMzMzJNMTkuMTY5MyA4LjMzMzMySDE0LjE2OTNNMTkuMTY5MyA4LjMzMzMyTDE1LjMwMjYgNC42OTk5OEMxNC40MDcgMy44MDM5MSAxMy4yOTkgMy4xNDkzMiAxMi4wODE5IDIuNzk3MjlDMTAuODY0OSAyLjQ0NTI3IDkuNTc4NTMgMi40MDcyNyA4LjM0Mjg0IDIuNjg2ODZDNy4xMDcxNiAyLjk2NjQ1IDUuOTYyNDQgMy41NTQ1MSA1LjAxNTQ5IDQuMzk2MTZDNC4wNjg1NSA1LjIzNzgyIDMuMzUwMjQgNi4zMDU2NCAyLjkyNzYgNy40OTk5OE0wLjgzNTkzOCAxNi42NjY2VjExLjY2NjZNMC44MzU5MzggMTEuNjY2Nkg1LjgzNTk0TTAuODM1OTM4IDExLjY2NjZMNC43MDI2IDE1LjNDNS41OTgyMyAxNi4xOTYxIDYuNzA2MjUgMTYuODUwNiA3LjkyMzI4IDE3LjIwMjdDOS4xNDAzMSAxNy41NTQ3IDEwLjQyNjcgMTcuNTkyNyAxMS42NjI0IDE3LjMxMzFDMTIuODk4IDE3LjAzMzUgMTQuMDQyOCAxNi40NDU1IDE0Ljk4OTcgMTUuNjAzOEMxNS45MzY3IDE0Ljc2MjEgMTYuNjU1IDEzLjY5NDMgMTcuMDc3NiAxMi41XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzI5NTFfOTE3NlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PHNwYW4gY2xhc3M9XCJtcy0yXCI+UmVkbzwvc3Bhbj4gPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwidGFza0NyZWF0ZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGlnaHQtcHJpbWFyeTEgYnRuLW91dGxpbmUtcHJpbWFyeSBteC0yIHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTExLjY2OTMgMS42NjY3NUg1LjAwMjZDNC41NjA1OCAxLjY2Njc1IDQuMTM2NjUgMS44NDIzNCAzLjgyNDA5IDIuMTU0OUMzLjUxMTUzIDIuNDY3NDYgMy4zMzU5NCAyLjg5MTM5IDMuMzM1OTQgMy4zMzM0MVYxNi42NjY3QzMuMzM1OTQgMTcuMTA4OCAzLjUxMTUzIDE3LjUzMjcgMy44MjQwOSAxNy44NDUzQzQuMTM2NjUgMTguMTU3OCA0LjU2MDU4IDE4LjMzMzQgNS4wMDI2IDE4LjMzMzRIMTUuMDAyNkMxNS40NDQ2IDE4LjMzMzQgMTUuODY4NiAxOC4xNTc4IDE2LjE4MTEgMTcuODQ1M0MxNi40OTM3IDE3LjUzMjcgMTYuNjY5MyAxNy4xMDg4IDE2LjY2OTMgMTYuNjY2N1Y2LjY2Njc1TTExLjY2OTMgMS42NjY3NUwxNi42NjkzIDYuNjY2NzVNMTEuNjY5MyAxLjY2Njc1VjYuNjY2NzVIMTYuNjY5M00xMC4wMDI2IDE1LjAwMDFWMTAuMDAwMU03LjUwMjYgMTIuNTAwMUgxMi41MDI2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PHNwYW4gY2xhc3M9XCJtcy0yXCI+VGFzazwvc3Bhbj4gPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInFhLWJvZHJlciBteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwicWEtaGVhZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLiBGYWNhZGUsIERpZ2l0YWwgZWxlbWVudHMgYXJlIGludGFjdD8oV2lyZSwgU2NyZWVuKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmQgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwidGFza0NyZWF0ZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saWdodC1wcmltYXJ5MSBidG4tb3V0bGluZS1wcmltYXJ5IG14LTIgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS42NjkzIDEuNjY2NzVINS4wMDI2QzQuNTYwNTggMS42NjY3NSA0LjEzNjY1IDEuODQyMzQgMy44MjQwOSAyLjE1NDlDMy41MTE1MyAyLjQ2NzQ2IDMuMzM1OTQgMi44OTEzOSAzLjMzNTk0IDMuMzMzNDFWMTYuNjY2N0MzLjMzNTk0IDE3LjEwODggMy41MTE1MyAxNy41MzI3IDMuODI0MDkgMTcuODQ1M0M0LjEzNjY1IDE4LjE1NzggNC41NjA1OCAxOC4zMzM0IDUuMDAyNiAxOC4zMzM0SDE1LjAwMjZDMTUuNDQ0NiAxOC4zMzM0IDE1Ljg2ODYgMTguMTU3OCAxNi4xODExIDE3Ljg0NTNDMTYuNDkzNyAxNy41MzI3IDE2LjY2OTMgMTcuMTA4OCAxNi42NjkzIDE2LjY2NjdWNi42NjY3NU0xMS42NjkzIDEuNjY2NzVMMTYuNjY5MyA2LjY2Njc1TTExLjY2OTMgMS42NjY3NVY2LjY2Njc1SDE2LjY2OTNNMTAuMDAyNiAxNS4wMDAxVjEwLjAwMDFNNy41MDI2IDEyLjUwMDFIMTIuNTAyNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjxzcGFuIGNsYXNzPVwibXMtMlwiPlRhc2s8L3NwYW4+IDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInFhLWJvZHJlciBteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwicWEtaGVhZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLiBJcyB0aGUgRmFjYWRlIENvd2ViL2R1c3QvbWF0IGZyZWUgYW5kIHdlbGwgbWFpbnRhaW5lZD9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJQYXJ0aWFsbHkgbXktM1wiPlllczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YXNrLXJlbWFya3MgbXktM1wiPlJlbWFya3MgOiBXaXJlIEhhbmdpbmc8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmQgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwidGFza0NyZWF0ZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saWdodC1wcmltYXJ5MSBidG4tb3V0bGluZS1wcmltYXJ5IG14LTIgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS42NjkzIDEuNjY2NzVINS4wMDI2QzQuNTYwNTggMS42NjY3NSA0LjEzNjY1IDEuODQyMzQgMy44MjQwOSAyLjE1NDlDMy41MTE1MyAyLjQ2NzQ2IDMuMzM1OTQgMi44OTEzOSAzLjMzNTk0IDMuMzMzNDFWMTYuNjY2N0MzLjMzNTk0IDE3LjEwODggMy41MTE1MyAxNy41MzI3IDMuODI0MDkgMTcuODQ1M0M0LjEzNjY1IDE4LjE1NzggNC41NjA1OCAxOC4zMzM0IDUuMDAyNiAxOC4zMzM0SDE1LjAwMjZDMTUuNDQ0NiAxOC4zMzM0IDE1Ljg2ODYgMTguMTU3OCAxNi4xODExIDE3Ljg0NTNDMTYuNDkzNyAxNy41MzI3IDE2LjY2OTMgMTcuMTA4OCAxNi42NjkzIDE2LjY2NjdWNi42NjY3NU0xMS42NjkzIDEuNjY2NzVMMTYuNjY5MyA2LjY2Njc1TTExLjY2OTMgMS42NjY3NVY2LjY2Njc1SDE2LjY2OTNNMTAuMDAyNiAxNS4wMDAxVjEwLjAwMDFNNy41MDI2IDEyLjUwMDFIMTIuNTAyNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjxzcGFuIGNsYXNzPVwibXMtMlwiPlRhc2s8L3NwYW4+IDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInFhLWJvZHJlciBteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwicWEtaGVhZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LiBGYWNhZGUsIERpZ2l0YWwgZWxlbWVudHMgYXJlIGludGFjdD8oV2lyZSwgU2NyZWVuKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlBhcnRpYWxseSB0ZXh0LWRhbmdlciBteS0zXCI+UGFydGlhbGx5IEFncmVlZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YXNrLXJlbWFya3MgbXktM1wiPlJlbWFya3MgOiBXaXJlIEhhbmdpbmc8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmQgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwidGFza0NyZWF0ZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saWdodC1wcmltYXJ5MSBidG4tb3V0bGluZS1wcmltYXJ5IG14LTIgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMS42NjkzIDEuNjY2NzVINS4wMDI2QzQuNTYwNTggMS42NjY3NSA0LjEzNjY1IDEuODQyMzQgMy44MjQwOSAyLjE1NDlDMy41MTE1MyAyLjQ2NzQ2IDMuMzM1OTQgMi44OTEzOSAzLjMzNTk0IDMuMzMzNDFWMTYuNjY2N0MzLjMzNTk0IDE3LjEwODggMy41MTE1MyAxNy41MzI3IDMuODI0MDkgMTcuODQ1M0M0LjEzNjY1IDE4LjE1NzggNC41NjA1OCAxOC4zMzM0IDUuMDAyNiAxOC4zMzM0SDE1LjAwMjZDMTUuNDQ0NiAxOC4zMzM0IDE1Ljg2ODYgMTguMTU3OCAxNi4xODExIDE3Ljg0NTNDMTYuNDkzNyAxNy41MzI3IDE2LjY2OTMgMTcuMTA4OCAxNi42NjkzIDE2LjY2NjdWNi42NjY3NU0xMS42NjkzIDEuNjY2NzVMMTYuNjY5MyA2LjY2Njc1TTExLjY2OTMgMS42NjY3NVY2LjY2Njc1SDE2LjY2OTNNMTAuMDAyNiAxNS4wMDAxVjEwLjAwMDFNNy41MDI2IDEyLjUwMDFIMTIuNTAyNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwMDlCRjNcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjxzcGFuIGNsYXNzPVwibXMtMlwiPlRhc2s8L3NwYW4+IDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInFhLWJvZHJlciBteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwicWEtaGVhZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LiBGYWNhZGUsIERpZ2l0YWwgZWxlbWVudHMgYXJlIGludGFjdD8oV2lyZSwgU2NyZWVuKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlJlZmVyZW5jZSBJbWFnZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1sb2dvXCIgc3JjPVwiYXNzZXRzL3RhbmdvL0ltYWdlcy91bnNwbGFzaF9jaGVja2xpc3Quc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yZWYgbXktM1wiPlVwbG9hZGVkIEltYWdlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLWxvZ29cIiBzcmM9XCJhc3NldHMvdGFuZ28vSW1hZ2VzL3Vuc3BsYXNoX2NoZWNrbGlzdC5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZW5kIG10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInRhc2tDcmVhdGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGlnaHQtcHJpbWFyeTEgYnRuLW91dGxpbmUtcHJpbWFyeSBteC0yIHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsXCI+PHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTEuNjY5MyAxLjY2Njc1SDUuMDAyNkM0LjU2MDU4IDEuNjY2NzUgNC4xMzY2NSAxLjg0MjM0IDMuODI0MDkgMi4xNTQ5QzMuNTExNTMgMi40Njc0NiAzLjMzNTk0IDIuODkxMzkgMy4zMzU5NCAzLjMzMzQxVjE2LjY2NjdDMy4zMzU5NCAxNy4xMDg4IDMuNTExNTMgMTcuNTMyNyAzLjgyNDA5IDE3Ljg0NTNDNC4xMzY2NSAxOC4xNTc4IDQuNTYwNTggMTguMzMzNCA1LjAwMjYgMTguMzMzNEgxNS4wMDI2QzE1LjQ0NDYgMTguMzMzNCAxNS44Njg2IDE4LjE1NzggMTYuMTgxMSAxNy44NDUzQzE2LjQ5MzcgMTcuNTMyNyAxNi42NjkzIDE3LjEwODggMTYuNjY5MyAxNi42NjY3VjYuNjY2NzVNMTEuNjY5MyAxLjY2Njc1TDE2LjY2OTMgNi42NjY3NU0xMS42NjkzIDEuNjY2NzVWNi42NjY3NUgxNi42NjkzTTEwLjAwMjYgMTUuMDAwMVYxMC4wMDAxTTcuNTAyNiAxMi41MDAxSDEyLjUwMjZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDA5QkYzXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48c3BhbiBjbGFzcz1cIm1zLTJcIj5UYXNrPC9zcGFuPiA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvc2VjdGlvbj4gIFxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHB4LTEwIG15LTVcIiAqbmdJZj1cInNlbGVjdCA9PT0nbW9iaWxldXNhZ2UnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInFhLWJvZHJlciBteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx1bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cInFhLWhlYWRpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMS1NUMDAxXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbXktMlwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInctMTAwIGgtNDUwcHhcIiBzcmM9XCJhc3NldHMvdGFuZ28vSW1hZ2VzL3Vuc3BsYXNoX2NoZWNrbGlzdC5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBteS00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItcGFnaW5hdGlvbi12MiBbdG90YWxJdGVtc109XCJ0b3RhbEl0ZW1zXCIgW2l0ZW1zUGVyUGFnZV09XCJpdGVtc1BlclBhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2N1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlXCIgKHBhZ2VDaGFuZ2VkKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGliLXBhZ2luYXRpb24tdjI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHB4LTEwIG15LTVcIiAqbmdJZj1cInNlbGVjdCA9PT0nZXlldGVzdCdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicWEtYm9kcmVyIG15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwicWEtaGVhZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExLU1QwMDFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZpZGVvIGNvbnRyb2xzIGF1dG9wbGF5IGNsYXNzPVwicmVjYXAtaW1nIHAtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3RhbmdvZXllLmFpL3dwLWNvbnRlbnQvdXBsb2Fkcy92aWRlb3MvdGFuZ28tbWFpbi12aWRlby5tcDRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92aWRlbz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgbXktNFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpYi1wYWdpbmF0aW9uLXYyIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXNcIiBbaXRlbXNQZXJQYWdlXT1cIml0ZW1zUGVyUGFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY3VycmVudFBhZ2VdPVwiY3VycmVudFBhZ2VcIiAocGFnZUNoYW5nZWQpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saWItcGFnaW5hdGlvbi12Mj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|