@hmcts/rpx-xui-common-lib 1.8.5-angular-upgrade-r4 → 1.8.7-fix-wrong-services

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/bundles/hmcts-rpx-xui-common-lib.umd.js +431 -1076
  2. package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -1
  3. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +1 -1
  4. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -1
  5. package/esm2015/hmcts-rpx-xui-common-lib.js +29 -32
  6. package/esm2015/lib/components/find-location/find-location.component.js +3 -3
  7. package/esm2015/lib/components/find-service/find-service.component.js +12 -129
  8. package/esm2015/lib/components/generic-filter/generic-filter-utils.js +2 -2
  9. package/esm2015/lib/components/generic-filter/generic-filter.component.js +15 -361
  10. package/esm2015/lib/components/search-location/search-location.component.js +3 -3
  11. package/esm2015/lib/components/search-service/search-service.component.js +34 -17
  12. package/esm2015/lib/components/selected-case/selected-case.component.js +4 -10
  13. package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +1 -1
  14. package/esm2015/lib/components/share-case/share-case.component.js +186 -14
  15. package/esm2015/lib/exui-common-lib.module.js +5 -13
  16. package/esm2015/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +6 -80
  17. package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +3 -3
  18. package/esm2015/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +2 -3
  19. package/esm2015/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +1 -1
  20. package/esm2015/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +2 -2
  21. package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +14 -19
  22. package/esm2015/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +2 -2
  23. package/esm2015/lib/gov-ui/components/index.js +2 -2
  24. package/esm2015/lib/gov-ui/components/public_api.js +1 -2
  25. package/esm2015/lib/gov-ui/index.js +2 -2
  26. package/esm2015/lib/gov-ui/models/banner-data-model.js +16 -0
  27. package/esm2015/lib/gov-ui/models/checkboxes-model.js +8 -6
  28. package/esm2015/lib/gov-ui/models/gov-ui-config-model.js +1 -5
  29. package/esm2015/lib/gov-ui/models/public_api.js +2 -1
  30. package/esm2015/lib/gov-ui/public_api.js +2 -2
  31. package/esm2015/lib/models/case-share.model.js +8 -1
  32. package/esm2015/lib/models/filter.model.js +5 -65
  33. package/esm2015/lib/models/index.js +2 -2
  34. package/esm2015/lib/models/person.model.js +2 -2
  35. package/esm2015/lib/services/case-sharing-state/case-sharing-state.service.js +39 -15
  36. package/esm2015/lib/services/filter/filter.service.js +3 -17
  37. package/esm2015/lib/services/find-person/find-person.service.js +3 -3
  38. package/esm2015/lib/services/role-guard/role.guard.js +15 -22
  39. package/esm2015/lib/services/role-guard/role.service.js +13 -13
  40. package/esm2015/lib/services/session-storage/session-storage.service.js +55 -0
  41. package/esm2015/public-api.js +3 -3
  42. package/esm5/hmcts-rpx-xui-common-lib.js +29 -32
  43. package/esm5/lib/components/find-location/find-location.component.js +3 -3
  44. package/esm5/lib/components/find-service/find-service.component.js +12 -166
  45. package/esm5/lib/components/generic-filter/generic-filter-utils.js +2 -2
  46. package/esm5/lib/components/generic-filter/generic-filter.component.js +14 -397
  47. package/esm5/lib/components/search-location/search-location.component.js +3 -3
  48. package/esm5/lib/components/search-service/search-service.component.js +38 -19
  49. package/esm5/lib/components/selected-case/selected-case.component.js +4 -13
  50. package/esm5/lib/components/selected-case-confirm/selected-case-confirm.component.js +1 -1
  51. package/esm5/lib/components/share-case/share-case.component.js +219 -14
  52. package/esm5/lib/exui-common-lib.module.js +5 -11
  53. package/esm5/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +6 -100
  54. package/esm5/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +3 -3
  55. package/esm5/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +2 -3
  56. package/esm5/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +1 -1
  57. package/esm5/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +2 -2
  58. package/esm5/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +13 -17
  59. package/esm5/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +2 -2
  60. package/esm5/lib/gov-ui/components/index.js +2 -2
  61. package/esm5/lib/gov-ui/components/public_api.js +1 -2
  62. package/esm5/lib/gov-ui/index.js +2 -2
  63. package/esm5/lib/gov-ui/models/banner-data-model.js +16 -0
  64. package/esm5/lib/gov-ui/models/checkboxes-model.js +8 -6
  65. package/esm5/lib/gov-ui/models/gov-ui-config-model.js +1 -5
  66. package/esm5/lib/gov-ui/models/public_api.js +2 -1
  67. package/esm5/lib/gov-ui/public_api.js +2 -2
  68. package/esm5/lib/models/case-share.model.js +8 -1
  69. package/esm5/lib/models/filter.model.js +5 -65
  70. package/esm5/lib/models/index.js +2 -2
  71. package/esm5/lib/models/person.model.js +2 -2
  72. package/esm5/lib/services/case-sharing-state/case-sharing-state.service.js +40 -16
  73. package/esm5/lib/services/filter/filter.service.js +3 -21
  74. package/esm5/lib/services/find-person/find-person.service.js +3 -3
  75. package/esm5/lib/services/role-guard/role.guard.js +15 -22
  76. package/esm5/lib/services/role-guard/role.service.js +13 -13
  77. package/esm5/lib/services/{storage/session-storage → session-storage}/session-storage.service.js +2 -2
  78. package/esm5/public-api.js +3 -3
  79. package/fesm2015/hmcts-rpx-xui-common-lib.js +447 -1040
  80. package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
  81. package/fesm5/hmcts-rpx-xui-common-lib.js +415 -1094
  82. package/fesm5/hmcts-rpx-xui-common-lib.js.map +1 -1
  83. package/hmcts-rpx-xui-common-lib.d.ts +27 -30
  84. package/hmcts-rpx-xui-common-lib.metadata.json +1 -1
  85. package/lib/components/find-service/find-service.component.d.ts +6 -14
  86. package/lib/components/generic-filter/generic-filter-utils.d.ts +5 -2
  87. package/lib/components/generic-filter/generic-filter.component.d.ts +2 -12
  88. package/lib/components/search-location/search-location.component.d.ts +1 -1
  89. package/lib/components/search-service/search-service.component.d.ts +11 -5
  90. package/lib/components/selected-case/selected-case.component.d.ts +0 -1
  91. package/lib/components/share-case/share-case.component.d.ts +35 -2
  92. package/lib/exui-common-lib.module.d.ts +3 -4
  93. package/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.d.ts +5 -14
  94. package/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.d.ts +2 -1
  95. package/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.d.ts +0 -1
  96. package/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.d.ts +2 -2
  97. package/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.d.ts +2 -4
  98. package/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.d.ts +3 -3
  99. package/lib/gov-ui/components/public_api.d.ts +0 -1
  100. package/lib/gov-ui/models/banner-data-model.d.ts +4 -0
  101. package/lib/gov-ui/models/checkboxes-model.d.ts +7 -4
  102. package/lib/gov-ui/models/gov-ui-config-model.d.ts +0 -2
  103. package/lib/gov-ui/models/public_api.d.ts +1 -0
  104. package/lib/models/case-share.model.d.ts +5 -0
  105. package/lib/models/filter.model.d.ts +8 -30
  106. package/lib/models/person.model.d.ts +1 -1
  107. package/lib/services/case-sharing-state/case-sharing-state.service.d.ts +1 -1
  108. package/lib/services/filter/filter.service.d.ts +0 -1
  109. package/lib/services/find-person/find-person.service.d.ts +1 -1
  110. package/lib/services/role-guard/role.guard.d.ts +1 -2
  111. package/lib/services/role-guard/role.service.d.ts +1 -3
  112. package/lib/services/{storage/session-storage → session-storage}/session-storage.service.d.ts +0 -0
  113. package/package.json +1 -1
  114. package/esm2015/lib/components/find-task-name/find-task-name.component.js +0 -228
  115. package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.js +0 -22
  116. package/esm2015/lib/gov-ui/models/radio-buttons.model.js +0 -22
  117. package/esm2015/lib/models/task-name.model.js +0 -16
  118. package/esm2015/lib/pipes/capitalize.pipe.js +0 -21
  119. package/esm2015/lib/services/storage/session-storage/session-storage.service.js +0 -55
  120. package/esm2015/lib/services/task-name/task-name.service.js +0 -65
  121. package/esm5/lib/components/find-task-name/find-task-name.component.js +0 -243
  122. package/esm5/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.js +0 -22
  123. package/esm5/lib/gov-ui/models/radio-buttons.model.js +0 -22
  124. package/esm5/lib/models/task-name.model.js +0 -16
  125. package/esm5/lib/pipes/capitalize.pipe.js +0 -29
  126. package/esm5/lib/services/task-name/task-name.service.js +0 -70
  127. package/lib/components/find-task-name/find-task-name.component.d.ts +0 -41
  128. package/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.d.ts +0 -7
  129. package/lib/gov-ui/models/radio-buttons.model.d.ts +0 -9
  130. package/lib/models/task-name.model.d.ts +0 -4
  131. package/lib/pipes/capitalize.pipe.d.ts +0 -4
  132. package/lib/services/task-name/task-name.service.d.ts +0 -14
@@ -5,21 +5,30 @@
5
5
  */
6
6
  import * as tslib_1 from "tslib";
7
7
  import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
8
+ import { Router } from '@angular/router';
8
9
  import { Observable } from 'rxjs';
10
+ import { tap } from 'rxjs/operators';
11
+ import { SharedCaseErrorMessages } from '../../models/case-share.model';
9
12
  import { CaseSharingStateService } from '../../services/case-sharing-state/case-sharing-state.service';
10
13
  import { UserSelectComponent } from '../user-select/user-select.component';
