ps-toolkit-ui 1.19.6 → 1.19.8
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/bundles/ps-toolkit-ui.umd.js +46 -42
- package/bundles/ps-toolkit-ui.umd.js.map +1 -1
- package/bundles/ps-toolkit-ui.umd.min.js +1 -1
- package/bundles/ps-toolkit-ui.umd.min.js.map +1 -1
- package/esm2015/lib/classes/table.class.js +46 -43
- package/fesm2015/ps-toolkit-ui.js +45 -42
- package/fesm2015/ps-toolkit-ui.js.map +1 -1
- package/lib/classes/table.class.d.ts +1 -0
- package/package.json +1 -1
- package/ps-toolkit-ui.metadata.json +1 -1
|
@@ -346,48 +346,7 @@ export class TableClass {
|
|
|
346
346
|
}
|
|
347
347
|
if (this.form) {
|
|
348
348
|
this.form.addButtons('Save', this.permissions.Type === PermissionTypeEnum.Form ? 'green w-10 only-icon f-l' : 'green', this.permissions.Type !== PermissionTypeEnum.Form, this.permissions.getAccesses().some(x => x.AccessType === PermissionAccessTypeEnum.Insert), this.permissions.Type === PermissionTypeEnum.Form ? (data) => {
|
|
349
|
-
|
|
350
|
-
const i = this.rows.findIndex(x => x.Data.Id === data.Id);
|
|
351
|
-
this.rows[i].Data = data;
|
|
352
|
-
}
|
|
353
|
-
else {
|
|
354
|
-
data.Id = parseInt(HelperClass.random(5, false, false), 10);
|
|
355
|
-
const uAccess = new PermissionClass();
|
|
356
|
-
uAccess.Action = 'Update';
|
|
357
|
-
uAccess.Type = PermissionTypeEnum.Option;
|
|
358
|
-
uAccess.InputAction = PermissionInputActionEnum.None;
|
|
359
|
-
uAccess.InputType = PermissionInputTypeEnum.Icon;
|
|
360
|
-
uAccess.AccessType = PermissionAccessTypeEnum.Update;
|
|
361
|
-
uAccess.Icon = 'fad fa-pen';
|
|
362
|
-
uAccess.Name = 'Update';
|
|
363
|
-
const dAccess = new PermissionClass();
|
|
364
|
-
dAccess.Action = 'Delete';
|
|
365
|
-
dAccess.Type = PermissionTypeEnum.Option;
|
|
366
|
-
dAccess.InputAction = PermissionInputActionEnum.None;
|
|
367
|
-
dAccess.InputType = PermissionInputTypeEnum.Icon;
|
|
368
|
-
dAccess.AccessType = PermissionAccessTypeEnum.Delete;
|
|
369
|
-
dAccess.Icon = 'fad fa-trash';
|
|
370
|
-
dAccess.Name = 'Delete';
|
|
371
|
-
if (this.sortType === 'DESC') {
|
|
372
|
-
this.rows.push({
|
|
373
|
-
Data: data,
|
|
374
|
-
Options: [uAccess, dAccess]
|
|
375
|
-
});
|
|
376
|
-
}
|
|
377
|
-
else {
|
|
378
|
-
this.rows.unshift({
|
|
379
|
-
Data: data,
|
|
380
|
-
Options: [uAccess, dAccess]
|
|
381
|
-
});
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
if (changeRows) {
|
|
385
|
-
changeRows.emit(data);
|
|
386
|
-
}
|
|
387
|
-
this.form.clear(this.insertAccess != null);
|
|
388
|
-
if (this.onLoad) {
|
|
389
|
-
this.onLoad(null);
|
|
390
|
-
}
|
|
349
|
+
this.onTopFormSubmit(data, changeRows);
|
|
391
350
|
} : null);
|
|
392
351
|
if (this.hasChildren) {
|
|
393
352
|
const level = new InputClass(this.environment, this.l, 'Level', null, InputType.Hidden);
|
|
@@ -407,6 +366,50 @@ export class TableClass {
|
|
|
407
366
|
}
|
|
408
367
|
}
|
|
409
368
|
}
|
|
369
|
+
onTopFormSubmit(data, changeRows = null) {
|
|
370
|
+
if (data.Id) {
|
|
371
|
+
const i = this.rows.findIndex(x => x.Data.Id === data.Id);
|
|
372
|
+
this.rows[i].Data = data;
|
|
373
|
+
}
|
|
374
|
+
else {
|
|
375
|
+
data.Id = parseInt(HelperClass.random(5, false, false), 10);
|
|
376
|
+
const uAccess = new PermissionClass();
|
|
377
|
+
uAccess.Action = 'Update';
|
|
378
|
+
uAccess.Type = PermissionTypeEnum.Option;
|
|
379
|
+
uAccess.InputAction = PermissionInputActionEnum.None;
|
|
380
|
+
uAccess.InputType = PermissionInputTypeEnum.Icon;
|
|
381
|
+
uAccess.AccessType = PermissionAccessTypeEnum.Update;
|
|
382
|
+
uAccess.Icon = 'fad fa-pen';
|
|
383
|
+
uAccess.Name = 'Update';
|
|
384
|
+
const dAccess = new PermissionClass();
|
|
385
|
+
dAccess.Action = 'Delete';
|
|
386
|
+
dAccess.Type = PermissionTypeEnum.Option;
|
|
387
|
+
dAccess.InputAction = PermissionInputActionEnum.None;
|
|
388
|
+
dAccess.InputType = PermissionInputTypeEnum.Icon;
|
|
389
|
+
dAccess.AccessType = PermissionAccessTypeEnum.Delete;
|
|
390
|
+
dAccess.Icon = 'fad fa-trash';
|
|
391
|
+
dAccess.Name = 'Delete';
|
|
392
|
+
if (this.sortType === 'DESC') {
|
|
393
|
+
this.rows.push({
|
|
394
|
+
Data: data,
|
|
395
|
+
Options: [uAccess, dAccess]
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
else {
|
|
399
|
+
this.rows.unshift({
|
|
400
|
+
Data: data,
|
|
401
|
+
Options: [uAccess, dAccess]
|
|
402
|
+
});
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
if (changeRows) {
|
|
406
|
+
changeRows.emit(data);
|
|
407
|
+
}
|
|
408
|
+
this.form.clear(this.insertAccess != null);
|
|
409
|
+
if (this.onLoad) {
|
|
410
|
+
this.onLoad(null);
|
|
411
|
+
}
|
|
412
|
+
}
|
|
410
413
|
}
|
|
411
414
|
export class TableCollClass {
|
|
412
415
|
constructor(name, cls = '', type = TableCollType.Text, withSearch = true, sort = true) {
|
|
@@ -423,4 +426,4 @@ export class TableCollClass {
|
|
|
423
426
|
this.sort = type === TableCollType.Image ? false : sort;
|
|
424
427
|
}
|
|
425
428
|
}
|
|
426
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiRDovUHNUb29sa2l0L1VJL3Byb2plY3RzL3BzLXRvb2xraXQtdWkvc3JjLyIsInNvdXJjZXMiOlsibGliL2NsYXNzZXMvdGFibGUuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQVksVUFBVSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ25ELE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUFFLGdCQUFnQixFQUNwQyxhQUFhLEVBQ2IsZUFBZSxFQUNoQixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixNQUFNLE9BQU8sVUFBVTtJQUNyQixZQUFZLFdBQWdCLEVBQUUsQ0FBb0IsRUFBRSxXQUE0QixFQUFFLE9BQWUsRUFBRSxFQUFFLE1BQWMsRUFBRSxFQUN6RyxVQUFrQixFQUFFLEVBQUUsU0FBaUIsRUFBRTtRQVVyRCxnQkFBVyxHQUFRLElBQUksQ0FBQztRQUd4QixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBSWxCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxRQUFHLEdBQUcsSUFBSSxDQUFDO1FBQ1gsV0FBTSxHQUFXLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDN0IsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFDYixTQUFJLEdBQXFCLEVBQUUsQ0FBQztRQUM1QixZQUFPLEdBQWlCLEVBQUUsQ0FBQztRQUMzQixtQkFBYyxHQUFVLEVBQUUsQ0FBQztRQUMzQixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNWLFNBQUksR0FBRyxDQUFDLENBQUM7UUFDVCxTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osVUFBSyxHQUFHLElBQUksQ0FBQztRQUNiLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDcEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixlQUFVLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQztRQUNwQyxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDeEIsaUJBQVksR0FBaUIsRUFBRSxDQUFDO1FBQ2hDLFNBQUksR0FBYyxJQUFJLENBQUM7UUFDdkIsZUFBVSxHQUFjLElBQUksQ0FBQztRQUM3QixVQUFLLEdBQWUsSUFBSSxDQUFDO1FBQ3pCLFVBQUssR0FBRyxJQUFJLENBQUM7UUFDYixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGVBQVUsR0FBb0IsSUFBSSxDQUFDO1FBQ25DLGlCQUFZLEdBQW9CLElBQUksQ0FBQztRQUNyQyxhQUFRLEdBQWUsSUFBSSxDQUFDO1FBQzVCLFlBQU8sR0FBUSxJQUFJLENBQUM7UUFDcEIsV0FBTSxHQUFtQixJQUFJLENBQUM7UUFDOUIsV0FBTSxHQUFlLElBQUksQ0FBQztRQUMxQixnQkFBVyxHQUF5QixJQUFJLENBQUM7UUFDekMsZ0JBQVcsR0FBOEUsSUFBSSxDQUFDO1FBdkQ1RixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNYLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBZ0RELElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSTtRQUNiLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBQztZQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdkI7YUFBSTtZQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELElBQUk7UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWtCLElBQUk7UUFDaEMsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMvQyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLEdBQUcsRUFBQztZQUNOLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBQztnQkFDZCxPQUFPO2FBQ1I7WUFDRCxHQUFHLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztTQUNwQjtRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQ2hILENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDTixJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxFQUFFO2dCQUMzQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUM7b0JBQ2hCLE1BQU0sQ0FBQyxHQUFRLEVBQUUsQ0FBQztvQkFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDM0MsQ0FBQyxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUM7b0JBQ3JCLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBQyxDQUFDLENBQUM7aUJBQ2pEO2dCQUNELElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQzlCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBQztvQkFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQzlCO2dCQUNELElBQUksR0FBRyxFQUFDO29CQUNOLEdBQUcsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2lCQUNyQjtnQkFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQzthQUN0QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ1gsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLGdCQUFnQixDQUFDLGFBQWEsRUFBRTtvQkFDakQsQ0FBQyxHQUFHLDRCQUE0QixDQUFDO2lCQUNsQztxQkFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUU7b0JBQzVELENBQUMsR0FBRyxnQ0FBZ0MsQ0FBQztpQkFDdEM7cUJBQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLGdCQUFnQixDQUFDLFNBQVMsRUFBRTtvQkFDcEQsQ0FBQyxHQUFHLHdCQUF3QixDQUFDO2lCQUM5QjtxQkFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssZ0JBQWdCLENBQUMsUUFBUSxFQUFFO29CQUNuRCxDQUFDLEdBQUcsdUJBQXVCLENBQUM7aUJBQzdCO3FCQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUU7b0JBQ3ZELENBQUMsR0FBRyxzQkFBc0IsQ0FBQztpQkFDNUI7cUJBQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLGdCQUFnQixDQUFDLFNBQVMsRUFBRTtvQkFDcEQsQ0FBQyxHQUFHLHFCQUFxQixDQUFDO2lCQUMzQjtxQkFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssZ0JBQWdCLENBQUMsYUFBYSxFQUFFO29CQUN4RCxDQUFDLEdBQUcseUJBQXlCLENBQUM7aUJBQy9CO3FCQUFNO29CQUNMLElBQUksT0FBTyxHQUFHLENBQUMsT0FBTyxLQUFLLFFBQVEsRUFBQzt3QkFDbEMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7d0JBQ2xDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ3ZEO3lCQUFJO3dCQUNILGlDQUFpQzt3QkFDakMsS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFOzRCQUM3QixxQ0FBcUM7NEJBQ3JDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7eUJBQ25DO3FCQUNGO2lCQUNGO2dCQUNELElBQUksQ0FBQyxFQUFFO29CQUNMLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN4QztnQkFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztnQkFDZixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztnQkFDZCxJQUFJLEdBQUcsRUFBQztvQkFDTixHQUFHLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztpQkFDckI7Z0JBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7YUFDdEI7UUFDSCxDQUFDLEVBQ0QsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxHQUFHLEVBQUM7Z0JBQ04sR0FBRyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7YUFDckI7WUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUN2QixDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUFZLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxLQUFLO1FBQ2hDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDOUksQ0FBQztJQUNELFVBQVUsQ0FBQyxNQUFNLEdBQUcsS0FBSztRQUN2QixJQUFJLENBQUMsR0FBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLE1BQU0sRUFBQztZQUNWLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNuQixDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDMUI7YUFBTTtZQUNMLENBQUMsQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNyQztRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBQztZQUNoQixDQUFDLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztZQUNwQixDQUFDLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUNwQjthQUFLLElBQUksSUFBSSxDQUFDLElBQUksRUFBQztZQUNsQixDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDbkIsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQzVCO1FBQ0QsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBQztZQUMzSCxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDN0I7UUFDRCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUM7WUFDdEIsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDM0M7UUFDRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUNELE9BQU8sQ0FBQyxDQUFLLEVBQUUsSUFBWSxFQUFFLEVBQU87UUFDbEMsSUFBSSxPQUFPLEVBQUUsS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLEVBQUUsWUFBWSxLQUFLLENBQUMsRUFBQztZQUNuRCxLQUFLLE1BQU0sQ0FBRSxHQUFHLEVBQUUsS0FBSyxDQUFFLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDL0MsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFDO29CQUNoQixDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO2lCQUNoQjthQUNGO1NBQ0Y7YUFBTTtZQUNMLElBQUksRUFBRSxJQUFJLElBQUksRUFBQztnQkFDYixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQ2Q7U0FDRjtJQUNILENBQUM7SUFDRCxNQUFNLENBQUMsR0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBQ0QsZUFBZSxDQUFDLEdBQUcsR0FBRyxJQUFJLEVBQUUsS0FBSyxHQUFHLElBQUksRUFBRSxJQUFJLEdBQUcsSUFBSTtRQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztRQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0QsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQztRQUN6RCxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFDO1lBQ3JCLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1NBQ2pCO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUNELEdBQUcsQ0FBQyxVQUFVLEdBQUcsSUFBSTtRQUNuQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQ3BCO1lBQ0UsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1RSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hGLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLEVBQUM7Z0JBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM1QyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLGtCQUFrQixDQUFDLElBQUksRUFBQztvQkFDcEQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2lCQUNiO3FCQUFJO29CQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2lCQUN0QjthQUNGO2lCQUFLO2dCQUNKLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2FBQ3pCO1NBQ0Y7YUFBSTtZQUNILElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLE9BQU87U0FDUjtRQUNELElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBQztZQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7U0FDaEM7UUFDRCxLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsS0FBSyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsRUFBQztZQUNoSCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQztnQkFDOUQsU0FBUzthQUNWO1lBQ0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFDakYsTUFBTSxDQUFDLFNBQVMsS0FBSyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsNEJBQTRCLENBQUMsQ0FBQztZQUN6SCxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssd0JBQXdCLENBQUMsTUFBTSxFQUFDO2dCQUN4RCxTQUFTLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFDO29CQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUM1RCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUM7d0JBQ25CLFNBQVMsQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFOzRCQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLEVBQUU7Z0NBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7Z0NBQ2xCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzs0QkFDZCxDQUFDLENBQUM7NEJBQ0YsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO3dCQUN6QixDQUFDLENBQUM7cUJBQ0g7eUJBQUk7d0JBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO3dCQUMvQixTQUFTO3FCQUNWO2lCQUNGO3FCQUFJO29CQUNILElBQUksSUFBSSxDQUFDLEtBQUssRUFBQzt3QkFDYixTQUFTLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTs0QkFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQzt3QkFDcEIsQ0FBQyxDQUFDO3FCQUNIO3lCQUFJO3dCQUNILFNBQVMsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztxQkFDNUI7aUJBQ0Y7YUFDRjtpQkFDSSxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssd0JBQXdCLENBQUMsTUFBTSxFQUFDO2dCQUM3RCxTQUFTLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTtvQkFDdkIsTUFBTSxDQUFDLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztvQkFDaEMsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztvQkFDL0IsQ0FBQyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUM7b0JBQ3ZCLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNsRyxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDOUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUM1RixDQUFDLENBQUM7YUFDSDtpQkFDSSxJQUFJLE1BQU0sQ0FBQyxXQUFXLEtBQUsseUJBQXlCLENBQUMsS0FBSyxFQUFDO2dCQUM5RCxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzFFLFNBQVMsQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFO29CQUN2QixJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFDO3dCQUN4QixNQUFNLENBQUMsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO3dCQUNoQyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO3dCQUMvQixDQUFDLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO3dCQUMzQyxDQUFDLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7d0JBQ3pCLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7d0JBQ3RDLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFDOzRCQUM3QixTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7NEJBQzVDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQzt5QkFDakQ7d0JBQ0QsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7cUJBQzdCO29CQUNELElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUM7d0JBQ3ZCLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO3dCQUN4QyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQzt3QkFDdEMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsRUFBRTs0QkFDeEMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQzt3QkFDekIsQ0FBQyxDQUFDO3FCQUNIO2dCQUNILENBQUMsQ0FBQzthQUNIO2lCQUFNLElBQUksTUFBTSxDQUFDLFdBQVcsS0FBSyx5QkFBeUIsQ0FBQyxPQUFPLEVBQUM7Z0JBQ2xFLFNBQVMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZFLENBQUMsQ0FBQzthQUNIO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDOUI7UUFDRCxLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFDO1lBQ3RFLE1BQU0sR0FBRyxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztZQUMzRyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssd0JBQXdCLENBQUMsTUFBTSxFQUFDO2dCQUN4RCxHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTtvQkFDakIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUM3RCxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUNsSSxDQUFDLENBQUM7YUFDSDtpQkFBTyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEtBQUsseUJBQXlCLENBQUMsT0FBTyxFQUFDO2dCQUNuRSxHQUFHLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN2RSxDQUFDLENBQUM7YUFDSDtpQkFBTTtnQkFDTCxHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTtvQkFDakIsTUFBTSxDQUFDLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztvQkFDaEMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztvQkFDekMsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztvQkFDL0IsQ0FBQyxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO29CQUNqQyxDQUFDLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7b0JBQ3pCLE1BQU0sSUFBSSxHQUFHLEVBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQztvQkFDL0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsY0FBYyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUU7d0JBQ2xKLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDZCxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUM7YUFDSDtZQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzdCO1FBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFDO1lBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFDbkgsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssa0JBQWtCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsS0FBSyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsRUFDN0ksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUM3RCxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUM7b0JBQ1YsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQzFELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztpQkFDMUI7cUJBQUk7b0JBQ0gsSUFBSSxDQUFDLEVBQUUsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUM1RCxNQUFNLE9BQU8sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO29CQUN0QyxPQUFPLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztvQkFDMUIsT0FBTyxDQUFDLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUM7b0JBQ3pDLE9BQU8sQ0FBQyxXQUFXLEdBQUcseUJBQXlCLENBQUMsSUFBSSxDQUFDO29CQUNyRCxPQUFPLENBQUMsU0FBUyxHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FBQztvQkFDakQsT0FBTyxDQUFDLFVBQVUsR0FBRyx3QkFBd0IsQ0FBQyxNQUFNLENBQUM7b0JBQ3JELE9BQU8sQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO29CQUM1QixPQUFPLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztvQkFDeEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztvQkFDdEMsT0FBTyxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7b0JBQzFCLE9BQU8sQ0FBQyxJQUFJLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDO29CQUN6QyxPQUFPLENBQUMsV0FBVyxHQUFHLHlCQUF5QixDQUFDLElBQUksQ0FBQztvQkFDckQsT0FBTyxDQUFDLFNBQVMsR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLENBQUM7b0JBQ2pELE9BQU8sQ0FBQyxVQUFVLEdBQUcsd0JBQXdCLENBQUMsTUFBTSxDQUFDO29CQUNyRCxPQUFPLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQztvQkFDOUIsT0FBTyxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7b0JBQ3hCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxNQUFNLEVBQUM7d0JBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDOzRCQUNiLElBQUksRUFBRSxJQUFJOzRCQUNWLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7eUJBQzVCLENBQUMsQ0FBQztxQkFDSjt5QkFBTTt3QkFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzs0QkFDaEIsSUFBSSxFQUFFLElBQUk7NEJBQ1YsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQzt5QkFDNUIsQ0FBQyxDQUFDO3FCQUNKO2lCQUNGO2dCQUNELElBQUksVUFBVSxFQUFDO29CQUNiLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3ZCO2dCQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLENBQUM7Z0JBQzNDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBQztvQkFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNuQjtZQUNILENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDVixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUM7Z0JBQ25CLE1BQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDeEYsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzlCO1lBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBQztnQkFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxFQUFFO29CQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxDQUFDO29CQUMzQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2QsQ0FBQyxDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUM7b0JBQ2QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDdkU7Z0JBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQzthQUM3QjtTQUNGO0lBQ0gsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFBWSxJQUFZLEVBQUUsR0FBRyxHQUFHLEVBQUUsRUFBRSxPQUFzQixhQUFhLENBQUMsSUFBSSxFQUNoRSxhQUFzQixJQUFJLEVBQUUsT0FBZ0IsSUFBSTtRQU81RCxTQUFJLEdBQUcsSUFBSSxDQUFDO1FBR1osWUFBTyxHQUFXLElBQUksQ0FBQztRQUN2QixTQUFJLEdBQUcsSUFBSSxDQUFDO1FBRVosV0FBTSxHQUFlLElBQUksQ0FBQztRQUMxQixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUVyQixRQUFHLEdBQWtCLElBQUksQ0FBQztRQWZ4QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkgsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEtBQUssYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFDcEUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLEtBQUssYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDMUQsQ0FBQztDQVdGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2RhbENsYXNzfSBmcm9tICcuL21vZGFsLmNsYXNzJztcclxuaW1wb3J0IHtGb3JtQ2xhc3MsIElucHV0Q2xhc3N9IGZyb20gJy4vZm9ybS5jbGFzcyc7XHJcbmltcG9ydCB7XHJcbiAgSW5wdXRUeXBlLFxyXG4gIE1ldGhvZCxcclxuICBQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW0sXHJcbiAgUGVybWlzc2lvbklucHV0QWN0aW9uRW51bSxcclxuICBQZXJtaXNzaW9uSW5wdXRUeXBlRW51bSxcclxuICBQZXJtaXNzaW9uVHlwZUVudW0sIFJlc3VsdFN0YXR1c0VudW0sXHJcbiAgVGFibGVDb2xsVHlwZSxcclxuICBUYWJsZU9wdGlvblR5cGVcclxufSBmcm9tICcuL2VudW0uY2xhc3MnO1xyXG5pbXBvcnQge1JlcXVlc3RDbGFzc30gZnJvbSAnLi9yZXF1ZXN0LmNsYXNzJztcclxuaW1wb3J0IHtQZXJtaXNzaW9uQ2xhc3N9IGZyb20gJy4vcGVybWlzc2lvbi5jbGFzcyc7XHJcbmltcG9ydCB7SGVscGVyQ2xhc3N9IGZyb20gJy4vaGVscGVyLmNsYXNzJztcclxuaW1wb3J0ICogYXMgJCBmcm9tICdqcXVlcnknO1xyXG5cclxuZXhwb3J0IGNsYXNzIFRhYmxlQ2xhc3Mge1xyXG4gIGNvbnN0cnVjdG9yKGVudmlyb25tZW50OiBhbnksIGw6IChrLCB2PykgPT4gc3RyaW5nLCBwZXJtaXNzaW9uczogUGVybWlzc2lvbkNsYXNzLCBuYW1lOiBzdHJpbmcgPSAnJywgY2xzOiBzdHJpbmcgPSAnJyxcclxuICAgICAgICAgICAgICBwZXJQYWdlOiBudW1iZXIgPSAxMCwgaGVpZ2h0OiBudW1iZXIgPSA1MCkge1xyXG4gICAgdGhpcy5lbnZpcm9ubWVudCA9IGVudmlyb25tZW50O1xyXG4gICAgdGhpcy5sID0gbDtcclxuICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICB0aGlzLmlkID0gdGhpcy5uYW1lO1xyXG4gICAgdGhpcy5wZXJtaXNzaW9ucyA9IHBlcm1pc3Npb25zO1xyXG4gICAgdGhpcy5jbGFzcyA9IGNscztcclxuICAgIHRoaXMucGVyUGFnZSA9IHBlclBhZ2U7XHJcbiAgICB0aGlzLmhlaWdodCA9IGhlaWdodDtcclxuICB9XHJcbiAgZW52aXJvbm1lbnQ6IGFueSA9IG51bGw7XHJcbiAgbDogKGssIHY/KSA9PiBzdHJpbmc7XHJcbiAgcGVybWlzc2lvbnM6IFBlcm1pc3Npb25DbGFzcztcclxuICBwZXJtaXNzaW9uID0gdHJ1ZTtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgaWQ6IHN0cmluZztcclxuICBjbGFzczogc3RyaW5nO1xyXG4gIHN0eWxlID0ge307XHJcbiAgdXJsID0gbnVsbDtcclxuICBtZXRob2Q6IE1ldGhvZCA9IE1ldGhvZC5Qb3N0O1xyXG4gIGhlaWdodCA9IDQwO1xyXG4gIHBlclBhZ2UgPSAxMDtcclxuICBjb2xzOiBUYWJsZUNvbGxDbGFzc1tdID0gW107XHJcbiAgYnV0dG9uczogSW5wdXRDbGFzc1tdID0gW107XHJcbiAgb3B0aW9uc0FjdGlvbnM6IGFueVtdID0gW107XHJcbiAgcm93cyA9IFtdO1xyXG4gIGNvdW50ID0gMDtcclxuICBwYWdlID0gMTtcclxuICBzb3J0ID0gbnVsbDtcclxuICB0aXRsZSA9IG51bGw7XHJcbiAgZGVzY3JpcHRpb24gPSBudWxsO1xyXG4gIHNvcnRUeXBlID0gbnVsbDtcclxuICBkaXNwbGF5TGFiZWwgPSB0cnVlO1xyXG4gIHNvcnRhYmxlID0gZmFsc2U7XHJcbiAgZXhwZXJ0U2VhcmNoID0gZmFsc2U7XHJcbiAgb3B0aW9uVHlwZSA9IFRhYmxlT3B0aW9uVHlwZS5IaWRkZW47XHJcbiAgbG9hZGluZyA9IHRydWU7XHJcbiAgaGFzQ2hpbGRyZW4gPSBmYWxzZTtcclxuICB2ZXJ0aWNhbCA9IGZhbHNlO1xyXG4gIGNoaWxkcmVuQXV0b0xvYWQgPSBmYWxzZTtcclxuICB3aXRoU2VsZWN0ID0gZmFsc2U7XHJcbiAgc2hvd0V4dHJhQnV0dG9ucyA9IHRydWU7XHJcbiAgZXh0cmFCdXR0b25zOiBJbnB1dENsYXNzW10gPSBbXTtcclxuICBmb3JtOiBGb3JtQ2xhc3MgPSBudWxsO1xyXG4gIHNlYXJjaEZvcm06IEZvcm1DbGFzcyA9IG51bGw7XHJcbiAgbW9kYWw6IE1vZGFsQ2xhc3MgPSBudWxsO1xyXG4gIGxldmVsID0gbnVsbDtcclxuICB3aXRoUmVsYXRlZFJvdyA9IGZhbHNlO1xyXG4gIHJlbGF0ZWRSb3cgPSBmYWxzZTtcclxuICBsaXN0QWNjZXNzOiBQZXJtaXNzaW9uQ2xhc3MgPSBudWxsO1xyXG4gIGluc2VydEFjY2VzczogUGVybWlzc2lvbkNsYXNzID0gbnVsbDtcclxuICBzdWJUYWJsZTogVGFibGVDbGFzcyA9IG51bGw7XHJcbiAgcmVxdWVzdDogYW55ID0gbnVsbDtcclxuICBvbkxvYWQ6IChkYXRhKSA9PiB2b2lkID0gbnVsbDtcclxuICBvblNvcnQ6ICgpID0+IHZvaWQgPSBudWxsO1xyXG4gIGdldFJvd0NsYXNzOiAocm93OiBhbnkpID0+IHN0cmluZyA9IG51bGw7XHJcbiAgc2hvd0NvbmZpcm06IChsOiBzdHJpbmcsIHVybDogc3RyaW5nLCBkYXRhLCBhY2NlcHQ6IChidG46IElucHV0Q2xhc3MpID0+IHZvaWQpID0+IHZvaWQgPSBudWxsO1xyXG4gIGxvYWQoYnRuID0gbnVsbCk6IHZvaWR7XHJcbiAgICBpZiAodGhpcy51cmwpe1xyXG4gICAgICB0aGlzLnNlbmRSZXF1ZXN0KGJ0bik7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkYXRhKCk6IGFueVtde1xyXG4gICAgcmV0dXJuIHRoaXMucm93cy5maWx0ZXIoeCA9PiB4LnNlbGVjdGVkKS5tYXAoeCA9PiB4LkRhdGEpO1xyXG4gIH1cclxuXHJcbiAgc2VuZFJlcXVlc3QoYnRuOiBJbnB1dENsYXNzID0gbnVsbCk6IHZvaWR7XHJcbiAgICBpZiAodGhpcy5zZWFyY2hGb3JtICYmICF0aGlzLnNlYXJjaEZvcm0uY2hlY2soKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgaWYgKGJ0bil7XHJcbiAgICAgIGlmIChidG4ubG9hZGluZyl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGJ0bi5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMucmVxdWVzdCA9IG5ldyBSZXF1ZXN0Q2xhc3ModGhpcy5lbnZpcm9ubWVudCkuZ2V0Q2xpZW50KHRoaXMucmVxdWVzdCwgdGhpcy51cmwsIHRoaXMubWV0aG9kLCB0aGlzLnNlYXJjaERhdGEoKSxcclxuICAgICAgKHJlcykgPT4ge1xyXG4gICAgICAgIGlmIChyZXMuc3RhdHVzID09PSBSZXN1bHRTdGF0dXNFbnVtLlN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmICh0aGlzLnZlcnRpY2FsKXtcclxuICAgICAgICAgICAgY29uc3QgYzogYW55ID0ge307XHJcbiAgICAgICAgICAgIHRoaXMuY29scy5mb3JFYWNoKHggPT4gY1t4Lm5hbWVdID0geC5uYW1lKTtcclxuICAgICAgICAgICAgYy5Db2xUeXBlID0gJ0NvbHVtbic7XHJcbiAgICAgICAgICAgIHJlcy5yZXN1bHQuTGlzdC51bnNoaWZ0KHtEYXRhOiBjLCBPcHRpb25zOiBbXX0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5yb3dzID0gcmVzLnJlc3VsdC5MaXN0O1xyXG4gICAgICAgICAgdGhpcy5jb3VudCA9IHJlcy5yZXN1bHQuQ291bnQ7XHJcbiAgICAgICAgICBpZiAodGhpcy5vbkxvYWQpe1xyXG4gICAgICAgICAgICB0aGlzLm9uTG9hZChyZXMucmVzdWx0LkRhdGEpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGJ0bil7XHJcbiAgICAgICAgICAgIGJ0bi5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IG0gPSAnJztcclxuICAgICAgICAgIGlmIChyZXMuc3RhdHVzID09PSBSZXN1bHRTdGF0dXNFbnVtLk5vdFJlZ2lzdGVyZWQpIHtcclxuICAgICAgICAgICAgbSA9ICdGb3JtQmFzZUVycm9yTm90UmVnaXN0ZXJlZCc7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlcy5zdGF0dXMgPT09IFJlc3VsdFN0YXR1c0VudW0uRXhwaXJlZFJlZ2lzdGVyZWQpIHtcclxuICAgICAgICAgICAgbSA9ICdGb3JtQmFzZUVycm9yRXhwaXJlZFJlZ2lzdGVyZWQnO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChyZXMuc3RhdHVzID09PSBSZXN1bHRTdGF0dXNFbnVtLkludmFsaWRJcCkge1xyXG4gICAgICAgICAgICBtID0gJ0Zvcm1CYXNlRXJyb3JJbnZhbGlkSXAnO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChyZXMuc3RhdHVzID09PSBSZXN1bHRTdGF0dXNFbnVtLk5vQ3JlZGl0KSB7XHJcbiAgICAgICAgICAgIG0gPSAnRm9ybUJhc2VFcnJvck5vQ3JlZGl0JztcclxuICAgICAgICAgIH0gZWxzZSBpZiAocmVzLnN0YXR1cyA9PT0gUmVzdWx0U3RhdHVzRW51bS5VbmF1dGhvcml6ZWQpIHtcclxuICAgICAgICAgICAgbSA9ICdGb3JtQmFzZUVycm9yRXhwaXJlZCc7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlcy5zdGF0dXMgPT09IFJlc3VsdFN0YXR1c0VudW0uTm90QWNjZXNzKSB7XHJcbiAgICAgICAgICAgIG0gPSAnRm9ybUJhc2VFcnJvckFjY2Vzcyc7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlcy5zdGF0dXMgPT09IFJlc3VsdFN0YXR1c0VudW0uTm90UGVybWlzc2lvbikge1xyXG4gICAgICAgICAgICBtID0gJ0Zvcm1CYXNlRXJyb3JQZXJtaXNzaW9uJztcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcmVzLm1lc3NhZ2UgPT09ICdzdHJpbmcnKXtcclxuICAgICAgICAgICAgICBjb25zdCBhbSA9IHJlcy5tZXNzYWdlLnNwbGl0KCc6Jyk7XHJcbiAgICAgICAgICAgICAgbSA9IHRoaXMubChhbVswXSwgYW0ubGVuZ3RoID4gMSA/IGFtLnNsaWNlKDEpIDogbnVsbCk7XHJcbiAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpmb3JpblxyXG4gICAgICAgICAgICAgIGZvciAoY29uc3QgbXNnIGluIHJlcy5tZXNzYWdlKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBub2luc3BlY3Rpb24gSlNVbmZpbHRlcmVkRm9ySW5Mb29wXHJcbiAgICAgICAgICAgICAgICBtID0gdGhpcy5sKG1zZywgcmVzLm1lc3NhZ2VbbXNnXSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAobSkge1xyXG4gICAgICAgICAgICBIZWxwZXJDbGFzcy5hZGROb3RpZmljYXRpb24odGhpcy5sKG0pKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMucm93cyA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5jb3VudCA9IDA7XHJcbiAgICAgICAgICB0aGlzLnBhZ2UgPSAxO1xyXG4gICAgICAgICAgaWYgKGJ0bil7XHJcbiAgICAgICAgICAgIGJ0bi5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgICgpID0+IHtcclxuICAgICAgICB0aGlzLnJvd3MgPSBbXTtcclxuICAgICAgICB0aGlzLmNvdW50ID0gMDtcclxuICAgICAgICB0aGlzLnBhZ2UgPSAxO1xyXG4gICAgICAgIGlmIChidG4pe1xyXG4gICAgICAgICAgYnRuLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRPcHRpb25VcmwodXJsLCByZWxhdGVkSWQsIHJvd0lkKTogc3RyaW5ne1xyXG4gICAgcmV0dXJuIChyZWxhdGVkSWQgPyB1cmwucmVwbGFjZSgne30nLCByZWxhdGVkSWQpIDogKHVybC5tYXRjaCgve30vZykgfHwgW10pLmxlbmd0aCA+IDEgPyB1cmwucmVwbGFjZSgnL3t9JywgJycpIDogdXJsKS5yZXBsYWNlKCd7fScsIHJvd0lkKTtcclxuICB9XHJcbiAgc2VhcmNoRGF0YShyZXBvcnQgPSBmYWxzZSk6IHt9IHtcclxuICAgIGxldCBkOiBhbnkgPSB7fTtcclxuICAgIGlmICghcmVwb3J0KXtcclxuICAgICAgZC5QYWdlID0gdGhpcy5wYWdlO1xyXG4gICAgICBkLlBlclBhZ2UgPSB0aGlzLnBlclBhZ2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkLlJlcG9ydElkID0gSGVscGVyQ2xhc3MucmFuZG9tKDIwKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNvcnRhYmxlKXtcclxuICAgICAgZC5Tb3J0ID0gJ1ByaW9yaXR5JztcclxuICAgICAgZC5Tb3J0VHlwZSA9ICdBU0MnO1xyXG4gICAgfWVsc2UgaWYgKHRoaXMuc29ydCl7XHJcbiAgICAgIGQuU29ydCA9IHRoaXMuc29ydDtcclxuICAgICAgZC5Tb3J0VHlwZSA9IHRoaXMuc29ydFR5cGU7XHJcbiAgICB9XHJcbiAgICBmb3IgKGNvbnN0IGMgb2YgdGhpcy5jb2xzLmZpbHRlcih4ID0+IHgud2l0aFNlYXJjaCAmJiB4LnNlYXJjaCAhPSBudWxsICYmIHguc2VhcmNoLmRhdGEoKSAhPSBudWxsICYmIHguc2VhcmNoLmRhdGEoKSAhPT0gJycpKXtcclxuICAgICAgY29uc3QgdmwgPSBjLnNlYXJjaC5kYXRhKCk7XHJcbiAgICAgIHRoaXMuYWRkRGF0YShkLCBjLm5hbWUsIHZsKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLndpdGhSZWxhdGVkUm93KXtcclxuICAgICAgZCA9IE9iamVjdC5hc3NpZ24oe30sIGQsIHRoaXMucmVsYXRlZFJvdyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hGb3JtID8gdGhpcy5zZWFyY2hGb3JtLmRhdGEoZCkgOiBkO1xyXG4gIH1cclxuICBhZGREYXRhKGQ6IHt9LCBuYW1lOiBzdHJpbmcsIHZsOiBhbnkpOiB2b2lke1xyXG4gICAgaWYgKHR5cGVvZiB2bCA9PT0gJ29iamVjdCcgJiYgISh2bCBpbnN0YW5jZW9mIEFycmF5KSl7XHJcbiAgICAgIGZvciAoY29uc3QgWyBrZXksIHZhbHVlIF0gb2YgT2JqZWN0LmVudHJpZXModmwpKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpe1xyXG4gICAgICAgICAgZFtrZXldID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodmwgIT0gbnVsbCl7XHJcbiAgICAgICAgZFtuYW1lXSA9IHZsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldFVybCh1cmw6IHN0cmluZyk6IHN0cmluZ3tcclxuICAgIHJldHVybiB0aGlzLnBlcm1pc3Npb25zLlJlbGF0ZWRJZCA/IHVybC5yZXBsYWNlKCd7fScsIHRoaXMucGVybWlzc2lvbnMuUmVsYXRlZElkKSA6IHVybC5yZXBsYWNlKCcve30nLCAnJyk7XHJcbiAgfVxyXG4gIHNob3dJbnNlcnRNb2RhbChjSWQgPSBudWxsLCBsZXZlbCA9IG51bGwsIGRhdGEgPSBudWxsKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm0uaXNFZGl0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmZvcm0udXJsID0gdGhpcy5mb3JtLmJhc2VVcmwgPSB0aGlzLmdldFVybCh0aGlzLmluc2VydEFjY2Vzcy5VcmwpICsgKGNJZCA/ICcvJyArIGNJZCA6ICcnKTtcclxuICAgIHRoaXMuZm9ybS5uYW1lID0gdGhpcy5pbnNlcnRBY2Nlc3MuTmFtZTtcclxuICAgIHRoaXMuZm9ybS5tZXRob2QgPSBNZXRob2QuUG9zdDtcclxuICAgIHRoaXMuZm9ybS5pbnB1dHMuZmlsdGVyKHggPT4geC5pbkVkaXREaXNhYmxlZCkuZm9yRWFjaCh4ID0+IHguZGlzYWJsZWQgPSBmYWxzZSk7XHJcbiAgICB0aGlzLmZvcm0uaW5wdXRzLmZpbHRlcih4ID0+ICF4LmluRWRpdFZpc2libGUpLmZvckVhY2goeCA9PiB4LnZpc2libGUgPSB0cnVlKTtcclxuICAgIHRoaXMuZm9ybS5pbnB1dHMuZm9yRWFjaCh4ID0+IHgucmVxdWlyZWQgPSB4LmJhc2VSZXF1aXJlZCk7XHJcbiAgICBjb25zdCBsID0gdGhpcy5mb3JtLmlucHV0cy5maW5kKHggPT4geC5uYW1lID09PSAnTGV2ZWwnKTtcclxuICAgIGlmIChsZXZlbCAhPSBudWxsICYmIGwpe1xyXG4gICAgICBsLnZhbHVlID0gbGV2ZWw7XHJcbiAgICB9XHJcbiAgICB0aGlzLm1vZGFsLnNob3coZGF0YSk7XHJcbiAgfVxyXG4gIHNldChjaGFuZ2VSb3dzID0gbnVsbCk6IHZvaWR7XHJcbiAgICB0aGlzLnBlcm1pc3Npb24gPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMucGVybWlzc2lvbnMpXHJcbiAgICB7XHJcbiAgICAgIHRoaXMubGlzdEFjY2VzcyA9IHRoaXMucGVybWlzc2lvbnMuZ2V0QWNjZXNzKFBlcm1pc3Npb25BY2Nlc3NUeXBlRW51bS5MaXN0KTtcclxuICAgICAgdGhpcy5pbnNlcnRBY2Nlc3MgPSB0aGlzLnBlcm1pc3Npb25zLmdldEFjY2VzcyhQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW0uSW5zZXJ0KTtcclxuICAgICAgaWYgKHRoaXMubGlzdEFjY2VzcyAhPT0gbnVsbCl7XHJcbiAgICAgICAgdGhpcy50aXRsZSA9IHRoaXMubGlzdEFjY2Vzcy5OYW1lO1xyXG4gICAgICAgIHRoaXMudXJsID0gdGhpcy5nZXRVcmwodGhpcy5saXN0QWNjZXNzLlVybCk7XHJcbiAgICAgICAgaWYgKHRoaXMucGVybWlzc2lvbnMuVHlwZSAhPT0gUGVybWlzc2lvblR5cGVFbnVtLkZvcm0pe1xyXG4gICAgICAgICAgdGhpcy5sb2FkKCk7XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZXtcclxuICAgICAgICB0aGlzLnBlcm1pc3Npb24gPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMucGVybWlzc2lvbiA9IGZhbHNlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5mb3JtICYmIHRoaXMuZm9ybS5vblRvcCl7XHJcbiAgICAgIHRoaXMuZm9ybS5kaXNwbGF5TGFiZWwgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGZvciAoY29uc3QgYWNjZXNzIG9mIHRoaXMucGVybWlzc2lvbnMuZ2V0QWNjZXNzZXMoKS5maWx0ZXIoeCA9PiB4LklucHV0QWN0aW9uICE9PSBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLk5vbmUpKXtcclxuICAgICAgaWYgKHRoaXMuYnV0dG9ucy5maWx0ZXIoeCA9PiB4Lm5hbWUgPT09IGFjY2Vzcy5OYW1lKS5sZW5ndGggPiAwKXtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBhY2Nlc3NJbnAgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmVudmlyb25tZW50LCB0aGlzLmwsIGFjY2Vzcy5OYW1lLCBhY2Nlc3MuSWNvbixcclxuICAgICAgICBhY2Nlc3MuSW5wdXRUeXBlID09PSBQZXJtaXNzaW9uSW5wdXRUeXBlRW51bS5CdXR0b24gPyBJbnB1dFR5cGUuQnV0dG9uIDogSW5wdXRUeXBlLkljb24sICdibHVlIHAtMCBtLXItMTAtcCB3LXUgaC0zMCcpO1xyXG4gICAgICBpZiAoYWNjZXNzLkFjY2Vzc1R5cGUgPT09IFBlcm1pc3Npb25BY2Nlc3NUeXBlRW51bS5JbnNlcnQpe1xyXG4gICAgICAgIGFjY2Vzc0lucC5jbGFzcyA9IGFjY2Vzc0lucC5jbGFzcy5yZXBsYWNlKCdibHVlJywgJ2dyZWVuJyk7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybSl7XHJcbiAgICAgICAgICB0aGlzLmZvcm0udXJsID0gdGhpcy5mb3JtLmJhc2VVcmwgPSB0aGlzLmdldFVybChhY2Nlc3MuVXJsKTtcclxuICAgICAgICAgIGlmICghdGhpcy5mb3JtLm9uVG9wKXtcclxuICAgICAgICAgICAgYWNjZXNzSW5wLm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5mb3JtLm9uU3VjY2Vzc0Jhc2UgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGFsLmhpZGUoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZCgpO1xyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93SW5zZXJ0TW9kYWwoKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0uZGlzcGxheUxhYmVsID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgaWYgKHRoaXMubW9kYWwpe1xyXG4gICAgICAgICAgICBhY2Nlc3NJbnAub25DbGljayA9ICgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLm1vZGFsLnNob3coKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICBhY2Nlc3NJbnAudXJsID0gYWNjZXNzLlVybDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoYWNjZXNzLkFjY2Vzc1R5cGUgPT09IFBlcm1pc3Npb25BY2Nlc3NUeXBlRW51bS5SZXBvcnQpe1xyXG4gICAgICAgIGFjY2Vzc0lucC5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgcCA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICAgIHAuQXJlYSA9IHRoaXMucGVybWlzc2lvbnMuQXJlYTtcclxuICAgICAgICAgIHAuQ29udHJvbGxlciA9ICdwcmludCc7XHJcbiAgICAgICAgICBwLkFjdGlvbiA9IHRoaXMucGVybWlzc2lvbnMuQ29udHJvbGxlciArICh0aGlzLnBlcm1pc3Npb25zLkFjdGlvbiA/IHRoaXMucGVybWlzc2lvbnMuQWN0aW9uIDogJycpO1xyXG4gICAgICAgICAgY29uc3QgcGFyYW1zID0gJC5wYXJhbSh0aGlzLnNlYXJjaERhdGEodHJ1ZSkpO1xyXG4gICAgICAgICAgd2luZG93Lm9wZW4oJy9yZXBvcnQnICsgdGhpcy5nZXRVcmwoYWNjZXNzLlVybCkgKyAocGFyYW1zID8gJz8nICsgcGFyYW1zIDogJycpLCAnX2JsYW5rJyk7XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChhY2Nlc3MuSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uTW9kYWwpe1xyXG4gICAgICAgIGFjY2Vzc0lucC5tb2RhbCA9IHRoaXMub3B0aW9uc0FjdGlvbnMuZmluZCh4ID0+IHgubmFtZSA9PT0gYWNjZXNzLkFjdGlvbik7XHJcbiAgICAgICAgYWNjZXNzSW5wLm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAoYWNjZXNzSW5wLm1vZGFsLnRhYmxlKXtcclxuICAgICAgICAgICAgY29uc3QgcCA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICAgICAgcC5BcmVhID0gdGhpcy5wZXJtaXNzaW9ucy5BcmVhO1xyXG4gICAgICAgICAgICBwLkNvbnRyb2xsZXIgPSB0aGlzLnBlcm1pc3Npb25zLkNvbnRyb2xsZXI7XHJcbiAgICAgICAgICAgIHAuQWN0aW9uID0gYWNjZXNzLkFjdGlvbjtcclxuICAgICAgICAgICAgYWNjZXNzSW5wLm1vZGFsLnRhYmxlLnBlcm1pc3Npb25zID0gcDtcclxuICAgICAgICAgICAgaWYgKGFjY2Vzc0lucC5tb2RhbC50YWJsZS5mb3JtKXtcclxuICAgICAgICAgICAgICBhY2Nlc3NJbnAubW9kYWwudGFibGUuZm9ybS51cmwgPSBhY2Nlc3MuVXJsO1xyXG4gICAgICAgICAgICAgIGFjY2Vzc0lucC5tb2RhbC50YWJsZS5mb3JtLmJhc2VVcmwgPSBhY2Nlc3MuVXJsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGFjY2Vzc0lucC5tb2RhbC50YWJsZS5zZXQoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChhY2Nlc3NJbnAubW9kYWwuZm9ybSl7XHJcbiAgICAgICAgICAgIGFjY2Vzc0lucC5tb2RhbC5mb3JtLm5hbWUgPSBhY2Nlc3MuTmFtZTtcclxuICAgICAgICAgICAgYWNjZXNzSW5wLm1vZGFsLmZvcm0udXJsID0gYWNjZXNzLlVybDtcclxuICAgICAgICAgICAgYWNjZXNzSW5wLm1vZGFsLmZvcm0ub25TdWNjZXNzQmFzZSA9ICgpID0+IHtcclxuICAgICAgICAgICAgICBhY2Nlc3NJbnAubW9kYWwuaGlkZSgpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgIH0gZWxzZSBpZiAoYWNjZXNzLklucHV0QWN0aW9uID09PSBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLk9uQ2xpY2spe1xyXG4gICAgICAgIGFjY2Vzc0lucC5vbkNsaWNrID0gKGJ0bikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5vcHRpb25zQWN0aW9ucy5maW5kKHggPT4geC5uYW1lID09PSBhY2Nlc3MuQWN0aW9uKS5vbkNsaWNrKGJ0bik7XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmJ1dHRvbnMucHVzaChhY2Nlc3NJbnApO1xyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCBvcHRpb24gb2YgdGhpcy5wZXJtaXNzaW9ucy5nZXRPcHRpb25zKCkuZmlsdGVyKHggPT4geC5NdWx0aSkpe1xyXG4gICAgICBjb25zdCBvcHQgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmVudmlyb25tZW50LCB0aGlzLmwsIG9wdGlvbi5OYW1lLCBvcHRpb24uSWNvbiwgSW5wdXRUeXBlLkljb24sICdtLXItMTAtcCcpO1xyXG4gICAgICBpZiAob3B0aW9uLkFjY2Vzc1R5cGUgPT09IFBlcm1pc3Npb25BY2Nlc3NUeXBlRW51bS5SZXBvcnQpe1xyXG4gICAgICAgIG9wdC5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5kYXRhKCkubWFwKHggPT4gJ0lkcz0nICsgeC5JZCkuam9pbignJicpO1xyXG4gICAgICAgICAgd2luZG93Lm9wZW4oJy9yZXBvcnQnICsgdGhpcy5nZXRPcHRpb25Vcmwob3B0aW9uLlVybCwgdGhpcy5wZXJtaXNzaW9ucy5SZWxhdGVkSWQsICcnKSArIChwYXJhbXMgPyAnPycgKyBwYXJhbXMgOiAnJyksICdfYmxhbmsnKTtcclxuICAgICAgICB9O1xyXG4gICAgICB9ICBlbHNlIGlmIChvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uT25DbGljayl7XHJcbiAgICAgICAgb3B0Lm9uQ2xpY2sgPSAoYnRuKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9wdGlvbnNBY3Rpb25zLmZpbmQoeCA9PiB4Lm5hbWUgPT09IG9wdGlvbi5BY3Rpb24pLm9uQ2xpY2soYnRuKTtcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG9wdC5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgcCA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICAgIHAuUmVsYXRlZElkID0gdGhpcy5wZXJtaXNzaW9ucy5SZWxhdGVkSWQ7XHJcbiAgICAgICAgICBwLkFyZWEgPSB0aGlzLnBlcm1pc3Npb25zLkFyZWE7XHJcbiAgICAgICAgICBwLkNvbnRyb2xsZXIgPSBvcHRpb24uQ29udHJvbGxlcjtcclxuICAgICAgICAgIHAuQWN0aW9uID0gb3B0aW9uLkFjdGlvbjtcclxuICAgICAgICAgIGNvbnN0IGRhdGEgPSB7SWRzOiB0aGlzLmRhdGEoKS5tYXAoeCA9PiB4LklkKX07XHJcbiAgICAgICAgICB0aGlzLnNob3dDb25maXJtKHRoaXMubChvcHRpb24uQWN0aW9uICsgJ0NvbmZpcm1NdWx0aScsIGRhdGEuSWRzLmxlbmd0aCksIHRoaXMuZ2V0T3B0aW9uVXJsKG9wdGlvbi5VcmwsIHRoaXMucGVybWlzc2lvbnMuUmVsYXRlZElkLCAnJyksIGRhdGEsICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkKCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZXh0cmFCdXR0b25zLnB1c2gob3B0KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZvcm0pe1xyXG4gICAgICB0aGlzLmZvcm0uYWRkQnV0dG9ucygnU2F2ZScsIHRoaXMucGVybWlzc2lvbnMuVHlwZSA9PT0gUGVybWlzc2lvblR5cGVFbnVtLkZvcm0gPyAnZ3JlZW4gdy0xMCBvbmx5LWljb24gZi1sJyA6ICdncmVlbicsXHJcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9ucy5UeXBlICE9PSBQZXJtaXNzaW9uVHlwZUVudW0uRm9ybSwgdGhpcy5wZXJtaXNzaW9ucy5nZXRBY2Nlc3NlcygpLnNvbWUoeCA9PiB4LkFjY2Vzc1R5cGUgPT09IFBlcm1pc3Npb25BY2Nlc3NUeXBlRW51bS5JbnNlcnQpLFxyXG4gICAgICAgIHRoaXMucGVybWlzc2lvbnMuVHlwZSA9PT0gUGVybWlzc2lvblR5cGVFbnVtLkZvcm0gPyAoZGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhLklkKXtcclxuICAgICAgICAgIGNvbnN0IGkgPSB0aGlzLnJvd3MuZmluZEluZGV4KHggPT4geC5EYXRhLklkID09PSBkYXRhLklkKTtcclxuICAgICAgICAgIHRoaXMucm93c1tpXS5EYXRhID0gZGF0YTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIGRhdGEuSWQgPSBwYXJzZUludChIZWxwZXJDbGFzcy5yYW5kb20oNSwgZmFsc2UsIGZhbHNlKSwgMTApO1xyXG4gICAgICAgICAgY29uc3QgdUFjY2VzcyA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICAgIHVBY2Nlc3MuQWN0aW9uID0gJ1VwZGF0ZSc7XHJcbiAgICAgICAgICB1QWNjZXNzLlR5cGUgPSBQZXJtaXNzaW9uVHlwZUVudW0uT3B0aW9uO1xyXG4gICAgICAgICAgdUFjY2Vzcy5JbnB1dEFjdGlvbiA9IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uTm9uZTtcclxuICAgICAgICAgIHVBY2Nlc3MuSW5wdXRUeXBlID0gUGVybWlzc2lvbklucHV0VHlwZUVudW0uSWNvbjtcclxuICAgICAgICAgIHVBY2Nlc3MuQWNjZXNzVHlwZSA9IFBlcm1pc3Npb25BY2Nlc3NUeXBlRW51bS5VcGRhdGU7XHJcbiAgICAgICAgICB1QWNjZXNzLkljb24gPSAnZmFkIGZhLXBlbic7XHJcbiAgICAgICAgICB1QWNjZXNzLk5hbWUgPSAnVXBkYXRlJztcclxuICAgICAgICAgIGNvbnN0IGRBY2Nlc3MgPSBuZXcgUGVybWlzc2lvbkNsYXNzKCk7XHJcbiAgICAgICAgICBkQWNjZXNzLkFjdGlvbiA9ICdEZWxldGUnO1xyXG4gICAgICAgICAgZEFjY2Vzcy5UeXBlID0gUGVybWlzc2lvblR5cGVFbnVtLk9wdGlvbjtcclxuICAgICAgICAgIGRBY2Nlc3MuSW5wdXRBY3Rpb24gPSBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLk5vbmU7XHJcbiAgICAgICAgICBkQWNjZXNzLklucHV0VHlwZSA9IFBlcm1pc3Npb25JbnB1dFR5cGVFbnVtLkljb247XHJcbiAgICAgICAgICBkQWNjZXNzLkFjY2Vzc1R5cGUgPSBQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW0uRGVsZXRlO1xyXG4gICAgICAgICAgZEFjY2Vzcy5JY29uID0gJ2ZhZCBmYS10cmFzaCc7XHJcbiAgICAgICAgICBkQWNjZXNzLk5hbWUgPSAnRGVsZXRlJztcclxuICAgICAgICAgIGlmICh0aGlzLnNvcnRUeXBlID09PSAnREVTQycpe1xyXG4gICAgICAgICAgICB0aGlzLnJvd3MucHVzaCh7XHJcbiAgICAgICAgICAgICAgRGF0YTogZGF0YSxcclxuICAgICAgICAgICAgICBPcHRpb25zOiBbdUFjY2VzcywgZEFjY2Vzc11cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnJvd3MudW5zaGlmdCh7XHJcbiAgICAgICAgICAgICAgRGF0YTogZGF0YSxcclxuICAgICAgICAgICAgICBPcHRpb25zOiBbdUFjY2VzcywgZEFjY2Vzc11cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChjaGFuZ2VSb3dzKXtcclxuICAgICAgICAgIGNoYW5nZVJvd3MuZW1pdChkYXRhKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5mb3JtLmNsZWFyKHRoaXMuaW5zZXJ0QWNjZXNzICE9IG51bGwpO1xyXG4gICAgICAgIGlmICh0aGlzLm9uTG9hZCl7XHJcbiAgICAgICAgICB0aGlzLm9uTG9hZChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gOiBudWxsKTtcclxuICAgICAgaWYgKHRoaXMuaGFzQ2hpbGRyZW4pe1xyXG4gICAgICAgIGNvbnN0IGxldmVsID0gbmV3IElucHV0Q2xhc3ModGhpcy5lbnZpcm9ubWVudCwgdGhpcy5sLCAnTGV2ZWwnLCBudWxsLCBJbnB1dFR5cGUuSGlkZGVuKTtcclxuICAgICAgICB0aGlzLmZvcm0uaW5wdXRzLnB1c2gobGV2ZWwpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmZvcm0ub25Ub3Ape1xyXG4gICAgICAgIHRoaXMuZm9ybS5vblN1Y2Nlc3NCYXNlID0gKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mb3JtLmNsZWFyKHRoaXMuaW5zZXJ0QWNjZXNzICE9IG51bGwpO1xyXG4gICAgICAgICAgdGhpcy5sb2FkKCk7XHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoIXRoaXMubW9kYWwpe1xyXG4gICAgICAgICAgdGhpcy5tb2RhbCA9IG5ldyBNb2RhbENsYXNzKHRoaXMuZW52aXJvbm1lbnQsIHRoaXMubCwgdGhpcy5mb3JtLm5hbWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm1vZGFsLmZvcm0gPSB0aGlzLmZvcm07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbGxDbGFzcyB7XHJcbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBjbHMgPSAnJywgdHlwZTogVGFibGVDb2xsVHlwZSA9IFRhYmxlQ29sbFR5cGUuVGV4dCxcclxuICAgICAgICAgICAgICB3aXRoU2VhcmNoOiBib29sZWFuID0gdHJ1ZSwgc29ydDogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICB0aGlzLmNsYXNzID0gY2xzICsgKFtUYWJsZUNvbGxUeXBlLkNvbG9yLCBUYWJsZUNvbGxUeXBlLlVybCwgVGFibGVDb2xsVHlwZS5GaWxlU2l6ZV0uaW5jbHVkZXModHlwZSkgPyAnIGx0cicgOiAnJyk7XHJcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xyXG4gICAgdGhpcy53aXRoU2VhcmNoID0gdHlwZSA9PT0gVGFibGVDb2xsVHlwZS5JbWFnZSA/IGZhbHNlIDogd2l0aFNlYXJjaDtcclxuICAgIHRoaXMuc29ydCA9IHR5cGUgPT09IFRhYmxlQ29sbFR5cGUuSW1hZ2UgPyBmYWxzZSA6IHNvcnQ7XHJcbiAgfVxyXG4gIGVudW0gPSBudWxsO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBjbGFzczogc3RyaW5nO1xyXG4gIGRlZmF1bHQ6IHN0cmluZyA9IG51bGw7XHJcbiAgc29ydCA9IHRydWU7XHJcbiAgd2l0aFNlYXJjaDogYm9vbGVhbjtcclxuICBzZWFyY2g6IElucHV0Q2xhc3MgPSBudWxsO1xyXG4gIHNlYXJjaERlZmF1bHQgPSBudWxsO1xyXG4gIHR5cGU6IFRhYmxlQ29sbFR5cGU7XHJcbiAgZnVuOiAocm93KSA9PiB2b2lkID0gbnVsbDtcclxufVxyXG4iXX0=
|
|
429
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiRDovUHNUb29sa2l0L1VJL3Byb2plY3RzL3BzLXRvb2xraXQtdWkvc3JjLyIsInNvdXJjZXMiOlsibGliL2NsYXNzZXMvdGFibGUuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQVksVUFBVSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ25ELE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUFFLGdCQUFnQixFQUNwQyxhQUFhLEVBQ2IsZUFBZSxFQUNoQixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixNQUFNLE9BQU8sVUFBVTtJQUNyQixZQUFZLFdBQWdCLEVBQUUsQ0FBb0IsRUFBRSxXQUE0QixFQUFFLE9BQWUsRUFBRSxFQUFFLE1BQWMsRUFBRSxFQUN6RyxVQUFrQixFQUFFLEVBQUUsU0FBaUIsRUFBRTtRQVVyRCxnQkFBVyxHQUFRLElBQUksQ0FBQztRQUd4QixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBSWxCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxRQUFHLEdBQUcsSUFBSSxDQUFDO1FBQ1gsV0FBTSxHQUFXLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDN0IsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFDYixTQUFJLEdBQXFCLEVBQUUsQ0FBQztRQUM1QixZQUFPLEdBQWlCLEVB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QU0sT0FBTyxjQUFjO0lBQ3pCLFlBQVksSUFBWSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUUsT0FBc0IsYUFBYSxDQUFDLElBQUksRUFDaEUsYUFBc0IsSUFBSSxFQUFFLE9BQWdCLElBQUk7UUFPNUQsU0FBSSxHQUFHLElBQUksQ0FBQztRQUdaLFlBQU8sR0FBVyxJQUFJLENBQUM7UUFDdkIsU0FBSSxHQUFHLElBQUksQ0FBQztRQUVaLFdBQU0sR0FBZSxJQUFJLENBQUM7UUFDMUIsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFFckIsUUFBRyxHQUFrQixJQUFJLENBQUM7UUFmeEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25ILElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxLQUFLLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQ3BFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxLQUFLLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzFELENBQUM7Q0FXRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TW9kYWxDbGFzc30gZnJvbSAnLi9tb2RhbC5jbGFzcyc7XHJcbmltcG9ydCB7Rm9ybUNsYXNzLCBJbnB1dENsYXNzfSBmcm9tICcuL2Zvcm0uY2xhc3MnO1xyXG5pbXBvcnQge1xyXG4gIElucHV0VHlwZSxcclxuICBNZXRob2QsXHJcbiAgUGVybWlzc2lvbkFjY2Vzc1R5cGVFbnVtLFxyXG4gIFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0sXHJcbiAgUGVybWlzc2lvbklucHV0VHlwZUVudW0sXHJcbiAgUGVybWlzc2lvblR5cGVFbnVtLCBSZXN1bHRTdGF0dXNFbnVtLFxyXG4gIFRhYmxlQ29sbFR5cGUsXHJcbiAgVGFibGVPcHRpb25UeXBlXHJcbn0gZnJvbSAnLi9lbnVtLmNsYXNzJztcclxuaW1wb3J0IHtSZXF1ZXN0Q2xhc3N9IGZyb20gJy4vcmVxdWVzdC5jbGFzcyc7XHJcbmltcG9ydCB7UGVybWlzc2lvbkNsYXNzfSBmcm9tICcuL3Blcm1pc3Npb24uY2xhc3MnO1xyXG5pbXBvcnQge0hlbHBlckNsYXNzfSBmcm9tICcuL2hlbHBlci5jbGFzcyc7XHJcbmltcG9ydCAqIGFzICQgZnJvbSAnanF1ZXJ5JztcclxuXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNsYXNzIHtcclxuICBjb25zdHJ1Y3RvcihlbnZpcm9ubWVudDogYW55LCBsOiAoaywgdj8pID0+IHN0cmluZywgcGVybWlzc2lvbnM6IFBlcm1pc3Npb25DbGFzcywgbmFtZTogc3RyaW5nID0gJycsIGNsczogc3RyaW5nID0gJycsXHJcbiAgICAgICAgICAgICAgcGVyUGFnZTogbnVtYmVyID0gMTAsIGhlaWdodDogbnVtYmVyID0gNTApIHtcclxuICAgIHRoaXMuZW52aXJvbm1lbnQgPSBlbnZpcm9ubWVudDtcclxuICAgIHRoaXMubCA9IGw7XHJcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgdGhpcy5pZCA9IHRoaXMubmFtZTtcclxuICAgIHRoaXMucGVybWlzc2lvbnMgPSBwZXJtaXNzaW9ucztcclxuICAgIHRoaXMuY2xhc3MgPSBjbHM7XHJcbiAgICB0aGlzLnBlclBhZ2UgPSBwZXJQYWdlO1xyXG4gICAgdGhpcy5oZWlnaHQgPSBoZWlnaHQ7XHJcbiAgfVxyXG4gIGVudmlyb25tZW50OiBhbnkgPSBudWxsO1xyXG4gIGw6IChrLCB2PykgPT4gc3RyaW5nO1xyXG4gIHBlcm1pc3Npb25zOiBQZXJtaXNzaW9uQ2xhc3M7XHJcbiAgcGVybWlzc2lvbiA9IHRydWU7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgY2xhc3M6IHN0cmluZztcclxuICBzdHlsZSA9IHt9O1xyXG4gIHVybCA9IG51bGw7XHJcbiAgbWV0aG9kOiBNZXRob2QgPSBNZXRob2QuUG9zdDtcclxuICBoZWlnaHQgPSA0MDtcclxuICBwZXJQYWdlID0gMTA7XHJcbiAgY29sczogVGFibGVDb2xsQ2xhc3NbXSA9IFtdO1xyXG4gIGJ1dHRvbnM6IElucHV0Q2xhc3NbXSA9IFtdO1xyXG4gIG9wdGlvbnNBY3Rpb25zOiBhbnlbXSA9IFtdO1xyXG4gIHJvd3MgPSBbXTtcclxuICBjb3VudCA9IDA7XHJcbiAgcGFnZSA9IDE7XHJcbiAgc29ydCA9IG51bGw7XHJcbiAgdGl0bGUgPSBudWxsO1xyXG4gIGRlc2NyaXB0aW9uID0gbnVsbDtcclxuICBzb3J0VHlwZSA9IG51bGw7XHJcbiAgZGlzcGxheUxhYmVsID0gdHJ1ZTtcclxuICBzb3J0YWJsZSA9IGZhbHNlO1xyXG4gIGV4cGVydFNlYXJjaCA9IGZhbHNlO1xyXG4gIG9wdGlvblR5cGUgPSBUYWJsZU9wdGlvblR5cGUuSGlkZGVuO1xyXG4gIGxvYWRpbmcgPSB0cnVlO1xyXG4gIGhhc0NoaWxkcmVuID0gZmFsc2U7XHJcbiAgdmVydGljYWwgPSBmYWxzZTtcclxuICBjaGlsZHJlbkF1dG9Mb2FkID0gZmFsc2U7XHJcbiAgd2l0aFNlbGVjdCA9IGZhbHNlO1xyXG4gIHNob3dFeHRyYUJ1dHRvbnMgPSB0cnVlO1xyXG4gIGV4dHJhQnV0dG9uczogSW5wdXRDbGFzc1tdID0gW107XHJcbiAgZm9ybTogRm9ybUNsYXNzID0gbnVsbDtcclxuICBzZWFyY2hGb3JtOiBGb3JtQ2xhc3MgPSBudWxsO1xyXG4gIG1vZGFsOiBNb2RhbENsYXNzID0gbnVsbDtcclxuICBsZXZlbCA9IG51bGw7XHJcbiAgd2l0aFJlbGF0ZWRSb3cgPSBmYWxzZTtcclxuICByZWxhdGVkUm93ID0gZmFsc2U7XHJcbiAgbGlzdEFjY2VzczogUGVybWlzc2lvbkNsYXNzID0gbnVsbDtcclxuICBpbnNlcnRBY2Nlc3M6IFBlcm1pc3Npb25DbGFzcyA9IG51bGw7XHJcbiAgc3ViVGFibGU6IFRhYmxlQ2xhc3MgPSBudWxsO1xyXG4gIHJlcXVlc3Q6IGFueSA9IG51bGw7XHJcbiAgb25Mb2FkOiAoZGF0YSkgPT4gdm9pZCA9IG51bGw7XHJcbiAgb25Tb3J0OiAoKSA9PiB2b2lkID0gbnVsbDtcclxuICBnZXRSb3dDbGFzczogKHJvdzogYW55KSA9PiBzdHJpbmcgPSBudWxsO1xyXG4gIHNob3dDb25maXJtOiAobDogc3RyaW5nLCB1cmw6IHN0cmluZywgZGF0YSwgYWNjZXB0OiAoYnRuOiBJbnB1dENsYXNzKSA9PiB2b2lkKSA9PiB2b2lkID0gbnVsbDtcclxuICBsb2FkKGJ0biA9IG51bGwpOiB2b2lke1xyXG4gICAgaWYgKHRoaXMudXJsKXtcclxuICAgICAgdGhpcy5zZW5kUmVxdWVzdChidG4pO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGF0YSgpOiBhbnlbXXtcclxuICAgIHJldHVybiB0aGlzLnJvd3MuZmlsdGVyKHggPT4geC5zZWxlY3RlZCkubWFwKHggPT4geC5EYXRhKTtcclxuICB9XHJcblxyXG4gIHNlbmRSZXF1ZXN0KGJ0bjogSW5wdXRDbGFzcyA9IG51bGwpOiB2b2lke1xyXG4gICAgaWYgKHRoaXMuc2VhcmNoRm9ybSAmJiAhdGhpcy5zZWFyY2hGb3JtLmNoZWNrKCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIGlmIChidG4pe1xyXG4gICAgICBpZiAoYnRuLmxvYWRpbmcpe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBidG4ubG9hZGluZyA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlcXVlc3QgPSBuZXcgUmVxdWVzdENsYXNzKHRoaXMuZW52aXJvbm1lbnQpLmdldENsaWVudCh0aGlzLnJlcXVlc3QsIHRoaXMudXJsLCB0aGlzLm1ldGhvZCwgdGhpcy5zZWFyY2hEYXRhKCksXHJcbiAgICAgIChyZXMpID0+IHtcclxuICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gUmVzdWx0U3RhdHVzRW51bS5TdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy52ZXJ0aWNhbCl7XHJcbiAgICAgICAgICAgIGNvbnN0IGM6IGFueSA9IHt9O1xyXG4gICAgICAgICAgICB0aGlzLmNvbHMuZm9yRWFjaCh4ID0+IGNbeC5uYW1lXSA9IHgubmFtZSk7XHJcbiAgICAgICAgICAgIGMuQ29sVHlwZSA9ICdDb2x1bW4nO1xyXG4gICAgICAgICAgICByZXMucmVzdWx0Lkxpc3QudW5zaGlmdCh7RGF0YTogYywgT3B0aW9uczogW119KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMucm93cyA9IHJlcy5yZXN1bHQuTGlzdDtcclxuICAgICAgICAgIHRoaXMuY291bnQgPSByZXMucmVzdWx0LkNvdW50O1xyXG4gICAgICAgICAgaWYgKHRoaXMub25Mb2FkKXtcclxuICAgICAgICAgICAgdGhpcy5vbkxvYWQocmVzLnJlc3VsdC5EYXRhKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChidG4pe1xyXG4gICAgICAgICAgICBidG4ubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGxldCBtID0gJyc7XHJcbiAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gUmVzdWx0U3RhdHVzRW51bS5Ob3RSZWdpc3RlcmVkKSB7XHJcbiAgICAgICAgICAgIG0gPSAnRm9ybUJhc2VFcnJvck5vdFJlZ2lzdGVyZWQnO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChyZXMuc3RhdHVzID09PSBSZXN1bHRTdGF0dXNFbnVtLkV4cGlyZWRSZWdpc3RlcmVkKSB7XHJcbiAgICAgICAgICAgIG0gPSAnRm9ybUJhc2VFcnJvckV4cGlyZWRSZWdpc3RlcmVkJztcclxuICAgICAgICAgIH0gZWxzZSBpZiAocmVzLnN0YXR1cyA9PT0gUmVzdWx0U3RhdHVzRW51bS5JbnZhbGlkSXApIHtcclxuICAgICAgICAgICAgbSA9ICdGb3JtQmFzZUVycm9ySW52YWxpZElwJztcclxuICAgICAgICAgIH0gZWxzZSBpZiAocmVzLnN0YXR1cyA9PT0gUmVzdWx0U3RhdHVzRW51bS5Ob0NyZWRpdCkge1xyXG4gICAgICAgICAgICBtID0gJ0Zvcm1CYXNlRXJyb3JOb0NyZWRpdCc7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlcy5zdGF0dXMgPT09IFJlc3VsdFN0YXR1c0VudW0uVW5hdXRob3JpemVkKSB7XHJcbiAgICAgICAgICAgIG0gPSAnRm9ybUJhc2VFcnJvckV4cGlyZWQnO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChyZXMuc3RhdHVzID09PSBSZXN1bHRTdGF0dXNFbnVtLk5vdEFjY2Vzcykge1xyXG4gICAgICAgICAgICBtID0gJ0Zvcm1CYXNlRXJyb3JBY2Nlc3MnO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChyZXMuc3RhdHVzID09PSBSZXN1bHRTdGF0dXNFbnVtLk5vdFBlcm1pc3Npb24pIHtcclxuICAgICAgICAgICAgbSA9ICdGb3JtQmFzZUVycm9yUGVybWlzc2lvbic7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHJlcy5tZXNzYWdlID09PSAnc3RyaW5nJyl7XHJcbiAgICAgICAgICAgICAgY29uc3QgYW0gPSByZXMubWVzc2FnZS5zcGxpdCgnOicpO1xyXG4gICAgICAgICAgICAgIG0gPSB0aGlzLmwoYW1bMF0sIGFtLmxlbmd0aCA+IDEgPyBhbS5zbGljZSgxKSA6IG51bGwpO1xyXG4gICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Zm9yaW5cclxuICAgICAgICAgICAgICBmb3IgKGNvbnN0IG1zZyBpbiByZXMubWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgLy8gbm9pbnNwZWN0aW9uIEpTVW5maWx0ZXJlZEZvckluTG9vcFxyXG4gICAgICAgICAgICAgICAgbSA9IHRoaXMubChtc2csIHJlcy5tZXNzYWdlW21zZ10pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKG0pIHtcclxuICAgICAgICAgICAgSGVscGVyQ2xhc3MuYWRkTm90aWZpY2F0aW9uKHRoaXMubChtKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnJvd3MgPSBbXTtcclxuICAgICAgICAgIHRoaXMuY291bnQgPSAwO1xyXG4gICAgICAgICAgdGhpcy5wYWdlID0gMTtcclxuICAgICAgICAgIGlmIChidG4pe1xyXG4gICAgICAgICAgICBidG4ubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yb3dzID0gW107XHJcbiAgICAgICAgdGhpcy5jb3VudCA9IDA7XHJcbiAgICAgICAgdGhpcy5wYWdlID0gMTtcclxuICAgICAgICBpZiAoYnRuKXtcclxuICAgICAgICAgIGJ0bi5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3B0aW9uVXJsKHVybCwgcmVsYXRlZElkLCByb3dJZCk6IHN0cmluZ3tcclxuICAgIHJldHVybiAocmVsYXRlZElkID8gdXJsLnJlcGxhY2UoJ3t9JywgcmVsYXRlZElkKSA6ICh1cmwubWF0Y2goL3t9L2cpIHx8IFtdKS5sZW5ndGggPiAxID8gdXJsLnJlcGxhY2UoJy97fScsICcnKSA6IHVybCkucmVwbGFjZSgne30nLCByb3dJZCk7XHJcbiAgfVxyXG4gIHNlYXJjaERhdGEocmVwb3J0ID0gZmFsc2UpOiB7fSB7XHJcbiAgICBsZXQgZDogYW55ID0ge307XHJcbiAgICBpZiAoIXJlcG9ydCl7XHJcbiAgICAgIGQuUGFnZSA9IHRoaXMucGFnZTtcclxuICAgICAgZC5QZXJQYWdlID0gdGhpcy5wZXJQYWdlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZC5SZXBvcnRJZCA9IEhlbHBlckNsYXNzLnJhbmRvbSgyMCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zb3J0YWJsZSl7XHJcbiAgICAgIGQuU29ydCA9ICdQcmlvcml0eSc7XHJcbiAgICAgIGQuU29ydFR5cGUgPSAnQVNDJztcclxuICAgIH1lbHNlIGlmICh0aGlzLnNvcnQpe1xyXG4gICAgICBkLlNvcnQgPSB0aGlzLnNvcnQ7XHJcbiAgICAgIGQuU29ydFR5cGUgPSB0aGlzLnNvcnRUeXBlO1xyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCBjIG9mIHRoaXMuY29scy5maWx0ZXIoeCA9PiB4LndpdGhTZWFyY2ggJiYgeC5zZWFyY2ggIT0gbnVsbCAmJiB4LnNlYXJjaC5kYXRhKCkgIT0gbnVsbCAmJiB4LnNlYXJjaC5kYXRhKCkgIT09ICcnKSl7XHJcbiAgICAgIGNvbnN0IHZsID0gYy5zZWFyY2guZGF0YSgpO1xyXG4gICAgICB0aGlzLmFkZERhdGEoZCwgYy5uYW1lLCB2bCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy53aXRoUmVsYXRlZFJvdyl7XHJcbiAgICAgIGQgPSBPYmplY3QuYXNzaWduKHt9LCBkLCB0aGlzLnJlbGF0ZWRSb3cpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoRm9ybSA/IHRoaXMuc2VhcmNoRm9ybS5kYXRhKGQpIDogZDtcclxuICB9XHJcbiAgYWRkRGF0YShkOiB7fSwgbmFtZTogc3RyaW5nLCB2bDogYW55KTogdm9pZHtcclxuICAgIGlmICh0eXBlb2YgdmwgPT09ICdvYmplY3QnICYmICEodmwgaW5zdGFuY2VvZiBBcnJheSkpe1xyXG4gICAgICBmb3IgKGNvbnN0IFsga2V5LCB2YWx1ZSBdIG9mIE9iamVjdC5lbnRyaWVzKHZsKSkge1xyXG4gICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKXtcclxuICAgICAgICAgIGRba2V5XSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHZsICE9IG51bGwpe1xyXG4gICAgICAgIGRbbmFtZV0gPSB2bDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBnZXRVcmwodXJsOiBzdHJpbmcpOiBzdHJpbmd7XHJcbiAgICByZXR1cm4gdGhpcy5wZXJtaXNzaW9ucy5SZWxhdGVkSWQgPyB1cmwucmVwbGFjZSgne30nLCB0aGlzLnBlcm1pc3Npb25zLlJlbGF0ZWRJZCkgOiB1cmwucmVwbGFjZSgnL3t9JywgJycpO1xyXG4gIH1cclxuICBzaG93SW5zZXJ0TW9kYWwoY0lkID0gbnVsbCwgbGV2ZWwgPSBudWxsLCBkYXRhID0gbnVsbCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtLmlzRWRpdCA9IGZhbHNlO1xyXG4gICAgdGhpcy5mb3JtLnVybCA9IHRoaXMuZm9ybS5iYXNlVXJsID0gdGhpcy5nZXRVcmwodGhpcy5pbnNlcnRBY2Nlc3MuVXJsKSArIChjSWQgPyAnLycgKyBjSWQgOiAnJyk7XHJcbiAgICB0aGlzLmZvcm0ubmFtZSA9IHRoaXMuaW5zZXJ0QWNjZXNzLk5hbWU7XHJcbiAgICB0aGlzLmZvcm0ubWV0aG9kID0gTWV0aG9kLlBvc3Q7XHJcbiAgICB0aGlzLmZvcm0uaW5wdXRzLmZpbHRlcih4ID0+IHguaW5FZGl0RGlzYWJsZWQpLmZvckVhY2goeCA9PiB4LmRpc2FibGVkID0gZmFsc2UpO1xyXG4gICAgdGhpcy5mb3JtLmlucHV0cy5maWx0ZXIoeCA9PiAheC5pbkVkaXRWaXNpYmxlKS5mb3JFYWNoKHggPT4geC52aXNpYmxlID0gdHJ1ZSk7XHJcbiAgICB0aGlzLmZvcm0uaW5wdXRzLmZvckVhY2goeCA9PiB4LnJlcXVpcmVkID0geC5iYXNlUmVxdWlyZWQpO1xyXG4gICAgY29uc3QgbCA9IHRoaXMuZm9ybS5pbnB1dHMuZmluZCh4ID0+IHgubmFtZSA9PT0gJ0xldmVsJyk7XHJcbiAgICBpZiAobGV2ZWwgIT0gbnVsbCAmJiBsKXtcclxuICAgICAgbC52YWx1ZSA9IGxldmVsO1xyXG4gICAgfVxyXG4gICAgdGhpcy5tb2RhbC5zaG93KGRhdGEpO1xyXG4gIH1cclxuICBzZXQoY2hhbmdlUm93cyA9IG51bGwpOiB2b2lke1xyXG4gICAgdGhpcy5wZXJtaXNzaW9uID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLnBlcm1pc3Npb25zKVxyXG4gICAge1xyXG4gICAgICB0aGlzLmxpc3RBY2Nlc3MgPSB0aGlzLnBlcm1pc3Npb25zLmdldEFjY2VzcyhQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW0uTGlzdCk7XHJcbiAgICAgIHRoaXMuaW5zZXJ0QWNjZXNzID0gdGhpcy5wZXJtaXNzaW9ucy5nZXRBY2Nlc3MoUGVybWlzc2lvbkFjY2Vzc1R5cGVFbnVtLkluc2VydCk7XHJcbiAgICAgIGlmICh0aGlzLmxpc3RBY2Nlc3MgIT09IG51bGwpe1xyXG4gICAgICAgIHRoaXMudGl0bGUgPSB0aGlzLmxpc3RBY2Nlc3MuTmFtZTtcclxuICAgICAgICB0aGlzLnVybCA9IHRoaXMuZ2V0VXJsKHRoaXMubGlzdEFjY2Vzcy5VcmwpO1xyXG4gICAgICAgIGlmICh0aGlzLnBlcm1pc3Npb25zLlR5cGUgIT09IFBlcm1pc3Npb25UeXBlRW51bS5Gb3JtKXtcclxuICAgICAgICAgIHRoaXMubG9hZCgpO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2V7XHJcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9uID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLnBlcm1pc3Npb24gPSBmYWxzZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0ub25Ub3Ape1xyXG4gICAgICB0aGlzLmZvcm0uZGlzcGxheUxhYmVsID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBmb3IgKGNvbnN0IGFjY2VzcyBvZiB0aGlzLnBlcm1pc3Npb25zLmdldEFjY2Vzc2VzKCkuZmlsdGVyKHggPT4geC5JbnB1dEFjdGlvbiAhPT0gUGVybWlzc2lvbklucHV0QWN0aW9uRW51bS5Ob25lKSl7XHJcbiAgICAgIGlmICh0aGlzLmJ1dHRvbnMuZmlsdGVyKHggPT4geC5uYW1lID09PSBhY2Nlc3MuTmFtZSkubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgYWNjZXNzSW5wID0gbmV3IElucHV0Q2xhc3ModGhpcy5lbnZpcm9ubWVudCwgdGhpcy5sLCBhY2Nlc3MuTmFtZSwgYWNjZXNzLkljb24sXHJcbiAgICAgICAgYWNjZXNzLklucHV0VHlwZSA9PT0gUGVybWlzc2lvbklucHV0VHlwZUVudW0uQnV0dG9uID8gSW5wdXRUeXBlLkJ1dHRvbiA6IElucHV0VHlwZS5JY29uLCAnYmx1ZSBwLTAgbS1yLTEwLXAgdy11IGgtMzAnKTtcclxuICAgICAgaWYgKGFjY2Vzcy5BY2Nlc3NUeXBlID09PSBQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW0uSW5zZXJ0KXtcclxuICAgICAgICBhY2Nlc3NJbnAuY2xhc3MgPSBhY2Nlc3NJbnAuY2xhc3MucmVwbGFjZSgnYmx1ZScsICdncmVlbicpO1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm0pe1xyXG4gICAgICAgICAgdGhpcy5mb3JtLnVybCA9IHRoaXMuZm9ybS5iYXNlVXJsID0gdGhpcy5nZXRVcmwoYWNjZXNzLlVybCk7XHJcbiAgICAgICAgICBpZiAoIXRoaXMuZm9ybS5vblRvcCl7XHJcbiAgICAgICAgICAgIGFjY2Vzc0lucC5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuZm9ybS5vblN1Y2Nlc3NCYXNlID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tb2RhbC5oaWRlKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQoKTtcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd0luc2VydE1vZGFsKCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLmRpc3BsYXlMYWJlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIGlmICh0aGlzLm1vZGFsKXtcclxuICAgICAgICAgICAgYWNjZXNzSW5wLm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5tb2RhbC5zaG93KCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgYWNjZXNzSW5wLnVybCA9IGFjY2Vzcy5Vcmw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGFjY2Vzcy5BY2Nlc3NUeXBlID09PSBQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW0uUmVwb3J0KXtcclxuICAgICAgICBhY2Nlc3NJbnAub25DbGljayA9ICgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHAgPSBuZXcgUGVybWlzc2lvbkNsYXNzKCk7XHJcbiAgICAgICAgICBwLkFyZWEgPSB0aGlzLnBlcm1pc3Npb25zLkFyZWE7XHJcbiAgICAgICAgICBwLkNvbnRyb2xsZXIgPSAncHJpbnQnO1xyXG4gICAgICAgICAgcC5BY3Rpb24gPSB0aGlzLnBlcm1pc3Npb25zLkNvbnRyb2xsZXIgKyAodGhpcy5wZXJtaXNzaW9ucy5BY3Rpb24gPyB0aGlzLnBlcm1pc3Npb25zLkFjdGlvbiA6ICcnKTtcclxuICAgICAgICAgIGNvbnN0IHBhcmFtcyA9ICQucGFyYW0odGhpcy5zZWFyY2hEYXRhKHRydWUpKTtcclxuICAgICAgICAgIHdpbmRvdy5vcGVuKCcvcmVwb3J0JyArIHRoaXMuZ2V0VXJsKGFjY2Vzcy5VcmwpICsgKHBhcmFtcyA/ICc/JyArIHBhcmFtcyA6ICcnKSwgJ19ibGFuaycpO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoYWNjZXNzLklucHV0QWN0aW9uID09PSBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLk1vZGFsKXtcclxuICAgICAgICBhY2Nlc3NJbnAubW9kYWwgPSB0aGlzLm9wdGlvbnNBY3Rpb25zLmZpbmQoeCA9PiB4Lm5hbWUgPT09IGFjY2Vzcy5BY3Rpb24pO1xyXG4gICAgICAgIGFjY2Vzc0lucC5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGFjY2Vzc0lucC5tb2RhbC50YWJsZSl7XHJcbiAgICAgICAgICAgIGNvbnN0IHAgPSBuZXcgUGVybWlzc2lvbkNsYXNzKCk7XHJcbiAgICAgICAgICAgIHAuQXJlYSA9IHRoaXMucGVybWlzc2lvbnMuQXJlYTtcclxuICAgICAgICAgICAgcC5Db250cm9sbGVyID0gdGhpcy5wZXJtaXNzaW9ucy5Db250cm9sbGVyO1xyXG4gICAgICAgICAgICBwLkFjdGlvbiA9IGFjY2Vzcy5BY3Rpb247XHJcbiAgICAgICAgICAgIGFjY2Vzc0lucC5tb2RhbC50YWJsZS5wZXJtaXNzaW9ucyA9IHA7XHJcbiAgICAgICAgICAgIGlmIChhY2Nlc3NJbnAubW9kYWwudGFibGUuZm9ybSl7XHJcbiAgICAgICAgICAgICAgYWNjZXNzSW5wLm1vZGFsLnRhYmxlLmZvcm0udXJsID0gYWNjZXNzLlVybDtcclxuICAgICAgICAgICAgICBhY2Nlc3NJbnAubW9kYWwudGFibGUuZm9ybS5iYXNlVXJsID0gYWNjZXNzLlVybDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBhY2Nlc3NJbnAubW9kYWwudGFibGUuc2V0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoYWNjZXNzSW5wLm1vZGFsLmZvcm0pe1xyXG4gICAgICAgICAgICBhY2Nlc3NJbnAubW9kYWwuZm9ybS5uYW1lID0gYWNjZXNzLk5hbWU7XHJcbiAgICAgICAgICAgIGFjY2Vzc0lucC5tb2RhbC5mb3JtLnVybCA9IGFjY2Vzcy5Vcmw7XHJcbiAgICAgICAgICAgIGFjY2Vzc0lucC5tb2RhbC5mb3JtLm9uU3VjY2Vzc0Jhc2UgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgYWNjZXNzSW5wLm1vZGFsLmhpZGUoKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2UgaWYgKGFjY2Vzcy5JbnB1dEFjdGlvbiA9PT0gUGVybWlzc2lvbklucHV0QWN0aW9uRW51bS5PbkNsaWNrKXtcclxuICAgICAgICBhY2Nlc3NJbnAub25DbGljayA9IChidG4pID0+IHtcclxuICAgICAgICAgIHRoaXMub3B0aW9uc0FjdGlvbnMuZmluZCh4ID0+IHgubmFtZSA9PT0gYWNjZXNzLkFjdGlvbikub25DbGljayhidG4pO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5idXR0b25zLnB1c2goYWNjZXNzSW5wKTtcclxuICAgIH1cclxuICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIHRoaXMucGVybWlzc2lvbnMuZ2V0T3B0aW9ucygpLmZpbHRlcih4ID0+IHguTXVsdGkpKXtcclxuICAgICAgY29uc3Qgb3B0ID0gbmV3IElucHV0Q2xhc3ModGhpcy5lbnZpcm9ubWVudCwgdGhpcy5sLCBvcHRpb24uTmFtZSwgb3B0aW9uLkljb24sIElucHV0VHlwZS5JY29uLCAnbS1yLTEwLXAnKTtcclxuICAgICAgaWYgKG9wdGlvbi5BY2Nlc3NUeXBlID09PSBQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW0uUmVwb3J0KXtcclxuICAgICAgICBvcHQub25DbGljayA9ICgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuZGF0YSgpLm1hcCh4ID0+ICdJZHM9JyArIHguSWQpLmpvaW4oJyYnKTtcclxuICAgICAgICAgIHdpbmRvdy5vcGVuKCcvcmVwb3J0JyArIHRoaXMuZ2V0T3B0aW9uVXJsKG9wdGlvbi5VcmwsIHRoaXMucGVybWlzc2lvbnMuUmVsYXRlZElkLCAnJykgKyAocGFyYW1zID8gJz8nICsgcGFyYW1zIDogJycpLCAnX2JsYW5rJyk7XHJcbiAgICAgICAgfTtcclxuICAgICAgfSAgZWxzZSBpZiAob3B0aW9uLklucHV0QWN0aW9uID09PSBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLk9uQ2xpY2spe1xyXG4gICAgICAgIG9wdC5vbkNsaWNrID0gKGJ0bikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5vcHRpb25zQWN0aW9ucy5maW5kKHggPT4geC5uYW1lID09PSBvcHRpb24uQWN0aW9uKS5vbkNsaWNrKGJ0bik7XHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBvcHQub25DbGljayA9ICgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHAgPSBuZXcgUGVybWlzc2lvbkNsYXNzKCk7XHJcbiAgICAgICAgICBwLlJlbGF0ZWRJZCA9IHRoaXMucGVybWlzc2lvbnMuUmVsYXRlZElkO1xyXG4gICAgICAgICAgcC5BcmVhID0gdGhpcy5wZXJtaXNzaW9ucy5BcmVhO1xyXG4gICAgICAgICAgcC5Db250cm9sbGVyID0gb3B0aW9uLkNvbnRyb2xsZXI7XHJcbiAgICAgICAgICBwLkFjdGlvbiA9IG9wdGlvbi5BY3Rpb247XHJcbiAgICAgICAgICBjb25zdCBkYXRhID0ge0lkczogdGhpcy5kYXRhKCkubWFwKHggPT4geC5JZCl9O1xyXG4gICAgICAgICAgdGhpcy5zaG93Q29uZmlybSh0aGlzLmwob3B0aW9uLkFjdGlvbiArICdDb25maXJtTXVsdGknLCBkYXRhLklkcy5sZW5ndGgpLCB0aGlzLmdldE9wdGlvblVybChvcHRpb24uVXJsLCB0aGlzLnBlcm1pc3Npb25zLlJlbGF0ZWRJZCwgJycpLCBkYXRhLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZCgpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmV4dHJhQnV0dG9ucy5wdXNoKG9wdCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5mb3JtKXtcclxuICAgICAgdGhpcy5mb3JtLmFkZEJ1dHRvbnMoJ1NhdmUnLCB0aGlzLnBlcm1pc3Npb25zLlR5cGUgPT09IFBlcm1pc3Npb25UeXBlRW51bS5Gb3JtID8gJ2dyZWVuIHctMTAgb25seS1pY29uIGYtbCcgOiAnZ3JlZW4nLFxyXG4gICAgICAgIHRoaXMucGVybWlzc2lvbnMuVHlwZSAhPT0gUGVybWlzc2lvblR5cGVFbnVtLkZvcm0sIHRoaXMucGVybWlzc2lvbnMuZ2V0QWNjZXNzZXMoKS5zb21lKHggPT4geC5BY2Nlc3NUeXBlID09PSBQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW0uSW5zZXJ0KSxcclxuICAgICAgICB0aGlzLnBlcm1pc3Npb25zLlR5cGUgPT09IFBlcm1pc3Npb25UeXBlRW51bS5Gb3JtID8gKGRhdGEpID0+IHtcclxuICAgICAgICB0aGlzLm9uVG9wRm9ybVN1Ym1pdChkYXRhLCBjaGFuZ2VSb3dzKTtcclxuICAgICAgfSA6IG51bGwpO1xyXG4gICAgICBpZiAodGhpcy5oYXNDaGlsZHJlbil7XHJcbiAgICAgICAgY29uc3QgbGV2ZWwgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmVudmlyb25tZW50LCB0aGlzLmwsICdMZXZlbCcsIG51bGwsIElucHV0VHlwZS5IaWRkZW4pO1xyXG4gICAgICAgIHRoaXMuZm9ybS5pbnB1dHMucHVzaChsZXZlbCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZm9ybS5vblRvcCl7XHJcbiAgICAgICAgdGhpcy5mb3JtLm9uU3VjY2Vzc0Jhc2UgPSAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZvcm0uY2xlYXIodGhpcy5pbnNlcnRBY2Nlc3MgIT0gbnVsbCk7XHJcbiAgICAgICAgICB0aGlzLmxvYWQoKTtcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICghdGhpcy5tb2RhbCl7XHJcbiAgICAgICAgICB0aGlzLm1vZGFsID0gbmV3IE1vZGFsQ2xhc3ModGhpcy5lbnZpcm9ubWVudCwgdGhpcy5sLCB0aGlzLmZvcm0ubmFtZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubW9kYWwuZm9ybSA9IHRoaXMuZm9ybTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBvblRvcEZvcm1TdWJtaXQoZGF0YSwgY2hhbmdlUm93cyA9IG51bGwpOiB2b2lke1xyXG4gICAgaWYgKGRhdGEuSWQpe1xyXG4gICAgICBjb25zdCBpID0gdGhpcy5yb3dzLmZpbmRJbmRleCh4ID0+IHguRGF0YS5JZCA9PT0gZGF0YS5JZCk7XHJcbiAgICAgIHRoaXMucm93c1tpXS5EYXRhID0gZGF0YTtcclxuICAgIH1lbHNle1xyXG4gICAgICBkYXRhLklkID0gcGFyc2VJbnQoSGVscGVyQ2xhc3MucmFuZG9tKDUsIGZhbHNlLCBmYWxzZSksIDEwKTtcclxuICAgICAgY29uc3QgdUFjY2VzcyA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgdUFjY2Vzcy5BY3Rpb24gPSAnVXBkYXRlJztcclxuICAgICAgdUFjY2Vzcy5UeXBlID0gUGVybWlzc2lvblR5cGVFbnVtLk9wdGlvbjtcclxuICAgICAgdUFjY2Vzcy5JbnB1dEFjdGlvbiA9IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uTm9uZTtcclxuICAgICAgdUFjY2Vzcy5JbnB1dFR5cGUgPSBQZXJtaXNzaW9uSW5wdXRUeXBlRW51bS5JY29uO1xyXG4gICAgICB1QWNjZXNzLkFjY2Vzc1R5cGUgPSBQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW0uVXBkYXRlO1xyXG4gICAgICB1QWNjZXNzLkljb24gPSAnZmFkIGZhLXBlbic7XHJcbiAgICAgIHVBY2Nlc3MuTmFtZSA9ICdVcGRhdGUnO1xyXG4gICAgICBjb25zdCBkQWNjZXNzID0gbmV3IFBlcm1pc3Npb25DbGFzcygpO1xyXG4gICAgICBkQWNjZXNzLkFjdGlvbiA9ICdEZWxldGUnO1xyXG4gICAgICBkQWNjZXNzLlR5cGUgPSBQZXJtaXNzaW9uVHlwZUVudW0uT3B0aW9uO1xyXG4gICAgICBkQWNjZXNzLklucHV0QWN0aW9uID0gUGVybWlzc2lvbklucHV0QWN0aW9uRW51bS5Ob25lO1xyXG4gICAgICBkQWNjZXNzLklucHV0VHlwZSA9IFBlcm1pc3Npb25JbnB1dFR5cGVFbnVtLkljb247XHJcbiAgICAgIGRBY2Nlc3MuQWNjZXNzVHlwZSA9IFBlcm1pc3Npb25BY2Nlc3NUeXBlRW51bS5EZWxldGU7XHJcbiAgICAgIGRBY2Nlc3MuSWNvbiA9ICdmYWQgZmEtdHJhc2gnO1xyXG4gICAgICBkQWNjZXNzLk5hbWUgPSAnRGVsZXRlJztcclxuICAgICAgaWYgKHRoaXMuc29ydFR5cGUgPT09ICdERVNDJyl7XHJcbiAgICAgICAgdGhpcy5yb3dzLnB1c2goe1xyXG4gICAgICAgICAgRGF0YTogZGF0YSxcclxuICAgICAgICAgIE9wdGlvbnM6IFt1QWNjZXNzLCBkQWNjZXNzXVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucm93cy51bnNoaWZ0KHtcclxuICAgICAgICAgIERhdGE6IGRhdGEsXHJcbiAgICAgICAgICBPcHRpb25zOiBbdUFjY2VzcywgZEFjY2Vzc11cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZVJvd3Mpe1xyXG4gICAgICBjaGFuZ2VSb3dzLmVtaXQoZGF0YSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm0uY2xlYXIodGhpcy5pbnNlcnRBY2Nlc3MgIT0gbnVsbCk7XHJcbiAgICBpZiAodGhpcy5vbkxvYWQpe1xyXG4gICAgICB0aGlzLm9uTG9hZChudWxsKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbGxDbGFzcyB7XHJcbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBjbHMgPSAnJywgdHlwZTogVGFibGVDb2xsVHlwZSA9IFRhYmxlQ29sbFR5cGUuVGV4dCxcclxuICAgICAgICAgICAgICB3aXRoU2VhcmNoOiBib29sZWFuID0gdHJ1ZSwgc29ydDogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICB0aGlzLmNsYXNzID0gY2xzICsgKFtUYWJsZUNvbGxUeXBlLkNvbG9yLCBUYWJsZUNvbGxUeXBlLlVybCwgVGFibGVDb2xsVHlwZS5GaWxlU2l6ZV0uaW5jbHVkZXModHlwZSkgPyAnIGx0cicgOiAnJyk7XHJcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xyXG4gICAgdGhpcy53aXRoU2VhcmNoID0gdHlwZSA9PT0gVGFibGVDb2xsVHlwZS5JbWFnZSA/IGZhbHNlIDogd2l0aFNlYXJjaDtcclxuICAgIHRoaXMuc29ydCA9IHR5cGUgPT09IFRhYmxlQ29sbFR5cGUuSW1hZ2UgPyBmYWxzZSA6IHNvcnQ7XHJcbiAgfVxyXG4gIGVudW0gPSBudWxsO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBjbGFzczogc3RyaW5nO1xyXG4gIGRlZmF1bHQ6IHN0cmluZyA9IG51bGw7XHJcbiAgc29ydCA9IHRydWU7XHJcbiAgd2l0aFNlYXJjaDogYm9vbGVhbjtcclxuICBzZWFyY2g6IElucHV0Q2xhc3MgPSBudWxsO1xyXG4gIHNlYXJjaERlZmF1bHQgPSBudWxsO1xyXG4gIHR5cGU6IFRhYmxlQ29sbFR5cGU7XHJcbiAgZnVuOiAocm93KSA9PiB2b2lkID0gbnVsbDtcclxufVxyXG4iXX0=
|
|
@@ -8349,48 +8349,7 @@ class TableClass {
|
|
|
8349
8349
|
}
|
|
8350
8350
|
if (this.form) {
|
|
8351
8351
|
this.form.addButtons('Save', this.permissions.Type === PermissionTypeEnum.Form ? 'green w-10 only-icon f-l' : 'green', this.permissions.Type !== PermissionTypeEnum.Form, this.permissions.getAccesses().some(x => x.AccessType === PermissionAccessTypeEnum.Insert), this.permissions.Type === PermissionTypeEnum.Form ? (data) => {
|
|
8352
|
-
|
|
8353
|
-
const i = this.rows.findIndex(x => x.Data.Id === data.Id);
|
|
8354
|
-
this.rows[i].Data = data;
|
|
8355
|
-
}
|
|
8356
|
-
else {
|
|
8357
|
-
data.Id = parseInt(HelperClass.random(5, false, false), 10);
|
|
8358
|
-
const uAccess = new PermissionClass();
|
|
8359
|
-
uAccess.Action = 'Update';
|
|
8360
|
-
uAccess.Type = PermissionTypeEnum.Option;
|
|
8361
|
-
uAccess.InputAction = PermissionInputActionEnum.None;
|
|
8362
|
-
uAccess.InputType = PermissionInputTypeEnum.Icon;
|
|
8363
|
-
uAccess.AccessType = PermissionAccessTypeEnum.Update;
|
|
8364
|
-
uAccess.Icon = 'fad fa-pen';
|
|
8365
|
-
uAccess.Name = 'Update';
|
|
8366
|
-
const dAccess = new PermissionClass();
|
|
8367
|
-
dAccess.Action = 'Delete';
|
|
8368
|
-
dAccess.Type = PermissionTypeEnum.Option;
|
|
8369
|
-
dAccess.InputAction = PermissionInputActionEnum.None;
|
|
8370
|
-
dAccess.InputType = PermissionInputTypeEnum.Icon;
|
|
8371
|
-
dAccess.AccessType = PermissionAccessTypeEnum.Delete;
|
|
8372
|
-
dAccess.Icon = 'fad fa-trash';
|
|
8373
|
-
dAccess.Name = 'Delete';
|
|
8374
|
-
if (this.sortType === 'DESC') {
|
|
8375
|
-
this.rows.push({
|
|
8376
|
-
Data: data,
|
|
8377
|
-
Options: [uAccess, dAccess]
|
|
8378
|
-
});
|
|
8379
|
-
}
|
|
8380
|
-
else {
|
|
8381
|
-
this.rows.unshift({
|
|
8382
|
-
Data: data,
|
|
8383
|
-
Options: [uAccess, dAccess]
|
|
8384
|
-
});
|
|
8385
|
-
}
|
|
8386
|
-
}
|
|
8387
|
-
if (changeRows) {
|
|
8388
|
-
changeRows.emit(data);
|
|
8389
|
-
}
|
|
8390
|
-
this.form.clear(this.insertAccess != null);
|
|
8391
|
-
if (this.onLoad) {
|
|
8392
|
-
this.onLoad(null);
|
|
8393
|
-
}
|
|
8352
|
+
this.onTopFormSubmit(data, changeRows);
|
|
8394
8353
|
} : null);
|
|
8395
8354
|
if (this.hasChildren) {
|
|
8396
8355
|
const level = new InputClass(this.environment, this.l, 'Level', null, InputType.Hidden);
|
|
@@ -8410,6 +8369,50 @@ class TableClass {
|
|
|
8410
8369
|
}
|
|
8411
8370
|
}
|
|
8412
8371
|
}
|
|
8372
|
+
onTopFormSubmit(data, changeRows = null) {
|
|
8373
|
+
if (data.Id) {
|
|
8374
|
+
const i = this.rows.findIndex(x => x.Data.Id === data.Id);
|
|
8375
|
+
this.rows[i].Data = data;
|
|
8376
|
+
}
|
|
8377
|
+
else {
|
|
8378
|
+
data.Id = parseInt(HelperClass.random(5, false, false), 10);
|
|
8379
|
+
const uAccess = new PermissionClass();
|
|
8380
|
+
uAccess.Action = 'Update';
|
|
8381
|
+
uAccess.Type = PermissionTypeEnum.Option;
|
|
8382
|
+
uAccess.InputAction = PermissionInputActionEnum.None;
|
|
8383
|
+
uAccess.InputType = PermissionInputTypeEnum.Icon;
|
|
8384
|
+
uAccess.AccessType = PermissionAccessTypeEnum.Update;
|
|
8385
|
+
uAccess.Icon = 'fad fa-pen';
|
|
8386
|
+
uAccess.Name = 'Update';
|
|
8387
|
+
const dAccess = new PermissionClass();
|
|
8388
|
+
dAccess.Action = 'Delete';
|
|
8389
|
+
dAccess.Type = PermissionTypeEnum.Option;
|
|
8390
|
+
dAccess.InputAction = PermissionInputActionEnum.None;
|
|
8391
|
+
dAccess.InputType = PermissionInputTypeEnum.Icon;
|
|
8392
|
+
dAccess.AccessType = PermissionAccessTypeEnum.Delete;
|
|
8393
|
+
dAccess.Icon = 'fad fa-trash';
|
|
8394
|
+
dAccess.Name = 'Delete';
|
|
8395
|
+
if (this.sortType === 'DESC') {
|
|
8396
|
+
this.rows.push({
|
|
8397
|
+
Data: data,
|
|
8398
|
+
Options: [uAccess, dAccess]
|
|
8399
|
+
});
|
|
8400
|
+
}
|
|
8401
|
+
else {
|
|
8402
|
+
this.rows.unshift({
|
|
8403
|
+
Data: data,
|
|
8404
|
+
Options: [uAccess, dAccess]
|
|
8405
|
+
});
|
|
8406
|
+
}
|
|
8407
|
+
}
|
|
8408
|
+
if (changeRows) {
|
|
8409
|
+
changeRows.emit(data);
|
|
8410
|
+
}
|
|
8411
|
+
this.form.clear(this.insertAccess != null);
|
|
8412
|
+
if (this.onLoad) {
|
|
8413
|
+
this.onLoad(null);
|
|
8414
|
+
}
|
|
8415
|
+
}
|
|
8413
8416
|
}
|
|
8414
8417
|
class TableCollClass {
|
|
8415
8418
|
constructor(name, cls = '', type = TableCollType.Text, withSearch = true, sort = true) {
|