tango-app-ui-analyse-trax 3.0.0-dev → 3.3.1-alpha.1
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,235 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
// import { TraxService } from '../../services/trax.service';
|
|
3
|
+
import { Subject, takeUntil } from 'rxjs';
|
|
4
|
+
import { TraxpopupComponent } from '../traxpopup/traxpopup.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "tango-app-ui-global";
|
|
7
|
+
import * as i2 from "../../services/trax.service";
|
|
8
|
+
import * as i3 from "tango-app-ui-shared";
|
|
9
|
+
import * as i4 from "@angular/router";
|
|
10
|
+
import * as i5 from "@ng-bootstrap/ng-bootstrap";
|
|
11
|
+
import * as i6 from "@angular/common";
|
|
12
|
+
import * as i7 from "@angular/forms";
|
|
13
|
+
export class ChecklistComponent {
|
|
14
|
+
pageInfo;
|
|
15
|
+
traxService;
|
|
16
|
+
gs;
|
|
17
|
+
toast;
|
|
18
|
+
route;
|
|
19
|
+
dialog;
|
|
20
|
+
cd;
|
|
21
|
+
loading = true;
|
|
22
|
+
noData = false;
|
|
23
|
+
pageSize = 10;
|
|
24
|
+
totalItems;
|
|
25
|
+
paginationSizes = [];
|
|
26
|
+
checklistData = [];
|
|
27
|
+
detach = new Subject();
|
|
28
|
+
destroy$ = new Subject();
|
|
29
|
+
dynamicData = {
|
|
30
|
+
clientId: '',
|
|
31
|
+
startDate: '',
|
|
32
|
+
endDate: '',
|
|
33
|
+
limit: 10,
|
|
34
|
+
offset: 0,
|
|
35
|
+
sortColumn: '',
|
|
36
|
+
sortBy: '',
|
|
37
|
+
search: ''
|
|
38
|
+
};
|
|
39
|
+
constructor(pageInfo, traxService, gs, toast, route, dialog, cd) {
|
|
40
|
+
this.pageInfo = pageInfo;
|
|
41
|
+
this.traxService = traxService;
|
|
42
|
+
this.gs = gs;
|
|
43
|
+
this.toast = toast;
|
|
44
|
+
this.route = route;
|
|
45
|
+
this.dialog = dialog;
|
|
46
|
+
this.cd = cd;
|
|
47
|
+
}
|
|
48
|
+
ngOnInit() {
|
|
49
|
+
this.setPageData();
|
|
50
|
+
this.gs.dataRangeValue.pipe(takeUntil(this.detach)).subscribe({
|
|
51
|
+
next: (data) => {
|
|
52
|
+
if (data) {
|
|
53
|
+
this.dynamicData.clientId = data.client;
|
|
54
|
+
this.dynamicData.startDate = data.date.startDate;
|
|
55
|
+
this.dynamicData.endDate = data.date.endDate;
|
|
56
|
+
this.getCheckList();
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
ngOnDestroy() {
|
|
62
|
+
this.detach.next(true);
|
|
63
|
+
this.detach.complete();
|
|
64
|
+
}
|
|
65
|
+
setPageData() {
|
|
66
|
+
this.pageInfo.setTitle("Tango Trax");
|
|
67
|
+
this.pageInfo.setDescription("Automate or create checklists to improve operational efficiency");
|
|
68
|
+
this.pageInfo.setBreadcrumbs([
|
|
69
|
+
{ title: "", path: "/manage", isActive: false, isSeparator: false },
|
|
70
|
+
]);
|
|
71
|
+
}
|
|
72
|
+
getCheckList() {
|
|
73
|
+
this.loading = true;
|
|
74
|
+
this.traxService.checklist(this.dynamicData).pipe(takeUntil(this.destroy$))?.subscribe({
|
|
75
|
+
next: (res) => {
|
|
76
|
+
if (res && res.code == 200 && res.data.result.length) {
|
|
77
|
+
this.noData = false;
|
|
78
|
+
this.loading = false;
|
|
79
|
+
this.checklistData = res.data.result;
|
|
80
|
+
this.totalItems = res.data.count;
|
|
81
|
+
if (this.totalItems < 10) {
|
|
82
|
+
this.paginationSizes = [this.totalItems];
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
this.paginationSizes = [10, 20, 30];
|
|
86
|
+
}
|
|
87
|
+
this.pageSize = this.checklistData.length;
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
this.loading = false;
|
|
91
|
+
this.noData = true;
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
error: (error) => {
|
|
95
|
+
this.loading = false;
|
|
96
|
+
this.noData = true;
|
|
97
|
+
this.toast.getErrorToast(error.error.error);
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
onSort(column) {
|
|
102
|
+
if (this.dynamicData.sortColumn == column) {
|
|
103
|
+
this.dynamicData.sortBy = this.dynamicData.sortBy == 1 ? -1 : 1;
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
this.dynamicData.sortColumn = column;
|
|
107
|
+
this.dynamicData.sortBy = 1;
|
|
108
|
+
}
|
|
109
|
+
this.getCheckList();
|
|
110
|
+
}
|
|
111
|
+
onPageChange(event) {
|
|
112
|
+
this.dynamicData.offset = event;
|
|
113
|
+
this.getCheckList();
|
|
114
|
+
}
|
|
115
|
+
onPageSizeChange(event) {
|
|
116
|
+
this.dynamicData.limit = event;
|
|
117
|
+
this.getCheckList();
|
|
118
|
+
}
|
|
119
|
+
redirect(data, details) {
|
|
120
|
+
if (data == 'edit') {
|
|
121
|
+
this.route.navigateByUrl(`/manage/trax/createChecklist?checklistId=${details}`);
|
|
122
|
+
}
|
|
123
|
+
else if (data == 'setting') {
|
|
124
|
+
this.route.navigateByUrl(`/manage/trax/configure?checkListId=${details}`);
|
|
125
|
+
}
|
|
126
|
+
else if (data == 'duplicate') {
|
|
127
|
+
const popupcontent = {
|
|
128
|
+
displayprop: false,
|
|
129
|
+
imagesrc: '<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36" fill="none"><rect x="2" y="2" width="32" height="32" rx="16" fill="#DAF1FF"/><g clip-path="url(#clip0_5545_6743)"><path d="M13.333 20.0007H12.6663C12.3127 20.0007 11.9736 19.8602 11.7235 19.6101C11.4735 19.3601 11.333 19.0209 11.333 18.6673V12.6673C11.333 12.3137 11.4735 11.9746 11.7235 11.7245C11.9736 11.4745 12.3127 11.334 12.6663 11.334H18.6663C19.02 11.334 19.3591 11.4745 19.6092 11.7245C19.8592 11.9746 19.9997 12.3137 19.9997 12.6673V13.334M17.333 16.0007H23.333C24.0694 16.0007 24.6663 16.5976 24.6663 17.334V23.334C24.6663 24.0704 24.0694 24.6673 23.333 24.6673H17.333C16.5966 24.6673 15.9997 24.0704 15.9997 23.334V17.334C15.9997 16.5976 16.5966 16.0007 17.333 16.0007Z" stroke="#00A3FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></g><rect x="2" y="2" width="32" height="32" rx="16" stroke="#EAF8FF" stroke-width="4"/><defs><clipPath id="clip0_5545_6743"><rect width="16" height="16" fill="white" transform="translate(10 10)"/></clipPath></defs></svg>',
|
|
130
|
+
title: `Duplicate '${details.checkListName} Section'?`,
|
|
131
|
+
content: `Are you sure you want to duplicate <b>'${details.checkListName}'?</b> This action cannot be undone.`,
|
|
132
|
+
buttontype: 'duplicate'
|
|
133
|
+
};
|
|
134
|
+
const dialogRef = this.dialog.open(TraxpopupComponent, { centered: true, size: 'md' });
|
|
135
|
+
dialogRef.componentInstance.data = popupcontent;
|
|
136
|
+
dialogRef.result.then((res) => {
|
|
137
|
+
if (res == 'duplicate') {
|
|
138
|
+
this.traxService.duplicatechecklist(details._id).pipe(takeUntil(this.destroy$))?.subscribe({
|
|
139
|
+
next: (res) => {
|
|
140
|
+
if (res && res.code == 200) {
|
|
141
|
+
this.getCheckList();
|
|
142
|
+
this.toast.getSuccessToast(`${details.checkListName} has been duplicated.`);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
const popupcontent = {
|
|
151
|
+
displayprop: false,
|
|
152
|
+
imagesrc: '<svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36" fill="none"><rect x="2" y="2" width="32" height="32" rx="16" fill="#FEE4E2"/><path d="M12 14.0007H13.3333M13.3333 14.0007H24M13.3333 14.0007V23.334C13.3333 23.6876 13.4738 24.0267 13.7239 24.2768C13.9739 24.5268 14.313 24.6673 14.6667 24.6673H21.3333C21.687 24.6673 22.0261 24.5268 22.2761 24.2768C22.5262 24.0267 22.6667 23.6876 22.6667 23.334V14.0007H13.3333ZM15.3333 14.0007V12.6673C15.3333 12.3137 15.4738 11.9746 15.7239 11.7245C15.9739 11.4745 16.313 11.334 16.6667 11.334H19.3333C19.687 11.334 20.0261 11.4745 20.2761 11.7245C20.5262 11.9746 20.6667 12.3137 20.6667 12.6673V14.0007M16.6667 17.334V21.334M19.3333 17.334V21.334" stroke="#D92D20" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/><rect x="2" y="2" width="32" height="32" rx="16" stroke="#FEF3F2" stroke-width="4"/></svg>',
|
|
153
|
+
title: `Delete '${details.checkListName} Section'?`,
|
|
154
|
+
content: `Are you sure you want to delete <b>'${details.checkListName}'?</b> This action cannot be undone.`,
|
|
155
|
+
buttontype: 'delete'
|
|
156
|
+
};
|
|
157
|
+
const dialogRef = this.dialog.open(TraxpopupComponent, { centered: true, size: 'md' });
|
|
158
|
+
dialogRef.componentInstance.data = popupcontent;
|
|
159
|
+
dialogRef.result.then((res) => {
|
|
160
|
+
if (res == 'delete') {
|
|
161
|
+
this.traxService.deleteChecklist(details._id).pipe(takeUntil(this.destroy$))?.subscribe({
|
|
162
|
+
next: (res) => {
|
|
163
|
+
if (res && res.code == 200) {
|
|
164
|
+
this.getCheckList();
|
|
165
|
+
this.toast.getSuccessToast(`${details.checkListName} has been Deleted.`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
publish(event, data, i) {
|
|
174
|
+
let popupcontent;
|
|
175
|
+
let htmlContent;
|
|
176
|
+
if (event.target.checked) {
|
|
177
|
+
popupcontent = {
|
|
178
|
+
displayprop: false,
|
|
179
|
+
imagesrc: '<svg xmlns="http://www.w3.org/2000/svg" width="56" height="56" viewBox="0 0 56 56" fill="none"><rect x="4" y="4" width="48" height="48" rx="24" fill="#D1FADF"/><path d="M38 27.0818V28.0018C37.9988 30.1582 37.3005 32.2565 36.0093 33.9836C34.7182 35.7108 32.9033 36.9743 30.8354 37.5857C28.7674 38.1971 26.5573 38.1237 24.5345 37.3764C22.5117 36.6291 20.7847 35.2479 19.611 33.4389C18.4373 31.6299 17.8798 29.4899 18.0217 27.3381C18.1636 25.1864 18.9972 23.1381 20.3983 21.4989C21.7994 19.8596 23.6928 18.7172 25.7962 18.242C27.8996 17.7667 30.1003 17.9842 32.07 18.8618M38 20.0018L28 30.0118L25 27.0118" stroke="#039855" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><rect x="4" y="4" width="48" height="48" rx="24" stroke="#ECFDF3" stroke-width="8"/></svg>',
|
|
180
|
+
title: `'${data.checkListName}' checklist published
|
|
181
|
+
?`,
|
|
182
|
+
content: `This checklist has been published. Any changes made will reflect from the next occurrence.`,
|
|
183
|
+
buttontype: 'confirm'
|
|
184
|
+
};
|
|
185
|
+
htmlContent = `${data.checkListName} has been published</div>`;
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
popupcontent = {
|
|
189
|
+
displayprop: false,
|
|
190
|
+
imagesrc: '<svg xmlns="http://www.w3.org/2000/svg" width="56" height="56" viewBox="0 0 56 56" fill="none"><rect x="4" y="4" width="48" height="48" rx="24" fill="#FEF0C7"/><path d="M27.9998 24.0012V28.0012M27.9998 32.0012H28.0098M26.2898 18.8612L17.8198 33.0012C17.6451 33.3036 17.5527 33.6465 17.5518 33.9957C17.5508 34.3449 17.6413 34.6883 17.8142 34.9917C17.9871 35.2951 18.2365 35.5479 18.5375 35.725C18.8385 35.9021 19.1806 35.9973 19.5298 36.0012H36.4698C36.819 35.9973 37.1611 35.9021 37.4621 35.725C37.7631 35.5479 38.0124 35.2951 38.1854 34.9917C38.3583 34.6883 38.4488 34.3449 38.4478 33.9957C38.4468 33.6465 38.3544 33.3036 38.1798 33.0012L29.7098 18.8612C29.5315 18.5673 29.2805 18.3243 28.981 18.1557C28.6814 17.987 28.3435 17.8984 27.9998 17.8984C27.656 17.8984 27.3181 17.987 27.0186 18.1557C26.7191 18.3243 26.468 18.5673 26.2898 18.8612Z" stroke="#DC6803" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><rect x="4" y="4" width="48" height="48" rx="24" stroke="#FFFAEB" stroke-width="8"/></svg>',
|
|
191
|
+
title: `Are you sure you want to unpublish ‘${data.checkListName}’ checklist?`,
|
|
192
|
+
content: `This checklist has already published. Any changes made will reflect from the next occurrence.`,
|
|
193
|
+
buttontype: 'confirm'
|
|
194
|
+
};
|
|
195
|
+
htmlContent = `${data.checkListName} has been unpublished`;
|
|
196
|
+
}
|
|
197
|
+
const dialogRef = this.dialog.open(TraxpopupComponent, {
|
|
198
|
+
centered: true, size: 'md'
|
|
199
|
+
});
|
|
200
|
+
dialogRef.componentInstance.data = popupcontent;
|
|
201
|
+
dialogRef.result.then((res) => {
|
|
202
|
+
if (res == 'confirm') {
|
|
203
|
+
this.traxService.publish(data._id, {
|
|
204
|
+
publish: event.target.checked
|
|
205
|
+
}).subscribe((result) => {
|
|
206
|
+
if (result && result.code == 200) {
|
|
207
|
+
event.target.checked = true;
|
|
208
|
+
this.getCheckList();
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
event.target.checked = false;
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
event.target.checked = false;
|
|
217
|
+
this.cd.detectChanges();
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
search() {
|
|
222
|
+
this.dynamicData.offset = 0;
|
|
223
|
+
this.dynamicData.limit = 10;
|
|
224
|
+
this.dynamicData.sortColumn = '';
|
|
225
|
+
this.dynamicData.sortBy = '';
|
|
226
|
+
this.getCheckList();
|
|
227
|
+
}
|
|
228
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChecklistComponent, deps: [{ token: i1.PageInfoService }, { token: i2.TraxService }, { token: i1.GlobalStateService }, { token: i3.ToastService }, { token: i4.Router }, { token: i5.NgbModal }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
229
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ChecklistComponent, selector: "lib-checklist", ngImport: i0, template: "<div class=\"card p-5 mb-10\">\r\n <div class=\"card-title mt-3\">\r\n <h1 class=\" my-0 checklistTitle\">\r\n Manage Your Checklist\r\n </h1>\r\n <div class=\"mt-1 checklistHead\">You can create and manage your checklist here</div>\r\n </div>\r\n <div class=\"row me-16 mt-10\">\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Create your own \r\n <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <a class=\"d-block\" data-fslightbox=\"lightbox-hot-sales\"\r\n routerLink=\"/manage/trax/createChecklist\">\r\n <div>\r\n <img src=\"./assets/tango/Images/newChecklist.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Create New Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Configure Predefined Checklist\r\n <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/predefined.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of templates</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Configure your Predefined AI checklist\r\n <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/aichecklist.svg\" class=\"w-100 borderClass\" />\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of AI Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"card\">\r\n <div class=\"row mt-8\">\r\n <div class=\"col-lg-12\" *ngIf=\"noData\">\r\n <div class=\"card-body text-center\">\r\n <img src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\" class=\"startchecklist\">\r\n <div class=\"checklist_text fw-semibold mt-6 checkStart\">Start by creating a checklist</div>\r\n <div class=\"checklist_span mt-1 checklistHead\">Any checklist created will live here.</div>\r\n </div>\r\n <div data-kt-subscription-table-toolbar=\"base\" class=\"d-flex justify-content-center\">\r\n <a href=\"https://tangoeye.ai/\" class=\"btn-outline btn-outline btn btn-light upload mx-3 px-16 checkStart\"><span\r\n class=\"uploadtext\">How To\r\n Create?</span></a>\r\n\r\n <a routerLink=\"/manage/trax/createChecklist\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-16 mx-2 ng-star-inserted checkStart\" style=\"white-space: nowrap;\"><span\r\n class=\"svg-icon svg-icon-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0001 4.16602V15.8327M4.16675 9.99935H15.8334\" stroke=\"white\"\r\n stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span><span class=\"create\">Create New</span></a>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 mt-3\">\r\n <div class=\"card-header border-0 pt-3 mb-5\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"title-text mb-2\">Checklist Info</span>\r\n <span class=\"text-sub mb-2\">Based on 06 Jan, 2022\u2013 13 Jan, 2022</span>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input type=\"text\"\r\n class=\"form-control ps-14 me-2\" autocomplete=\"off\" placeholder=\"Search\" [(ngModel)]=\"dynamicData.search\" (change)=\"search()\"/>\r\n\r\n <a [routerLink]=\"['/manage/trax/createChecklist']\" type=\"button\" \r\n class=\"btn btn-primary mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0013 4.16699V15.8337M4.16797 10.0003H15.8346\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Create Checklist</span> </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"loading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!noData && !loading\" calss=\"card-body\">\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('checkListName')\">Checklist <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'checkListName' && dynamicData.sortBy === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'checkListName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('createdByName')\">Checklist Owner <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'createdByName' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'createdByName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <!-- <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('coverage')\">Coverage <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'storeId' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'storeId' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th> -->\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('storeCount')\">Assigned To <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'storeCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'storeCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('status')\">Status <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'status' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'status' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\">Actions</span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('publish')\">Publish <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'publish' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'publish' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of checklistData;let i=index\">\r\n <!-- (click)=\"storeView(obj)\" -->\r\n <td class=\"text-primary text-capitalize text-decoration-underline cursor-pointer\">\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label bg-light-primary text-primary me-2\">{{data.checkListChar.toUpperCase()}}</span>\r\n </div>\r\n {{data.checkListName}}\r\n </td>\r\n <td>{{data.createdByName}}</td>\r\n <td >{{data.storeCount}}</td>\r\n <td><span class=\"badge\" [ngClass]=\"data.publish ? 'badge-light-success' : 'badge-light-primary'\">{{(data.publish ? 'Published' :'draft') | titlecase}}</span></td>\r\n <td>\r\n <span class=\"me-6\" [ngClass]=\"!data?.publish ? 'cursor-pointer' : ''\" (click)=\"!data?.publish ? redirect('edit',data._id) : ''\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M0.832031 9.99967C0.832031 9.99967 4.16536 3.33301 9.9987 3.33301C15.832 3.33301 19.1654 9.99967 19.1654 9.99967C19.1654 9.99967 15.832 16.6663 9.9987 16.6663C4.16536 16.6663 0.832031 9.99967 0.832031 9.99967Z\"\r\n [attr.stroke]=\"!data.publish ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"!data.publish ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"me-6 cursor-pointer\" (click)=\"redirect('setting',data._id)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2254_20261)\">\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M16.1654 12.4997C16.0544 12.751 16.0213 13.0298 16.0704 13.3002C16.1194 13.5705 16.2482 13.8199 16.4404 14.0163L16.4904 14.0663C16.6453 14.2211 16.7683 14.4049 16.8521 14.6073C16.936 14.8096 16.9792 15.0265 16.9792 15.2455C16.9792 15.4645 16.936 15.6814 16.8521 15.8837C16.7683 16.0861 16.6453 16.2699 16.4904 16.4247C16.3356 16.5796 16.1518 16.7026 15.9494 16.7864C15.7471 16.8703 15.5302 16.9135 15.3112 16.9135C15.0922 16.9135 14.8753 16.8703 14.673 16.7864C14.4706 16.7026 14.2868 16.5796 14.132 16.4247L14.082 16.3747C13.8856 16.1826 13.6362 16.0537 13.3659 16.0047C13.0955 15.9557 12.8167 15.9887 12.5654 16.0997C12.3189 16.2053 12.1087 16.3807 11.9606 16.6043C11.8126 16.8279 11.7331 17.0899 11.732 17.358V17.4997C11.732 17.9417 11.5564 18.3656 11.2439 18.6782C10.9313 18.9907 10.5074 19.1663 10.0654 19.1663C9.62334 19.1663 9.19941 18.9907 8.88685 18.6782C8.57429 18.3656 8.3987 17.9417 8.3987 17.4997V17.4247C8.39225 17.1488 8.30296 16.8813 8.14246 16.6569C7.98195 16.4325 7.75764 16.2616 7.4987 16.1663C7.24735 16.0554 6.96854 16.0223 6.69821 16.0713C6.42788 16.1204 6.17843 16.2492 5.98203 16.4413L5.93203 16.4913C5.77724 16.6463 5.59343 16.7692 5.3911 16.8531C5.18877 16.937 4.97189 16.9802 4.75286 16.9802C4.53384 16.9802 4.31696 16.937 4.11463 16.8531C3.9123 16.7692 3.72849 16.6463 3.5737 16.4913C3.41874 16.3366 3.29581 16.1527 3.21193 15.9504C3.12806 15.7481 3.08489 15.5312 3.08489 15.3122C3.08489 15.0931 3.12806 14.8763 3.21193 14.6739C3.29581 14.4716 3.41874 14.2878 3.5737 14.133L3.6237 14.083C3.81581 13.8866 3.94469 13.6372 3.9937 13.3668C4.04272 13.0965 4.00963 12.8177 3.8987 12.5663C3.79306 12.3199 3.61766 12.1097 3.39409 11.9616C3.17051 11.8135 2.90852 11.7341 2.64036 11.733H2.4987C2.05667 11.733 1.63275 11.5574 1.32019 11.2449C1.00763 10.9323 0.832031 10.5084 0.832031 10.0663C0.832031 9.62431 1.00763 9.20039 1.32019 8.88783C1.63275 8.57527 2.05667 8.39967 2.4987 8.39967H2.5737C2.84953 8.39322 3.11703 8.30394 3.34145 8.14343C3.56586 7.98293 3.73679 7.75862 3.83203 7.49967C3.94296 7.24833 3.97605 6.96951 3.92703 6.69918C3.87802 6.42885 3.74914 6.17941 3.55703 5.98301L3.50703 5.93301C3.35207 5.77822 3.22914 5.5944 3.14526 5.39207C3.06139 5.18974 3.01822 4.97287 3.01822 4.75384C3.01822 4.53481 3.06139 4.31794 3.14526 4.11561C3.22914 3.91328 3.35207 3.72946 3.50703 3.57467C3.66182 3.41971 3.84563 3.29678 4.04796 3.21291C4.25029 3.12903 4.46717 3.08586 4.6862 3.08586C4.90522 3.08586 5.1221 3.12903 5.32443 3.21291C5.52676 3.29678 5.71058 3.41971 5.86536 3.57467L5.91536 3.62467C6.11176 3.81679 6.36121 3.94566 6.63154 3.99468C6.90187 4.04369 7.18068 4.0106 7.43203 3.89967H7.4987C7.74517 3.79404 7.95538 3.61864 8.10344 3.39506C8.2515 3.17149 8.33096 2.9095 8.33203 2.64134V2.49967C8.33203 2.05765 8.50763 1.63372 8.82019 1.32116C9.13275 1.0086 9.55667 0.833008 9.9987 0.833008C10.4407 0.833008 10.8646 1.0086 11.1772 1.32116C11.4898 1.63372 11.6654 2.05765 11.6654 2.49967V2.57467C11.6664 2.84283 11.7459 3.10482 11.894 3.3284C12.042 3.55197 12.2522 3.72737 12.4987 3.83301C12.75 3.94394 13.0289 3.97703 13.2992 3.92801C13.5695 3.879 13.819 3.75012 14.0154 3.55801L14.0654 3.50801C14.2202 3.35305 14.404 3.23012 14.6063 3.14624C14.8086 3.06237 15.0255 3.0192 15.2445 3.0192C15.4636 3.0192 15.6804 3.06237 15.8828 3.14624C16.0851 3.23012 16.2689 3.35305 16.4237 3.50801C16.5787 3.6628 16.7016 3.84661 16.7855 4.04894C16.8693 4.25127 16.9125 4.46815 16.9125 4.68717C16.9125 4.9062 16.8693 5.12308 16.7855 5.32541C16.7016 5.52774 16.5787 5.71155 16.4237 5.86634L16.3737 5.91634C16.1816 6.11274 16.0527 6.36219 16.0037 6.63252C15.9547 6.90285 15.9878 7.18166 16.0987 7.43301V7.49967C16.2043 7.74615 16.3797 7.95635 16.6033 8.10442C16.8269 8.25248 17.0889 8.33194 17.357 8.33301H17.4987C17.9407 8.33301 18.3646 8.5086 18.6772 8.82116C18.9898 9.13372 19.1654 9.55765 19.1654 9.99967C19.1654 10.4417 18.9898 10.8656 18.6772 11.1782C18.3646 11.4907 17.9407 11.6663 17.4987 11.6663H17.4237C17.1555 11.6674 16.8936 11.7469 16.67 11.8949C16.4464 12.043 16.271 12.2532 16.1654 12.4997Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20261\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"cursor-pointer\" (click)=\"redirect('duplicate',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2254_20265)\">\r\n <path\r\n d=\"M4.16797 12.5003H3.33464C2.89261 12.5003 2.46868 12.3247 2.15612 12.0122C1.84356 11.6996 1.66797 11.2757 1.66797 10.8337V3.33366C1.66797 2.89163 1.84356 2.46771 2.15612 2.15515C2.46868 1.84259 2.89261 1.66699 3.33464 1.66699H10.8346C11.2767 1.66699 11.7006 1.84259 12.0131 2.15515C12.3257 2.46771 12.5013 2.89163 12.5013 3.33366V4.16699M9.16797 7.50033H16.668C17.5884 7.50033 18.3346 8.24652 18.3346 9.16699V16.667C18.3346 17.5875 17.5884 18.3337 16.668 18.3337H9.16797C8.24749 18.3337 7.5013 17.5875 7.5013 16.667V9.16699C7.5013 8.24652 8.24749 7.50033 9.16797 7.50033Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20265\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span (click)=\"!data.publish ? redirect('delete',data) : ''\" [ngClass]=\"!data?.publish ? 'cursor-pointer' : ''\">\r\n <svg width=\"40\" height=\"41\" viewBox=\"0 0 40 41\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_3162_10414)\">\r\n <path\r\n d=\"M12.5 15.0228H14.1667M14.1667 15.0228H27.5M14.1667 15.0228V26.6895C14.1667 27.1315 14.3423 27.5554 14.6548 27.868C14.9674 28.1805 15.3913 28.3561 15.8333 28.3561H24.1667C24.6087 28.3561 25.0326 28.1805 25.3452 27.868C25.6577 27.5554 25.8333 27.1315 25.8333 26.6895V15.0228H14.1667ZM16.6667 15.0228V13.3561C16.6667 12.9141 16.8423 12.4902 17.1548 12.1776C17.4674 11.865 17.8913 11.6895 18.3333 11.6895H21.6667C22.1087 11.6895 22.5326 11.865 22.8452 12.1776C23.1577 12.4902 23.3333 12.9141 23.3333 13.3561V15.0228M18.3333 19.1895V24.1895M21.6667 19.1895V24.1895\"\r\n [attr.stroke]=\"data.publish ? '#D0D5DD' :'#667085'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3162_10414\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(10 10.0234)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </td>\r\n <td>\r\n <span class=\"form-check form-switch\">\r\n <input type=\"checkbox\" role=\"switch\" id=\"support\" class=\"form-check-input mt-3 cursor-pointer\" (change)=\"publish($event, data,i)\" [checked]=\"data?.publish\" [disabled]=\"!data?.storeCount\">\r\n </span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"pageSize\" [currentPage]=\"dynamicData.offset\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n</div>", styles: [".borderClass{border-radius:13px 13px 0 0/13px 13px 0px 0px}.checklistText{color:var(--Black, #101828);font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}.checklistHead{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.checklistTitle{color:var(--Black, #101828);font-family:Inter;font-size:22px!important;font-style:normal;font-weight:600;line-height:32px}.checkStart{color:var(--Gray-900, #101828);text-align:center;font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.rotate{rotate:180deg;transition:1s}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i3.PaginationComponent, selector: "lib-pagination", inputs: ["collection", "itemsPerPage", "currentPage", "totalItems", "directionLinks", "pageSize", "paginationSizes"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "directive", type: i7.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: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i6.TitleCasePipe, name: "titlecase" }] });
|
|
230
|
+
}
|
|
231
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChecklistComponent, decorators: [{
|
|
232
|
+
type: Component,
|
|
233
|
+
args: [{ selector: 'lib-checklist', template: "<div class=\"card p-5 mb-10\">\r\n <div class=\"card-title mt-3\">\r\n <h1 class=\" my-0 checklistTitle\">\r\n Manage Your Checklist\r\n </h1>\r\n <div class=\"mt-1 checklistHead\">You can create and manage your checklist here</div>\r\n </div>\r\n <div class=\"row me-16 mt-10\">\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Create your own \r\n <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <a class=\"d-block\" data-fslightbox=\"lightbox-hot-sales\"\r\n routerLink=\"/manage/trax/createChecklist\">\r\n <div>\r\n <img src=\"./assets/tango/Images/newChecklist.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Create New Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Configure Predefined Checklist\r\n <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/predefined.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of templates</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Configure your Predefined AI checklist\r\n <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/aichecklist.svg\" class=\"w-100 borderClass\" />\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of AI Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"card\">\r\n <div class=\"row mt-8\">\r\n <div class=\"col-lg-12\" *ngIf=\"noData\">\r\n <div class=\"card-body text-center\">\r\n <img src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\" class=\"startchecklist\">\r\n <div class=\"checklist_text fw-semibold mt-6 checkStart\">Start by creating a checklist</div>\r\n <div class=\"checklist_span mt-1 checklistHead\">Any checklist created will live here.</div>\r\n </div>\r\n <div data-kt-subscription-table-toolbar=\"base\" class=\"d-flex justify-content-center\">\r\n <a href=\"https://tangoeye.ai/\" class=\"btn-outline btn-outline btn btn-light upload mx-3 px-16 checkStart\"><span\r\n class=\"uploadtext\">How To\r\n Create?</span></a>\r\n\r\n <a routerLink=\"/manage/trax/createChecklist\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-16 mx-2 ng-star-inserted checkStart\" style=\"white-space: nowrap;\"><span\r\n class=\"svg-icon svg-icon-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0001 4.16602V15.8327M4.16675 9.99935H15.8334\" stroke=\"white\"\r\n stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span><span class=\"create\">Create New</span></a>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 mt-3\">\r\n <div class=\"card-header border-0 pt-3 mb-5\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"title-text mb-2\">Checklist Info</span>\r\n <span class=\"text-sub mb-2\">Based on 06 Jan, 2022\u2013 13 Jan, 2022</span>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input type=\"text\"\r\n class=\"form-control ps-14 me-2\" autocomplete=\"off\" placeholder=\"Search\" [(ngModel)]=\"dynamicData.search\" (change)=\"search()\"/>\r\n\r\n <a [routerLink]=\"['/manage/trax/createChecklist']\" type=\"button\" \r\n class=\"btn btn-primary mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0013 4.16699V15.8337M4.16797 10.0003H15.8346\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Create Checklist</span> </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"loading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!noData && !loading\" calss=\"card-body\">\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('checkListName')\">Checklist <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'checkListName' && dynamicData.sortBy === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'checkListName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('createdByName')\">Checklist Owner <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'createdByName' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'createdByName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <!-- <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('coverage')\">Coverage <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'storeId' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'storeId' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th> -->\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('storeCount')\">Assigned To <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'storeCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'storeCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('status')\">Status <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'status' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'status' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\">Actions</span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('publish')\">Publish <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'publish' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'publish' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of checklistData;let i=index\">\r\n <!-- (click)=\"storeView(obj)\" -->\r\n <td class=\"text-primary text-capitalize text-decoration-underline cursor-pointer\">\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label bg-light-primary text-primary me-2\">{{data.checkListChar.toUpperCase()}}</span>\r\n </div>\r\n {{data.checkListName}}\r\n </td>\r\n <td>{{data.createdByName}}</td>\r\n <td >{{data.storeCount}}</td>\r\n <td><span class=\"badge\" [ngClass]=\"data.publish ? 'badge-light-success' : 'badge-light-primary'\">{{(data.publish ? 'Published' :'draft') | titlecase}}</span></td>\r\n <td>\r\n <span class=\"me-6\" [ngClass]=\"!data?.publish ? 'cursor-pointer' : ''\" (click)=\"!data?.publish ? redirect('edit',data._id) : ''\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M0.832031 9.99967C0.832031 9.99967 4.16536 3.33301 9.9987 3.33301C15.832 3.33301 19.1654 9.99967 19.1654 9.99967C19.1654 9.99967 15.832 16.6663 9.9987 16.6663C4.16536 16.6663 0.832031 9.99967 0.832031 9.99967Z\"\r\n [attr.stroke]=\"!data.publish ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"!data.publish ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"me-6 cursor-pointer\" (click)=\"redirect('setting',data._id)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2254_20261)\">\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M16.1654 12.4997C16.0544 12.751 16.0213 13.0298 16.0704 13.3002C16.1194 13.5705 16.2482 13.8199 16.4404 14.0163L16.4904 14.0663C16.6453 14.2211 16.7683 14.4049 16.8521 14.6073C16.936 14.8096 16.9792 15.0265 16.9792 15.2455C16.9792 15.4645 16.936 15.6814 16.8521 15.8837C16.7683 16.0861 16.6453 16.2699 16.4904 16.4247C16.3356 16.5796 16.1518 16.7026 15.9494 16.7864C15.7471 16.8703 15.5302 16.9135 15.3112 16.9135C15.0922 16.9135 14.8753 16.8703 14.673 16.7864C14.4706 16.7026 14.2868 16.5796 14.132 16.4247L14.082 16.3747C13.8856 16.1826 13.6362 16.0537 13.3659 16.0047C13.0955 15.9557 12.8167 15.9887 12.5654 16.0997C12.3189 16.2053 12.1087 16.3807 11.9606 16.6043C11.8126 16.8279 11.7331 17.0899 11.732 17.358V17.4997C11.732 17.9417 11.5564 18.3656 11.2439 18.6782C10.9313 18.9907 10.5074 19.1663 10.0654 19.1663C9.62334 19.1663 9.19941 18.9907 8.88685 18.6782C8.57429 18.3656 8.3987 17.9417 8.3987 17.4997V17.4247C8.39225 17.1488 8.30296 16.8813 8.14246 16.6569C7.98195 16.4325 7.75764 16.2616 7.4987 16.1663C7.24735 16.0554 6.96854 16.0223 6.69821 16.0713C6.42788 16.1204 6.17843 16.2492 5.98203 16.4413L5.93203 16.4913C5.77724 16.6463 5.59343 16.7692 5.3911 16.8531C5.18877 16.937 4.97189 16.9802 4.75286 16.9802C4.53384 16.9802 4.31696 16.937 4.11463 16.8531C3.9123 16.7692 3.72849 16.6463 3.5737 16.4913C3.41874 16.3366 3.29581 16.1527 3.21193 15.9504C3.12806 15.7481 3.08489 15.5312 3.08489 15.3122C3.08489 15.0931 3.12806 14.8763 3.21193 14.6739C3.29581 14.4716 3.41874 14.2878 3.5737 14.133L3.6237 14.083C3.81581 13.8866 3.94469 13.6372 3.9937 13.3668C4.04272 13.0965 4.00963 12.8177 3.8987 12.5663C3.79306 12.3199 3.61766 12.1097 3.39409 11.9616C3.17051 11.8135 2.90852 11.7341 2.64036 11.733H2.4987C2.05667 11.733 1.63275 11.5574 1.32019 11.2449C1.00763 10.9323 0.832031 10.5084 0.832031 10.0663C0.832031 9.62431 1.00763 9.20039 1.32019 8.88783C1.63275 8.57527 2.05667 8.39967 2.4987 8.39967H2.5737C2.84953 8.39322 3.11703 8.30394 3.34145 8.14343C3.56586 7.98293 3.73679 7.75862 3.83203 7.49967C3.94296 7.24833 3.97605 6.96951 3.92703 6.69918C3.87802 6.42885 3.74914 6.17941 3.55703 5.98301L3.50703 5.93301C3.35207 5.77822 3.22914 5.5944 3.14526 5.39207C3.06139 5.18974 3.01822 4.97287 3.01822 4.75384C3.01822 4.53481 3.06139 4.31794 3.14526 4.11561C3.22914 3.91328 3.35207 3.72946 3.50703 3.57467C3.66182 3.41971 3.84563 3.29678 4.04796 3.21291C4.25029 3.12903 4.46717 3.08586 4.6862 3.08586C4.90522 3.08586 5.1221 3.12903 5.32443 3.21291C5.52676 3.29678 5.71058 3.41971 5.86536 3.57467L5.91536 3.62467C6.11176 3.81679 6.36121 3.94566 6.63154 3.99468C6.90187 4.04369 7.18068 4.0106 7.43203 3.89967H7.4987C7.74517 3.79404 7.95538 3.61864 8.10344 3.39506C8.2515 3.17149 8.33096 2.9095 8.33203 2.64134V2.49967C8.33203 2.05765 8.50763 1.63372 8.82019 1.32116C9.13275 1.0086 9.55667 0.833008 9.9987 0.833008C10.4407 0.833008 10.8646 1.0086 11.1772 1.32116C11.4898 1.63372 11.6654 2.05765 11.6654 2.49967V2.57467C11.6664 2.84283 11.7459 3.10482 11.894 3.3284C12.042 3.55197 12.2522 3.72737 12.4987 3.83301C12.75 3.94394 13.0289 3.97703 13.2992 3.92801C13.5695 3.879 13.819 3.75012 14.0154 3.55801L14.0654 3.50801C14.2202 3.35305 14.404 3.23012 14.6063 3.14624C14.8086 3.06237 15.0255 3.0192 15.2445 3.0192C15.4636 3.0192 15.6804 3.06237 15.8828 3.14624C16.0851 3.23012 16.2689 3.35305 16.4237 3.50801C16.5787 3.6628 16.7016 3.84661 16.7855 4.04894C16.8693 4.25127 16.9125 4.46815 16.9125 4.68717C16.9125 4.9062 16.8693 5.12308 16.7855 5.32541C16.7016 5.52774 16.5787 5.71155 16.4237 5.86634L16.3737 5.91634C16.1816 6.11274 16.0527 6.36219 16.0037 6.63252C15.9547 6.90285 15.9878 7.18166 16.0987 7.43301V7.49967C16.2043 7.74615 16.3797 7.95635 16.6033 8.10442C16.8269 8.25248 17.0889 8.33194 17.357 8.33301H17.4987C17.9407 8.33301 18.3646 8.5086 18.6772 8.82116C18.9898 9.13372 19.1654 9.55765 19.1654 9.99967C19.1654 10.4417 18.9898 10.8656 18.6772 11.1782C18.3646 11.4907 17.9407 11.6663 17.4987 11.6663H17.4237C17.1555 11.6674 16.8936 11.7469 16.67 11.8949C16.4464 12.043 16.271 12.2532 16.1654 12.4997Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20261\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"cursor-pointer\" (click)=\"redirect('duplicate',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2254_20265)\">\r\n <path\r\n d=\"M4.16797 12.5003H3.33464C2.89261 12.5003 2.46868 12.3247 2.15612 12.0122C1.84356 11.6996 1.66797 11.2757 1.66797 10.8337V3.33366C1.66797 2.89163 1.84356 2.46771 2.15612 2.15515C2.46868 1.84259 2.89261 1.66699 3.33464 1.66699H10.8346C11.2767 1.66699 11.7006 1.84259 12.0131 2.15515C12.3257 2.46771 12.5013 2.89163 12.5013 3.33366V4.16699M9.16797 7.50033H16.668C17.5884 7.50033 18.3346 8.24652 18.3346 9.16699V16.667C18.3346 17.5875 17.5884 18.3337 16.668 18.3337H9.16797C8.24749 18.3337 7.5013 17.5875 7.5013 16.667V9.16699C7.5013 8.24652 8.24749 7.50033 9.16797 7.50033Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20265\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span (click)=\"!data.publish ? redirect('delete',data) : ''\" [ngClass]=\"!data?.publish ? 'cursor-pointer' : ''\">\r\n <svg width=\"40\" height=\"41\" viewBox=\"0 0 40 41\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_3162_10414)\">\r\n <path\r\n d=\"M12.5 15.0228H14.1667M14.1667 15.0228H27.5M14.1667 15.0228V26.6895C14.1667 27.1315 14.3423 27.5554 14.6548 27.868C14.9674 28.1805 15.3913 28.3561 15.8333 28.3561H24.1667C24.6087 28.3561 25.0326 28.1805 25.3452 27.868C25.6577 27.5554 25.8333 27.1315 25.8333 26.6895V15.0228H14.1667ZM16.6667 15.0228V13.3561C16.6667 12.9141 16.8423 12.4902 17.1548 12.1776C17.4674 11.865 17.8913 11.6895 18.3333 11.6895H21.6667C22.1087 11.6895 22.5326 11.865 22.8452 12.1776C23.1577 12.4902 23.3333 12.9141 23.3333 13.3561V15.0228M18.3333 19.1895V24.1895M21.6667 19.1895V24.1895\"\r\n [attr.stroke]=\"data.publish ? '#D0D5DD' :'#667085'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3162_10414\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(10 10.0234)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </td>\r\n <td>\r\n <span class=\"form-check form-switch\">\r\n <input type=\"checkbox\" role=\"switch\" id=\"support\" class=\"form-check-input mt-3 cursor-pointer\" (change)=\"publish($event, data,i)\" [checked]=\"data?.publish\" [disabled]=\"!data?.storeCount\">\r\n </span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"pageSize\" [currentPage]=\"dynamicData.offset\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n</div>", styles: [".borderClass{border-radius:13px 13px 0 0/13px 13px 0px 0px}.checklistText{color:var(--Black, #101828);font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}.checklistHead{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.checklistTitle{color:var(--Black, #101828);font-family:Inter;font-size:22px!important;font-style:normal;font-weight:600;line-height:32px}.checkStart{color:var(--Gray-900, #101828);text-align:center;font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.rotate{rotate:180deg;transition:1s}\n"] }]
|
|
234
|
+
}], ctorParameters: () => [{ type: i1.PageInfoService }, { type: i2.TraxService }, { type: i1.GlobalStateService }, { type: i3.ToastService }, { type: i4.Router }, { type: i5.NgbModal }, { type: i0.ChangeDetectorRef }] });
|
|
235
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJheC9zcmMvbGliL2NvbXBvbmVudHMvY2hlY2tsaXN0L2NoZWNrbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrbGlzdC9jaGVja2xpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRWhGLDZEQUE2RDtBQUM3RCxPQUFPLEVBQUMsT0FBTyxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUd4QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7O0FBU3RFLE1BQU0sT0FBTyxrQkFBa0I7SUFvQlQ7SUFBaUM7SUFBZ0M7SUFBOEI7SUFBMkI7SUFBcUI7SUFBd0I7SUFuQjNMLE9BQU8sR0FBVyxJQUFJLENBQUM7SUFDdkIsTUFBTSxHQUFXLEtBQUssQ0FBQztJQUN2QixRQUFRLEdBQVEsRUFBRSxDQUFDO0lBQ25CLFVBQVUsQ0FBUTtJQUNsQixlQUFlLEdBQU8sRUFBRSxDQUFDO0lBQ3pCLGFBQWEsR0FBTyxFQUFFLENBQUM7SUFDZixNQUFNLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUNkLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFDLFdBQVcsR0FBTztRQUNoQixRQUFRLEVBQUMsRUFBRTtRQUNYLFNBQVMsRUFBQyxFQUFFO1FBQ1osT0FBTyxFQUFDLEVBQUU7UUFDVixLQUFLLEVBQUMsRUFBRTtRQUNSLE1BQU0sRUFBQyxDQUFDO1FBQ1IsVUFBVSxFQUFDLEVBQUU7UUFDYixNQUFNLEVBQUMsRUFBRTtRQUNU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bnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlLCBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuLy8gaW1wb3J0IHsgVHJheFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmF4LnNlcnZpY2UnO1xyXG5pbXBvcnQge1N1YmplY3QsIHRha2VVbnRpbH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUcmF4cG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi90cmF4cG9wdXAvdHJheHBvcHVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBUcmF4U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYXguc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jaGVja2xpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2xpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jaGVja2xpc3QuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja2xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsT25EZXN0cm95IHtcclxuICBsb2FkaW5nOmJvb2xlYW4gPSB0cnVlO1xyXG4gIG5vRGF0YTpib29sZWFuID0gZmFsc2U7XHJcbiAgcGFnZVNpemU6bnVtYmVyPTEwO1xyXG4gIHRvdGFsSXRlbXM6bnVtYmVyO1xyXG4gIHBhZ2luYXRpb25TaXplczphbnkgPSBbXTtcclxuICBjaGVja2xpc3REYXRhOmFueSA9IFtdO1xyXG4gIHByaXZhdGUgZGV0YWNoID0gbmV3IFN1YmplY3QoKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBkeW5hbWljRGF0YTphbnkgPSB7XHJcbiAgICBjbGllbnRJZDonJyxcclxuICAgIHN0YXJ0RGF0ZTonJyxcclxuICAgIGVuZERhdGU6JycsXHJcbiAgICBsaW1pdDoxMCxcclxuICAgIG9mZnNldDowLFxyXG4gICAgc29ydENvbHVtbjonJyxcclxuICAgIHNvcnRCeTonJyxcclxuICAgIHNlYXJjaDonJ1xyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFnZUluZm86UGFnZUluZm9TZXJ2aWNlLHByaXZhdGUgdHJheFNlcnZpY2U6VHJheFNlcnZpY2UscHJpdmF0ZSBnczpHbG9iYWxTdGF0ZVNlcnZpY2UscHJpdmF0ZSB0b2FzdDpUb2FzdFNlcnZpY2UscHJpdmF0ZSByb3V0ZTpSb3V0ZXIscHJpdmF0ZSBkaWFsb2c6TmdiTW9kYWwscHJpdmF0ZSBjZDpDaGFuZ2VEZXRlY3RvclJlZiApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRQYWdlRGF0YSgpO1xyXG4gICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgdGhpcy5keW5hbWljRGF0YS5jbGllbnRJZCA9IGRhdGEuY2xpZW50O1xyXG4gICAgICAgICAgdGhpcy5keW5hbWljRGF0YS5zdGFydERhdGUgPSBkYXRhLmRhdGUuc3RhcnREYXRlO1xyXG4gICAgICAgICAgdGhpcy5keW5hbWljRGF0YS5lbmREYXRlID0gZGF0YS5kYXRlLmVuZERhdGU7XHJcbiAgICAgICAgICB0aGlzLmdldENoZWNrTGlzdCgpXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGV0YWNoLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRldGFjaC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0UGFnZURhdGEoKSB7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldFRpdGxlKFwiVGFuZ28gVHJheFwiKTtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0RGVzY3JpcHRpb24oXCJBdXRvbWF0ZSBvciBjcmVhdGUgY2hlY2tsaXN0cyB0byBpbXByb3ZlIG9wZXJhdGlvbmFsIGVmZmljaWVuY3lcIik7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldEJyZWFkY3J1bWJzKFtcclxuICAgICAgeyB0aXRsZTogXCJcIiwgcGF0aDogXCIvbWFuYWdlXCIsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IGZhbHNlIH0sXHJcbiAgICBdKTtcclxuICB9XHJcblxyXG4gIGdldENoZWNrTGlzdCgpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmNoZWNrbGlzdCh0aGlzLmR5bmFtaWNEYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6KHJlczphbnkpID0+IHtcclxuICAgICAgICBpZihyZXMgJiYgcmVzLmNvZGUgPT0gMjAwICYmIHJlcy5kYXRhLnJlc3VsdC5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsaXN0RGF0YSA9IHJlcy5kYXRhLnJlc3VsdDtcclxuICAgICAgICAgIHRoaXMudG90YWxJdGVtcyA9IHJlcy5kYXRhLmNvdW50O1xyXG4gICAgICAgICAgaWYodGhpcy50b3RhbEl0ZW1zIDwgMTApIHtcclxuICAgICAgICAgICAgdGhpcy5wYWdpbmF0aW9uU2l6ZXMgPSBbdGhpcy50b3RhbEl0ZW1zXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnBhZ2luYXRpb25TaXplcyA9IFsxMCwyMCwzMF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnBhZ2VTaXplID0gdGhpcy5jaGVja2xpc3REYXRhLmxlbmd0aFxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6KGVycm9yOmFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyb3IuZXJyb3IuZXJyb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvblNvcnQoY29sdW1uOmFueSkge1xyXG4gICAgaWYgKHRoaXMuZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PSBjb2x1bW4pIHtcclxuICAgICAgdGhpcy5keW5hbWljRGF0YS5zb3J0QnkgPSB0aGlzLmR5bmFtaWNEYXRhLnNvcnRCeSA9PSAxID8gLTEgOiAxO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuZHluYW1pY0RhdGEuc29ydENvbHVtbiA9IGNvbHVtbjtcclxuICAgICAgdGhpcy5keW5hbWljRGF0YS5zb3J0QnkgPSAxO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRDaGVja0xpc3QoKTtcclxuICB9XHJcblxyXG4gIG9uUGFnZUNoYW5nZShldmVudDphbnkpIHtcclxuICAgIHRoaXMuZHluYW1pY0RhdGEub2Zmc2V0ID0gZXZlbnQ7XHJcbiAgICB0aGlzLmdldENoZWNrTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgb25QYWdlU2l6ZUNoYW5nZShldmVudDphbnkpIHtcclxuICAgIHRoaXMuZHluYW1pY0RhdGEubGltaXQgPSBldmVudDtcclxuICAgIHRoaXMuZ2V0Q2hlY2tMaXN0KCk7XHJcbiAgfVxyXG5cclxuICByZWRpcmVjdChkYXRhOmFueSxkZXRhaWxzOmFueSkge1xyXG4gICAgaWYoZGF0YSA9PSAnZWRpdCcpIHtcclxuICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKGAvbWFuYWdlL3RyYXgvY3JlYXRlQ2hlY2tsaXN0P2NoZWNrbGlzdElkPSR7ZGV0YWlsc31gKVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZihkYXRhID09ICdzZXR0aW5nJykge1xyXG4gICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoYC9tYW5hZ2UvdHJheC9jb25maWd1cmU/Y2hlY2tMaXN0SWQ9JHtkZXRhaWxzfWApXHJcbiAgICB9XHJcbiAgICBlbHNlIGlmKGRhdGEgPT0gJ2R1cGxpY2F0ZScpIHtcclxuICAgICAgY29uc3QgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICBpbWFnZXNyYzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHZpZXdCb3g9XCIwIDAgMzYgMzZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiByeD1cIjE2XCIgZmlsbD1cIiNEQUYxRkZcIi8+PGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF81NTQ1XzY3NDMpXCI+PHBhdGggZD1cIk0xMy4zMzMgMjAuMDAwN0gxMi42NjYzQzEyLjMxMjcgMjAuMDAwNyAxMS45NzM2IDE5Ljg2MDIgMTEuNzIzNSAxOS42MTAxQzExLjQ3MzUgMTkuMzYwMSAxMS4zMzMgMTkuMDIwOSAxMS4zMzMgMTguNjY3M1YxMi42NjczQzExLjMzMyAxMi4zMTM3IDExLjQ3MzUgMTEuOTc0NiAxMS43MjM1IDExLjcyNDVDMTEuOTczNiAxMS40NzQ1IDEyLjMxMjcgMTEuMzM0IDEyLjY2NjMgMTEuMzM0SDE4LjY2NjNDMTkuMDIgMTEuMzM0IDE5LjM1OTEgMTEuNDc0NSAxOS42MDkyIDExLjcyNDVDMTkuODU5MiAxMS45NzQ2IDE5Ljk5OTcgMTIuMzEzNyAxOS45OTk3IDEyLjY2NzNWMTMuMzM0TTE3LjMzMyAxNi4wMDA3SDIzLjMzM0MyNC4wNjk0IDE2LjAwMDcgMjQuNjY2MyAxNi41OTc2IDI0LjY2NjMgMTcuMzM0VjIzLjMzNEMyNC42NjYzIDI0LjA3MDQgMjQuMDY5NCAyNC42NjczIDIzLjMzMyAyNC42NjczSDE3LjMzM0MxNi41OTY2IDI0LjY2NzMgMTUuOTk5NyAyNC4wNzA0IDE1Ljk5OTcgMjMuMzM0VjE3LjMzNEMxNS45OTk3IDE2LjU5NzYgMTYuNTk2NiAxNi4wMDA3IDE3LjMzMyAxNi4wMDA3WlwiIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvZz48cmVjdCB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgcng9XCIxNlwiIHN0cm9rZT1cIiNFQUY4RkZcIiBzdHJva2Utd2lkdGg9XCI0XCIvPjxkZWZzPjxjbGlwUGF0aCBpZD1cImNsaXAwXzU1NDVfNjc0M1wiPjxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgxMCAxMClcIi8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+JyxcclxuICAgICAgICB0aXRsZTogYER1cGxpY2F0ZSAnJHtkZXRhaWxzLmNoZWNrTGlzdE5hbWV9IFNlY3Rpb24nP2AsXHJcbiAgICAgICAgY29udGVudDogYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkdXBsaWNhdGUgPGI+JyR7ZGV0YWlscy5jaGVja0xpc3ROYW1lfSc/PC9iPiBUaGlzIGFjdGlvbiBjYW5ub3QgYmUgdW5kb25lLmAsXHJcbiAgICAgICAgYnV0dG9udHlwZTogJ2R1cGxpY2F0ZSdcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge2NlbnRlcmVkOnRydWUsc2l6ZTonbWQnfSk7XHJcbiAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50O1xyXG4gICAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4geyBcclxuICAgICAgICBpZiAocmVzID09ICdkdXBsaWNhdGUnKSB7XHJcbiAgICAgICAgICB0aGlzLnRyYXhTZXJ2aWNlLmR1cGxpY2F0ZWNoZWNrbGlzdChkZXRhaWxzLl9pZCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OihyZXM6YW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDaGVja0xpc3QoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KGAke2RldGFpbHMuY2hlY2tMaXN0TmFtZX0gaGFzIGJlZW4gZHVwbGljYXRlZC5gKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgY29uc3QgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICBpbWFnZXNyYzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHZpZXdCb3g9XCIwIDAgMzYgMzZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiByeD1cIjE2XCIgZmlsbD1cIiNGRUU0RTJcIi8+PHBhdGggZD1cIk0xMiAxNC4wMDA3SDEzLjMzMzNNMTMuMzMzMyAxNC4wMDA3SDI0TTEzLjMzMzMgMTQuMDAwN1YyMy4zMzRDMTMuMzMzMyAyMy42ODc2IDEzLjQ3MzggMjQuMDI2NyAxMy43MjM5IDI0LjI3NjhDMTMuOTczOSAyNC41MjY4IDE0LjMxMyAyNC42NjczIDE0LjY2NjcgMjQuNjY3M0gyMS4zMzMzQzIxLjY4NyAyNC42NjczIDIyLjAyNjEgMjQuNTI2OCAyMi4yNzYxIDI0LjI3NjhDMjIuNTI2MiAyNC4wMjY3IDIyLjY2NjcgMjMuNjg3NiAyMi42NjY3IDIzLjMzNFYxNC4wMDA3SDEzLjMzMzNaTTE1LjMzMzMgMTQuMDAwN1YxMi42NjczQzE1LjMzMzMgMTIuMzEzNyAxNS40NzM4IDExLjk3NDYgMTUuNzIzOSAxMS43MjQ1QzE1Ljk3MzkgMTEuNDc0NSAxNi4zMTMgMTEuMzM0IDE2LjY2NjcgMTEuMzM0SDE5LjMzMzNDMTkuNjg3IDExLjMzNCAyMC4wMjYxIDExLjQ3NDUgMjAuMjc2MSAxMS43MjQ1QzIwLjUyNjIgMTEuOTc0NiAyMC42NjY3IDEyLjMxMzcgMjAuNjY2NyAxMi42NjczVjE0LjAwMDdNMTYuNjY2NyAxNy4zMzRWMjEuMzM0TTE5LjMzMzMgMTcuMzM0VjIxLjMzNFwiIHN0cm9rZT1cIiNEOTJEMjBcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiByeD1cIjE2XCIgc3Ryb2tlPVwiI0ZFRjNGMlwiIHN0cm9rZS13aWR0aD1cIjRcIi8+PC9zdmc+JyxcclxuICAgICAgICB0aXRsZTogYERlbGV0ZSAnJHtkZXRhaWxzLmNoZWNrTGlzdE5hbWV9IFNlY3Rpb24nP2AsXHJcbiAgICAgICAgY29udGVudDogYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgPGI+JyR7ZGV0YWlscy5jaGVja0xpc3ROYW1lfSc/PC9iPiBUaGlzIGFjdGlvbiBjYW5ub3QgYmUgdW5kb25lLmAsXHJcbiAgICAgICAgYnV0dG9udHlwZTogJ2RlbGV0ZSdcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge2NlbnRlcmVkOnRydWUsc2l6ZTonbWQnfSk7XHJcbiAgICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50O1xyXG4gICAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4geyBcclxuICAgICAgICBpZiAocmVzID09ICdkZWxldGUnKSB7XHJcbiAgICAgICAgICB0aGlzLnRyYXhTZXJ2aWNlLmRlbGV0ZUNoZWNrbGlzdChkZXRhaWxzLl9pZCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OihyZXM6YW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDaGVja0xpc3QoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KGAke2RldGFpbHMuY2hlY2tMaXN0TmFtZX0gaGFzIGJlZW4gRGVsZXRlZC5gKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaXNoKGV2ZW50OmFueSxkYXRhOmFueSxpOm51bWJlcikge1xyXG4gICAgbGV0IHBvcHVwY29udGVudDtcclxuICAgIGxldCBodG1sQ29udGVudDphbnk7XHJcbiAgICBpZihldmVudC50YXJnZXQuY2hlY2tlZCkge1xyXG4gICAgICBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgIGltYWdlc3JjOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0QxRkFERlwiLz48cGF0aCBkPVwiTTM4IDI3LjA4MThWMjguMDAxOEMzNy45OTg4IDMwLjE1ODIgMzcuMzAwNSAzMi4yNTY1IDM2LjAwOTMgMzMuOTgzNkMzNC43MTgyIDM1LjcxMDggMzIuOTAzMyAzNi45NzQzIDMwLjgzNTQgMzcuNTg1N0MyOC43Njc0IDM4LjE5NzEgMjYuNTU3MyAzOC4xMjM3IDI0LjUzNDUgMzcuMzc2NEMyMi41MTE3IDM2LjYyOTEgMjAuNzg0NyAzNS4yNDc5IDE5LjYxMSAzMy40Mzg5QzE4LjQzNzMgMzEuNjI5OSAxNy44Nzk4IDI5LjQ4OTkgMTguMDIxNyAyNy4zMzgxQzE4LjE2MzYgMjUuMTg2NCAxOC45OTcyIDIzLjEzODEgMjAuMzk4MyAyMS40OTg5QzIxLjc5OTQgMTkuODU5NiAyMy42OTI4IDE4LjcxNzIgMjUuNzk2MiAxOC4yNDJDMjcuODk5NiAxNy43NjY3IDMwLjEwMDMgMTcuOTg0MiAzMi4wNyAxOC44NjE4TTM4IDIwLjAwMThMMjggMzAuMDExOEwyNSAyNy4wMTE4XCIgc3Ryb2tlPVwiIzAzOTg1NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRUNGREYzXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz4nLFxyXG4gICAgICAgIHRpdGxlOiBgJyR7ZGF0YS5jaGVja0xpc3ROYW1lfScgY2hlY2tsaXN0IHB1Ymxpc2hlZFxyXG4gICAgICAgID9gLFxyXG4gICAgICAgIGNvbnRlbnQ6IGBUaGlzIGNoZWNrbGlzdCBoYXMgYmVlbiBwdWJsaXNoZWQuIEFueSBjaGFuZ2VzIG1hZGUgd2lsbCByZWZsZWN0IGZyb20gdGhlIG5leHQgb2NjdXJyZW5jZS5gLFxyXG4gICAgICAgIGJ1dHRvbnR5cGU6ICdjb25maXJtJ1xyXG4gICAgICB9XHJcbiAgICAgIGh0bWxDb250ZW50PSBgJHtkYXRhLmNoZWNrTGlzdE5hbWV9IGhhcyBiZWVuIHB1Ymxpc2hlZDwvZGl2PmA7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICBpbWFnZXNyYzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNGRUYwQzdcIi8+PHBhdGggZD1cIk0yNy45OTk4IDI0LjAwMTJWMjguMDAxMk0yNy45OTk4IDMyLjAwMTJIMjguMDA5OE0yNi4yODk4IDE4Ljg2MTJMMTcuODE5OCAzMy4wMDEyQzE3LjY0NTEgMzMuMzAzNiAxNy41NTI3IDMzLjY0NjUgMTcuNTUxOCAzMy45OTU3QzE3LjU1MDggMzQuMzQ0OSAxNy42NDEzIDM0LjY4ODMgMTcuODE0MiAzNC45OTE3QzE3Ljk4NzEgMzUuMjk1MSAxOC4yMzY1IDM1LjU0NzkgMTguNTM3NSAzNS43MjVDMTguODM4NSAzNS45MDIxIDE5LjE4MDYgMzUuOTk3MyAxOS41Mjk4IDM2LjAwMTJIMzYuNDY5OEMzNi44MTkgMzUuOTk3MyAzNy4xNjExIDM1LjkwMjEgMzcuNDYyMSAzNS43MjVDMzcuNzYzMSAzNS41NDc5IDM4LjAxMjQgMzUuMjk1MSAzOC4xODU0IDM0Ljk5MTdDMzguMzU4MyAzNC42ODgzIDM4LjQ0ODggMzQuMzQ0OSAzOC40NDc4IDMzLjk5NTdDMzguNDQ2OCAzMy42NDY1IDM4LjM1NDQgMzMuMzAzNiAzOC4xNzk4IDMzLjAwMTJMMjkuNzA5OCAxOC44NjEyQzI5LjUzMTUgMTguNTY3MyAyOS4yODA1IDE4LjMyNDMgMjguOTgxIDE4LjE1NTdDMjguNjgxNCAxNy45ODcgMjguMzQzNSAxNy44OTg0IDI3Ljk5OTggMTcuODk4NEMyNy42NTYgMTcuODk4NCAyNy4zMTgxIDE3Ljk4NyAyNy4wMTg2IDE4LjE1NTdDMjYuNzE5MSAxOC4zMjQzIDI2LjQ2OCAxOC41NjczIDI2LjI4OTggMTguODYxMlpcIiBzdHJva2U9XCIjREM2ODAzXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNGRkZBRUJcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPicsXHJcbiAgICAgICAgdGl0bGU6IGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gdW5wdWJsaXNoIOKAmCR7ZGF0YS5jaGVja0xpc3ROYW1lfeKAmSBjaGVja2xpc3Q/YCxcclxuICAgICAgICBjb250ZW50OiBgVGhpcyBjaGVja2xpc3QgaGFzIGFscmVhZHkgcHVibGlzaGVkLiBBbnkgY2hhbmdlcyBtYWRlIHdpbGwgcmVmbGVjdCBmcm9tIHRoZSBuZXh0IG9jY3VycmVuY2UuYCxcclxuICAgICAgICBidXR0b250eXBlOiAnY29uZmlybSdcclxuICAgICAgfVxyXG4gICAgICBodG1sQ29udGVudD0gYCR7ZGF0YS5jaGVja0xpc3ROYW1lfSBoYXMgYmVlbiB1bnB1Ymxpc2hlZGA7XHJcbiAgICB9XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDp0cnVlLHNpemU6J21kJyBcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICBkaWFsb2dSZWYucmVzdWx0LnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzID09ICdjb25maXJtJykge1xyXG4gICAgICAgIHRoaXMudHJheFNlcnZpY2UucHVibGlzaChkYXRhLl9pZCwge1xyXG4gICAgICAgICAgcHVibGlzaDogZXZlbnQudGFyZ2V0LmNoZWNrZWRcclxuICAgICAgICB9KS5zdWJzY3JpYmUoKHJlc3VsdDphbnkpID0+e1xyXG4gICAgICAgICAgaWYocmVzdWx0ICYmIHJlc3VsdC5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICBldmVudC50YXJnZXQuY2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0Q2hlY2tMaXN0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICB9IFxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBldmVudC50YXJnZXQuY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9IFxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuICBzZWFyY2goKSB7XHJcbiAgICB0aGlzLmR5bmFtaWNEYXRhLm9mZnNldCA9IDA7XHJcbiAgICB0aGlzLmR5bmFtaWNEYXRhLmxpbWl0ID0gMTA7XHJcbiAgICB0aGlzLmR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPSAnJztcclxuICAgIHRoaXMuZHluYW1pY0RhdGEuc29ydEJ5ID0gJyc7XHJcbiAgICB0aGlzLmdldENoZWNrTGlzdCgpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmQgcC01IG1iLTEwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBtdC0zXCI+XHJcbiAgICAgICAgPGgxIGNsYXNzPVwiIG15LTAgY2hlY2tsaXN0VGl0bGVcIj5cclxuICAgICAgICAgICAgTWFuYWdlIFlvdXIgQ2hlY2tsaXN0XHJcbiAgICAgICAgPC9oMT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMSBjaGVja2xpc3RIZWFkXCI+WW91IGNhbiBjcmVhdGUgYW5kIG1hbmFnZSB5b3VyIGNoZWNrbGlzdCBoZXJlPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWUtMTYgbXQtMTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTIgY2hlY2tsaXN0SGVhZFwiPlxyXG4gICAgICAgICAgICAgICAgQ3JlYXRlIHlvdXIgb3duIFxyXG4gICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuNTc2MyA3LjUwMDMzQzcuNzcyMjIgNi45NDMzOCA4LjE1ODkzIDYuNDczNzUgOC42Njc5MyA2LjE3NDZDOS4xNzY5MyA1Ljg3NTQ2IDkuNzc1MzggNS43NjYxMSAxMC4zNTczIDUuODY1OTJDMTAuOTM5MiA1Ljk2NTczIDExLjQ2NyA2LjI2ODI2IDExLjg0NzIgNi43MTk5M0MxMi4yMjc0IDcuMTcxNiAxMi40MzU1IDcuNzQzMjYgMTIuNDM0NiA4LjMzMzY2QzEyLjQzNDYgMTAuMDAwMyA5LjkzNDY0IDEwLjgzMzcgOS45MzQ2NCAxMC44MzM3TTEwLjAwMTMgMTQuMTY3SDEwLjAwOTZNMTguMzM0NiAxMC4wMDAzQzE4LjMzNDYgMTQuNjAyNyAxNC42MDM3IDE4LjMzMzcgMTAuMDAxMyAxOC4zMzM3QzUuMzk4OTMgMTguMzMzNyAxLjY2Nzk3IDE0LjYwMjcgMS42Njc5NyAxMC4wMDAzQzEuNjY3OTcgNS4zOTc5NSA1LjM5ODkzIDEuNjY2OTkgMTAuMDAxMyAxLjY2Njk5QzE0LjYwMzcgMS42NjY5OSAxOC4zMzQ2IDUuMzk3OTUgMTguMzM0NiAxMC4wMDAzWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWZsdXNoIHJvdW5kZWQgcm91bmRlZC00XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkLWJsb2NrXCIgZGF0YS1mc2xpZ2h0Ym94PVwibGlnaHRib3gtaG90LXNhbGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluaz1cIi9tYW5hZ2UvdHJheC9jcmVhdGVDaGVja2xpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiLi9hc3NldHMvdGFuZ28vSW1hZ2VzL25ld0NoZWNrbGlzdC5zdmdcIiAgY2xhc3M9XCJ3LTEwMCBib3JkZXJDbGFzc1wiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtZW5kIGZsZXgtc3RhY2sgbXQtOCBtYi04XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN0YXJ0IG14LTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hlY2tsaXN0VGV4dFwiPkNyZWF0ZSBOZXcgQ2hlY2tsaXN0czwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yIGNoZWNrbGlzdEhlYWRcIj5cclxuICAgICAgICAgICAgICAgIENvbmZpZ3VyZSBQcmVkZWZpbmVkIENoZWNrbGlzdFxyXG4gICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuNTc2MyA3LjUwMDMzQzcuNzcyMjIgNi45NDMzOCA4LjE1ODkzIDYuNDczNzUgOC42Njc5MyA2LjE3NDZDOS4xNzY5MyA1Ljg3NTQ2IDkuNzc1MzggNS43NjYxMSAxMC4zNTczIDUuODY1OTJDMTAuOTM5MiA1Ljk2NTczIDExLjQ2NyA2LjI2ODI2IDExLjg0NzIgNi43MTk5M0MxMi4yMjc0IDcuMTcxNiAxMi40MzU1IDcuNzQzMjYgMTIuNDM0NiA4LjMzMzY2QzEyLjQzNDYgMTAuMDAwMyA5LjkzNDY0IDEwLjgzMzcgOS45MzQ2NCAxMC44MzM3TTEwLjAwMTMgMTQuMTY3SDEwLjAwOTZNMTguMzM0NiAxMC4wMDAzQzE4LjMzNDYgMTQuNjAyNyAxNC42MDM3IDE4LjMzMzcgMTAuMDAxMyAxOC4zMzM3QzUuMzk4OTMgMTguMzMzNyAxLjY2Nzk3IDE0LjYwMjcgMS42Njc5NyAxMC4wMDAzQzEuNjY3OTcgNS4zOTc5NSA1LjM5ODkzIDEuNjY2OTkgMTAuMDAxMyAxLjY2Njk5QzE0LjYwMzcgMS42NjY5OSAxOC4zMzQ2IDUuMzk3OTUgMTguMzM0NiAxMC4wMDAzWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWZsdXNoIHJvdW5kZWQgcm91bmRlZC00XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBocmVmPVwiL3NvcC9Db25maWd1cmU/dHlwZT1tb2JpbGV1c2FnZWRldGVjdGlvblwiIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiZC1ibG9jayB3LTEwMFwiIGRhdGEtZnNsaWdodGJveD1cImxpZ2h0Ym94LWhvdC1zYWxlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvcHJlZGVmaW5lZC5zdmdcIiBjbGFzcz1cInctMTAwIGJvcmRlckNsYXNzXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1lbmQgZmxleC1zdGFjayBtdC04IG1iLThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3RhcnQgbXgtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGVja2xpc3RUZXh0XCI+Q2hvb3NlIGZyb20gYSBsaWJyYXJ5IG9mIHRlbXBsYXRlczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yIGNoZWNrbGlzdEhlYWRcIj5cclxuICAgICAgICAgICAgICAgIENvbmZpZ3VyZSB5b3VyIFByZWRlZmluZWQgQUkgY2hlY2tsaXN0XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNy41NzYzIDcuNTAwMzNDNy43NzIyMiA2Ljk0MzM4IDguMTU4OTMgNi40NzM3NSA4LjY2NzkzIDYuMTc0NkM5LjE3NjkzIDUuODc1NDYgOS43NzUzOCA1Ljc2NjExIDEwLjM1NzMgNS44NjU5MkMxMC45MzkyIDUuOTY1NzMgMTEuNDY3IDYuMjY4MjYgMTEuODQ3MiA2LjcxOTkzQzEyLjIyNzQgNy4xNzE2IDEyLjQzNTUgNy43NDMyNiAxMi40MzQ2IDguMzMzNjZDMTIuNDM0NiAxMC4wMDAzIDkuOTM0NjQgMTAuODMzNyA5LjkzNDY0IDEwLjgzMzdNMTAuMDAxMyAxNC4xNjdIMTAuMDA5Nk0xOC4zMzQ2IDEwLjAwMDNDMTguMzM0NiAxNC42MDI3IDE0LjYwMzcgMTguMzMzNyAxMC4wMDEzIDE4LjMzMzdDNS4zOTg5MyAxOC4zMzM3IDEuNjY3OTcgMTQuNjAyNyAxLjY2Nzk3IDEwLjAwMDNDMS42Njc5NyA1LjM5Nzk1IDUuMzk4OTMgMS42NjY5OSAxMC4wMDEzIDEuNjY2OTlDMTQuNjAzNyAxLjY2Njk5IDE4LjMzNDYgNS4zOTc5NSAxOC4zMzQ2IDEwLjAwMDNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtZmx1c2ggcm91bmRlZCByb3VuZGVkLTRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIGhyZWY9XCIvc29wL0NvbmZpZ3VyZT90eXBlPW1vYmlsZXVzYWdlZGV0ZWN0aW9uXCIgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkLWJsb2NrIHctMTAwXCIgZGF0YS1mc2xpZ2h0Ym94PVwibGlnaHRib3gtaG90LXNhbGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvYWljaGVja2xpc3Quc3ZnXCIgY2xhc3M9XCJ3LTEwMCBib3JkZXJDbGFzc1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWVuZCBmbGV4LXN0YWNrIG10LTggbWItOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdGFydCBteC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoZWNrbGlzdFRleHRcIj5DaG9vc2UgZnJvbSBhIGxpYnJhcnkgb2YgQUkgQ2hlY2tsaXN0czwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG10LThcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCIgKm5nSWY9XCJub0RhdGFcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGExLnN2Z1wiIGFsdD1cIlwiIGNsYXNzPVwic3RhcnRjaGVja2xpc3RcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja2xpc3RfdGV4dCBmdy1zZW1pYm9sZCBtdC02IGNoZWNrU3RhcnRcIj5TdGFydCBieSBjcmVhdGluZyBhIGNoZWNrbGlzdDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrbGlzdF9zcGFuIG10LTEgY2hlY2tsaXN0SGVhZFwiPkFueSBjaGVja2xpc3QgY3JlYXRlZCB3aWxsIGxpdmUgaGVyZS48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgZGF0YS1rdC1zdWJzY3JpcHRpb24tdGFibGUtdG9vbGJhcj1cImJhc2VcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly90YW5nb2V5ZS5haS9cIiBjbGFzcz1cImJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lIGJ0biBidG4tbGlnaHQgdXBsb2FkIG14LTMgcHgtMTYgY2hlY2tTdGFydFwiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidXBsb2FkdGV4dFwiPkhvdyBUb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGU/PC9zcGFuPjwvYT5cclxuXHJcbiAgICAgICAgICAgICAgICA8YSByb3V0ZXJMaW5rPVwiL21hbmFnZS90cmF4L2NyZWF0ZUNoZWNrbGlzdFwiIHR5cGU9XCJidXR0b25cIiB0YWJpbmRleD1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHB4LTE2IG14LTIgbmctc3Rhci1pbnNlcnRlZCBjaGVja1N0YXJ0XCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogbm93cmFwO1wiPjxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMlwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAuMDAwMSA0LjE2NjAyVjE1LjgzMjdNNC4xNjY3NSA5Ljk5OTM1SDE1LjgzMzRcIiBzdHJva2U9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cImNyZWF0ZVwiPkNyZWF0ZSBOZXc8L3NwYW4+PC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBtdC0zXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIHB0LTMgbWItNVwiPlxyXG4gICAgICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlLXRleHQgbWItMlwiPkNoZWNrbGlzdCBJbmZvPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXN1YiBtYi0yXCI+QmFzZWQgb24gMDYgSmFuLCAyMDIy4oCTIDEzIEphbiwgMjAyMjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9oMz5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgb3BhY2l0eT1cIjAuNVwiIHg9XCIxNy4wMzY1XCIgeT1cIjE1LjEyMjNcIiB3aWR0aD1cIjguMTU1NDZcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwicm90YXRlKDQ1IDE3LjAzNjUgMTUuMTIyMylcIiBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTEgMTlDNi41NTU1NiAxOSAzIDE1LjQ0NDQgMyAxMUMzIDYuNTU1NTYgNi41NTU1NiAzIDExIDNDMTUuNDQ0NCAzIDE5IDYuNTU1NTYgMTkgMTFDMTkgMTUuNDQ0NCAxNS40NDQ0IDE5IDExIDE5Wk0xMSA1QzcuNTMzMzMgNSA1IDcuNTMzMzMgNSAxMUM1IDE0LjQ2NjcgNy41MzMzMyAxNyAxMSAxN0MxNC40NjY3IDE3IDE3IDE0LjQ2NjcgMTcgMTFDMTcgNy41MzMzMyAxNC40NjY3IDUgMTEgNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIHBzLTE0IG1lLTJcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaFwiIFsobmdNb2RlbCldPVwiZHluYW1pY0RhdGEuc2VhcmNoXCIgKGNoYW5nZSk9XCJzZWFyY2goKVwiLz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnL21hbmFnZS90cmF4L2NyZWF0ZUNoZWNrbGlzdCddXCIgdHlwZT1cImJ1dHRvblwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXgtMiBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMC4wMDEzIDQuMTY2OTlWMTUuODMzN000LjE2Nzk3IDEwLjAwMDNIMTUuODM0NlwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48c3BhbiBjbGFzcz1cIm1zLTJcIj5DcmVhdGUgQ2hlY2tsaXN0PC9zcGFuPiA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cInJvdyBsb2FkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFub0RhdGEgJiYgIWxvYWRpbmdcIiBjYWxzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidy0xMDAgdGFibGUgYm90dG9tLWJvcmRlciB0ZXh0LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9uU29ydCgnY2hlY2tMaXN0TmFtZScpXCI+Q2hlY2tsaXN0IDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdjaGVja0xpc3ROYW1lJyAmJiBkeW5hbWljRGF0YS5zb3J0QnkgPT09IDEgPyAncm90YXRlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwMTYgMy4zMzMzN1YxMi42NjY3TTguMDAwMTYgMTIuNjY2N0wxMi42NjY4IDguMDAwMDRNOC4wMDAxNiAxMi42NjY3TDMuMzMzNSA4LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ2NoZWNrTGlzdE5hbWUnID8gJyMwMEEzRkYnIDogJyM2NjcwODUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ2NyZWF0ZWRCeU5hbWUnKVwiPkNoZWNrbGlzdCBPd25lciA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAnY3JlYXRlZEJ5TmFtZScgJiYgZHluYW1pY0RhdGEuc29ydEJ5ID09PSAxID8gJ3JvdGF0ZScgOiAnJ1wiIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDMuMzMzMzdWMTIuNjY2N004LjAwMDE2IDEyLjY2NjdMMTIuNjY2OCA4LjAwMDA0TTguMDAwMTYgMTIuNjY2N0wzLjMzMzUgOC4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdjcmVhdGVkQnlOYW1lJyA/ICcjMDBBM0ZGJyA6ICcjNjY3MDg1J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ2NvdmVyYWdlJylcIj5Db3ZlcmFnZSA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAnc3RvcmVJZCcgJiYgZHluYW1pY0RhdGEuc29ydEJ5ID09PSAxID8gJ3JvdGF0ZScgOiAnJ1wiIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDMuMzMzMzdWMTIuNjY2N004LjAwMDE2IDEyLjY2NjdMMTIuNjY2OCA4LjAwMDA0TTguMDAwMTYgMTIuNjY2N0wzLjMzMzUgOC4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdzdG9yZUlkJyA/ICcjMDBBM0ZGJyA6ICcjNjY3MDg1J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9uU29ydCgnc3RvcmVDb3VudCcpXCI+QXNzaWduZWQgVG8gPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ3N0b3JlQ291bnQnICYmIGR5bmFtaWNEYXRhLnNvcnRCeSA9PT0gMSA/ICdyb3RhdGUnIDogJydcIiB3aWR0aD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDAxNiAzLjMzMzM3VjEyLjY2NjdNOC4wMDAxNiAxMi42NjY3TDEyLjY2NjggOC4wMDAwNE04LjAwMDE2IDEyLjY2NjdMMy4zMzM1IDguMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAnc3RvcmVDb3VudCcgPyAnIzAwQTNGRicgOiAnIzY2NzA4NSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9uU29ydCgnc3RhdHVzJylcIj5TdGF0dXMgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ3N0YXR1cycgJiYgZHluYW1pY0RhdGEuc29ydEJ5ID09PSAxID8gJ3JvdGF0ZScgOiAnJ1wiIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDMuMzMzMzdWMTIuNjY2N004LjAwMDE2IDEyLjY2NjdMMTIuNjY2OCA4LjAwMDA0TTguMDAwMTYgMTIuNjY2N0wzLjMzMzUgOC4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdzdGF0dXMnID8gJyMwMEEzRkYnIDogJyM2NjcwODUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPkFjdGlvbnM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9uU29ydCgncHVibGlzaCcpXCI+UHVibGlzaCA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAncHVibGlzaCcgJiYgZHluYW1pY0RhdGEuc29ydEJ5ID09PSAxID8gJ3JvdGF0ZScgOiAnJ1wiIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDMuMzMzMzdWMTIuNjY2N004LjAwMDE2IDEyLjY2NjdMMTIuNjY2OCA4LjAwMDA0TTguMDAwMTYgMTIuNjY2N0wzLjMzMzUgOC4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdwdWJsaXNoJyA/ICcjMDBBM0ZGJyA6ICcjNjY3MDg1J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgZGF0YSBvZiBjaGVja2xpc3REYXRhO2xldCBpPWluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIChjbGljayk9XCJzdG9yZVZpZXcob2JqKVwiIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidGV4dC1wcmltYXJ5IHRleHQtY2FwaXRhbGl6ZSB0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN5bWJvbCBzeW1ib2wtMzVweCBzeW1ib2wtY2lyY2xlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ltYm9sLWxhYmVsIGJnLWxpZ2h0LXByaW1hcnkgdGV4dC1wcmltYXJ5IG1lLTJcIj57e2RhdGEuY2hlY2tMaXN0Q2hhci50b1VwcGVyQ2FzZSgpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkYXRhLmNoZWNrTGlzdE5hbWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2RhdGEuY3JlYXRlZEJ5TmFtZX19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCA+e3tkYXRhLnN0b3JlQ291bnR9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9XCJiYWRnZVwiIFtuZ0NsYXNzXT1cImRhdGEucHVibGlzaCA/ICdiYWRnZS1saWdodC1zdWNjZXNzJyA6ICdiYWRnZS1saWdodC1wcmltYXJ5J1wiPnt7KGRhdGEucHVibGlzaCA/ICdQdWJsaXNoZWQnIDonZHJhZnQnKSB8IHRpdGxlY2FzZX19PC9zcGFuPjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS02XCIgW25nQ2xhc3NdPVwiIWRhdGE/LnB1Ymxpc2ggPyAnY3Vyc29yLXBvaW50ZXInIDogJydcIiAoY2xpY2spPVwiIWRhdGE/LnB1Ymxpc2ggPyByZWRpcmVjdCgnZWRpdCcsZGF0YS5faWQpIDogJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMC44MzIwMzEgOS45OTk2N0MwLjgzMjAzMSA5Ljk5OTY3IDQuMTY1MzYgMy4zMzMwMSA5Ljk5ODcgMy4zMzMwMUMxNS44MzIgMy4zMzMwMSAxOS4xNjU0IDkuOTk5NjcgMTkuMTY1NCA5Ljk5OTY3QzE5LjE2NTQgOS45OTk2NyAxNS44MzIgMTYuNjY2MyA5Ljk5ODcgMTYuNjY2M0M0LjE2NTM2IDE2LjY2NjMgMC44MzIwMzEgOS45OTk2NyAwLjgzMjAzMSA5Ljk5OTY3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cIiFkYXRhLnB1Ymxpc2ggPyAnIzY2NzA4NScgOiAnI0QwRDVERCdcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05Ljk5ODcgMTIuNDk5N0MxMS4zNzk0IDEyLjQ5OTcgMTIuNDk4NyAxMS4zODA0IDEyLjQ5ODcgOS45OTk2N0MxMi40OTg3IDguNjE4OTYgMTEuMzc5NCA3LjQ5OTY3IDkuOTk4NyA3LjQ5OTY3QzguNjE3OTkgNy40OTk2NyA3LjQ5ODcgOC42MTg5NiA3LjQ5ODcgOS45OTk2N0M3LjQ5ODcgMTEuMzgwNCA4LjYxNzk5IDEyLjQ5OTcgOS45OTg3IDEyLjQ5OTdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiIWRhdGEucHVibGlzaCA/ICcjNjY3MDg1JyA6ICcjRDBENUREJ1wiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS02IGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInJlZGlyZWN0KCdzZXR0aW5nJyxkYXRhLl9pZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzIyNTRfMjAyNjEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05Ljk5ODcgMTIuNDk5N0MxMS4zNzk0IDEyLjQ5OTcgMTIuNDk4NyAxMS4zODA0IDEyLjQ5ODcgOS45OTk2N0MxMi40OTg3IDguNjE4OTYgMTEuMzc5NCA3LjQ5OTY3IDkuOTk4NyA3LjQ5OTY3QzguNjE3OTkgNy40OTk2NyA3LjQ5ODcgOC42MTg5NiA3LjQ5ODcgOS45OTk2N0M3LjQ5ODcgMTEuMzgwNCA4LjYxNzk5IDEyLjQ5OTcgOS45OTg3IDEyLjQ5OTdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTYuMTY1NCAxMi40OTk3QzE2LjA1NDQgMTIuNzUxIDE2LjAyMTMgMTMuMDI5OCAxNi4wNzA0IDEzLjMwMDJDMTYuMTE5NCAxMy41NzA1IDE2LjI0ODIgMTMuODE5OSAxNi40NDA0IDE0LjAxNjNMMTYuNDkwNCAxNC4wNjYzQzE2LjY0NTMgMTQuMjIxMSAxNi43NjgzIDE0LjQwNDkgMTYuODUyMSAxNC42MDczQzE2LjkzNiAxNC44MDk2IDE2Ljk3OTIgMTUuMDI2NSAxNi45NzkyIDE1LjI0NTVDMTYuOTc5MiAxNS40NjQ1IDE2LjkzNiAxNS42ODE0IDE2Ljg1MjEgMTUuODgzN0MxNi43NjgzIDE2LjA4NjEgMTYuNjQ1MyAxNi4yNjk5IDE2LjQ5MDQgMTYuNDI0N0MxNi4zMzU2IDE2LjU3OTYgMTYuMTUxOCAxNi43MDI2IDE1Ljk0OTQgMTYuNzg2NEMxNS43NDcxIDE2Ljg3MDMgMTUuNTMwMiAxNi45MTM1IDE1LjMxMTIgMTYuOTEzNUMxNS4wOTIyIDE2LjkxMzUgMTQuODc1MyAxNi44NzAzIDE0LjY3MyAxNi43ODY0QzE0LjQ3MDYgMTYuNzAyNiAxNC4yODY4IDE2LjU3OTYgMTQuMTMyIDE2LjQyNDdMMTQuMDgyIDE2LjM3NDdDMTMuODg1NiAxNi4xODI2IDEzLjYzNjIgMTYuMDUzNyAxMy4zNjU5IDE2LjAwNDdDMTMuMDk1NSAxNS45NTU3IDEyLjgxNjcgMTUuOTg4NyAxMi41NjU0IDE2LjA5OTdDMTIuMzE4OSAxNi4yMDUzIDEyLjEwODcgMTYuMzgwNyAxMS45NjA2IDE2LjYwNDNDMTEuODEyNiAxNi44Mjc5IDExLjczMzEgMTcuMDg5OSAxMS43MzIgMTcuMzU4VjE3LjQ5OTdDMTEuNzMyIDE3Ljk0MTcgMTEuNTU2NCAxOC4zNjU2IDExLjI0MzkgMTguNjc4MkMxMC45MzEzIDE4Ljk5MDcgMTAuNTA3NCAxOS4xNjYzIDEwLjA2NTQgMTkuMTY2M0M5LjYyMzM0IDE5LjE2NjMgOS4xOTk0MSAxOC45OTA3IDguODg2ODUgMTguNjc4MkM4LjU3NDI5IDE4LjM2NTYgOC4zOTg3IDE3Ljk0MTcgOC4zOTg3IDE3LjQ5OTdWMTcuNDI0N0M4LjM5MjI1IDE3LjE0ODggOC4zMDI5NiAxNi44ODEzIDguMTQyNDYgMTYuNjU2OUM3Ljk4MTk1IDE2LjQzMjUgNy43NTc2NCAxNi4yNjE2IDcuNDk4NyAxNi4xNjYzQzcuMjQ3MzUgMTYuMDU1NCA2Ljk2ODU0IDE2LjAyMjMgNi42OTgyMSAxNi4wNzEzQzYuNDI3ODggMTYuMTIwNCA2LjE3ODQzIDE2LjI0OTIgNS45ODIwMyAxNi40NDEzTDUuOTMyMDMgMTYuNDkxM0M1Ljc3NzI0IDE2LjY0NjMgNS41OTM0MyAxNi43NjkyIDUuMzkxMSAxNi44NTMxQzUuMTg4NzcgMTYuOTM3IDQuOTcxODkgMTYuOTgwMiA0Ljc1Mjg2IDE2Ljk4MDJDNC41MzM4NCAxNi45ODAyIDQuMzE2OTYgMTYuOTM3IDQuMTE0NjMgMTYuODUzMUMzLjkxMjMgMTYuNzY5MiAzLjcyODQ5IDE2LjY0NjMgMy41NzM3IDE2LjQ5MTNDMy40MTg3NCAxNi4zMzY2IDMuMjk1ODEgMTYuMTUyNyAzLjIxMTkzIDE1Ljk1MDRDMy4xMjgwNiAxNS43NDgxIDMuMDg0ODkgMTUuNTMxMiAzLjA4NDg5IDE1LjMxMjJDMy4wODQ4OSAxNS4wOTMxIDMuMTI4MDYgMTQuODc2MyAzLjIxMTkzIDE0LjY3MzlDMy4yOTU4MSAxNC40NzE2IDMuNDE4NzQgMTQuMjg3OCAzLjU3MzcgMTQuMTMzTDMuNjIzNyAxNC4wODNDMy44MTU4MSAxMy44ODY2IDMuOTQ0NjkgMTMuNjM3MiAzLjk5MzcgMTMuMzY2OEM0LjA0MjcyIDEzLjA5NjUgNC4wMDk2MyAxMi44MTc3IDMuODk4NyAxMi41NjYzQzMuNzkzMDYgMTIuMzE5OSAzLjYxNzY2IDEyLjEwOTcgMy4zOTQwOSAxMS45NjE2QzMuMTcwNTEgMTEuODEzNSAyLjkwODUyIDExLjczNDEgMi42NDAzNiAxMS43MzNIMi40OTg3QzIuMDU2NjcgMTEuNzMzIDEuNjMyNzUgMTEuNTU3NCAxLjMyMDE5IDExLjI0NDlDMS4wMDc2MyAxMC45MzIzIDAuODMyMDMxIDEwLjUwODQgMC44MzIwMzEgMTAuMDY2M0MwLjgzMjAzMSA5LjYyNDMxIDEuMDA3NjMgOS4yMDAzOSAxLjMyMDE5IDguODg3ODNDMS42MzI3NSA4LjU3NTI3IDIuMDU2NjcgOC4zOTk2NyAyLjQ5ODcgOC4zOTk2N0gyLjU3MzdDMi44NDk1MyA4LjM5MzIyIDMuMTE3MDMgOC4zMDM5NCAzLjM0MTQ1IDguMTQzNDNDMy41NjU4NiA3Ljk4MjkzIDMuNzM2NzkgNy43NTg2MiAzLjgzMjAzIDcuNDk5NjdDMy45NDI5NiA3LjI0ODMzIDMuOTc2MDUgNi45Njk1MSAzLjkyNzAzIDYuNjk5MThDMy44NzgwMiA2LjQyODg1IDMuNzQ5MTQgNi4xNzk0MSAzLjU1NzAzIDUuOTgzMDFMMy41MDcwMyA1LjkzMzAxQzMuMzUyMDcgNS43NzgyMiAzLjIyOTE0IDUuNTk0NCAzLjE0NTI2IDUuMzkyMDdDMy4wNjEzOSA1LjE4OTc0IDMuMDE4MjIgNC45NzI4NyAzLjAxODIyIDQuNzUzODRDMy4wMTgyMiA0LjUzNDgxIDMuMDYxMzkgNC4zMTc5NCAzLjE0NTI2IDQuMTE1NjFDMy4yMjkxNCAzLjkxMzI4IDMuMzUyMDcgMy43Mjk0NiAzLjUwNzAzIDMuNTc0NjdDMy42NjE4MiAzLjQxOTcxIDMuODQ1NjMgMy4yOTY3OCA0LjA0Nzk2IDMuMjEyOTFDNC4yNTAyOSAzLjEyOTAzIDQuNDY3MTcgMy4wODU4NiA0LjY4NjIgMy4wODU4NkM0LjkwNTIyIDMuMDg1ODYgNS4xMjIxIDMuMTI5MDMgNS4zMjQ0MyAzLjIxMjkxQzUuNTI2NzYgMy4yOTY3OCA1LjcxMDU4IDMuNDE5NzEgNS44NjUzNiAzLjU3NDY3TDUuOTE1MzYgMy42MjQ2N0M2LjExMTc2IDMuODE2NzkgNi4zNjEyMSAzLjk0NTY2IDYuNjMxNTQgMy45OTQ2OEM2LjkwMTg3IDQuMDQzNjkgNy4xODA2OCA0LjAxMDYgNy40MzIwMyAzLjg5OTY3SDcuNDk4N0M3Ljc0NTE3IDMuNzk0MDQgNy45NTUzOCAzLjYxODY0IDguMTAzNDQgMy4zOTUwNkM4LjI1MTUgMy4xNzE0OSA4LjMzMDk2IDIuOTA5NSA4LjMzMjAzIDIuNjQxMzRWMi40OTk2N0M4LjMzMjAzIDIuMDU3NjUgOC41MDc2MyAxLjYzMzcyIDguODIwMTkgMS4zMjExNkM5LjEzMjc1IDEuMDA4NiA5LjU1NjY3IDAuODMzMDA4IDkuOTk4NyAwLjgzMzAwOEMxMC40NDA3IDAuODMzMDA4IDEwLjg2NDYgMS4wMDg2IDExLjE3NzIgMS4zMjExNkMxMS40ODk4IDEuNjMzNzIgMTEuNjY1NCAyLjA1NzY1IDExLjY2NTQgMi40OTk2N1YyLjU3NDY3QzExLjY2NjQgMi44NDI4MyAxMS43NDU5IDMuMTA0ODIgMTEuODk0IDMuMzI4NEMxMi4wNDIgMy41NTE5NyAxMi4yNTIyIDMuNzI3MzcgMTIuNDk4NyAzLjgzMzAxQzEyLjc1IDMuOTQzOTQgMTMuMDI4OSAzLjk3NzAzIDEzLjI5OTIgMy45MjgwMUMxMy41Njk1IDMuODc5IDEzLjgxOSAzLjc1MDEyIDE0LjAxNTQgMy41NTgwMUwxNC4wNjU0IDMuNTA4MDFDMTQuMjIwMiAzLjM1MzA1IDE0LjQwNCAzLjIzMDEyIDE0LjYwNjMgMy4xNDYyNEMxNC44MDg2IDMuMDYyMzcgMTUuMDI1NSAzLjAxOTIgMTUuMjQ0NSAzLjAxOTJDMTUuNDYzNiAzLjAxOTIgMTUuNjgwNCAzLjA2MjM3IDE1Ljg4MjggMy4xNDYyNEMxNi4wODUxIDMuMjMwMTIgMTYuMjY4OSAzLjM1MzA1IDE2LjQyMzcgMy41MDgwMUMxNi41Nzg3IDMuNjYyOCAxNi43MDE2IDMuODQ2NjEgMTYuNzg1NSA0LjA0ODk0QzE2Ljg2OTMgNC4yNTEyNyAxNi45MTI1IDQuNDY4MTUgMTYuOTEyNSA0LjY4NzE3QzE2LjkxMjUgNC45MDYyIDE2Ljg2OTMgNS4xMjMwOCAxNi43ODU1IDUuMzI1NDFDMTYuNzAxNiA1LjUyNzc0IDE2LjU3ODcgNS43MTE1NSAxNi40MjM3IDUuODY2MzRMMTYuMzczNyA1LjkxNjM0QzE2LjE4MTYgNi4xMTI3NCAxNi4wNTI3IDYuMzYyMTkgMTYuMDAzNyA2LjYzMjUyQzE1Ljk1NDcgNi45MDI4NSAxNS45ODc4IDcuMTgxNjYgMTYuMDk4NyA3LjQzMzAxVjcuNDk5NjdDMTYuMjA0MyA3Ljc0NjE1IDE2LjM3OTcgNy45NTYzNSAxNi42MDMzIDguMTA0NDJDMTYuODI2OSA4LjI1MjQ4IDE3LjA4ODkgOC4zMzE5NCAxNy4zNTcgOC4zMzMwMUgxNy40OTg3QzE3Ljk0MDcgOC4zMzMwMSAxOC4zNjQ2IDguNTA4NiAxOC42NzcyIDguODIxMTZDMTguOTg5OCA5LjEzMzcyIDE5LjE2NTQgOS41NTc2NSAxOS4xNjU0IDkuOTk5NjdDMTkuMTY1NCAxMC40NDE3IDE4Ljk4OTggMTAuODY1NiAxOC42NzcyIDExLjE3ODJDMTguMzY0NiAxMS40OTA3IDE3Ljk0MDcgMTEuNjY2MyAxNy40OTg3IDExLjY2NjNIMTcuNDIzN0MxNy4xNTU1IDExLjY2NzQgMTYuODkzNiAxMS43NDY5IDE2LjY3IDExLjg5NDlDMTYuNDQ2NCAxMi4wNDMgMTYuMjcxIDEyLjI1MzIgMTYuMTY1NCAxMi40OTk3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzIyNTRfMjAyNjFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJyZWRpcmVjdCgnZHVwbGljYXRlJyxkYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjI1NF8yMDI2NSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTQuMTY3OTcgMTIuNTAwM0gzLjMzNDY0QzIuODkyNjEgMTIuNTAwMyAyLjQ2ODY4IDEyLjMyNDcgMi4xNTYxMiAxMi4wMTIyQzEuODQzNTYgMTEuNjk5NiAxLjY2Nzk3IDExLjI3NTcgMS42Njc5NyAxMC44MzM3VjMuMzMzNjZDMS42Njc5NyAyLjg5MTYzIDEuODQzNTYgMi40Njc3MSAyLjE1NjEyIDIuMTU1MTVDMi40Njg2OCAxLjg0MjU5IDIuODkyNjEgMS42NjY5OSAzLjMzNDY0IDEuNjY2OTlIMTAuODM0NkMxMS4yNzY3IDEuNjY2OTkgMTEuNzAwNiAxLjg0MjU5IDEyLjAxMzEgMi4xNTUxNUMxMi4zMjU3IDIuNDY3NzEgMTIuNTAxMyAyLjg5MTYzIDEyLjUwMTMgMy4zMzM2NlY0LjE2Njk5TTkuMTY3OTcgNy41MDAzM0gxNi42NjhDMTcuNTg4NCA3LjUwMDMzIDE4LjMzNDYgOC4yNDY1MiAxOC4zMzQ2IDkuMTY2OTlWMTYuNjY3QzE4LjMzNDYgMTcuNTg3NSAxNy41ODg0IDE4LjMzMzcgMTYuNjY4IDE4LjMzMzdIOS4xNjc5N0M4LjI0NzQ5IDE4LjMzMzcgNy41MDEzIDE3LjU4NzUgNy41MDEzIDE2LjY2N1Y5LjE2Njk5QzcuNTAxMyA4LjI0NjUyIDguMjQ3NDkgNy41MDAzMyA5LjE2Nzk3IDcuNTAwMzNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMjI1NF8yMDI2NVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwiIWRhdGEucHVibGlzaCA/IHJlZGlyZWN0KCdkZWxldGUnLGRhdGEpIDogJydcIiBbbmdDbGFzc109XCIhZGF0YT8ucHVibGlzaCA/ICdjdXJzb3ItcG9pbnRlcicgOiAnJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MVwiIHZpZXdCb3g9XCIwIDAgNDAgNDFcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMzE2Ml8xMDQxNClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyLjUgMTUuMDIyOEgxNC4xNjY3TTE0LjE2NjcgMTUuMDIyOEgyNy41TTE0LjE2NjcgMTUuMDIyOFYyNi42ODk1QzE0LjE2NjcgMjcuMTMxNSAxNC4zNDIzIDI3LjU1NTQgMTQuNjU0OCAyNy44NjhDMTQuOTY3NCAyOC4xODA1IDE1LjM5MTMgMjguMzU2MSAxNS44MzMzIDI4LjM1NjFIMjQuMTY2N0MyNC42MDg3IDI4LjM1NjEgMjUuMDMyNiAyOC4xODA1IDI1LjM0NTIgMjcuODY4QzI1LjY1NzcgMjcuNTU1NCAyNS44MzMzIDI3LjEzMTUgMjUuODMzMyAyNi42ODk1VjE1LjAyMjhIMTQuMTY2N1pNMTYuNjY2NyAxNS4wMjI4VjEzLjM1NjFDMTYuNjY2NyAxMi45MTQxIDE2Ljg0MjMgMTIuNDkwMiAxNy4xNTQ4IDEyLjE3NzZDMTcuNDY3NCAxMS44NjUgMTcuODkxMyAxMS42ODk1IDE4LjMzMzMgMTEuNjg5NUgyMS42NjY3QzIyLjEwODcgMTEuNjg5NSAyMi41MzI2IDExLjg2NSAyMi44NDUyIDEyLjE3NzZDMjMuMTU3NyAxMi40OTAyIDIzLjMzMzMgMTIuOTE0MSAyMy4zMzMzIDEzLjM1NjFWMTUuMDIyOE0xOC4zMzMzIDE5LjE4OTVWMjQuMTg5NU0yMS42NjY3IDE5LjE4OTVWMjQuMTg5NVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJkYXRhLnB1Ymxpc2ggPyAnI0QwRDVERCcgOicjNjY3MDg1J1wiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMzE2Ml8xMDQxNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMTAgMTAuMDIzNClcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiByb2xlPVwic3dpdGNoXCIgaWQ9XCJzdXBwb3J0XCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IG10LTMgY3Vyc29yLXBvaW50ZXJcIiAoY2hhbmdlKT1cInB1Ymxpc2goJGV2ZW50LCBkYXRhLGkpXCIgW2NoZWNrZWRdPVwiZGF0YT8ucHVibGlzaFwiIFtkaXNhYmxlZF09XCIhZGF0YT8uc3RvcmVDb3VudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bGliLXBhZ2luYXRpb24gW2l0ZW1zUGVyUGFnZV09XCJwYWdlU2l6ZVwiIFtjdXJyZW50UGFnZV09XCJkeW5hbWljRGF0YS5vZmZzZXRcIiBbdG90YWxJdGVtc109XCJ0b3RhbEl0ZW1zXCJcclxuICAgICAgICAgICAgICAgIFtwYWdpbmF0aW9uU2l6ZXNdPVwicGFnaW5hdGlvblNpemVzXCIgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCIgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKHBhZ2VTaXplQ2hhbmdlKT1cIm9uUGFnZVNpemVDaGFuZ2UoJGV2ZW50KVwiPjwvbGliLXBhZ2luYXRpb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|