11
14
  var ShareCaseComponent = /** @class */ (function () {
12
- function ShareCaseComponent(stateService) {
15
+ function ShareCaseComponent(stateService, router) {
13
16
  this.stateService = stateService;
17
+ this.router = router;
14
18
  this.shareCases = []; // cases selected for sharing
15
- // cases selected for sharing
19
+ this.continueAllowed = false;
20
+ this.selectedUserToRemove = null;
16
21
  this.removeUserFromCaseToggleOn = false;
17
22
  this.users = []; // users of this organisation the cases can be shared with
18
23
  // users of this organisation the cases can be shared with
19
24
  this.confirmLink = '';
25
+ this.cancelLink = '';
20
26
  this.showRemoveUsers = false;
27
+ this.fnTitle = '';
28
+ this.title = '';
21
29
  this.unselect = new EventEmitter();
22
30
  this.synchronizeStore = new EventEmitter();
31
+ this.validationErrors = [];
23
32
  }
24
33
  /**
25
34
  * @return {?}
@@ -29,15 +38,36 @@ var ShareCaseComponent = /** @class */ (function () {
29
38
  */
30
39
  function () {
31
40
  var _this = this;
32
- this.shareCases$.subscribe((/**
41
+ this.shareCases$
42
+ .pipe(tap((/**
43
+ * @param {?} sharedCases
44
+ * @return {?}
45
+ */
46
+ function (sharedCases) {
47
+ // Update the list of users assigned to at least one case
48
+ _this.getAssignedUsers(sharedCases.filter((/**
49
+ * @param {?} sharedCase
50
+ * @return {?}
51
+ */
52
+ function (sharedCase) { return sharedCase.sharedWith && sharedCase.sharedWith.length > 0; })));
53
+ })))
54
+ .subscribe((/**
33
55
  * @param {?} shareCases
34
56
  * @return {?}
35
57
  */
36
58
  function (shareCases) {
37
59
  _this.shareCases = shareCases;
38
60
  _this.stateService.setCases(shareCases);
61
+ // Set the config to be used by the xuilib-gov-uk-error-message component, in particular the element ID to
62
+ // which the error message is associated
63
+ if (shareCases) {
64
+ _this.selectedCasesErrorMessageConfig = {
65
+ id: shareCases.length > 0 ? 'cases' : 'noCaseDisplay'
66
+ };
67
+ }
39
68
  }));
40
69
  this.shareCases$ = this.stateService.state;
70
+ this.shareCaseErrorMessage = { isInvalid: false, messages: [] };
41
71
  };
42
72
  /**
43
73
  * @param {?} c
@@ -48,8 +78,16 @@ var ShareCaseComponent = /** @class */ (function () {
48
78
  * @return {?}
49
79
  */
50
80
  function (c) {
51
- this.unselect.emit(c);
52
- this.stateService.removeCase(c.caseId);
81
+ this.validationErrors = [];
82
+ if (this.stateService.getCases().length === 1) {
83
+ this.validationErrors.push({ id: 'cases', message: SharedCaseErrorMessages.OneCaseMustBeSelected });
84
+ this.shareCaseErrorMessage = { isInvalid: true, messages: [SharedCaseErrorMessages.OneCaseMustBeSelected] };
85
+ window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });
86
+ }
87
+ else {
88
+ this.unselect.emit(c);
89
+ this.stateService.removeCase(c.caseId);
90
+ }
53
91
  };
54
92
  /**
55
93
  * @param {?} event
@@ -87,6 +125,21 @@ var ShareCaseComponent = /** @class */ (function () {
87
125
  this.userSelect.clear();
88
126
  }
89
127
  this.synchronizeStore.emit(newSharedCases);
128
+ // Update the list of assigned users (which includes pending users)
129
+ this.getAssignedUsers(newSharedCases);
130
+ };
131
+ /**
132
+ * @return {?}
133
+ */
134
+ ShareCaseComponent.prototype.removeUser = /**
135
+ * @return {?}
136
+ */
137
+ function () {
138
+ if (this.selectedUserToRemove) {
139
+ /** @type {?} */
140
+ var newSharedCases = this.stateService.requestUnshare(this.selectedUserToRemove);
141
+ this.synchronizeStore.emit(newSharedCases);
142
+ }
90
143
  };
91
144
  /**
92
145
  * @return {?}
@@ -98,14 +151,25 @@ var ShareCaseComponent = /** @class */ (function () {
98
151
  return this.selectedUser === null || this.shareCases.length === 0;
99
152
  };
100
153
  /**
154
+ * Function originally used to set disabled state of "Continue" button, now called by the button click handler to
155
+ * control whether navigation to the confirmation page is allowed. It is prevented if no changes have been made
156
+ */
157
+ /**
158
+ * Function originally used to set disabled state of "Continue" button, now called by the button click handler to
159
+ * control whether navigation to the confirmation page is allowed. It is prevented if no changes have been made
101
160
  * @return {?}
102
161
  */
103
- ShareCaseComponent.prototype.isDisabledContinue = /**
162
+ ShareCaseComponent.prototype.setContinueAllowed = /**
163
+ * Function originally used to set disabled state of "Continue" button, now called by the button click handler to
164
+ * control whether navigation to the confirmation page is allowed. It is prevented if no changes have been made
104
165
  * @return {?}
105
166
  */
106
167
  function () {
107
- /** @type {?} */
108
- var isDisabled = true;
168
+ var _this = this;
169
+ // Always start with continueAllowed = false. This covers the scenario where a user might add someone for sharing
170
+ // a case (so, continueAllowed = true), then removes the same user before trying to continue. This would
171
+ // erroneously leave continueAllowed as true
172
+ this.continueAllowed = false;
109
173
  this.shareCases$.subscribe((/**
110
174
  * @param {?} shareCases
111
175
  * @return {?}
@@ -116,11 +180,11 @@ var ShareCaseComponent = /** @class */ (function () {
116
180
  for (var shareCases_1 = tslib_1.__values(shareCases), shareCases_1_1 = shareCases_1.next(); !shareCases_1_1.done; shareCases_1_1 = shareCases_1.next()) {
117
181
  var caseState = shareCases_1_1.value;
118
182
  if (caseState.pendingShares && caseState.pendingShares.length > 0) {
119
- isDisabled = false;
183
+ _this.continueAllowed = true;
120
184
  break;
121
185
  }
122
186
  if (caseState.pendingUnshares && caseState.pendingUnshares.length > 0) {
123
- isDisabled = false;
187
+ _this.continueAllowed = true;
124
188
  break;
125
189
  }
126
190
  }
@@ -133,7 +197,6 @@ var ShareCaseComponent = /** @class */ (function () {
133
197
  finally { if (e_1) throw e_1.error; }
134
198
  }
135
199
  }));
136
- return isDisabled;
137
200
  };
138
201
  /**
139
202
  * @param {?} sharedCase
@@ -167,24 +230,143 @@ var ShareCaseComponent = /** @class */ (function () {
167
230
  }
168
231
  this.stateService.setCases(this.shareCases);
169
232
  };
233
+ /**
234
+ * @return {?}
235
+ */
236
+ ShareCaseComponent.prototype.onContinue = /**
237
+ * @return {?}
238
+ */
239
+ function () {
240
+ this.setContinueAllowed();
241
+ // If continuation is not allowed, set an error message
242
+ if (!this.continueAllowed) {
243
+ this.validationErrors = [];
244
+ this.validationErrors.push({ id: 'cases', message: SharedCaseErrorMessages.NoChangesRequested });
245
+ this.shareCaseErrorMessage = { isInvalid: true, messages: [SharedCaseErrorMessages.NoChangesRequested] };
246
+ window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });
247
+ }
248
+ // Navigate to confirmation page only if allowed to continue
249
+ if (this.continueAllowed) {
250
+ // Check that no case is left unassigned; a user can be removed only if there is another current user, or if at
251
+ // least one user is to be added. Prevent navigation to confirmation page if there is at least one case left in
252
+ // an unassigned state
253
+ if (this.hasCasesLeftUnassigned(this.shareCases)) {
254
+ this.validationErrors = [];
255
+ this.validationErrors.push({ id: 'cases', message: SharedCaseErrorMessages.OnePersonMustBeAssigned });
256
+ this.shareCaseErrorMessage = { isInvalid: true, messages: [SharedCaseErrorMessages.OnePersonMustBeAssigned] };
257
+ window.scrollTo({ top: 0, left: 0, behavior: 'smooth' });
258
+ }
259
+ else {
260
+ this.router.navigate([this.confirmLink]);
261
+ }
262
+ }
263
+ };
264
+ /**
265
+ * Gets a unique list of all users that have been assigned, or are pending assigment to, at least one case
266
+ * @param sharedCases The list of shared cases from which to get users these are shared with, or are to be shared with
267
+ */
268
+ /**
269
+ * Gets a unique list of all users that have been assigned, or are pending assigment to, at least one case
270
+ * @param {?} sharedCases The list of shared cases from which to get users these are shared with, or are to be shared with
271
+ * @return {?}
272
+ */
273
+ ShareCaseComponent.prototype.getAssignedUsers = /**
274
+ * Gets a unique list of all users that have been assigned, or are pending assigment to, at least one case
275
+ * @param {?} sharedCases The list of shared cases from which to get users these are shared with, or are to be shared with
276
+ * @return {?}
277
+ */
278
+ function (sharedCases) {
279
+ /** @type {?} */
280
+ var users = [];
281
+ sharedCases.forEach((/**
282
+ * @param {?} sharedCase
283
+ * @return {?}
284
+ */
285
+ function (sharedCase) {
286
+ if (sharedCase.sharedWith) {
287
+ sharedCase.sharedWith.forEach((/**
288
+ * @param {?} user
289
+ * @return {?}
290
+ */
291
+ function (user) {
292
+ if (!users.some((/**
293
+ * @param {?} existingUser
294
+ * @return {?}
295
+ */
296
+ function (existingUser) { return user.idamId === existingUser.idamId; }))) {
297
+ users.push(user);
298
+ }
299
+ }));
300
+ }
301
+ if (sharedCase.pendingShares) {
302
+ sharedCase.pendingShares.forEach((/**
303
+ * @param {?} user
304
+ * @return {?}
305
+ */
306
+ function (user) {
307
+ if (!users.some((/**
308
+ * @param {?} existingUser
309
+ * @return {?}
310
+ */
311
+ function (existingUser) { return user.idamId === existingUser.idamId; }))) {
312
+ users.push(user);
313
+ }
314
+ }));
315
+ }
316
+ }));
317
+ this.assignedUsers = users;
318
+ };
319
+ /**
320
+ * Checks if any shared cases have been left unassigned. This occurs if a shared case has a number of pending
321
+ * unshares equal to the number of current shares, and there are no pending shares.
322
+ * @param sharedCases The array of shared cases to check
323
+ * @returns `true` if at least one case has the condition described above; `false` otherwise
324
+ */
325
+ /**
326
+ * Checks if any shared cases have been left unassigned. This occurs if a shared case has a number of pending
327
+ * unshares equal to the number of current shares, and there are no pending shares.
328
+ * @param {?} sharedCases The array of shared cases to check
329
+ * @return {?} `true` if at least one case has the condition described above; `false` otherwise
330
+ */
331
+ ShareCaseComponent.prototype.hasCasesLeftUnassigned = /**
332
+ * Checks if any shared cases have been left unassigned. This occurs if a shared case has a number of pending
333
+ * unshares equal to the number of current shares, and there are no pending shares.
334
+ * @param {?} sharedCases The array of shared cases to check
335
+ * @return {?} `true` if at least one case has the condition described above; `false` otherwise
336
+ */
337
+ function (sharedCases) {
338
+ return sharedCases.some((/**
339
+ * @param {?} sharedCase
340
+ * @return {?}
341
+ */
342
+ function (sharedCase) {
343
+ return sharedCase.pendingUnshares && sharedCase.sharedWith &&
344
+ sharedCase.pendingUnshares.length === sharedCase.sharedWith.length &&
345
+ (!sharedCase.pendingShares || sharedCase.pendingShares.length === 0);
346
+ }));
347
+ };
170
348
  ShareCaseComponent.decorators = [
171
349
  { type: Component, args: [{
172
350
  selector: 'xuilib-share-case',
173
- template: "<div id=\"add-user\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"add-user-input\">{{addUserLabel}}</label>\n <span id=\"add-user-hint\" class=\"govuk-hint\">\n Search by name or email address. You can share access with as many people as you need.\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <xuilib-user-select\n id=\"add-user-input\"\n aria-describedby=\"add-user-hint\"\n [users]=\"users\"\n (selected)=\"onSelectedUser($event)\">\n </xuilib-user-select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-add-user\" (click)=\"addUser()\" class=\"govuk-button govuk-button--secondary\" [disabled]=\"isDisabledAdd()\" title=\"Add user to selected cases\">Add</button>\n </div>\n </div>\n <details id=\"add-user-help\" class=\"govuk-details\" data-module=\"govuk-details\">\n <summary class=\"govuk-details__summary\">\n <span id=\"content-why-can-not-find-email\" class=\"govuk-details__summary-text\">\n Can't find an email address?\n </span>\n </summary>\n <div id=\"content-reason-can-not-find-email\" class=\"govuk-details__text\">\n If you can't find your colleague's email address, they will need to complete their registration. Contact your\n administrator for help.\n </div>\n </details>\n </div>\n <div class=\"govuk-form-group\" *ngIf=\"showRemoveUsers\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"remove-user-input\">Remove a person from all cases</label>\n <span id=\"remove-user-hint\" class=\"govuk-hint\">\n Select a person to remove them from all selected cases.\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <select class=\"govuk-select\" id=\"remove-user-input\" aria-describedby=\"remove-user-hint\">\n <option value=\"{{user}}\" *ngFor=\"let user of users\">{{user.email}}</option>\n </select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-remove-user\" class=\"govuk-button govuk-button--secondary\" title=\"Remove user from selected cases\">Remove</button>\n </div>\n </div>\n </div>\n</div>\n\n<div id=\"cases\">\n <h3 id=\"title-selected-cases\" class=\"govuk-heading-m\">Selected cases</h3>\n <div *ngIf=\"shareCases && shareCases.length > 0\" class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"accordion-with-summary-sections\">\n <xuilib-selected-case-list\n [shareCases$]=\"shareCases$\"\n [removeUserFromCaseToggleOn]=\"removeUserFromCaseToggleOn\"\n (unselect)=\"onUnselect($event)\"\n (synchronizeStore)=\"onSynchronizeStore($event)\"\n >\n </xuilib-selected-case-list>\n </div>\n\n <div id=\"noCaseDisplay\" *ngIf=\"shareCases && shareCases.length === 0\" class=\"govuk-hint\">\n No cases to display.\n </div>\n\n</div>\n\n<div id=\"share-case-nav\" class=\"govuk-button-group\">\n <button class=\"govuk-button\" data-module=\"govuk-button\" [disabled]=\"isDisabledContinue()\" title=\"Continue\" [routerLink]=\"confirmLink\">Continue</button>\n <button class=\"govuk-button govuk-button--secondary\" data-module=\"govuk-button\" title=\"Cancel\">Cancel</button>\n</div>\n",
351
+ template: "<xuilib-hmcts-error-summary\n [errorMessages]=\"validationErrors\"\n [header]=\"'There is a problem'\"\n></xuilib-hmcts-error-summary>\n<h1 *ngIf=\"title\" class=\"govuk-heading-xl govuk-!-margin-top-2\">\n <span *ngIf=\"fnTitle\" class=\"govuk-caption-xl\">{{fnTitle}}</span>\n {{title}}\n</h1>\n<div id=\"add-user\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"add-user-input\">{{addUserLabel}}</label>\n <span id=\"add-user-hint\" class=\"govuk-hint\">\n Search by name or email address. You can share access with as many people as you need.\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <xuilib-user-select\n id=\"add-user-input\"\n aria-describedby=\"add-user-hint\"\n [users]=\"users\"\n (selected)=\"onSelectedUser($event)\">\n </xuilib-user-select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-add-user\" (click)=\"addUser()\" class=\"govuk-button govuk-button--secondary\" [disabled]=\"isDisabledAdd()\" title=\"Add user to selected cases\">Add</button>\n </div>\n </div>\n <details id=\"add-user-help\" class=\"govuk-details\" data-module=\"govuk-details\">\n <summary class=\"govuk-details__summary\">\n <span id=\"content-why-can-not-find-email\" class=\"govuk-details__summary-text\">\n Can't find an email address?\n </span>\n </summary>\n <div id=\"content-reason-can-not-find-email\" class=\"govuk-details__text\">\n If you can't find your colleague's email address, they will need to complete their registration. Contact your\n administrator for help.\n </div>\n </details>\n </div>\n <div class=\"govuk-form-group\" *ngIf=\"showRemoveUsers\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"remove-user-input\">Remove a person from all cases</label>\n <span id=\"remove-user-hint\" class=\"govuk-hint\">\n Select a person to remove them from all selected cases.\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <select [(ngModel)]=\"selectedUserToRemove\" class=\"govuk-select\" id=\"remove-user-input\" aria-describedby=\"remove-user-hint\">\n <option [ngValue]=\"null\" selected>Select a person</option>\n <option *ngFor=\"let user of assignedUsers\" [ngValue]=\"user\">{{user.firstName}} {{user.lastName}} - {{user.email}}</option>\n </select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-remove-user\" (click)=\"removeUser()\" class=\"govuk-button govuk-button--secondary\" title=\"Remove user from selected cases\">Remove</button>\n </div>\n </div>\n </div>\n</div>\n\n<div id=\"cases\" [ngClass]=\"{'govuk-form-group--error': shareCaseErrorMessage.messages && shareCaseErrorMessage.messages.length > 0}\">\n <h3 id=\"title-selected-cases\" class=\"govuk-heading-m\">Selected cases</h3>\n <xuilib-gov-uk-error-message [config]=\"selectedCasesErrorMessageConfig\" [errorMessage]=\"shareCaseErrorMessage\"></xuilib-gov-uk-error-message>\n <div *ngIf=\"shareCases && shareCases.length > 0\" class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"accordion-with-summary-sections\">\n <xuilib-selected-case-list\n [shareCases$]=\"shareCases$\"\n [removeUserFromCaseToggleOn]=\"removeUserFromCaseToggleOn\"\n (unselect)=\"onUnselect($event)\"\n (synchronizeStore)=\"onSynchronizeStore($event)\"\n >\n </xuilib-selected-case-list>\n </div>\n\n <div id=\"noCaseDisplay\" *ngIf=\"shareCases && shareCases.length === 0\" class=\"govuk-hint\"\n [ngClass]=\"{'govuk-form-group--error': shareCaseErrorMessage.messages && shareCaseErrorMessage.messages.length > 0}\">\n No cases to display.\n </div>\n\n</div>\n\n<div id=\"share-case-nav\" class=\"govuk-button-group\">\n <button id=\"btn-continue\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"onContinue()\" title=\"Continue\">Continue</button>\n <button id=\"btn-cancel\" class=\"govuk-button govuk-button--secondary\" data-module=\"govuk-button\" title=\"Cancel\" [routerLink]=\"cancelLink\">Cancel</button>\n</div>\n",
174
352
  styles: ["select{width:100%}"]
175
353
  }] }
176
354
  ];
177
355
  /** @nocollapse */
178
356
  ShareCaseComponent.ctorParameters = function () { return [
179
- { type: CaseSharingStateService }
357
+ { type: CaseSharingStateService },
358
+ { type: Router }
180
359
  ]; };
181
360
  ShareCaseComponent.propDecorators = {
182
361
  removeUserFromCaseToggleOn: [{ type: Input }],
183
362
  shareCases$: [{ type: Input }],
184
363
  users: [{ type: Input }],
185
364
  confirmLink: [{ type: Input }],
365
+ cancelLink: [{ type: Input }],
186
366
  addUserLabel: [{ type: Input }],
187
367
  showRemoveUsers: [{ type: Input }],
368
+ fnTitle: [{ type: Input }],
369
+ title: [{ type: Input }],
188
370
  unselect: [{ type: Output }],
189
371
  synchronizeStore: [{ type: Output }],
190
372
  userSelect: [{ type: ViewChild, args: [UserSelectComponent,] }]
@@ -196,6 +378,14 @@ if (false) {
196
378
  /** @type {?} */
197
379
  ShareCaseComponent.prototype.shareCases;
198
380
  /** @type {?} */
381
+ ShareCaseComponent.prototype.selectedCasesErrorMessageConfig;
382
+ /** @type {?} */
383
+ ShareCaseComponent.prototype.continueAllowed;
384
+ /** @type {?} */
385
+ ShareCaseComponent.prototype.assignedUsers;
386
+ /** @type {?} */
387
+ ShareCaseComponent.prototype.selectedUserToRemove;
388
+ /** @type {?} */
199
389
  ShareCaseComponent.prototype.removeUserFromCaseToggleOn;
200
390
  /** @type {?} */
201
391
  ShareCaseComponent.prototype.shareCases$;
@@ -204,10 +394,16 @@ if (false) {
204
394
  /** @type {?} */
205
395
  ShareCaseComponent.prototype.confirmLink;
206
396
  /** @type {?} */
397
+ ShareCaseComponent.prototype.cancelLink;
398
+ /** @type {?} */
207
399
  ShareCaseComponent.prototype.addUserLabel;
208
400
  /** @type {?} */
209
401
  ShareCaseComponent.prototype.showRemoveUsers;
210
402
  /** @type {?} */
403
+ ShareCaseComponent.prototype.fnTitle;
404
+ /** @type {?} */
405
+ ShareCaseComponent.prototype.title;
406
+ /** @type {?} */
211
407
  ShareCaseComponent.prototype.unselect;
212
408
  /** @type {?} */
213
409
  ShareCaseComponent.prototype.synchronizeStore;
@@ -221,10 +417,19 @@ if (false) {
221
417
  * @private
222
418
  */
223
419
  ShareCaseComponent.prototype.userSelect;
420
+ /** @type {?} */
421
+ ShareCaseComponent.prototype.validationErrors;
422
+ /** @type {?} */
423
+ ShareCaseComponent.prototype.shareCaseErrorMessage;
224
424
  /**
225
425
  * @type {?}
226
426
  * @private
227
427
  */
228
428
  ShareCaseComponent.prototype.stateService;
429
+ /**
430
+ * @type {?}
431
+ * @private
432
+ */
433
+ ShareCaseComponent.prototype.router;
229
434
  }
230
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtY2FzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvc2hhcmUtY2FzZS9zaGFyZS1jYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR2xDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRTNFO0lBMEJFLDRCQUE2QixZQUFxQztRQUFyQyxpQkFBWSxHQUFaLFlBQVksQ0FBeUI7UUFuQjNELGVBQVUsR0FBaUIsRUFBRSxDQUFDLENBQUMsNkJBQTZCOztRQUVuRCwrQkFBMEIsR0FBWSxLQUFLLENBQUM7UUFHNUMsVUFBSyxHQUFrQixFQUFFLENBQUMsQ0FBQywwREFBMEQ7O1FBRXJGLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBRXpCLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBRWhDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBQzFDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFPVSxDQUFDOzs7O0lBRWhFLHFDQUFROzs7SUFBZjtRQUFBLGlCQU1DO1FBTEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTOzs7O1FBQUMsVUFBQSxVQUFVO1lBQ25DLEtBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1lBQzdCLEtBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsRUFBQyxDQUFDO1FBQ0gsSUFBSSxDQUFD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QUNOLE1BQU07NkJBSU4sU0FBUyxTQUFDLG1CQUFtQjs7SUFrRWhDLHlCQUFDO0NBQUEsQUF6RkQsSUF5RkM7U0FwRlksa0JBQWtCOzs7SUFFN0Isd0NBQXFDOztJQUVyQyx3REFBNEQ7O0lBRTVELHlDQUFzRDs7SUFDdEQsbUNBQTBDOztJQUUxQyx5Q0FBeUM7O0lBQ3pDLDBDQUFxQzs7SUFDckMsNkNBQWlEOztJQUVqRCxzQ0FBMkQ7O0lBQzNELDhDQUE0RDs7Ozs7SUFFNUQsMENBQWtDOzs7OztJQUVsQyx3Q0FDaUQ7Ozs7O0lBRXJDLDBDQUFzRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2hhcmVkQ2FzZSB9IGZyb20gJy4uLy4uL21vZGVscy9jYXNlLXNoYXJlLm1vZGVsJztcbmltcG9ydCB7IFVzZXJEZXRhaWxzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3VzZXItZGV0YWlscy5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlU2hhcmluZ1N0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Nhc2Utc2hhcmluZy1zdGF0ZS9jYXNlLXNoYXJpbmctc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vdXNlci1zZWxlY3QvdXNlci1zZWxlY3QuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLXNoYXJlLWNhc2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2hhcmUtY2FzZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NoYXJlLWNhc2UuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTaGFyZUNhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBzaGFyZUNhc2VzOiBTaGFyZWRDYXNlW10gPSBbXTsgLy8gY2FzZXMgc2VsZWN0ZWQgZm9yIHNoYXJpbmdcblxuICBASW5wdXQoKSBwdWJsaWMgcmVtb3ZlVXNlckZyb21DYXNlVG9nZ2xlT246IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSBwdWJsaWMgc2hhcmVDYXNlcyQ6IE9ic2VydmFibGU8U2hhcmVkQ2FzZVtdPjtcbiAgQElucHV0KCkgcHVibGljIHVzZXJzOiBVc2VyRGV0YWlsc1tdID0gW107IC8vIHVzZXJzIG9mIHRoaXMgb3JnYW5pc2F0aW9uIHRoZSBjYXNlcyBjYW4gYmUgc2hhcmVkIHdpdGhcblxuICBASW5wdXQoKSBwdWJsaWMgY29uZmlybUxpbms6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgYWRkVXNlckxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93UmVtb3ZlVXNlcnM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgcHVibGljIHVuc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxTaGFyZWRDYXNlPigpO1xuICBAT3V0cHV0KCkgcHVibGljIHN5bmNocm9uaXplU3RvcmUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBwcml2YXRlIHNlbGVjdGVkVXNlcjogVXNlckRldGFpbHM7XG5cbiAgQFZpZXdDaGlsZChVc2VyU2VsZWN0Q29tcG9uZW50KVxuICBwcml2YXRlIHJlYWRvbmx5IHVzZXJTZWxlY3Q6IFVzZXJTZWxlY3RDb21wb25lbnQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzdGF0ZVNlcnZpY2U6IENhc2VTaGFyaW5nU3RhdGVTZXJ2aWNlKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zaGFyZUNhc2VzJC5zdWJzY3JpYmUoc2hhcmVDYXNlcyA9PiB7XG4gICAgICB0aGlzLnNoYXJlQ2FzZXMgPSBzaGFyZUNhc2VzO1xuICAgICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2V0Q2FzZXMoc2hhcmVDYXNlcyk7XG4gICAgfSk7XG4gICAgdGhpcy5zaGFyZUNhc2VzJCA9IHRoaXMuc3RhdGVTZXJ2aWNlLnN0YXRlO1xuICB9XG5cbiAgcHVibGljIG9uVW5zZWxlY3QoYzogU2hhcmVkQ2FzZSk6IHZvaWQge1xuICAgIHRoaXMudW5zZWxlY3QuZW1pdChjKTtcbiAgICB0aGlzLnN0YXRlU2VydmljZS5yZW1vdmVDYXNlKGMuY2FzZUlkKTtcbiAgfVxuXG4gIHB1YmxpYyBvblN5bmNocm9uaXplU3RvcmUoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc3luY2hyb25pemVTdG9yZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGVkVXNlcih1c2VyOiBVc2VyRGV0YWlscykge1xuICAgIHRoaXMuc2VsZWN0ZWRVc2VyID0gdXNlcjtcbiAgfVxuXG4gIHB1YmxpYyBhZGRVc2VyKCkge1xuICAgIGNvbnN0IG5ld1NoYXJlZENhc2VzID0gdGhpcy5zdGF0ZVNlcnZpY2UucmVxdWVzdFNoYXJlKHRoaXMuc2VsZWN0ZWRVc2VyKTtcbiAgICB0aGlzLnNlbGVjdGVkVXNlciA9IG51bGw7XG4gICAgaWYgKHRoaXMudXNlclNlbGVjdCkgeyB0aGlzLnVzZXJTZWxlY3QuY2xlYXIoKTsgfVxuICAgIHRoaXMuc3luY2hyb25pemVTdG9yZS5lbWl0KG5ld1NoYXJlZENhc2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0Rpc2FibGVkQWRkKCkge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVXNlciA9PT0gbnVsbCB8fCB0aGlzLnNoYXJlQ2FzZXMubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgcHVibGljIGlzRGlzYWJsZWRDb250aW51ZSgpOiBib29sZWFuIHtcbiAgICBsZXQgaXNEaXNhYmxlZDogYm9vbGVhbiA9IHRydWU7XG4gICAgdGhpcy5zaGFyZUNhc2VzJC5zdWJzY3JpYmUoc2hhcmVDYXNlcyA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGNhc2VTdGF0ZSBvZiBzaGFyZUNhc2VzKSB7XG4gICAgICAgIGlmIChjYXNlU3RhdGUucGVuZGluZ1NoYXJlcyAmJiBjYXNlU3RhdGUucGVuZGluZ1NoYXJlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgaXNEaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjYXNlU3RhdGUucGVuZGluZ1Vuc2hhcmVzICYmIGNhc2VTdGF0ZS5wZW5kaW5nVW5zaGFyZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBpc0Rpc2FibGVkO1xuICB9XG5cbiAgcHVibGljIG9uRGVzZWxlY3Qoc2hhcmVkQ2FzZTogU2hhcmVkQ2FzZSk6IHZvaWQge1xuICAgIGlmIChzaGFyZWRDYXNlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB1cGRhdGVkID0gW107XG4gICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdGhpcy5zaGFyZUNhc2VzKSB7XG4gICAgICAgIGlmIChlbGVtZW50LmNhc2VJZCAhPT0gc2hhcmVkQ2FzZS5jYXNlSWQpIHtcbiAgICAgICAgICB1cGRhdGVkLnB1c2goZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuc2hhcmVDYXNlcyA9IHVwZGF0ZWQ7XG4gICAgfVxuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNldENhc2VzKHRoaXMuc2hhcmVDYXNlcyk7XG4gIH1cbn1cbiJdfQ==
435
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtY2FzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvc2hhcmUtY2FzZS9zaGFyZS1jYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFjLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFcEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDdkcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFM0U7SUFvQ0UsNEJBQTZCLFlBQXFDLEVBQ3JDLE1BQWM7UUFEZCxpQkFBWSxHQUFaLFlBQVksQ0FBeUI7UUFDckMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQTlCcEMsZUFBVSxHQUFpQixFQUFFLENBQUMsQ0FBQyw2QkFBNkI7UUFFNUQsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFeEIseUJBQW9CLEdBQWdCLElBQUksQ0FBQztRQUVoQywrQkFBMEIsR0FBWSxLQUFLLENBQUM7UUFHNUMsVUFBSyxHQUFrQixFQUFFLENBQUMsQ0FBQywwREFBMEQ7O1FBRXJGLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFFeEIsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixVQUFLLEdB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NkNBc0JaLEtBQUs7OEJBRUwsS0FBSzt3QkFDTCxLQUFLOzhCQUVMLEtBQUs7NkJBQ0wsS0FBSzsrQkFDTCxLQUFLO2tDQUNMLEtBQUs7MEJBQ0wsS0FBSzt3QkFDTCxLQUFLOzJCQUVMLE1BQU07bUNBQ04sTUFBTTs2QkFJTixTQUFTLFNBQUMsbUJBQW1COztJQXlLaEMseUJBQUM7Q0FBQSxBQXZNRCxJQXVNQztTQWxNWSxrQkFBa0I7OztJQUU3Qix3Q0FBcUM7O0lBQ3JDLDZEQUF5RDs7SUFDekQsNkNBQStCOztJQUMvQiwyQ0FBb0M7O0lBQ3BDLGtEQUFnRDs7SUFFaEQsd0RBQTREOztJQUU1RCx5Q0FBc0Q7O0lBQ3RELG1DQUEwQzs7SUFFMUMseUNBQXlDOztJQUN6Qyx3Q0FBd0M7O0lBQ3hDLDBDQUFxQzs7SUFDckMsNkNBQWlEOztJQUNqRCxxQ0FBcUM7O0lBQ3JDLG1DQUFtQzs7SUFFbkMsc0NBQTJEOztJQUMzRCw4Q0FBNEQ7Ozs7O0lBRTVELDBDQUFrQzs7Ozs7SUFFbEMsd0NBQ2lEOztJQUVqRCw4Q0FBZ0U7O0lBQ2hFLG1EQUFpRDs7Ozs7SUFFckMsMENBQXNEOzs7OztJQUN0RCxvQ0FBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2VzTW9kZWwsIEdvdlVpQ29uZmlnTW9kZWwgfSBmcm9tICcuLi8uLi9nb3YtdWkvbW9kZWxzJztcbmltcG9ydCB7IFNoYXJlZENhc2UsIFNoYXJlZENhc2VFcnJvck1lc3NhZ2VzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Nhc2Utc2hhcmUubW9kZWwnO1xuaW1wb3J0IHsgVXNlckRldGFpbHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlci1kZXRhaWxzLm1vZGVsJztcbmltcG9ydCB7IENhc2VTaGFyaW5nU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FzZS1zaGFyaW5nLXN0YXRlL2Nhc2Utc2hhcmluZy1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi91c2VyLXNlbGVjdC91c2VyLXNlbGVjdC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWlsaWItc2hhcmUtY2FzZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaGFyZS1jYXNlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2hhcmUtY2FzZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNoYXJlQ2FzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIHNoYXJlQ2FzZXM6IFNoYXJlZENhc2VbXSA9IFtdOyAvLyBjYXNlcyBzZWxlY3RlZCBmb3Igc2hhcmluZ1xuICBwdWJsaWMgc2VsZWN0ZWRDYXNlc0Vycm9yTWVzc2FnZUNvbmZpZzogR292VWlDb25maWdNb2RlbDtcbiAgcHVibGljIGNvbnRpbnVlQWxsb3dlZCA9IGZhbHNlO1xuICBwdWJsaWMgYXNzaWduZWRVc2VyczogVXNlckRldGFpbHNbXTtcbiAgcHVibGljIHNlbGVjdGVkVXNlclRvUmVtb3ZlOiBVc2VyRGV0YWlscyA9IG51bGw7XG5cbiAgQElucHV0KCkgcHVibGljIHJlbW92ZVVzZXJGcm9tQ2FzZVRvZ2dsZU9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgcHVibGljIHNoYXJlQ2FzZXMkOiBPYnNlcnZhYmxlPFNoYXJlZENhc2VbXT47XG4gIEBJbnB1dCgpIHB1YmxpYyB1c2VyczogVXNlckRldGFpbHNbXSA9IFtdOyAvLyB1c2VycyBvZiB0aGlzIG9yZ2FuaXNhdGlvbiB0aGUgY2FzZXMgY2FuIGJlIHNoYXJlZCB3aXRoXG5cbiAgQElucHV0KCkgcHVibGljIGNvbmZpcm1MaW5rOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGNhbmNlbExpbms6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgYWRkVXNlckxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93UmVtb3ZlVXNlcnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGZuVGl0bGU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgdGl0bGU6IHN0cmluZyA9ICcnO1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgdW5zZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFNoYXJlZENhc2U+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgc3luY2hyb25pemVTdG9yZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHByaXZhdGUgc2VsZWN0ZWRVc2VyOiBVc2VyRGV0YWlscztcblxuICBAVmlld0NoaWxkKFVzZXJTZWxlY3RDb21wb25lbnQpXG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlclNlbGVjdDogVXNlclNlbGVjdENvbXBvbmVudDtcblxuICBwdWJsaWMgdmFsaWRhdGlvbkVycm9yczogeyBpZDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcgfVtdID0gW107XG4gIHB1YmxpYyBzaGFyZUNhc2VFcnJvck1lc3NhZ2U6IEVycm9yTWVzc2FnZXNNb2RlbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHN0YXRlU2VydmljZTogQ2FzZVNoYXJpbmdTdGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIpIHsgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNoYXJlQ2FzZXMkXG4gICAgICAucGlwZSh0YXAoc2hhcmVkQ2FzZXMgPT4ge1xuICAgICAgICAvLyBVcGRhdGUgdGhlIGxpc3Qgb2YgdXNlcnMgYXNzaWduZWQgdG8gYXQgbGVhc3Qgb25lIGNhc2VcbiAgICAgICAgdGhpcy5nZXRBc3NpZ25lZFVzZXJzKHNoYXJlZENhc2VzLmZpbHRlcihzaGFyZWRDYXNlID0+IHNoYXJlZENhc2Uuc2hhcmVkV2l0aCAmJiBzaGFyZWRDYXNlLnNoYXJlZFdpdGgubGVuZ3RoID4gMCkpO1xuICAgICAgfSkpXG4gICAgICAuc3Vic2NyaWJlKHNoYXJlQ2FzZXMgPT4ge1xuICAgICAgICB0aGlzLnNoYXJlQ2FzZXMgPSBzaGFyZUNhc2VzO1xuICAgICAgICB0aGlzLnN0YXRlU2VydmljZS5zZXRDYXNlcyhzaGFyZUNhc2VzKTtcbiAgICAgICAgLy8gU2V0IHRoZSBjb25maWcgdG8gYmUgdXNlZCBieSB0aGUgeHVpbGliLWdvdi11ay1lcnJvci1tZXNzYWdlIGNvbXBvbmVudCwgaW4gcGFydGljdWxhciB0aGUgZWxlbWVudCBJRCB0b1xuICAgICAgICAvLyB3aGljaCB0aGUgZXJyb3IgbWVzc2FnZSBpcyBhc3NvY2lhdGVkXG4gICAgICAgIGlmIChzaGFyZUNhc2VzKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzRXJyb3JNZXNzYWdlQ29uZmlnID0ge1xuICAgICAgICAgICAgaWQ6IHNoYXJlQ2FzZXMubGVuZ3RoID4gMCA/ICdjYXNlcycgOiAnbm9DYXNlRGlzcGxheSdcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB0aGlzLnNoYXJlQ2FzZXMkID0gdGhpcy5zdGF0ZVNlcnZpY2Uuc3RhdGU7XG4gICAgdGhpcy5zaGFyZUNhc2VFcnJvck1lc3NhZ2UgPSB7IGlzSW52YWxpZDogZmFsc2UsIG1lc3NhZ2VzOiBbXSB9O1xuICB9XG5cbiAgcHVibGljIG9uVW5zZWxlY3QoYzogU2hhcmVkQ2FzZSk6IHZvaWQge1xuICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IFtdO1xuICAgIGlmICh0aGlzLnN0YXRlU2VydmljZS5nZXRDYXNlcygpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goeyBpZDogJ2Nhc2VzJywgbWVzc2FnZTogU2hhcmVkQ2FzZUVycm9yTWVzc2FnZXMuT25lQ2FzZU11c3RCZVNlbGVjdGVkIH0pO1xuICAgICAgdGhpcy5zaGFyZUNhc2VFcnJvck1lc3NhZ2UgPSB7IGlzSW52YWxpZDogdHJ1ZSwgbWVzc2FnZXM6IFtTaGFyZWRDYXNlRXJyb3JNZXNzYWdlcy5PbmVDYXNlTXVzdEJlU2VsZWN0ZWRdIH07XG4gICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IDAsIGxlZnQ6IDAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51bnNlbGVjdC5lbWl0KGMpO1xuICAgICAgdGhpcy5zdGF0ZVNlcnZpY2UucmVtb3ZlQ2FzZShjLmNhc2VJZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uU3luY2hyb25pemVTdG9yZShldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zeW5jaHJvbml6ZVN0b3JlLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIG9uU2VsZWN0ZWRVc2VyKHVzZXI6IFVzZXJEZXRhaWxzKSB7XG4gICAgdGhpcy5zZWxlY3RlZFVzZXIgPSB1c2VyO1xuICB9XG5cbiAgcHVibGljIGFkZFVzZXIoKSB7XG4gICAgY29uc3QgbmV3U2hhcmVkQ2FzZXMgPSB0aGlzLnN0YXRlU2VydmljZS5yZXF1ZXN0U2hhcmUodGhpcy5zZWxlY3RlZFVzZXIpO1xuICAgIHRoaXMuc2VsZWN0ZWRVc2VyID0gbnVsbDtcbiAgICBpZiAodGhpcy51c2VyU2VsZWN0KSB7IHRoaXMudXNlclNlbGVjdC5jbGVhcigpOyB9XG4gICAgdGhpcy5zeW5jaHJvbml6ZVN0b3JlLmVtaXQobmV3U2hhcmVkQ2FzZXMpO1xuICAgIC8vIFVwZGF0ZSB0aGUgbGlzdCBvZiBhc3NpZ25lZCB1c2VycyAod2hpY2ggaW5jbHVkZXMgcGVuZGluZyB1c2VycylcbiAgICB0aGlzLmdldEFzc2lnbmVkVXNlcnMobmV3U2hhcmVkQ2FzZXMpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZVVzZXIoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRVc2VyVG9SZW1vdmUpIHtcbiAgICAgIGNvbnN0IG5ld1NoYXJlZENhc2VzID0gdGhpcy5zdGF0ZVNlcnZpY2UucmVxdWVzdFVuc2hhcmUodGhpcy5zZWxlY3RlZFVzZXJUb1JlbW92ZSk7XG4gICAgICB0aGlzLnN5bmNocm9uaXplU3RvcmUuZW1pdChuZXdTaGFyZWRDYXNlcyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzRGlzYWJsZWRBZGQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRVc2VyID09PSBudWxsIHx8IHRoaXMuc2hhcmVDYXNlcy5sZW5ndGggPT09IDA7XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gb3JpZ2luYWxseSB1c2VkIHRvIHNldCBkaXNhYmxlZCBzdGF0ZSBvZiBcIkNvbnRpbnVlXCIgYnV0dG9uLCBub3cgY2FsbGVkIGJ5IHRoZSBidXR0b24gY2xpY2sgaGFuZGxlciB0b1xuICAgKiBjb250cm9sIHdoZXRoZXIgbmF2aWdhdGlvbiB0byB0aGUgY29uZmlybWF0aW9uIHBhZ2UgaXMgYWxsb3dlZC4gSXQgaXMgcHJldmVudGVkIGlmIG5vIGNoYW5nZXMgaGF2ZSBiZWVuIG1hZGVcbiAgICovXG4gIHB1YmxpYyBzZXRDb250aW51ZUFsbG93ZWQoKTogdm9pZCB7XG4gICAgLy8gQWx3YXlzIHN0YXJ0IHdpdGggY29udGludWVBbGxvd2VkID0gZmFsc2UuIFRoaXMgY292ZXJzIHRoZSBzY2VuYXJpbyB3aGVyZSBhIHVzZXIgbWlnaHQgYWRkIHNvbWVvbmUgZm9yIHNoYXJpbmdcbiAgICAvLyBhIGNhc2UgKHNvLCBjb250aW51ZUFsbG93ZWQgPSB0cnVlKSwgdGhlbiByZW1vdmVzIHRoZSBzYW1lIHVzZXIgYmVmb3JlIHRyeWluZyB0byBjb250aW51ZS4gVGhpcyB3b3VsZFxuICAgIC8vIGVycm9uZW91c2x5IGxlYXZlIGNvbnRpbnVlQWxsb3dlZCBhcyB0cnVlXG4gICAgdGhpcy5jb250aW51ZUFsbG93ZWQgPSBmYWxzZTtcbiAgICB0aGlzLnNoYXJlQ2FzZXMkLnN1YnNjcmliZShzaGFyZUNhc2VzID0+IHtcbiAgICAgIGZvciAoY29uc3QgY2FzZVN0YXRlIG9mIHNoYXJlQ2FzZXMpIHtcbiAgICAgICAgaWYgKGNhc2VTdGF0ZS5wZW5kaW5nU2hhcmVzICYmIGNhc2VTdGF0ZS5wZW5kaW5nU2hhcmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLmNvbnRpbnVlQWxsb3dlZCA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhc2VTdGF0ZS5wZW5kaW5nVW5zaGFyZXMgJiYgY2FzZVN0YXRlLnBlbmRpbmdVbnNoYXJlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5jb250aW51ZUFsbG93ZWQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25EZXNlbGVjdChzaGFyZWRDYXNlOiBTaGFyZWRDYXNlKTogdm9pZCB7XG4gICAgaWYgKHNoYXJlZENhc2UgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHVwZGF0ZWQgPSBbXTtcbiAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiB0aGlzLnNoYXJlQ2FzZXMpIHtcbiAgICAgICAgaWYgKGVsZW1lbnQuY2FzZUlkICE9PSBzaGFyZWRDYXNlLmNhc2VJZCkge1xuICAgICAgICAgIHVwZGF0ZWQucHVzaChlbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5zaGFyZUNhc2VzID0gdXBkYXRlZDtcbiAgICB9XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2V0Q2FzZXModGhpcy5zaGFyZUNhc2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNvbnRpbnVlKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0Q29udGludWVBbGxvd2VkKCk7XG4gICAgLy8gSWYgY29udGludWF0aW9uIGlzIG5vdCBhbGxvd2VkLCBzZXQgYW4gZXJyb3IgbWVzc2FnZVxuICAgIGlmICghdGhpcy5jb250aW51ZUFsbG93ZWQpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IFtdO1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goeyBpZDogJ2Nhc2VzJywgbWVzc2FnZTogU2hhcmVkQ2FzZUVycm9yTWVzc2FnZXMuTm9DaGFuZ2VzUmVxdWVzdGVkIH0pO1xuICAgICAgdGhpcy5zaGFyZUNhc2VFcnJvck1lc3NhZ2UgPSB7IGlzSW52YWxpZDogdHJ1ZSwgbWVzc2FnZXM6IFtTaGFyZWRDYXNlRXJyb3JNZXNzYWdlcy5Ob0NoYW5nZXNSZXF1ZXN0ZWRdIH07XG4gICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IDAsIGxlZnQ6IDAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICB9XG4gICAgLy8gTmF2aWdhdGUgdG8gY29uZmlybWF0aW9uIHBhZ2Ugb25seSBpZiBhbGxvd2VkIHRvIGNvbnRpbnVlXG4gICAgaWYgKHRoaXMuY29udGludWVBbGxvd2VkKSB7XG4gICAgICAvLyBDaGVjayB0aGF0IG5vIGNhc2UgaXMgbGVmdCB1bmFzc2lnbmVkOyBhIHVzZXIgY2FuIGJlIHJlbW92ZWQgb25seSBpZiB0aGVyZSBpcyBhbm90aGVyIGN1cnJlbnQgdXNlciwgb3IgaWYgYXRcbiAgICAgIC8vIGxlYXN0IG9uZSB1c2VyIGlzIHRvIGJlIGFkZGVkLiBQcmV2ZW50IG5hdmlnYXRpb24gdG8gY29uZmlybWF0aW9uIHBhZ2UgaWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIGNhc2UgbGVmdCBpblxuICAgICAgLy8gYW4gdW5hc3NpZ25lZCBzdGF0ZVxuICAgICAgaWYgKHRoaXMuaGFzQ2FzZXNMZWZ0VW5hc3NpZ25lZCh0aGlzLnNoYXJlQ2FzZXMpKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IFtdO1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMucHVzaCh7IGlkOiAnY2FzZXMnLCBtZXNzYWdlOiBTaGFyZWRDYXNlRXJyb3JNZXNzYWdlcy5PbmVQZXJzb25NdXN0QmVBc3NpZ25lZCB9KTtcbiAgICAgICAgdGhpcy5zaGFyZUNhc2VFcnJvck1lc3NhZ2UgPSB7IGlzSW52YWxpZDogdHJ1ZSwgbWVzc2FnZXM6IFtTaGFyZWRDYXNlRXJyb3JNZXNzYWdlcy5PbmVQZXJzb25NdXN0QmVBc3NpZ25lZF0gfTtcbiAgICAgICAgd2luZG93LnNjcm9sbFRvKHsgdG9wOiAwLCBsZWZ0OiAwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5jb25maXJtTGlua10pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgdW5pcXVlIGxpc3Qgb2YgYWxsIHVzZXJzIHRoYXQgaGF2ZSBiZWVuIGFzc2lnbmVkLCBvciBhcmUgcGVuZGluZyBhc3NpZ21lbnQgdG8sIGF0IGxlYXN0IG9uZSBjYXNlXG4gICAqIEBwYXJhbSBzaGFyZWRDYXNlcyBUaGUgbGlzdCBvZiBzaGFyZWQgY2FzZXMgZnJvbSB3aGljaCB0byBnZXQgdXNlcnMgdGhlc2UgYXJlIHNoYXJlZCB3aXRoLCBvciBhcmUgdG8gYmUgc2hhcmVkIHdpdGhcbiAgICovXG4gIHB1YmxpYyBnZXRBc3NpZ25lZFVzZXJzKHNoYXJlZENhc2VzOiBTaGFyZWRDYXNlW10pOiB2b2lkIHtcbiAgICBjb25zdCB1c2VyczogVXNlckRldGFpbHNbXSA9IFtdO1xuICAgIHNoYXJlZENhc2VzLmZvckVhY2goc2hhcmVkQ2FzZSA9PiB7XG4gICAgICBpZiAoc2hhcmVkQ2FzZS5zaGFyZWRXaXRoKSB7XG4gICAgICAgIHNoYXJlZENhc2Uuc2hhcmVkV2l0aC5mb3JFYWNoKHVzZXIgPT4ge1xuICAgICAgICAgIGlmICghdXNlcnMuc29tZShleGlzdGluZ1VzZXIgPT4gdXNlci5pZGFtSWQgPT09IGV4aXN0aW5nVXNlci5pZGFtSWQpKSB7XG4gICAgICAgICAgICB1c2Vycy5wdXNoKHVzZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAoc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzKSB7XG4gICAgICAgIHNoYXJlZENhc2UucGVuZGluZ1NoYXJlcy5mb3JFYWNoKHVzZXIgPT4ge1xuICAgICAgICAgIGlmICghdXNlcnMuc29tZShleGlzdGluZ1VzZXIgPT4gdXNlci5pZGFtSWQgPT09IGV4aXN0aW5nVXNlci5pZGFtSWQpKSB7XG4gICAgICAgICAgICB1c2Vycy5wdXNoKHVzZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5hc3NpZ25lZFVzZXJzID0gdXNlcnM7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGFueSBzaGFyZWQgY2FzZXMgaGF2ZSBiZWVuIGxlZnQgdW5hc3NpZ25lZC4gVGhpcyBvY2N1cnMgaWYgYSBzaGFyZWQgY2FzZSBoYXMgYSBudW1iZXIgb2YgcGVuZGluZ1xuICAgKiB1bnNoYXJlcyBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIGN1cnJlbnQgc2hhcmVzLCBhbmQgdGhlcmUgYXJlIG5vIHBlbmRpbmcgc2hhcmVzLlxuICAgKiBAcGFyYW0gc2hhcmVkQ2FzZXMgVGhlIGFycmF5IG9mIHNoYXJlZCBjYXNlcyB0byBjaGVja1xuICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgYXQgbGVhc3Qgb25lIGNhc2UgaGFzIHRoZSBjb25kaXRpb24gZGVzY3JpYmVkIGFib3ZlOyBgZmFsc2VgIG90aGVyd2lzZVxuICAgKi9cbiAgcHVibGljIGhhc0Nhc2VzTGVmdFVuYXNzaWduZWQoc2hhcmVkQ2FzZXM6IFNoYXJlZENhc2VbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzaGFyZWRDYXNlcy5zb21lKHNoYXJlZENhc2UgPT4ge1xuICAgICAgcmV0dXJuIHNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzICYmIHNoYXJlZENhc2Uuc2hhcmVkV2l0aCAmJlxuICAgICAgICBzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcy5sZW5ndGggPT09IHNoYXJlZENhc2Uuc2hhcmVkV2l0aC5sZW5ndGggJiZcbiAgICAgICAgKCFzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMgfHwgc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzLmxlbmd0aCA9PT0gMCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -7,8 +7,9 @@ import * as tslib_1 from "tslib";
7
7
  import { CommonModule } from '@angular/common';
8
8
  import { NgModule } from '@angular/core';
9
9
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
10
- import { MatInputModule, MatTabsModule } from '@angular/material';
11
10
  import { MatAutocompleteModule } from '@angular/material/autocomplete';
11
+ import { MatInputModule } from '@angular/material/input';
12
+ import { MatTabsModule } from '@angular/material/tabs';
12
13
  import { RouterModule } from '@angular/router';
13
14
  import { NgxPaginationModule, PaginatePipe } from 'ngx-pagination';
14
15
  import { AccessibilityComponent } from './components/accessibility/accessibility.component';
@@ -20,7 +21,6 @@ import { ExuiPageWrapperComponent } from './components/exui-main-wrapper/exui-pa
20
21
  import { FindLocationComponent } from './components/find-location/find-location.component';
21
22
  import { FindPersonComponent } from './components/find-person/find-person.component';
22
23
  import { FindServiceComponent } from './components/find-service/find-service.component';
23
- import { FindTaskNameComponent } from './components/find-task-name/find-task-name.component';
24
24
  import { GenericFilterComponent } from './components/generic-filter/generic-filter.component';
25
25
  import { HmctsSessionDialogComponent } from './components/hmcts-session-dialog/hmcts-session-dialog.component';
26
26
  import { InviteUserFormComponent } from './components/invite-user-form/invite-user-form.component';
@@ -70,7 +70,6 @@ import { HmctsPaginationComponent } from './gov-ui/components/hmcts-pagination/h
70
70
  import { HmctsPrimaryNavigationComponent } from './gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component';
71
71
  import { HmctsSubNavigationComponent } from './gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component';
72
72
  import { RemoveHostDirective } from './gov-ui/directives/remove-host.directive';
73
- import { CapitalizePipe } from './pipes/capitalize.pipe';
74
73
  import { windowProvider, windowToken } from './window';
75
74
  /** @type {?} */
76
75
  export var COMMON_COMPONENTS = [
@@ -105,7 +104,6 @@ export var COMMON_COMPONENTS = [
105
104
  FindPersonComponent,
106
105
  SearchJudicialsComponent,
107
106
  FindLocationComponent,
108
- FindTaskNameComponent,
109
107
  SearchLocationComponent,
110
108
  FindServiceComponent,
111
109
  SearchServiceComponent,
@@ -137,17 +135,13 @@ export var GOV_UI_COMPONENTS = [
137
135
  GovUkFileUploadComponent,
138
136
  RemoveHostDirective
139
137
  ];
140
- /** @type {?} */
141
- var pipes = [
142
- CapitalizePipe
143
- ];
144
138
  var ɵ0 = windowProvider;
145
139
  var ExuiCommonLibModule = /** @class */ (function () {
146
140
  function ExuiCommonLibModule() {
147
141
  }
148
142
  ExuiCommonLibModule.decorators = [
149
143
  { type: NgModule, args: [{
150
- declarations: tslib_1.__spread(COMMON_COMPONENTS, GOV_UI_COMPONENTS, pipes),
144
+ declarations: tslib_1.__spread(COMMON_COMPONENTS, GOV_UI_COMPONENTS),
151
145
  imports: [
152
146
  CommonModule,
153
147
  FormsModule,
@@ -163,11 +157,11 @@ var ExuiCommonLibModule = /** @class */ (function () {
163
157
  ],
164
158
  exports: tslib_1.__spread(COMMON_COMPONENTS, GOV_UI_COMPONENTS, [
165
159
  PaginatePipe
166
- ], pipes)
160
+ ])
167
161
  },] }
168
162
  ];
169
163
  return ExuiCommonLibModule;
170
164
  }());
171
165
  export { ExuiCommonLibModule };
172
166
  export { ɵ0 };
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh1aS1jb21tb24tbGliLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvZXh1aS1jb21tb24tbGliLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLG1CQUFtQixFQUFFLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQ3pGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQy9GLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFr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QUNGOztJQUVELDBCQUFDO0NBQUEsQUEzQkQsSUEyQkM7U0FEWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtNYXRJbnB1dE1vZHVsZSwgTWF0VGFic01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xuaW1wb3J0IHtNYXRBdXRvY29tcGxldGVNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQge1JvdXRlck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7Tmd4UGFnaW5hdGlvbk1vZHVsZSwgUGFnaW5hdGVQaXBlfSBmcm9tICduZ3gtcGFnaW5hdGlvbic7XG5pbXBvcnQge0FjY2Vzc2liaWxpdHlDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9hY2Nlc3NpYmlsaXR5L2FjY2Vzc2liaWxpdHkuY29tcG9uZW50JztcbmltcG9ydCB7Q2hlY2tib3hMaXN0Q29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvY2hlY2tib3gtbGlzdC9jaGVja2JveC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQge0NvbnRhY3REZXRhaWxzQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvY29udGFjdC1kZXRhaWxzL2NvbnRhY3QtZGV0YWlscy5jb21wb25lbnQnO1xuaW1wb3J0IHtDb29raWVCYW5uZXJDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9jb29raWUtYmFubmVyL2Nvb2tpZS1iYW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7RHVlRGF0ZUNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2R1ZS1kYXRlL2R1ZS1kYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQge0V4dWlQYWdlV3JhcHBlckNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2V4dWktbWFpbi13cmFwcGVyL2V4dWktcGFnZS13cmFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge0ZpbmRMb2NhdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpbmQtbG9jYXRpb24vZmluZC1sb2NhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtGaW5kUGVyc29uQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvZmluZC1wZXJzb24vZmluZC1wZXJzb24uY29tcG9uZW50JztcbmltcG9ydCB7IEZpbmRTZXJ2aWNlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpbmQtc2VydmljZS9maW5kLXNlcnZpY2UuY29tcG9uZW50JztcbmltcG9ydCB7RmluZFRhc2tOYW1lQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvZmluZC10YXNrLW5hbWUvZmluZC10YXNrLW5hbWUuY29tcG9uZW50JztcbmltcG9ydCB7R2VuZXJpY0ZpbHRlckNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2dlbmVyaWMtZmlsdGVyL2dlbmVyaWMtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge0htY3RzU2Vzc2lvbkRpYWxvZ0NvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2htY3RzLXNlc3Npb24tZGlhbG9nL2htY3RzLXNlc3Npb24tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQge0ludml0ZVVzZXJGb3JtQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvaW52aXRlLXVzZXItZm9ybS9pbnZpdGUtdXNlci1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQge0ludml0ZVVzZXJQZXJtaXNzaW9uQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvaW52aXRlLXVzZXItcGVybWlzc2lvbnMvaW52aXRlLXVzZXItcGVybWlzc2lvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtMb2FkaW5nU3Bpbm5lckNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2xvYWRpbmctc3Bpbm5lci9sb2FkaW5nLXNwaW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7UGFnaW5hdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtTZWFyY2hKdWRpY2lhbHNDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9zZWFyY2gtanVkaWNpYWxzL3NlYXJjaC1qdWRpY2lhbHMuY29tcG9uZW50JztcbmltcG9ydCB7U2VhcmNoTG9jYXRpb25Db21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9zZWFyY2gtbG9jYXRpb24vc2VhcmNoLWxvY2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hTZXJ2aWNlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NlYXJjaC1zZXJ2aWNlL3NlYXJjaC1zZXJ2aWNlLmNvbXBvbmVudCc7XG5pbXBvcnQge1NlYXJjaFZlbnVlQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvc2VhcmNoLXZlbnVlL3NlYXJjaC12ZW51ZS5jb21wb25lbnQnO1xuaW1wb3J0IHtTZWxlY3RlZENhc2VDb25maXJtQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvc2VsZWN0ZWQtY2FzZS1jb25maXJtL3NlbGVjdGVkLWNhc2UtY29uZmlybS5jb21wb25lbnQnO1xuaW1wb3J0IHtTZWxlY3RlZENhc2VMaXN0Q29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvc2VsZWN0ZWQtY2FzZS1saXN0L3NlbGVjdGVkLWNhc2UtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHtTZWxlY3RlZENhc2VDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9zZWxlY3RlZC1jYXNlL3NlbGVjdGVkLWNhc2UuY29tcG9uZW50JztcbmltcG9ydCB7U2VydmljZU1lc3NhZ2VDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9zZXJ2aWNlLW1lc3NhZ2Uvc2VydmljZS1tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQge1NlcnZpY2VNZXNzYWdlc0NvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL3NlcnZpY2UtbWVzc2FnZXMvc2VydmljZS1tZXNzYWdlcy5jb21wb25lbnQnO1xuaW1wb3J0IHtTaGFyZUNhc2VDb25maXJtQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvc2hhcmUtY2FzZS1jb25maXJtL3NoYXJlLWNhc2UtY29uZmlybS5jb21wb25lbnQnO1xuaW1wb3J0IHtTaGFyZUNhc2VDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9zaGFyZS1jYXNlL3NoYXJlLWNhc2UuY29tcG9uZW50JztcbmltcG9ydCB7VGFiQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvdGFiL3RhYi5jb21wb25lbnQnO1xuaW1wb3J0IHtUY0NvbmZpcm1Db21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy90Yy1jb25maXJtL3RjLWNvbmZpcm0uY29tcG9uZW50JztcbmltcG9ydCB7XG4gIFRjRGlzcGxheUh0bWxDb21wb25lbnRcbn0gZnJvbSAnLi9jb21wb25lbnRzL3Rlcm1zLWFuZC1jb25kaXRpb25zL3RjLWRpc3BsYXkvdGMtZGlzcGxheS1odG1sL3RjLWRpc3BsYXktaHRtbC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgVGNEaXNwbGF5UGxhaW5Db21wb25lbnRcbn0gZnJvbSAnLi9jb21wb25lbnRzL3Rlcm1zLWFuZC1jb25kaXRpb25zL3RjLWRpc3BsYXkvdGMtZGlzcGxheS1wbGFpbi90Yy1kaXNwbGF5LXBsYWluLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXJtc0FuZENvbmRpdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGVybXMtYW5kLWNvbmRpdGlvbnMvdGVybXMtYW5kLWNvbmRpdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFVzZXJEZXRhaWxzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VzZXItZGV0YWlscy91c2VyLWRldGFpbHMuY29tcG9uZW50JztcbmltcG9ydCB7IFVzZXJMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VzZXItbGlzdC91c2VyLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFVzZXJTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdXNlci1zZWxlY3QvdXNlci1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEZlYXR1cmVUb2dnbGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZmVhdHVyZS10b2dnbGUvZmVhdHVyZS10b2dnbGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IExldERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9sZXQvbGV0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBHb3ZVa0NoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9nb3YtdWkvY29tcG9uZW50cy9nb3YtdWstY2hlY2tib3gvZ292LXVrLWNoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHb3ZVa0NoZWNrYm94ZXNDb21wb25lbnQgfSBmcm9tICcuL2dvdi11aS9jb21wb25lbnRzL2dvdi11ay1jaGVja2JveGVzL2dvdi11ay1jaGVja2JveGVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHb3ZVa0RhdGVDb21wb25lbnQgfSBmcm9tICcuL2dvdi11aS9jb21wb25lbnRzL2dvdi11ay1kYXRlL2dvdi11ay1kYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHb3ZVa0Vycm9yTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vZ292LXVpL2NvbXBvbmVudHMvZ292LXVrLWVycm9yLW1lc3NhZ2UvZ292LXVrLWVycm9yLW1lc3NhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEdvdlVrRmllbGRzZXRDb21wb25lbnQgfSBmcm9tICcuL2dvdi11aS9jb21wb25lbnRzL2dvdi11ay1maWVsZHNldC9nb3YtdWstZmllbGRzZXQuY29tcG9uZW50JztcbmltcG9ydCB7IEdvdlVrRmlsZVVwbG9hZENvbXBvbmVudCB9IGZyb20gJy4vZ292LXVpL2NvbXBvbmVudHMvZ292LXVrLWZpbGUtdXBsb2FkL2dvdi11ay1maWxlLXVwbG9hZC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgR292VWtGb3JtR3JvdXBXcmFwcGVyQ29tcG9uZW50XG59IGZyb20gJy4vZ292LXVpL2NvbXBvbmVudHMvZ292LXVrLWZvcm0tZ3JvdXAtd3JhcHBlci9nb3YtdWstZm9ybS1ncm91cC13cmFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHb3ZVa0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9nb3YtdWkvY29tcG9uZW50cy9nb3YtdWstaW5wdXQvZ292LXVrLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHb3ZVa0xhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi9nb3YtdWkvY29tcG9uZW50cy9nb3YtdWstbGFiZWwvZ292LXVrLWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHb3ZVa1JhZGlvQ29tcG9uZW50IH0gZnJvbSAnLi9nb3YtdWkvY29tcG9uZW50cy9nb3YtdWstcmFkaW8vZ292LXVrLXJhZGlvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHb3ZVa1JhZGlvc0NvbXBvbmVudCB9IGZyb20gJy4vZ292LXVpL2NvbXBvbmVudHMvZ292LXVrLXJhZGlvcy9nb3YtdWstcmFkaW9zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHb3ZVa1NlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vZ292LXVpL2NvbXBvbmVudHMvZ292LXVrLXNlbGVjdC9nb3YtdWstc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHb3Z1a1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9nb3YtdWkvY29tcG9uZW50cy9nb3YtdWstdGFibGUvZ292LXVrLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHb3ZVa1RleHRhcmVhQ29tcG9uZW50IH0gZnJvbSAnLi9nb3YtdWkvY29tcG9uZW50cy9nb3YtdWstdGV4dGFyZWEvZ292LXVrLXRleHRhcmVhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIbWN0c0Jhbm5lckNvbXBvbmVudCB9IGZyb20gJy4vZ292LXVpL2NvbXBvbmVudHMvaG1jdHMtYmFubmVyL2htY3RzLWJhbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSG1jdHNFcnJvclN1bW1hcnlDb21wb25lbnQgfSBmcm9tICcuL2dvdi11aS9jb21wb25lbnRzL2htY3RzLWVycm9yLXN1bW1hcnkvaG1jdHMtZXJyb3Itc3VtbWFyeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSG1jdHNJZGVudGl0eUJhckNvbXBvbmVudCB9IGZyb20gJy4vZ292LXVpL2NvbXBvbmVudHMvaG1jdHMtaWRlbnRpdHktYmFyL2htY3RzLWlkZW50aXR5LWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSG1jdHNNYWluV3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vZ292LXVpL2NvbXBvbmVudHMvaG1jdHMtbWFpbi13cmFwcGVyL2htY3RzLW1haW4td3JhcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSG1jdHNQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9nb3YtdWkvY29tcG9uZW50cy9obWN0cy1wYWdpbmF0aW9uL2htY3RzLXBhZ2luYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEhtY3RzUHJpbWFyeU5hdmlnYXRpb25Db21wb25lbnRcbn0gZnJvbSAnLi9nb3YtdWkvY29tcG9uZW50cy9obWN0cy1wcmltYXJ5LW5hdmlnYXRpb24vaG1jdHMtcHJpbWFyeS1uYXZpZ2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIbWN0c1N1Yk5hdmlnYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2dvdi11aS9jb21wb25lbnRzL2htY3RzLXN1Yi1uYXZpZ2F0aW9uL2htY3RzLXN1Yi1uYXZpZ2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZW1vdmVIb3N0RGlyZWN0aXZlIH0gZnJvbSAnLi9nb3YtdWkvZGlyZWN0aXZlcy9yZW1vdmUtaG9zdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ2FwaXRhbGl6ZVBpcGUgfSBmcm9tICcuL3BpcGVzL2NhcGl0YWxpemUucGlwZSc7XG5pbXBvcnQgeyB3aW5kb3dQcm92aWRlciwgd2luZG93VG9rZW4gfSBmcm9tICcuL3dpbmRvdyc7XG5cbmV4cG9ydCBjb25zdCBDT01NT05fQ09NUE9ORU5UUyA9IFtcbiAgRXh1aVBhZ2VXcmFwcGVyQ29tcG9uZW50LFxuICBUZXJtc0FuZENvbmRpdGlvbnNDb21wb25lbnQsXG4gIFRjRGlzcGxheUh0bWxDb21wb25lbnQsXG4gIFRjRGlzcGxheVBsYWluQ29tcG9uZW50LFxuICBUY0NvbmZpcm1Db21wb25lbnQsXG4gIENvbnRhY3REZXRhaWxzQ29tcG9uZW50LFxuICBGZWF0dXJlVG9nZ2xlRGlyZWN0aXZlLFxuICBMZXREaXJlY3RpdmUsXG4gIEhtY3RzU2Vzc2lvbkRpYWxvZ0NvbXBvbmVudCxcbiAgVXNlckxpc3RDb21wb25lbnQsXG4gIFVzZXJEZXRhaWxzQ29tcG9uZW50LFxuICBJbnZpdGVVc2VyUGVybWlzc2lvbkNvbXBvbmVudCxcbiAgSW52aXRlVXNlckZvcm1Db21wb25lbnQsXG4gIFNoYXJlQ2FzZUNvbXBvbmVudCxcbiAgU2hhcmVDYXNlQ29uZmlybUNvbXBvbmVudCxcbiAgU2VsZWN0ZWRDYXNlTGlzdENvbXBvbmVudCxcbiAgU2VsZWN0ZWRDYXNlQ29tcG9uZW50LFxuICBTZWxlY3RlZENhc2VDb25maXJtQ29tcG9uZW50LFxuICBVc2VyU2VsZWN0Q29tcG9uZW50LFxuICBUYWJDb21wb25lbnQsXG4gIEFjY2Vzc2liaWxpdHlDb21wb25lbnQsXG4gIER1ZURhdGVDb21wb25lbnQsXG4gIENoZWNrYm94TGlzdENvbXBvbmVudCxcbiAgU2VydmljZU1lc3NhZ2VDb21wb25lbnQsXG4gIFNlcnZpY2VNZXNzYWdlc0NvbXBvbmVudCxcbiAgTG9hZGluZ1NwaW5uZXJDb21wb25lbnQsXG4gIEdlbmVyaWNGaWx0ZXJDb21wb25lbnQsXG4gIENvb2tpZUJhbm5lckNvbXBvbmVudCxcbiAgRmluZFBlcnNvbkNvbXBvbmVudCxcbiAgU2VhcmNoSnVkaWNpYWxzQ29tcG9uZW50LFxuICBGaW5kTG9jYXRpb25Db21wb25lbnQsXG4gIEZpbmRUYXNrTmFtZUNvbXBvbmVudCxcbiAgU2VhcmNoTG9jYXRpb25Db21wb25lbnQsXG4gIEZpbmRTZXJ2aWNlQ29tcG9uZW50LFxuICBTZWFyY2hTZXJ2aWNlQ29tcG9uZW50LFxuICBTZWFyY2hWZW51ZUNvbXBvbmVudCxcbiAgUGFnaW5hdGlvbkNvbXBvbmVudFxuXTtcblxuZXhwb3J0IGNvbnN0IEdPVl9VSV9DT01QT05FTlRTID0gW1xuICBIbWN0c0lkZW50aXR5QmFyQ29tcG9uZW50LFxuICBIbWN0c1BhZ2luYXRpb25Db21wb25lbnQsXG4gIEhtY3RzU3ViTmF2aWdhdGlvbkNvbXBvbmVudCxcbiAgSG1jdHNQcmltYXJ5TmF2aWdhdGlvbkNvbXBvbmVudCxcbiAgSG1jdHNFcnJvclN1bW1hcnlDb21wb25lbnQsXG4gIEhtY3RzTWFpbldyYXBwZXJDb21wb25lbnQsXG4gIEhtY3RzQmFubmVyQ29tcG9uZW50LFxuICBHb3Z1a1RhYmxlQ29tcG9uZW50LFxuICBHb3ZVa0lucHV0Q29tcG9uZW50LFxuICBHb3ZVa0NoZWNrYm94Q29tcG9uZW50LFxuICBHb3ZVa0Zvcm1Hcm91cFdyYXBwZXJDb21wb25lbnQsXG4gIEdvdlVrTGFiZWxDb21wb25lbnQsXG4gIEdvdlVrRXJyb3JNZXNzYWdlQ29tcG9uZW50LFxuICBHb3ZVa0ZpZWxkc2V0Q29tcG9uZW50LFxuICBHb3ZVa0RhdGVDb21wb25lbnQsXG4gIEdvdlVrQ2hlY2tib3hlc0NvbXBvbmVudCxcbiAgR292VWtSYWRpb0NvbXBvbmVudCxcbiAgR292VWtSYWRpb3NDb21wb25lbnQsXG4gIEdvdlVrU2VsZWN0Q29tcG9uZW50LFxuICBHb3ZVa1RleHRhcmVhQ29tcG9uZW50LFxuICBHb3ZVa0ZpbGVVcGxvYWRDb21wb25lbnQsXG4gIFJlbW92ZUhvc3REaXJlY3RpdmVcbl07XG5cbmNvbnN0IHBpcGVzID0gW1xuICBDYXBpdGFsaXplUGlwZVxuXTtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgLi4uQ09NTU9OX0NPTVBPTkVOVFMsXG4gICAgLi4uR09WX1VJX0NPTVBPTkVOVFMsXG4gICAgLi4ucGlwZXNcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZS5mb3JDaGlsZChbXSksXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIE1hdFRhYnNNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTmd4UGFnaW5hdGlvbk1vZHVsZVxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7cHJvdmlkZTogd2luZG93VG9rZW4sIHVzZUZhY3Rvcnk6IHdpbmRvd1Byb3ZpZGVyfVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgLi4uQ09NTU9OX0NPTVBPTkVOVFMsXG4gICAgLi4uR09WX1VJX0NPTVBPTkVOVFMsXG4gICAgUGFnaW5hdGVQaXBlLFxuICAgIC4uLnBpcGVzXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRXh1aUNvbW1vbkxpYk1vZHVsZSB7XG59XG4iXX0=
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh1aS1jb21tb24tbGliLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvZXh1aS1jb21tb24tbGliLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JG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Qix3QkFBd0I7SUFDeEIscUJBQXFCO0lBQ3JCLHVCQUF1QjtJQUN2QixvQkFBb0I7SUFDcEIsc0JBQXNCO0lBQ3RCLG9CQUFvQjtJQUNwQixtQkFBbUI7Q0FDcEI7O0FBRUQsTUFBTSxLQUFPLGlCQUFpQixHQUFHO0lBQy9CLHlCQUF5QjtJQUN6Qix3QkFBd0I7SUFDeEIsMkJBQTJCO0lBQzNCLCtCQUErQjtJQUMvQiwwQkFBMEI7SUFDMUIseUJBQXlCO0lBQ3pCLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLHNCQUFzQjtJQUN0Qiw4QkFBOEI7SUFDOUIsbUJBQW1CO0lBQ25CLDBCQUEwQjtJQUMxQixzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLHdCQUF3QjtJQUN4QixtQkFBbUI7SUFDbkIsb0JBQW9CO0lBQ3BCLG9CQUFvQjtJQUNwQixzQkFBc0I7SUFDdEIsd0JBQXdCO0lBQ3hCLG1CQUFtQjtDQUNwQjtTQWtCc0MsY0FBYztBQWhCckQ7SUFBQTtJQXlCQSxDQUFDOztnQkF6QkEsUUFBUSxTQUFDO29CQUNSLFlBQVksbUJBQ1AsaUJBQWlCLEVBQ2pCLGlCQUFpQixDQUNyQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7d0JBQ3pCLHFCQUFxQjt3QkFDckIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLG1CQUFtQjtxQkFDcEI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULEVBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLElBQWdCLEVBQUM7cUJBQ25EO29CQUNELE9BQU8sbUJBQ0YsaUJBQWlCLEVBQ2pCLGlCQUFpQjt3QkFDcEIsWUFBWTtzQkFDYjtpQkFDRjs7SUFFRCwwQkFBQztDQUFBLEFBekJELElBeUJDO1NBRFksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFRhYnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOZ3hQYWdpbmF0aW9uTW9kdWxlLCBQYWdpbmF0ZVBpcGUgfSBmcm9tICduZ3gtcGFnaW5hdGlvbic7XG5pbXBvcnQgeyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FjY2Vzc2liaWxpdHkvYWNjZXNzaWJpbGl0eS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hlY2tib3hMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NoZWNrYm94LWxpc3QvY2hlY2tib3gtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29udGFjdERldGFpbHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29udGFjdC1kZXRhaWxzL2NvbnRhY3QtZGV0YWlscy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29va2llQmFubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Nvb2tpZS1iYW5uZXIvY29va2llLWJhbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHVlRGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kdWUtZGF0ZS9kdWUtZGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXh1aVBhZ2VXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2V4dWktbWFpbi13cmFwcGVyL2V4dWktcGFnZS13cmFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaW5kTG9jYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmluZC1sb2NhdGlvbi9maW5kLWxvY2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaW5kUGVyc29uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpbmQtcGVyc29uL2ZpbmQtcGVyc29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaW5kU2VydmljZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9maW5kLXNlcnZpY2UvZmluZC1zZXJ2aWNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHZW5lcmljRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dlbmVyaWMtZmlsdGVyL2dlbmVyaWMtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIbWN0c1Nlc3Npb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaG1jdHMtc2Vzc2lvbi1kaWFsb2cvaG1jdHMtc2Vzc2lvbi1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEludml0ZVVzZXJGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ludml0ZS11c2VyLWZvcm0vaW52aXRlLXVzZXItZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW52aXRlVXNlclBlcm1pc3Npb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaW52aXRlLXVzZXItcGVybWlzc2lvbnMvaW52aXRlLXVzZXItcGVybWlzc2lvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9hZGluZ1NwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbG9hZGluZy1zcGlubmVyL2xvYWRpbmctc3Bpbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaEp1ZGljaWFsc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZWFyY2gtanVkaWNpYWxzL3NlYXJjaC1qdWRpY2lhbHMuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaExvY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NlYXJjaC1sb2NhdGlvbi9zZWFyY2gtbG9jYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaFNlcnZpY2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VhcmNoLXNlcnZpY2Uvc2VhcmNoLXNlcnZpY2UuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaFZlbnVlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NlYXJjaC12ZW51ZS9zZWFyY2gtdmVudWUuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdGVkQ2FzZUNvbmZpcm1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VsZWN0ZWQtY2FzZS1jb25maXJtL3NlbGVjdGVkLWNhc2UtY29uZmlybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0ZWRDYXNlTGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZWxlY3RlZC1jYXNlLWxpc3Qvc2VsZWN0ZWQtY2FzZS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3RlZENhc2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VsZWN0ZWQtY2FzZS9zZWxlY3RlZC1jYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZXJ2aWNlTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZXJ2aWNlLW1lc3NhZ2Uvc2VydmljZS1tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZXJ2aWNlTWVzc2FnZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VydmljZS1tZXNzYWdlcy9zZXJ2aWNlLW1lc3NhZ2VzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaGFyZUNhc2VDb25maXJtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NoYXJlLWNhc2UtY29uZmlybS9zaGFyZS1jYXNlLWNvbmZpcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFNoYXJlQ2FzZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zaGFyZS1jYXNlL3NoYXJlLWNhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWIvdGFiLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUY0NvbmZpcm1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGMtY29uZmlybS90Yy1jb25maXJtLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBUY0Rpc3BsYXlIdG1sQ29tcG9uZW50XG59IGZyb20gJy4vY29tcG9uZW50cy90ZXJtcy1hbmQtY29uZGl0aW9ucy90Yy1kaXNwbGF5L3RjLWRpc3BsYXktaHRtbC90Yy1kaXNwbGF5LWh0bWwuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIFRjRGlzcGxheVBsYWluQ29tcG9uZW50XG59IGZyb20gJy4vY29tcG9uZW50cy90ZXJtcy1hbmQtY29uZGl0aW9ucy90Yy1kaXNwbGF5L3RjLWRpc3BsYXktcGxhaW4vdGMtZGlzcGxheS1wbGFpbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVybXNBbmRDb25kaXRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Rlcm1zLWFuZC1jb25kaXRpb25zL3Rlcm1zLWFuZC1jb25kaXRpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVc2VyRGV0YWlsc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy91c2VyLWRldGFpbHMvdXNlci1kZXRhaWxzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVc2VyTGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy91c2VyLWxpc3QvdXNlci1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVc2VyU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VzZXItc2VsZWN0L3VzZXItc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGZWF0dXJlVG9nZ2xlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2ZlYXR1cmUtdG9nZ2xlL2ZlYXR1cmUtdG9nZ2xlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBMZXREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvbGV0L2xldC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgR292VWtDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vZ292LXVpL2NvbXBvbmVudHMvZ292LXVrLWNoZWNrYm94L2dvdi11ay1jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgR292VWtDaGVja2JveGVzQ29tcG9uZW50IH0gZnJvbSAnLi9nb3YtdWkvY29tcG9uZW50cy9nb3YtdWstY2hlY2tib3hlcy9nb3YtdWstY2hlY2tib3hlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgR292VWtEYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9nb3YtdWkvY29tcG9uZW50cy9nb3YtdWstZGF0ZS9nb3YtdWstZGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR292VWtFcnJvck1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL2dvdi11aS9jb21wb25lbnRzL2dvdi11ay1lcnJvci1tZXNzYWdlL2dvdi11ay1lcnJvci1tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHb3ZVa0ZpZWxkc2V0Q29tcG9uZW50IH0gZnJvbSAnLi9nb3YtdWkvY29tcG9uZW50cy9nb3YtdWstZmllbGRzZXQvZ292LXVrLWZpZWxkc2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHb3ZVa0ZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuL2dvdi11aS9jb21wb25lbnRzL2dvdi11ay1maWxlLXVwbG9hZC9nb3YtdWstZmlsZS11cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEdvdlVrRm9ybUdyb3VwV3JhcHBlckNvbXBvbmVudFxufSBmcm9tICcuL2dvdi11aS9jb21wb25lbnRzL2dvdi11ay1mb3JtLWdyb3VwLXdyYXBwZXIvZ292LXVrLWZvcm0tZ3JvdXAtd3JhcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgR292VWtJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vZ292LXVpL2NvbXBvbmVudHMvZ292LXVrLWlucHV0L2dvdi11ay1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgR292VWtMYWJlbENvbXBvbmVudCB9IGZyb20gJy4vZ292LXVpL2NvbXBvbmVudHMvZ292LXVrLWxhYmVsL2dvdi11ay1sYWJlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgR292VWtSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4vZ292LXVpL2NvbXBvbmVudHMvZ292LXVrLXJhZGlvL2dvdi11ay1yYWRpby5jb21wb25lbnQnO1xuaW1wb3J0IHsgR292VWtSYWRpb3NDb21wb25lbnQgfSBmcm9tICcuL2dvdi11aS9jb21wb25lbnRzL2dvdi11ay1yYWRpb3MvZ292LXVrLXJhZGlvcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgR292VWtTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2dvdi11aS9jb21wb25lbnRzL2dvdi11ay1zZWxlY3QvZ292LXVrLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgR292dWtUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vZ292LXVpL2NvbXBvbmVudHMvZ292LXVrLXRhYmxlL2dvdi11ay10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR292VWtUZXh0YXJlYUNvbXBvbmVudCB9IGZyb20gJy4vZ292LXVpL2NvbXBvbmVudHMvZ292LXVrLXRleHRhcmVhL2dvdi11ay10ZXh0YXJlYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSG1jdHNCYW5uZXJDb21wb25lbnQgfSBmcm9tICcuL2dvdi11aS9jb21wb25lbnRzL2htY3RzLWJhbm5lci9obWN0cy1iYW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEhtY3RzRXJyb3JTdW1tYXJ5Q29tcG9uZW50IH0gZnJvbSAnLi9nb3YtdWkvY29tcG9uZW50cy9obWN0cy1lcnJvci1zdW1tYXJ5L2htY3RzLWVycm9yLXN1bW1hcnkuY29tcG9uZW50JztcbmltcG9ydCB7IEhtY3RzSWRlbnRpdHlCYXJDb21wb25lbnQgfSBmcm9tICcuL2dvdi11aS9jb21wb25lbnRzL2htY3RzLWlkZW50aXR5LWJhci9obWN0cy1pZGVudGl0eS1iYXIuY29tcG9uZW50JztcbmltcG9ydCB7IEhtY3RzTWFpbldyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL2dvdi11aS9jb21wb25lbnRzL2htY3RzLW1haW4td3JhcHBlci9obWN0cy1tYWluLXdyYXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEhtY3RzUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZ292LXVpL2NvbXBvbmVudHMvaG1jdHMtcGFnaW5hdGlvbi9obWN0cy1wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBIbWN0c1ByaW1hcnlOYXZpZ2F0aW9uQ29tcG9uZW50XG59IGZyb20gJy4vZ292LXVpL2NvbXBvbmVudHMvaG1jdHMtcHJpbWFyeS1uYXZpZ2F0aW9uL2htY3RzLXByaW1hcnktbmF2aWdhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSG1jdHNTdWJOYXZpZ2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9nb3YtdWkvY29tcG9uZW50cy9obWN0cy1zdWItbmF2aWdhdGlvbi9obWN0cy1zdWItbmF2aWdhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVtb3ZlSG9zdERpcmVjdGl2ZSB9IGZyb20gJy4vZ292LXVpL2RpcmVjdGl2ZXMvcmVtb3ZlLWhvc3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IHdpbmRvd1Byb3ZpZGVyLCB3aW5kb3dUb2tlbiB9IGZyb20gJy4vd2luZG93JztcblxuZXhwb3J0IGNvbnN0IENPTU1PTl9DT01QT05FTlRTID0gW1xuICBFeHVpUGFnZVdyYXBwZXJDb21wb25lbnQsXG4gIFRlcm1zQW5kQ29uZGl0aW9uc0NvbXBvbmVudCxcbiAgVGNEaXNwbGF5SHRtbENvbXBvbmVudCxcbiAgVGNEaXNwbGF5UGxhaW5Db21wb25lbnQsXG4gIFRjQ29uZmlybUNvbXBvbmVudCxcbiAgQ29udGFjdERldGFpbHNDb21wb25lbnQsXG4gIEZlYXR1cmVUb2dnbGVEaXJlY3RpdmUsXG4gIExldERpcmVjdGl2ZSxcbiAgSG1jdHNTZXNzaW9uRGlhbG9nQ29tcG9uZW50LFxuICBVc2VyTGlzdENvbXBvbmVudCxcbiAgVXNlckRldGFpbHNDb21wb25lbnQsXG4gIEludml0ZVVzZXJQZXJtaXNzaW9uQ29tcG9uZW50LFxuICBJbnZpdGVVc2VyRm9ybUNvbXBvbmVudCxcbiAgU2hhcmVDYXNlQ29tcG9uZW50LFxuICBTaGFyZUNhc2VDb25maXJtQ29tcG9uZW50LFxuICBTZWxlY3RlZENhc2VMaXN0Q29tcG9uZW50LFxuICBTZWxlY3RlZENhc2VDb21wb25lbnQsXG4gIFNlbGVjdGVkQ2FzZUNvbmZpcm1Db21wb25lbnQsXG4gIFVzZXJTZWxlY3RDb21wb25lbnQsXG4gIFRhYkNvbXBvbmVudCxcbiAgQWNjZXNzaWJpbGl0eUNvbXBvbmVudCxcbiAgRHVlRGF0ZUNvbXBvbmVudCxcbiAgQ2hlY2tib3hMaXN0Q29tcG9uZW50LFxuICBTZXJ2aWNlTWVzc2FnZUNvbXBvbmVudCxcbiAgU2VydmljZU1lc3NhZ2VzQ29tcG9uZW50LFxuICBMb2FkaW5nU3Bpbm5lckNvbXBvbmVudCxcbiAgR2VuZXJpY0ZpbHRlckNvbXBvbmVudCxcbiAgQ29va2llQmFubmVyQ29tcG9uZW50LFxuICBGaW5kUGVyc29uQ29tcG9uZW50LFxuICBTZWFyY2hKdWRpY2lhbHNDb21wb25lbnQsXG4gIEZpbmRMb2NhdGlvbkNvbXBvbmVudCxcbiAgU2VhcmNoTG9jYXRpb25Db21wb25lbnQsXG4gIEZpbmRTZXJ2aWNlQ29tcG9uZW50LFxuICBTZWFyY2hTZXJ2aWNlQ29tcG9uZW50LFxuICBTZWFyY2hWZW51ZUNvbXBvbmVudCxcbiAgUGFnaW5hdGlvbkNvbXBvbmVudFxuXTtcblxuZXhwb3J0IGNvbnN0IEdPVl9VSV9DT01QT05FTlRTID0gW1xuICBIbWN0c0lkZW50aXR5QmFyQ29tcG9uZW50LFxuICBIbWN0c1BhZ2luYXRpb25Db21wb25lbnQsXG4gIEhtY3RzU3ViTmF2aWdhdGlvbkNvbXBvbmVudCxcbiAgSG1jdHNQcmltYXJ5TmF2aWdhdGlvbkNvbXBvbmVudCxcbiAgSG1jdHNFcnJvclN1bW1hcnlDb21wb25lbnQsXG4gIEhtY3RzTWFpbldyYXBwZXJDb21wb25lbnQsXG4gIEhtY3RzQmFubmVyQ29tcG9uZW50LFxuICBHb3Z1a1RhYmxlQ29tcG9uZW50LFxuICBHb3ZVa0lucHV0Q29tcG9uZW50LFxuICBHb3ZVa0NoZWNrYm94Q29tcG9uZW50LFxuICBHb3ZVa0Zvcm1Hcm91cFdyYXBwZXJDb21wb25lbnQsXG4gIEdvdlVrTGFiZWxDb21wb25lbnQsXG4gIEdvdlVrRXJyb3JNZXNzYWdlQ29tcG9uZW50LFxuICBHb3ZVa0ZpZWxkc2V0Q29tcG9uZW50LFxuICBHb3ZVa0RhdGVDb21wb25lbnQsXG4gIEdvdlVrQ2hlY2tib3hlc0NvbXBvbmVudCxcbiAgR292VWtSYWRpb0NvbXBvbmVudCxcbiAgR292VWtSYWRpb3NDb21wb25lbnQsXG4gIEdvdlVrU2VsZWN0Q29tcG9uZW50LFxuICBHb3ZVa1RleHRhcmVhQ29tcG9uZW50LFxuICBHb3ZVa0ZpbGVVcGxvYWRDb21wb25lbnQsXG4gIFJlbW92ZUhvc3REaXJlY3RpdmVcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIC4uLkNPTU1PTl9DT01QT05FTlRTLFxuICAgIC4uLkdPVl9VSV9DT01QT05FTlRTXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQoW10pLFxuICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcbiAgICBNYXRUYWJzTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE5neFBhZ2luYXRpb25Nb2R1bGVcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge3Byb3ZpZGU6IHdpbmRvd1Rva2VuLCB1c2VGYWN0b3J5OiB3aW5kb3dQcm92aWRlcn1cbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIC4uLkNPTU1PTl9DT01QT05FTlRTLFxuICAgIC4uLkdPVl9VSV9DT01QT05FTlRTLFxuICAgIFBhZ2luYXRlUGlwZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEV4dWlDb21tb25MaWJNb2R1bGUge1xufVxuIl19