@csmart/ngc-smart-victim 1.14.44 → 1.14.45

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. package/README.md +25 -25
  2. package/esm2020/lib/caseNote/caseNote.component.mjs +194 -0
  3. package/esm2020/lib/common-dialog/common-dialog.component.mjs +23 -0
  4. package/esm2020/lib/common-dialog/common-dialog.module.mjs +34 -0
  5. package/esm2020/lib/common-dialog/common-dialog.service.mjs +33 -0
  6. package/esm2020/lib/contact/contact.component.mjs +140 -0
  7. package/esm2020/lib/email.services.mjs +42 -0
  8. package/esm2020/lib/intake.service.mjs +57 -0
  9. package/esm2020/lib/safetyPlan/serviceProvider.component.mjs +99 -0
  10. package/esm2020/lib/safetyPlan/victimSafetyPlan.component.mjs +116 -0
  11. package/esm2020/lib/safetyPlan/victimSafetyPlanDetail.component.mjs +340 -0
  12. package/esm2020/lib/shared/app.shared.module.mjs +215 -0
  13. package/esm2020/lib/shared/validators/date.validator.mjs +59 -0
  14. package/esm2020/lib/smart-victim-delete-confirm.component.mjs +44 -0
  15. package/esm2020/lib/smart-victim-detail/smart-victim-detail.component.mjs +1104 -0
  16. package/esm2020/lib/smart-victim.component.mjs +314 -0
  17. package/esm2020/lib/smart-victim.model.mjs +133 -0
  18. package/esm2020/lib/smart-victim.module.mjs +128 -0
  19. package/esm2020/lib/smart-victim.service.mjs +352 -0
  20. package/{esm2022 → esm2020}/lib/victim-routing.module.mjs +5 -5
  21. package/esm2020/lib/victimSearch/VictimSearchFilter.mjs +3 -0
  22. package/esm2020/lib/victimSearch/victimSearchForm.component.mjs +38 -0
  23. package/{esm2022 → esm2020}/public-api.mjs +1 -1
  24. package/fesm2015/csmart-ngc-smart-victim.mjs +3273 -0
  25. package/fesm2015/csmart-ngc-smart-victim.mjs.map +1 -0
  26. package/fesm2020/csmart-ngc-smart-victim.mjs +3261 -0
  27. package/fesm2020/csmart-ngc-smart-victim.mjs.map +1 -0
  28. package/lib/caseNote/caseNote.component.d.ts +2 -2
  29. package/lib/common-dialog/common-dialog.component.d.ts +1 -1
  30. package/lib/contact/contact.component.d.ts +1 -1
  31. package/lib/safetyPlan/serviceProvider.component.d.ts +1 -1
  32. package/lib/safetyPlan/victimSafetyPlan.component.d.ts +2 -2
  33. package/lib/safetyPlan/victimSafetyPlanDetail.component.d.ts +2 -2
  34. package/lib/smart-victim-delete-confirm.component.d.ts +1 -1
  35. package/lib/smart-victim-detail/smart-victim-detail.component.d.ts +2 -2
  36. package/lib/smart-victim.component.d.ts +2 -2
  37. package/lib/victimSearch/victimSearchForm.component.d.ts +1 -1
  38. package/package.json +11 -5
  39. package/esm2022/lib/caseNote/caseNote.component.mjs +0 -219
  40. package/esm2022/lib/common-dialog/common-dialog.component.mjs +0 -26
  41. package/esm2022/lib/common-dialog/common-dialog.module.mjs +0 -34
  42. package/esm2022/lib/common-dialog/common-dialog.service.mjs +0 -34
  43. package/esm2022/lib/contact/contact.component.mjs +0 -158
  44. package/esm2022/lib/email.services.mjs +0 -43
  45. package/esm2022/lib/intake.service.mjs +0 -59
  46. package/esm2022/lib/safetyPlan/serviceProvider.component.mjs +0 -105
  47. package/esm2022/lib/safetyPlan/victimSafetyPlan.component.mjs +0 -146
  48. package/esm2022/lib/safetyPlan/victimSafetyPlanDetail.component.mjs +0 -372
  49. package/esm2022/lib/shared/app.shared.module.mjs +0 -215
  50. package/esm2022/lib/shared/validators/date.validator.mjs +0 -59
  51. package/esm2022/lib/smart-victim-delete-confirm.component.mjs +0 -46
  52. package/esm2022/lib/smart-victim-detail/smart-victim-detail.component.mjs +0 -1141
  53. package/esm2022/lib/smart-victim.component.mjs +0 -343
  54. package/esm2022/lib/smart-victim.model.mjs +0 -233
  55. package/esm2022/lib/smart-victim.module.mjs +0 -128
  56. package/esm2022/lib/smart-victim.service.mjs +0 -357
  57. package/esm2022/lib/victimSearch/VictimSearchFilter.mjs +0 -8
  58. package/esm2022/lib/victimSearch/victimSearchForm.component.mjs +0 -37
  59. package/fesm2022/csmart-ngc-smart-victim.mjs +0 -3556
  60. package/fesm2022/csmart-ngc-smart-victim.mjs.map +0 -1
  61. /package/{esm2022 → esm2020}/csmart-ngc-smart-victim.mjs +0 -0
  62. /package/{esm2022 → esm2020}/lib/shared/validators/index.mjs +0 -0
