@csmart/ngc-smart-victim 0.1.7 → 1.13.0
Sign up to get free protection for your applications and to get access to all the features.
- package/csmart-ngc-smart-victim.d.ts +1 -15
- package/esm2020/csmart-ngc-smart-victim.mjs +5 -0
- package/esm2020/lib/caseNote/caseNote.component.mjs +185 -0
- package/esm2020/lib/common-dialog/common-dialog.component.mjs +23 -0
- package/esm2020/lib/common-dialog/common-dialog.module.mjs +38 -0
- package/esm2020/lib/common-dialog/common-dialog.service.mjs +33 -0
- package/esm2020/lib/contact/contact.component.mjs +140 -0
- package/esm2020/lib/intake.service.mjs +57 -0
- package/esm2020/lib/safetyPlan/serviceProvider.component.mjs +115 -0
- package/esm2020/lib/safetyPlan/victimSafetyPlan.component.mjs +116 -0
- package/esm2020/lib/safetyPlan/victimSafetyPlanDetail.component.mjs +340 -0
- package/esm2020/lib/shared/app.shared.module.mjs +213 -0
- package/esm2020/lib/shared/directives/phone-mask.directive.mjs +114 -0
- package/esm2020/lib/shared/validators/date.validator.mjs +59 -0
- package/esm2020/lib/shared/validators/index.mjs +2 -0
- package/esm2020/lib/smart-victim-delete-confirm.component.mjs +53 -0
- package/esm2020/lib/smart-victim-detail/smart-victim-detail.component.mjs +958 -0
- package/esm2020/lib/smart-victim.component.mjs +310 -0
- package/esm2020/lib/smart-victim.model.mjs +132 -0
- package/esm2020/lib/smart-victim.module.mjs +138 -0
- package/esm2020/lib/smart-victim.service.mjs +347 -0
- package/esm2020/lib/victim-routing.module.mjs +42 -0
- package/esm2020/lib/victimSearch/VictimSearchFilter.mjs +3 -0
- package/esm2020/lib/victimSearch/victimSearchForm.component.mjs +38 -0
- package/esm2020/public-api.mjs +12 -0
- package/fesm2015/csmart-ngc-smart-victim.mjs +3221 -0
- package/fesm2015/csmart-ngc-smart-victim.mjs.map +1 -0
- package/fesm2020/csmart-ngc-smart-victim.mjs +3210 -0
- package/fesm2020/csmart-ngc-smart-victim.mjs.map +1 -0
- package/lib/caseNote/caseNote.component.d.ts +6 -2
- package/lib/common-dialog/common-dialog.component.d.ts +4 -1
- package/lib/common-dialog/common-dialog.module.d.ts +6 -0
- package/lib/common-dialog/common-dialog.service.d.ts +4 -1
- package/lib/contact/contact.component.d.ts +4 -1
- package/lib/intake.service.d.ts +3 -0
- package/lib/safetyPlan/serviceProvider.component.d.ts +4 -1
- package/lib/safetyPlan/victimSafetyPlan.component.d.ts +7 -2
- package/lib/safetyPlan/victimSafetyPlanDetail.component.d.ts +7 -2
- package/lib/shared/app.shared.module.d.ts +30 -0
- package/lib/shared/directives/phone-mask.directive.d.ts +5 -2
- package/lib/smart-victim-delete-confirm.component.d.ts +3 -0
- package/lib/smart-victim-detail/smart-victim-detail.component.d.ts +9 -4
- package/lib/smart-victim.component.d.ts +8 -3
- package/lib/smart-victim.module.d.ts +47 -0
- package/lib/smart-victim.service.d.ts +3 -0
- package/lib/victim-routing.module.d.ts +5 -0
- package/lib/victimSearch/victimSearchForm.component.d.ts +3 -0
- package/package.json +28 -18
- package/public-api.d.ts +4 -0
- package/bundles/csmart-ngc-smart-victim.umd.js +0 -6434
- package/bundles/csmart-ngc-smart-victim.umd.js.map +0 -1
- package/bundles/csmart-ngc-smart-victim.umd.min.js +0 -16
- package/bundles/csmart-ngc-smart-victim.umd.min.js.map +0 -1
- package/csmart-ngc-smart-victim.metadata.json +0 -1
- package/esm2015/csmart-ngc-smart-victim.js +0 -25
- package/esm2015/lib/caseNote/caseNote.component.js +0 -349
- package/esm2015/lib/common-dialog/common-dialog.component.js +0 -46
- package/esm2015/lib/common-dialog/common-dialog.module.js +0 -32
- package/esm2015/lib/common-dialog/common-dialog.service.js +0 -63
- package/esm2015/lib/contact/contact.component.js +0 -232
- package/esm2015/lib/intake.service.js +0 -183
- package/esm2015/lib/safetyPlan/serviceProvider.component.js +0 -130
- package/esm2015/lib/safetyPlan/victimSafetyPlan.component.js +0 -257
- package/esm2015/lib/safetyPlan/victimSafetyPlanDetail.component.js +0 -556
- package/esm2015/lib/shared/app.shared.module.js +0 -81
- package/esm2015/lib/shared/directives/phone-mask.directive.js +0 -168
- package/esm2015/lib/shared/validators/date.validator.js +0 -108
- package/esm2015/lib/shared/validators/index.js +0 -7
- package/esm2015/lib/smart-victim-delete-confirm.component.js +0 -61
- package/esm2015/lib/smart-victim-detail/smart-victim-detail.component.js +0 -1410
- package/esm2015/lib/smart-victim.component.js +0 -476
- package/esm2015/lib/smart-victim.model.js +0 -631
- package/esm2015/lib/smart-victim.module.js +0 -84
- package/esm2015/lib/smart-victim.service.js +0 -792
- package/esm2015/lib/victim-routing.module.js +0 -40
- package/esm2015/lib/victimSearch/VictimSearchFilter.js +0 -20
- package/esm2015/lib/victimSearch/victimSearchForm.component.js +0 -59
- package/esm2015/public-api.js +0 -13
- package/esm5/csmart-ngc-smart-victim.js +0 -25
- package/esm5/lib/caseNote/caseNote.component.js +0 -372
- package/esm5/lib/common-dialog/common-dialog.component.js +0 -48
- package/esm5/lib/common-dialog/common-dialog.module.js +0 -36
- package/esm5/lib/common-dialog/common-dialog.service.js +0 -75
- package/esm5/lib/contact/contact.component.js +0 -285
- package/esm5/lib/intake.service.js +0 -194
- package/esm5/lib/safetyPlan/serviceProvider.component.js +0 -99
- package/esm5/lib/safetyPlan/victimSafetyPlan.component.js +0 -306
- package/esm5/lib/safetyPlan/victimSafetyPlanDetail.component.js +0 -628
- package/esm5/lib/shared/app.shared.module.js +0 -85
- package/esm5/lib/shared/directives/phone-mask.directive.js +0 -184
- package/esm5/lib/shared/validators/date.validator.js +0 -108
- package/esm5/lib/shared/validators/index.js +0 -7
- package/esm5/lib/smart-victim-delete-confirm.component.js +0 -51
- package/esm5/lib/smart-victim-detail/smart-victim-detail.component.js +0 -1502
- package/esm5/lib/smart-victim.component.js +0 -528
- package/esm5/lib/smart-victim.model.js +0 -541
- package/esm5/lib/smart-victim.module.js +0 -84
- package/esm5/lib/smart-victim.service.js +0 -1063
- package/esm5/lib/victim-routing.module.js +0 -44
- package/esm5/lib/victimSearch/VictimSearchFilter.js +0 -24
- package/esm5/lib/victimSearch/victimSearchForm.component.js +0 -70
- package/esm5/public-api.js +0 -13
- package/fesm2015/csmart-ngc-smart-victim.js +0 -5690
- package/fesm2015/csmart-ngc-smart-victim.js.map +0 -1
- package/fesm5/csmart-ngc-smart-victim.js +0 -6211
- package/fesm5/csmart-ngc-smart-victim.js.map +0 -1
@@ -1,528 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* @fileoverview added by tsickle
|
3
|
-
* Generated from: lib/smart-victim.component.ts
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
5
|
-
*/
|
6
|
-
import { DOCUMENT } from '@angular/common';
|
7
|
-
import { Component, ViewChild, Input, Inject } from '@angular/core';
|
8
|
-
import { ActivatedRoute, Router } from '@angular/router';
|
9
|
-
import { MatTableDataSource } from '@angular/material/table';
|
10
|
-
import { MatPaginator, MatSort, MatSnackBar } from '@angular/material';
|
11
|
-
import { MatDialog } from '@angular/material';
|
12
|
-
import { AccessType, } from "@csmart/ngc-smart-core";
|
13
|
-
import { NgcSmartVictimService } from './smart-victim.service';
|
14
|
-
import { VictimListFilter, SMART_WARRANT_URL } from './smart-victim.model';
|
15
|
-
//import { SmartVictimDetailComponent } from './smart-victim-detail/smart-victim-detail.component';
|
16
|
-
import { IntakeStep, IntakeServicesComponent, } from './intake.service';
|
17
|
-
var NgcSmartVictimComponent = /** @class */ (function () {
|
18
|
-
function NgcSmartVictimComponent(dialog, victimService, router, route, snackBar, intakeService, smartWarrantUrl, document) {
|
19
|
-
this.dialog = dialog;
|
20
|
-
this.victimService = victimService;
|
21
|
-
this.router = router;
|
22
|
-
this.route = route;
|
23
|
-
this.snackBar = snackBar;
|
24
|
-
this.intakeService = intakeService;
|
25
|
-
this.smartWarrantUrl = smartWarrantUrl;
|
26
|
-
this.document = document;
|
27
|
-
this.appModuleId = '';
|
28
|
-
this.activatedRoute = null;
|
29
|
-
this.victims = [];
|
30
|
-
this.victimDetail = (/** @type {?} */ ({}));
|
31
|
-
this.showDetail = false;
|
32
|
-
this.victimListFilter = new VictimListFilter();
|
33
|
-
this.victimListDataSource = new MatTableDataSource();
|
34
|
-
this.doSpin = false;
|
35
|
-
this.showListFlag = false;
|
36
|
-
this.msg = "";
|
37
|
-
this.isIntake = false;
|
38
|
-
}
|
39
|
-
// private onChange(filter: VictimListFilter) {
|
40
|
-
// console.log('filter in onchange');
|
41
|
-
// console.log(filter);
|
42
|
-
// this.getVictimList(filter);
|
43
|
-
// }
|
44
|
-
// private onChange(filter: VictimListFilter) {
|
45
|
-
// console.log('filter in onchange');
|
46
|
-
// console.log(filter);
|
47
|
-
// this.getVictimList(filter);
|
48
|
-
// }
|
49
|
-
/**
|
50
|
-
* @param {?} filterValue
|
51
|
-
* @return {?}
|
52
|
-
*/
|
53
|
-
NgcSmartVictimComponent.prototype.applyFilter =
|
54
|
-
// private onChange(filter: VictimListFilter) {
|
55
|
-
// console.log('filter in onchange');
|
56
|
-
// console.log(filter);
|
57
|
-
// this.getVictimList(filter);
|
58
|
-
// }
|
59
|
-
/**
|
60
|
-
* @param {?} filterValue
|
61
|
-
* @return {?}
|
62
|
-
*/
|
63
|
-
function (filterValue) {
|
64
|
-
this.victimListDataSource.filter = filterValue.trim().toLowerCase();
|
65
|
-
};
|
66
|
-
/**
|
67
|
-
* @return {?}
|
68
|
-
*/
|
69
|
-
NgcSmartVictimComponent.prototype.addRecord = /**
|
70
|
-
* @return {?}
|
71
|
-
*/
|
72
|
-
function () {
|
73
|
-
this.showDetail = true;
|
74
|
-
this.showAdd = false;
|
75
|
-
this.victimDetail = null;
|
76
|
-
this.showListFlag = false;
|
77
|
-
};
|
78
|
-
/**
|
79
|
-
* @param {?} record
|
80
|
-
* @return {?}
|
81
|
-
*/
|
82
|
-
NgcSmartVictimComponent.prototype.editVictimDetail = /**
|
83
|
-
* @param {?} record
|
84
|
-
* @return {?}
|
85
|
-
*/
|
86
|
-
function (record) {
|
87
|
-
console.log("victim edit record");
|
88
|
-
console.log(record);
|
89
|
-
console.log(record.victimId);
|
90
|
-
this.victimDetail = record;
|
91
|
-
this.showDetail = true;
|
92
|
-
this.showAdd = false;
|
93
|
-
this.showListFlag = false;
|
94
|
-
};
|
95
|
-
/**
|
96
|
-
* @param {?} detail
|
97
|
-
* @return {?}
|
98
|
-
*/
|
99
|
-
NgcSmartVictimComponent.prototype.save = /**
|
100
|
-
* @param {?} detail
|
101
|
-
* @return {?}
|
102
|
-
*/
|
103
|
-
function (detail) {
|
104
|
-
this.showDetail = false;
|
105
|
-
this.showAdd = true;
|
106
|
-
this.showListFlag = true;
|
107
|
-
};
|
108
|
-
/**
|
109
|
-
* @return {?}
|
110
|
-
*/
|
111
|
-
NgcSmartVictimComponent.prototype.cancel = /**
|
112
|
-
* @return {?}
|
113
|
-
*/
|
114
|
-
function () {
|
115
|
-
this.showDetail = false;
|
116
|
-
this.victimDetail = (/** @type {?} */ ({}));
|
117
|
-
};
|
118
|
-
/**
|
119
|
-
* @return {?}
|
120
|
-
*/
|
121
|
-
NgcSmartVictimComponent.prototype.ngAfterViewInit = /**
|
122
|
-
* @return {?}
|
123
|
-
*/
|
124
|
-
function () {
|
125
|
-
this.victimListDataSource.paginator = this.paginator;
|
126
|
-
this.victimListDataSource.sort = this.sort;
|
127
|
-
};
|
128
|
-
/**
|
129
|
-
* @return {?}
|
130
|
-
*/
|
131
|
-
NgcSmartVictimComponent.prototype.ngOnChanges = /**
|
132
|
-
* @return {?}
|
133
|
-
*/
|
134
|
-
function () {
|
135
|
-
this.updateAccessControlConfig = {
|
136
|
-
accessType: AccessType.UPDATE,
|
137
|
-
appModuleId: this.appModuleId,
|
138
|
-
roleId: null,
|
139
|
-
route: this.activatedRoute.snapshot,
|
140
|
-
};
|
141
|
-
this.createAccessControlConfig = {
|
142
|
-
accessType: AccessType.CREATE,
|
143
|
-
appModuleId: this.appModuleId,
|
144
|
-
roleId: null,
|
145
|
-
route: this.activatedRoute.snapshot,
|
146
|
-
};
|
147
|
-
this.deleteAccessControlConfig = {
|
148
|
-
accessType: AccessType.DELETE,
|
149
|
-
appModuleId: this.appModuleId,
|
150
|
-
roleId: null,
|
151
|
-
route: this.activatedRoute.snapshot,
|
152
|
-
};
|
153
|
-
};
|
154
|
-
/**
|
155
|
-
* @return {?}
|
156
|
-
*/
|
157
|
-
NgcSmartVictimComponent.prototype.ngOnInit = /**
|
158
|
-
* @return {?}
|
159
|
-
*/
|
160
|
-
function () {
|
161
|
-
var _this = this;
|
162
|
-
/** @type {?} */
|
163
|
-
var data = this.route.snapshot.data;
|
164
|
-
/** @type {?} */
|
165
|
-
var myPath = this.router.url.slice(-10);
|
166
|
-
console.log("smart-victim ngOnInit");
|
167
|
-
console.log(this.intakeFlag);
|
168
|
-
console.log(myPath);
|
169
|
-
if (this.intakeFlag || myPath == "victimHome") {
|
170
|
-
this.isIntake = true;
|
171
|
-
}
|
172
|
-
this.displayedColumns = ["lastName", "firstName"];
|
173
|
-
if (this.showRelationshipColumn == true ||
|
174
|
-
myPath == "victimList" ||
|
175
|
-
myPath == "victimHome") {
|
176
|
-
this.displayedColumns.push("relationship");
|
177
|
-
}
|
178
|
-
if (this.showOffenderNameColumn == true) {
|
179
|
-
this.displayedColumns.push("offenderName");
|
180
|
-
}
|
181
|
-
if (this.showOffenderPhoneColumn == true ||
|
182
|
-
myPath == "victimList" ||
|
183
|
-
myPath == "victimHome") {
|
184
|
-
this.displayedColumns.push("homePhone");
|
185
|
-
}
|
186
|
-
this.displayedColumns.push("victimId");
|
187
|
-
if (this.showSearchForm == true) {
|
188
|
-
this.showListFlag = false;
|
189
|
-
}
|
190
|
-
console.log("this.showSearchForm");
|
191
|
-
console.log(this.showSearchForm);
|
192
|
-
console.log("myPath");
|
193
|
-
console.log(myPath);
|
194
|
-
if (this.showSearchForm == false ||
|
195
|
-
myPath == "victimList" ||
|
196
|
-
myPath == "victimHome") {
|
197
|
-
/** @type {?} */
|
198
|
-
var myOffenderId;
|
199
|
-
if (this.offenderId) {
|
200
|
-
myOffenderId = this.offenderId;
|
201
|
-
}
|
202
|
-
else {
|
203
|
-
console.log("back from previous page");
|
204
|
-
this.showAdd = true;
|
205
|
-
this.showRelationshipColumn = true;
|
206
|
-
//this.displayedColumns.push("relationship");
|
207
|
-
this.showOffenderPhoneColumn = true;
|
208
|
-
// this.displayedColumns.push("homePhone");
|
209
|
-
this.accessByModule = "true";
|
210
|
-
this.showEdit = "true";
|
211
|
-
this.showCaseNote = "true";
|
212
|
-
this.showSafetyPlan = "true";
|
213
|
-
myOffenderId = data.selectedOffender.offenderId;
|
214
|
-
}
|
215
|
-
/** @type {?} */
|
216
|
-
var victimListFilter = {
|
217
|
-
offenderId: myOffenderId,
|
218
|
-
lastName: null,
|
219
|
-
firstName: null,
|
220
|
-
pdid: null,
|
221
|
-
birthDate: null,
|
222
|
-
};
|
223
|
-
console.log("victimListFilter in smar-victim componenet");
|
224
|
-
console.log(victimListFilter);
|
225
|
-
this.victimService
|
226
|
-
.getVictimListByFilter(victimListFilter)
|
227
|
-
.subscribe((/**
|
228
|
-
* @param {?} data
|
229
|
-
* @return {?}
|
230
|
-
*/
|
231
|
-
function (data) {
|
232
|
-
_this.victimListDataSource.data = data;
|
233
|
-
_this.victims = data;
|
234
|
-
data.forEach((/**
|
235
|
-
* @param {?} d
|
236
|
-
* @return {?}
|
237
|
-
*/
|
238
|
-
function (d) {
|
239
|
-
if (d.homePhone == null || d.homePhone == "") {
|
240
|
-
d.homePhone = d.cellPhone;
|
241
|
-
}
|
242
|
-
if (d.homePhone == null || d.homePhone == "") {
|
243
|
-
d.homePhone = d.workPhone;
|
244
|
-
}
|
245
|
-
}));
|
246
|
-
console.log("victim data at line 179");
|
247
|
-
console.log(_this.victims);
|
248
|
-
console.log("showListFlag");
|
249
|
-
console.log(_this.showListFlag);
|
250
|
-
_this.showListFlag = true;
|
251
|
-
if (data.length == 0) {
|
252
|
-
_this.msg = "No Record Found!";
|
253
|
-
}
|
254
|
-
}));
|
255
|
-
}
|
256
|
-
else {
|
257
|
-
console.log("find filter");
|
258
|
-
console.log(this.victimListFilter);
|
259
|
-
if (this.showListFlag === true) {
|
260
|
-
if (this.victimListFilter != null) {
|
261
|
-
this.victimService
|
262
|
-
.getVictimListByFilter(this.victimListFilter)
|
263
|
-
.subscribe((/**
|
264
|
-
* @param {?} data
|
265
|
-
* @return {?}
|
266
|
-
*/
|
267
|
-
function (data) {
|
268
|
-
_this.victimListDataSource.data = data;
|
269
|
-
_this.victims = data;
|
270
|
-
console.log("victim data at line 201");
|
271
|
-
console.log(data);
|
272
|
-
}));
|
273
|
-
}
|
274
|
-
}
|
275
|
-
}
|
276
|
-
};
|
277
|
-
/**
|
278
|
-
* @param {?} phoneNumberString
|
279
|
-
* @return {?}
|
280
|
-
*/
|
281
|
-
NgcSmartVictimComponent.prototype.formatPhoneNumber = /**
|
282
|
-
* @param {?} phoneNumberString
|
283
|
-
* @return {?}
|
284
|
-
*/
|
285
|
-
function (phoneNumberString) {
|
286
|
-
if (!phoneNumberString)
|
287
|
-
return "";
|
288
|
-
/** @type {?} */
|
289
|
-
var cleaned = ("" + phoneNumberString).replace(/\D/g, "");
|
290
|
-
/** @type {?} */
|
291
|
-
var match = cleaned.match(/^(\d{3})(\d{3})(\d{4})$/);
|
292
|
-
if (match) {
|
293
|
-
return "(" + match[1] + ") " + match[2] + "-" + match[3];
|
294
|
-
}
|
295
|
-
return "";
|
296
|
-
};
|
297
|
-
/**
|
298
|
-
* @return {?}
|
299
|
-
*/
|
300
|
-
NgcSmartVictimComponent.prototype.saveIntake = /**
|
301
|
-
* @return {?}
|
302
|
-
*/
|
303
|
-
function () {
|
304
|
-
var _this = this;
|
305
|
-
if (!this.isIntake) {
|
306
|
-
return;
|
307
|
-
}
|
308
|
-
/** @type {?} */
|
309
|
-
var intakeStep = (/** @type {?} */ ({
|
310
|
-
intakeStepId: IntakeStep.VictimInformation,
|
311
|
-
offenderId: this.offenderId,
|
312
|
-
modifiedBy: this.staffId,
|
313
|
-
}));
|
314
|
-
this.intakeService
|
315
|
-
.updateIntakeSteps(this.offenderId, intakeStep)
|
316
|
-
.subscribe((/**
|
317
|
-
* @param {?} res
|
318
|
-
* @return {?}
|
319
|
-
*/
|
320
|
-
function (res) {
|
321
|
-
console.log("save intake step.");
|
322
|
-
_this.snackBar.open("Status Saved.", "", {
|
323
|
-
duration: 3000,
|
324
|
-
});
|
325
|
-
//this.router.navigate(['/warrant '], { queryParams: { intake: 1 } });
|
326
|
-
_this.document.location.href = _this.smartWarrantUrl + "/warrant";
|
327
|
-
}));
|
328
|
-
};
|
329
|
-
/**
|
330
|
-
* @param {?} victimId
|
331
|
-
* @return {?}
|
332
|
-
*/
|
333
|
-
NgcSmartVictimComponent.prototype.goToCaseNote = /**
|
334
|
-
* @param {?} victimId
|
335
|
-
* @return {?}
|
336
|
-
*/
|
337
|
-
function (victimId) {
|
338
|
-
this.router.navigate(["casenote", victimId]);
|
339
|
-
};
|
340
|
-
/**
|
341
|
-
* @param {?} victimId
|
342
|
-
* @return {?}
|
343
|
-
*/
|
344
|
-
NgcSmartVictimComponent.prototype.goToSaftyPlan = /**
|
345
|
-
* @param {?} victimId
|
346
|
-
* @return {?}
|
347
|
-
*/
|
348
|
-
function (victimId) {
|
349
|
-
this.router.navigate(["saftyPlan", victimId]);
|
350
|
-
};
|
351
|
-
/**
|
352
|
-
* @param {?} filter
|
353
|
-
* @return {?}
|
354
|
-
*/
|
355
|
-
NgcSmartVictimComponent.prototype.getVictimList = /**
|
356
|
-
* @param {?} filter
|
357
|
-
* @return {?}
|
358
|
-
*/
|
359
|
-
function (filter) {
|
360
|
-
var _this = this;
|
361
|
-
this.victimListFilter = filter;
|
362
|
-
console.log("this.victimListFilter inside getVictimList");
|
363
|
-
console.log(this.victimListFilter);
|
364
|
-
this.doSpin = true;
|
365
|
-
this.victimService.getVictimListByFilter(filter).subscribe((/**
|
366
|
-
* @param {?} data
|
367
|
-
* @return {?}
|
368
|
-
*/
|
369
|
-
function (data) {
|
370
|
-
_this.victimListDataSource.data = data;
|
371
|
-
_this.doSpin = !_this.doSpin;
|
372
|
-
if (data.length > 0) {
|
373
|
-
_this.showListFlag = true;
|
374
|
-
}
|
375
|
-
else {
|
376
|
-
_this.msg = "No record found!";
|
377
|
-
}
|
378
|
-
}), (/**
|
379
|
-
* @param {?} err
|
380
|
-
* @return {?}
|
381
|
-
*/
|
382
|
-
function (err) {
|
383
|
-
_this.doSpin = !_this.doSpin;
|
384
|
-
}));
|
385
|
-
};
|
386
|
-
NgcSmartVictimComponent.decorators = [
|
387
|
-
{ type: Component, args: [{
|
388
|
-
selector: "csmart-victim",
|
389
|
-
template: "<div *ngIf=\"showSearchForm\">\r\n <app-victim-search-form\r\n (onSearch)=\"getVictimList($event)\">\r\n </app-victim-search-form>\r\n</div>\r\n\r\n<div *ngIf=\"showDetail\">\r\n <csmart-victim-detail [victimDetail]=\"victimDetail\" \r\n [staffId]=\"staffId\"\r\n [offenderId] =\"offenderId\"\r\n [isIntake]=\"isIntake\"\r\n (onSave)=\"save($event)\" \r\n (onCancel)=\"cancel()\" >\r\n</csmart-victim-detail>\r\n</div>\r\n<div class=\"main-container\">\r\n \r\n <div class=\"add-action\" *ngIf=\"showAdd\">\r\n <button mat-raised-button color=\"primary\" \r\n accessControl\r\n [accessControlConfig]=\"createAccessControlConfig\" \r\n (click)=\"addRecord()\">\r\n <mat-icon>add</mat-icon>\r\n Add Victim\r\n </button>\r\n \r\n\r\n <div *ngIf=\"isIntake\">\r\n <button \r\n mat-raised-button \r\n color=\"primary\" \r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\" \r\n (click)=\"saveIntake()\">\r\n Continue\r\n </button> \r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"showListFlag\">\r\n <mat-card id=\"divVictim\" >\r\n <mat-card-content >\r\n <mat-table #table [dataSource]=\"victimListDataSource\" >\r\n\r\n <ng-container matColumnDef=\"lastName\">\r\n <mat-header-cell *matHeaderCellDef>Victim Last Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.lastName}} </mat-cell>\r\n </ng-container>\r\n\r\n\r\n <ng-container matColumnDef=\"firstName\">\r\n <mat-header-cell *matHeaderCellDef >Victim First Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.firstName}} </mat-cell>\r\n </ng-container>\r\n \r\n <div *ngIf=\"showRelationshipColumn\">\r\n <ng-container matColumnDef=\"relationship\">\r\n <mat-header-cell *matHeaderCellDef >Relationship to Offender</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.relationship}} </mat-cell>\r\n </ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"showOffenderPhoneColumn\">\r\n <ng-container matColumnDef=\"homePhone\">\r\n <mat-header-cell *matHeaderCellDef >Phone Number</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{formatPhoneNumber(row.homePhone)}} </mat-cell>\r\n </ng-container>\r\n </div>\r\n \r\n <div *ngIf=\"showOffenderNameColumn\">\r\n <ng-container matColumnDef=\"offenderName\">\r\n <mat-header-cell *matHeaderCellDef>Offender Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.offenderName}} </mat-cell>\r\n </ng-container>\r\n </div>\r\n \r\n <ng-container matColumnDef=\"victimId\">\r\n <mat-header-cell *matHeaderCellDef ></mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" >\r\n \r\n <!-- <div *ngIf=\"accessByModule\">\r\n <mat-checkbox></mat-checkbox>\r\n </div> -->\r\n \r\n <div *ngIf=\"showEdit\">\r\n <button class=\"edit-btn\" mat-icon-button color=\"primary\" matTooltip=\"View/Edit Victim\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\" \r\n (click)=\"editVictimDetail(row)\">\r\n <i class=\"material-icons\">mode_edit</i>\r\n </button>\r\n </div>\r\n\r\n \r\n\r\n \r\n\r\n <div *ngIf=\"showCaseNote\">\r\n <button type=\"button\" matTooltip=\"CaseNote\" mat-raised-button color=\"primary\" \r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\" \r\n (click)=\"goToCaseNote(row.victimId)\"> \r\n <span class=\"glyphicon glyphicon-pencil\" ></span> Case Note\r\n </button> \r\n </div>\r\n \r\n \r\n <div *ngIf=\"showSafetyPlan\">\r\n <button type=\"button\" matTooltip=\"safety plan\" mat-raised-button color=\"primary\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\" \r\n (click)=\"goToSaftyPlan(row.victimId)\"> \r\n <span class=\"glyphicon glyphicon-pencil\" ></span> Safety Plan\r\n </button>\r\n </div>\r\n \r\n \r\n </mat-cell>\r\n </ng-container>\r\n\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns\" class=\"example-header-row\"></mat-header-row>\r\n <mat-row *matRowDef=\"let row; columns: displayedColumns\" class=\"example-row\"></mat-row>\r\n </mat-table>\r\n\r\n <mat-paginator #paginator [pageSize]=\"10\" [pageSizeOptions]=\"[5, 10, 25, 100]\"></mat-paginator> \r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n\r\n <div>\r\n <b>{{msg}}</b>\r\n </div>\r\n</div>",
|
390
|
-
styles: ["div.services{max-width:500px;margin:auto;border:3px solid #73ad21}.rTable{display:block;width:100%}.rTableBody,.rTableFoot,.rTableHeading,.rTableRow{clear:both}.rTableFoot,.rTableHead{background-color:#ddd;font-weight:700}.rTableCell,.rTableHead{border:0;float:left;padding:1px;width:28%}.rTable:after{visibility:hidden;display:block;font-size:0;content:\" \";clear:both;height:0}.victimSearch{display:-ms-grid;display:grid;-ms-grid-columns:1fr 1fr 1fr;grid-template-columns:1fr 1fr 1fr;grid-column-gap:10px}.edit-btn{margin-right:4px}.main-container{display:flex;margin-top:8px}.add-action{display:flex;justify-content:flex-end;margin-bottom:8px}.example-headers-align .mat-expansion-panel-header-description,.example-headers-align .mat-expansion-panel-header-title{flex-basis:0}.example-headers-align .mat-expansion-panel-header-description{justify-content:space-between;align-items:center}mat-form-field{margin-right:12px}.actions{display:flex;justify-content:space-around}.Row{display:table;width:100%;table-layout:fixed}.Column{display:table-cell}.sp-form textarea{float:left;margin-top:20px;margin-bottom:10px;width:462px;height:70px;overflow:auto;box-sizing:border-box}.mat-column-firstName,.mat-column-homePhone,.mat-column-lastName,.mat-column-offenderName,.mat-column-relationship{word-wrap:break-word!important;white-space:unset!important;flex:0 0 15%!important;width:15%!important;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mat-column-victimId{word-wrap:break-word!important;white-space:unset!important;flex:0 0 25%!important;width:25%!important;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}"]
|
391
|
-
}] }
|
392
|
-
];
|
393
|
-
/** @nocollapse */
|
394
|
-
NgcSmartVictimComponent.ctorParameters = function () { return [
|
395
|
-
{ type: MatDialog },
|
396
|
-
{ type: NgcSmartVictimService },
|
397
|
-
{ type: Router },
|
398
|
-
{ type: ActivatedRoute },
|
399
|
-
{ type: MatSnackBar },
|
400
|
-
{ type: IntakeServicesComponent },
|
401
|
-
{ type: String, decorators: [{ type: Inject, args: [SMART_WARRANT_URL,] }] },
|
402
|
-
{ type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
|
403
|
-
]; };
|
404
|
-
NgcSmartVictimComponent.propDecorators = {
|
405
|
-
offenderId: [{ type: Input }],
|
406
|
-
staffId: [{ type: Input }],
|
407
|
-
staffRole: [{ type: Input }],
|
408
|
-
showCaseNote: [{ type: Input }],
|
409
|
-
showSafetyPlan: [{ type: Input }],
|
410
|
-
showAdd: [{ type: Input }],
|
411
|
-
showEdit: [{ type: Input }],
|
412
|
-
showRelationshipColumn: [{ type: Input }],
|
413
|
-
showOffenderNameColumn: [{ type: Input }],
|
414
|
-
showOffenderPhoneColumn: [{ type: Input }],
|
415
|
-
showSearchForm: [{ type: Input }],
|
416
|
-
accessByModule: [{ type: Input }],
|
417
|
-
intakeFlag: [{ type: Input }],
|
418
|
-
appModuleId: [{ type: Input }],
|
419
|
-
activatedRoute: [{ type: Input }],
|
420
|
-
paginator: [{ type: ViewChild, args: [MatPaginator,] }],
|
421
|
-
sort: [{ type: ViewChild, args: [MatSort,] }]
|
422
|
-
};
|
423
|
-
return NgcSmartVictimComponent;
|
424
|
-
}());
|
425
|
-
export { NgcSmartVictimComponent };
|
426
|
-
if (false) {
|
427
|
-
/** @type {?} */
|
428
|
-
NgcSmartVictimComponent.prototype.offenderId;
|
429
|
-
/** @type {?} */
|
430
|
-
NgcSmartVictimComponent.prototype.staffId;
|
431
|
-
/** @type {?} */
|
432
|
-
NgcSmartVictimComponent.prototype.staffRole;
|
433
|
-
/** @type {?} */
|
434
|
-
NgcSmartVictimComponent.prototype.showCaseNote;
|
435
|
-
/** @type {?} */
|
436
|
-
NgcSmartVictimComponent.prototype.showSafetyPlan;
|
437
|
-
/** @type {?} */
|
438
|
-
NgcSmartVictimComponent.prototype.showAdd;
|
439
|
-
/** @type {?} */
|
440
|
-
NgcSmartVictimComponent.prototype.showEdit;
|
441
|
-
/** @type {?} */
|
442
|
-
NgcSmartVictimComponent.prototype.showRelationshipColumn;
|
443
|
-
/** @type {?} */
|
444
|
-
NgcSmartVictimComponent.prototype.showOffenderNameColumn;
|
445
|
-
/** @type {?} */
|
446
|
-
NgcSmartVictimComponent.prototype.showOffenderPhoneColumn;
|
447
|
-
/** @type {?} */
|
448
|
-
NgcSmartVictimComponent.prototype.showSearchForm;
|
449
|
-
/** @type {?} */
|
450
|
-
NgcSmartVictimComponent.prototype.accessByModule;
|
451
|
-
/** @type {?} */
|
452
|
-
NgcSmartVictimComponent.prototype.intakeFlag;
|
453
|
-
/** @type {?} */
|
454
|
-
NgcSmartVictimComponent.prototype.appModuleId;
|
455
|
-
/** @type {?} */
|
456
|
-
NgcSmartVictimComponent.prototype.activatedRoute;
|
457
|
-
/** @type {?} */
|
458
|
-
NgcSmartVictimComponent.prototype.paginator;
|
459
|
-
/** @type {?} */
|
460
|
-
NgcSmartVictimComponent.prototype.sort;
|
461
|
-
/** @type {?} */
|
462
|
-
NgcSmartVictimComponent.prototype.displayedColumns;
|
463
|
-
/** @type {?} */
|
464
|
-
NgcSmartVictimComponent.prototype.victims;
|
465
|
-
/** @type {?} */
|
466
|
-
NgcSmartVictimComponent.prototype.victimDetail;
|
467
|
-
/** @type {?} */
|
468
|
-
NgcSmartVictimComponent.prototype.showDetail;
|
469
|
-
/** @type {?} */
|
470
|
-
NgcSmartVictimComponent.prototype.victimListFilter;
|
471
|
-
/** @type {?} */
|
472
|
-
NgcSmartVictimComponent.prototype.victimListDataSource;
|
473
|
-
/** @type {?} */
|
474
|
-
NgcSmartVictimComponent.prototype.doSpin;
|
475
|
-
/** @type {?} */
|
476
|
-
NgcSmartVictimComponent.prototype.showListFlag;
|
477
|
-
/** @type {?} */
|
478
|
-
NgcSmartVictimComponent.prototype.msg;
|
479
|
-
/** @type {?} */
|
480
|
-
NgcSmartVictimComponent.prototype.isIntake;
|
481
|
-
/** @type {?} */
|
482
|
-
NgcSmartVictimComponent.prototype.updateAccessControlConfig;
|
483
|
-
/** @type {?} */
|
484
|
-
NgcSmartVictimComponent.prototype.createAccessControlConfig;
|
485
|
-
/** @type {?} */
|
486
|
-
NgcSmartVictimComponent.prototype.deleteAccessControlConfig;
|
487
|
-
/**
|
488
|
-
* @type {?}
|
489
|
-
* @private
|
490
|
-
*/
|
491
|
-
NgcSmartVictimComponent.prototype.dialog;
|
492
|
-
/**
|
493
|
-
* @type {?}
|
494
|
-
* @private
|
495
|
-
*/
|
496
|
-
NgcSmartVictimComponent.prototype.victimService;
|
497
|
-
/**
|
498
|
-
* @type {?}
|
499
|
-
* @private
|
500
|
-
*/
|
501
|
-
NgcSmartVictimComponent.prototype.router;
|
502
|
-
/**
|
503
|
-
* @type {?}
|
504
|
-
* @private
|
505
|
-
*/
|
506
|
-
NgcSmartVictimComponent.prototype.route;
|
507
|
-
/**
|
508
|
-
* @type {?}
|
509
|
-
* @private
|
510
|
-
*/
|
511
|
-
NgcSmartVictimComponent.prototype.snackBar;
|
512
|
-
/**
|
513
|
-
* @type {?}
|
514
|
-
* @private
|
515
|
-
*/
|
516
|
-
NgcSmartVictimComponent.prototype.intakeService;
|
517
|
-
/**
|
518
|
-
* @type {?}
|
519
|
-
* @private
|
520
|
-
*/
|
521
|
-
NgcSmartVictimComponent.prototype.smartWarrantUrl;
|
522
|
-
/**
|
523
|
-
* @type {?}
|
524
|
-
* @private
|
525
|
-
*/
|
526
|
-
NgcSmartVictimComponent.prototype.document;
|
527
|
-
}
|
528
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmljdGltLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjc21hcnQvbmdjLXNtYXJ0LXZpY3RpbS8iLCJzb3VyY2VzIjpbImxpYi9zbWFydC12aWN0aW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQXlCLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsY0FBYyxFQUFDLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFDLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RFLE9BQU8sRUFBaUMsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0UsT0FBTyxFQUlMLFVBQVUsR0FDWCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBa0IsZ0JBQWdCLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFJbkcsT0FBTyxFQUVMLFVBQVUsRUFDVix1QkFBdUIsR0FDeEIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQjtJQXlDRSxpQ0FDVSxNQUFpQixFQUNqQixhQUFvQyxFQUNwQyxNQUFjLEVBQ2QsS0FBcUIsRUFDckIsUUFBcUIsRUFDckIsYUFBc0MsRUFDWCxlQUF1QixFQUNoQyxRQUFhO1FBUC9CLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsa0JBQWEsR0FBYixhQUFhLENBQXVCO1FBQ3BDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JCLGtCQUFhLEdBQWIsYUFBYSxDQUF5QjtRQUNYLG9CQUFlLEdBQWYsZUFBZSxDQUFRO1FBQ2hDLGFBQVEsR0FBUixRQUFRLENBQUs7UUE3QmhDLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLG1CQUFjLEdBQW1CLElBQUksQ0FBQztRQU8vQyxZQUFPLEdBQWEsRUFBRSxDQUFDO1FBQ3ZCLGlCQUFZLEdBQUcsbUJBQVEsRUFBRSxFQUFBLENBQUM7UUFDMUIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixxQkFBZ0IsR0FBcUIsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1FBQzVELHlCQUFvQixHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUNoRCxXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ3hCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLFFBQUcsR0FBVyxFQUFFLENBQUM7UUFDakIsYUFBUSxHQUFHLEtBQUssQ0FBQztJQWNkLENBQUM7SUFFSiwrQ0FBK0M7SUFDL0MsdUNBQXVDO0lBQ3ZDLHlCQUF5QjtJQUN6QixnQ0FBZ0M7SUFDaEMsSUFBSTs7Ozs7Ozs7OztJQUVKLDZDQUFXOzs7Ozs7Ozs7O0lBQVgsVUFBWSxXQUFtQjtRQUM3QixJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0RSxDQUFDOzs7O0lBQ0QsMkNBQVM7OztJQUFUO1FBQ0UsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQzs7Ozs7SUFFRCxrREFBZ0I7Ozs7SUFBaEIsVUFBaUIsTUFBTTtRQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDbEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDOzs7OztJQUVELHNDQUFJOzs7O0lBQUosVUFBSyxNQUFjO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7Ozs7SUFFRCx3Q0FBTTs7O0lBQU47UUFDRSxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLG1CQUFRLEVBQUUsRUFBQSxDQUFDO0lBQ2pDLENBQUM7Ozs7SUFFRCxpREFBZTs7O0lBQWY7UUFDRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDckQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQzdDLENBQUM7Ozs7SUFFRCw2Q0FBVzs7O0lBQVg7UUFDRyxJQUFJLENBQUMseUJBQXlCLEdBQUc7WUFDL0IsVUFBVSxFQUFFLFVBQVUsQ0FBQyxNQUFNO1lBQzdCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixNQUFNLEVBQUUsSUFBSTtZQUNaLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVE7U0FDcEMsQ0FBQztRQUNGLElBQUksQ0FBQyx5QkFBeUIsR0FBRztZQUMvQixVQUFVLEVBQUUsVUFBVSxDQUFDLE1BQU07WUFDN0IsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLE1BQU0sRUFBRSxJQUFJO1lBQ1osS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUTtTQUNwQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLHlCQUF5QixHQUFHO1lBQy9CLFVBQVUsRUFBRSxVQUFVLENBQUMsTUFBTTtZQUM3QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsTUFBTSxFQUFFLElBQUk7WUFDWixLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRO1NBQ3BDLENBQUM7SUFDTCxDQUFDOzs7O0lBRUQsMENBQVE7OztJQUFSO1FBQUEsaUJBdUhDOztZQXRISyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSTs7WUFDL0IsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUV2QyxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVwQixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksTUFBTSxJQUFJLFlBQVksRUFBRTtZQUM3QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUN0QjtRQUVELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUVsRCxJQUNFLElBQUksQ0FBQyxzQkFBc0IsSUFBSSxJQUFJO1lBQ25DLE1BQU0sSUFBSSxZQUFZO1lBQ3RCLE1BQU0sSUFBSSxZQUFZLEVBQ3RCO1lBQ0EsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUM1QztRQUNELElBQUksSUFBSSxDQUFDLHNCQUFzQixJQUFJLElBQUksRUFBRTtZQUN2QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQzVDO1FBRUQsSUFDRSxJQUFJLENBQUMsdUJBQXVCLElBQUksSUFBSTtZQUNwQyxNQUFNLElBQUksWUFBWTtZQUN0QixNQUFNLElBQUksWUFBWSxFQUN0QjtZQUNBLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDekM7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXZDLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7U0FDM0I7UUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXBCLElBQ0UsSUFBSSxDQUFDLGNBQWMsSUFBSSxLQUFLO1lBQzVCLE1BQU0sSUFBSSxZQUFZO1lBQ3RCLE1BQU0sSUFBSSxZQUFZLEVBQ3RCOztnQkFDSSxZQUFZO1lBQ2hCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDbkIsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7YUFDaEM7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDcEIsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztnQkFDbkMsNkNBQTZDO2dCQUM3QyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDO2dCQUNwQywyQ0FBMkM7Z0JBQzNDLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO2dCQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO2dCQUU3QixZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQzthQUNqRDs7Z0JBRUssZ0JBQWdCLEdBQXFCO2dCQUN6QyxVQUFVLEVBQUUsWUFBWTtnQkFDeEIsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsU0FBUyxFQUFFLElBQUk7YUFDaEI7WUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7WUFDMUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBRTlCLElBQUksQ0FBQyxhQUFhO2lCQUNmLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDO2lCQUN2QyxTQUFTOzs7O1lBQUMsVUFBQyxJQUFjO2dCQUN4QixLQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFFdEMsS0FBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7Z0JBRXBCLElBQUksQ0FBQyxPQUFPOzs7O2dCQUFDLFVBQUMsQ0FBQztvQkFDYixJQUFJLENBQUMsQ0FBQyxTQUFTLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxTQUFTLElBQUksRUFBRSxFQUFFO3dCQUM1QyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUM7cUJBQzNCO29CQUNELElBQUksQ0FBQyxDQUFDLFNBQVMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLFNBQVMsSUFBSSxFQUFFLEVBQUU7d0JBQzVDLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztxQkFDM0I7Z0JBQ0gsQ0FBQyxFQUFDLENBQUM7Z0JBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO2dCQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQy9CLEtBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO2dCQUN6QixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO29CQUNwQixLQUFJLENBQUMsR0FBRyxHQUFHLGtCQUFrQixDQUFDO2lCQUMvQjtZQUNILENBQUMsRUFBQyxDQUFDO1NBQ047YUFBTTtZQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDM0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUVuQyxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxFQUFFO2dCQUM5QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLEVBQUU7b0JBQ2pDLElBQUksQ0FBQyxhQUFhO3lCQUNmLHFCQUFxQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQzt5QkFDNUMsU0FBUzs7OztvQkFBQyxVQUFDLElBQWM7d0JBQ3hCLEtBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO3dCQUN0QyxLQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQzt3QkFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO3dCQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNwQixDQUFDLEVBQUMsQ0FBQztpQkFDTjthQUNGO1NBQ0Y7SUFDSCxDQUFDOzs7OztJQUVELG1EQUFpQjs7OztJQUFqQixVQUFrQixpQkFBaUI7UUFDakMsSUFBSSxDQUFDLGlCQUFpQjtZQUFFLE9BQU8sRUFBRSxDQUFDOztZQUM5QixPQUFPLEdBQUcsQ0FBQyxFQUFFLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQzs7WUFDckQsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUM7UUFDcEQsSUFBSSxLQUFLLEVBQUU7WUFDVCxPQUFPLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzFEO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDOzs7O0lBRUQsNENBQVU7OztJQUFWO1FBQUEsaUJBb0JDO1FBbkJDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLE9BQU87U0FDUjs7WUFDSyxVQUFVLEdBQUcsbUJBQXVCO1lBQ3hDLFlBQVksRUFBRSxVQUFVLENBQUMsaUJBQWlCO1lBQzFDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDekIsRUFBQTtRQUNELElBQUksQ0FBQyxhQUFhO2FBQ2YsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUM7YUFDOUMsU0FBUzs7OztRQUFDLFVBQUMsR0FBRztZQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNqQyxLQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxFQUFFO2dCQUN0QyxRQUFRLEVBQUUsSUFBSTthQUNmLENBQUMsQ0FBQztZQUNILHNFQUFzRTtZQUV0RSxLQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQU0sS0FBSSxDQUFDLGVBQWUsYUFBVSxDQUFDO1FBQ2xFLENBQUMsRUFBQyxDQUFDO0lBQ1AsQ0FBQzs7Ozs7SUFFRCw4Q0FBWTs7OztJQUFaLFVBQWEsUUFBZ0I7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDOzs7OztJQUVELCtDQUFhOzs7O0lBQWIsVUFBYyxRQUFnQjtRQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7Ozs7O0lBRUQsK0NBQWE7Ozs7SUFBYixVQUFjLE1BQXdCO1FBQXRDLGlCQXFCQztRQXBCQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDO1FBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsNENBQTRDLENBQUMsQ0FBQztRQUMxRCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUzs7OztRQUN4RCxVQUFDLElBQWM7WUFDYixLQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUV0QyxLQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSSxDQUFDLE1BQU0sQ0FBQztZQUUzQixJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNuQixLQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQzthQUMxQjtpQkFBTTtnQkFDTCxLQUFJLENBQUMsR0FBRyxHQUFHLGtCQUFrQixDQUFDO2FBQy9CO1FBQ0gsQ0FBQzs7OztRQUNELFVBQUMsR0FBRztZQUNGLEtBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFJLENBQUMsTUFBTSxDQUFDO1FBQzdCLENBQUMsRUFDRixDQUFDO0lBQ0osQ0FBQzs7Z0JBelNGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsOGdNQUE0Qzs7aUJBRTdDOzs7O2dCQXJCdUMsU0FBUztnQkFPeEMscUJBQXFCO2dCQVZOLE1BQU07Z0JBQXJCLGNBQWM7Z0JBRVEsV0FBVztnQkFnQnhDLHVCQUF1Qjs2Q0FrRHBCLE1BQU0sU0FBQyxpQkFBaUI7Z0RBQ3hCLE1BQU0sU0FBQyxRQUFROzs7NkJBM0NqQixLQUFLOzBCQUNMLEtBQUs7NEJBQ0wsS0FBSzsrQkFDTCxLQUFLO2lDQUNMLEtBQUs7MEJBRUwsS0FBSzsyQkFDTCxLQUFLO3lDQUNMLEtBQUs7eUNBQ0wsS0FBSzswQ0FDTCxLQUFLO2lDQUNMLEtBQUs7aUNBQ0wsS0FBSzs2QkFDTCxLQUFLOzhCQUNMLEtBQUs7aUNBQ0wsS0FBSzs0QkFFTCxTQUFTLFNBQUMsWUFBWTt1QkFDdEIsU0FBUyxTQUFDLE9BQU87O0lBa1JwQiw4QkFBQztDQUFBLEFBMVNELElBMFNDO1NBclNZLHVCQUF1Qjs7O0lBQ2xDLDZDQUE0Qjs7SUFDNUIsMENBQXlCOztJQUN6Qiw0Q0FBMkI7O0lBQzNCLCtDQUE4Qjs7SUFDOUIsaURBQWdDOztJQUVoQywwQ0FBMEI7O0lBQzFCLDJDQUEwQjs7SUFDMUIseURBQXlDOztJQUN6Qyx5REFBeUM7O0lBQ3pDLDBEQUEwQzs7SUFDMUMsaURBQWlDOztJQUNqQyxpREFBZ0M7O0lBQ2hDLDZDQUE0Qjs7SUFDNUIsOENBQTBCOztJQUMxQixpREFBK0M7O0lBRS9DLDRDQUFpRDs7SUFDakQsdUNBQWtDOztJQUdsQyxtREFBMkI7O0lBQzNCLDBDQUF1Qjs7SUFDdkIsK0NBQTBCOztJQUMxQiw2Q0FBbUI7O0lBQ25CLG1EQUE0RDs7SUFDNUQsdURBQWdEOztJQUNoRCx5Q0FBd0I7O0lBQ3hCLCtDQUE4Qjs7SUFDOUIsc0NBQWlCOztJQUNqQiwyQ0FBaUI7O0lBRWpCLDREQUFvRDs7SUFDcEQsNERBQW9EOztJQUNwRCw0REFBb0Q7Ozs7O0lBRWxELHlDQUF5Qjs7Ozs7SUFDekIsZ0RBQTRDOzs7OztJQUM1Qyx5Q0FBc0I7Ozs7O0lBQ3RCLHdDQUE2Qjs7Ozs7SUFDN0IsMkNBQTZCOzs7OztJQUM3QixnREFBOEM7Ozs7O0lBQzlDLGtEQUEwRDs7Ozs7SUFDMUQsMkNBQXVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uQ2hhbmdlcywgVmlld0NoaWxkLCBJbnB1dCwgT3V0cHV0LCBBZnRlclZpZXdJbml0LCBJbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSxSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2V9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgTWF0UGFnaW5hdG9yLCBNYXRTb3J0LE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiwgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xyXG5pbXBvcnQge1xyXG4gIFNlbGVjdGVkT2ZmZW5kZXIsXHJcbiAgTG9naW5TdGFmZixcclxuICBTbWFydEFjY2Vzc0NvbnRyb2xDb25maWcsXHJcbiAgQWNjZXNzVHlwZSxcclxufSBmcm9tIFwiQGNzbWFydC9uZ2Mtc21hcnQtY29yZVwiO1xyXG5pbXBvcnQgeyBOZ2NTbWFydFZpY3RpbVNlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LXZpY3RpbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRWxlbWVudHNWaWN0aW0sIFZpY3RpbUxpc3RGaWx0ZXIsIFZpY3RpbSwgU01BUlRfV0FSUkFOVF9VUkwgfSBmcm9tICcuL3NtYXJ0LXZpY3RpbS5tb2RlbCc7XHJcbmltcG9ydCB7IFNtYXJ0VmljdGltRGVsZXRlQ29uZmlybUNvbXBvbmVudCB9IGZyb20gJy4vc21hcnQtdmljdGltLWRlbGV0ZS1jb25maXJtLmNvbXBvbmVudCc7XHJcbi8vaW1wb3J0IHsgU21hcnRWaWN0aW1EZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL3NtYXJ0LXZpY3RpbS1kZXRhaWwvc21hcnQtdmljdGltLWRldGFpbC5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHtcclxuICBJbnRha2VTdGVwU3RhdHVzTW9kZWwsXHJcbiAgSW50YWtlU3RlcCxcclxuICBJbnRha2VTZXJ2aWNlc0NvbXBvbmVudCxcclxufSBmcm9tICcuL2ludGFrZS5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY3NtYXJ0LXZpY3RpbVwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vc21hcnQtdmljdGltLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3NtYXJ0LXZpY3RpbS5jb21wb25lbnQuY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdjU21hcnRWaWN0aW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgb2ZmZW5kZXJJZDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHN0YWZmSWQ6IG51bWJlcjtcclxuICBASW5wdXQoKSBzdGFmZlJvbGU6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93Q2FzZU5vdGU6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93U2FmZXR5UGxhbjogc3RyaW5nO1xyXG4gIC8vQElucHV0KCkgc2hvd0FkZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNob3dBZGQ6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd0VkaXQ6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93UmVsYXRpb25zaGlwQ29sdW1uOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNob3dPZmZlbmRlck5hbWVDb2x1bW46IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd09mZmVuZGVyUGhvbmVDb2x1bW46IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd1NlYXJjaEZvcm06IGJvb2xlYW47XHJcbiAgQElucHV0KCkgYWNjZXNzQnlNb2R1bGU6IHN0cmluZztcclxuICBASW5wdXQoKSBpbnRha2VGbGFnOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYXBwTW9kdWxlSWQgPSAnJztcclxuICBASW5wdXQoKSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUgPSBudWxsO1xyXG5cclxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvcikgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XHJcbiAgQFZpZXdDaGlsZChNYXRTb3J0KSBzb3J0OiBNYXRTb3J0O1xyXG4gIC8vIEBWaWV3Q2hpbGQoU21hcnRWaWN0aW1EZXRhaWxDb21wb25lbnQpIGNoaWxkO1xyXG5cclxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXTtcclxuICB2aWN0aW1zOiBWaWN0aW1bXSA9IFtdO1xyXG4gIHZpY3RpbURldGFpbCA9IDxWaWN0aW0+e307XHJcbiAgc2hvd0RldGFpbCA9IGZhbHNlO1xyXG4gIHZpY3RpbUxpc3RGaWx0ZXI6IFZpY3RpbUxpc3RGaWx0ZXIgPSBuZXcgVmljdGltTGlzdEZpbHRlcigpO1xyXG4gIHZpY3RpbUxpc3REYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSgpO1xyXG4gIGRvU3BpbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dMaXN0RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG1zZzogc3RyaW5nID0gXCJcIjtcclxuICBpc0ludGFrZSA9IGZhbHNlO1xyXG5cclxuICB1cGRhdGVBY2Nlc3NDb250cm9sQ29uZmlnOiBTbWFydEFjY2Vzc0NvbnRyb2xDb25maWc7XHJcbiAgY3JlYXRlQWNjZXNzQ29udHJvbENvbmZpZzogU21hcnRBY2Nlc3NDb250cm9sQ29uZmlnO1xyXG4gIGRlbGV0ZUFjY2Vzc0NvbnRyb2xDb25maWc6IFNtYXJ0QWNjZXNzQ29udHJvbENvbmZpZztcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIHZpY3RpbVNlcnZpY2U6IE5nY1NtYXJ0VmljdGltU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxyXG4gICAgcHJpdmF0ZSBpbnRha2VTZXJ2aWNlOiBJbnRha2VTZXJ2aWNlc0NvbXBvbmVudCxcclxuICAgIEBJbmplY3QoU01BUlRfV0FSUkFOVF9VUkwpIHByaXZhdGUgc21hcnRXYXJyYW50VXJsOiBzdHJpbmcsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnlcclxuICApIHt9XHJcblxyXG4gIC8vIHByaXZhdGUgb25DaGFuZ2UoZmlsdGVyOiBWaWN0aW1MaXN0RmlsdGVyKSB7XHJcbiAgLy8gICBjb25zb2xlLmxvZygnZmlsdGVyIGluIG9uY2hhbmdlJyk7XHJcbiAgLy8gICBjb25zb2xlLmxvZyhmaWx0ZXIpO1xyXG4gIC8vICAgdGhpcy5nZXRWaWN0aW1MaXN0KGZpbHRlcik7XHJcbiAgLy8gfVxyXG5cclxuICBhcHBseUZpbHRlcihmaWx0ZXJWYWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlLmZpbHRlciA9IGZpbHRlclZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xyXG4gIH1cclxuICBhZGRSZWNvcmQoKSB7XHJcbiAgICB0aGlzLnNob3dEZXRhaWwgPSB0cnVlO1xyXG4gICAgdGhpcy5zaG93QWRkID0gZmFsc2U7XHJcbiAgICB0aGlzLnZpY3RpbURldGFpbCA9IG51bGw7XHJcbiAgICB0aGlzLnNob3dMaXN0RmxhZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZWRpdFZpY3RpbURldGFpbChyZWNvcmQpIHtcclxuICAgIGNvbnNvbGUubG9nKFwidmljdGltIGVkaXQgcmVjb3JkXCIpO1xyXG4gICAgY29uc29sZS5sb2cocmVjb3JkKTtcclxuICAgIGNvbnNvbGUubG9nKHJlY29yZC52aWN0aW1JZCk7XHJcbiAgICB0aGlzLnZpY3RpbURldGFpbCA9IHJlY29yZDtcclxuICAgIHRoaXMuc2hvd0RldGFpbCA9IHRydWU7XHJcbiAgICB0aGlzLnNob3dBZGQgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0xpc3RGbGFnID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzYXZlKGRldGFpbDogVmljdGltKSB7XHJcbiAgICB0aGlzLnNob3dEZXRhaWwgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0FkZCA9IHRydWU7XHJcbiAgICB0aGlzLnNob3dMaXN0RmxhZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKSB7XHJcbiAgICB0aGlzLnNob3dEZXRhaWwgPSBmYWxzZTtcclxuICAgIHRoaXMudmljdGltRGV0YWlsID0gPFZpY3RpbT57fTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMudmljdGltTGlzdERhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3I7XHJcbiAgICB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlLnNvcnQgPSB0aGlzLnNvcnQ7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgICB0aGlzLnVwZGF0ZUFjY2Vzc0NvbnRyb2xDb25maWcgPSB7XHJcbiAgICAgICBhY2Nlc3NUeXBlOiBBY2Nlc3NUeXBlLlVQREFURSxcclxuICAgICAgIGFwcE1vZHVsZUlkOiB0aGlzLmFwcE1vZHVsZUlkLFxyXG4gICAgICAgcm9sZUlkOiBudWxsLFxyXG4gICAgICAgcm91dGU6IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QsXHJcbiAgICAgfTtcclxuICAgICB0aGlzLmNyZWF0ZUFjY2Vzc0NvbnRyb2xDb25maWcgPSB7XHJcbiAgICAgICBhY2Nlc3NUeXBlOiBBY2Nlc3NUeXBlLkNSRUFURSxcclxuICAgICAgIGFwcE1vZHVsZUlkOiB0aGlzLmFwcE1vZHVsZUlkLFxyXG4gICAgICAgcm9sZUlkOiBudWxsLFxyXG4gICAgICAgcm91dGU6IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QsXHJcbiAgICAgfTtcclxuICAgICB0aGlzLmRlbGV0ZUFjY2Vzc0NvbnRyb2xDb25maWcgPSB7XHJcbiAgICAgICBhY2Nlc3NUeXBlOiBBY2Nlc3NUeXBlLkRFTEVURSxcclxuICAgICAgIGFwcE1vZHVsZUlkOiB0aGlzLmFwcE1vZHVsZUlkLFxyXG4gICAgICAgcm9sZUlkOiBudWxsLFxyXG4gICAgICAgcm91dGU6IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QsXHJcbiAgICAgfTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdmFyIGRhdGEgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGE7XHJcbiAgICB2YXIgbXlQYXRoID0gdGhpcy5yb3V0ZXIudXJsLnNsaWNlKC0xMCk7XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJzbWFydC12aWN0aW0gbmdPbkluaXRcIik7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmludGFrZUZsYWcpO1xyXG4gICAgY29uc29sZS5sb2cobXlQYXRoKTtcclxuXHJcbiAgICBpZiAodGhpcy5pbnRha2VGbGFnIHx8IG15UGF0aCA9PSBcInZpY3RpbUhvbWVcIikge1xyXG4gICAgICB0aGlzLmlzSW50YWtlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSBbXCJsYXN0TmFtZVwiLCBcImZpcnN0TmFtZVwiXTtcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuc2hvd1JlbGF0aW9uc2hpcENvbHVtbiA9PSB0cnVlIHx8XHJcbiAgICAgIG15UGF0aCA9PSBcInZpY3RpbUxpc3RcIiB8fFxyXG4gICAgICBteVBhdGggPT0gXCJ2aWN0aW1Ib21lXCJcclxuICAgICkge1xyXG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaChcInJlbGF0aW9uc2hpcFwiKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNob3dPZmZlbmRlck5hbWVDb2x1bW4gPT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaChcIm9mZmVuZGVyTmFtZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuc2hvd09mZmVuZGVyUGhvbmVDb2x1bW4gPT0gdHJ1ZSB8fFxyXG4gICAgICBteVBhdGggPT0gXCJ2aWN0aW1MaXN0XCIgfHxcclxuICAgICAgbXlQYXRoID09IFwidmljdGltSG9tZVwiXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJob21lUGhvbmVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJ2aWN0aW1JZFwiKTtcclxuXHJcbiAgICBpZiAodGhpcy5zaG93U2VhcmNoRm9ybSA9PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuc2hvd0xpc3RGbGFnID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJ0aGlzLnNob3dTZWFyY2hGb3JtXCIpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5zaG93U2VhcmNoRm9ybSk7XHJcbiAgICBjb25zb2xlLmxvZyhcIm15UGF0aFwiKTtcclxuICAgIGNvbnNvbGUubG9nKG15UGF0aCk7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnNob3dTZWFyY2hGb3JtID09IGZhbHNlIHx8XHJcbiAgICAgIG15UGF0aCA9PSBcInZpY3RpbUxpc3RcIiB8fFxyXG4gICAgICBteVBhdGggPT0gXCJ2aWN0aW1Ib21lXCJcclxuICAgICkge1xyXG4gICAgICB2YXIgbXlPZmZlbmRlcklkO1xyXG4gICAgICBpZiAodGhpcy5vZmZlbmRlcklkKSB7XHJcbiAgICAgICAgbXlPZmZlbmRlcklkID0gdGhpcy5vZmZlbmRlcklkO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiYmFjayBmcm9tIHByZXZpb3VzIHBhZ2VcIik7XHJcbiAgICAgICAgdGhpcy5zaG93QWRkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNob3dSZWxhdGlvbnNoaXBDb2x1bW4gPSB0cnVlO1xyXG4gICAgICAgIC8vdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJyZWxhdGlvbnNoaXBcIik7XHJcbiAgICAgICAgdGhpcy5zaG93T2ZmZW5kZXJQaG9uZUNvbHVtbiA9IHRydWU7XHJcbiAgICAgICAgLy8gdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJob21lUGhvbmVcIik7XHJcbiAgICAgICAgdGhpcy5hY2Nlc3NCeU1vZHVsZSA9IFwidHJ1ZVwiO1xyXG4gICAgICAgIHRoaXMuc2hvd0VkaXQgPSBcInRydWVcIjtcclxuICAgICAgICB0aGlzLnNob3dDYXNlTm90ZSA9IFwidHJ1ZVwiO1xyXG4gICAgICAgIHRoaXMuc2hvd1NhZmV0eVBsYW4gPSBcInRydWVcIjtcclxuXHJcbiAgICAgICAgbXlPZmZlbmRlcklkID0gZGF0YS5zZWxlY3RlZE9mZmVuZGVyLm9mZmVuZGVySWQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHZpY3RpbUxpc3RGaWx0ZXI6IFZpY3RpbUxpc3RGaWx0ZXIgPSB7XHJcbiAgICAgICAgb2ZmZW5kZXJJZDogbXlPZmZlbmRlcklkLFxyXG4gICAgICAgIGxhc3ROYW1lOiBudWxsLFxyXG4gICAgICAgIGZpcnN0TmFtZTogbnVsbCxcclxuICAgICAgICBwZGlkOiBudWxsLFxyXG4gICAgICAgIGJpcnRoRGF0ZTogbnVsbCxcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKFwidmljdGltTGlzdEZpbHRlciBpbiBzbWFyLXZpY3RpbSBjb21wb25lbmV0XCIpO1xyXG4gICAgICBjb25zb2xlLmxvZyh2aWN0aW1MaXN0RmlsdGVyKTtcclxuXHJcbiAgICAgIHRoaXMudmljdGltU2VydmljZVxyXG4gICAgICAgIC5nZXRWaWN0aW1MaXN0QnlGaWx0ZXIodmljdGltTGlzdEZpbHRlcilcclxuICAgICAgICAuc3Vic2NyaWJlKChkYXRhOiBWaWN0aW1bXSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1MaXN0RGF0YVNvdXJjZS5kYXRhID0gZGF0YTtcclxuXHJcbiAgICAgICAgICB0aGlzLnZpY3RpbXMgPSBkYXRhO1xyXG5cclxuICAgICAgICAgIGRhdGEuZm9yRWFjaCgoZCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZC5ob21lUGhvbmUgPT0gbnVsbCB8fCBkLmhvbWVQaG9uZSA9PSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgZC5ob21lUGhvbmUgPSBkLmNlbGxQaG9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZC5ob21lUGhvbmUgPT0gbnVsbCB8fCBkLmhvbWVQaG9uZSA9PSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgZC5ob21lUGhvbmUgPSBkLndvcmtQaG9uZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcInZpY3RpbSBkYXRhIGF0IGxpbmUgMTc5XCIpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2codGhpcy52aWN0aW1zKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwic2hvd0xpc3RGbGFnXCIpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2codGhpcy5zaG93TGlzdEZsYWcpO1xyXG4gICAgICAgICAgdGhpcy5zaG93TGlzdEZsYWcgPSB0cnVlO1xyXG4gICAgICAgICAgaWYgKGRhdGEubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5tc2cgPSBcIk5vIFJlY29yZCBGb3VuZCFcIjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiZmluZCBmaWx0ZXJcIik7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMudmljdGltTGlzdEZpbHRlcik7XHJcblxyXG4gICAgICBpZiAodGhpcy5zaG93TGlzdEZsYWcgPT09IHRydWUpIHtcclxuICAgICAgICBpZiAodGhpcy52aWN0aW1MaXN0RmlsdGVyICE9IG51bGwpIHtcclxuICAgICAgICAgIHRoaXMudmljdGltU2VydmljZVxyXG4gICAgICAgICAgICAuZ2V0VmljdGltTGlzdEJ5RmlsdGVyKHRoaXMudmljdGltTGlzdEZpbHRlcilcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZGF0YTogVmljdGltW10pID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlLmRhdGEgPSBkYXRhO1xyXG4gICAgICAgICAgICAgIHRoaXMudmljdGltcyA9IGRhdGE7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJ2aWN0aW0gZGF0YSBhdCBsaW5lIDIwMVwiKTtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmb3JtYXRQaG9uZU51bWJlcihwaG9uZU51bWJlclN0cmluZykge1xyXG4gICAgaWYgKCFwaG9uZU51bWJlclN0cmluZykgcmV0dXJuIFwiXCI7XHJcbiAgICB2YXIgY2xlYW5lZCA9IChcIlwiICsgcGhvbmVOdW1iZXJTdHJpbmcpLnJlcGxhY2UoL1xcRC9nLCBcIlwiKTtcclxuICAgIHZhciBtYXRjaCA9IGNsZWFuZWQubWF0Y2goL14oXFxkezN9KShcXGR7M30pKFxcZHs0fSkkLyk7XHJcbiAgICBpZiAobWF0Y2gpIHtcclxuICAgICAgcmV0dXJuIFwiKFwiICsgbWF0Y2hbMV0gKyBcIikgXCIgKyBtYXRjaFsyXSArIFwiLVwiICsgbWF0Y2hbM107XHJcbiAgICB9XHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHNhdmVJbnRha2UoKSB7XHJcbiAgICBpZiAoIXRoaXMuaXNJbnRha2UpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaW50YWtlU3RlcCA9IDxJbnRha2VTdGVwU3RhdHVzTW9kZWw+e1xyXG4gICAgICBpbnRha2VTdGVwSWQ6IEludGFrZVN0ZXAuVmljdGltSW5mb3JtYXRpb24sXHJcbiAgICAgIG9mZmVuZGVySWQ6IHRoaXMub2ZmZW5kZXJJZCxcclxuICAgICAgbW9kaWZpZWRCeTogdGhpcy5zdGFmZklkLFxyXG4gICAgfTtcclxuICAgIHRoaXMuaW50YWtlU2VydmljZVxyXG4gICAgICAudXBkYXRlSW50YWtlU3RlcHModGhpcy5vZmZlbmRlcklkLCBpbnRha2VTdGVwKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcInNhdmUgaW50YWtlIHN0ZXAuXCIpO1xyXG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihcIlN0YXR1cyBTYXZlZC5cIiwgXCJcIiwge1xyXG4gICAgICAgICAgZHVyYXRpb246IDMwMDAsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy90aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy93YXJyYW50ICddLCB7IHF1ZXJ5UGFyYW1zOiB7IGludGFrZTogMSB9IH0pO1xyXG5cclxuICAgICAgICB0aGlzLmRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBgJHt0aGlzLnNtYXJ0V2FycmFudFVybH0vd2FycmFudGA7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ29Ub0Nhc2VOb3RlKHZpY3RpbUlkOiBudW1iZXIpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcImNhc2Vub3RlXCIsIHZpY3RpbUlkXSk7XHJcbiAgfVxyXG5cclxuICBnb1RvU2FmdHlQbGFuKHZpY3RpbUlkOiBudW1iZXIpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcInNhZnR5UGxhblwiLCB2aWN0aW1JZF0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmljdGltTGlzdChmaWx0ZXI6IFZpY3RpbUxpc3RGaWx0ZXIpIHtcclxuICAgIHRoaXMudmljdGltTGlzdEZpbHRlciA9IGZpbHRlcjtcclxuICAgIGNvbnNvbGUubG9nKFwidGhpcy52aWN0aW1MaXN0RmlsdGVyIGluc2lkZSBnZXRWaWN0aW1MaXN0XCIpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy52aWN0aW1MaXN0RmlsdGVyKTtcclxuICAgIHRoaXMuZG9TcGluID0gdHJ1ZTtcclxuICAgIHRoaXMudmljdGltU2VydmljZS5nZXRWaWN0aW1MaXN0QnlGaWx0ZXIoZmlsdGVyKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhOiBWaWN0aW1bXSkgPT4ge1xyXG4gICAgICAgIHRoaXMudmljdGltTGlzdERhdGFTb3VyY2UuZGF0YSA9IGRhdGE7XHJcblxyXG4gICAgICAgIHRoaXMuZG9TcGluID0gIXRoaXMuZG9TcGluO1xyXG5cclxuICAgICAgICBpZiAoZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3dMaXN0RmxhZyA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubXNnID0gXCJObyByZWNvcmQgZm91bmQhXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kb1NwaW4gPSAhdGhpcy5kb1NwaW47XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|