@csmart/ngc-smart-victim 1.14.27 → 1.14.29

Sign up to get free protection for your applications and to get access to all the features.
@@ -174,22 +174,6 @@ export class NgcSmartVictimComponent {
174
174
  .getVictimListByFilter(victimListFilter)
175
175
  .subscribe((data) => {
176
176
  this.victims = data;
177
- //show phone number on the victim list if any phone number exist.
178
- data.forEach((d) => {
179
- if (d.homePhone == null || d.homePhone == "") {
180
- if (d.cellPhone != null) {
181
- if (d.cellPhone != "") {
182
- d.homePhone = d.cellPhone;
183
- }
184
- else {
185
- d.homePhone = d.workPhone;
186
- }
187
- }
188
- else {
189
- d.homePhone = d.workPhone;
190
- }
191
- }
192
- });
193
177
  this.victimListDataSource.data = data;
194
178
  console.log("victim data at line 245");
195
179
  console.log(this.victims);
@@ -210,22 +194,6 @@ export class NgcSmartVictimComponent {
210
194
  .getVictimListByFilter(this.victimListFilter)
211
195
  .subscribe((data) => {
212
196
  this.victims = data;
213
- //show phone number on the victim list if any phone number exist.
214
- data.forEach((d) => {
215
- if (d.homePhone == null || d.homePhone == "") {
216
- if (d.cellPhone != null) {
217
- if (d.cellPhone != "") {
218
- d.homePhone = d.cellPhone;
219
- }
220
- else {
221
- d.homePhone = d.workPhone;
222
- }
223
- }
224
- else {
225
- d.homePhone = d.workPhone;
226
- }
227
- }
228
- });
229
197
  this.victimListDataSource.data = data;
230
198
  console.log("victim data at line 279");
231
199
  console.log(data);
@@ -280,22 +248,6 @@ export class NgcSmartVictimComponent {
280
248
  this.doSpin = !this.doSpin;
281
249
  if (data.length > 0) {
282
250
  this.showListFlag = true;
283
- //show phone number on the victim list if any phone number exist.
284
- data.forEach((d) => {
285
- if (d.homePhone == null || d.homePhone == "") {
286
- if (d.cellPhone != null) {
287
- if (d.cellPhone != "") {
288
- d.homePhone = d.cellPhone;
289
- }
290
- else {
291
- d.homePhone = d.workPhone;
292
- }
293
- }
294
- else {
295
- d.homePhone = d.workPhone;
296
- }
297
- }
298
- });
299
251
  this.victimListDataSource.data = data;
300
252
  }
301
253
  else {
@@ -307,10 +259,10 @@ export class NgcSmartVictimComponent {
307
259
  }
308
260
  }
309
261
  /** @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 });
310
- /** @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\">\r\n <app-victim-search-form\r\n (onSearch)=\"getVictimList($event)\">\r\n </app-victim-search-form>\r\n</div>\r\n\r\n<div *ngIf=\"showDetail\">\r\n <csmart-victim-detail [victimDetail]=\"victimDetail\" \r\n [staffId]=\"staffId\"\r\n [offenderId] =\"offenderId\"\r\n [isIntake]=\"isIntake\"\r\n (onSave)=\"save($event)\" \r\n (onCancel)=\"cancel()\" >\r\n</csmart-victim-detail>\r\n</div>\r\n<div class=\"main-container\">\r\n \r\n <div class=\"add-action\" *ngIf=\"showAdd\">\r\n <button mat-raised-button color=\"primary\" \r\n accessControl\r\n [accessControlConfig]=\"createAccessControlConfig\" \r\n (click)=\"addRecord()\">\r\n <mat-icon>add</mat-icon>\r\n Add Victim\r\n </button>\r\n &nbsp;&nbsp;\r\n\r\n <div *ngIf=\"isIntake\">\r\n <button \r\n mat-raised-button \r\n color=\"primary\" \r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\" \r\n (click)=\"saveIntake()\">\r\n Continue\r\n </button> \r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"showListFlag\">\r\n <mat-card id=\"divVictim\" >\r\n <mat-card-content >\r\n <mat-table #table [dataSource]=\"victimListDataSource\" >\r\n\r\n <ng-container matColumnDef=\"lastName\">\r\n <mat-header-cell *matHeaderCellDef>Victim Last Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.lastName}} </mat-cell>\r\n </ng-container>\r\n\r\n\r\n <ng-container matColumnDef=\"firstName\">\r\n <mat-header-cell *matHeaderCellDef >Victim First Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.firstName}} </mat-cell>\r\n </ng-container>\r\n \r\n <div *ngIf=\"showRelationshipColumn\">\r\n <ng-container matColumnDef=\"relationship\">\r\n <mat-header-cell *matHeaderCellDef >Relationship to Offender</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.relationship}} </mat-cell>\r\n </ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"showOffenderPhoneColumn\">\r\n <ng-container matColumnDef=\"homePhone\">\r\n <mat-header-cell *matHeaderCellDef >Phone Number</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{formatPhoneNumber(row.homePhone)}} </mat-cell>\r\n </ng-container>\r\n </div>\r\n \r\n <div *ngIf=\"showOffenderNameColumn\">\r\n <ng-container matColumnDef=\"offenderName\">\r\n <mat-header-cell *matHeaderCellDef>Offender Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.offenderName}} </mat-cell>\r\n </ng-container>\r\n </div>\r\n \r\n <ng-container matColumnDef=\"victimId\">\r\n <mat-header-cell *matHeaderCellDef ></mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" >\r\n \r\n <!-- <div *ngIf=\"accessByModule\">\r\n <mat-checkbox></mat-checkbox>\r\n </div> -->\r\n \r\n <div *ngIf=\"showEdit\">\r\n <button class=\"edit-btn\" mat-icon-button color=\"primary\" matTooltip=\"View/Edit Victim\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\" \r\n (click)=\"editVictimDetail(row)\">\r\n <i class=\"material-icons\">mode_edit</i>\r\n </button>\r\n </div>\r\n\r\n \r\n\r\n &nbsp;&nbsp; \r\n\r\n <div *ngIf=\"showCaseNote\">\r\n <button type=\"button\" matTooltip=\"CaseNote\" mat-raised-button color=\"primary\" \r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\" \r\n (click)=\"goToCaseNote(row.victimId)\"> \r\n <span class=\"glyphicon glyphicon-pencil\" ></span>&nbsp;Case Note\r\n </button> \r\n </div>\r\n &nbsp;&nbsp;\r\n \r\n <div *ngIf=\"showSafetyPlan\">\r\n <button type=\"button\" matTooltip=\"safety plan\" mat-raised-button color=\"primary\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\" \r\n (click)=\"goToSaftyPlan(row.victimId)\"> \r\n <span class=\"glyphicon glyphicon-pencil\" ></span>&nbsp;Safety Plan\r\n </button>\r\n </div>\r\n &nbsp;&nbsp;\r\n \r\n </mat-cell>\r\n </ng-container>\r\n\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns\" class=\"example-header-row\"></mat-header-row>\r\n <mat-row *matRowDef=\"let row; columns: displayedColumns\" class=\"example-row\"></mat-row>\r\n </mat-table>\r\n\r\n <mat-paginator #paginator [pageSize]=\"10\" [pageSizeOptions]=\"[5, 10, 25, 100]\"></mat-paginator> \r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n\r\n <div>\r\n <b>{{msg}}</b>\r\n </div>\r\n</div>", 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"] }] });
262
+ /** @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\">\r\n <app-victim-search-form\r\n (onSearch)=\"getVictimList($event)\">\r\n </app-victim-search-form>\r\n</div>\r\n\r\n<div *ngIf=\"showDetail\">\r\n <csmart-victim-detail [victimDetail]=\"victimDetail\" \r\n [staffId]=\"staffId\"\r\n [offenderId] =\"offenderId\"\r\n [isIntake]=\"isIntake\"\r\n (onSave)=\"save($event)\" \r\n (onCancel)=\"cancel()\" >\r\n</csmart-victim-detail>\r\n</div>\r\n<div class=\"main-container\">\r\n \r\n <div class=\"add-action\" *ngIf=\"showAdd\">\r\n <button mat-raised-button color=\"primary\" \r\n accessControl\r\n [accessControlConfig]=\"createAccessControlConfig\" \r\n (click)=\"addRecord()\">\r\n <mat-icon>add</mat-icon>\r\n Add Victim\r\n </button>\r\n &nbsp;&nbsp;\r\n\r\n <div *ngIf=\"isIntake\">\r\n <button \r\n mat-raised-button \r\n color=\"primary\" \r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\" \r\n (click)=\"saveIntake()\">\r\n Continue\r\n </button> \r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"showListFlag\">\r\n <mat-card id=\"divVictim\" >\r\n <mat-card-content >\r\n <mat-table #table [dataSource]=\"victimListDataSource\" >\r\n\r\n <ng-container matColumnDef=\"lastName\">\r\n <mat-header-cell *matHeaderCellDef>Victim Last Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.lastName}} </mat-cell>\r\n </ng-container>\r\n\r\n\r\n <ng-container matColumnDef=\"firstName\">\r\n <mat-header-cell *matHeaderCellDef >Victim First Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.firstName}} </mat-cell>\r\n </ng-container>\r\n \r\n <div *ngIf=\"showRelationshipColumn\">\r\n <ng-container matColumnDef=\"relationship\">\r\n <mat-header-cell *matHeaderCellDef >Relationship to Offender</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.relationship}} </mat-cell>\r\n </ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"showOffenderPhoneColumn\">\r\n <ng-container matColumnDef=\"homePhone\">\r\n <mat-header-cell *matHeaderCellDef >Phone Number</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > \r\n Home phone: {{formatPhoneNumber(row.homePhone)}}<br> \r\n Cell Phone: {{formatPhoneNumber(row.cellPhone)}}<br>\r\n Work Phone: {{formatPhoneNumber(row.workPhone)}} \r\n\r\n </mat-cell>\r\n </ng-container>\r\n </div>\r\n \r\n <div *ngIf=\"showOffenderNameColumn\">\r\n <ng-container matColumnDef=\"offenderName\">\r\n <mat-header-cell *matHeaderCellDef>Offender Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.offenderName}} </mat-cell>\r\n </ng-container>\r\n </div>\r\n \r\n <ng-container matColumnDef=\"victimId\">\r\n <mat-header-cell *matHeaderCellDef ></mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" >\r\n \r\n <!-- <div *ngIf=\"accessByModule\">\r\n <mat-checkbox></mat-checkbox>\r\n </div> -->\r\n \r\n <div *ngIf=\"showEdit\">\r\n <button class=\"edit-btn\" mat-icon-button color=\"primary\" matTooltip=\"View/Edit Victim\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\" \r\n (click)=\"editVictimDetail(row)\">\r\n <i class=\"material-icons\">mode_edit</i>\r\n </button>\r\n </div>\r\n\r\n \r\n\r\n &nbsp;&nbsp; \r\n\r\n <div *ngIf=\"showCaseNote\">\r\n <button type=\"button\" matTooltip=\"CaseNote\" mat-raised-button color=\"primary\" \r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\" \r\n (click)=\"goToCaseNote(row.victimId)\"> \r\n <span class=\"glyphicon glyphicon-pencil\" ></span>&nbsp;Case Note\r\n </button> \r\n </div>\r\n &nbsp;&nbsp;\r\n \r\n <div *ngIf=\"showSafetyPlan\">\r\n <button type=\"button\" matTooltip=\"safety plan\" mat-raised-button color=\"primary\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\" \r\n (click)=\"goToSaftyPlan(row.victimId)\"> \r\n <span class=\"glyphicon glyphicon-pencil\" ></span>&nbsp;Safety Plan\r\n </button>\r\n </div>\r\n &nbsp;&nbsp;\r\n \r\n </mat-cell>\r\n </ng-container>\r\n\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns\" class=\"example-header-row\"></mat-header-row>\r\n <mat-row *matRowDef=\"let row; columns: displayedColumns\" class=\"example-row\"></mat-row>\r\n </mat-table>\r\n\r\n <mat-paginator #paginator [pageSize]=\"10\" [pageSizeOptions]=\"[5, 10, 25, 100]\"></mat-paginator> \r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n\r\n <div>\r\n <b>{{msg}}</b>\r\n </div>\r\n</div>", 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"] }] });
311
263
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgcSmartVictimComponent, decorators: [{
312
264
  type: Component,
313
- args: [{ selector: "csmart-victim", template: "<div *ngIf=\"showSearchForm\">\r\n <app-victim-search-form\r\n (onSearch)=\"getVictimList($event)\">\r\n </app-victim-search-form>\r\n</div>\r\n\r\n<div *ngIf=\"showDetail\">\r\n <csmart-victim-detail [victimDetail]=\"victimDetail\" \r\n [staffId]=\"staffId\"\r\n [offenderId] =\"offenderId\"\r\n [isIntake]=\"isIntake\"\r\n (onSave)=\"save($event)\" \r\n (onCancel)=\"cancel()\" >\r\n</csmart-victim-detail>\r\n</div>\r\n<div class=\"main-container\">\r\n \r\n <div class=\"add-action\" *ngIf=\"showAdd\">\r\n <button mat-raised-button color=\"primary\" \r\n accessControl\r\n [accessControlConfig]=\"createAccessControlConfig\" \r\n (click)=\"addRecord()\">\r\n <mat-icon>add</mat-icon>\r\n Add Victim\r\n </button>\r\n &nbsp;&nbsp;\r\n\r\n <div *ngIf=\"isIntake\">\r\n <button \r\n mat-raised-button \r\n color=\"primary\" \r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\" \r\n (click)=\"saveIntake()\">\r\n Continue\r\n </button> \r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"showListFlag\">\r\n <mat-card id=\"divVictim\" >\r\n <mat-card-content >\r\n <mat-table #table [dataSource]=\"victimListDataSource\" >\r\n\r\n <ng-container matColumnDef=\"lastName\">\r\n <mat-header-cell *matHeaderCellDef>Victim Last Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.lastName}} </mat-cell>\r\n </ng-container>\r\n\r\n\r\n <ng-container matColumnDef=\"firstName\">\r\n <mat-header-cell *matHeaderCellDef >Victim First Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.firstName}} </mat-cell>\r\n </ng-container>\r\n \r\n <div *ngIf=\"showRelationshipColumn\">\r\n <ng-container matColumnDef=\"relationship\">\r\n <mat-header-cell *matHeaderCellDef >Relationship to Offender</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.relationship}} </mat-cell>\r\n </ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"showOffenderPhoneColumn\">\r\n <ng-container matColumnDef=\"homePhone\">\r\n <mat-header-cell *matHeaderCellDef >Phone Number</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{formatPhoneNumber(row.homePhone)}} </mat-cell>\r\n </ng-container>\r\n </div>\r\n \r\n <div *ngIf=\"showOffenderNameColumn\">\r\n <ng-container matColumnDef=\"offenderName\">\r\n <mat-header-cell *matHeaderCellDef>Offender Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.offenderName}} </mat-cell>\r\n </ng-container>\r\n </div>\r\n \r\n <ng-container matColumnDef=\"victimId\">\r\n <mat-header-cell *matHeaderCellDef ></mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" >\r\n \r\n <!-- <div *ngIf=\"accessByModule\">\r\n <mat-checkbox></mat-checkbox>\r\n </div> -->\r\n \r\n <div *ngIf=\"showEdit\">\r\n <button class=\"edit-btn\" mat-icon-button color=\"primary\" matTooltip=\"View/Edit Victim\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\" \r\n (click)=\"editVictimDetail(row)\">\r\n <i class=\"material-icons\">mode_edit</i>\r\n </button>\r\n </div>\r\n\r\n \r\n\r\n &nbsp;&nbsp; \r\n\r\n <div *ngIf=\"showCaseNote\">\r\n <button type=\"button\" matTooltip=\"CaseNote\" mat-raised-button color=\"primary\" \r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\" \r\n (click)=\"goToCaseNote(row.victimId)\"> \r\n <span class=\"glyphicon glyphicon-pencil\" ></span>&nbsp;Case Note\r\n </button> \r\n </div>\r\n &nbsp;&nbsp;\r\n \r\n <div *ngIf=\"showSafetyPlan\">\r\n <button type=\"button\" matTooltip=\"safety plan\" mat-raised-button color=\"primary\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\" \r\n (click)=\"goToSaftyPlan(row.victimId)\"> \r\n <span class=\"glyphicon glyphicon-pencil\" ></span>&nbsp;Safety Plan\r\n </button>\r\n </div>\r\n &nbsp;&nbsp;\r\n \r\n </mat-cell>\r\n </ng-container>\r\n\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns\" class=\"example-header-row\"></mat-header-row>\r\n <mat-row *matRowDef=\"let row; columns: displayedColumns\" class=\"example-row\"></mat-row>\r\n </mat-table>\r\n\r\n <mat-paginator #paginator [pageSize]=\"10\" [pageSizeOptions]=\"[5, 10, 25, 100]\"></mat-paginator> \r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n\r\n <div>\r\n <b>{{msg}}</b>\r\n </div>\r\n</div>", 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"] }]
265
+ args: [{ selector: "csmart-victim", template: "<div *ngIf=\"showSearchForm\">\r\n <app-victim-search-form\r\n (onSearch)=\"getVictimList($event)\">\r\n </app-victim-search-form>\r\n</div>\r\n\r\n<div *ngIf=\"showDetail\">\r\n <csmart-victim-detail [victimDetail]=\"victimDetail\" \r\n [staffId]=\"staffId\"\r\n [offenderId] =\"offenderId\"\r\n [isIntake]=\"isIntake\"\r\n (onSave)=\"save($event)\" \r\n (onCancel)=\"cancel()\" >\r\n</csmart-victim-detail>\r\n</div>\r\n<div class=\"main-container\">\r\n \r\n <div class=\"add-action\" *ngIf=\"showAdd\">\r\n <button mat-raised-button color=\"primary\" \r\n accessControl\r\n [accessControlConfig]=\"createAccessControlConfig\" \r\n (click)=\"addRecord()\">\r\n <mat-icon>add</mat-icon>\r\n Add Victim\r\n </button>\r\n &nbsp;&nbsp;\r\n\r\n <div *ngIf=\"isIntake\">\r\n <button \r\n mat-raised-button \r\n color=\"primary\" \r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\" \r\n (click)=\"saveIntake()\">\r\n Continue\r\n </button> \r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"showListFlag\">\r\n <mat-card id=\"divVictim\" >\r\n <mat-card-content >\r\n <mat-table #table [dataSource]=\"victimListDataSource\" >\r\n\r\n <ng-container matColumnDef=\"lastName\">\r\n <mat-header-cell *matHeaderCellDef>Victim Last Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.lastName}} </mat-cell>\r\n </ng-container>\r\n\r\n\r\n <ng-container matColumnDef=\"firstName\">\r\n <mat-header-cell *matHeaderCellDef >Victim First Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.firstName}} </mat-cell>\r\n </ng-container>\r\n \r\n <div *ngIf=\"showRelationshipColumn\">\r\n <ng-container matColumnDef=\"relationship\">\r\n <mat-header-cell *matHeaderCellDef >Relationship to Offender</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.relationship}} </mat-cell>\r\n </ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"showOffenderPhoneColumn\">\r\n <ng-container matColumnDef=\"homePhone\">\r\n <mat-header-cell *matHeaderCellDef >Phone Number</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > \r\n Home phone: {{formatPhoneNumber(row.homePhone)}}<br> \r\n Cell Phone: {{formatPhoneNumber(row.cellPhone)}}<br>\r\n Work Phone: {{formatPhoneNumber(row.workPhone)}} \r\n\r\n </mat-cell>\r\n </ng-container>\r\n </div>\r\n \r\n <div *ngIf=\"showOffenderNameColumn\">\r\n <ng-container matColumnDef=\"offenderName\">\r\n <mat-header-cell *matHeaderCellDef>Offender Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.offenderName}} </mat-cell>\r\n </ng-container>\r\n </div>\r\n \r\n <ng-container matColumnDef=\"victimId\">\r\n <mat-header-cell *matHeaderCellDef ></mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" >\r\n \r\n <!-- <div *ngIf=\"accessByModule\">\r\n <mat-checkbox></mat-checkbox>\r\n </div> -->\r\n \r\n <div *ngIf=\"showEdit\">\r\n <button class=\"edit-btn\" mat-icon-button color=\"primary\" matTooltip=\"View/Edit Victim\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\" \r\n (click)=\"editVictimDetail(row)\">\r\n <i class=\"material-icons\">mode_edit</i>\r\n </button>\r\n </div>\r\n\r\n \r\n\r\n &nbsp;&nbsp; \r\n\r\n <div *ngIf=\"showCaseNote\">\r\n <button type=\"button\" matTooltip=\"CaseNote\" mat-raised-button color=\"primary\" \r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\" \r\n (click)=\"goToCaseNote(row.victimId)\"> \r\n <span class=\"glyphicon glyphicon-pencil\" ></span>&nbsp;Case Note\r\n </button> \r\n </div>\r\n &nbsp;&nbsp;\r\n \r\n <div *ngIf=\"showSafetyPlan\">\r\n <button type=\"button\" matTooltip=\"safety plan\" mat-raised-button color=\"primary\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\" \r\n (click)=\"goToSaftyPlan(row.victimId)\"> \r\n <span class=\"glyphicon glyphicon-pencil\" ></span>&nbsp;Safety Plan\r\n </button>\r\n </div>\r\n &nbsp;&nbsp;\r\n \r\n </mat-cell>\r\n </ng-container>\r\n\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns\" class=\"example-header-row\"></mat-header-row>\r\n <mat-row *matRowDef=\"let row; columns: displayedColumns\" class=\"example-row\"></mat-row>\r\n </mat-table>\r\n\r\n <mat-paginator #paginator [pageSize]=\"10\" [pageSizeOptions]=\"[5, 10, 25, 100]\"></mat-paginator> \r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n\r\n <div>\r\n <b>{{msg}}</b>\r\n </div>\r\n</div>", 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"] }]
314
266
  }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.NgcSmartVictimService }, { type: i3.Router }, { type: i3.ActivatedRoute }, { type: i4.MatSnackBar }, { type: i5.IntakeServicesComponent }, { type: undefined, decorators: [{
315
267
  type: Inject,
316
268
  args: [SMART_WARRANT_URL]
@@ -354,4 +306,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
354
306
  type: ViewChild,
355
307
  args: [MatSort]
356
308
  }] } });
357
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmljdGltLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nYy1zbWFydC12aWN0aW0vc3JjL2xpYi9zbWFydC12aWN0aW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdjLXNtYXJ0LXZpY3RpbS9zcmMvbGliL3NtYXJ0LXZpY3RpbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFZLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBeUIsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxjQUFjLEVBQUMsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBaUMsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEYsT0FBTyxFQUlMLFVBQVUsR0FDWCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBa0IsZ0JBQWdCLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRyxtR0FBbUc7QUFFbkcsT0FBTyxFQUVMLFVBQVUsRUFDVix1QkFBdUIsR0FDeEIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBTTFELE1BQU0sT0FBTyx1QkFBdUI7SUFvQ2xDLFlBQ1Us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LElBQUk7c0JBQXZCLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5ULCBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkNoYW5nZXMsIFZpZXdDaGlsZCwgSW5wdXQsIE91dHB1dCwgQWZ0ZXJWaWV3SW5pdCwgSW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IE1hdFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYsIE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7XHJcbiAgU2VsZWN0ZWRPZmZlbmRlcixcclxuICBMb2dpblN0YWZmLFxyXG4gIFNtYXJ0QWNjZXNzQ29udHJvbENvbmZpZyxcclxuICBBY2Nlc3NUeXBlLFxyXG59IGZyb20gXCJAY3NtYXJ0L25nYy1zbWFydC1jb3JlXCI7XHJcbmltcG9ydCB7IE5nY1NtYXJ0VmljdGltU2VydmljZSB9IGZyb20gJy4vc21hcnQtdmljdGltLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbGVtZW50c1ZpY3RpbSwgVmljdGltTGlzdEZpbHRlciwgVmljdGltLCBTTUFSVF9XQVJSQU5UX1VSTCB9IGZyb20gJy4vc21hcnQtdmljdGltLm1vZGVsJztcclxuaW1wb3J0IHsgU21hcnRWaWN0aW1EZWxldGVDb25maXJtQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydC12aWN0aW0tZGVsZXRlLWNvbmZpcm0uY29tcG9uZW50JztcclxuLy9pbXBvcnQgeyBTbWFydFZpY3RpbURldGFpbENvbXBvbmVudCB9IGZyb20gJy4vc21hcnQtdmljdGltLWRldGFpbC9zbWFydC12aWN0aW0tZGV0YWlsLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQge1xyXG4gIEludGFrZVN0ZXBTdGF0dXNNb2RlbCxcclxuICBJbnRha2VTdGVwLFxyXG4gIEludGFrZVNlcnZpY2VzQ29tcG9uZW50LFxyXG59IGZyb20gJy4vaW50YWtlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNzbWFydC12aWN0aW1cIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3NtYXJ0LXZpY3RpbS5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9zbWFydC12aWN0aW0uY29tcG9uZW50LmNzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5nY1NtYXJ0VmljdGltQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIG9mZmVuZGVySWQ6IG51bWJlcjtcclxuICBASW5wdXQoKSBzdGFmZklkOiBudW1iZXI7XHJcbiAgQElucHV0KCkgc3RhZmZSb2xlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2hvd0Nhc2VOb3RlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2hvd1NhZmV0eVBsYW46IHN0cmluZztcclxuICAvL0BJbnB1dCgpIHNob3dBZGQ6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93QWRkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNob3dFZGl0OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2hvd1JlbGF0aW9uc2hpcENvbHVtbjogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzaG93T2ZmZW5kZXJOYW1lQ29sdW1uOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNob3dPZmZlbmRlclBob25lQ29sdW1uOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNob3dTZWFyY2hGb3JtOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGFjY2Vzc0J5TW9kdWxlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaW50YWtlRmxhZzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGFwcE1vZHVsZUlkID0gJyc7XHJcbiAgQElucHV0KCkgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlID0gbnVsbDtcclxuXHJcbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IpIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xyXG4gIEBWaWV3Q2hpbGQoTWF0U29ydCkgc29ydDogTWF0U29ydDtcclxuICAvLyBAVmlld0NoaWxkKFNtYXJ0VmljdGltRGV0YWlsQ29tcG9uZW50KSBjaGlsZDtcclxuXHJcbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW107XHJcbiAgdmljdGltczogVmljdGltW10gPSBbXTtcclxuICB2aWN0aW1EZXRhaWwgPSA8VmljdGltPnt9O1xyXG4gIHNob3dEZXRhaWwgPSBmYWxzZTtcclxuICB2aWN0aW1MaXN0RmlsdGVyOiBWaWN0aW1MaXN0RmlsdGVyID0gbmV3IFZpY3RpbUxpc3RGaWx0ZXIoKTtcclxuICB2aWN0aW1MaXN0RGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UoKTtcclxuICBkb1NwaW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93TGlzdEZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBtc2c6IHN0cmluZyA9IFwiXCI7XHJcbiAgaXNJbnRha2UgPSBmYWxzZTtcclxuXHJcbiAgdXBkYXRlQWNjZXNzQ29udHJvbENvbmZpZzogU21hcnRBY2Nlc3NDb250cm9sQ29uZmlnO1xyXG4gIGNyZWF0ZUFjY2Vzc0NvbnRyb2xDb25maWc6IFNtYXJ0QWNjZXNzQ29udHJvbENvbmZpZztcclxuICBkZWxldGVBY2Nlc3NDb250cm9sQ29uZmlnOiBTbWFydEFjY2Vzc0NvbnRyb2xDb25maWc7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSB2aWN0aW1TZXJ2aWNlOiBOZ2NTbWFydFZpY3RpbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHNuYWNrQmFyOiBNYXRTbmFja0JhcixcclxuICAgIHByaXZhdGUgaW50YWtlU2VydmljZTogSW50YWtlU2VydmljZXNDb21wb25lbnQsXHJcbiAgICBASW5qZWN0KFNNQVJUX1dBUlJBTlRfVVJMKSBwcml2YXRlIHNtYXJ0V2FycmFudFVybDogc3RyaW5nLFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogYW55XHJcbiAgKSB7fVxyXG5cclxuICAvLyBwcml2YXRlIG9uQ2hhbmdlKGZpbHRlcjogVmljdGltTGlzdEZpbHRlcikge1xyXG4gIC8vICAgY29uc29sZS5sb2coJ2ZpbHRlciBpbiBvbmNoYW5nZScpO1xyXG4gIC8vICAgY29uc29sZS5sb2coZmlsdGVyKTtcclxuICAvLyAgIHRoaXMuZ2V0VmljdGltTGlzdChmaWx0ZXIpO1xyXG4gIC8vIH1cclxuXHJcbiAgYXBwbHlGaWx0ZXIoZmlsdGVyVmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy52aWN0aW1MaXN0RGF0YVNvdXJjZS5maWx0ZXIgPSBmaWx0ZXJWYWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKTtcclxuICB9XHJcbiAgYWRkUmVjb3JkKCkge1xyXG4gICAgdGhpcy5zaG93RGV0YWlsID0gdHJ1ZTtcclxuICAgIHRoaXMuc2hvd0FkZCA9IGZhbHNlO1xyXG4gICAgdGhpcy52aWN0aW1EZXRhaWwgPSBudWxsO1xyXG4gICAgdGhpcy5zaG93TGlzdEZsYWcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGVkaXRWaWN0aW1EZXRhaWwocmVjb3JkKSB7XHJcbiAgICBjb25zb2xlLmxvZyhcInZpY3RpbSBlZGl0IHJlY29yZFwiKTtcclxuICAgIGNvbnNvbGUubG9nKHJlY29yZCk7XHJcbiAgICBjb25zb2xlLmxvZyhyZWNvcmQudmljdGltSWQpO1xyXG4gICAgdGhpcy52aWN0aW1EZXRhaWwgPSByZWNvcmQ7XHJcbiAgICB0aGlzLnNob3dEZXRhaWwgPSB0cnVlO1xyXG4gICAgdGhpcy5zaG93QWRkID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dMaXN0RmxhZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2F2ZShkZXRhaWw6IFZpY3RpbSkge1xyXG4gICAgdGhpcy5zaG93RGV0YWlsID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dBZGQgPSB0cnVlO1xyXG4gICAgdGhpcy5zaG93TGlzdEZsYWcgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsKCkge1xyXG4gICAgdGhpcy5zaG93RGV0YWlsID0gZmFsc2U7XHJcbiAgICB0aGlzLnZpY3RpbURldGFpbCA9IDxWaWN0aW0+e307XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xyXG4gICAgdGhpcy52aWN0aW1MaXN0RGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0O1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICAgdGhpcy51cGRhdGVBY2Nlc3NDb250cm9sQ29uZmlnID0ge1xyXG4gICAgICAgYWNjZXNzVHlwZTogQWNjZXNzVHlwZS5VUERBVEUsXHJcbiAgICAgICBhcHBNb2R1bGVJZDogdGhpcy5hcHBNb2R1bGVJZCxcclxuICAgICAgIHJvbGVJZDogbnVsbCxcclxuICAgICAgIHJvdXRlOiB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LFxyXG4gICAgIH07XHJcbiAgICAgdGhpcy5jcmVhdGVBY2Nlc3NDb250cm9sQ29uZmlnID0ge1xyXG4gICAgICAgYWNjZXNzVHlwZTogQWNjZXNzVHlwZS5DUkVBVEUsXHJcbiAgICAgICBhcHBNb2R1bGVJZDogdGhpcy5hcHBNb2R1bGVJZCxcclxuICAgICAgIHJvbGVJZDogbnVsbCxcclxuICAgICAgIHJvdXRlOiB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LFxyXG4gICAgIH07XHJcbiAgICAgdGhpcy5kZWxldGVBY2Nlc3NDb250cm9sQ29uZmlnID0ge1xyXG4gICAgICAgYWNjZXNzVHlwZTogQWNjZXNzVHlwZS5ERUxFVEUsXHJcbiAgICAgICBhcHBNb2R1bGVJZDogdGhpcy5hcHBNb2R1bGVJZCxcclxuICAgICAgIHJvbGVJZDogbnVsbCxcclxuICAgICAgIHJvdXRlOiB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LFxyXG4gICAgIH07XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHZhciBkYXRhID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhO1xyXG4gICAgdmFyIG15UGF0aCA9IHRoaXMucm91dGVyLnVybC5zbGljZSgtMTApO1xyXG5cclxuXHJcbiAgICBjb25zb2xlLmxvZyhcIm9mZmVuZGVyIGlkIGF0IHNtYXJ0LXZpY3RpbVwiKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMub2ZmZW5kZXJJZCk7XHJcbiAgICBjb25zb2xlLmxvZyhcInN0YWZmIGlkIGF0IHNtYXJ0LXZpY3RpbVwiKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc3RhZmZJZCk7XHJcbiAgICBjb25zb2xlLmxvZyhcImluc2FrZUZsYWcgYXQgc21hcnQtdmljdGltXCIpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5pbnRha2VGbGFnKTtcclxuICBcclxuXHJcbiAgICBjb25zb2xlLmxvZyhcInNtYXJ0LXZpY3RpbSBuZ09uSW5pdFwiKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuaW50YWtlRmxhZyk7XHJcbiAgICBjb25zb2xlLmxvZyhteVBhdGgpO1xyXG5cclxuICAgIGlmICh0aGlzLmludGFrZUZsYWcgPT0gXCJ0cnVlXCIpIHtcclxuICAgICAgdGhpcy5pc0ludGFrZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gW1wibGFzdE5hbWVcIiwgXCJmaXJzdE5hbWVcIl07XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnNob3dSZWxhdGlvbnNoaXBDb2x1bW4gPT0gdHJ1ZSB8fFxyXG4gICAgICBteVBhdGggPT0gXCJ2aWN0aW1MaXN0XCIgfHxcclxuICAgICAgbXlQYXRoID09IFwidmljdGltSG9tZVwiXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJyZWxhdGlvbnNoaXBcIik7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zaG93T2ZmZW5kZXJOYW1lQ29sdW1uID09IHRydWUpIHtcclxuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJvZmZlbmRlck5hbWVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnNob3dPZmZlbmRlclBob25lQ29sdW1uID09IHRydWUgfHxcclxuICAgICAgbXlQYXRoID09IFwidmljdGltTGlzdFwiIHx8XHJcbiAgICAgIG15UGF0aCA9PSBcInZpY3RpbUhvbWVcIlxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKFwiaG9tZVBob25lXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKFwidmljdGltSWRcIik7XHJcblxyXG4gICAgaWYgKHRoaXMuc2hvd1NlYXJjaEZvcm0gPT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLnNob3dMaXN0RmxhZyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnNvbGUubG9nKFwidGhpcy5zaG93U2VhcmNoRm9ybVwiKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc2hvd1NlYXJjaEZvcm0pO1xyXG4gICAgY29uc29sZS5sb2coXCJteVBhdGhcIik7XHJcbiAgICBjb25zb2xlLmxvZyhteVBhdGgpO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5zaG93U2VhcmNoRm9ybSA9PSBmYWxzZSB8fFxyXG4gICAgICBteVBhdGggPT0gXCJ2aWN0aW1MaXN0XCIgfHxcclxuICAgICAgbXlQYXRoID09IFwidmljdGltSG9tZVwiXHJcbiAgICApIHtcclxuICAgICAgdmFyIG15T2ZmZW5kZXJJZDtcclxuICAgICAgaWYgKHRoaXMub2ZmZW5kZXJJZCkge1xyXG4gICAgICAgIG15T2ZmZW5kZXJJZCA9IHRoaXMub2ZmZW5kZXJJZDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcImJhY2sgZnJvbSBwcmV2aW91cyBwYWdlXCIpO1xyXG4gICAgICAgIHRoaXMuc2hvd0FkZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zaG93UmVsYXRpb25zaGlwQ29sdW1uID0gdHJ1ZTtcclxuICAgICAgICAvL3RoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKFwicmVsYXRpb25zaGlwXCIpO1xyXG4gICAgICAgIHRoaXMuc2hvd09mZmVuZGVyUGhvbmVDb2x1bW4gPSB0cnVlO1xyXG4gICAgICAgIC8vIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKFwiaG9tZVBob25lXCIpO1xyXG4gICAgICAgIHRoaXMuYWNjZXNzQnlNb2R1bGUgPSBcInRydWVcIjtcclxuICAgICAgICB0aGlzLnNob3dFZGl0ID0gXCJ0cnVlXCI7XHJcbiAgICAgICAgdGhpcy5zaG93Q2FzZU5vdGUgPSBcInRydWVcIjtcclxuICAgICAgICB0aGlzLnNob3dTYWZldHlQbGFuID0gXCJ0cnVlXCI7XHJcblxyXG4gICAgICAgIG15T2ZmZW5kZXJJZCA9IGRhdGEuc2VsZWN0ZWRPZmZlbmRlci5vZmZlbmRlcklkO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB2aWN0aW1MaXN0RmlsdGVyOiBWaWN0aW1MaXN0RmlsdGVyID0ge1xyXG4gICAgICAgIG9mZmVuZGVySWQ6IG15T2ZmZW5kZXJJZCxcclxuICAgICAgICBsYXN0TmFtZTogbnVsbCxcclxuICAgICAgICBmaXJzdE5hbWU6IG51bGwsXHJcbiAgICAgICAgcGRpZDogbnVsbCxcclxuICAgICAgICBiaXJ0aERhdGU6IG51bGwsXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBjb25zb2xlLmxvZyhcInZpY3RpbUxpc3RGaWx0ZXIgaW4gc21hci12aWN0aW0gY29tcG9uZW5ldFwiKTtcclxuICAgICAgY29uc29sZS5sb2codmljdGltTGlzdEZpbHRlcik7XHJcblxyXG4gICAgICB0aGlzLnZpY3RpbVNlcnZpY2VcclxuICAgICAgICAuZ2V0VmljdGltTGlzdEJ5RmlsdGVyKHZpY3RpbUxpc3RGaWx0ZXIpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoZGF0YTogVmljdGltW10pID0+IHtcclxuICAgICAgICAgIHRoaXMudmljdGltcyA9IGRhdGE7XHJcblxyXG4gICAgICAgICAgLy9zaG93IHBob25lIG51bWJlciBvbiB0aGUgdmljdGltIGxpc3QgaWYgYW55IHBob25lIG51bWJlciBleGlzdC5cclxuICAgICAgICAgIGRhdGEuZm9yRWFjaCgoZCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZC5ob21lUGhvbmUgPT0gbnVsbCB8fCBkLmhvbWVQaG9uZSA9PSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgaWYgKGQuY2VsbFBob25lICE9IG51bGwpe1xyXG4gICAgICAgICAgICAgICAgaWYgKGQuY2VsbFBob25lICE9IFwiXCIpe1xyXG4gICAgICAgICAgICAgICAgZC5ob21lUGhvbmUgPSBkLmNlbGxQaG9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBkLmhvbWVQaG9uZSA9IGQud29ya1Bob25lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgZC5ob21lUGhvbmUgPSBkLndvcmtQaG9uZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIHRoaXMudmljdGltTGlzdERhdGFTb3VyY2UuZGF0YSA9IGRhdGE7XHJcblxyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJ2aWN0aW0gZGF0YSBhdCBsaW5lIDI0NVwiKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMudmljdGltcyk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcInNob3dMaXN0RmxhZ1wiKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuc2hvd0xpc3RGbGFnKTtcclxuICAgICAgICAgIHRoaXMuc2hvd0xpc3RGbGFnID0gdHJ1ZTtcclxuICAgICAgICAgIGlmIChkYXRhLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMubXNnID0gXCJObyBSZWNvcmQgRm91bmQhXCI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmxvZyhcImZpbmQgZmlsdGVyXCIpO1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLnZpY3RpbUxpc3RGaWx0ZXIpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuc2hvd0xpc3RGbGFnID09PSB0cnVlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudmljdGltTGlzdEZpbHRlciAhPSBudWxsKSB7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbVNlcnZpY2VcclxuICAgICAgICAgICAgLmdldFZpY3RpbUxpc3RCeUZpbHRlcih0aGlzLnZpY3RpbUxpc3RGaWx0ZXIpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IFZpY3RpbVtdKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy52aWN0aW1zID0gZGF0YTtcclxuXHJcblxyXG4gICAgICAgICAgICAgIC8vc2hvdyBwaG9uZSBudW1iZXIgb24gdGhlIHZpY3RpbSBsaXN0IGlmIGFueSBwaG9uZSBudW1iZXIgZXhpc3QuXHJcbiAgICAgICAgICBkYXRhLmZvckVhY2goKGQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGQuaG9tZVBob25lID09IG51bGwgfHwgZC5ob21lUGhvbmUgPT0gXCJcIikge1xyXG4gICAgICAgICAgICAgIGlmIChkLmNlbGxQaG9uZSAhPSBudWxsKXtcclxuICAgICAgICAgICAgICAgIGlmIChkLmNlbGxQaG9uZSAhPSBcIlwiKXtcclxuICAgICAgICAgICAgICAgIGQuaG9tZVBob25lID0gZC5jZWxsUGhvbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgZC5ob21lUGhvbmUgPSBkLndvcmtQaG9uZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIGQuaG9tZVBob25lID0gZC53b3JrUGhvbmU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy52aWN0aW1MaXN0RGF0YVNvdXJjZS5kYXRhID0gZGF0YTtcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInZpY3RpbSBkYXRhIGF0IGxpbmUgMjc5XCIpO1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbi8vIHBob25lIG51bWJlciBmb3JtYXQgb24gdGhlIHZpY3RpbSBsaXN0XHJcbiAgZm9ybWF0UGhvbmVOdW1iZXIocGhvbmVOdW1iZXJTdHJpbmcpIHtcclxuICAgIGlmICghcGhvbmVOdW1iZXJTdHJpbmcpIHJldHVybiBcIlwiO1xyXG4gICAgdmFyIGNsZWFuZWQgPSAoXCJcIiArIHBob25lTnVtYmVyU3RyaW5nKS5yZXBsYWNlKC9cXEQvZywgXCJcIik7XHJcbiAgICB2YXIgbWF0Y2ggPSBjbGVhbmVkLm1hdGNoKC9eKFxcZHszfSkoXFxkezN9KShcXGR7NH0pJC8pO1xyXG4gICAgaWYgKG1hdGNoKSB7XHJcbiAgICAgIHJldHVybiBcIihcIiArIG1hdGNoWzFdICsgXCIpIFwiICsgbWF0Y2hbMl0gKyBcIi1cIiArIG1hdGNoWzNdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBzYXZlSW50YWtlKCkge1xyXG4gICAgaWYgKCF0aGlzLmlzSW50YWtlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGludGFrZVN0ZXAgPSA8SW50YWtlU3RlcFN0YXR1c01vZGVsPntcclxuICAgICAgaW50YWtlU3RlcElkOiBJbnRha2VTdGVwLlZpY3RpbUluZm9ybWF0aW9uLFxyXG4gICAgICBvZmZlbmRlcklkOiB0aGlzLm9mZmVuZGVySWQsXHJcbiAgICAgIG1vZGlmaWVkQnk6IHRoaXMuc3RhZmZJZCxcclxuICAgIH07XHJcbiAgICB0aGlzLmludGFrZVNlcnZpY2VcclxuICAgICAgLnVwZGF0ZUludGFrZVN0ZXBzKHRoaXMub2ZmZW5kZXJJZCwgaW50YWtlU3RlcClcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJzYXZlIGludGFrZSBzdGVwLlwiKTtcclxuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oXCJTdGF0dXMgU2F2ZWQuXCIsIFwiXCIsIHtcclxuICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvd2FycmFudCAnXSwgeyBxdWVyeVBhcmFtczogeyBpbnRha2U6IDEgfSB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5kb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gYCR7dGhpcy5zbWFydFdhcnJhbnRVcmx9L3dhcnJhbnRgO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGdvVG9DYXNlTm90ZSh2aWN0aW1JZDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCJjYXNlbm90ZVwiLCB2aWN0aW1JZCwgdGhpcy5vZmZlbmRlcklkXSk7XHJcbiAgfVxyXG5cclxuICBnb1RvU2FmdHlQbGFuKHZpY3RpbUlkOiBudW1iZXIpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcInNhZnR5UGxhblwiLCB2aWN0aW1JZF0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmljdGltTGlzdChmaWx0ZXI6IFZpY3RpbUxpc3RGaWx0ZXIpIHtcclxuICAgIHRoaXMudmljdGltTGlzdEZpbHRlciA9IGZpbHRlcjtcclxuICAgIGNvbnNvbGUubG9nKFwidGhpcy52aWN0aW1MaXN0RmlsdGVyIGluc2lkZSBnZXRWaWN0aW1MaXN0XCIpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy52aWN0aW1MaXN0RmlsdGVyKTtcclxuICAgIHRoaXMuZG9TcGluID0gdHJ1ZTtcclxuICAgIHRoaXMudmljdGltU2VydmljZS5nZXRWaWN0aW1MaXN0QnlGaWx0ZXIoZmlsdGVyKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhOiBWaWN0aW1bXSkgPT4ge1xyXG4gICAgICAgdGhpcy5kb1NwaW4gPSAhdGhpcy5kb1NwaW47XHJcblxyXG4gICAgICAgIGlmIChkYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuc2hvd0xpc3RGbGFnID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAvL3Nob3cgcGhvbmUgbnVtYmVyIG9uIHRoZSB2aWN0aW0gbGlzdCBpZiBhbnkgcGhvbmUgbnVtYmVyIGV4aXN0LlxyXG4gICAgICAgICAgZGF0YS5mb3JFYWNoKChkKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChkLmhvbWVQaG9uZSA9PSBudWxsIHx8IGQuaG9tZVBob25lID09IFwiXCIpIHtcclxuICAgICAgICAgICAgICBpZiAoZC5jZWxsUGhvbmUgIT0gbnVsbCl7XHJcbiAgICAgICAgICAgICAgICBpZiAoZC5jZWxsUGhvbmUgIT0gXCJcIil7XHJcbiAgICAgICAgICAgICAgICBkLmhvbWVQaG9uZSA9IGQuY2VsbFBob25lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIGQuaG9tZVBob25lID0gZC53b3JrUGhvbmU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBkLmhvbWVQaG9uZSA9IGQud29ya1Bob25lO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgdGhpcy52aWN0aW1MaXN0RGF0YVNvdXJjZS5kYXRhID0gZGF0YTtcclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubXNnID0gXCJObyByZWNvcmQgZm91bmQhXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kb1NwaW4gPSAhdGhpcy5kb1NwaW47XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJzaG93U2VhcmNoRm9ybVwiPlxyXG4gICAgPGFwcC12aWN0aW0tc2VhcmNoLWZvcm1cclxuICAgIChvblNlYXJjaCk9XCJnZXRWaWN0aW1MaXN0KCRldmVudClcIj5cclxuICAgIDwvYXBwLXZpY3RpbS1zZWFyY2gtZm9ybT5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwic2hvd0RldGFpbFwiPlxyXG4gIDxjc21hcnQtdmljdGltLWRldGFpbCBbdmljdGltRGV0YWlsXT1cInZpY3RpbURldGFpbFwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3RhZmZJZF09XCJzdGFmZklkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW29mZmVuZGVySWRdID1cIm9mZmVuZGVySWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaXNJbnRha2VdPVwiaXNJbnRha2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAob25TYXZlKT1cInNhdmUoJGV2ZW50KVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAob25DYW5jZWwpPVwiY2FuY2VsKClcIiA+XHJcbjwvY3NtYXJ0LXZpY3RpbS1kZXRhaWw+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwibWFpbi1jb250YWluZXJcIj5cclxuICAgIFxyXG4gICAgPGRpdiBjbGFzcz1cImFkZC1hY3Rpb25cIiAqbmdJZj1cInNob3dBZGRcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFxyXG4gICAgICAgICAgIGFjY2Vzc0NvbnRyb2xcclxuICAgICAgICAgIFthY2Nlc3NDb250cm9sQ29uZmlnXT1cImNyZWF0ZUFjY2Vzc0NvbnRyb2xDb25maWdcIiAgXHJcbiAgICAgICAgICAoY2xpY2spPVwiYWRkUmVjb3JkKClcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgQWRkIFZpY3RpbVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICZuYnNwOyZuYnNwO1xyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJpc0ludGFrZVwiPlxyXG4gICAgICAgIDxidXR0b24gXHJcbiAgICAgICAgbWF0LXJhaXNlZC1idXR0b24gXHJcbiAgICAgICAgY29sb3I9XCJwcmltYXJ5XCIgXHJcbiAgICAgICAgYWNjZXNzQ29udHJvbFxyXG4gICAgICAgIFthY2Nlc3NDb250cm9sQ29uZmlnXT1cInVwZGF0ZUFjY2Vzc0NvbnRyb2xDb25maWdcIiAgICAgICAgICBcclxuICAgICAgICAoY2xpY2spPVwic2F2ZUludGFrZSgpXCI+XHJcbiAgICAgICAgQ29udGludWVcclxuICAgICAgICA8L2J1dHRvbj4gXHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuICAgPGRpdiAqbmdJZj1cInNob3dMaXN0RmxhZ1wiPlxyXG4gICAgPG1hdC1jYXJkIGlkPVwiZGl2VmljdGltXCIgPlxyXG4gICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQgPlxyXG4gICAgICAgICAgICA8bWF0LXRhYmxlICN0YWJsZSBbZGF0YVNvdXJjZV09XCJ2aWN0aW1MaXN0RGF0YVNvdXJjZVwiID5cclxuXHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImxhc3ROYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5WaWN0aW0gTGFzdCBOYW1lPC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiID4ge3tyb3cubGFzdE5hbWV9fSAgPC9tYXQtY2VsbD5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImZpcnN0TmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmID5WaWN0aW0gRmlyc3QgTmFtZTwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgPiB7e3Jvdy5maXJzdE5hbWV9fSA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCJzaG93UmVsYXRpb25zaGlwQ29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJyZWxhdGlvbnNoaXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiA+UmVsYXRpb25zaGlwIHRvIE9mZmVuZGVyPC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiA+IHt7cm93LnJlbGF0aW9uc2hpcH19IDwvbWF0LWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2ICAqbmdJZj1cInNob3dPZmZlbmRlclBob25lQ29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJob21lUGhvbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiA+UGhvbmUgTnVtYmVyPC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiA+IHt7Zm9ybWF0UGhvbmVOdW1iZXIocm93LmhvbWVQaG9uZSl9fSA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwic2hvd09mZmVuZGVyTmFtZUNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwib2ZmZW5kZXJOYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPk9mZmVuZGVyIE5hbWU8L21hdC1oZWFkZXItY2VsbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiA+IHt7cm93Lm9mZmVuZGVyTmFtZX19IDwvbWF0LWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidmljdGltSWRcIj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiA+PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiAgKm5nSWY9XCJhY2Nlc3NCeU1vZHVsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveD48L21hdC1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCJzaG93RWRpdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImVkaXQtYnRuXCIgIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAgbWF0VG9vbHRpcD1cIlZpZXcvRWRpdCBWaWN0aW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc0NvbnRyb2xcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWNjZXNzQ29udHJvbENvbmZpZ109XCJ1cGRhdGVBY2Nlc3NDb250cm9sQ29uZmlnXCIgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0VmljdGltRGV0YWlsKHJvdylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+bW9kZV9lZGl0PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsgXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICAqbmdJZj1cInNob3dDYXNlTm90ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0VG9vbHRpcD1cIkNhc2VOb3RlXCIgIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzQ29udHJvbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjY2Vzc0NvbnRyb2xDb25maWddPVwidXBkYXRlQWNjZXNzQ29udHJvbENvbmZpZ1wiICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1RvQ2FzZU5vdGUocm93LnZpY3RpbUlkKVwiPiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnbHlwaGljb24gZ2x5cGhpY29uLXBlbmNpbFwiID48L3NwYW4+Jm5ic3A7Q2FzZSBOb3RlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICAqbmdJZj1cInNob3dTYWZldHlQbGFuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICBtYXRUb29sdGlwPVwic2FmZXR5IHBsYW5cIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzQ29udHJvbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2FjY2Vzc0NvbnRyb2xDb25maWddPVwidXBkYXRlQWNjZXNzQ29udHJvbENvbmZpZ1wiICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1RvU2FmdHlQbGFuKHJvdy52aWN0aW1JZClcIj4gICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdseXBoaWNvbiBnbHlwaGljb24tcGVuY2lsXCIgPjwvc3Bhbj4mbmJzcDtTYWZldHkgUGxhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwO1xyXG4gICBcclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCIgY2xhc3M9XCJleGFtcGxlLWhlYWRlci1yb3dcIj48L21hdC1oZWFkZXItcm93PlxyXG4gICAgICAgICAgICAgICAgPG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnNcIiBjbGFzcz1cImV4YW1wbGUtcm93XCI+PC9tYXQtcm93PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtdGFibGU+XHJcblxyXG4gICAgICAgICAgICAgIDxtYXQtcGFnaW5hdG9yICNwYWdpbmF0b3IgW3BhZ2VTaXplXT1cIjEwXCIgW3BhZ2VTaXplT3B0aW9uc109XCJbNSwgMTAsIDI1LCAxMDBdXCI+PC9tYXQtcGFnaW5hdG9yPiBcclxuICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgIDwvbWF0LWNhcmQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2PlxyXG4gICAgICAgIDxiPnt7bXNnfX08L2I+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
309
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmljdGltLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nYy1zbWFydC12aWN0aW0vc3JjL2xpYi9zbWFydC12aWN0aW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdjLXNtYXJ0LXZpY3RpbS9zcmMvbGliL3NtYXJ0LXZpY3RpbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFZLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBeUIsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxjQUFjLEVBQUMsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBaUMsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEYsT0FBTyxFQUlMLFVBQVUsR0FDWCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBa0IsZ0JBQWdCLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRyxtR0FBbUc7QUFFbkcsT0FBTyxFQUVMLFVBQVUsRUFDVix1QkFBdUIsR0FDeEIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBTTFELE1BQU0sT0FBTyx1QkFBdUI7SUFvQ2xDLFlBQ1Us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QUFROzJIQTVDUCx1QkFBdUIsZ2xCQWtCdkIsWUFBWSx1RUFDWixPQUFPLHFFQ2hEcEIsdXZNQXlJTTsyRkQ1R08sdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLGVBQWU7OzBCQStDdEIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLFFBQVE7NENBM0NULFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFbUIsU0FBUztzQkFBakMsU0FBUzt1QkFBQyxZQUFZO2dCQUNILElBQUk7c0JBQXZCLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5ULCBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkNoYW5nZXMsIFZpZXdDaGlsZCwgSW5wdXQsIE91dHB1dCwgQWZ0ZXJWaWV3SW5pdCwgSW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IE1hdFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYsIE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7XHJcbiAgU2VsZWN0ZWRPZmZlbmRlcixcclxuICBMb2dpblN0YWZmLFxyXG4gIFNtYXJ0QWNjZXNzQ29udHJvbENvbmZpZyxcclxuICBBY2Nlc3NUeXBlLFxyXG59IGZyb20gXCJAY3NtYXJ0L25nYy1zbWFydC1jb3JlXCI7XHJcbmltcG9ydCB7IE5nY1NtYXJ0VmljdGltU2VydmljZSB9IGZyb20gJy4vc21hcnQtdmljdGltLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbGVtZW50c1ZpY3RpbSwgVmljdGltTGlzdEZpbHRlciwgVmljdGltLCBTTUFSVF9XQVJSQU5UX1VSTCB9IGZyb20gJy4vc21hcnQtdmljdGltLm1vZGVsJztcclxuaW1wb3J0IHsgU21hcnRWaWN0aW1EZWxldGVDb25maXJtQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydC12aWN0aW0tZGVsZXRlLWNvbmZpcm0uY29tcG9uZW50JztcclxuLy9pbXBvcnQgeyBTbWFydFZpY3RpbURldGFpbENvbXBvbmVudCB9IGZyb20gJy4vc21hcnQtdmljdGltLWRldGFpbC9zbWFydC12aWN0aW0tZGV0YWlsLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQge1xyXG4gIEludGFrZVN0ZXBTdGF0dXNNb2RlbCxcclxuICBJbnRha2VTdGVwLFxyXG4gIEludGFrZVNlcnZpY2VzQ29tcG9uZW50LFxyXG59IGZyb20gJy4vaW50YWtlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNzbWFydC12aWN0aW1cIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3NtYXJ0LXZpY3RpbS5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9zbWFydC12aWN0aW0uY29tcG9uZW50LmNzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5nY1NtYXJ0VmljdGltQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIG9mZmVuZGVySWQ6IG51bWJlcjtcclxuICBASW5wdXQoKSBzdGFmZklkOiBudW1iZXI7XHJcbiAgQElucHV0KCkgc3RhZmZSb2xlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2hvd0Nhc2VOb3RlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2hvd1NhZmV0eVBsYW46IHN0cmluZztcclxuICAvL0BJbnB1dCgpIHNob3dBZGQ6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93QWRkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNob3dFZGl0OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2hvd1JlbGF0aW9uc2hpcENvbHVtbjogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzaG93T2ZmZW5kZXJOYW1lQ29sdW1uOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNob3dPZmZlbmRlclBob25lQ29sdW1uOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNob3dTZWFyY2hGb3JtOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGFjY2Vzc0J5TW9kdWxlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaW50YWtlRmxhZzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGFwcE1vZHVsZUlkID0gJyc7XHJcbiAgQElucHV0KCkgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlID0gbnVsbDtcclxuXHJcbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IpIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xyXG4gIEBWaWV3Q2hpbGQoTWF0U29ydCkgc29ydDogTWF0U29ydDtcclxuICAvLyBAVmlld0NoaWxkKFNtYXJ0VmljdGltRGV0YWlsQ29tcG9uZW50KSBjaGlsZDtcclxuXHJcbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW107XHJcbiAgdmljdGltczogVmljdGltW10gPSBbXTtcclxuICB2aWN0aW1EZXRhaWwgPSA8VmljdGltPnt9O1xyXG4gIHNob3dEZXRhaWwgPSBmYWxzZTtcclxuICB2aWN0aW1MaXN0RmlsdGVyOiBWaWN0aW1MaXN0RmlsdGVyID0gbmV3IFZpY3RpbUxpc3RGaWx0ZXIoKTtcclxuICB2aWN0aW1MaXN0RGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UoKTtcclxuICBkb1NwaW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93TGlzdEZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBtc2c6IHN0cmluZyA9IFwiXCI7XHJcbiAgaXNJbnRha2UgPSBmYWxzZTtcclxuXHJcbiAgdXBkYXRlQWNjZXNzQ29udHJvbENvbmZpZzogU21hcnRBY2Nlc3NDb250cm9sQ29uZmlnO1xyXG4gIGNyZWF0ZUFjY2Vzc0NvbnRyb2xDb25maWc6IFNtYXJ0QWNjZXNzQ29udHJvbENvbmZpZztcclxuICBkZWxldGVBY2Nlc3NDb250cm9sQ29uZmlnOiBTbWFydEFjY2Vzc0NvbnRyb2xDb25maWc7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSB2aWN0aW1TZXJ2aWNlOiBOZ2NTbWFydFZpY3RpbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHNuYWNrQmFyOiBNYXRTbmFja0JhcixcclxuICAgIHByaXZhdGUgaW50YWtlU2VydmljZTogSW50YWtlU2VydmljZXNDb21wb25lbnQsXHJcbiAgICBASW5qZWN0KFNNQVJUX1dBUlJBTlRfVVJMKSBwcml2YXRlIHNtYXJ0V2FycmFudFVybDogc3RyaW5nLFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogYW55XHJcbiAgKSB7fVxyXG5cclxuICAvLyBwcml2YXRlIG9uQ2hhbmdlKGZpbHRlcjogVmljdGltTGlzdEZpbHRlcikge1xyXG4gIC8vICAgY29uc29sZS5sb2coJ2ZpbHRlciBpbiBvbmNoYW5nZScpO1xyXG4gIC8vICAgY29uc29sZS5sb2coZmlsdGVyKTtcclxuICAvLyAgIHRoaXMuZ2V0VmljdGltTGlzdChmaWx0ZXIpO1xyXG4gIC8vIH1cclxuXHJcbiAgYXBwbHlGaWx0ZXIoZmlsdGVyVmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy52aWN0aW1MaXN0RGF0YVNvdXJjZS5maWx0ZXIgPSBmaWx0ZXJWYWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKTtcclxuICB9XHJcbiAgYWRkUmVjb3JkKCkge1xyXG4gICAgdGhpcy5zaG93RGV0YWlsID0gdHJ1ZTtcclxuICAgIHRoaXMuc2hvd0FkZCA9IGZhbHNlO1xyXG4gICAgdGhpcy52aWN0aW1EZXRhaWwgPSBudWxsO1xyXG4gICAgdGhpcy5zaG93TGlzdEZsYWcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGVkaXRWaWN0aW1EZXRhaWwocmVjb3JkKSB7XHJcbiAgICBjb25zb2xlLmxvZyhcInZpY3RpbSBlZGl0IHJlY29yZFwiKTtcclxuICAgIGNvbnNvbGUubG9nKHJlY29yZCk7XHJcbiAgICBjb25zb2xlLmxvZyhyZWNvcmQudmljdGltSWQpO1xyXG4gICAgdGhpcy52aWN0aW1EZXRhaWwgPSByZWNvcmQ7XHJcbiAgICB0aGlzLnNob3dEZXRhaWwgPSB0cnVlO1xyXG4gICAgdGhpcy5zaG93QWRkID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dMaXN0RmxhZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2F2ZShkZXRhaWw6IFZpY3RpbSkge1xyXG4gICAgdGhpcy5zaG93RGV0YWlsID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dBZGQgPSB0cnVlO1xyXG4gICAgdGhpcy5zaG93TGlzdEZsYWcgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsKCkge1xyXG4gICAgdGhpcy5zaG93RGV0YWlsID0gZmFsc2U7XHJcbiAgICB0aGlzLnZpY3RpbURldGFpbCA9IDxWaWN0aW0+e307XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xyXG4gICAgdGhpcy52aWN0aW1MaXN0RGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0O1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICAgdGhpcy51cGRhdGVBY2Nlc3NDb250cm9sQ29uZmlnID0ge1xyXG4gICAgICAgYWNjZXNzVHlwZTogQWNjZXNzVHlwZS5VUERBVEUsXHJcbiAgICAgICBhcHBNb2R1bGVJZDogdGhpcy5hcHBNb2R1bGVJZCxcclxuICAgICAgIHJvbGVJZDogbnVsbCxcclxuICAgICAgIHJvdXRlOiB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LFxyXG4gICAgIH07XHJcbiAgICAgdGhpcy5jcmVhdGVBY2Nlc3NDb250cm9sQ29uZmlnID0ge1xyXG4gICAgICAgYWNjZXNzVHlwZTogQWNjZXNzVHlwZS5DUkVBVEUsXHJcbiAgICAgICBhcHBNb2R1bGVJZDogdGhpcy5hcHBNb2R1bGVJZCxcclxuICAgICAgIHJvbGVJZDogbnVsbCxcclxuICAgICAgIHJvdXRlOiB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LFxyXG4gICAgIH07XHJcbiAgICAgdGhpcy5kZWxldGVBY2Nlc3NDb250cm9sQ29uZmlnID0ge1xyXG4gICAgICAgYWNjZXNzVHlwZTogQWNjZXNzVHlwZS5ERUxFVEUsXHJcbiAgICAgICBhcHBNb2R1bGVJZDogdGhpcy5hcHBNb2R1bGVJZCxcclxuICAgICAgIHJvbGVJZDogbnVsbCxcclxuICAgICAgIHJvdXRlOiB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LFxyXG4gICAgIH07XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHZhciBkYXRhID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhO1xyXG4gICAgdmFyIG15UGF0aCA9IHRoaXMucm91dGVyLnVybC5zbGljZSgtMTApO1xyXG5cclxuXHJcbiAgICBjb25zb2xlLmxvZyhcIm9mZmVuZGVyIGlkIGF0IHNtYXJ0LXZpY3RpbVwiKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMub2ZmZW5kZXJJZCk7XHJcbiAgICBjb25zb2xlLmxvZyhcInN0YWZmIGlkIGF0IHNtYXJ0LXZpY3RpbVwiKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc3RhZmZJZCk7XHJcbiAgICBjb25zb2xlLmxvZyhcImluc2FrZUZsYWcgYXQgc21hcnQtdmljdGltXCIpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5pbnRha2VGbGFnKTtcclxuICBcclxuXHJcbiAgICBjb25zb2xlLmxvZyhcInNtYXJ0LXZpY3RpbSBuZ09uSW5pdFwiKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuaW50YWtlRmxhZyk7XHJcbiAgICBjb25zb2xlLmxvZyhteVBhdGgpO1xyXG5cclxuICAgIGlmICh0aGlzLmludGFrZUZsYWcgPT0gXCJ0cnVlXCIpIHtcclxuICAgICAgdGhpcy5pc0ludGFrZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gW1wibGFzdE5hbWVcIiwgXCJmaXJzdE5hbWVcIl07XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnNob3dSZWxhdGlvbnNoaXBDb2x1bW4gPT0gdHJ1ZSB8fFxyXG4gICAgICBteVBhdGggPT0gXCJ2aWN0aW1MaXN0XCIgfHxcclxuICAgICAgbXlQYXRoID09IFwidmljdGltSG9tZVwiXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJyZWxhdGlvbnNoaXBcIik7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zaG93T2ZmZW5kZXJOYW1lQ29sdW1uID09IHRydWUpIHtcclxuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJvZmZlbmRlck5hbWVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnNob3dPZmZlbmRlclBob25lQ29sdW1uID09IHRydWUgfHxcclxuICAgICAgbXlQYXRoID09IFwidmljdGltTGlzdFwiIHx8XHJcbiAgICAgIG15UGF0aCA9PSBcInZpY3RpbUhvbWVcIlxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKFwiaG9tZVBob25lXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKFwidmljdGltSWRcIik7XHJcblxyXG4gICAgaWYgKHRoaXMuc2hvd1NlYXJjaEZvcm0gPT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLnNob3dMaXN0RmxhZyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnNvbGUubG9nKFwidGhpcy5zaG93U2VhcmNoRm9ybVwiKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc2hvd1NlYXJjaEZvcm0pO1xyXG4gICAgY29uc29sZS5sb2coXCJteVBhdGhcIik7XHJcbiAgICBjb25zb2xlLmxvZyhteVBhdGgpO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5zaG93U2VhcmNoRm9ybSA9PSBmYWxzZSB8fFxyXG4gICAgICBteVBhdGggPT0gXCJ2aWN0aW1MaXN0XCIgfHxcclxuICAgICAgbXlQYXRoID09IFwidmljdGltSG9tZVwiXHJcbiAgICApIHtcclxuICAgICAgdmFyIG15T2ZmZW5kZXJJZDtcclxuICAgICAgaWYgKHRoaXMub2ZmZW5kZXJJZCkge1xyXG4gICAgICAgIG15T2ZmZW5kZXJJZCA9IHRoaXMub2ZmZW5kZXJJZDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcImJhY2sgZnJvbSBwcmV2aW91cyBwYWdlXCIpO1xyXG4gICAgICAgIHRoaXMuc2hvd0FkZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zaG93UmVsYXRpb25zaGlwQ29sdW1uID0gdHJ1ZTtcclxuICAgICAgICAvL3RoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKFwicmVsYXRpb25zaGlwXCIpO1xyXG4gICAgICAgIHRoaXMuc2hvd09mZmVuZGVyUGhvbmVDb2x1bW4gPSB0cnVlO1xyXG4gICAgICAgIC8vIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKFwiaG9tZVBob25lXCIpO1xyXG4gICAgICAgIHRoaXMuYWNjZXNzQnlNb2R1bGUgPSBcInRydWVcIjtcclxuICAgICAgICB0aGlzLnNob3dFZGl0ID0gXCJ0cnVlXCI7XHJcbiAgICAgICAgdGhpcy5zaG93Q2FzZU5vdGUgPSBcInRydWVcIjtcclxuICAgICAgICB0aGlzLnNob3dTYWZldHlQbGFuID0gXCJ0cnVlXCI7XHJcblxyXG4gICAgICAgIG15T2ZmZW5kZXJJZCA9IGRhdGEuc2VsZWN0ZWRPZmZlbmRlci5vZmZlbmRlcklkO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB2aWN0aW1MaXN0RmlsdGVyOiBWaWN0aW1MaXN0RmlsdGVyID0ge1xyXG4gICAgICAgIG9mZmVuZGVySWQ6IG15T2ZmZW5kZXJJZCxcclxuICAgICAgICBsYXN0TmFtZTogbnVsbCxcclxuICAgICAgICBmaXJzdE5hbWU6IG51bGwsXHJcbiAgICAgICAgcGRpZDogbnVsbCxcclxuICAgICAgICBiaXJ0aERhdGU6IG51bGwsXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBjb25zb2xlLmxvZyhcInZpY3RpbUxpc3RGaWx0ZXIgaW4gc21hci12aWN0aW0gY29tcG9uZW5ldFwiKTtcclxuICAgICAgY29uc29sZS5sb2codmljdGltTGlzdEZpbHRlcik7XHJcblxyXG4gICAgICB0aGlzLnZpY3RpbVNlcnZpY2VcclxuICAgICAgICAuZ2V0VmljdGltTGlzdEJ5RmlsdGVyKHZpY3RpbUxpc3RGaWx0ZXIpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoZGF0YTogVmljdGltW10pID0+IHtcclxuICAgICAgICAgIHRoaXMudmljdGltcyA9IGRhdGE7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlLmRhdGEgPSBkYXRhO1xyXG5cclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwidmljdGltIGRhdGEgYXQgbGluZSAyNDVcIik7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnZpY3RpbXMpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJzaG93TGlzdEZsYWdcIik7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnNob3dMaXN0RmxhZyk7XHJcbiAgICAgICAgICB0aGlzLnNob3dMaXN0RmxhZyA9IHRydWU7XHJcbiAgICAgICAgICBpZiAoZGF0YS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLm1zZyA9IFwiTm8gUmVjb3JkIEZvdW5kIVwiO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS5sb2coXCJmaW5kIGZpbHRlclwiKTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy52aWN0aW1MaXN0RmlsdGVyKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnNob3dMaXN0RmxhZyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIGlmICh0aGlzLnZpY3RpbUxpc3RGaWx0ZXIgIT0gbnVsbCkge1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1TZXJ2aWNlXHJcbiAgICAgICAgICAgIC5nZXRWaWN0aW1MaXN0QnlGaWx0ZXIodGhpcy52aWN0aW1MaXN0RmlsdGVyKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhOiBWaWN0aW1bXSkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMudmljdGltcyA9IGRhdGE7XHJcbiAgICAgICAgICAgICAgdGhpcy52aWN0aW1MaXN0RGF0YVNvdXJjZS5kYXRhID0gZGF0YTtcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInZpY3RpbSBkYXRhIGF0IGxpbmUgMjc5XCIpO1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbi8vIHBob25lIG51bWJlciBmb3JtYXQgb24gdGhlIHZpY3RpbSBsaXN0XHJcbiAgZm9ybWF0UGhvbmVOdW1iZXIocGhvbmVOdW1iZXJTdHJpbmcpIHtcclxuICAgIGlmICghcGhvbmVOdW1iZXJTdHJpbmcpIHJldHVybiBcIlwiO1xyXG4gICAgdmFyIGNsZWFuZWQgPSAoXCJcIiArIHBob25lTnVtYmVyU3RyaW5nKS5yZXBsYWNlKC9cXEQvZywgXCJcIik7XHJcbiAgICB2YXIgbWF0Y2ggPSBjbGVhbmVkLm1hdGNoKC9eKFxcZHszfSkoXFxkezN9KShcXGR7NH0pJC8pO1xyXG4gICAgaWYgKG1hdGNoKSB7XHJcbiAgICAgIHJldHVybiBcIihcIiArIG1hdGNoWzFdICsgXCIpIFwiICsgbWF0Y2hbMl0gKyBcIi1cIiArIG1hdGNoWzNdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBzYXZlSW50YWtlKCkge1xyXG4gICAgaWYgKCF0aGlzLmlzSW50YWtlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGludGFrZVN0ZXAgPSA8SW50YWtlU3RlcFN0YXR1c01vZGVsPntcclxuICAgICAgaW50YWtlU3RlcElkOiBJbnRha2VTdGVwLlZpY3RpbUluZm9ybWF0aW9uLFxyXG4gICAgICBvZmZlbmRlcklkOiB0aGlzLm9mZmVuZGVySWQsXHJcbiAgICAgIG1vZGlmaWVkQnk6IHRoaXMuc3RhZmZJZCxcclxuICAgIH07XHJcbiAgICB0aGlzLmludGFrZVNlcnZpY2VcclxuICAgICAgLnVwZGF0ZUludGFrZVN0ZXBzKHRoaXMub2ZmZW5kZXJJZCwgaW50YWtlU3RlcClcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJzYXZlIGludGFrZSBzdGVwLlwiKTtcclxuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oXCJTdGF0dXMgU2F2ZWQuXCIsIFwiXCIsIHtcclxuICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvd2FycmFudCAnXSwgeyBxdWVyeVBhcmFtczogeyBpbnRha2U6IDEgfSB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5kb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gYCR7dGhpcy5zbWFydFdhcnJhbnRVcmx9L3dhcnJhbnRgO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGdvVG9DYXNlTm90ZSh2aWN0aW1JZDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCJjYXNlbm90ZVwiLCB2aWN0aW1JZCwgdGhpcy5vZmZlbmRlcklkXSk7XHJcbiAgfVxyXG5cclxuICBnb1RvU2FmdHlQbGFuKHZpY3RpbUlkOiBudW1iZXIpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcInNhZnR5UGxhblwiLCB2aWN0aW1JZF0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmljdGltTGlzdChmaWx0ZXI6IFZpY3RpbUxpc3RGaWx0ZXIpIHtcclxuICAgIHRoaXMudmljdGltTGlzdEZpbHRlciA9IGZpbHRlcjtcclxuICAgIGNvbnNvbGUubG9nKFwidGhpcy52aWN0aW1MaXN0RmlsdGVyIGluc2lkZSBnZXRWaWN0aW1MaXN0XCIpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy52aWN0aW1MaXN0RmlsdGVyKTtcclxuICAgIHRoaXMuZG9TcGluID0gdHJ1ZTtcclxuICAgIHRoaXMudmljdGltU2VydmljZS5nZXRWaWN0aW1MaXN0QnlGaWx0ZXIoZmlsdGVyKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhOiBWaWN0aW1bXSkgPT4ge1xyXG4gICAgICAgdGhpcy5kb1NwaW4gPSAhdGhpcy5kb1NwaW47XHJcblxyXG4gICAgICAgIGlmIChkYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuc2hvd0xpc3RGbGFnID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudmljdGltTGlzdERhdGFTb3VyY2UuZGF0YSA9IGRhdGE7XHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1zZyA9IFwiTm8gcmVjb3JkIGZvdW5kIVwiO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMuZG9TcGluID0gIXRoaXMuZG9TcGluO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwic2hvd1NlYXJjaEZvcm1cIj5cclxuICAgIDxhcHAtdmljdGltLXNlYXJjaC1mb3JtXHJcbiAgICAob25TZWFyY2gpPVwiZ2V0VmljdGltTGlzdCgkZXZlbnQpXCI+XHJcbiAgICA8L2FwcC12aWN0aW0tc2VhcmNoLWZvcm0+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cInNob3dEZXRhaWxcIj5cclxuICA8Y3NtYXJ0LXZpY3RpbS1kZXRhaWwgW3ZpY3RpbURldGFpbF09XCJ2aWN0aW1EZXRhaWxcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0YWZmSWRdPVwic3RhZmZJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtvZmZlbmRlcklkXSA9XCJvZmZlbmRlcklkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2lzSW50YWtlXT1cImlzSW50YWtlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKG9uU2F2ZSk9XCJzYXZlKCRldmVudClcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2FuY2VsKT1cImNhbmNlbCgpXCIgPlxyXG48L2NzbWFydC12aWN0aW0tZGV0YWlsPlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cIm1haW4tY29udGFpbmVyXCI+XHJcbiAgICBcclxuICAgIDxkaXYgY2xhc3M9XCJhZGQtYWN0aW9uXCIgKm5nSWY9XCJzaG93QWRkXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBcclxuICAgICAgICAgICBhY2Nlc3NDb250cm9sXHJcbiAgICAgICAgICBbYWNjZXNzQ29udHJvbENvbmZpZ109XCJjcmVhdGVBY2Nlc3NDb250cm9sQ29uZmlnXCIgIFxyXG4gICAgICAgICAgKGNsaWNrKT1cImFkZFJlY29yZCgpXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cclxuICAgICAgICAgIEFkZCBWaWN0aW1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAmbmJzcDsmbmJzcDtcclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwiaXNJbnRha2VcIj5cclxuICAgICAgICA8YnV0dG9uIFxyXG4gICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uIFxyXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiIFxyXG4gICAgICAgIGFjY2Vzc0NvbnRyb2xcclxuICAgICAgICBbYWNjZXNzQ29udHJvbENvbmZpZ109XCJ1cGRhdGVBY2Nlc3NDb250cm9sQ29uZmlnXCIgICAgICAgICAgXHJcbiAgICAgICAgKGNsaWNrKT1cInNhdmVJbnRha2UoKVwiPlxyXG4gICAgICAgIENvbnRpbnVlXHJcbiAgICAgICAgPC9idXR0b24+IFxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgIDxkaXYgKm5nSWY9XCJzaG93TGlzdEZsYWdcIj5cclxuICAgIDxtYXQtY2FyZCBpZD1cImRpdlZpY3RpbVwiID5cclxuICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50ID5cclxuICAgICAgICAgICAgPG1hdC10YWJsZSAjdGFibGUgW2RhdGFTb3VyY2VdPVwidmljdGltTGlzdERhdGFTb3VyY2VcIiA+XHJcblxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJsYXN0TmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+VmljdGltIExhc3QgTmFtZTwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiA+IHt7cm93Lmxhc3ROYW1lfX0gIDwvbWF0LWNlbGw+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJmaXJzdE5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiA+VmljdGltIEZpcnN0IE5hbWU8L21hdC1oZWFkZXItY2VsbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiID4ge3tyb3cuZmlyc3ROYW1lfX0gPC9tYXQtY2VsbD5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwic2hvd1JlbGF0aW9uc2hpcENvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicmVsYXRpb25zaGlwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgPlJlbGF0aW9uc2hpcCB0byBPZmZlbmRlcjwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgPiB7e3Jvdy5yZWxhdGlvbnNoaXB9fSA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCJzaG93T2ZmZW5kZXJQaG9uZUNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaG9tZVBob25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgPlBob25lIE51bWJlcjwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgSG9tZSBwaG9uZToge3tmb3JtYXRQaG9uZU51bWJlcihyb3cuaG9tZVBob25lKX19PGJyPiAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIENlbGwgUGhvbmU6IHt7Zm9ybWF0UGhvbmVOdW1iZXIocm93LmNlbGxQaG9uZSl9fTxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgV29yayBQaG9uZToge3tmb3JtYXRQaG9uZU51bWJlcihyb3cud29ya1Bob25lKX19IFxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2VsbD5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8ZGl2ICAqbmdJZj1cInNob3dPZmZlbmRlck5hbWVDb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIm9mZmVuZGVyTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5PZmZlbmRlciBOYW1lPC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgPiB7e3Jvdy5vZmZlbmRlck5hbWV9fSA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInZpY3RpbUlkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgPjwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgICpuZ0lmPVwiYWNjZXNzQnlNb2R1bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3g+PC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwic2hvd0VkaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJlZGl0LWJ0blwiICBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgIG1hdFRvb2x0aXA9XCJWaWV3L0VkaXQgVmljdGltXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NDb250cm9sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjY2Vzc0NvbnRyb2xDb25maWddPVwidXBkYXRlQWNjZXNzQ29udHJvbENvbmZpZ1wiICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdFZpY3RpbURldGFpbChyb3cpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPm1vZGVfZWRpdDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7IFxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCJzaG93Q2FzZU5vdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdFRvb2x0aXA9XCJDYXNlTm90ZVwiICBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc0NvbnRyb2xcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY2Nlc3NDb250cm9sQ29uZmlnXT1cInVwZGF0ZUFjY2Vzc0NvbnRyb2xDb25maWdcIiAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub0Nhc2VOb3RlKHJvdy52aWN0aW1JZClcIj4gICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ2x5cGhpY29uIGdseXBoaWNvbi1wZW5jaWxcIiA+PC9zcGFuPiZuYnNwO0Nhc2UgTm90ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCJzaG93U2FmZXR5UGxhblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAgbWF0VG9vbHRpcD1cInNhZmV0eSBwbGFuXCIgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc0NvbnRyb2xcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFthY2Nlc3NDb250cm9sQ29uZmlnXT1cInVwZGF0ZUFjY2Vzc0NvbnRyb2xDb25maWdcIiAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub1NhZnR5UGxhbihyb3cudmljdGltSWQpXCI+ICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnbHlwaGljb24gZ2x5cGhpY29uLXBlbmNpbFwiID48L3NwYW4+Jm5ic3A7U2FmZXR5IFBsYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDtcclxuICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2VsbD5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiIGNsYXNzPVwiZXhhbXBsZS1oZWFkZXItcm93XCI+PC9tYXQtaGVhZGVyLXJvdz5cclxuICAgICAgICAgICAgICAgIDxtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zXCIgY2xhc3M9XCJleGFtcGxlLXJvd1wiPjwvbWF0LXJvdz5cclxuICAgICAgICAgICAgICAgIDwvbWF0LXRhYmxlPlxyXG5cclxuICAgICAgICAgICAgICA8bWF0LXBhZ2luYXRvciAjcGFnaW5hdG9yIFtwYWdlU2l6ZV09XCIxMFwiIFtwYWdlU2l6ZU9wdGlvbnNdPVwiWzUsIDEwLCAyNSwgMTAwXVwiPjwvbWF0LXBhZ2luYXRvcj4gXHJcbiAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICA8L21hdC1jYXJkPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdj5cclxuICAgICAgICA8Yj57e21zZ319PC9iPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -130,4 +130,4 @@ export class Victim {
130
130
  this.liveWithOffenderFlag = liveWithOffenderFlag;
131
131
  }
132
132
  }
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmljdGltLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdjLXNtYXJ0LXZpY3RpbS9zcmMvbGliL3NtYXJ0LXZpY3RpbS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUFTLDRCQUE0QixDQUFDLENBQUM7QUFDbkcsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQVMsMEJBQTBCLENBQUMsQ0FBQztBQUMvRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBUywwQkFBMEIsQ0FBQyxDQUFDO0FBQy9GLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUFTLHVCQUF1QixDQUFDLENBQUM7QUFhckYsTUFBTSxPQUFPLGdCQUFnQjtDQVE1QjtBQUlELE1BQU0sT0FBTyxjQUFjO0lBQ3ZCLFlBQW1CLGdCQUF3QixFQUVoQyxRQUFnQixFQUVoQixTQUFpQixFQUVqQixRQUFnQixFQUVoQixRQUFnQixFQUVoQixTQUFpQixFQUVqQixXQUFvQixFQUVwQixTQUFpQixFQUVqQixTQUFpQixFQUVqQixTQUFpQixFQUVqQixLQUFhLEVBRWIsVUFBa0I7UUF0QlYscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFRO1FBRWhDLGFBQVEsR0FBUixRQUFRLENBQVE7UUFFaEIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUVqQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBRWhCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFFaEIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUVqQixnQkFBVyxHQUFYLFdBQVcsQ0FBUztRQUVwQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBRWpCLGNBQVMsR0FBVCxTQUFTLENB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QkFBZ0IsQ0FBbUI7UUFDbkMsbUJBQWMsR0FBZCxjQUFjLENBQWlCO1FBRS9CLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBUztRQUM5Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQVM7SUFDcEMsQ0FBQztDQUNSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcblxyXG5leHBvcnQgY29uc3QgU01BUlRfT0ZGRU5ERVJfU0VSVklDRV9VUkwgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignc21hcnQgb2ZmZW5kZXIgc2VydmljZSB1cmwnKTtcclxuZXhwb3J0IGNvbnN0IFNNQVJUX0xPT0tVUF9TRVJWSUNFX1VSTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdzbWFydCBsb29rdXAgc2VydmljZSB1cmwnKTtcclxuZXhwb3J0IGNvbnN0IFNNQVJUX1ZJQ1RJTV9TRVJWSUNFX1VSTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdzbWFydCB2aWN0aW0gc2VydmljZSB1cmwnKTtcclxuZXhwb3J0IGNvbnN0IFNNQVJUX1dBUlJBTlRfVVJMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ3NtYXJ0IHdhcnJhbnQgd2ViIHVybCcpO1xyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRWxlbWVudHNWaWN0aW0ge1xyXG4gICAgdmljdGltSWQ6IHN0cmluZztcclxuICAgIHZpY3RpbVR5cGU6IHN0cmluZztcclxuICAgIHZpY3RpbVByb3ZpZGVyOiBzdHJpbmc7XHJcbiAgICB2aWN0aW1Qb2xpY3lIb2xkZXI6IHN0cmluZztcclxuICAgIHN0YXJ0RGF0ZTogc3RyaW5nO1xyXG4gICAgZW5kRGF0ZTogc3RyaW5nO1xyXG4gICAgaXNBY3RpdmU6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBWaWN0aW1MaXN0RmlsdGVyIHtcclxuIFxyXG4gICAgb2ZmZW5kZXJJZDogbnVtYmVyO1xyXG4gICAgbGFzdE5hbWU6IHN0cmluZztcclxuICAgIGZpcnN0TmFtZTogc3RyaW5nO1xyXG4gICAgcGRpZDogc3RyaW5nO1xyXG4gICAgYmlydGhEYXRlOiBEYXRlO1xyXG4gIFxyXG59XHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBWaWN0aW1BZHZvY2F0ZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdmljdGltQWR2b2NhdGVJZDogbnVtYmVyLFxyXG5cclxuICAgICAgICBwdWJsaWMgbGFzdE5hbWU6IHN0cmluZyxcclxuXHJcbiAgICAgICAgcHVibGljIGZpcnN0TmFtZTogc3RyaW5nLFxyXG5cclxuICAgICAgICBwdWJsaWMgcHJlZml4SWQ6IHN0cmluZyxcclxuXHJcbiAgICAgICAgcHVibGljIHN1ZmZpeElkOiBzdHJpbmcsXHJcblxyXG4gICAgICAgIHB1YmxpYyBhZGRyZXNzSWQ6IG51bWJlcixcclxuXHJcbiAgICAgICAgcHVibGljIG5vUGhvbmVGbGFnOiBib29sZWFuLFxyXG5cclxuICAgICAgICBwdWJsaWMgaG9tZVBob25lOiBzdHJpbmcsXHJcblxyXG4gICAgICAgIHB1YmxpYyB3b3JrUGhvbmU6IHN0cmluZyxcclxuXHJcbiAgICAgICAgcHVibGljIGNlbGxQaG9uZTogc3RyaW5nLFxyXG5cclxuICAgICAgICBwdWJsaWMgZW1haWw6IHN0cmluZyxcclxuXHJcbiAgICAgICAgcHVibGljIG1vZGlmaWVkQnk6IG51bWJlclxyXG5cclxuICAgICAgIFxyXG4pIHsgfVxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFZpY3RpbVdlYXBvblVzZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgIC8vIHB1YmxpYyB2aWN0aW1XZWFwb25Vc2VJZDogbnVtYmVyLFxyXG5cclxuICAgICAgICBwdWJsaWMgdmljdGltSWQ6IG51bWJlcixcclxuXHJcbiAgICAgICAgcHVibGljIHdlYXBvblR5cGVJZDogc3RyaW5nLFxyXG5cclxuICAgICAgICBwdWJsaWMgb3RoZXJXZWFwb246IHN0cmluZyxcclxuXHJcbiAgICAgICAgcHVibGljIG1vZGlmaWVkQnk6IG51bWJlclxyXG5cclxuICAgICAgICApIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVmljdGltRHJ1Z1VzZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICAvL3B1YmxpYyB2aWN0aW1EcnVnVXNlSWQ6IG51bWJlcixcclxuXHJcbiAgICAgICAgcHVibGljIHZpY3RpbUlkOiBudW1iZXIsXHJcblxyXG4gICAgICAgIHB1YmxpYyBkcnVnVHlwZUlkOiBzdHJpbmcsXHJcblxyXG4gICAgICAgIHB1YmxpYyBvdGhlckRydWc6IHN0cmluZyxcclxuXHJcbiAgICAgICAgcHVibGljIG1vZGlmaWVkQnk6IG51bWJlclxyXG5cclxuICAgICkgeyB9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBWaWN0aW1TdXBwb3J0IHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgLy8gcHVibGljIHZpY3RpbVN1cHBvcnRJZDogbnVtYmVyLFxyXG5cclxuICAgICAgICBwdWJsaWMgdmljdGltSWQ6IG51bWJlcixcclxuXHJcbiAgICAgICAgcHVibGljIHZpY3RpbVN1cHBvcnRUeXBlSWQ6IHN0cmluZyxcclxuXHJcbiAgICAgICAgcHVibGljIG1vZGlmaWVkQnk6IG51bWJlclxyXG5cclxuICAgICAgKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFZpY3RpbUd1YXJkaWFuIHtcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB2aWN0aW1HdWFyZGlhbklkOiBudW1iZXIsXHJcblxyXG4gICAgICAgIHB1YmxpYyBsYXN0TmFtZTogc3RyaW5nLFxyXG5cclxuICAgICAgICBwdWJsaWMgZmlyc3ROYW1lOiBzdHJpbmcsXHJcblxyXG4gICAgICAgIHB1YmxpYyBwcmVmaXhJZDogc3RyaW5nLFxyXG5cclxuICAgICAgICBwdWJsaWMgc3VmZml4SWQ6IHN0cmluZyxcclxuXHJcbiAgICAgICAgcHVibGljIGJpcnRoRGF0ZTogc3RyaW5nLFxyXG5cclxuICAgICAgICBwdWJsaWMgYWRkcmVzc0lkOiBudW1iZXIsXHJcblxyXG4gICAgICAgIHB1YmxpYyBub1Bob25lRmxhZzogYm9vbGVhbixcclxuXHJcbiAgICAgICAgcHVibGljIGhvbWVQaG9uZTogc3RyaW5nLFxyXG5cclxuICAgICAgICBwdWJsaWMgd29ya1Bob25lOiBzdHJpbmcsXHJcblxyXG4gICAgICAgIHB1YmxpYyBjZWxsUGhvbmU6IHN0cmluZyxcclxuXHJcbiAgICAgICAgcHVibGljIGVtYWlsOiBzdHJpbmcsXHJcblxyXG4gICAgICAgIHB1YmxpYyBtb2RpZmllZEJ5OiBudW1iZXJcclxuICAgICAgICBcclxuICAgICAgICBcclxuXHJcbiAgICAgICApIHsgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENhc2VOb3RlIHtcclxuICAgIHZpY3RpbUlkOiBudW1iZXI7XHJcbiAgICB2aWN0aW1DYXNlTm90ZUlkOiBudW1iZXI7XHJcbiAgICBjYXNlTm90ZURhdGU6IERhdGU7XHJcbiAgICBjb250YWN0VHlwZUlkOiBzdHJpbmc7XHJcbiAgICBjb250YWN0VHlwZTogc3RyaW5nO1xyXG4gICAgdmljdGltQ29udGFjdFB1cnBvc2VJZDogc3RyaW5nO1xyXG4gICAgdmljdGltQ29udGFjdFB1cnBvc2U6IHN0cmluZztcclxuICAgIGNvbW1lbnQ6IHN0cmluZztcclxuICAgIG1vZGlmaWVkQnk6IG51bWJlcjtcclxuICAgIHZpY3RpbUZpcnN0TmFtZTogc3RyaW5nO1xyXG4gICAgdmljdGltTGFzdE5hbWU6IHN0cmluZztcclxuICBcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb250YWN0IHtcclxuICAgIHZpY3RpbUlkOiBudW1iZXI7XHJcbiAgICB2aWN0aW1Db250YWN0SWQ6IG51bWJlcjtcclxuICAgIGNvbnRhY3REYXRlOiBEYXRlO1xyXG4gICAgdmljdGltQ29udGFjdE1ldGhvZElkOiBzdHJpbmc7XHJcbiAgICBjb250YWN0TWV0aG9kOiBzdHJpbmc7XHJcbiAgICBjb250YWN0ZWRCeTogbnVtYmVyO1xyXG4gICAgY29udGFjdGVkQnlOYW1lOiBzdHJpbmc7XHJcbiAgICBuZXh0Q29udGFjdERhdGU6IERhdGU7XHJcbiAgICBjb21tZW50OiBzdHJpbmc7XHJcbiAgICBtb2RpZmllZEJ5OiBudW1iZXI7XHJcblxyXG4gIFxyXG59XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBWaWN0aW1TYWZldHlQbGFuIHtcclxuICAgIHZpY3RpbUlkOiBudW1iZXI7XHJcbiAgICBmdWxsTmFtZTogc3RyaW5nO1xyXG4gICAgdmljdGltU2VydmljZUlkOiBudW1iZXI7XHJcbiAgICBnb2FsOnN0cmluZztcclxuICAgIGNvbW1lbnQ6IHN0cmluZztcclxuICAgIG1vZGlmaWVkQnk6IG51bWJlcjtcclxuICAgIHZpY3RpbVNlcnZpY2VTdGF0dXNJZDogc3RyaW5nO1xyXG4gICAgc3RhdHVzOiBzdHJpbmc7XHJcbiAgICBzdGFydERhdGU6IERhdGU7XHJcbiAgICB2VmljdGltU2VydmljZURldGFpbHM6IFZpY3RpbVNlcnZpY2VEZXRhaWxbXTtcclxuICAgIHZpY3RpbU5hbWU6IFN0cmluZztcclxuICAgIFxyXG4gIFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFZpY3RpbVNlcnZpY2VEZXRhaWx7XHJcbiAgICB2aWN0aW1TZXJ2aWNlSWQ6IG51bWJlcjtcclxuICAgIHZpY3RpbVNlcnZpY2VEZXRhaWxJZDogbnVtYmVyO1xyXG4gICAgdmljdGltU2VydmljZVR5cGVJZDogc3RyaW5nO1xyXG4gICAgdmljdGltUHJvZ3JhbVByb3ZpZGVySWQ6IHN0cmluZztcclxuICAgIHZpY3RpbVByb2dyYW1Qcm92aWRlcjogc3RyaW5nO1xyXG4gICAgbW9kaWZpZWRCeTogbnVtYmVyO1xyXG5cclxuXHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBWaWN0aW1TZXJ2aWNlU3RhdHVzSGlzdG9yeXtcclxuXHJcbiAgICB2aWN0aW1TZXJ2aWNlU3RhdHVzSGlzdG9yeUlkOiBudW1iZXI7XHJcbiAgICB2aWN0aW1TZXJ2aWNlSWQ6IHN0cmluZztcclxuICAgIHZpY3RpbVNlcnZpY2VTdGF0dXNJZDogc3RyaW5nO1xyXG4gICAgc3RhcnREYXRlOiBEYXRlO1xyXG4gICAgY29tbWVudDogc3RyaW5nO1xyXG4gICAgbW9kaWZpZWRCeTogbnVtYmVyO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSAgVmljdGltU2VydmljZVR5cGVQcm9ncmFtUHJvdmlkZXJNb2RlbCB7XHJcbiAgICB2aWN0aW1TZXJ2aWNlVHlwZVByb2dyYW1Qcm92aWRlcklkOiBudW1iZXI7IFxyXG4gICAgdmljdGltU2VydmljZVR5cGU6IHN0cmluZztcclxuICAgIHZpY3RpbVByb2dyYW1Qcm92aWRlcklkOiBzdHJpbmc7XHJcbiAgICB2aWN0aW1TZXJ2aWNlVHlwZUlkOnN0cmluZztcclxuICAgIHZpY3RpbVByb2dyYW1Qcm92aWRlcjogc3RyaW5nO1xyXG4gIH1cclxuICBcclxuICBleHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyTGlzdENvbGxlY3Rpb25Nb2RlbHtcclxuICAgIGdyb3VwSWQ6c3RyaW5nO1xyXG4gICAgaXNEaXNwbGF5OmJvb2xlYW47XHJcbiAgICBjb2xsZWN0aW9uOlZpY3RpbVNlcnZpY2VUeXBlUHJvZ3JhbVByb3ZpZGVyTW9kZWxbXTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgZXhwb3J0IGludGVyZmFjZSBQcm92aWRlcnNEaWFsb2dEYXRhIHtcclxuICAgIC8vaWVwQWN0aW9uOiBJZXBBY3Rpb247XHJcbiAgICBzZXJ2aWNlVHlwZTtcclxuICAgIHNlcnZpY2VUeXBlSWQ7XHJcbiAgICBwcm92aWRlckNvbGxlY3Rpb25zOiBbXTtcclxuICB9XHJcblxyXG5cclxuICBleHBvcnQgY2xhc3MgVmljdGltIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyB2aWN0aW1JZDogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyBvZmZlbmRlcklkOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIHVuZGVyU3VwZXJ2aXNpb25GbGFnOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIHZpY3RpbU9mZmVuZGVyUmVsYXRpb25zaGlwVHlwZUlkOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGxhc3ROYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGZpcnN0TmFtZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBtaWRkbGVOYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIHByZWZpeElkOiBzdHJpbmcgfCBudWxsLFxyXG4gICAgICAgIHB1YmxpYyBzdWZmaXhJZDogc3RyaW5nIHwgbnVsbCxcclxuICAgICAgICBwdWJsaWMgYmlydGhEYXRlOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGdlbmRlckNvZGU6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgaG9tZVBob25lOiBzdHJpbmcgfCBudWxsLFxyXG4gICAgICAgIHB1YmxpYyB3b3JrUGhvbmU6IHN0cmluZyB8IG51bGwsXHJcbiAgICAgICAgcHVibGljIGNlbGxQaG9uZTogc3RyaW5nIHwgbnVsbCxcclxuICAgICAgICBwdWJsaWMgZW1haWw6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgYWRkcmVzc0lkOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIG1pbm9yRmxhZzogYm9vbGVhbixcclxuICAgICAgICBwdWJsaWMgdmljdGltQWR2b2NhdGVGbGFnOiBzdHJpbmcsXHJcblxyXG4gICAgICAgIHB1YmxpYyBndWFyZGlhbkZpcnN0TmFtZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBndWFyZGlhbkxhc3ROYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGd1YXJkaWFuUHJlZml4SWQ6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgZ3VhcmRpYW5TdWZmaXhJZDogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBndWFyZGlhbk5vUGhvbmVGbGFnOiBib29sZWFuLFxyXG4gICAgICAgIHB1YmxpYyBndWFyZGlhbkhvbWVQaG9uZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBndWFyZGlhbldvcmtQaG9uZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBndWFyZGlhbkNlbGxQaG9uZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBndWFyZGlhbkVtYWlsOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGd1YXJkaWFuQWRkcmVzc0lkOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIGd1YXJkaWFuQmlydGhEYXRlOiBzdHJpbmcsXHJcblxyXG4gICAgICAgIHB1YmxpYyBhZHZvY2F0ZUZpcnN0TmFtZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBhZHZvY2F0ZUxhc3ROYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGFkdm9jYXRlUHJlZml4SWQ6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgYWR2b2NhdGVTdWZmaXhJZDogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBhZHZvY2F0ZU5vUGhvbmVGbGFnOiBib29sZWFuLFxyXG4gICAgICAgIHB1YmxpYyBhZHZvY2F0ZUhvbWVQaG9uZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBhZHZvY2F0ZVdvcmtQaG9uZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBhZHZvY2F0ZUNlbGxQaG9uZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBhZHZvY2F0ZUVtYWlsOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGFkdm9jYXRlQWRkcmVzc0lkOiBudW1iZXIsXHJcblxyXG4gICAgICAgIHB1YmxpYyBlbWVyZ2VuY3lDb250YWN0OiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGVtZXJnZW5jeUNvbnRhY3RQaG9uZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBjb21tb25DaGlsZHJlbkZsYWc6IGJvb2xlYW4sXHJcbiAgICAgICAgcHVibGljIGNvbW1vbkNoaWxkcmVuTnVtYmVyOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIGNwb0V4cGlyYXRpb25GbGFnOiBib29sZWFuLFxyXG4gICAgICAgIHB1YmxpYyBjcG9FeHBpcmF0aW9uRGF0ZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBzdXBwb3J0SW5QbGFjZUZsYWc6IGJvb2xlYW4sXHJcbiAgICAgICAgcHVibGljIHdlYXBvbkludm9sdmVkRmxhZzogYm9vbGVhbixcclxuICAgICAgICBwdWJsaWMgZHJ1Z1VzZUZsYWc6IGJvb2xlYW4sXHJcbiAgICAgICAgcHVibGljIGFsY29ob2xVc2VGbGFnOiBib29sZWFuLFxyXG4gICAgICAgIHB1YmxpYyBhY2Nlc3NSaXNrOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIG1vZGlmaWVkQnk6IG51bWJlcixcclxuICAgICAgICBwdWJsaWMgcmVsYXRpb25zaGlwOiBzdHJpbmcsXHJcbiAgICAgICAgXHJcbiAgICAgICAgcHVibGljIHZWaWN0aW1BZHZvY2F0ZTogVmljdGltQWR2b2NhdGUsXHJcbiAgICAgICAgcHVibGljIHZWaWN0aW1HdWFyZGlhbjogVmljdGltR3VhcmRpYW4sXHJcbiAgICAgICAgXHJcbiAgICAgICAgcHVibGljIHZpY3RpbVN1cHBvcnRzOiBWaWN0aW1TdXBwb3J0W10sXHJcbiAgICAgICAgcHVibGljIHZpY3RpbVdlYXBvblVzZXM6IFZpY3RpbVdlYXBvblVzZVtdLFxyXG4gICAgICAgIHB1YmxpYyB2aWN0aW1EcnVnVXNlczogVmljdGltRHJ1Z1VzZVtdLFxyXG5cclxuICAgICAgICBwdWJsaWMgYWxsb3dDc29zYUNvbnRhY3RGbGFnOiBib29sZWFuLFxyXG4gICAgICAgIHB1YmxpYyBsaXZlV2l0aE9mZmVuZGVyRmxhZzogYm9vbGVhblxyXG4gICAgKSB7IH1cclxufVxyXG5cclxuIl19
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmljdGltLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdjLXNtYXJ0LXZpY3RpbS9zcmMvbGliL3NtYXJ0LXZpY3RpbS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUFTLDRCQUE0QixDQUFDLENBQUM7QUFDbkcsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQVMsMEJBQTBCLENBQUMsQ0FBQztBQUMvRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBUywwQkFBMEIsQ0FBQyxDQUFDO0FBQy9GLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUFTLHVCQUF1QixDQUFDLENBQUM7QUFhckYsTUFBTSxPQUFPLGdCQUFnQjtDQVE1QjtBQUlELE1BQU0sT0FBTyxjQUFjO0lBQ3ZCLFlBQW1CLGdCQUF3QixFQUVoQyxRQUFnQixFQUVoQixTQUFpQixFQUVqQixRQUFnQixFQUVoQixRQUFnQixFQUVoQixTQUFpQixFQUVqQixXQUFvQixFQUVwQixTQUFpQixFQUVqQixTQUFpQixFQUVqQixTQUFpQixFQUVqQixLQUFhLEVBRWIsVUFBa0I7UUF0QlYscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFRO1FBRWhDLGFBQVEsR0FBUixRQUFRLENBQVE7UUFFaEIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUVqQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBRWhCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFFaEIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUVqQixnQkFBVyxHQUFYLFdBQVcsQ0FBUztRQUVwQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBRWpCLGNBQVMsR0FBVCxTQUFTLENB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QkFBZ0IsQ0FBbUI7UUFDbkMsbUJBQWMsR0FBZCxjQUFjLENBQWlCO1FBRS9CLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBUztRQUM5Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQVM7SUFDcEMsQ0FBQztDQUNSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcblxyXG5leHBvcnQgY29uc3QgU01BUlRfT0ZGRU5ERVJfU0VSVklDRV9VUkwgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignc21hcnQgb2ZmZW5kZXIgc2VydmljZSB1cmwnKTtcclxuZXhwb3J0IGNvbnN0IFNNQVJUX0xPT0tVUF9TRVJWSUNFX1VSTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdzbWFydCBsb29rdXAgc2VydmljZSB1cmwnKTtcclxuZXhwb3J0IGNvbnN0IFNNQVJUX1ZJQ1RJTV9TRVJWSUNFX1VSTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdzbWFydCB2aWN0aW0gc2VydmljZSB1cmwnKTtcclxuZXhwb3J0IGNvbnN0IFNNQVJUX1dBUlJBTlRfVVJMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ3NtYXJ0IHdhcnJhbnQgd2ViIHVybCcpO1xyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRWxlbWVudHNWaWN0aW0ge1xyXG4gICAgdmljdGltSWQ6IHN0cmluZztcclxuICAgIHZpY3RpbVR5cGU6IHN0cmluZztcclxuICAgIHZpY3RpbVByb3ZpZGVyOiBzdHJpbmc7XHJcbiAgICB2aWN0aW1Qb2xpY3lIb2xkZXI6IHN0cmluZztcclxuICAgIHN0YXJ0RGF0ZTogc3RyaW5nO1xyXG4gICAgZW5kRGF0ZTogc3RyaW5nO1xyXG4gICAgaXNBY3RpdmU6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBWaWN0aW1MaXN0RmlsdGVyIHtcclxuIFxyXG4gICAgb2ZmZW5kZXJJZDogbnVtYmVyO1xyXG4gICAgbGFzdE5hbWU6IHN0cmluZztcclxuICAgIGZpcnN0TmFtZTogc3RyaW5nO1xyXG4gICAgcGRpZDogc3RyaW5nO1xyXG4gICAgYmlydGhEYXRlOiBEYXRlO1xyXG4gIFxyXG59XHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBWaWN0aW1BZHZvY2F0ZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdmljdGltQWR2b2NhdGVJZDogbnVtYmVyLFxyXG5cclxuICAgICAgICBwdWJsaWMgbGFzdE5hbWU6IHN0cmluZyxcclxuXHJcbiAgICAgICAgcHVibGljIGZpcnN0TmFtZTogc3RyaW5nLFxyXG5cclxuICAgICAgICBwdWJsaWMgcHJlZml4SWQ6IHN0cmluZyxcclxuXHJcbiAgICAgICAgcHVibGljIHN1ZmZpeElkOiBzdHJpbmcsXHJcblxyXG4gICAgICAgIHB1YmxpYyBhZGRyZXNzSWQ6IG51bWJlcixcclxuXHJcbiAgICAgICAgcHVibGljIG5vUGhvbmVGbGFnOiBib29sZWFuLFxyXG5cclxuICAgICAgICBwdWJsaWMgaG9tZVBob25lOiBzdHJpbmcsXHJcblxyXG4gICAgICAgIHB1YmxpYyB3b3JrUGhvbmU6IHN0cmluZyxcclxuXHJcbiAgICAgICAgcHVibGljIGNlbGxQaG9uZTogc3RyaW5nLFxyXG5cclxuICAgICAgICBwdWJsaWMgZW1haWw6IHN0cmluZyxcclxuXHJcbiAgICAgICAgcHVibGljIG1vZGlmaWVkQnk6IG51bWJlclxyXG5cclxuICAgICAgIFxyXG4pIHsgfVxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFZpY3RpbVdlYXBvblVzZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgIC8vIHB1YmxpYyB2aWN0aW1XZWFwb25Vc2VJZDogbnVtYmVyLFxyXG5cclxuICAgICAgICBwdWJsaWMgdmljdGltSWQ6IG51bWJlcixcclxuXHJcbiAgICAgICAgcHVibGljIHdlYXBvblR5cGVJZDogc3RyaW5nLFxyXG5cclxuICAgICAgICBwdWJsaWMgb3RoZXJXZWFwb246IHN0cmluZyxcclxuXHJcbiAgICAgICAgcHVibGljIG1vZGlmaWVkQnk6IG51bWJlclxyXG5cclxuICAgICAgICApIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVmljdGltRHJ1Z1VzZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICAvL3B1YmxpYyB2aWN0aW1EcnVnVXNlSWQ6IG51bWJlcixcclxuXHJcbiAgICAgICAgcHVibGljIHZpY3RpbUlkOiBudW1iZXIsXHJcblxyXG4gICAgICAgIHB1YmxpYyBkcnVnVHlwZUlkOiBzdHJpbmcsXHJcblxyXG4gICAgICAgIHB1YmxpYyBvdGhlckRydWc6IHN0cmluZyxcclxuXHJcbiAgICAgICAgcHVibGljIG1vZGlmaWVkQnk6IG51bWJlclxyXG5cclxuICAgICkgeyB9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBWaWN0aW1TdXBwb3J0IHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgLy8gcHVibGljIHZpY3RpbVN1cHBvcnRJZDogbnVtYmVyLFxyXG5cclxuICAgICAgICBwdWJsaWMgdmljdGltSWQ6IG51bWJlcixcclxuXHJcbiAgICAgICAgcHVibGljIHZpY3RpbVN1cHBvcnRUeXBlSWQ6IHN0cmluZyxcclxuXHJcbiAgICAgICAgcHVibGljIG1vZGlmaWVkQnk6IG51bWJlclxyXG5cclxuICAgICAgKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFZpY3RpbUd1YXJkaWFuIHtcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB2aWN0aW1HdWFyZGlhbklkOiBudW1iZXIsXHJcblxyXG4gICAgICAgIHB1YmxpYyBsYXN0TmFtZTogc3RyaW5nLFxyXG5cclxuICAgICAgICBwdWJsaWMgZmlyc3ROYW1lOiBzdHJpbmcsXHJcblxyXG4gICAgICAgIHB1YmxpYyBwcmVmaXhJZDogc3RyaW5nLFxyXG5cclxuICAgICAgICBwdWJsaWMgc3VmZml4SWQ6IHN0cmluZyxcclxuXHJcbiAgICAgICAgcHVibGljIGJpcnRoRGF0ZTogc3RyaW5nLFxyXG5cclxuICAgICAgICBwdWJsaWMgYWRkcmVzc0lkOiBudW1iZXIsXHJcblxyXG4gICAgICAgIHB1YmxpYyBub1Bob25lRmxhZzogYm9vbGVhbixcclxuXHJcbiAgICAgICAgcHVibGljIGhvbWVQaG9uZTogc3RyaW5nLFxyXG5cclxuICAgICAgICBwdWJsaWMgd29ya1Bob25lOiBzdHJpbmcsXHJcblxyXG4gICAgICAgIHB1YmxpYyBjZWxsUGhvbmU6IHN0cmluZyxcclxuXHJcbiAgICAgICAgcHVibGljIGVtYWlsOiBzdHJpbmcsXHJcblxyXG4gICAgICAgIHB1YmxpYyBtb2RpZmllZEJ5OiBudW1iZXJcclxuICAgICAgICBcclxuICAgICAgICBcclxuXHJcbiAgICAgICApIHsgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENhc2VOb3RlIHtcclxuICAgIHZpY3RpbUlkOiBudW1iZXI7XHJcbiAgICB2aWN0aW1DYXNlTm90ZUlkOiBudW1iZXI7XHJcbiAgICBjYXNlTm90ZURhdGU6IERhdGU7XHJcbiAgICBjb250YWN0VHlwZUlkOiBzdHJpbmc7XHJcbiAgICBjb250YWN0VHlwZTogc3RyaW5nO1xyXG4gICAgdmljdGltQ29udGFjdFB1cnBvc2VJZDogc3RyaW5nO1xyXG4gICAgdmljdGltQ29udGFjdFB1cnBvc2U6IHN0cmluZztcclxuICAgIGNvbW1lbnQ6IHN0cmluZztcclxuICAgIG1vZGlmaWVkQnk6IG51bWJlcjtcclxuICAgIHZpY3RpbUZpcnN0TmFtZTogc3RyaW5nO1xyXG4gICAgdmljdGltTGFzdE5hbWU6IHN0cmluZztcclxuICBcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb250YWN0IHtcclxuICAgIHZpY3RpbUlkOiBudW1iZXI7XHJcbiAgICB2aWN0aW1Db250YWN0SWQ6IG51bWJlcjtcclxuICAgIGNvbnRhY3REYXRlOiBEYXRlO1xyXG4gICAgdmljdGltQ29udGFjdE1ldGhvZElkOiBzdHJpbmc7XHJcbiAgICBjb250YWN0TWV0aG9kOiBzdHJpbmc7XHJcbiAgICBjb250YWN0ZWRCeTogbnVtYmVyO1xyXG4gICAgY29udGFjdGVkQnlOYW1lOiBzdHJpbmc7XHJcbiAgICBuZXh0Q29udGFjdERhdGU6IERhdGU7XHJcbiAgICBjb21tZW50OiBzdHJpbmc7XHJcbiAgICBtb2RpZmllZEJ5OiBudW1iZXI7XHJcblxyXG4gIFxyXG59XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBWaWN0aW1TYWZldHlQbGFuIHtcclxuICAgIHZpY3RpbUlkOiBudW1iZXI7XHJcbiAgICBmdWxsTmFtZTogc3RyaW5nO1xyXG4gICAgdmljdGltU2VydmljZUlkOiBudW1iZXI7XHJcbiAgICBnb2FsOnN0cmluZztcclxuICAgIGNvbW1lbnQ6IHN0cmluZztcclxuICAgIG1vZGlmaWVkQnk6IG51bWJlcjtcclxuICAgIHZpY3RpbVNlcnZpY2VTdGF0dXNJZDogc3RyaW5nO1xyXG4gICAgc3RhdHVzOiBzdHJpbmc7XHJcbiAgICBzdGFydERhdGU6IERhdGU7XHJcbiAgICB2VmljdGltU2VydmljZURldGFpbHM6IFZpY3RpbVNlcnZpY2VEZXRhaWxbXTtcclxuICAgIHZpY3RpbU5hbWU6IFN0cmluZztcclxuICAgIFxyXG4gIFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFZpY3RpbVNlcnZpY2VEZXRhaWx7XHJcbiAgICB2aWN0aW1TZXJ2aWNlSWQ6IG51bWJlcjtcclxuICAgIHZpY3RpbVNlcnZpY2VEZXRhaWxJZDogbnVtYmVyO1xyXG4gICAgdmljdGltU2VydmljZVR5cGVJZDogc3RyaW5nO1xyXG4gICAgdmljdGltUHJvZ3JhbVByb3ZpZGVySWQ6IHN0cmluZztcclxuICAgIHZpY3RpbVByb2dyYW1Qcm92aWRlcjogc3RyaW5nO1xyXG4gICAgbW9kaWZpZWRCeTogbnVtYmVyO1xyXG5cclxuXHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBWaWN0aW1TZXJ2aWNlU3RhdHVzSGlzdG9yeXtcclxuXHJcbiAgICB2aWN0aW1TZXJ2aWNlU3RhdHVzSGlzdG9yeUlkOiBudW1iZXI7XHJcbiAgICB2aWN0aW1TZXJ2aWNlSWQ6IHN0cmluZztcclxuICAgIHZpY3RpbVNlcnZpY2VTdGF0dXNJZDogc3RyaW5nO1xyXG4gICAgc3RhcnREYXRlOiBEYXRlO1xyXG4gICAgY29tbWVudDogc3RyaW5nO1xyXG4gICAgbW9kaWZpZWRCeTogbnVtYmVyO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSAgVmljdGltU2VydmljZVR5cGVQcm9ncmFtUHJvdmlkZXJNb2RlbCB7XHJcbiAgICB2aWN0aW1TZXJ2aWNlVHlwZVByb2dyYW1Qcm92aWRlcklkOiBudW1iZXI7IFxyXG4gICAgdmljdGltU2VydmljZVR5cGU6IHN0cmluZztcclxuICAgIHZpY3RpbVByb2dyYW1Qcm92aWRlcklkOiBzdHJpbmc7XHJcbiAgICB2aWN0aW1TZXJ2aWNlVHlwZUlkOnN0cmluZztcclxuICAgIHZpY3RpbVByb2dyYW1Qcm92aWRlcjogc3RyaW5nO1xyXG4gIH1cclxuICBcclxuICBleHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyTGlzdENvbGxlY3Rpb25Nb2RlbHtcclxuICAgIGdyb3VwSWQ6c3RyaW5nO1xyXG4gICAgaXNEaXNwbGF5OmJvb2xlYW47XHJcbiAgICBjb2xsZWN0aW9uOlZpY3RpbVNlcnZpY2VUeXBlUHJvZ3JhbVByb3ZpZGVyTW9kZWxbXTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgZXhwb3J0IGludGVyZmFjZSBQcm92aWRlcnNEaWFsb2dEYXRhIHtcclxuICAgIC8vaWVwQWN0aW9uOiBJZXBBY3Rpb247XHJcbiAgICBzZXJ2aWNlVHlwZTtcclxuICAgIHNlcnZpY2VUeXBlSWQ7XHJcbiAgICBwcm92aWRlckNvbGxlY3Rpb25zOiBbXTtcclxuICB9XHJcblxyXG5cclxuICBleHBvcnQgY2xhc3MgVmljdGltIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyB2aWN0aW1JZDogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyBvZmZlbmRlcklkOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIHVuZGVyU3VwZXJ2aXNpb25GbGFnOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIHZpY3RpbU9mZmVuZGVyUmVsYXRpb25zaGlwVHlwZUlkOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGxhc3ROYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGZpcnN0TmFtZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBtaWRkbGVOYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIHByZWZpeElkOiBzdHJpbmcgfCBudWxsLFxyXG4gICAgICAgIHB1YmxpYyBzdWZmaXhJZDogc3RyaW5nIHwgbnVsbCxcclxuICAgICAgICBwdWJsaWMgYmlydGhEYXRlOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGdlbmRlckNvZGU6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgaG9tZVBob25lOiBzdHJpbmcgfCBudWxsLFxyXG4gICAgICAgIHB1YmxpYyB3b3JrUGhvbmU6IHN0cmluZyB8IG51bGwsXHJcbiAgICAgICAgcHVibGljIGNlbGxQaG9uZTogc3RyaW5nIHwgbnVsbCxcclxuICAgICAgICBwdWJsaWMgZW1haWw6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgYWRkcmVzc0lkOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIG1pbm9yRmxhZzogYm9vbGVhbixcclxuICAgICAgICBwdWJsaWMgdmljdGltQWR2b2NhdGVGbGFnOiBzdHJpbmcsXHJcblxyXG4gICAgICAgIHB1YmxpYyBndWFyZGlhbkZpcnN0TmFtZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBndWFyZGlhbkxhc3ROYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGd1YXJkaWFuUHJlZml4SWQ6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgZ3VhcmRpYW5TdWZmaXhJZDogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBndWFyZGlhbk5vUGhvbmVGbGFnOiBib29sZWFuLFxyXG4gICAgICAgIHB1YmxpYyBndWFyZGlhbkhvbWVQaG9uZTogc3RyaW5nIHwgbnVsbCxcclxuICAgICAgICBwdWJsaWMgZ3VhcmRpYW5Xb3JrUGhvbmU6IHN0cmluZyB8IG51bGwsXHJcbiAgICAgICAgcHVibGljIGd1YXJkaWFuQ2VsbFBob25lOiBzdHJpbmcgfCBudWxsLFxyXG4gICAgICAgIHB1YmxpYyBndWFyZGlhbkVtYWlsOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGd1YXJkaWFuQWRkcmVzc0lkOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIGd1YXJkaWFuQmlydGhEYXRlOiBzdHJpbmcsXHJcblxyXG4gICAgICAgIHB1YmxpYyBhZHZvY2F0ZUZpcnN0TmFtZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBhZHZvY2F0ZUxhc3ROYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGFkdm9jYXRlUHJlZml4SWQ6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgYWR2b2NhdGVTdWZmaXhJZDogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBhZHZvY2F0ZU5vUGhvbmVGbGFnOiBib29sZWFuLFxyXG4gICAgICAgIHB1YmxpYyBhZHZvY2F0ZUhvbWVQaG9uZTogc3RyaW5nIHwgbnVsbCxcclxuICAgICAgICBwdWJsaWMgYWR2b2NhdGVXb3JrUGhvbmU6IHN0cmluZyB8IG51bGwsXHJcbiAgICAgICAgcHVibGljIGFkdm9jYXRlQ2VsbFBob25lOiBzdHJpbmcgfCBudWxsLFxyXG4gICAgICAgIHB1YmxpYyBhZHZvY2F0ZUVtYWlsOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGFkdm9jYXRlQWRkcmVzc0lkOiBudW1iZXIsXHJcblxyXG4gICAgICAgIHB1YmxpYyBlbWVyZ2VuY3lDb250YWN0OiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGVtZXJnZW5jeUNvbnRhY3RQaG9uZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBjb21tb25DaGlsZHJlbkZsYWc6IGJvb2xlYW4sXHJcbiAgICAgICAgcHVibGljIGNvbW1vbkNoaWxkcmVuTnVtYmVyOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIGNwb0V4cGlyYXRpb25GbGFnOiBib29sZWFuLFxyXG4gICAgICAgIHB1YmxpYyBjcG9FeHBpcmF0aW9uRGF0ZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBzdXBwb3J0SW5QbGFjZUZsYWc6IGJvb2xlYW4sXHJcbiAgICAgICAgcHVibGljIHdlYXBvbkludm9sdmVkRmxhZzogYm9vbGVhbixcclxuICAgICAgICBwdWJsaWMgZHJ1Z1VzZUZsYWc6IGJvb2xlYW4sXHJcbiAgICAgICAgcHVibGljIGFsY29ob2xVc2VGbGFnOiBib29sZWFuLFxyXG4gICAgICAgIHB1YmxpYyBhY2Nlc3NSaXNrOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIG1vZGlmaWVkQnk6IG51bWJlcixcclxuICAgICAgICBwdWJsaWMgcmVsYXRpb25zaGlwOiBzdHJpbmcsXHJcbiAgICAgICAgXHJcbiAgICAgICAgcHVibGljIHZWaWN0aW1BZHZvY2F0ZTogVmljdGltQWR2b2NhdGUsXHJcbiAgICAgICAgcHVibGljIHZWaWN0aW1HdWFyZGlhbjogVmljdGltR3VhcmRpYW4sXHJcbiAgICAgICAgXHJcbiAgICAgICAgcHVibGljIHZpY3RpbVN1cHBvcnRzOiBWaWN0aW1TdXBwb3J0W10sXHJcbiAgICAgICAgcHVibGljIHZpY3RpbVdlYXBvblVzZXM6IFZpY3RpbVdlYXBvblVzZVtdLFxyXG4gICAgICAgIHB1YmxpYyB2aWN0aW1EcnVnVXNlczogVmljdGltRHJ1Z1VzZVtdLFxyXG5cclxuICAgICAgICBwdWJsaWMgYWxsb3dDc29zYUNvbnRhY3RGbGFnOiBib29sZWFuLFxyXG4gICAgICAgIHB1YmxpYyBsaXZlV2l0aE9mZmVuZGVyRmxhZzogYm9vbGVhblxyXG4gICAgKSB7IH1cclxufVxyXG5cclxuIl19