@@ -0,0 +1,314 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { Component, ViewChild, Input, Inject } from '@angular/core';
3
+ import { ActivatedRoute, Router } from '@angular/router';
4
+ import { MatTableDataSource } from '@angular/material/table';
5
+ import { MatSort } from '@angular/material/sort';
6
+ import { MatDialog } from '@angular/material/dialog';
7
+ import { AccessType, } from "@csmart/ngc-smart-core";
8
+ import { NgcSmartVictimService } from './smart-victim.service';
9
+ import { VictimListFilter, SMART_WARRANT_URL } from './smart-victim.model';
10
+ //import { SmartVictimDetailComponent } from './smart-victim-detail/smart-victim-detail.component';
11
+ import { IntakeStep, IntakeServicesComponent, } from './intake.service';
12
+ import { MatPaginator } from '@angular/material/paginator';
13
+ import { MatSnackBar } from '@angular/material/snack-bar';
14
+ import * as i0 from "@angular/core";
15
+ import * as i1 from "@angular/material/dialog";
16
+ import * as i2 from "./smart-victim.service";
17
+ import * as i3 from "@angular/router";
18
+ import * as i4 from "@angular/material/snack-bar";
19
+ import * as i5 from "./intake.service";
20
+ import * as i6 from "@angular/common";
21
+ import * as i7 from "@angular/material/button";
22
+ import * as i8 from "@angular/material/card";
23
+ import * as i9 from "@angular/material/icon";
24
+ import * as i10 from "@angular/material/paginator";
25
+ import * as i11 from "@angular/material/table";
26
+ import * as i12 from "@csmart/ngc-smart-core";
27
+ import * as i13 from "./smart-victim-detail/smart-victim-detail.component";
28
+ import * as i14 from "./victimSearch/victimSearchForm.component";
29
+ export class NgcSmartVictimComponent {
30
+ constructor(dialog, victimService, router, route, snackBar, intakeService, smartWarrantUrl, document) {
31
+ this.dialog = dialog;
32
+ this.victimService = victimService;
33
+ this.router = router;
34
+ this.route = route;
35
+ this.snackBar = snackBar;
36
+ this.intakeService = intakeService;
37
+ this.smartWarrantUrl = smartWarrantUrl;
38
+ this.document = document;
39
+ this.appModuleId = '';
40
+ this.activatedRoute = null;
41
+ this.victims = [];
42
+ this.victimDetail = {};
43
+ this.showDetail = false;
44
+ this.victimListFilter = new VictimListFilter();
45
+ this.victimListDataSource = new MatTableDataSource();
46
+ this.doSpin = false;
47
+ this.showListFlag = false;
48
+ this.msg = "";
49
+ this.isIntake = false;
50
+ }
51
+ // private onChange(filter: VictimListFilter) {
52
+ // console.log('filter in onchange');
53
+ // console.log(filter);
54
+ // this.getVictimList(filter);
55
+ // }
56
+ applyFilter(filterValue) {
57
+ this.victimListDataSource.filter = filterValue.trim().toLowerCase();
58
+ }
59
+ addRecord() {
60
+ this.showDetail = true;
61
+ this.showAdd = false;
62
+ this.victimDetail = null;
63
+ this.showListFlag = false;
64
+ }
65
+ editVictimDetail(record) {
66
+ console.log("victim edit record");
67
+ console.log(record);
68
+ console.log(record.victimId);
69
+ this.victimDetail = record;
70
+ this.showDetail = true;
71
+ this.showAdd = false;
72
+ this.showListFlag = false;
73
+ }
74
+ save(detail) {
75
+ this.showDetail = false;
76
+ this.showAdd = true;
77
+ this.showListFlag = true;
78
+ }
79
+ cancel() {
80
+ this.showDetail = false;
81
+ this.victimDetail = {};
82
+ }
83
+ ngAfterViewInit() {
84
+ this.victimListDataSource.paginator = this.paginator;
85
+ this.victimListDataSource.sort = this.sort;
86
+ }
87
+ ngOnChanges() {
88
+ this.updateAccessControlConfig = {
89
+ accessType: AccessType.UPDATE,
90
+ appModuleId: this.appModuleId,
91
+ roleId: null,
92
+ route: this.activatedRoute.snapshot,
93
+ };
94
+ this.createAccessControlConfig = {
95
+ accessType: AccessType.CREATE,
96
+ appModuleId: this.appModuleId,
97
+ roleId: null,
98
+ route: this.activatedRoute.snapshot,
99
+ };
100
+ this.deleteAccessControlConfig = {
101
+ accessType: AccessType.DELETE,
102
+ appModuleId: this.appModuleId,
103
+ roleId: null,
104
+ route: this.activatedRoute.snapshot,
105
+ };
106
+ }
107
+ ngOnInit() {
108
+ const queryParams = this.route.snapshot.queryParams;
109
+ if (queryParams['routeTo']) {
110
+ this.router.navigate([queryParams['routeTo']]);
111
+ }
112
+ var data = this.route.snapshot.data;
113
+ var myPath = this.router.url.slice(-10);
114
+ console.log("offender id at smart-victim");
115
+ console.log(this.offenderId);
116
+ console.log("staff id at smart-victim");
117
+ console.log(this.staffId);
118
+ console.log("insakeFlag at smart-victim");
119
+ console.log(this.intakeFlag);
120
+ console.log("smart-victim ngOnInit");
121
+ console.log(this.intakeFlag);
122
+ console.log(myPath);
123
+ if (this.intakeFlag == "true") {
124
+ this.isIntake = true;
125
+ }
126
+ this.displayedColumns = ["lastName", "firstName"];
127
+ if (this.showRelationshipColumn == true ||
128
+ myPath == "victimList" ||
129
+ myPath == "victimHome") {
130
+ this.displayedColumns.push("relationship");
131
+ }
132
+ if (this.showOffenderNameColumn == true) {
133
+ this.displayedColumns.push("offenderName");
134
+ }
135
+ if (this.showOffenderPhoneColumn == true ||
136
+ myPath == "victimList" ||
137
+ myPath == "victimHome") {
138
+ this.displayedColumns.push("homePhone");
139
+ }
140
+ this.displayedColumns.push("victimId");
141
+ if (this.showSearchForm == true) {
142
+ this.showListFlag = false;
143
+ }
144
+ console.log("this.showSearchForm");
145
+ console.log(this.showSearchForm);
146
+ console.log("myPath");
147
+ console.log(myPath);
148
+ if (this.showSearchForm == false ||
149
+ myPath == "victimList" ||
150
+ myPath == "victimHome") {
151
+ var myOffenderId;
152
+ if (this.offenderId) {
153
+ myOffenderId = this.offenderId;
154
+ }
155
+ else {
156
+ console.log("back from previous page");
157
+ this.showAdd = true;
158
+ this.showRelationshipColumn = true;
159
+ //this.displayedColumns.push("relationship");
160
+ this.showOffenderPhoneColumn = true;
161
+ // this.displayedColumns.push("homePhone");
162
+ this.accessByModule = "true";
163
+ this.showEdit = "true";
164
+ this.showCaseNote = "true";
165
+ this.showSafetyPlan = "true";
166
+ myOffenderId = data.selectedOffender.offenderId;
167
+ }
168
+ const victimListFilter = {
169
+ offenderId: myOffenderId,
170
+ lastName: null,
171
+ firstName: null,
172
+ pdid: null,
173
+ birthDate: null,
174
+ };
175
+ console.log("victimListFilter in smar-victim componenet");
176
+ console.log(victimListFilter);
177
+ this.victimService
178
+ .getVictimListByFilter(victimListFilter)
179
+ .subscribe((data) => {
180
+ this.victims = data;
181
+ this.victimListDataSource.data = data;
182
+ console.log("victim data at line 245");
183
+ console.log(this.victims);
184
+ console.log("showListFlag");
185
+ console.log(this.showListFlag);
186
+ this.showListFlag = true;
187
+ if (data.length == 0) {
188
+ this.msg = "No Record Found!";
189
+ }
190
+ });
191
+ }
192
+ else {
193
+ console.log("find filter");
194
+ console.log(this.victimListFilter);
195
+ if (this.showListFlag === true) {
196
+ if (this.victimListFilter != null) {
197
+ this.victimService
198
+ .getVictimListByFilter(this.victimListFilter)
199
+ .subscribe((data) => {
200
+ this.victims = data;
201
+ this.victimListDataSource.data = data;
202
+ console.log("victim data at line 279");
203
+ console.log(data);
204
+ });
205
+ }
206
+ }
207
+ }
208
+ }
209
+ // phone number format on the victim list
210
+ formatPhoneNumber(phoneNumberString) {
211
+ if (!phoneNumberString)
212
+ return "";
213
+ var cleaned = ("" + phoneNumberString).replace(/\D/g, "");
214
+ var match = cleaned.match(/^(\d{3})(\d{3})(\d{4})$/);
215
+ if (match) {
216
+ return "(" + match[1] + ") " + match[2] + "-" + match[3];
217
+ }
218
+ return "";
219
+ }
220
+ saveIntake() {
221
+ if (!this.isIntake) {
222
+ return;
223
+ }
224
+ const intakeStep = {
225
+ intakeStepId: IntakeStep.VictimInformation,
226
+ offenderId: this.offenderId,
227
+ modifiedBy: this.staffId,
228
+ };
229
+ this.intakeService
230
+ .updateIntakeSteps(this.offenderId, intakeStep)
231
+ .subscribe((res) => {
232
+ console.log("save intake step.");
233
+ this.snackBar.open("Status Saved.", "", {
234
+ duration: 3000,
235
+ });
236
+ //this.router.navigate(['/warrant '], { queryParams: { intake: 1 } });
237
+ this.document.location.href =
238
+ `${this.smartWarrantUrl}/?offenderId=${this.offenderId}&intakeFlag=${this.isIntake}&routeTo=warrant`;
239
+ });
240
+ }
241
+ goToCaseNote(victimId) {
242
+ this.router.navigate(["casenote", victimId, this.offenderId]);
243
+ }
244
+ goToSaftyPlan(victimId) {
245
+ this.router.navigate(["saftyPlan", victimId]);
246
+ }
247
+ getVictimList(filter) {
248
+ this.victimListFilter = filter;
249
+ console.log("this.victimListFilter inside getVictimList");
250
+ console.log(this.victimListFilter);
251
+ this.doSpin = true;
252
+ this.victimService.getVictimListByFilter(filter).subscribe((data) => {
253
+ this.doSpin = !this.doSpin;
254
+ if (data.length > 0) {
255
+ this.showListFlag = true;
256
+ this.victimListDataSource.data = data;
257
+ }
258
+ else {
259
+ this.msg = "No record found!";
260
+ }
261
+ }, (err) => {
262
+ this.doSpin = !this.doSpin;
263
+ });
264
+ }
265
+ }
266
+ /** @nocollapse */ NgcSmartVictimComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgcSmartVictimComponent, deps: [{ token: i1.MatDialog }, { token: i2.NgcSmartVictimService }, { token: i3.Router }, { token: i3.ActivatedRoute }, { token: i4.MatSnackBar }, { token: i5.IntakeServicesComponent }, { token: SMART_WARRANT_URL }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component });
267
+ /** @nocollapse */ NgcSmartVictimComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NgcSmartVictimComponent, selector: "csmart-victim", inputs: { offenderId: "offenderId", staffId: "staffId", staffRole: "staffRole", showCaseNote: "showCaseNote", showSafetyPlan: "showSafetyPlan", showAdd: "showAdd", showEdit: "showEdit", showRelationshipColumn: "showRelationshipColumn", showOffenderNameColumn: "showOffenderNameColumn", showOffenderPhoneColumn: "showOffenderPhoneColumn", showSearchForm: "showSearchForm", accessByModule: "accessByModule", intakeFlag: "intakeFlag", appModuleId: "appModuleId", activatedRoute: "activatedRoute" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"showSearchForm\">\n <app-victim-search-form\n (onSearch)=\"getVictimList($event)\">\n </app-victim-search-form>\n</div>\n\n<div *ngIf=\"showDetail\">\n <csmart-victim-detail [victimDetail]=\"victimDetail\" \n [staffId]=\"staffId\"\n [offenderId] =\"offenderId\"\n [isIntake]=\"isIntake\"\n (onSave)=\"save($event)\" \n (onCancel)=\"cancel()\" >\n</csmart-victim-detail>\n</div>\n<div class=\"main-container\">\n \n <div class=\"add-action\" *ngIf=\"showAdd\">\n <button mat-raised-button color=\"primary\" \n accessControl\n [accessControlConfig]=\"createAccessControlConfig\" \n (click)=\"addRecord()\">\n <mat-icon>add</mat-icon>\n Add Victim\n </button>\n &nbsp;&nbsp;\n\n <div *ngIf=\"isIntake\">\n <button \n mat-raised-button \n color=\"primary\" \n accessControl\n [accessControlConfig]=\"updateAccessControlConfig\" \n (click)=\"saveIntake()\">\n Continue\n </button> \n </div>\n\n </div>\n <div *ngIf=\"showListFlag\">\n <mat-card id=\"divVictim\" >\n <mat-card-content >\n <mat-table #table [dataSource]=\"victimListDataSource\" >\n\n <ng-container matColumnDef=\"lastName\">\n <mat-header-cell *matHeaderCellDef>Victim Last Name</mat-header-cell>\n <mat-cell *matCellDef=\"let row\" > {{row.lastName}} </mat-cell>\n </ng-container>\n\n\n <ng-container matColumnDef=\"firstName\">\n <mat-header-cell *matHeaderCellDef >Victim First Name</mat-header-cell>\n <mat-cell *matCellDef=\"let row\" > {{row.firstName}} </mat-cell>\n </ng-container>\n \n <div *ngIf=\"showRelationshipColumn\">\n <ng-container matColumnDef=\"relationship\">\n <mat-header-cell *matHeaderCellDef >Relationship to Offender</mat-header-cell>\n <mat-cell *matCellDef=\"let row\" > {{row.relationship}} </mat-cell>\n </ng-container>\n </div>\n\n <div *ngIf=\"showOffenderPhoneColumn\">\n <ng-container matColumnDef=\"homePhone\">\n <mat-header-cell *matHeaderCellDef >Phone Number</mat-header-cell>\n <mat-cell *matCellDef=\"let row\" > \n Home phone: {{formatPhoneNumber(row.homePhone)}}<br> \n Cell Phone: {{formatPhoneNumber(row.cellPhone)}}<br>\n Work Phone: {{formatPhoneNumber(row.workPhone)}} \n\n </mat-cell>\n </ng-container>\n </div>\n \n <div *ngIf=\"showOffenderNameColumn\">\n <ng-container matColumnDef=\"offenderName\">\n <mat-header-cell *matHeaderCellDef>Offender Name</mat-header-cell>\n <mat-cell *matCellDef=\"let row\" > {{row.offenderName}} </mat-cell>\n </ng-container>\n </div>\n \n <ng-container matColumnDef=\"victimId\">\n <mat-header-cell *matHeaderCellDef ></mat-header-cell>\n <mat-cell *matCellDef=\"let row\" >\n \n <!-- <div *ngIf=\"accessByModule\">\n <mat-checkbox></mat-checkbox>\n </div> -->\n \n <div *ngIf=\"showEdit\">\n <button class=\"edit-btn\" mat-icon-button color=\"primary\" matTooltip=\"View/Edit Victim\"\n accessControl\n [accessControlConfig]=\"updateAccessControlConfig\" \n (click)=\"editVictimDetail(row)\">\n <i class=\"material-icons\">mode_edit</i>\n </button>\n </div>\n\n \n\n &nbsp;&nbsp; \n\n <div *ngIf=\"showCaseNote\">\n <button type=\"button\" matTooltip=\"CaseNote\" mat-raised-button color=\"primary\" \n accessControl\n [accessControlConfig]=\"updateAccessControlConfig\" \n (click)=\"goToCaseNote(row.victimId)\"> \n <span class=\"glyphicon glyphicon-pencil\" ></span>&nbsp;Case Note\n </button> \n </div>\n &nbsp;&nbsp;\n \n <div *ngIf=\"showSafetyPlan\">\n <button type=\"button\" matTooltip=\"safety plan\" mat-raised-button color=\"primary\"\n accessControl\n [accessControlConfig]=\"updateAccessControlConfig\" \n (click)=\"goToSaftyPlan(row.victimId)\"> \n <span class=\"glyphicon glyphicon-pencil\" ></span>&nbsp;Safety Plan\n </button>\n </div>\n &nbsp;&nbsp;\n \n </mat-cell>\n </ng-container>\n\n <mat-header-row *matHeaderRowDef=\"displayedColumns\" class=\"example-header-row\"></mat-header-row>\n <mat-row *matRowDef=\"let row; columns: displayedColumns\" class=\"example-row\"></mat-row>\n </mat-table>\n\n <mat-paginator #paginator [pageSize]=\"10\" [pageSizeOptions]=\"[5, 10, 25, 100]\"></mat-paginator> \n </mat-card-content>\n </mat-card>\n </div>\n\n <div>\n <b>{{msg}}</b>\n </div>\n</div>", styles: ["div.services{max-width:500px;margin:auto;border:3px solid #73AD21}.rTable{display:block;width:100%}.rTableHeading,.rTableBody,.rTableFoot,.rTableRow{clear:both}.rTableHead,.rTableFoot{background-color:#ddd;font-weight:700}.rTableCell,.rTableHead{border:0px;float:left;padding:1px;width:28%}.rTable:after{visibility:hidden;display:block;font-size:0;content:\" \";clear:both;height:0}.victimSearch{display:grid;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-title,.example-headers-align .mat-expansion-panel-header-description{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-lastName,.mat-column-firstName,.mat-column-relationship,.mat-column-homePhone,.mat-column-offenderName{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;-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;-webkit-hyphens:auto;hyphens:auto}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i8.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i11.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i11.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i11.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i11.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i11.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i11.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i11.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i11.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i11.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i11.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i12.SmartAccessControlDirective, selector: "[accessControl]", inputs: ["accessControlConfig"] }, { kind: "component", type: i13.SmartVictimDetailComponent, selector: "csmart-victim-detail", inputs: ["victimDetail", "staffId", "offenderId", "isIntake"], outputs: ["onSave", "onCancel"] }, { kind: "component", type: i14.VictimSearchFormComponent, selector: "app-victim-search-form", outputs: ["onSearch"] }] });
268
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgcSmartVictimComponent, decorators: [{
269
+ type: Component,
270
+ args: [{ selector: "csmart-victim", template: "<div *ngIf=\"showSearchForm\">\n <app-victim-search-form\n (onSearch)=\"getVictimList($event)\">\n </app-victim-search-form>\n</div>\n\n<div *ngIf=\"showDetail\">\n <csmart-victim-detail [victimDetail]=\"victimDetail\" \n [staffId]=\"staffId\"\n [offenderId] =\"offenderId\"\n [isIntake]=\"isIntake\"\n (onSave)=\"save($event)\" \n (onCancel)=\"cancel()\" >\n</csmart-victim-detail>\n</div>\n<div class=\"main-container\">\n \n <div class=\"add-action\" *ngIf=\"showAdd\">\n <button mat-raised-button color=\"primary\" \n accessControl\n [accessControlConfig]=\"createAccessControlConfig\" \n (click)=\"addRecord()\">\n <mat-icon>add</mat-icon>\n Add Victim\n </button>\n &nbsp;&nbsp;\n\n <div *ngIf=\"isIntake\">\n <button \n mat-raised-button \n color=\"primary\" \n accessControl\n [accessControlConfig]=\"updateAccessControlConfig\" \n (click)=\"saveIntake()\">\n Continue\n </button> \n </div>\n\n </div>\n <div *ngIf=\"showListFlag\">\n <mat-card id=\"divVictim\" >\n <mat-card-content >\n <mat-table #table [dataSource]=\"victimListDataSource\" >\n\n <ng-container matColumnDef=\"lastName\">\n <mat-header-cell *matHeaderCellDef>Victim Last Name</mat-header-cell>\n <mat-cell *matCellDef=\"let row\" > {{row.lastName}} </mat-cell>\n </ng-container>\n\n\n <ng-container matColumnDef=\"firstName\">\n <mat-header-cell *matHeaderCellDef >Victim First Name</mat-header-cell>\n <mat-cell *matCellDef=\"let row\" > {{row.firstName}} </mat-cell>\n </ng-container>\n \n <div *ngIf=\"showRelationshipColumn\">\n <ng-container matColumnDef=\"relationship\">\n <mat-header-cell *matHeaderCellDef >Relationship to Offender</mat-header-cell>\n <mat-cell *matCellDef=\"let row\" > {{row.relationship}} </mat-cell>\n </ng-container>\n </div>\n\n <div *ngIf=\"showOffenderPhoneColumn\">\n <ng-container matColumnDef=\"homePhone\">\n <mat-header-cell *matHeaderCellDef >Phone Number</mat-header-cell>\n <mat-cell *matCellDef=\"let row\" > \n Home phone: {{formatPhoneNumber(row.homePhone)}}<br> \n Cell Phone: {{formatPhoneNumber(row.cellPhone)}}<br>\n Work Phone: {{formatPhoneNumber(row.workPhone)}} \n\n </mat-cell>\n </ng-container>\n </div>\n \n <div *ngIf=\"showOffenderNameColumn\">\n <ng-container matColumnDef=\"offenderName\">\n <mat-header-cell *matHeaderCellDef>Offender Name</mat-header-cell>\n <mat-cell *matCellDef=\"let row\" > {{row.offenderName}} </mat-cell>\n </ng-container>\n </div>\n \n <ng-container matColumnDef=\"victimId\">\n <mat-header-cell *matHeaderCellDef ></mat-header-cell>\n <mat-cell *matCellDef=\"let row\" >\n \n <!-- <div *ngIf=\"accessByModule\">\n <mat-checkbox></mat-checkbox>\n </div> -->\n \n <div *ngIf=\"showEdit\">\n <button class=\"edit-btn\" mat-icon-button color=\"primary\" matTooltip=\"View/Edit Victim\"\n accessControl\n [accessControlConfig]=\"updateAccessControlConfig\" \n (click)=\"editVictimDetail(row)\">\n <i class=\"material-icons\">mode_edit</i>\n </button>\n </div>\n\n \n\n &nbsp;&nbsp; \n\n <div *ngIf=\"showCaseNote\">\n <button type=\"button\" matTooltip=\"CaseNote\" mat-raised-button color=\"primary\" \n accessControl\n [accessControlConfig]=\"updateAccessControlConfig\" \n (click)=\"goToCaseNote(row.victimId)\"> \n <span class=\"glyphicon glyphicon-pencil\" ></span>&nbsp;Case Note\n </button> \n </div>\n &nbsp;&nbsp;\n \n <div *ngIf=\"showSafetyPlan\">\n <button type=\"button\" matTooltip=\"safety plan\" mat-raised-button color=\"primary\"\n accessControl\n [accessControlConfig]=\"updateAccessControlConfig\" \n (click)=\"goToSaftyPlan(row.victimId)\"> \n <span class=\"glyphicon glyphicon-pencil\" ></span>&nbsp;Safety Plan\n </button>\n </div>\n &nbsp;&nbsp;\n \n </mat-cell>\n </ng-container>\n\n <mat-header-row *matHeaderRowDef=\"displayedColumns\" class=\"example-header-row\"></mat-header-row>\n <mat-row *matRowDef=\"let row; columns: displayedColumns\" class=\"example-row\"></mat-row>\n </mat-table>\n\n <mat-paginator #paginator [pageSize]=\"10\" [pageSizeOptions]=\"[5, 10, 25, 100]\"></mat-paginator> \n </mat-card-content>\n </mat-card>\n </div>\n\n <div>\n <b>{{msg}}</b>\n </div>\n</div>", styles: ["div.services{max-width:500px;margin:auto;border:3px solid #73AD21}.rTable{display:block;width:100%}.rTableHeading,.rTableBody,.rTableFoot,.rTableRow{clear:both}.rTableHead,.rTableFoot{background-color:#ddd;font-weight:700}.rTableCell,.rTableHead{border:0px;float:left;padding:1px;width:28%}.rTable:after{visibility:hidden;display:block;font-size:0;content:\" \";clear:both;height:0}.victimSearch{display:grid;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-title,.example-headers-align .mat-expansion-panel-header-description{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-lastName,.mat-column-firstName,.mat-column-relationship,.mat-column-homePhone,.mat-column-offenderName{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;-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;-webkit-hyphens:auto;hyphens:auto}\n"] }]
271
+ }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.NgcSmartVictimService }, { type: i3.Router }, { type: i3.ActivatedRoute }, { type: i4.MatSnackBar }, { type: i5.IntakeServicesComponent }, { type: undefined, decorators: [{
272
+ type: Inject,
273
+ args: [SMART_WARRANT_URL]
274
+ }] }, { type: undefined, decorators: [{
275
+ type: Inject,
276
+ args: [DOCUMENT]
277
+ }] }]; }, propDecorators: { offenderId: [{
278
+ type: Input
279
+ }], staffId: [{
280
+ type: Input
281
+ }], staffRole: [{
282
+ type: Input
283
+ }], showCaseNote: [{
284
+ type: Input
285
+ }], showSafetyPlan: [{
286
+ type: Input
287
+ }], showAdd: [{
288
+ type: Input
289
+ }], showEdit: [{
290
+ type: Input
291
+ }], showRelationshipColumn: [{
292
+ type: Input
293
+ }], showOffenderNameColumn: [{
294
+ type: Input
295
+ }], showOffenderPhoneColumn: [{
296
+ type: Input
297
+ }], showSearchForm: [{
298
+ type: Input
299
+ }], accessByModule: [{
300
+ type: Input
301
+ }], intakeFlag: [{
302
+ type: Input
303
+ }], appModuleId: [{
304
+ type: Input
305
+ }], activatedRoute: [{
306
+ type: Input
307
+ }], paginator: [{
308
+ type: ViewChild,
309
+ args: [MatPaginator]
310
+ }], sort: [{
311
+ type: ViewChild,
312
+ args: [MatSort]
313
+ }] } });
314
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmljdGltLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nYy1zbWFydC12aWN0aW0vc3JjL2xpYi9zbWFydC12aWN0aW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdjLXNtYXJ0LXZpY3RpbS9zcmMvbGliL3NtYXJ0LXZpY3RpbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFZLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBeUIsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxjQUFjLEVBQUMsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBaUMsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEYsT0FBTyxFQUlMLFVBQVUsR0FDWCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBa0IsZ0JBQWdCLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRyxtR0FBbUc7QUFFbkcsT0FBTyxFQUVMLFVBQVUsRUFDVix1QkFBdUIsR0FDeEIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBTTFELE1BQU0sT0FBTyx1QkFBdUI7SUFvQ2xDLFlBQ1Us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R0FBRyxJQUFJLENBQUM7YUFFdkM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQzthQUMvQjtRQUNILENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDN0IsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDOzt1SUExU1UsdUJBQXVCLHNNQTJDeEIsaUJBQWlCLGFBQ2pCLFFBQVE7MkhBNUNQLHVCQUF1QixnbEJBa0J2QixZQUFZLHVFQUNaLE9BQU8scUVDaERwQixxK0xBeUlNOzJGRDVHTyx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UsZUFBZTs7MEJBK0N0QixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQ3hCLE1BQU07MkJBQUMsUUFBUTs0Q0EzQ1QsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVtQixTQUFTO3NCQUFqQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ0gsSUFBSTtzQkFBdkIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkNoYW5nZXMsIFZpZXdDaGlsZCwgSW5wdXQsIE91dHB1dCwgQWZ0ZXJWaWV3SW5pdCwgSW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2V9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IE1hdFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmLCBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHtcbiAgU2VsZWN0ZWRPZmZlbmRlcixcbiAgTG9naW5TdGFmZixcbiAgU21hcnRBY2Nlc3NDb250cm9sQ29uZmlnLFxuICBBY2Nlc3NUeXBlLFxufSBmcm9tIFwiQGNzbWFydC9uZ2Mtc21hcnQtY29yZVwiO1xuaW1wb3J0IHsgTmdjU21hcnRWaWN0aW1TZXJ2aWNlIH0gZnJvbSAnLi9zbWFydC12aWN0aW0uc2VydmljZSc7XG5pbXBvcnQgeyBFbGVtZW50c1ZpY3RpbSwgVmljdGltTGlzdEZpbHRlciwgVmljdGltLCBTTUFSVF9XQVJSQU5UX1VSTCB9IGZyb20gJy4vc21hcnQtdmljdGltLm1vZGVsJztcbmltcG9ydCB7IFNtYXJ0VmljdGltRGVsZXRlQ29uZmlybUNvbXBvbmVudCB9IGZyb20gJy4vc21hcnQtdmljdGltLWRlbGV0ZS1jb25maXJtLmNvbXBvbmVudCc7XG4vL2ltcG9ydCB7IFNtYXJ0VmljdGltRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydC12aWN0aW0tZGV0YWlsL3NtYXJ0LXZpY3RpbS1kZXRhaWwuY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgSW50YWtlU3RlcFN0YXR1c01vZGVsLFxuICBJbnRha2VTdGVwLFxuICBJbnRha2VTZXJ2aWNlc0NvbXBvbmVudCxcbn0gZnJvbSAnLi9pbnRha2Uuc2VydmljZSc7XG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImNzbWFydC12aWN0aW1cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9zbWFydC12aWN0aW0uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3NtYXJ0LXZpY3RpbS5jb21wb25lbnQuY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ2NTbWFydFZpY3RpbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgb2ZmZW5kZXJJZDogbnVtYmVyO1xuICBASW5wdXQoKSBzdGFmZklkOiBudW1iZXI7XG4gIEBJbnB1dCgpIHN0YWZmUm9sZTogc3RyaW5nO1xuICBASW5wdXQoKSBzaG93Q2FzZU5vdGU6IHN0cmluZztcbiAgQElucHV0KCkgc2hvd1NhZmV0eVBsYW46IHN0cmluZztcbiAgLy9ASW5wdXQoKSBzaG93QWRkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNob3dBZGQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNob3dFZGl0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNob3dSZWxhdGlvbnNoaXBDb2x1bW46IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNob3dPZmZlbmRlck5hbWVDb2x1bW46IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNob3dPZmZlbmRlclBob25lQ29sdW1uOiBib29sZWFuO1xuICBASW5wdXQoKSBzaG93U2VhcmNoRm9ybTogYm9vbGVhbjtcbiAgQElucHV0KCkgYWNjZXNzQnlNb2R1bGU6IHN0cmluZztcbiAgQElucHV0KCkgaW50YWtlRmxhZzogc3RyaW5nO1xuICBASW5wdXQoKSBhcHBNb2R1bGVJZCA9ICcnO1xuICBASW5wdXQoKSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUgPSBudWxsO1xuXG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yKSBwYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcbiAgQFZpZXdDaGlsZChNYXRTb3J0KSBzb3J0OiBNYXRTb3J0O1xuICAvLyBAVmlld0NoaWxkKFNtYXJ0VmljdGltRGV0YWlsQ29tcG9uZW50KSBjaGlsZDtcblxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXTtcbiAgdmljdGltczogVmljdGltW10gPSBbXTtcbiAgdmljdGltRGV0YWlsID0gPFZpY3RpbT57fTtcbiAgc2hvd0RldGFpbCA9IGZhbHNlO1xuICB2aWN0aW1MaXN0RmlsdGVyOiBWaWN0aW1MaXN0RmlsdGVyID0gbmV3IFZpY3RpbUxpc3RGaWx0ZXIoKTtcbiAgdmljdGltTGlzdERhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKCk7XG4gIGRvU3BpbjogYm9vbGVhbiA9IGZhbHNlO1xuICBzaG93TGlzdEZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbXNnOiBzdHJpbmcgPSBcIlwiO1xuICBpc0ludGFrZSA9IGZhbHNlO1xuXG4gIHVwZGF0ZUFjY2Vzc0NvbnRyb2xDb25maWc6IFNtYXJ0QWNjZXNzQ29udHJvbENvbmZpZztcbiAgY3JlYXRlQWNjZXNzQ29udHJvbENvbmZpZzogU21hcnRBY2Nlc3NDb250cm9sQ29uZmlnO1xuICBkZWxldGVBY2Nlc3NDb250cm9sQ29uZmlnOiBTbWFydEFjY2Vzc0NvbnRyb2xDb25maWc7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSB2aWN0aW1TZXJ2aWNlOiBOZ2NTbWFydFZpY3RpbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHNuYWNrQmFyOiBNYXRTbmFja0JhcixcbiAgICBwcml2YXRlIGludGFrZVNlcnZpY2U6IEludGFrZVNlcnZpY2VzQ29tcG9uZW50LFxuICAgIEBJbmplY3QoU01BUlRfV0FSUkFOVF9VUkwpIHByaXZhdGUgc21hcnRXYXJyYW50VXJsOiBzdHJpbmcsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogYW55XG4gICkge31cblxuICAvLyBwcml2YXRlIG9uQ2hhbmdlKGZpbHRlcjogVmljdGltTGlzdEZpbHRlcikge1xuICAvLyAgIGNvbnNvbGUubG9nKCdmaWx0ZXIgaW4gb25jaGFuZ2UnKTtcbiAgLy8gICBjb25zb2xlLmxvZyhmaWx0ZXIpO1xuICAvLyAgIHRoaXMuZ2V0VmljdGltTGlzdChmaWx0ZXIpO1xuICAvLyB9XG5cbiAgYXBwbHlGaWx0ZXIoZmlsdGVyVmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmljdGltTGlzdERhdGFTb3VyY2UuZmlsdGVyID0gZmlsdGVyVmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gIH1cbiAgYWRkUmVjb3JkKCkge1xuICAgIHRoaXMuc2hvd0RldGFpbCA9IHRydWU7XG4gICAgdGhpcy5zaG93QWRkID0gZmFsc2U7XG4gICAgdGhpcy52aWN0aW1EZXRhaWwgPSBudWxsO1xuICAgIHRoaXMuc2hvd0xpc3RGbGFnID0gZmFsc2U7XG4gIH1cblxuICBlZGl0VmljdGltRGV0YWlsKHJlY29yZCkge1xuICAgIGNvbnNvbGUubG9nKFwidmljdGltIGVkaXQgcmVjb3JkXCIpO1xuICAgIGNvbnNvbGUubG9nKHJlY29yZCk7XG4gICAgY29uc29sZS5sb2cocmVjb3JkLnZpY3RpbUlkKTtcbiAgICB0aGlzLnZpY3RpbURldGFpbCA9IHJlY29yZDtcbiAgICB0aGlzLnNob3dEZXRhaWwgPSB0cnVlO1xuICAgIHRoaXMuc2hvd0FkZCA9IGZhbHNlO1xuICAgIHRoaXMuc2hvd0xpc3RGbGFnID0gZmFsc2U7XG4gIH1cblxuICBzYXZlKGRldGFpbDogVmljdGltKSB7XG4gICAgdGhpcy5zaG93RGV0YWlsID0gZmFsc2U7XG4gICAgdGhpcy5zaG93QWRkID0gdHJ1ZTtcbiAgICB0aGlzLnNob3dMaXN0RmxhZyA9IHRydWU7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5zaG93RGV0YWlsID0gZmFsc2U7XG4gICAgdGhpcy52aWN0aW1EZXRhaWwgPSA8VmljdGltPnt9O1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMudmljdGltTGlzdERhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3I7XG4gICAgdGhpcy52aWN0aW1MaXN0RGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0O1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgIHRoaXMudXBkYXRlQWNjZXNzQ29udHJvbENvbmZpZyA9IHtcbiAgICAgICBhY2Nlc3NUeXBlOiBBY2Nlc3NUeXBlLlVQREFURSxcbiAgICAgICBhcHBNb2R1bGVJZDogdGhpcy5hcHBNb2R1bGVJZCxcbiAgICAgICByb2xlSWQ6IG51bGwsXG4gICAgICAgcm91dGU6IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QsXG4gICAgIH07XG4gICAgIHRoaXMuY3JlYXRlQWNjZXNzQ29udHJvbENvbmZpZyA9IHtcbiAgICAgICBhY2Nlc3NUeXBlOiBBY2Nlc3NUeXBlLkNSRUFURSxcbiAgICAgICBhcHBNb2R1bGVJZDogdGhpcy5hcHBNb2R1bGVJZCxcbiAgICAgICByb2xlSWQ6IG51bGwsXG4gICAgICAgcm91dGU6IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QsXG4gICAgIH07XG4gICAgIHRoaXMuZGVsZXRlQWNjZXNzQ29udHJvbENvbmZpZyA9IHtcbiAgICAgICBhY2Nlc3NUeXBlOiBBY2Nlc3NUeXBlLkRFTEVURSxcbiAgICAgICBhcHBNb2R1bGVJZDogdGhpcy5hcHBNb2R1bGVJZCxcbiAgICAgICByb2xlSWQ6IG51bGwsXG4gICAgICAgcm91dGU6IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QsXG4gICAgIH07XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXM7XG4gICAgaWYocXVlcnlQYXJhbXNbJ3JvdXRlVG8nXSkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3F1ZXJ5UGFyYW1zWydyb3V0ZVRvJ11dKTtcbiAgICB9XG4gICAgdmFyIGRhdGEgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGE7XG4gICAgdmFyIG15UGF0aCA9IHRoaXMucm91dGVyLnVybC5zbGljZSgtMTApO1xuXG5cbiAgICBjb25zb2xlLmxvZyhcIm9mZmVuZGVyIGlkIGF0IHNtYXJ0LXZpY3RpbVwiKTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLm9mZmVuZGVySWQpO1xuICAgIGNvbnNvbGUubG9nKFwic3RhZmYgaWQgYXQgc21hcnQtdmljdGltXCIpO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuc3RhZmZJZCk7XG4gICAgY29uc29sZS5sb2coXCJpbnNha2VGbGFnIGF0IHNtYXJ0LXZpY3RpbVwiKTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmludGFrZUZsYWcpO1xuXG5cbiAgICBjb25zb2xlLmxvZyhcInNtYXJ0LXZpY3RpbSBuZ09uSW5pdFwiKTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmludGFrZUZsYWcpO1xuICAgIGNvbnNvbGUubG9nKG15UGF0aCk7XG5cbiAgICBpZiAodGhpcy5pbnRha2VGbGFnID09IFwidHJ1ZVwiKSB7XG4gICAgICB0aGlzLmlzSW50YWtlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSBbXCJsYXN0TmFtZVwiLCBcImZpcnN0TmFtZVwiXTtcblxuICAgIGlmIChcbiAgICAgIHRoaXMuc2hvd1JlbGF0aW9uc2hpcENvbHVtbiA9PSB0cnVlIHx8XG4gICAgICBteVBhdGggPT0gXCJ2aWN0aW1MaXN0XCIgfHxcbiAgICAgIG15UGF0aCA9PSBcInZpY3RpbUhvbWVcIlxuICAgICkge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJyZWxhdGlvbnNoaXBcIik7XG4gICAgfVxuICAgIGlmICh0aGlzLnNob3dPZmZlbmRlck5hbWVDb2x1bW4gPT0gdHJ1ZSkge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJvZmZlbmRlck5hbWVcIik7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdGhpcy5zaG93T2ZmZW5kZXJQaG9uZUNvbHVtbiA9PSB0cnVlIHx8XG4gICAgICBteVBhdGggPT0gXCJ2aWN0aW1MaXN0XCIgfHxcbiAgICAgIG15UGF0aCA9PSBcInZpY3RpbUhvbWVcIlxuICAgICkge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJob21lUGhvbmVcIik7XG4gICAgfVxuXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJ2aWN0aW1JZFwiKTtcblxuICAgIGlmICh0aGlzLnNob3dTZWFyY2hGb3JtID09IHRydWUpIHtcbiAgICAgIHRoaXMuc2hvd0xpc3RGbGFnID0gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coXCJ0aGlzLnNob3dTZWFyY2hGb3JtXCIpO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuc2hvd1NlYXJjaEZvcm0pO1xuICAgIGNvbnNvbGUubG9nKFwibXlQYXRoXCIpO1xuICAgIGNvbnNvbGUubG9nKG15UGF0aCk7XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLnNob3dTZWFyY2hGb3JtID09IGZhbHNlIHx8XG4gICAgICBteVBhdGggPT0gXCJ2aWN0aW1MaXN0XCIgfHxcbiAgICAgIG15UGF0aCA9PSBcInZpY3RpbUhvbWVcIlxuICAgICkge1xuICAgICAgdmFyIG15T2ZmZW5kZXJJZDtcbiAgICAgIGlmICh0aGlzLm9mZmVuZGVySWQpIHtcbiAgICAgICAgbXlPZmZlbmRlcklkID0gdGhpcy5vZmZlbmRlcklkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJiYWNrIGZyb20gcHJldmlvdXMgcGFnZVwiKTtcbiAgICAgICAgdGhpcy5zaG93QWRkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zaG93UmVsYXRpb25zaGlwQ29sdW1uID0gdHJ1ZTtcbiAgICAgICAgLy90aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaChcInJlbGF0aW9uc2hpcFwiKTtcbiAgICAgICAgdGhpcy5zaG93T2ZmZW5kZXJQaG9uZUNvbHVtbiA9IHRydWU7XG4gICAgICAgIC8vIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKFwiaG9tZVBob25lXCIpO1xuICAgICAgICB0aGlzLmFjY2Vzc0J5TW9kdWxlID0gXCJ0cnVlXCI7XG4gICAgICAgIHRoaXMuc2hvd0VkaXQgPSBcInRydWVcIjtcbiAgICAgICAgdGhpcy5zaG93Q2FzZU5vdGUgPSBcInRydWVcIjtcbiAgICAgICAgdGhpcy5zaG93U2FmZXR5UGxhbiA9IFwidHJ1ZVwiO1xuXG4gICAgICAgIG15T2ZmZW5kZXJJZCA9IGRhdGEuc2VsZWN0ZWRPZmZlbmRlci5vZmZlbmRlcklkO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB2aWN0aW1MaXN0RmlsdGVyOiBWaWN0aW1MaXN0RmlsdGVyID0ge1xuICAgICAgICBvZmZlbmRlcklkOiBteU9mZmVuZGVySWQsXG4gICAgICAgIGxhc3ROYW1lOiBudWxsLFxuICAgICAgICBmaXJzdE5hbWU6IG51bGwsXG4gICAgICAgIHBkaWQ6IG51bGwsXG4gICAgICAgIGJpcnRoRGF0ZTogbnVsbCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnNvbGUubG9nKFwidmljdGltTGlzdEZpbHRlciBpbiBzbWFyLXZpY3RpbSBjb21wb25lbmV0XCIpO1xuICAgICAgY29uc29sZS5sb2codmljdGltTGlzdEZpbHRlcik7XG5cbiAgICAgIHRoaXMudmljdGltU2VydmljZVxuICAgICAgICAuZ2V0VmljdGltTGlzdEJ5RmlsdGVyKHZpY3RpbUxpc3RGaWx0ZXIpXG4gICAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IFZpY3RpbVtdKSA9PiB7XG4gICAgICAgICAgdGhpcy52aWN0aW1zID0gZGF0YTtcbiAgICAgICAgICB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlLmRhdGEgPSBkYXRhO1xuXG4gICAgICAgICAgY29uc29sZS5sb2coXCJ2aWN0aW0gZGF0YSBhdCBsaW5lIDI0NVwiKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnZpY3RpbXMpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKFwic2hvd0xpc3RGbGFnXCIpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuc2hvd0xpc3RGbGFnKTtcbiAgICAgICAgICB0aGlzLnNob3dMaXN0RmxhZyA9IHRydWU7XG4gICAgICAgICAgaWYgKGRhdGEubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgIHRoaXMubXNnID0gXCJObyBSZWNvcmQgRm91bmQhXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coXCJmaW5kIGZpbHRlclwiKTtcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMudmljdGltTGlzdEZpbHRlcik7XG5cbiAgICAgIGlmICh0aGlzLnNob3dMaXN0RmxhZyA9PT0gdHJ1ZSkge1xuICAgICAgICBpZiAodGhpcy52aWN0aW1MaXN0RmlsdGVyICE9IG51bGwpIHtcbiAgICAgICAgICB0aGlzLnZpY3RpbVNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRWaWN0aW1MaXN0QnlGaWx0ZXIodGhpcy52aWN0aW1MaXN0RmlsdGVyKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZGF0YTogVmljdGltW10pID0+IHtcbiAgICAgICAgICAgICAgdGhpcy52aWN0aW1zID0gZGF0YTtcbiAgICAgICAgICAgICAgdGhpcy52aWN0aW1MaXN0RGF0YVNvdXJjZS5kYXRhID0gZGF0YTtcblxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInZpY3RpbSBkYXRhIGF0IGxpbmUgMjc5XCIpO1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4vLyBwaG9uZSBudW1iZXIgZm9ybWF0IG9uIHRoZSB2aWN0aW0gbGlzdFxuICBmb3JtYXRQaG9uZU51bWJlcihwaG9uZU51bWJlclN0cmluZykge1xuICAgIGlmICghcGhvbmVOdW1iZXJTdHJpbmcpIHJldHVybiBcIlwiO1xuICAgIHZhciBjbGVhbmVkID0gKFwiXCIgKyBwaG9uZU51bWJlclN0cmluZykucmVwbGFjZSgvXFxEL2csIFwiXCIpO1xuICAgIHZhciBtYXRjaCA9IGNsZWFuZWQubWF0Y2goL14oXFxkezN9KShcXGR7M30pKFxcZHs0fSkkLyk7XG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICByZXR1cm4gXCIoXCIgKyBtYXRjaFsxXSArIFwiKSBcIiArIG1hdGNoWzJdICsgXCItXCIgKyBtYXRjaFszXTtcbiAgICB9XG4gICAgcmV0dXJuIFwiXCI7XG4gIH1cblxuICBzYXZlSW50YWtlKCkge1xuICAgIGlmICghdGhpcy5pc0ludGFrZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBpbnRha2VTdGVwID0gPEludGFrZVN0ZXBTdGF0dXNNb2RlbD57XG4gICAgICBpbnRha2VTdGVwSWQ6IEludGFrZVN0ZXAuVmljdGltSW5mb3JtYXRpb24sXG4gICAgICBvZmZlbmRlcklkOiB0aGlzLm9mZmVuZGVySWQsXG4gICAgICBtb2RpZmllZEJ5OiB0aGlzLnN0YWZmSWQsXG4gICAgfTtcbiAgICB0aGlzLmludGFrZVNlcnZpY2VcbiAgICAgIC51cGRhdGVJbnRha2VTdGVwcyh0aGlzLm9mZmVuZGVySWQsIGludGFrZVN0ZXApXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coXCJzYXZlIGludGFrZSBzdGVwLlwiKTtcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKFwiU3RhdHVzIFNhdmVkLlwiLCBcIlwiLCB7XG4gICAgICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICAgIH0pO1xuICAgICAgICAvL3RoaXMucm91dGVyLm5hdmlnYXRlKFsnL3dhcnJhbnQgJ10sIHsgcXVlcnlQYXJhbXM6IHsgaW50YWtlOiAxIH0gfSk7XG5cbiAgICAgICAgdGhpcy5kb2N1bWVudC5sb2NhdGlvbi5ocmVmID1cbiAgICAgICAgICBgJHt0aGlzLnNtYXJ0V2FycmFudFVybH0vP29mZmVuZGVySWQ9JHt0aGlzLm9mZmVuZGVySWR9JmludGFrZUZsYWc9JHt0aGlzLmlzSW50YWtlfSZyb3V0ZVRvPXdhcnJhbnRgO1xuICAgICAgfSk7XG4gIH1cblxuICBnb1RvQ2FzZU5vdGUodmljdGltSWQ6IG51bWJlcikge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcImNhc2Vub3RlXCIsIHZpY3RpbUlkLCB0aGlzLm9mZmVuZGVySWRdKTtcbiAgfVxuXG4gIGdvVG9TYWZ0eVBsYW4odmljdGltSWQ6IG51bWJlcikge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcInNhZnR5UGxhblwiLCB2aWN0aW1JZF0pO1xuICB9XG5cbiAgZ2V0VmljdGltTGlzdChmaWx0ZXI6IFZpY3RpbUxpc3RGaWx0ZXIpIHtcbiAgICB0aGlzLnZpY3RpbUxpc3RGaWx0ZXIgPSBmaWx0ZXI7XG4gICAgY29uc29sZS5sb2coXCJ0aGlzLnZpY3RpbUxpc3RGaWx0ZXIgaW5zaWRlIGdldFZpY3RpbUxpc3RcIik7XG4gICAgY29uc29sZS5sb2codGhpcy52aWN0aW1MaXN0RmlsdGVyKTtcbiAgICB0aGlzLmRvU3BpbiA9IHRydWU7XG4gICAgdGhpcy52aWN0aW1TZXJ2aWNlLmdldFZpY3RpbUxpc3RCeUZpbHRlcihmaWx0ZXIpLnN1YnNjcmliZShcbiAgICAgIChkYXRhOiBWaWN0aW1bXSkgPT4ge1xuICAgICAgIHRoaXMuZG9TcGluID0gIXRoaXMuZG9TcGluO1xuXG4gICAgICAgIGlmIChkYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLnNob3dMaXN0RmxhZyA9IHRydWU7XG4gICAgICAgICAgdGhpcy52aWN0aW1MaXN0RGF0YVNvdXJjZS5kYXRhID0gZGF0YTtcblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubXNnID0gXCJObyByZWNvcmQgZm91bmQhXCI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoZXJyKSA9PiB7XG4gICAgICAgIHRoaXMuZG9TcGluID0gIXRoaXMuZG9TcGluO1xuICAgICAgfVxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJzaG93U2VhcmNoRm9ybVwiPlxuICAgIDxhcHAtdmljdGltLXNlYXJjaC1mb3JtXG4gICAgKG9uU2VhcmNoKT1cImdldFZpY3RpbUxpc3QoJGV2ZW50KVwiPlxuICAgIDwvYXBwLXZpY3RpbS1zZWFyY2gtZm9ybT5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwic2hvd0RldGFpbFwiPlxuICA8Y3NtYXJ0LXZpY3RpbS1kZXRhaWwgW3ZpY3RpbURldGFpbF09XCJ2aWN0aW1EZXRhaWxcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdGFmZklkXT1cInN0YWZmSWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW29mZmVuZGVySWRdID1cIm9mZmVuZGVySWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lzSW50YWtlXT1cImlzSW50YWtlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvblNhdmUpPVwic2F2ZSgkZXZlbnQpXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAob25DYW5jZWwpPVwiY2FuY2VsKClcIiA+XG48L2NzbWFydC12aWN0aW0tZGV0YWlsPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibWFpbi1jb250YWluZXJcIj5cbiAgICBcbiAgICA8ZGl2IGNsYXNzPVwiYWRkLWFjdGlvblwiICpuZ0lmPVwic2hvd0FkZFwiPlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFxuICAgICAgICAgICBhY2Nlc3NDb250cm9sXG4gICAgICAgICAgW2FjY2Vzc0NvbnRyb2xDb25maWddPVwiY3JlYXRlQWNjZXNzQ29udHJvbENvbmZpZ1wiICBcbiAgICAgICAgICAoY2xpY2spPVwiYWRkUmVjb3JkKClcIj5cbiAgICAgICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbiAgICAgICAgICBBZGQgVmljdGltXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAmbmJzcDsmbmJzcDtcblxuICAgIDxkaXYgKm5nSWY9XCJpc0ludGFrZVwiPlxuICAgICAgICA8YnV0dG9uIFxuICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvbiBcbiAgICAgICAgY29sb3I9XCJwcmltYXJ5XCIgXG4gICAgICAgIGFjY2Vzc0NvbnRyb2xcbiAgICAgICAgW2FjY2Vzc0NvbnRyb2xDb25maWddPVwidXBkYXRlQWNjZXNzQ29udHJvbENvbmZpZ1wiICAgICAgICAgIFxuICAgICAgICAoY2xpY2spPVwic2F2ZUludGFrZSgpXCI+XG4gICAgICAgIENvbnRpbnVlXG4gICAgICAgIDwvYnV0dG9uPiBcbiAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuICAgPGRpdiAqbmdJZj1cInNob3dMaXN0RmxhZ1wiPlxuICAgIDxtYXQtY2FyZCBpZD1cImRpdlZpY3RpbVwiID5cbiAgICAgICAgICA8bWF0LWNhcmQtY29udGVudCA+XG4gICAgICAgICAgICA8bWF0LXRhYmxlICN0YWJsZSBbZGF0YVNvdXJjZV09XCJ2aWN0aW1MaXN0RGF0YVNvdXJjZVwiID5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibGFzdE5hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5WaWN0aW0gTGFzdCBOYW1lPC9tYXQtaGVhZGVyLWNlbGw+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiA+IHt7cm93Lmxhc3ROYW1lfX0gIDwvbWF0LWNlbGw+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZmlyc3ROYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmID5WaWN0aW0gRmlyc3QgTmFtZTwvbWF0LWhlYWRlci1jZWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiID4ge3tyb3cuZmlyc3ROYW1lfX0gPC9tYXQtY2VsbD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwic2hvd1JlbGF0aW9uc2hpcENvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInJlbGF0aW9uc2hpcFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiA+UmVsYXRpb25zaGlwIHRvIE9mZmVuZGVyPC9tYXQtaGVhZGVyLWNlbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgPiB7e3Jvdy5yZWxhdGlvbnNoaXB9fSA8L21hdC1jZWxsPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwic2hvd09mZmVuZGVyUGhvbmVDb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJob21lUGhvbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgPlBob25lIE51bWJlcjwvbWF0LWhlYWRlci1jZWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiID4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBIb21lIHBob25lOiB7e2Zvcm1hdFBob25lTnVtYmVyKHJvdy5ob21lUGhvbmUpfX08YnI+ICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIENlbGwgUGhvbmU6IHt7Zm9ybWF0UGhvbmVOdW1iZXIocm93LmNlbGxQaG9uZSl9fTxicj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFdvcmsgUGhvbmU6IHt7Zm9ybWF0UGhvbmVOdW1iZXIocm93LndvcmtQaG9uZSl9fSBcblxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2VsbD5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCJzaG93T2ZmZW5kZXJOYW1lQ29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwib2ZmZW5kZXJOYW1lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5PZmZlbmRlciBOYW1lPC9tYXQtaGVhZGVyLWNlbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiID4ge3tyb3cub2ZmZW5kZXJOYW1lfX0gPC9tYXQtY2VsbD5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidmljdGltSWRcIj5cbiAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgPjwvbWF0LWhlYWRlci1jZWxsPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgPlxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgICpuZ0lmPVwiYWNjZXNzQnlNb2R1bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94PjwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICAqbmdJZj1cInNob3dFZGl0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImVkaXQtYnRuXCIgIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAgbWF0VG9vbHRpcD1cIlZpZXcvRWRpdCBWaWN0aW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NDb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY2Nlc3NDb250cm9sQ29uZmlnXT1cInVwZGF0ZUFjY2Vzc0NvbnRyb2xDb25maWdcIiAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0VmljdGltRGV0YWlsKHJvdylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPm1vZGVfZWRpdDwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICBcblxuICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7IFxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICAqbmdJZj1cInNob3dDYXNlTm90ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdFRvb2x0aXA9XCJDYXNlTm90ZVwiICBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NDb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjY2Vzc0NvbnRyb2xDb25maWddPVwidXBkYXRlQWNjZXNzQ29udHJvbENvbmZpZ1wiICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub0Nhc2VOb3RlKHJvdy52aWN0aW1JZClcIj4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdseXBoaWNvbiBnbHlwaGljb24tcGVuY2lsXCIgPjwvc3Bhbj4mbmJzcDtDYXNlIE5vdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDtcbiAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCJzaG93U2FmZXR5UGxhblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgIG1hdFRvb2x0aXA9XCJzYWZldHkgcGxhblwiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzQ29udHJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgIFthY2Nlc3NDb250cm9sQ29uZmlnXT1cInVwZGF0ZUFjY2Vzc0NvbnRyb2xDb25maWdcIiAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9TYWZ0eVBsYW4ocm93LnZpY3RpbUlkKVwiPiAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdseXBoaWNvbiBnbHlwaGljb24tcGVuY2lsXCIgPjwvc3Bhbj4mbmJzcDtTYWZldHkgUGxhblxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwO1xuICAgXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWNlbGw+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNcIiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLXJvd1wiPjwvbWF0LWhlYWRlci1yb3c+XG4gICAgICAgICAgICAgICAgPG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnNcIiBjbGFzcz1cImV4YW1wbGUtcm93XCI+PC9tYXQtcm93PlxuICAgICAgICAgICAgICAgIDwvbWF0LXRhYmxlPlxuXG4gICAgICAgICAgICAgIDxtYXQtcGFnaW5hdG9yICNwYWdpbmF0b3IgW3BhZ2VTaXplXT1cIjEwXCIgW3BhZ2VTaXplT3B0aW9uc109XCJbNSwgMTAsIDI1LCAxMDBdXCI+PC9tYXQtcGFnaW5hdG9yPiBcbiAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgPC9tYXQtY2FyZD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXY+XG4gICAgICAgIDxiPnt7bXNnfX08L2I+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -0,0 +1,133 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const SMART_OFFENDER_SERVICE_URL = new InjectionToken('smart offender service url');
3
+ export const SMART_LOOKUP_SERVICE_URL = new InjectionToken('smart lookup service url');
4
+ export const SMART_VICTIM_SERVICE_URL = new InjectionToken('smart victim service url');
5
+ export const SMART_WARRANT_URL = new InjectionToken('smart warrant web url');
6
+ export class VictimListFilter {
7
+ }
8
+ export class VictimAdvocate {
9
+ constructor(victimAdvocateId, lastName, firstName, prefixId, suffixId, addressId, noPhoneFlag, homePhone, workPhone, cellPhone, email, modifiedBy) {
10
+ this.victimAdvocateId = victimAdvocateId;
11
+ this.lastName = lastName;
12
+ this.firstName = firstName;
13
+ this.prefixId = prefixId;
14
+ this.suffixId = suffixId;
15
+ this.addressId = addressId;
16
+ this.noPhoneFlag = noPhoneFlag;
17
+ this.homePhone = homePhone;
18
+ this.workPhone = workPhone;
19
+ this.cellPhone = cellPhone;
20
+ this.email = email;
21
+ this.modifiedBy = modifiedBy;
22
+ }
23
+ }
24
+ export class VictimWeaponUse {
25
+ constructor(
26
+ // public victimWeaponUseId: number,
27
+ victimId, weaponTypeId, otherWeapon, modifiedBy) {
28
+ this.victimId = victimId;
29
+ this.weaponTypeId = weaponTypeId;
30
+ this.otherWeapon = otherWeapon;
31
+ this.modifiedBy = modifiedBy;
32
+ }
33
+ }
34
+ export class VictimDrugUse {
35
+ constructor(
36
+ //public victimDrugUseId: number,
37
+ victimId, drugTypeId, otherDrug, modifiedBy) {
38
+ this.victimId = victimId;
39
+ this.drugTypeId = drugTypeId;
40
+ this.otherDrug = otherDrug;
41
+ this.modifiedBy = modifiedBy;
42
+ }
43
+ }
44
+ export class VictimSupport {
45
+ constructor(
46
+ // public victimSupportId: number,
47
+ victimId, victimSupportTypeId, modifiedBy) {
48
+ this.victimId = victimId;
49
+ this.victimSupportTypeId = victimSupportTypeId;
50
+ this.modifiedBy = modifiedBy;
51
+ }
52
+ }
53
+ export class VictimGuardian {
54
+ constructor(victimGuardianId, lastName, firstName, prefixId, suffixId, birthDate, addressId, noPhoneFlag, homePhone, workPhone, cellPhone, email, modifiedBy) {
55
+ this.victimGuardianId = victimGuardianId;
56
+ this.lastName = lastName;
57
+ this.firstName = firstName;
58
+ this.prefixId = prefixId;
59
+ this.suffixId = suffixId;
60
+ this.birthDate = birthDate;
61
+ this.addressId = addressId;
62
+ this.noPhoneFlag = noPhoneFlag;
63
+ this.homePhone = homePhone;
64
+ this.workPhone = workPhone;
65
+ this.cellPhone = cellPhone;
66
+ this.email = email;
67
+ this.modifiedBy = modifiedBy;
68
+ }
69
+ }
70
+ export class Victim {
71
+ constructor(victimId, offenderId, underSupervisionFlag, victimOffenderRelationshipTypeId, lastName, firstName, middleName, prefixId, suffixId, birthDate, genderCode, homePhone, workPhone, cellPhone, email, addressId, minorFlag, victimAdvocateFlag, guardianFirstName, guardianLastName, guardianPrefixId, guardianSuffixId, guardianNoPhoneFlag, guardianHomePhone, guardianWorkPhone, guardianCellPhone, guardianEmail, guardianAddressId, guardianBirthDate, advocateFirstName, advocateLastName, advocatePrefixId, advocateSuffixId, advocateNoPhoneFlag, advocateHomePhone, advocateWorkPhone, advocateCellPhone, advocateEmail, advocateAddressId, emergencyContact, emergencyContactPhone, commonChildrenFlag, commonChildrenNumber, cpoExpirationFlag, cpoExpirationDate, supportInPlaceFlag, weaponInvolvedFlag, drugUseFlag, alcoholUseFlag, accessRisk, modifiedBy, relationship, vVictimAdvocate, vVictimGuardian, victimSupports, victimWeaponUses, victimDrugUses, allowCsosaContactFlag, liveWithOffenderFlag) {
72
+ this.victimId = victimId;
73
+ this.offenderId = offenderId;
74
+ this.underSupervisionFlag = underSupervisionFlag;
75
+ this.victimOffenderRelationshipTypeId = victimOffenderRelationshipTypeId;
76
+ this.lastName = lastName;
77
+ this.firstName = firstName;
78
+ this.middleName = middleName;
79
+ this.prefixId = prefixId;
80
+ this.suffixId = suffixId;
81
+ this.birthDate = birthDate;
82
+ this.genderCode = genderCode;
83
+ this.homePhone = homePhone;
84
+ this.workPhone = workPhone;
85
+ this.cellPhone = cellPhone;
86
+ this.email = email;
87
+ this.addressId = addressId;
88
+ this.minorFlag = minorFlag;
89
+ this.victimAdvocateFlag = victimAdvocateFlag;
90
+ this.guardianFirstName = guardianFirstName;
91
+ this.guardianLastName = guardianLastName;
92
+ this.guardianPrefixId = guardianPrefixId;
93
+ this.guardianSuffixId = guardianSuffixId;
94
+ this.guardianNoPhoneFlag = guardianNoPhoneFlag;
95
+ this.guardianHomePhone = guardianHomePhone;
96
+ this.guardianWorkPhone = guardianWorkPhone;
97
+ this.guardianCellPhone = guardianCellPhone;
98
+ this.guardianEmail = guardianEmail;
99
+ this.guardianAddressId = guardianAddressId;
100
+ this.guardianBirthDate = guardianBirthDate;
101
+ this.advocateFirstName = advocateFirstName;
102
+ this.advocateLastName = advocateLastName;
103
+ this.advocatePrefixId = advocatePrefixId;
104
+ this.advocateSuffixId = advocateSuffixId;
105
+ this.advocateNoPhoneFlag = advocateNoPhoneFlag;
106
+ this.advocateHomePhone = advocateHomePhone;
107
+ this.advocateWorkPhone = advocateWorkPhone;
108
+ this.advocateCellPhone = advocateCellPhone;
109
+ this.advocateEmail = advocateEmail;
110
+ this.advocateAddressId = advocateAddressId;
111
+ this.emergencyContact = emergencyContact;
112
+ this.emergencyContactPhone = emergencyContactPhone;
113
+ this.commonChildrenFlag = commonChildrenFlag;
114
+ this.commonChildrenNumber = commonChildrenNumber;
115
+ this.cpoExpirationFlag = cpoExpirationFlag;
116
+ this.cpoExpirationDate = cpoExpirationDate;
117
+ this.supportInPlaceFlag = supportInPlaceFlag;
118
+ this.weaponInvolvedFlag = weaponInvolvedFlag;
119
+ this.drugUseFlag = drugUseFlag;
120
+ this.alcoholUseFlag = alcoholUseFlag;
121
+ this.accessRisk = accessRisk;
122
+ this.modifiedBy = modifiedBy;
123
+ this.relationship = relationship;
124
+ this.vVictimAdvocate = vVictimAdvocate;
125
+ this.vVictimGuardian = vVictimGuardian;
126
+ this.victimSupports = victimSupports;
127
+ this.victimWeaponUses = victimWeaponUses;
128
+ this.victimDrugUses = victimDrugUses;
129
+ this.allowCsosaContactFlag = allowCsosaContactFlag;
130
+ this.liveWithOffenderFlag = liveWithOffenderFlag;
131
+ }
132
+ }
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmljdGltLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdjLXNtYXJ0LXZpY3RpbS9zcmMvbGliL3NtYXJ0LXZpY3RpbS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUFTLDRCQUE0QixDQUFDLENBQUM7QUFDbkcsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQVMsMEJBQTBCLENBQUMsQ0FBQztBQUMvRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBUywwQkFBMEIsQ0FBQyxDQUFDO0FBQy9GLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUFTLHVCQUF1QixDQUFDLENBQUM7QUFhckYsTUFBTSxPQUFPLGdCQUFnQjtDQVE1QjtBQUlELE1BQU0sT0FBTyxjQUFjO0lBQ3ZCLFlBQW1CLGdCQUF3QixFQUVoQyxRQUFnQixFQUVoQixTQUFpQixFQUVqQixRQUFnQixFQUVoQixRQUFnQixFQUVoQixTQUFpQixFQUVqQixXQUFvQixFQUVwQixTQUFpQixFQUVqQixTQUFpQixFQUVqQixTQUFpQixFQUVqQixLQUFhLEVBRWIsVUFBa0I7UUF0QlYscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFRO1FBRWhDLGFBQVEsR0FBUixRQUFRLENBQVE7UUFFaEIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUVqQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBRWhCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFFaEIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUVqQixnQkFBVyxHQUFYLFdBQVcsQ0FBUztRQUVwQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBRWpCLGNBQVMsR0FBVCxTQUFTLENB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QkFBZ0IsQ0FBbUI7UUFDbkMsbUJBQWMsR0FBZCxjQUFjLENBQWlCO1FBRS9CLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBUztRQUM5Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQVM7SUFDcEMsQ0FBQztDQUNSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5leHBvcnQgY29uc3QgU01BUlRfT0ZGRU5ERVJfU0VSVklDRV9VUkwgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignc21hcnQgb2ZmZW5kZXIgc2VydmljZSB1cmwnKTtcbmV4cG9ydCBjb25zdCBTTUFSVF9MT09LVVBfU0VSVklDRV9VUkwgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignc21hcnQgbG9va3VwIHNlcnZpY2UgdXJsJyk7XG5leHBvcnQgY29uc3QgU01BUlRfVklDVElNX1NFUlZJQ0VfVVJMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ3NtYXJ0IHZpY3RpbSBzZXJ2aWNlIHVybCcpO1xuZXhwb3J0IGNvbnN0IFNNQVJUX1dBUlJBTlRfVVJMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ3NtYXJ0IHdhcnJhbnQgd2ViIHVybCcpO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgRWxlbWVudHNWaWN0aW0ge1xuICAgIHZpY3RpbUlkOiBzdHJpbmc7XG4gICAgdmljdGltVHlwZTogc3RyaW5nO1xuICAgIHZpY3RpbVByb3ZpZGVyOiBzdHJpbmc7XG4gICAgdmljdGltUG9saWN5SG9sZGVyOiBzdHJpbmc7XG4gICAgc3RhcnREYXRlOiBzdHJpbmc7XG4gICAgZW5kRGF0ZTogc3RyaW5nO1xuICAgIGlzQWN0aXZlOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgVmljdGltTGlzdEZpbHRlciB7XG4gXG4gICAgb2ZmZW5kZXJJZDogbnVtYmVyO1xuICAgIGxhc3ROYW1lOiBzdHJpbmc7XG4gICAgZmlyc3ROYW1lOiBzdHJpbmc7XG4gICAgcGRpZDogc3RyaW5nO1xuICAgIGJpcnRoRGF0ZTogRGF0ZTtcbiAgXG59XG5cblxuXG5leHBvcnQgY2xhc3MgVmljdGltQWR2b2NhdGUge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB2aWN0aW1BZHZvY2F0ZUlkOiBudW1iZXIsXG5cbiAgICAgICAgcHVibGljIGxhc3ROYW1lOiBzdHJpbmcsXG5cbiAgICAgICAgcHVibGljIGZpcnN0TmFtZTogc3RyaW5nLFxuXG4gICAgICAgIHB1YmxpYyBwcmVmaXhJZDogc3RyaW5nLFxuXG4gICAgICAgIHB1YmxpYyBzdWZmaXhJZDogc3RyaW5nLFxuXG4gICAgICAgIHB1YmxpYyBhZGRyZXNzSWQ6IG51bWJlcixcblxuICAgICAgICBwdWJsaWMgbm9QaG9uZUZsYWc6IGJvb2xlYW4sXG5cbiAgICAgICAgcHVibGljIGhvbWVQaG9uZTogc3RyaW5nLFxuXG4gICAgICAgIHB1YmxpYyB3b3JrUGhvbmU6IHN0cmluZyxcblxuICAgICAgICBwdWJsaWMgY2VsbFBob25lOiBzdHJpbmcsXG5cbiAgICAgICAgcHVibGljIGVtYWlsOiBzdHJpbmcsXG5cbiAgICAgICAgcHVibGljIG1vZGlmaWVkQnk6IG51bWJlclxuXG4gICAgICAgXG4pIHsgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBWaWN0aW1XZWFwb25Vc2Uge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgIC8vIHB1YmxpYyB2aWN0aW1XZWFwb25Vc2VJZDogbnVtYmVyLFxuXG4gICAgICAgIHB1YmxpYyB2aWN0aW1JZDogbnVtYmVyLFxuXG4gICAgICAgIHB1YmxpYyB3ZWFwb25UeXBlSWQ6IHN0cmluZyxcblxuICAgICAgICBwdWJsaWMgb3RoZXJXZWFwb246IHN0cmluZyxcblxuICAgICAgICBwdWJsaWMgbW9kaWZpZWRCeTogbnVtYmVyXG5cbiAgICAgICAgKSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIFZpY3RpbURydWdVc2Uge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICAvL3B1YmxpYyB2aWN0aW1EcnVnVXNlSWQ6IG51bWJlcixcblxuICAgICAgICBwdWJsaWMgdmljdGltSWQ6IG51bWJlcixcblxuICAgICAgICBwdWJsaWMgZHJ1Z1R5cGVJZDogc3RyaW5nLFxuXG4gICAgICAgIHB1YmxpYyBvdGhlckRydWc6IHN0cmluZyxcblxuICAgICAgICBwdWJsaWMgbW9kaWZpZWRCeTogbnVtYmVyXG5cbiAgICApIHsgfVxufVxuXG5cblxuXG5leHBvcnQgY2xhc3MgVmljdGltU3VwcG9ydCB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgLy8gcHVibGljIHZpY3RpbVN1cHBvcnRJZDogbnVtYmVyLFxuXG4gICAgICAgIHB1YmxpYyB2aWN0aW1JZDogbnVtYmVyLFxuXG4gICAgICAgIHB1YmxpYyB2aWN0aW1TdXBwb3J0VHlwZUlkOiBzdHJpbmcsXG5cbiAgICAgICAgcHVibGljIG1vZGlmaWVkQnk6IG51bWJlclxuXG4gICAgICApIHsgfVxufVxuXG5leHBvcnQgY2xhc3MgVmljdGltR3VhcmRpYW4ge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB2aWN0aW1HdWFyZGlhbklkOiBudW1iZXIsXG5cbiAgICAgICAgcHVibGljIGxhc3ROYW1lOiBzdHJpbmcsXG5cbiAgICAgICAgcHVibGljIGZpcnN0TmFtZTogc3RyaW5nLFxuXG4gICAgICAgIHB1YmxpYyBwcmVmaXhJZDogc3RyaW5nLFxuXG4gICAgICAgIHB1YmxpYyBzdWZmaXhJZDogc3RyaW5nLFxuXG4gICAgICAgIHB1YmxpYyBiaXJ0aERhdGU6IHN0cmluZyxcblxuICAgICAgICBwdWJsaWMgYWRkcmVzc0lkOiBudW1iZXIsXG5cbiAgICAgICAgcHVibGljIG5vUGhvbmVGbGFnOiBib29sZWFuLFxuXG4gICAgICAgIHB1YmxpYyBob21lUGhvbmU6IHN0cmluZyxcblxuICAgICAgICBwdWJsaWMgd29ya1Bob25lOiBzdHJpbmcsXG5cbiAgICAgICAgcHVibGljIGNlbGxQaG9uZTogc3RyaW5nLFxuXG4gICAgICAgIHB1YmxpYyBlbWFpbDogc3RyaW5nLFxuXG4gICAgICAgIHB1YmxpYyBtb2RpZmllZEJ5OiBudW1iZXJcbiAgICAgICAgXG4gICAgICAgIFxuXG4gICAgICAgKSB7IH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYXNlTm90ZSB7XG4gICAgdmljdGltSWQ6IG51bWJlcjtcbiAgICB2aWN0aW1DYXNlTm90ZUlkOiBudW1iZXI7XG4gICAgY2FzZU5vdGVEYXRlOiBEYXRlO1xuICAgIGNvbnRhY3RUeXBlSWQ6IHN0cmluZztcbiAgICBjb250YWN0VHlwZTogc3RyaW5nO1xuICAgIHZpY3RpbUNvbnRhY3RQdXJwb3NlSWQ6IHN0cmluZztcbiAgICB2aWN0aW1Db250YWN0UHVycG9zZTogc3RyaW5nO1xuICAgIGNvbW1lbnQ6IHN0cmluZztcbiAgICBtb2RpZmllZEJ5OiBudW1iZXI7XG4gICAgdmljdGltRmlyc3ROYW1lOiBzdHJpbmc7XG4gICAgdmljdGltTGFzdE5hbWU6IHN0cmluZztcbiAgXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFjdCB7XG4gICAgdmljdGltSWQ6IG51bWJlcjtcbiAgICB2aWN0aW1Db250YWN0SWQ6IG51bWJlcjtcbiAgICBjb250YWN0RGF0ZTogRGF0ZTtcbiAgICB2aWN0aW1Db250YWN0TWV0aG9kSWQ6IHN0cmluZztcbiAgICBjb250YWN0TWV0aG9kOiBzdHJpbmc7XG4gICAgY29udGFjdGVkQnk6IG51bWJlcjtcbiAgICBjb250YWN0ZWRCeU5hbWU6IHN0cmluZztcbiAgICBuZXh0Q29udGFjdERhdGU6IERhdGU7XG4gICAgY29tbWVudDogc3RyaW5nO1xuICAgIG1vZGlmaWVkQnk6IG51bWJlcjtcblxuICBcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIFZpY3RpbVNhZmV0eVBsYW4ge1xuICAgIHZpY3RpbUlkOiBudW1iZXI7XG4gICAgZnVsbE5hbWU6IHN0cmluZztcbiAgICB2aWN0aW1TZXJ2aWNlSWQ6IG51bWJlcjtcbiAgICBnb2FsOnN0cmluZztcbiAgICBjb21tZW50OiBzdHJpbmc7XG4gICAgbW9kaWZpZWRCeTogbnVtYmVyO1xuICAgIHZpY3RpbVNlcnZpY2VTdGF0dXNJZDogc3RyaW5nO1xuICAgIHN0YXR1czogc3RyaW5nO1xuICAgIHN0YXJ0RGF0ZTogRGF0ZTtcbiAgICB2VmljdGltU2VydmljZURldGFpbHM6IFZpY3RpbVNlcnZpY2VEZXRhaWxbXTtcbiAgICB2aWN0aW1OYW1lOiBTdHJpbmc7XG4gICAgXG4gIFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZpY3RpbVNlcnZpY2VEZXRhaWx7XG4gICAgdmljdGltU2VydmljZUlkOiBudW1iZXI7XG4gICAgdmljdGltU2VydmljZURldGFpbElkOiBudW1iZXI7XG4gICAgdmljdGltU2VydmljZVR5cGVJZDogc3RyaW5nO1xuICAgIHZpY3RpbVByb2dyYW1Qcm92aWRlcklkOiBzdHJpbmc7XG4gICAgdmljdGltUHJvZ3JhbVByb3ZpZGVyOiBzdHJpbmc7XG4gICAgbW9kaWZpZWRCeTogbnVtYmVyO1xuXG5cbn1cbmV4cG9ydCBpbnRlcmZhY2UgVmljdGltU2VydmljZVN0YXR1c0hpc3Rvcnl7XG5cbiAgICB2aWN0aW1TZXJ2aWNlU3RhdHVzSGlzdG9yeUlkOiBudW1iZXI7XG4gICAgdmljdGltU2VydmljZUlkOiBzdHJpbmc7XG4gICAgdmljdGltU2VydmljZVN0YXR1c0lkOiBzdHJpbmc7XG4gICAgc3RhcnREYXRlOiBEYXRlO1xuICAgIGNvbW1lbnQ6IHN0cmluZztcbiAgICBtb2RpZmllZEJ5OiBudW1iZXI7XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSAgVmljdGltU2VydmljZVR5cGVQcm9ncmFtUHJvdmlkZXJNb2RlbCB7XG4gICAgdmljdGltU2VydmljZVR5cGVQcm9ncmFtUHJvdmlkZXJJZDogbnVtYmVyOyBcbiAgICB2aWN0aW1TZXJ2aWNlVHlwZTogc3RyaW5nO1xuICAgIHZpY3RpbVByb2dyYW1Qcm92aWRlcklkOiBzdHJpbmc7XG4gICAgdmljdGltU2VydmljZVR5cGVJZDpzdHJpbmc7XG4gICAgdmljdGltUHJvZ3JhbVByb3ZpZGVyOiBzdHJpbmc7XG4gIH1cbiAgXG4gIGV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXJMaXN0Q29sbGVjdGlvbk1vZGVse1xuICAgIGdyb3VwSWQ6c3RyaW5nO1xuICAgIGlzRGlzcGxheTpib29sZWFuO1xuICAgIGNvbGxlY3Rpb246VmljdGltU2VydmljZVR5cGVQcm9ncmFtUHJvdmlkZXJNb2RlbFtdO1xuICB9XG5cblxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXJzRGlhbG9nRGF0YSB7XG4gICAgLy9pZXBBY3Rpb246IEllcEFjdGlvbjtcbiAgICBzZXJ2aWNlVHlwZTtcbiAgICBzZXJ2aWNlVHlwZUlkO1xuICAgIHByb3ZpZGVyQ29sbGVjdGlvbnM6IFtdO1xuICB9XG5cblxuICBleHBvcnQgY2xhc3MgVmljdGltIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHZpY3RpbUlkOiBudW1iZXIsXG4gICAgICAgIHB1YmxpYyBvZmZlbmRlcklkOiBudW1iZXIsXG4gICAgICAgIHB1YmxpYyB1bmRlclN1cGVydmlzaW9uRmxhZzogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgdmljdGltT2ZmZW5kZXJSZWxhdGlvbnNoaXBUeXBlSWQ6IHN0cmluZyxcbiAgICAgICAgcHVibGljIGxhc3ROYW1lOiBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyBmaXJzdE5hbWU6IHN0cmluZyxcbiAgICAgICAgcHVibGljIG1pZGRsZU5hbWU6IHN0cmluZyxcbiAgICAgICAgcHVibGljIHByZWZpeElkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgICBwdWJsaWMgc3VmZml4SWQ6IHN0cmluZyB8IG51bGwsXG4gICAgICAgIHB1YmxpYyBiaXJ0aERhdGU6IHN0cmluZyxcbiAgICAgICAgcHVibGljIGdlbmRlckNvZGU6IHN0cmluZyxcbiAgICAgICAgcHVibGljIGhvbWVQaG9uZTogc3RyaW5nIHwgbnVsbCxcbiAgICAgICAgcHVibGljIHdvcmtQaG9uZTogc3RyaW5nIHwgbnVsbCxcbiAgICAgICAgcHVibGljIGNlbGxQaG9uZTogc3RyaW5nIHwgbnVsbCxcbiAgICAgICAgcHVibGljIGVtYWlsOiBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyBhZGRyZXNzSWQ6IG51bWJlcixcbiAgICAgICAgcHVibGljIG1pbm9yRmxhZzogYm9vbGVhbixcbiAgICAgICAgcHVibGljIHZpY3RpbUFkdm9jYXRlRmxhZzogc3RyaW5nLFxuXG4gICAgICAgIHB1YmxpYyBndWFyZGlhbkZpcnN0TmFtZTogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgZ3VhcmRpYW5MYXN0TmFtZTogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgZ3VhcmRpYW5QcmVmaXhJZDogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgZ3VhcmRpYW5TdWZmaXhJZDogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgZ3VhcmRpYW5Ob1Bob25lRmxhZzogYm9vbGVhbixcbiAgICAgICAgcHVibGljIGd1YXJkaWFuSG9tZVBob25lOiBzdHJpbmcgfCBudWxsLFxuICAgICAgICBwdWJsaWMgZ3VhcmRpYW5Xb3JrUGhvbmU6IHN0cmluZyB8IG51bGwsXG4gICAgICAgIHB1YmxpYyBndWFyZGlhbkNlbGxQaG9uZTogc3RyaW5nIHwgbnVsbCxcbiAgICAgICAgcHVibGljIGd1YXJkaWFuRW1haWw6IHN0cmluZyxcbiAgICAgICAgcHVibGljIGd1YXJkaWFuQWRkcmVzc0lkOiBudW1iZXIsXG4gICAgICAgIHB1YmxpYyBndWFyZGlhbkJpcnRoRGF0ZTogc3RyaW5nLFxuXG4gICAgICAgIHB1YmxpYyBhZHZvY2F0ZUZpcnN0TmFtZTogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgYWR2b2NhdGVMYXN0TmFtZTogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgYWR2b2NhdGVQcmVmaXhJZDogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgYWR2b2NhdGVTdWZmaXhJZDogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgYWR2b2NhdGVOb1Bob25lRmxhZzogYm9vbGVhbixcbiAgICAgICAgcHVibGljIGFkdm9jYXRlSG9tZVBob25lOiBzdHJpbmcgfCBudWxsLFxuICAgICAgICBwdWJsaWMgYWR2b2NhdGVXb3JrUGhvbmU6IHN0cmluZyB8IG51bGwsXG4gICAgICAgIHB1YmxpYyBhZHZvY2F0ZUNlbGxQaG9uZTogc3RyaW5nIHwgbnVsbCxcbiAgICAgICAgcHVibGljIGFkdm9jYXRlRW1haWw6IHN0cmluZyxcbiAgICAgICAgcHVibGljIGFkdm9jYXRlQWRkcmVzc0lkOiBudW1iZXIsXG5cbiAgICAgICAgcHVibGljIGVtZXJnZW5jeUNvbnRhY3Q6IHN0cmluZyxcbiAgICAgICAgcHVibGljIGVtZXJnZW5jeUNvbnRhY3RQaG9uZTogc3RyaW5nIHwgbnVsbCxcbiAgICAgICAgcHVibGljIGNvbW1vbkNoaWxkcmVuRmxhZzogYm9vbGVhbixcbiAgICAgICAgcHVibGljIGNvbW1vbkNoaWxkcmVuTnVtYmVyOiBudW1iZXIsXG4gICAgICAgIHB1YmxpYyBjcG9FeHBpcmF0aW9uRmxhZzogYm9vbGVhbixcbiAgICAgICAgcHVibGljIGNwb0V4cGlyYXRpb25EYXRlOiBzdHJpbmcsXG4gICAgICAgIHB1YmxpYyBzdXBwb3J0SW5QbGFjZUZsYWc6IGJvb2xlYW4sXG4gICAgICAgIHB1YmxpYyB3ZWFwb25JbnZvbHZlZEZsYWc6IGJvb2xlYW4sXG4gICAgICAgIHB1YmxpYyBkcnVnVXNlRmxhZzogYm9vbGVhbixcbiAgICAgICAgcHVibGljIGFsY29ob2xVc2VGbGFnOiBib29sZWFuLFxuICAgICAgICBwdWJsaWMgYWNjZXNzUmlzazogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgbW9kaWZpZWRCeTogbnVtYmVyLFxuICAgICAgICBwdWJsaWMgcmVsYXRpb25zaGlwOiBzdHJpbmcsXG4gICAgICAgIFxuICAgICAgICBwdWJsaWMgdlZpY3RpbUFkdm9jYXRlOiBWaWN0aW1BZHZvY2F0ZSxcbiAgICAgICAgcHVibGljIHZWaWN0aW1HdWFyZGlhbjogVmljdGltR3VhcmRpYW4sXG4gICAgICAgIFxuICAgICAgICBwdWJsaWMgdmljdGltU3VwcG9ydHM6IFZpY3RpbVN1cHBvcnRbXSxcbiAgICAgICAgcHVibGljIHZpY3RpbVdlYXBvblVzZXM6IFZpY3RpbVdlYXBvblVzZVtdLFxuICAgICAgICBwdWJsaWMgdmljdGltRHJ1Z1VzZXM6IFZpY3RpbURydWdVc2VbXSxcblxuICAgICAgICBwdWJsaWMgYWxsb3dDc29zYUNvbnRhY3RGbGFnOiBib29sZWFuLFxuICAgICAgICBwdWJsaWMgbGl2ZVdpdGhPZmZlbmRlckZsYWc6IGJvb2xlYW5cbiAgICApIHsgfVxufVxuXG4iXX0=