@bnsights/bbsf-admin-portal 1.0.2 → 1.0.6

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 (166) hide show
  1. package/bnsights-bbsf-admin-portal-1.0.6.tgz +0 -0
  2. package/bundles/bnsights-bbsf-admin-portal.umd.js +19377 -20042
  3. package/bundles/bnsights-bbsf-admin-portal.umd.js.map +1 -1
  4. package/esm2015/lib/Pages/_layout/components/aside/aside-menu/aside-menu.component.js +2 -2
  5. package/esm2015/lib/Pages/account/account-routing.module.js +3 -1
  6. package/esm2015/lib/Pages/account/account.component.js +15 -6
  7. package/esm2015/lib/Pages/account/account.module.js +16 -8
  8. package/esm2015/lib/Pages/account/forgot-password/forgot-password.component.js +48 -0
  9. package/esm2015/lib/Pages/configurations/configuration/configuration.component.js +392 -387
  10. package/esm2015/lib/Pages/core/authentication/auth.guard.js +10 -4
  11. package/esm2015/lib/Pages/core/authentication/auth.service.js +1 -2
  12. package/esm2015/lib/Pages/departments/department/department.component.js +49 -84
  13. package/esm2015/lib/Pages/departments/department-info/department-info.component.js +85 -94
  14. package/esm2015/lib/Pages/departments/departments.module.js +7 -2
  15. package/esm2015/lib/Pages/helpCenter/help-center/help-center.component.js +224 -223
  16. package/esm2015/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.js +137 -146
  17. package/esm2015/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.js +136 -153
  18. package/esm2015/lib/Pages/home/home.component.js +32 -26
  19. package/esm2015/lib/Pages/home/home.module.js +5 -10
  20. package/esm2015/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.js +336 -317
  21. package/esm2015/lib/Pages/jobs/jobs/jobs.component.js +168 -227
  22. package/esm2015/lib/Pages/license/license/license.component.js +68 -99
  23. package/esm2015/lib/Pages/localizations/localizations.component.js +378 -341
  24. package/esm2015/lib/Pages/logs/log/log.component.js +18 -27
  25. package/esm2015/lib/Pages/lookups/lookup/lookup.component.js +297 -288
  26. package/esm2015/lib/Pages/lookups/lookup-group/lookup-group.component.js +143 -165
  27. package/esm2015/lib/Pages/lookups/lookup-item/lookup-item.component.js +234 -233
  28. package/esm2015/lib/Pages/lookups/lookups-routing.module.js +2 -2
  29. package/esm2015/lib/Pages/notifications/add/add.component.js +83 -76
  30. package/esm2015/lib/Pages/notifications/edit/edit.component.js +60 -63
  31. package/esm2015/lib/Pages/notifications/edit-email/edit-email.component.js +128 -126
  32. package/esm2015/lib/Pages/notifications/edit-sms/edit-sms.component.js +87 -85
  33. package/esm2015/lib/Pages/notifications/master-layouts/master-layouts.component.js +57 -58
  34. package/esm2015/lib/Pages/notifications/notifications-routing.module.js +1 -3
  35. package/esm2015/lib/Pages/notifications/notifications.module.js +3 -4
  36. package/esm2015/lib/Pages/notifications/template-info/template-info.component.js +232 -228
  37. package/esm2015/lib/Pages/notifications/templates/templates.component.js +347 -310
  38. package/esm2015/lib/Pages/providers/provider/provider.component.js +54 -52
  39. package/esm2015/lib/Pages/publicHolidays/public-holiday/public-holiday.component.js +268 -270
  40. package/esm2015/lib/Pages/roles/permission-set-info/permission-set-info.component.js +136 -152
  41. package/esm2015/lib/Pages/roles/permissions/permissions.component.js +182 -218
  42. package/esm2015/lib/Pages/roles/permissionsets/permissionsets.component.js +223 -258
  43. package/esm2015/lib/Pages/sectors/department-info/department-info.component.js +134 -142
  44. package/esm2015/lib/Pages/sectors/sector/sector.component.js +127 -144
  45. package/esm2015/lib/Pages/sectors/sector-info/sector-info.component.js +123 -139
  46. package/esm2015/lib/Pages/shared/Enums/ConfigurationScope.js +8 -0
  47. package/esm2015/lib/Pages/shared/Enums/ConfigurationType.js +8 -0
  48. package/esm2015/lib/Pages/shared/Enums/ConfigurationValueSource.js +6 -0
  49. package/esm2015/lib/Pages/shared/Enums/ParticipantType.js +8 -0
  50. package/esm2015/lib/Pages/shared/Services/AccountService.service.js +21 -0
  51. package/esm2015/lib/Pages/shared/Services/ConfigurationsService.service.js +15 -12
  52. package/esm2015/lib/Pages/shared/Services/DepartmentService.service.js +4 -5
  53. package/esm2015/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.js +10 -9
  54. package/esm2015/lib/Pages/shared/Services/HelpCenterService.service.js +10 -7
  55. package/esm2015/lib/Pages/shared/Services/ImpersonationRuleService.service.js +14 -8
  56. package/esm2015/lib/Pages/shared/Services/LicenseService.service.js +3 -3
  57. package/esm2015/lib/Pages/shared/Services/LogsService.js +1 -1
  58. package/esm2015/lib/Pages/shared/Services/LookupGroupsService.service.js +11 -5
  59. package/esm2015/lib/Pages/shared/Services/LookupService.service.js +31 -15
  60. package/esm2015/lib/Pages/shared/Services/PermissionSetService.service.js +18 -8
  61. package/esm2015/lib/Pages/shared/Services/PermissionsService.service.js +12 -9
  62. package/esm2015/lib/Pages/shared/Services/PublicHolidayService.service.js +9 -3
  63. package/esm2015/lib/Pages/shared/Services/SectorService.service.js +18 -13
  64. package/esm2015/lib/Pages/shared/Services/TemplateService.service.js +36 -29
  65. package/esm2015/lib/Pages/shared/Services/localizationsService.service .js +23 -13
  66. package/esm2015/lib/Pages/shared/Services/provider.service.js +5 -7
  67. package/esm2015/lib/Pages/shared/Services/userService.service.js +10 -2
  68. package/esm2015/lib/Pages/shared/models/AccountModels/forgotPasswordModel.js +6 -0
  69. package/esm2015/lib/Pages/shared/models/ConfigurationModels/ConfigurationModel.js +1 -1
  70. package/esm2015/lib/Pages/shared/models/DepartmentModels/DepartmentModel.js +1 -1
  71. package/esm2015/lib/Pages/shared/models/DepartmentModels/DepartmentUsersIDRequestModel.js +1 -1
  72. package/esm2015/lib/Pages/shared/models/ImpersonationRuleModels/ImpersonationRuleModel.js +1 -1
  73. package/esm2015/lib/Pages/shared/models/Lookups/LookupItem.js +1 -1
  74. package/esm2015/lib/Pages/shared/models/Lookups/LookupModel.js +1 -2
  75. package/esm2015/lib/Pages/shared/models/PermissionsModels/PermissionSetUsersIDRequestModel.js +1 -1
  76. package/esm2015/lib/Pages/shared/models/SectorModels/SectorDepartmentModel.js +1 -1
  77. package/esm2015/lib/Pages/users/users.component.js +398 -409
  78. package/esm2015/lib/Pages/workflows/tabs/tabs.component.js +2 -2
  79. package/esm2015/lib/masterlayout-routing.module.js +5 -4
  80. package/esm2015/lib/masterlayout.component.js +22 -32
  81. package/esm2015/lib/masterlayout.module.js +26 -22
  82. package/esm2015/public-api.js +2 -1
  83. package/fesm2015/bnsights-bbsf-admin-portal.js +17234 -17314
  84. package/fesm2015/bnsights-bbsf-admin-portal.js.map +1 -1
  85. package/lib/Pages/account/account.component.d.ts +5 -1
  86. package/lib/Pages/account/account.module.d.ts +8 -6
  87. package/lib/Pages/account/forgot-password/forgot-password.component.d.ts +20 -0
  88. package/lib/Pages/configurations/configuration/configuration.component.d.ts +39 -31
  89. package/lib/Pages/core/authentication/auth.guard.d.ts +1 -0
  90. package/lib/Pages/departments/department/department.component.d.ts +15 -13
  91. package/lib/Pages/departments/department-info/department-info.component.d.ts +31 -28
  92. package/lib/Pages/helpCenter/help-center/help-center.component.d.ts +34 -32
  93. package/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.d.ts +31 -34
  94. package/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.d.ts +30 -35
  95. package/lib/Pages/home/home.component.d.ts +4 -4
  96. package/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.d.ts +43 -42
  97. package/lib/Pages/jobs/jobs/jobs.component.d.ts +56 -62
  98. package/lib/Pages/license/license/license.component.d.ts +25 -23
  99. package/lib/Pages/localizations/localizations.component.d.ts +77 -65
  100. package/lib/Pages/logs/log/log.component.d.ts +7 -11
  101. package/lib/Pages/lookups/lookup/lookup.component.d.ts +64 -59
  102. package/lib/Pages/lookups/lookup-group/lookup-group.component.d.ts +44 -45
  103. package/lib/Pages/lookups/lookup-item/lookup-item.component.d.ts +62 -56
  104. package/lib/Pages/notifications/add/add.component.d.ts +13 -11
  105. package/lib/Pages/notifications/edit/edit.component.d.ts +14 -14
  106. package/lib/Pages/notifications/edit-email/edit-email.component.d.ts +18 -20
  107. package/lib/Pages/notifications/edit-sms/edit-sms.component.d.ts +15 -16
  108. package/lib/Pages/notifications/master-layouts/master-layouts.component.d.ts +24 -25
  109. package/lib/Pages/notifications/notifications.module.d.ts +15 -16
  110. package/lib/Pages/notifications/template-info/template-info.component.d.ts +32 -32
  111. package/lib/Pages/notifications/templates/templates.component.d.ts +54 -46
  112. package/lib/Pages/providers/provider/provider.component.d.ts +14 -13
  113. package/lib/Pages/publicHolidays/public-holiday/public-holiday.component.d.ts +29 -27
  114. package/lib/Pages/roles/permission-set-info/permission-set-info.component.d.ts +39 -40
  115. package/lib/Pages/roles/permissions/permissions.component.d.ts +49 -54
  116. package/lib/Pages/roles/permissionsets/permissionsets.component.d.ts +53 -55
  117. package/lib/Pages/sectors/department-info/department-info.component.d.ts +41 -44
  118. package/lib/Pages/sectors/sector/sector.component.d.ts +35 -33
  119. package/lib/Pages/sectors/sector-info/sector-info.component.d.ts +40 -44
  120. package/lib/Pages/shared/Enums/ConfigurationScope.d.ts +5 -0
  121. package/lib/Pages/shared/Enums/ConfigurationType.d.ts +6 -0
  122. package/lib/Pages/shared/Enums/ConfigurationValueSource.d.ts +4 -0
  123. package/lib/Pages/shared/Enums/ParticipantType.d.ts +6 -0
  124. package/lib/Pages/shared/Services/AccountService.service.d.ts +10 -0
  125. package/lib/Pages/shared/Services/ActiveDirectoryService.service.d.ts +8 -8
  126. package/lib/Pages/shared/Services/ConfigurationsService.service.d.ts +7 -8
  127. package/lib/Pages/shared/Services/DepartmentService.service.d.ts +7 -7
  128. package/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.d.ts +5 -5
  129. package/lib/Pages/shared/Services/HelpCenterService.service.d.ts +8 -7
  130. package/lib/Pages/shared/Services/ImpersonationRuleService.service.d.ts +5 -5
  131. package/lib/Pages/shared/Services/JobsService.service.d.ts +1 -1
  132. package/lib/Pages/shared/Services/LicenseService.service.d.ts +2 -2
  133. package/lib/Pages/shared/Services/LogsService.d.ts +1 -1
  134. package/lib/Pages/shared/Services/LookupGroupsService.service.d.ts +4 -4
  135. package/lib/Pages/shared/Services/LookupService.service.d.ts +14 -11
  136. package/lib/Pages/shared/Services/PermissionSetService.service.d.ts +8 -7
  137. package/lib/Pages/shared/Services/PermissionsService.service.d.ts +5 -6
  138. package/lib/Pages/shared/Services/PublicHolidayService.service.d.ts +6 -6
  139. package/lib/Pages/shared/Services/SectorService.service.d.ts +7 -7
  140. package/lib/Pages/shared/Services/TemplateService.service.d.ts +20 -19
  141. package/lib/Pages/shared/Services/WorkflowActivityService.service.d.ts +3 -3
  142. package/lib/Pages/shared/Services/WorkflowService.service.d.ts +3 -3
  143. package/lib/Pages/shared/Services/WorkflowVariablesService.service.d.ts +4 -4
  144. package/lib/Pages/shared/Services/localizationsService.service .d.ts +12 -11
  145. package/lib/Pages/shared/Services/provider.service.d.ts +10 -10
  146. package/lib/Pages/shared/Services/userService.service.d.ts +14 -12
  147. package/lib/Pages/shared/models/AccountModels/forgotPasswordModel.d.ts +3 -0
  148. package/lib/Pages/shared/models/ConfigurationModels/ConfigurationModel.d.ts +0 -1
  149. package/lib/Pages/shared/models/DepartmentModels/DepartmentModel.d.ts +1 -0
  150. package/lib/Pages/shared/models/DepartmentModels/DepartmentUsersIDRequestModel.d.ts +1 -1
  151. package/lib/Pages/shared/models/ImpersonationRuleModels/ImpersonationRuleModel.d.ts +0 -2
  152. package/lib/Pages/shared/models/Lookups/LookupModel.d.ts +1 -1
  153. package/lib/Pages/shared/models/PermissionsModels/PermissionSetUsersIDRequestModel.d.ts +1 -1
  154. package/lib/Pages/shared/models/SectorModels/SectorDepartmentModel.d.ts +1 -1
  155. package/lib/Pages/users/users.component.d.ts +54 -68
  156. package/lib/masterlayout.component.d.ts +4 -5
  157. package/lib/masterlayout.module.d.ts +8 -9
  158. package/package.json +5 -3
  159. package/public-api.d.ts +1 -0
  160. package/src/lib/assets/sass/core/components/_variables.scss +1 -1
  161. package/src/lib/assets/sass/custom-styles-rtl.scss +5 -0
  162. package/src/lib/assets/sass/custom-styles.scss +153 -0
  163. package/src/lib/assets/sass/style-rtl.scss +2 -0
  164. package/src/lib/assets/sass/style.scss +2 -2
  165. package/esm2015/lib/Pages/notifications/edit-template/edit-template.component.js +0 -35
  166. package/lib/Pages/notifications/edit-template/edit-template.component.d.ts +0 -35
@@ -8,12 +8,18 @@ export class AuthGuard {
8
8
  this.router = router;
9
9
  this.authService = authService;
10
10
  this.allowedPermission = [];
11
+ this.homeURL = "";
11
12
  }
12
13
  canActivate(route, state) {
13
14
  return __awaiter(this, void 0, void 0, function* () {
14
- debugger;
15
- if (yield this.authService.isAuthenticated(this.allowedPermission))
16
- return true;
15
+ if (yield this.authService.isAuthenticated()) {
16
+ if (this.allowedPermission.length == 0 || this.authService.isUserInRole(this.allowedPermission))
17
+ return true;
18
+ else if (this.homeURL) {
19
+ this.router.navigate([this.homeURL]);
20
+ return true;
21
+ }
22
+ }
17
23
  this.authService.setUrl(state.url);
18
24
  this.router.navigate(['/Admin/account/login'], { queryParams: { redirect: state.url }, replaceUrl: true });
19
25
  return false;
@@ -25,4 +31,4 @@ AuthGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
25
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AuthGuard, decorators: [{
26
32
  type: Injectable
27
33
  }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.AuthService }]; } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvY29yZS9hdXRoZW50aWNhdGlvbi9hdXRoLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBTTNDLE1BQU0sT0FBTyxTQUFTO0lBRXBCLFlBQW9CLE1BQWMsRUFBVSxXQUF3QjtRQUFoRCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFEOUQsc0JBQWlCLEdBQWEsRUFBRSxDQUFDO0lBRXZDLENBQUM7SUFFSyxXQUFXLENBQUMsS0FBNkIsRUFBRSxLQUEwQjs7WUFFekUsUUFBUSxDQUFDO1lBQ1QsSUFBSSxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztnQkFDbEUsT0FBTyxJQUFJLENBQUM7WUFFWixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUMzRyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7S0FBQTs7dUdBZFUsU0FBUzsyR0FBVCxTQUFTOzRGQUFULFNBQVM7a0JBRHJCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciwgQ2FuQWN0aXZhdGUsIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlclN0YXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcblxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQXV0aEd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xyXG4gcHVibGljIGFsbG93ZWRQZXJtaXNzaW9uIDogbnVtYmVyW10gPVtdO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlKSB7IFxyXG4gIH1cclxuXHJcbiAgYXN5bmMgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuPiB7XHJcblxyXG4gICAgZGVidWdnZXI7XHJcbiAgICBpZiAoYXdhaXQgdGhpcy5hdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQodGhpcy5hbGxvd2VkUGVybWlzc2lvbikpICBcclxuICAgIHJldHVybiB0cnVlO1xyXG5cclxuICAgIHRoaXMuYXV0aFNlcnZpY2Uuc2V0VXJsKHN0YXRlLnVybClcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL0FkbWluL2FjY291bnQvbG9naW4nXSwgeyBxdWVyeVBhcmFtczogeyByZWRpcmVjdDogc3RhdGUudXJsIH0sIHJlcGxhY2VVcmw6IHRydWUgfSk7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvY29yZS9hdXRoZW50aWNhdGlvbi9hdXRoLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBTTNDLE1BQU0sT0FBTyxTQUFTO0lBR3BCLFlBQW9CLE1BQWMsRUFBVSxXQUF3QjtRQUFoRCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFGN0Qsc0JBQWlCLEdBQWEsRUFBRSxDQUFDO1FBQ2pDLFlBQU8sR0FBVyxFQUFFLENBQUM7SUFFNUIsQ0FBQztJQUVLLFdBQVcsQ0FBQyxLQUE2QixFQUFFLEtBQTBCOztZQUV6RSxJQUFJLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsRUFBRTtnQkFDNUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7b0JBQzdGLE9BQU8sSUFBSSxDQUFBO3FCQUNSLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtvQkFDcEMsT0FBTyxJQUFJLENBQUE7aUJBQ1o7YUFDRjtZQUNELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1lBQzFHLE9BQU8sS0FBSyxDQUFBO1FBQ2QsQ0FBQztLQUFBOzt1R0FuQlUsU0FBUzsyR0FBVCxTQUFTOzRGQUFULFNBQVM7a0JBRHJCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciwgQ2FuQWN0aXZhdGUsIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlclN0YXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcblxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQXV0aEd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xyXG4gIHB1YmxpYyBhbGxvd2VkUGVybWlzc2lvbjogbnVtYmVyW10gPSBbXTtcclxuICBwdWJsaWMgaG9tZVVSTDogc3RyaW5nID0gXCJcIjtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBcclxuICAgIGlmIChhd2FpdCB0aGlzLmF1dGhTZXJ2aWNlLmlzQXV0aGVudGljYXRlZCgpKSB7XHJcbiAgICAgIGlmICh0aGlzLmFsbG93ZWRQZXJtaXNzaW9uLmxlbmd0aCA9PSAwIHx8IHRoaXMuYXV0aFNlcnZpY2UuaXNVc2VySW5Sb2xlKHRoaXMuYWxsb3dlZFBlcm1pc3Npb24pKVxyXG4gICAgICAgIHJldHVybiB0cnVlXHJcbiAgICAgIGVsc2UgaWYgKHRoaXMuaG9tZVVSTCkge1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLmhvbWVVUkxdKVxyXG4gICAgICAgIHJldHVybiB0cnVlXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuYXV0aFNlcnZpY2Uuc2V0VXJsKHN0YXRlLnVybClcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL0FkbWluL2FjY291bnQvbG9naW4nXSwgeyBxdWVyeVBhcmFtczogeyByZWRpcmVjdDogc3RhdGUudXJsIH0sIHJlcGxhY2VVcmw6IHRydWUgfSlcclxuICAgIHJldHVybiBmYWxzZVxyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -66,7 +66,6 @@ export class AuthService extends BaseService {
66
66
  });
67
67
  }
68
68
  register(userRegistration) {
69
- ;
70
69
  return this.http.post('https://localhost:44335/api' + '/account', userRegistration);
71
70
  }
72
71
  refreshToken(token) {
@@ -155,4 +154,4 @@ export function getClientSettings() {
155
154
  // userStore: new WebStorageStateStore({ store: window.localStorage })
156
155
  };
157
156
  }
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9jb3JlL2F1dGhlbnRpY2F0aW9uL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsT0FBTyxFQUFFLFdBQVcsRUFBbUQsTUFBTSxhQUFhLENBQUM7QUFDM0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFDeEQsMEZBQTBGO0FBTTFGLE1BQU0sT0FBTyxXQUFZLFNBQVEsV0FBVztJQWdCMUMsWUFBb0IsSUFBZ0I7UUFDbEMsS0FBSyxFQUFFLENBQUM7UUFEVSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBZHBDLDRCQUE0QjtRQUNwQix5QkFBb0IsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNuRSw0QkFBNEI7UUFDNUIsbUJBQWMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFeEQsNEJBQTRCO1FBQ3ZCLGdCQUFXLEdBQWlCLElBQUksT0FBTyxFQUFRLENBQUM7UUFDeEQsZ0JBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXJDLFlBQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7UUFDaEQsZ0JBQVcsR0FBUSxFQUFFLENBQUE7UUFNekIsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQU0sSUFB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QUFzQjtJQUN0Qiw2QkFBNkI7SUFDN0Isa0dBQWtHO0lBQ2xHLHNFQUFzRTtLQUNyRSxDQUFDO0FBQ1YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFVzZXJNYW5hZ2VyLCBVc2VyTWFuYWdlclNldHRpbmdzLCBVc2VyLCBXZWJTdG9yYWdlU3RhdGVTdG9yZSB9IGZyb20gJ29pZGMtY2xpZW50JztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gXCIuLi8uLi9zaGFyZWQvYmFzZS5zZXJ2aWNlXCI7XHJcbi8vIGltcG9ydCB7IGVudmlyb25tZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9TZXJ2aWNlcy9lbnZpcm9ubWVudHNTZXJ2aWNlLlNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIGV4dGVuZHMgQmFzZVNlcnZpY2Uge1xyXG5cclxuICAvLyBPYnNlcnZhYmxlIG5hdkl0ZW0gc291cmNlXHJcbiAgcHJpdmF0ZSBfYXV0aE5hdlN0YXR1c1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIC8vIE9ic2VydmFibGUgbmF2SXRlbSBzdHJlYW1cclxuICBhdXRoTmF2U3RhdHVzJCA9IHRoaXMuX2F1dGhOYXZTdGF0dXNTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgLy8gT2JzZXJ2YWJsZSBuYXZJdGVtIHNvdXJjZVxyXG4gcHJpdmF0ZSBfdXNlclNvdXJjZTogU3ViamVjdDxVc2VyPj0gbmV3IFN1YmplY3Q8VXNlcj4oKTtcclxuIFVzZXJTdGF0dXMkID0gdGhpcy5fdXNlclNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJpdmF0ZSBtYW5hZ2VyID0gbmV3IFVzZXJNYW5hZ2VyKGdldENsaWVudFNldHRpbmdzKCkpO1xyXG4gIHB1YmxpYyByZWRpcmVjdFVybDpzdHJpbmc9XCJcIlxyXG4gIHN0YXRpYyB1c2VyOiBVc2VyIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSB1c2VyOiBVc2VyIHwgbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgIDtcclxuICAgIHRoaXMubWFuYWdlci5nZXRVc2VyKCkudGhlbihhc3luYyB1c2VyID0+IHtcclxuICAgICAgIDtcclxuICAgICAgdGhpcy5tYW5hZ2VyLnN0b3JlVXNlcih1c2VyKTtcclxuICAgICAgQXV0aFNlcnZpY2UudXNlciA9IHVzZXI7XHJcbiAgICAgIHRoaXMudXNlcj11c2VyO1xyXG4gICAgICB0aGlzLl9hdXRoTmF2U3RhdHVzU291cmNlLm5leHQoYXdhaXQgdGhpcy5pc0F1dGhlbnRpY2F0ZWQoKSk7XHJcbiAgICB9KTtcclxuICB0aGlzLm1hbmFnZXIuZXZlbnRzLmFkZEFjY2Vzc1Rva2VuRXhwaXJlZChfPT57XHJcbiAgICB0aGlzLl9hdXRoTmF2U3RhdHVzU291cmNlLm5leHQoZmFsc2UpO1xyXG4gICAgLy9BdXRoU2VydmljZS51c2VyID0gbnVsbDtcclxuICB9KVxyXG4gIH1cclxuXHJcbiAgbG9naW4oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5tYW5hZ2VyLnNpZ25pblJlZGlyZWN0KCk7XHJcbiAgfVxyXG5cclxuICAgZ2V0VXNlcigpe1xyXG4gICAgdGhpcy5tYW5hZ2VyLmdldFVzZXIoKS50aGVuKGFzeW5jIHVzZXIgPT4ge1xyXG4gICAgICAgO1xyXG4gICAgICBBdXRoU2VydmljZS51c2VyID0gdXNlcjtcclxuICAgICAgdGhpcy51c2VyPXVzZXJcclxuICAgICAgdGhpcy5fYXV0aE5hdlN0YXR1c1NvdXJjZS5uZXh0KGF3YWl0IHRoaXMuaXNBdXRoZW50aWNhdGVkKCkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHN0b3JVc2VyKFVzZXI6YW55KVxyXG4gIHtcclxuICAgIHRoaXMubWFuYWdlci5zdG9yZVVzZXIoVXNlcik7XHJcbiAgfVxyXG5cclxuICByZXZva2VBY2Nlc3NUb2tlbigpXHJcbiAge1xyXG4gICAgdGhpcy5tYW5hZ2VyLnJldm9rZUFjY2Vzc1Rva2VuKCk7XHJcbiAgfVxyXG5cclxuICAgc2lnbmluU2lsZW50KCl7XHJcbiAgICAgXHJcbiAgICBsZXQgeD10aGlzLm1hbmFnZXIuc2lnbmluU2lsZW50Q2FsbGJhY2soKVxyXG4gICAgeC50aGVuKHM9PntcclxuICAgICAvL2NvbnNvbGUubG9nKHMpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgY29tcGxldGVBdXRoZW50aWNhdGlvbigpIHtcclxuXHJcbiAgICAgO1xyXG4gICAgdGhpcy51c2VyID0gYXdhaXQgdGhpcy5tYW5hZ2VyLnNpZ25pblJlZGlyZWN0Q2FsbGJhY2soKTtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXI9dGhpcy51c2VyXHJcbiAgICAgdGhpcy5fdXNlclNvdXJjZS5uZXh0KEF1dGhTZXJ2aWNlLnVzZXIpXHJcbiAgICB0aGlzLl9hdXRoTmF2U3RhdHVzU291cmNlLm5leHQoYXdhaXQgdGhpcy5pc0F1dGhlbnRpY2F0ZWQoKSk7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlcih1c2VyUmVnaXN0cmF0aW9uOiBhbnkpIHtcclxuICAgICA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoJ2h0dHBzOi8vbG9jYWxob3N0OjQ0MzM1L2FwaScgKyAnL2FjY291bnQnLCB1c2VyUmVnaXN0cmF0aW9uKTtcclxuICB9XHJcblxyXG5cclxuICBhc3luYyByZWZyZXNoVG9rZW4odG9rZW4pIHtcclxuICAgIGNvbnN0IGh0dHBPcHRpb25zID0ge1xyXG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAgJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAgICdBdXRob3JpemF0aW9uJzogdG9rZW5cclxuICAgICAgfSlcclxuICAgIH07XHJcbiAgICB0aGlzLm1hbmFnZXIucmV2b2tlQWNjZXNzVG9rZW5cclxuICAgIHJldHVybiBhd2FpdCB0aGlzLmh0dHAucG9zdDxhbnk+KGAkdXNlcnMvcmVmcmVzaC10b2tlbmAsIGh0dHBPcHRpb25zLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KS5zdWJzY3JpYmUoKHVzZXIpPT57XHJcbiAgICAgIHRoaXMuX3VzZXJTb3VyY2UubmV4dCh1c2VyKVxyXG4gICAgICBBdXRoU2VydmljZS51c2VyPXVzZXJcclxuICAgICAgdGhpcy51c2VyPXVzZXI7XHJcbiAgICB9KVxyXG59XHJcblxyXG4gICBhc3luYyBpc0F1dGhlbnRpY2F0ZWQoYWxsb3dlZFBlcm1pc3Npb24/IDogbnVtYmVyW10pOlByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgbGV0IHVzZXIgPSBhd2FpdCB0aGlzLm1hbmFnZXIuZ2V0VXNlcigpLnRoZW4odXNlciA9PiB7XHJcbiAgICAgIHJldHVybiB1c2VyO1xyXG4gICAgfSlcclxuICBpZihhbGxvd2VkUGVybWlzc2lvbiE9bnVsbCYmIGFsbG93ZWRQZXJtaXNzaW9uIT11bmRlZmluZWQpIFxyXG4gIHtcclxuICAgIGlmKGFsbG93ZWRQZXJtaXNzaW9uLmxlbmd0aD09MClcclxuICAgIHtcclxuICAgICAgcmV0dXJuIHRoaXMudXNlciAhPSBudWxsICYmICF0aGlzLnVzZXIuZXhwaXJlZDtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgIHtcclxuICAgICAgIDtcclxuICAgICAgbGV0IGlzVXNlckluUm9sZSA9dGhpcy5pc1VzZXJJblJvbGUoYWxsb3dlZFBlcm1pc3Npb24pO1xyXG4gICAgICByZXR1cm4gdGhpcy51c2VyICE9IG51bGwgJiYgIXRoaXMudXNlci5leHBpcmVkJiZpc1VzZXJJblJvbGU7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBlbHNlXHJcbiAgcmV0dXJuIHRoaXMudXNlciAhPSBudWxsICYmICF0aGlzLnVzZXIuZXhwaXJlZDtcclxuXHJcbiAgICAgICAgXHJcbiAgfVxyXG4gIGlzVXNlckluUm9sZShhbGxvd2VkUGVybWlzc2lvbjogbnVtYmVyW10pXHJcbiAge1xyXG4gICAgIDtcclxuICAgIGxldCBwZXJtaXNzaW9uU2V0U0lEID10aGlzLnVzZXIucHJvZmlsZVtcInBlcm1pc3Npb25TZXRTSURcIl0uc3BsaXRgLGAubWFwKHg9Pit4KSBhcyBudW1iZXJbXVxyXG4gICAgcmV0dXJuIGFsbG93ZWRQZXJtaXNzaW9uLmV2ZXJ5KGkgPT4gcGVybWlzc2lvblNldFNJRC5pbmNsdWRlcyhpKSk7XHJcbiAgfVxyXG5cclxuICBhdXRob3JpemF0aW9uSGVhZGVyVmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHtBdXRoU2VydmljZS51c2VyLnRva2VuX3R5cGV9ICR7QXV0aFNlcnZpY2UudXNlci5hY2Nlc3NfdG9rZW59YDtcclxuICB9XHJcblxyXG4gIG5hbWUoKTogc3RyaW5nIHtcclxuICAgICByZXR1cm4gQXV0aFNlcnZpY2UudXNlciAhPSBudWxsID8gQXV0aFNlcnZpY2UudXNlci5wcm9maWxlLmdpdmVuX25hbWUgOiAnJztcclxuICB9XHJcbiAgc2V0VXJsKHVybCl7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcInJlZGlyZWN0VXJsXCIsdXJsKVxyXG4gICAgXHJcbiAgfVxyXG4gIGdldFVybCgpe1xyXG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwicmVkaXJlY3RVcmxcIik7XHJcbiAgfVxyXG4gIHNpZ25pblNpbGVudENhbGxiYWNrKCl7XHJcbiAgdGhpcy5tYW5hZ2VyLnNpZ25pblNpbGVudENhbGxiYWNrKClcclxuICB9XHJcbiAgYXN5bmMgc2lnbm91dCgpIHtcclxuICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xyXG4gICAgYXdhaXQgdGhpcy5tYW5hZ2VyLnNpZ25vdXRSZWRpcmVjdCgpO1xyXG5cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRDbGllbnRTZXR0aW5ncygpOiBVc2VyTWFuYWdlclNldHRpbmdzIHtcclxuICByZXR1cm4ge1xyXG4gICAgICAgIC8vIGF1dGhvcml0eTogZW52aXJvbm1lbnRTZXJ2aWNlLmdldElkZW50aXR5U2VydmVyVXJsKCksXHJcbiAgICAgICAgLy8gY2xpZW50X2lkOiAnYW5ndWxhcl9zcGEnLFxyXG4gICAgICAgIC8vIHJlZGlyZWN0X3VyaTogZW52aXJvbm1lbnRTZXJ2aWNlLmdldElkZW50aXR5U2VydmVyVXJsKCkgKycvQWRtaW4vYXV0aGVudGljYXRpb24vYXV0aC1jYWxsYmFjaycsXHJcbiAgICAgICAgLy8gcG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpOiBlbnZpcm9ubWVudFNlcnZpY2UuZ2V0QmFzZVVybCgpICxcclxuICAgICAgICAvLyByZXNwb25zZV90eXBlOiBcImlkX3Rva2VuIHRva2VuXCIsXHJcbiAgICAgICAgLy8gc2NvcGU6IFwib3BlbmlkIHByb2ZpbGUgZW1haWwgSWRlbnRpdHlTZXJ2ZXJBcGlcIixcclxuICAgICAgICAvLyBmaWx0ZXJQcm90b2NvbENsYWltczogdHJ1ZSxcclxuICAgICAgICAvLyBsb2FkVXNlckluZm86IHRydWUsXHJcbiAgICAgICAgLy8gYXV0b21hdGljU2lsZW50UmVuZXc6dHJ1ZSxcclxuICAgICAgICAvLyBzaWxlbnRfcmVkaXJlY3RfdXJpOiAgZW52aXJvbm1lbnRTZXJ2aWNlLmdldElkZW50aXR5U2VydmVyVXJsKCkrJy9hc3NldHMvc2lsZW50LWNhbGxiYWNrLmh0bWwnLFxyXG4gICAgICAgIC8vIHVzZXJTdG9yZTogbmV3IFdlYlN0b3JhZ2VTdGF0ZVN0b3JlKHsgc3RvcmU6IHdpbmRvdy5sb2NhbFN0b3JhZ2UgfSlcclxuICAgICAgICB9O1xyXG59XHJcbiJdfQ==
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9jb3JlL2F1dGhlbnRpY2F0aW9uL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsT0FBTyxFQUFFLFdBQVcsRUFBbUQsTUFBTSxhQUFhLENBQUM7QUFDM0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFDeEQsMEZBQTBGO0FBTTFGLE1BQU0sT0FBTyxXQUFZLFNBQVEsV0FBVztJQWdCMUMsWUFBb0IsSUFBZ0I7UUFDbEMsS0FBSyxFQUFFLENBQUM7UUFEVSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBZHBDLDRCQUE0QjtRQUNwQix5QkFBb0IsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNuRSw0QkFBNEI7UUFDNUIsbUJBQWMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFeEQsNEJBQTRCO1FBQ3ZCLGdCQUFXLEdBQWlCLElBQUksT0FBTyxFQUFRLENBQUM7UUFDeEQsZ0JBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXJDLFlBQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7UUFDaEQsZ0JBQVcsR0FBUSxFQUFFLENBQUE7UUFNekIsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQU0sSUFB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LDZCQUE2QjtJQUM3QixrR0FBa0c7SUFDbEcsc0VBQXNFO0tBQ3JFLENBQUM7QUFDVixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVXNlck1hbmFnZXIsIFVzZXJNYW5hZ2VyU2V0dGluZ3MsIFVzZXIsIFdlYlN0b3JhZ2VTdGF0ZVN0b3JlIH0gZnJvbSAnb2lkYy1jbGllbnQnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9iYXNlLnNlcnZpY2VcIjtcclxuLy8gaW1wb3J0IHsgZW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL2Vudmlyb25tZW50c1NlcnZpY2UuU2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQXV0aFNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XHJcblxyXG4gIC8vIE9ic2VydmFibGUgbmF2SXRlbSBzb3VyY2VcclxuICBwcml2YXRlIF9hdXRoTmF2U3RhdHVzU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgLy8gT2JzZXJ2YWJsZSBuYXZJdGVtIHN0cmVhbVxyXG4gIGF1dGhOYXZTdGF0dXMkID0gdGhpcy5fYXV0aE5hdlN0YXR1c1NvdXJjZS5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgICAvLyBPYnNlcnZhYmxlIG5hdkl0ZW0gc291cmNlXHJcbiBwcml2YXRlIF91c2VyU291cmNlOiBTdWJqZWN0PFVzZXI+PSBuZXcgU3ViamVjdDxVc2VyPigpO1xyXG4gVXNlclN0YXR1cyQgPSB0aGlzLl91c2VyU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBwcml2YXRlIG1hbmFnZXIgPSBuZXcgVXNlck1hbmFnZXIoZ2V0Q2xpZW50U2V0dGluZ3MoKSk7XHJcbiAgcHVibGljIHJlZGlyZWN0VXJsOnN0cmluZz1cIlwiXHJcbiAgc3RhdGljIHVzZXI6IFVzZXIgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIHVzZXI6IFVzZXIgfCBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICAgO1xyXG4gICAgdGhpcy5tYW5hZ2VyLmdldFVzZXIoKS50aGVuKGFzeW5jIHVzZXIgPT4ge1xyXG4gICAgICAgO1xyXG4gICAgICB0aGlzLm1hbmFnZXIuc3RvcmVVc2VyKHVzZXIpO1xyXG4gICAgICBBdXRoU2VydmljZS51c2VyID0gdXNlcjtcclxuICAgICAgdGhpcy51c2VyPXVzZXI7XHJcbiAgICAgIHRoaXMuX2F1dGhOYXZTdGF0dXNTb3VyY2UubmV4dChhd2FpdCB0aGlzLmlzQXV0aGVudGljYXRlZCgpKTtcclxuICAgIH0pO1xyXG4gIHRoaXMubWFuYWdlci5ldmVudHMuYWRkQWNjZXNzVG9rZW5FeHBpcmVkKF89PntcclxuICAgIHRoaXMuX2F1dGhOYXZTdGF0dXNTb3VyY2UubmV4dChmYWxzZSk7XHJcbiAgICAvL0F1dGhTZXJ2aWNlLnVzZXIgPSBudWxsO1xyXG4gIH0pXHJcbiAgfVxyXG5cclxuICBsb2dpbigpIHtcclxuICAgIHJldHVybiB0aGlzLm1hbmFnZXIuc2lnbmluUmVkaXJlY3QoKTtcclxuICB9XHJcblxyXG4gICBnZXRVc2VyKCl7XHJcbiAgICB0aGlzLm1hbmFnZXIuZ2V0VXNlcigpLnRoZW4oYXN5bmMgdXNlciA9PiB7XHJcbiAgICAgICA7XHJcbiAgICAgIEF1dGhTZXJ2aWNlLnVzZXIgPSB1c2VyO1xyXG4gICAgICB0aGlzLnVzZXI9dXNlclxyXG4gICAgICB0aGlzLl9hdXRoTmF2U3RhdHVzU291cmNlLm5leHQoYXdhaXQgdGhpcy5pc0F1dGhlbnRpY2F0ZWQoKSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgc3RvclVzZXIoVXNlcjphbnkpXHJcbiAge1xyXG4gICAgdGhpcy5tYW5hZ2VyLnN0b3JlVXNlcihVc2VyKTtcclxuICB9XHJcblxyXG4gIHJldm9rZUFjY2Vzc1Rva2VuKClcclxuICB7XHJcbiAgICB0aGlzLm1hbmFnZXIucmV2b2tlQWNjZXNzVG9rZW4oKTtcclxuICB9XHJcblxyXG4gICBzaWduaW5TaWxlbnQoKXtcclxuICAgICBcclxuICAgIGxldCB4PXRoaXMubWFuYWdlci5zaWduaW5TaWxlbnRDYWxsYmFjaygpXHJcbiAgICB4LnRoZW4ocz0+e1xyXG4gICAgIC8vY29uc29sZS5sb2cocylcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBhc3luYyBjb21wbGV0ZUF1dGhlbnRpY2F0aW9uKCkge1xyXG5cclxuICAgICA7XHJcbiAgICB0aGlzLnVzZXIgPSBhd2FpdCB0aGlzLm1hbmFnZXIuc2lnbmluUmVkaXJlY3RDYWxsYmFjaygpO1xyXG4gICAgQXV0aFNlcnZpY2UudXNlcj10aGlzLnVzZXJcclxuICAgICB0aGlzLl91c2VyU291cmNlLm5leHQoQXV0aFNlcnZpY2UudXNlcilcclxuICAgIHRoaXMuX2F1dGhOYXZTdGF0dXNTb3VyY2UubmV4dChhd2FpdCB0aGlzLmlzQXV0aGVudGljYXRlZCgpKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyKHVzZXJSZWdpc3RyYXRpb246IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KCdodHRwczovL2xvY2FsaG9zdDo0NDMzNS9hcGknICsgJy9hY2NvdW50JywgdXNlclJlZ2lzdHJhdGlvbik7XHJcbiAgfVxyXG5cclxuXHJcbiAgYXN5bmMgcmVmcmVzaFRva2VuKHRva2VuKSB7XHJcbiAgICBjb25zdCBodHRwT3B0aW9ucyA9IHtcclxuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICAnQ29udGVudC1UeXBlJzogICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgICAnQXV0aG9yaXphdGlvbic6IHRva2VuXHJcbiAgICAgIH0pXHJcbiAgICB9O1xyXG4gICAgdGhpcy5tYW5hZ2VyLnJldm9rZUFjY2Vzc1Rva2VuXHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5odHRwLnBvc3Q8YW55PihgJHVzZXJzL3JlZnJlc2gtdG9rZW5gLCBodHRwT3B0aW9ucywgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSkuc3Vic2NyaWJlKCh1c2VyKT0+e1xyXG4gICAgICB0aGlzLl91c2VyU291cmNlLm5leHQodXNlcilcclxuICAgICAgQXV0aFNlcnZpY2UudXNlcj11c2VyXHJcbiAgICAgIHRoaXMudXNlcj11c2VyO1xyXG4gICAgfSlcclxufVxyXG5cclxuICAgYXN5bmMgaXNBdXRoZW50aWNhdGVkKGFsbG93ZWRQZXJtaXNzaW9uPyA6IG51bWJlcltdKTpQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGxldCB1c2VyID0gYXdhaXQgdGhpcy5tYW5hZ2VyLmdldFVzZXIoKS50aGVuKHVzZXIgPT4ge1xyXG4gICAgICByZXR1cm4gdXNlcjtcclxuICAgIH0pXHJcbiAgaWYoYWxsb3dlZFBlcm1pc3Npb24hPW51bGwmJiBhbGxvd2VkUGVybWlzc2lvbiE9dW5kZWZpbmVkKSBcclxuICB7XHJcbiAgICBpZihhbGxvd2VkUGVybWlzc2lvbi5sZW5ndGg9PTApXHJcbiAgICB7XHJcbiAgICAgIHJldHVybiB0aGlzLnVzZXIgIT0gbnVsbCAmJiAhdGhpcy51c2VyLmV4cGlyZWQ7XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICB7XHJcbiAgICAgICA7XHJcbiAgICAgIGxldCBpc1VzZXJJblJvbGUgPXRoaXMuaXNVc2VySW5Sb2xlKGFsbG93ZWRQZXJtaXNzaW9uKTtcclxuICAgICAgcmV0dXJuIHRoaXMudXNlciAhPSBudWxsICYmICF0aGlzLnVzZXIuZXhwaXJlZCYmaXNVc2VySW5Sb2xlO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgZWxzZVxyXG4gIHJldHVybiB0aGlzLnVzZXIgIT0gbnVsbCAmJiAhdGhpcy51c2VyLmV4cGlyZWQ7XHJcblxyXG4gICAgICAgIFxyXG4gIH1cclxuICBpc1VzZXJJblJvbGUoYWxsb3dlZFBlcm1pc3Npb246IG51bWJlcltdKVxyXG4gIHtcclxuICAgICA7XHJcbiAgICBsZXQgcGVybWlzc2lvblNldFNJRCA9dGhpcy51c2VyLnByb2ZpbGVbXCJwZXJtaXNzaW9uU2V0U0lEXCJdLnNwbGl0YCxgLm1hcCh4PT4reCkgYXMgbnVtYmVyW11cclxuICAgIHJldHVybiBhbGxvd2VkUGVybWlzc2lvbi5ldmVyeShpID0+IHBlcm1pc3Npb25TZXRTSUQuaW5jbHVkZXMoaSkpO1xyXG4gIH1cclxuXHJcbiAgYXV0aG9yaXphdGlvbkhlYWRlclZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7QXV0aFNlcnZpY2UudXNlci50b2tlbl90eXBlfSAke0F1dGhTZXJ2aWNlLnVzZXIuYWNjZXNzX3Rva2VufWA7XHJcbiAgfVxyXG5cclxuICBuYW1lKCk6IHN0cmluZyB7XHJcbiAgICAgcmV0dXJuIEF1dGhTZXJ2aWNlLnVzZXIgIT0gbnVsbCA/IEF1dGhTZXJ2aWNlLnVzZXIucHJvZmlsZS5naXZlbl9uYW1lIDogJyc7XHJcbiAgfVxyXG4gIHNldFVybCh1cmwpe1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJyZWRpcmVjdFVybFwiLHVybClcclxuICAgIFxyXG4gIH1cclxuICBnZXRVcmwoKXtcclxuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInJlZGlyZWN0VXJsXCIpO1xyXG4gIH1cclxuICBzaWduaW5TaWxlbnRDYWxsYmFjaygpe1xyXG4gIHRoaXMubWFuYWdlci5zaWduaW5TaWxlbnRDYWxsYmFjaygpXHJcbiAgfVxyXG4gIGFzeW5jIHNpZ25vdXQoKSB7XHJcbiAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcclxuICAgIGF3YWl0IHRoaXMubWFuYWdlci5zaWdub3V0UmVkaXJlY3QoKTtcclxuXHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xpZW50U2V0dGluZ3MoKTogVXNlck1hbmFnZXJTZXR0aW5ncyB7XHJcbiAgcmV0dXJuIHtcclxuICAgICAgICAvLyBhdXRob3JpdHk6IGVudmlyb25tZW50U2VydmljZS5nZXRJZGVudGl0eVNlcnZlclVybCgpLFxyXG4gICAgICAgIC8vIGNsaWVudF9pZDogJ2FuZ3VsYXJfc3BhJyxcclxuICAgICAgICAvLyByZWRpcmVjdF91cmk6IGVudmlyb25tZW50U2VydmljZS5nZXRJZGVudGl0eVNlcnZlclVybCgpICsnL0FkbWluL2F1dGhlbnRpY2F0aW9uL2F1dGgtY2FsbGJhY2snLFxyXG4gICAgICAgIC8vIHBvc3RfbG9nb3V0X3JlZGlyZWN0X3VyaTogZW52aXJvbm1lbnRTZXJ2aWNlLmdldEJhc2VVcmwoKSAsXHJcbiAgICAgICAgLy8gcmVzcG9uc2VfdHlwZTogXCJpZF90b2tlbiB0b2tlblwiLFxyXG4gICAgICAgIC8vIHNjb3BlOiBcIm9wZW5pZCBwcm9maWxlIGVtYWlsIElkZW50aXR5U2VydmVyQXBpXCIsXHJcbiAgICAgICAgLy8gZmlsdGVyUHJvdG9jb2xDbGFpbXM6IHRydWUsXHJcbiAgICAgICAgLy8gbG9hZFVzZXJJbmZvOiB0cnVlLFxyXG4gICAgICAgIC8vIGF1dG9tYXRpY1NpbGVudFJlbmV3OnRydWUsXHJcbiAgICAgICAgLy8gc2lsZW50X3JlZGlyZWN0X3VyaTogIGVudmlyb25tZW50U2VydmljZS5nZXRJZGVudGl0eVNlcnZlclVybCgpKycvYXNzZXRzL3NpbGVudC1jYWxsYmFjay5odG1sJyxcclxuICAgICAgICAvLyB1c2VyU3RvcmU6IG5ldyBXZWJTdG9yYWdlU3RhdGVTdG9yZSh7IHN0b3JlOiB3aW5kb3cubG9jYWxTdG9yYWdlIH0pXHJcbiAgICAgICAgfTtcclxufVxyXG4iXX0=
@@ -1,4 +1,3 @@
1
- import { __awaiter } from "tslib";
2
1
  import { Component, ViewChild } from '@angular/core';
3
2
  import { FormGroup } from '@angular/forms';
4
3
  import { EnglishArabicDTO, FilterItem, FilterType, InputType, MultiLingualTextBoxOptions, PagingOptions, TextBoxOptions, FormOptions, ConfirmationModalOptions } from '@bnsights/bbsf-controls';
@@ -14,27 +13,23 @@ import * as i6 from "@bnsights/bbsf-controls";
14
13
  import * as i7 from "@angular/material/menu";
15
14
  import * as i8 from "../../empty-data/empty-data.component";
16
15
  import * as i9 from "@angular/common";
17
- import * as i10 from "@angular/forms";
18
- import * as i11 from "@angular/router";
19
- import * as i12 from "ng-inline-svg";
16
+ import * as i10 from "@angular/router";
17
+ import * as i11 from "ng-inline-svg";
20
18
  export class DepartmentComponent {
21
- constructor(environmentService, DepartmentService, modalService, authService, BBSFTranslateService, UtilityService, pageInfoService, requestHandlerService) {
19
+ constructor(environmentService, departmentService, modalService, authService, utilityService, pageInfoService, requestHandlerService) {
22
20
  this.environmentService = environmentService;
23
- this.DepartmentService = DepartmentService;
21
+ this.departmentService = departmentService;
24
22
  this.modalService = modalService;
25
23
  this.authService = authService;
26
- this.BBSFTranslateService = BBSFTranslateService;
27
- this.UtilityService = UtilityService;
24
+ this.utilityService = utilityService;
28
25
  this.pageInfoService = pageInfoService;
29
26
  this.requestHandlerService = requestHandlerService;
30
- //Page requirements
31
- this.ShowPageContent = false;
32
- this.language = "";
33
- this.ApiUrl = "/api/admin/Department/";
27
+ this.ApiUrl = this.departmentService.ApiUrl;
34
28
  //Filter and paging components
35
29
  this.DepartmentForm = new FormGroup({});
36
30
  this.IsFilterLoaded = false;
37
31
  this.DepartmentPagingResult = [];
32
+ this.DepartmentFilteredList = [];
38
33
  //Add Model Controls
39
34
  this.AddDepartmentForm = new FormGroup({});
40
35
  //Edit Model Controls
@@ -51,7 +46,7 @@ export class DepartmentComponent {
51
46
  return paramArray;
52
47
  };
53
48
  this.getAddDepartmentFunction = (AddModel) => {
54
- return this.DepartmentService.addDepartment(AddModel);
49
+ return this.departmentService.addDepartment(AddModel);
55
50
  };
56
51
  this.onAddDepartmentSuccess = (result) => {
57
52
  console.log(result);
@@ -59,25 +54,6 @@ export class DepartmentComponent {
59
54
  this.onAddDepartmentError = (error) => {
60
55
  console.log(error);
61
56
  };
62
- //editDepartment() {
63
- // if (this.EditDepartmentForm.invalid) {
64
- // return;
65
- // }
66
- // else {
67
- // let ResultModel = this.EditDepartmentForm.value;
68
- // let EditModel:DepartmentModel= new DepartmentModel() ;
69
- // EditModel.Id = this.DepartmentId;
70
- // EditModel.DepartmentNameDTO.English = ResultModel.EditName.EnglishValue;
71
- // EditModel.DepartmentNameDTO.Arabic = ResultModel.EditName.ArabicValue;
72
- // EditModel.SamAccount = ResultModel.EditSamAccount;
73
- // this.DepartmentService.editDepartment(EditModel).subscribe((result) => {
74
- // this.modalService.dismissAll();
75
- // let element = this.pagingElement as any;
76
- // element.UpdatePaging();
77
- // }, (error) => {
78
- // })
79
- // }
80
- //}
81
57
  this.getEditDepartmentModel = () => {
82
58
  let paramArray = [];
83
59
  let ResultModel = this.EditDepartmentForm.value;
@@ -90,7 +66,7 @@ export class DepartmentComponent {
90
66
  return paramArray;
91
67
  };
92
68
  this.getEditDepartmentFunction = (EditModel) => {
93
- return this.DepartmentService.editDepartment(EditModel);
69
+ return this.departmentService.editDepartment(EditModel);
94
70
  };
95
71
  this.onEditDepartmentSuccess = (result) => {
96
72
  console.log(result);
@@ -99,34 +75,30 @@ export class DepartmentComponent {
99
75
  console.log(error);
100
76
  };
101
77
  this.deleteDepartment = (id) => {
102
- return this.DepartmentService.deleteDepartment(id);
78
+ return this.departmentService.deleteDepartment(id);
103
79
  };
104
80
  }
105
81
  ngOnInit() {
106
- return __awaiter(this, void 0, void 0, function* () {
107
- this.ShowPageContent = true;
108
- //Page header (breadcrumb and title)
109
- PageInfoService.PageTitle = this.UtilityService.getResourceValue("Departments");
110
- PageInfoService.PageBreadcrumbs = [
111
- { title: this.UtilityService.getResourceValue("Home"), path: '/Admin/Home', isSeparator: false, isActive: false },
112
- { title: '', path: '', isSeparator: true, isActive: false }
113
- ];
114
- this.pageInfoService.calculateTitle();
115
- this.pageInfoService.calculateBreadcrumbs();
116
- this.language = yield this.UtilityService.getCurrentLanguage();
117
- this.ProductionMode = this.environmentService.getProductionMode();
118
- //initialize page
119
- this.initializePage();
120
- });
82
+ //Page header (breadcrumb and title)
83
+ PageInfoService.PageTitle = this.utilityService.getResourceValue("Departments");
84
+ PageInfoService.PageBreadcrumbs = [
85
+ { title: this.utilityService.getResourceValue("Home"), path: '/Admin/Home', isSeparator: false, isActive: false },
86
+ { title: '', path: '', isSeparator: true, isActive: false }
87
+ ];
88
+ this.pageInfoService.calculateTitle();
89
+ this.pageInfoService.calculateBreadcrumbs();
90
+ this.ProductionMode = this.environmentService.getProductionMode();
91
+ //initialize page
92
+ this.initializePage();
121
93
  }
122
94
  //Initialize filters and paging
123
95
  initializePage() {
124
- // TextBox inti
96
+ // TextBox init
125
97
  this.searchTextBox = new TextBoxOptions();
126
98
  this.searchTextBox.Name = "searchTextBox";
127
99
  this.searchTextBox.HideLabel = true;
128
100
  this.searchTextBox.Type = InputType.Text;
129
- this.searchTextBox.Placeholder = this.UtilityService.getResourceValue("SearchByName");
101
+ this.searchTextBox.Placeholder = this.utilityService.getResourceValue("SearchByName");
130
102
  this.TextInputFilter = new FilterItem();
131
103
  this.TextInputFilter.FormControlName = "searchTextBox";
132
104
  this.TextInputFilter.ActionParameterName = "searchText";
@@ -141,13 +113,14 @@ export class DepartmentComponent {
141
113
  }
142
114
  //Paging functions
143
115
  setDepartmentListResult(result) {
116
+ console.log(result);
144
117
  this.DepartmentPagingResult = result;
145
- this.ShowPageContent = true;
146
- this.UtilityService.stopBlockUI();
118
+ this.DepartmentFilteredList = this.DepartmentPagingResult;
119
+ this.utilityService.stopBlockUI();
147
120
  }
148
121
  //Add department
149
122
  showAddDepartmentModal(addDepartmentModal) {
150
- this.UtilityService.startBlockUI();
123
+ this.utilityService.startBlockUI();
151
124
  this.AddDepartmentForm = new FormGroup({});
152
125
  this.AddDepartmentFormOptions = new FormOptions();
153
126
  this.AddDepartmentFormOptions.FormGroup = this.AddDepartmentForm;
@@ -168,25 +141,9 @@ export class DepartmentComponent {
168
141
  this.AddSamAccount.Type = InputType.Text;
169
142
  this.AddSamAccount.Value = null;
170
143
  this.modalService.open(addDepartmentModal);
171
- this.UtilityService.stopBlockUI();
144
+ this.utilityService.stopBlockUI();
145
+ console.log(this.AddSamAccount);
172
146
  }
173
- //addDepartment() {
174
- // if (this.AddDepartmentForm.invalid) {
175
- // return;
176
- // }
177
- // else {
178
- // let ResultModel = this.AddDepartmentForm.value;
179
- // let AddModel: DepartmentModel = new DepartmentModel();
180
- // AddModel.SamAccount = ResultModel.AddSamAccount;
181
- // AddModel.DepartmentNameDTO.Arabic = ResultModel.AddName.ArabicValue;
182
- // AddModel.DepartmentNameDTO.English = ResultModel.AddName.EnglishValue;
183
- // this.DepartmentService.addDepartment(AddModel).subscribe((result) => {
184
- // this.modalService.dismissAll();
185
- // let element = this.pagingElement as any;
186
- // element.ReinitializePaging();
187
- // })
188
- // }
189
- //}
190
147
  //Edit department
191
148
  showEditDepartmentModal(departmentId, departmentIDEnc, editDepartmentModal) {
192
149
  this.EditDepartmentForm = new FormGroup({});
@@ -198,7 +155,8 @@ export class DepartmentComponent {
198
155
  this.EditDepartmentFormOptions.OnErrorHandler = this.onEditDepartmentError;
199
156
  this.EditDepartmentFormOptions.PagingReference = this.pagingElement;
200
157
  this.DepartmentId = departmentId;
201
- this.DepartmentService.getEditDepartment(departmentIDEnc).subscribe((result) => {
158
+ this.requestHandlerService.getLuckyNumber().subscribe(() => { });
159
+ this.departmentService.getEditDepartment(departmentIDEnc).subscribe((result) => {
202
160
  let department = result.model;
203
161
  let name = new EnglishArabicDTO();
204
162
  name.Arabic = department.departmentNameDTO.arabic;
@@ -228,30 +186,37 @@ export class DepartmentComponent {
228
186
  this.DeleteConfirmationOptions.ServiceSubmitModel = paramArray;
229
187
  this.DeleteConfirmationOptions.PagingReference = this.pagingElement;
230
188
  this.deleteControlLoaded = true;
189
+ setTimeout(() => {
190
+ this.ConfirmationModalControl.showModal();
191
+ }, 200);
192
+ }
193
+ /**FunctionName:filterDepartmentList */
194
+ /**Declaration:function to filter DepartmentList in client-side */
195
+ /**Parameters:*/
196
+ /**searchValue: current value of search box*/
197
+ filterDepartmentList(searchValue) {
198
+ if (searchValue)
199
+ this.DepartmentFilteredList = this.DepartmentPagingResult.filter(item => item.departmentName.toLowerCase().includes(searchValue.toLowerCase()));
200
+ else
201
+ this.DepartmentFilteredList = this.DepartmentPagingResult;
231
202
  }
232
203
  ngOnDestroy() {
233
- this.requestHandlerService.destroyHandler();
204
+ this.requestHandlerService.onDestroy$.next();
234
205
  }
235
206
  }
236
- DepartmentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DepartmentComponent, deps: [{ token: i1.EnvironmentService }, { token: i2.DepartmentService }, { token: i3.NgbModal }, { token: i1.AuthService }, { token: i1.BBSFTranslateService }, { token: i1.UtilityService }, { token: i4.PageInfoService }, { token: i1.RequestHandlerService }], target: i0.ɵɵFactoryTarget.Component });
237
- DepartmentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DepartmentComponent, selector: "lib-department", viewQueries: [{ propertyName: "pagingElement", first: true, predicate: ["DepartmentPagingViewElement"], descendants: true }, { propertyName: "CloseDepartmentModal", first: true, predicate: ["CloseDepartmentModal"], descendants: true }, { propertyName: "CloseEditDepartmentModal", first: true, predicate: ["CloseEditDepartmentModal"], descendants: true }, { propertyName: "ConfirmationModalControl", first: true, predicate: ["ConfirmationModalControl"], descendants: true }], ngImport: i0, template: "<block-ui></block-ui>\r\n<!-- Page Content -->\r\n<div *ngIf=\"ShowPageContent\" class=\"container-fluid\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-header border-0 pt-5\">\r\n <div class=\"card-title align-items-start flex-column\" *ngIf=\"IsFilterLoaded\">\r\n <form [formGroup]=\"DepartmentForm\">\r\n <BBSF-TextBox [options]=\"searchTextBox\" [group]=\"DepartmentForm\"></BBSF-TextBox>\r\n </form>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <!-- begin::Menu -->\r\n <button type=\"button\" class=\"btn btn-sm btn-primary\" title=\"Add\" (click)=\"showAddDepartmentModal(AddDepartmentModal)\">\r\n <i class=\"fas fa-plus me-1\"></i>\r\n {{UtilityService.getResourceValue(\"Add\")}}\r\n </button>\r\n\r\n <!-- end::Menu -->\r\n </div>\r\n </div>\r\n <div class=\"card-body py-3\">\r\n <div class=\"table-responsive\">\r\n <!--begin::Permission list-->\r\n <table class=\"table align-middle table-row-dashed fs-6 gy-5 dataTable no-footer\">\r\n <thead>\r\n <tr class=\"text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0\">\r\n <th class=\"min-w-150px\">{{UtilityService.getResourceValue(\"Name\")}}</th>\r\n <th class=\"min-w-150px\">{{UtilityService.getResourceValue(\"SamAccount\")}}</th>\r\n <th class=\"min-w-150px\">{{UtilityService.getResourceValue(\"UsersCount\")}}</th>\r\n <th class=\"min-w-50px\">{{UtilityService.getResourceValue(\"Action\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n\r\n <tr *ngFor=\"let Department of DepartmentPagingResult\">\r\n\r\n <td>\r\n <a href=\"javascript:void(0)\" [routerLink]=\"['/Admin/Departments/DepartmentInfo',Department.id]\" routerLinkActive=\"router-link-active\"\r\n class=\"text-dark\">{{Department.departmentName}}</a>\r\n\r\n </td>\r\n <td>{{Department.samAccount}}</td>\r\n <td>{{Department.usersCount}}</td>\r\n <td>\r\n <div>\r\n <button mat-button [matMenuTriggerFor]=\"menu\" class=\"btn btn-sm btn-icon btn-light btn-active-light-primary\">\r\n <i class=\"fa fa-ellipsis-h\" aria-hidden=\"true\"></i>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button class=\"drop-item px-3\" ngbDropdownItem\r\n (click)=\"showEditDepartmentModal(Department.id,Department.idEncrypted,EditDepartmentModal)\">\r\n <span class=\"drop-link px-3\">{{UtilityService.getResourceValue(\"Edit\")}}</span>\r\n </button>\r\n <a ngbDropdownItem class=\"drop-item px-3\"\r\n (click)=\"showDeleteDepartmentModal(Department.idEncrypted)\">\r\n <span class=\"drop-link px-3\">{{UtilityService.getResourceValue(\"Delete\")}}</span>\r\n </a>\r\n </mat-menu>\r\n </div>\r\n\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"DepartmentPagingResult.length == 0\">\r\n <td colspan=\"4\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <!--end::Permission list-->\r\n </div>\r\n\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setDepartmentListResult($event)\" *ngIf=\"IsFilterLoaded\"\r\n [options]=\"DepartmentPaging\" [group]=\"DepartmentForm\" #DepartmentPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n\r\n<!--add Modal-->\r\n<ng-template #AddDepartmentModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\"> {{UtilityService.getResourceValue(\"Add\")}} {{UtilityService.getResourceValue(\"Department\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"AddDepartmentFormOptions\">\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"AddName\" [group]=\"AddDepartmentForm\"></BBSF-MultiLingualTextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TextBox [options]=\"AddSamAccount\" [group]=\"AddDepartmentForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseDepartmentModal id=\"CloseDepartmentModal\" type=\"button\"\r\n class=\"btn btn-light btn-sm me-3\" data-dismiss=\"modal\" (click)=\"modal.dismiss()\">\r\n {{UtilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{UtilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n<!--Edit Modal-->\r\n<ng-template #EditDepartmentModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{UtilityService.getResourceValue(\"Edit\")}} {{UtilityService.getResourceValue(\"Department\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"EditDepartmentFormOptions\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"EditName\" [group]=\"EditDepartmentForm\"></BBSF-MultiLingualTextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TextBox [options]=\"EditSamAccount\" [group]=\"EditDepartmentForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseEditDepartmentModal id=\"CloseEditDepartmentModal\" type=\"button\"\r\n class=\"btn btn-light btn-sm me-3\" data-dismiss=\"modal\" (click)=\"modal.dismiss()\">\r\n {{UtilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{UtilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n<!--delete Modal-->\r\n<BBSF-ConfirmationModal *ngIf=\"deleteControlLoaded\" [options]=\"DeleteConfirmationOptions\" id=\"ConfirmationModalControl\" #ConfirmationModalControl></BBSF-ConfirmationModal>\r\n", components: [{ type: i5.BlockUIComponent, selector: "block-ui", inputs: ["name", "template", "message", "delayStart", "delayStop"] }, { type: i6.ɵd, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["OnChange"] }, { type: i7.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8.EmptyDataComponent, selector: "lib-empty-data", inputs: ["Message", "ShowImage", "ImgURL"] }, { type: i6.ɵs, selector: "BBSF-Paging", inputs: ["options", "group"], outputs: ["Items"] }, { type: i6.ɵv, selector: "BBSF-Form", inputs: ["options"] }, { type: i6.ɵc, selector: "BBSF-MultiLingualTextBox", inputs: ["group", "options"], outputs: ["OnChange"] }, { type: i6.ɵw, selector: "BBSF-ConfirmationModal", inputs: ["options"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i10.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i10.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i11.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], exportAs: ["routerLinkActive"] }, { type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["matMenuTriggerRestoreFocus", "mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { type: i3.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { type: i12.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "forceEvalStyles", "evalScripts", "inlineSVG", "setSVGAttributes", "removeSVGAttributes", "fallbackImgUrl", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }] });
207
+ DepartmentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DepartmentComponent, deps: [{ token: i1.EnvironmentService }, { token: i2.DepartmentService }, { token: i3.NgbModal }, { token: i1.AuthService }, { token: i1.UtilityService }, { token: i4.PageInfoService }, { token: i1.RequestHandlerService }], target: i0.ɵɵFactoryTarget.Component });
208
+ DepartmentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DepartmentComponent, selector: "lib-department", viewQueries: [{ propertyName: "pagingElement", first: true, predicate: ["DepartmentPagingViewElement"], descendants: true }, { propertyName: "ConfirmationModalControl", first: true, predicate: ["ConfirmationModalControl"], descendants: true }], ngImport: i0, template: "<block-ui></block-ui>\r\n<!-- Page Content -->\r\n<div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-header border-0 pt-5\">\r\n <div class=\"card-title align-items-start flex-column\" *ngIf=\"IsFilterLoaded\">\r\n <BBSF-TextBox [options]=\"searchTextBox\" (OnChange)=\"filterDepartmentList($event)\" [group]=\"DepartmentForm\"></BBSF-TextBox>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <!-- begin::Menu -->\r\n <button type=\"button\" class=\"btn btn-sm btn-primary\" title=\"Add\" (click)=\"showAddDepartmentModal(AddDepartmentModal)\">\r\n <i class=\"fas fa-plus me-1\"></i>\r\n {{utilityService.getResourceValue(\"Add\")}}\r\n </button>\r\n\r\n <!-- end::Menu -->\r\n </div>\r\n </div>\r\n <div class=\"card-body py-3\">\r\n <div class=\"table-responsive\">\r\n <!--begin::Permission list-->\r\n <table class=\"table align-middle table-row-dashed fs-6 gy-5 dataTable no-footer\">\r\n <thead>\r\n <tr class=\"text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0\">\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Name\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"SamAccount\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"UsersCount\")}}</th>\r\n <th class=\"min-w-50px\">{{utilityService.getResourceValue(\"Action\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n\r\n <tr *ngFor=\"let Department of DepartmentFilteredList\">\r\n\r\n <td>\r\n <a href=\"javascript:void(0)\" [routerLink]=\"['/Admin/Departments/DepartmentInfo',Department.idEncrypted]\" routerLinkActive=\"router-link-active\"\r\n class=\"text-dark\">{{Department.departmentName}}</a>\r\n\r\n </td>\r\n <td>{{Department.samAccount}}</td>\r\n <td>{{Department.usersCount}}</td>\r\n <td>\r\n <div>\r\n <button mat-button [matMenuTriggerFor]=\"menu\" class=\"btn btn-sm btn-icon btn-light btn-active-light-primary\">\r\n <i class=\"fa fa-ellipsis-h\" aria-hidden=\"true\"></i>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button class=\"drop-item px-3\" ngbDropdownItem\r\n (click)=\"showEditDepartmentModal(Department.id,Department.idEncrypted,EditDepartmentModal)\">\r\n <span class=\"drop-link px-3\">{{utilityService.getResourceValue(\"Edit\")}}</span>\r\n </button>\r\n <a ngbDropdownItem class=\"drop-item px-3\"\r\n (click)=\"showDeleteDepartmentModal(Department.idEncrypted)\">\r\n <span class=\"drop-link px-3\">{{utilityService.getResourceValue(\"Delete\")}}</span>\r\n </a>\r\n </mat-menu>\r\n </div>\r\n\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"DepartmentFilteredList.length == 0\">\r\n <td colspan=\"4\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <!--end::Permission list-->\r\n </div>\r\n\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setDepartmentListResult($event)\" *ngIf=\"IsFilterLoaded\"\r\n [options]=\"DepartmentPaging\" [group]=\"DepartmentForm\" #DepartmentPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n\r\n<!--add Modal-->\r\n<ng-template #AddDepartmentModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\"> {{utilityService.getResourceValue(\"Add\")}} {{utilityService.getResourceValue(\"Department\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"AddDepartmentFormOptions\">\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"AddName\" [group]=\"AddDepartmentForm\"></BBSF-MultiLingualTextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TextBox [options]=\"AddSamAccount\" [group]=\"AddDepartmentForm\" >\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseDepartmentModal id=\"CloseDepartmentModal\" type=\"button\"\r\n class=\"btn btn-light btn-sm me-3\" data-dismiss=\"modal\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n<!--Edit Modal-->\r\n<ng-template #EditDepartmentModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"Edit\")}} {{utilityService.getResourceValue(\"Department\")}}</h1>\r\n </div>\r\n <BBSF-Form [options]=\"EditDepartmentFormOptions\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"EditName\" [group]=\"EditDepartmentForm\"></BBSF-MultiLingualTextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TextBox [options]=\"EditSamAccount\" [group]=\"EditDepartmentForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseEditDepartmentModal id=\"CloseEditDepartmentModal\" type=\"button\"\r\n class=\"btn btn-light btn-sm me-3\" data-dismiss=\"modal\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n<!--delete Modal-->\r\n<BBSF-ConfirmationModal *ngIf=\"deleteControlLoaded\" [options]=\"DeleteConfirmationOptions\" id=\"ConfirmationModalControl\" #ConfirmationModalControl></BBSF-ConfirmationModal>\r\n", components: [{ type: i5.BlockUIComponent, selector: "block-ui", inputs: ["name", "template", "message", "delayStart", "delayStop"] }, { type: i6.ɵd, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["OnChange"] }, { type: i7.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8.EmptyDataComponent, selector: "lib-empty-data", inputs: ["Message", "ShowImage", "ImgURL"] }, { type: i6.ɵs, selector: "BBSF-Paging", inputs: ["options", "group"], outputs: ["Items"] }, { type: i6.ɵv, selector: "BBSF-Form", inputs: ["options"] }, { type: i6.ɵc, selector: "BBSF-MultiLingualTextBox", inputs: ["group", "options"], outputs: ["OnChange"] }, { type: i6.ɵw, selector: "BBSF-ConfirmationModal", inputs: ["options"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i10.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], exportAs: ["routerLinkActive"] }, { type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["matMenuTriggerRestoreFocus", "mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { type: i3.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { type: i11.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "forceEvalStyles", "evalScripts", "inlineSVG", "setSVGAttributes", "removeSVGAttributes", "fallbackImgUrl", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }] });
238
209
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DepartmentComponent, decorators: [{
239
210
  type: Component,
240
211
  args: [{
241
212
  selector: 'lib-department',
242
213
  templateUrl: './department.component.html',
243
214
  }]
244
- }], ctorParameters: function () { return [{ type: i1.EnvironmentService }, { type: i2.DepartmentService }, { type: i3.NgbModal }, { type: i1.AuthService }, { type: i1.BBSFTranslateService }, { type: i1.UtilityService }, { type: i4.PageInfoService }, { type: i1.RequestHandlerService }]; }, propDecorators: { pagingElement: [{
215
+ }], ctorParameters: function () { return [{ type: i1.EnvironmentService }, { type: i2.DepartmentService }, { type: i3.NgbModal }, { type: i1.AuthService }, { type: i1.UtilityService }, { type: i4.PageInfoService }, { type: i1.RequestHandlerService }]; }, propDecorators: { pagingElement: [{
245
216
  type: ViewChild,
246
217
  args: ['DepartmentPagingViewElement', { static: false }]
247
- }], CloseDepartmentModal: [{
248
- type: ViewChild,
249
- args: ['CloseDepartmentModal', { static: false }]
250
- }], CloseEditDepartmentModal: [{
251
- type: ViewChild,
252
- args: ['CloseEditDepartmentModal', { static: false }]
253
218
  }], ConfirmationModalControl: [{
254
219
  type: ViewChild,
255
220
  args: ['ConfirmationModalControl', { static: false }]
256
221
  }] } });
257
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwYXJ0bWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2RlcGFydG1lbnRzL2RlcGFydG1lbnQvZGVwYXJ0bWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2RlcGFydG1lbnRzL2RlcGFydG1lbnQvZGVwYXJ0bWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBc0IsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsMEJBQTBCLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoTSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDdkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVVyRixNQUFNLE9BQU8sbUJBQW1CO0lBdUM5QixZQUVVLGtCQUFxQyxFQUNyQyxpQkFBb0MsRUFDcEMsWUFBc0IsRUFDdEIsV0FBd0IsRUFDeEIsb0JBQTBDLEVBQzNDLGNBQThCLEVBQzdCLGVBQStCLEVBQy9CLHFCQUEyQztRQVAzQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsaUJBQVksR0FBWixZQUFZLENBQVU7UUFDdEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIseUJB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QUFrQixHQUFHLFVBQVUsQ0FBQztRQUMvRCxJQUFJLENBQUMseUJBQXlCLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFFcEUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztJQUNsQyxDQUFDO0lBTUQsV0FBVztRQUNULElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM5QyxDQUFDOztpSEF0UlUsbUJBQW1CO3FHQUFuQixtQkFBbUIsaWhCQ2ZoQyw4Z1BBOEpBOzRGRC9JYSxtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsV0FBVyxFQUFFLDZCQUE2QjtpQkFDM0M7NFRBZThELGFBQWE7c0JBQXpFLFNBQVM7dUJBQUMsNkJBQTZCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQU9MLG9CQUFvQjtzQkFBekUsU0FBUzt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBUU0sd0JBQXdCO3NCQUFqRixTQUFTO3VCQUFDLDBCQUEwQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFNRSx3QkFBd0I7c0JBQWpGLFNBQVM7dUJBQUMsMEJBQTBCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXQsIFZpZXdDaGlsZCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRW5nbGlzaEFyYWJpY0RUTywgRmlsdGVySXRlbSwgRmlsdGVyVHlwZSwgSW5wdXRUeXBlLCBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucywgUGFnaW5nT3B0aW9ucywgVGV4dEJveE9wdGlvbnMsIEZvcm1PcHRpb25zLCBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnMgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IERlcGFydG1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL0RlcGFydG1lbnRTZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEZXBhcnRtZW50TW9kZWwgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL0RlcGFydG1lbnRNb2RlbHMvRGVwYXJ0bWVudE1vZGVsJztcclxuaW1wb3J0IHsgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX21ldHJvbmljL2NvcmUvc2VydmljZXMvcGFnZS1pbmZvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOZ2JNb2RhbCwgIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSwgRW52aXJvbm1lbnRTZXJ2aWNlLCBVdGlsaXR5U2VydmljZSwgQkJTRlRyYW5zbGF0ZVNlcnZpY2UsIFJlcXVlc3RIYW5kbGVyU2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUGFnaW5nQ29tcG9uZW50IH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMvbGliL2NvbnRyb2xzL1BhZ2luZy9QYWdpbmcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scy9saWIvY29udHJvbHMvQ29uZmlybWF0aW9uTW9kYWwvQ29uZmlybWF0aW9uTW9kYWwuY29tcG9uZW50JztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZGVwYXJ0bWVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RlcGFydG1lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVwYXJ0bWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCAsT25EZXN0cm95IHtcclxuICAvL1BhZ2UgcmVxdWlyZW1lbnRzXHJcbiAgU2hvd1BhZ2VDb250ZW50OiBib29sZWFuID0gZmFsc2U7XHJcbiAgUHJvZHVjdGlvbk1vZGU6IGJvb2xlYW47XHJcbiAgbGFuZ3VhZ2U6IHN0cmluZyA9IFwiXCJcclxuICBBcGlVcmwgPSBcIi9hcGkvYWRtaW4vRGVwYXJ0bWVudC9cIlxyXG5cclxuICAvL0ZpbHRlciBhbmQgcGFnaW5nIGNvbXBvbmVudHNcclxuICBEZXBhcnRtZW50Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIHNlYXJjaFRleHRCb3g6IFRleHRCb3hPcHRpb25zO1xyXG4gIFRleHRJbnB1dEZpbHRlcjogRmlsdGVySXRlbTtcclxuICBJc0ZpbHRlckxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIERlcGFydG1lbnRQYWdpbmc6IFBhZ2luZ09wdGlvbnM7XHJcbiAgRGVwYXJ0bWVudFBhZ2luZ1Jlc3VsdDogYW55W10gPSBbXTtcclxuICBAVmlld0NoaWxkKCdEZXBhcnRtZW50UGFnaW5nVmlld0VsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgcGFnaW5nRWxlbWVudDogUGFnaW5nQ29tcG9uZW50O1xyXG5cclxuICAvL0FkZCBNb2RlbCBDb250cm9sc1xyXG4gIEFkZERlcGFydG1lbnRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgQWRkRGVwYXJ0bWVudEZvcm1PcHRpb25zOiBGb3JtT3B0aW9uc1xyXG4gIEFkZE5hbWU6TXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnNcclxuICBBZGRTYW1BY2NvdW50OiBUZXh0Qm94T3B0aW9ucztcclxuICBAVmlld0NoaWxkKCdDbG9zZURlcGFydG1lbnRNb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBDbG9zZURlcGFydG1lbnRNb2RhbDogRWxlbWVudFJlZjtcclxuXHJcbiAgLy9FZGl0IE1vZGVsIENvbnRyb2xzXHJcbiAgRWRpdERlcGFydG1lbnRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgRWRpdERlcGFydG1lbnRGb3JtT3B0aW9uczogRm9ybU9wdGlvbnNcclxuICBFZGl0TmFtZTpNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9uc1xyXG4gIEVkaXRTYW1BY2NvdW50OiBUZXh0Qm94T3B0aW9ucztcclxuICBEZXBhcnRtZW50SWQ6IG51bWJlcjtcclxuICBAVmlld0NoaWxkKCdDbG9zZUVkaXREZXBhcnRtZW50TW9kYWwnLCB7IHN0YXRpYzogZmFsc2UgfSkgQ2xvc2VFZGl0RGVwYXJ0bWVudE1vZGFsOiBFbGVtZW50UmVmO1xyXG5cclxuICAvL2RlbGV0ZSAgTW9kZWwgQ29udHJvbHNcclxuICBkZWxldGVEZXBhcnRtZW50SWQ6IHN0cmluZztcclxuICBEZWxldGVDb25maXJtYXRpb25PcHRpb25zOiBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnM7XHJcbiAgZGVsZXRlQ29udHJvbExvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ0NvbmZpcm1hdGlvbk1vZGFsQ29udHJvbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBDb25maXJtYXRpb25Nb2RhbENvbnRyb2w6IENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50O1xyXG5cclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yXHJcbiAgKFxyXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudFNlcnZpY2U6RW52aXJvbm1lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBEZXBhcnRtZW50U2VydmljZTogRGVwYXJ0bWVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgQkJTRlRyYW5zbGF0ZVNlcnZpY2U6IEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIFV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSxcclxuICAgIHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOlBhZ2VJbmZvU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVxdWVzdEhhbmRsZXJTZXJ2aWNlOlJlcXVlc3RIYW5kbGVyU2VydmljZSxcclxuICAgKSBcclxuICB7XHJcbiAgfVxyXG4gICBhc3luYyBuZ09uSW5pdCgpIHtcclxuICAgICB0aGlzLlNob3dQYWdlQ29udGVudCA9IHRydWU7XHJcbiAgICAgLy9QYWdlIGhlYWRlciAoYnJlYWRjcnVtYiBhbmQgdGl0bGUpXHJcbiAgICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VUaXRsZSA9IHRoaXMuVXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRlcGFydG1lbnRzXCIpXHJcbiAgICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VCcmVhZGNydW1icyA9IFtcclxuICAgICAgIHsgdGl0bGU6IHRoaXMuVXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkhvbWVcIiksIHBhdGg6ICcvQWRtaW4vSG9tZScsIGlzU2VwYXJhdG9yOiBmYWxzZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfVxyXG5cclxuICAgICBdO1xyXG4gICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZVRpdGxlKCk7XHJcbiAgICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlQnJlYWRjcnVtYnMoKTtcclxuICAgICB0aGlzLmxhbmd1YWdlID0gYXdhaXQgdGhpcy5VdGlsaXR5U2VydmljZS5nZXRDdXJyZW50TGFuZ3VhZ2UoKTtcclxuICAgICB0aGlzLlByb2R1Y3Rpb25Nb2RlID0gdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0UHJvZHVjdGlvbk1vZGUoKTtcclxuXHJcbiAgICAgLy9pbml0aWFsaXplIHBhZ2VcclxuICAgICB0aGlzLmluaXRpYWxpemVQYWdlKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy9Jbml0aWFsaXplIGZpbHRlcnMgYW5kIHBhZ2luZ1xyXG4gIGluaXRpYWxpemVQYWdlKCkge1xyXG4gICAgICAvLyBUZXh0Qm94IGludGlcclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Qm94ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuc2VhcmNoVGV4dEJveC5OYW1lID0gXCJzZWFyY2hUZXh0Qm94XCJcclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Qm94LkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICAgIHRoaXMuc2VhcmNoVGV4dEJveC5UeXBlID0gSW5wdXRUeXBlLlRleHRcclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Qm94LlBsYWNlaG9sZGVyID0gdGhpcy5VdGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2VhcmNoQnlOYW1lXCIpXHJcblxyXG4gICAgICB0aGlzLlRleHRJbnB1dEZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICAgIHRoaXMuVGV4dElucHV0RmlsdGVyLkZvcm1Db250cm9sTmFtZSA9IFwic2VhcmNoVGV4dEJveFwiXHJcbiAgICAgIHRoaXMuVGV4dElucHV0RmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcInNlYXJjaFRleHRcIlxyXG4gICAgICB0aGlzLlRleHRJbnB1dEZpbHRlci5Jc0Zvcm1Db250cm9sID0gdHJ1ZVxyXG4gICAgICB0aGlzLlRleHRJbnB1dEZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5UZXh0Qm94XHJcblxyXG4gICAgICB0aGlzLkRlcGFydG1lbnRQYWdpbmcgPSBuZXcgUGFnaW5nT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLkRlcGFydG1lbnRQYWdpbmcuQWN0aW9uUG9zdFVSTCA9ICB0aGlzLkFwaVVybCArICdHZXREZXBhcnRtZW50c0J5RmlsdGVyJztcclxuICAgICAgdGhpcy5EZXBhcnRtZW50UGFnaW5nLk9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzID0gW1wic2VhcmNoVGV4dEJveFwiXVxyXG4gICAgICB0aGlzLkRlcGFydG1lbnRQYWdpbmcuRmlsdGVycyA9IFt0aGlzLlRleHRJbnB1dEZpbHRlcl1cclxuICAgICAgdGhpcy5EZXBhcnRtZW50UGFnaW5nLlZhbGlkYXRpb25Ub2tlbiA9IHRoaXMuYXV0aFNlcnZpY2UuYXV0aG9yaXphdGlvbkhlYWRlclZhbHVlKClcclxuICAgICAgdGhpcy5Jc0ZpbHRlckxvYWRlZCA9IHRydWU7XHJcbiAgICAgIFxyXG4gIH1cclxuXHJcbiAgLy9QYWdpbmcgZnVuY3Rpb25zXHJcbiAgc2V0RGVwYXJ0bWVudExpc3RSZXN1bHQocmVzdWx0KSB7XHJcbiAgICB0aGlzLkRlcGFydG1lbnRQYWdpbmdSZXN1bHQ9IHJlc3VsdFxyXG4gICAgdGhpcy5TaG93UGFnZUNvbnRlbnQ9dHJ1ZTtcclxuICAgIHRoaXMuVXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKVxyXG4gIH1cclxuXHJcblxyXG4gIC8vQWRkIGRlcGFydG1lbnRcclxuICBzaG93QWRkRGVwYXJ0bWVudE1vZGFsKGFkZERlcGFydG1lbnRNb2RhbCkge1xyXG4gICAgdGhpcy5VdGlsaXR5U2VydmljZS5zdGFydEJsb2NrVUkoKVxyXG4gICAgdGhpcy5BZGREZXBhcnRtZW50Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pXHJcblxyXG4gICAgdGhpcy5BZGREZXBhcnRtZW50Rm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgIHRoaXMuQWRkRGVwYXJ0bWVudEZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuQWRkRGVwYXJ0bWVudEZvcm1cclxuICAgIHRoaXMuQWRkRGVwYXJ0bWVudEZvcm1PcHRpb25zLkdldE1vZGVsRnVuY3Rpb24gPSB0aGlzLmdldEFkZERlcGFydG1lbnRNb2RlbDtcclxuICAgIHRoaXMuQWRkRGVwYXJ0bWVudEZvcm1PcHRpb25zLlNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9IHRoaXMuZ2V0QWRkRGVwYXJ0bWVudEZ1bmN0aW9uO1xyXG4gICAgdGhpcy5BZGREZXBhcnRtZW50Rm9ybU9wdGlvbnMuT25TdWNjZXNzSGFuZGxlciA9IHRoaXMub25BZGREZXBhcnRtZW50U3VjY2VzcztcclxuICAgIHRoaXMuQWRkRGVwYXJ0bWVudEZvcm1PcHRpb25zLk9uRXJyb3JIYW5kbGVyID0gdGhpcy5vbkFkZERlcGFydG1lbnRFcnJvcjtcclxuICAgIHRoaXMuQWRkRGVwYXJ0bWVudEZvcm1PcHRpb25zLlBhZ2luZ1JlZmVyZW5jZSA9IHRoaXMucGFnaW5nRWxlbWVudCAgXHJcblxyXG4gICAgdGhpcy5BZGROYW1lID0gbmV3IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLkFkZE5hbWUuTmFtZSA9IFwiQWRkTmFtZVwiO1xyXG4gICAgdGhpcy5BZGROYW1lLkFyYWJpY0xhYmVsS2V5ID0gXCJOYW1lSW5BcmFiaWNcIjtcclxuICAgIHRoaXMuQWRkTmFtZS5FbmdsaXNoTGFiZWxLZXkgPSBcIk5hbWVJbkVuZ2xpc2hcIjtcclxuICAgIHRoaXMuQWRkTmFtZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgIHRoaXMuQWRkTmFtZS5WYWx1ZSA9IG51bGw7XHJcbiAgICBcclxuICAgIHRoaXMuQWRkU2FtQWNjb3VudCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5BZGRTYW1BY2NvdW50Lk5hbWUgPSBcIkFkZFNhbUFjY291bnRcIjtcclxuICAgIHRoaXMuQWRkU2FtQWNjb3VudC5MYWJlbEtleSA9IFwiU2FtQWNjb3VudFwiO1xyXG4gICAgdGhpcy5BZGRTYW1BY2NvdW50LlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgIHRoaXMuQWRkU2FtQWNjb3VudC5WYWx1ZSA9IG51bGw7XHJcblxyXG4gICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihhZGREZXBhcnRtZW50TW9kYWwpO1xyXG4gICAgdGhpcy5VdGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWRkRGVwYXJ0bWVudE1vZGVsID0gKCkgPT4ge1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBsZXQgUmVzdWx0TW9kZWwgPSB0aGlzLkFkZERlcGFydG1lbnRGb3JtLnZhbHVlO1xyXG4gICAgbGV0IEFkZE1vZGVsOiBEZXBhcnRtZW50TW9kZWwgPSBuZXcgRGVwYXJ0bWVudE1vZGVsKCk7XHJcbiAgICBBZGRNb2RlbC5TYW1BY2NvdW50ID0gUmVzdWx0TW9kZWwuQWRkU2FtQWNjb3VudDtcclxuICAgIEFkZE1vZGVsLkRlcGFydG1lbnROYW1lRFRPLkFyYWJpYyA9IFJlc3VsdE1vZGVsLkFkZE5hbWUuQXJhYmljVmFsdWU7XHJcbiAgICBBZGRNb2RlbC5EZXBhcnRtZW50TmFtZURUTy5FbmdsaXNoID0gUmVzdWx0TW9kZWwuQWRkTmFtZS5FbmdsaXNoVmFsdWU7XHJcbiAgICBwYXJhbUFycmF5LnB1c2goQWRkTW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfVxyXG5cclxuICBnZXRBZGREZXBhcnRtZW50RnVuY3Rpb24gPSAoQWRkTW9kZWwpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuRGVwYXJ0bWVudFNlcnZpY2UuYWRkRGVwYXJ0bWVudChBZGRNb2RlbClcclxuICB9XHJcbiAgb25BZGREZXBhcnRtZW50U3VjY2VzcyA9IChyZXN1bHQpID0+IHtcclxuICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XHJcbiAgfVxyXG4gIG9uQWRkRGVwYXJ0bWVudEVycm9yID0gKGVycm9yKSA9PiB7XHJcbiAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgfVxyXG5cclxuICAvL2FkZERlcGFydG1lbnQoKSB7XHJcbiAgLy8gIGlmICh0aGlzLkFkZERlcGFydG1lbnRGb3JtLmludmFsaWQpIHtcclxuICAvLyAgICByZXR1cm47XHJcbiAgLy8gIH1cclxuICAvLyAgZWxzZSB7ICAgICBcclxuICAvLyAgICBsZXQgUmVzdWx0TW9kZWwgPSB0aGlzLkFkZERlcGFydG1lbnRGb3JtLnZhbHVlO1xyXG4gIC8vICAgIGxldCBBZGRNb2RlbDogRGVwYXJ0bWVudE1vZGVsID0gbmV3IERlcGFydG1lbnRNb2RlbCgpO1xyXG4gIC8vICAgIEFkZE1vZGVsLlNhbUFjY291bnQgPSBSZXN1bHRNb2RlbC5BZGRTYW1BY2NvdW50O1xyXG4gIC8vICAgIEFkZE1vZGVsLkRlcGFydG1lbnROYW1lRFRPLkFyYWJpYyA9IFJlc3VsdE1vZGVsLkFkZE5hbWUuQXJhYmljVmFsdWU7XHJcbiAgLy8gICAgQWRkTW9kZWwuRGVwYXJ0bWVudE5hbWVEVE8uRW5nbGlzaCA9IFJlc3VsdE1vZGVsLkFkZE5hbWUuRW5nbGlzaFZhbHVlO1xyXG4gIC8vICAgIHRoaXMuRGVwYXJ0bWVudFNlcnZpY2UuYWRkRGVwYXJ0bWVudChBZGRNb2RlbCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAvLyAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLmRpc21pc3NBbGwoKTtcclxuICAvLyAgICAgIGxldCBlbGVtZW50ID0gdGhpcy5wYWdpbmdFbGVtZW50IGFzIGFueTtcclxuICAvLyAgICAgIGVsZW1lbnQuUmVpbml0aWFsaXplUGFnaW5nKCk7XHJcbiAgLy8gICAgfSlcclxuICAvLyAgfVxyXG4gIC8vfVxyXG5cclxuICAvL0VkaXQgZGVwYXJ0bWVudFxyXG4gIHNob3dFZGl0RGVwYXJ0bWVudE1vZGFsKGRlcGFydG1lbnRJZDogbnVtYmVyLGRlcGFydG1lbnRJREVuYzogc3RyaW5nLCBlZGl0RGVwYXJ0bWVudE1vZGFsKSB7XHJcbiAgICB0aGlzLkVkaXREZXBhcnRtZW50Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIHRoaXMuRWRpdERlcGFydG1lbnRGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgdGhpcy5FZGl0RGVwYXJ0bWVudEZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuRWRpdERlcGFydG1lbnRGb3JtXHJcbiAgICB0aGlzLkVkaXREZXBhcnRtZW50Rm9ybU9wdGlvbnMuR2V0TW9kZWxGdW5jdGlvbiA9IHRoaXMuZ2V0RWRpdERlcGFydG1lbnRNb2RlbDtcclxuICAgIHRoaXMuRWRpdERlcGFydG1lbnRGb3JtT3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmdldEVkaXREZXBhcnRtZW50RnVuY3Rpb247XHJcbiAgICB0aGlzLkVkaXREZXBhcnRtZW50Rm9ybU9wdGlvbnMuT25TdWNjZXNzSGFuZGxlciA9IHRoaXMub25FZGl0RGVwYXJ0bWVudFN1Y2Nlc3M7XHJcbiAgICB0aGlzLkVkaXREZXBhcnRtZW50Rm9ybU9wdGlvbnMuT25FcnJvckhhbmRsZXIgPSB0aGlzLm9uRWRpdERlcGFydG1lbnRFcnJvcjtcclxuICAgIHRoaXMuRWRpdERlcGFydG1lbnRGb3JtT3B0aW9ucy5QYWdpbmdSZWZlcmVuY2UgPSB0aGlzLnBhZ2luZ0VsZW1lbnRcclxuXHJcbiAgICB0aGlzLkRlcGFydG1lbnRJZCA9IGRlcGFydG1lbnRJZDtcclxuICAgIHRoaXMuRGVwYXJ0bWVudFNlcnZpY2UuZ2V0RWRpdERlcGFydG1lbnQoZGVwYXJ0bWVudElERW5jKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgIGxldCBkZXBhcnRtZW50ID0gcmVzdWx0Lm1vZGVsIGFzIGFueTtcclxuXHJcbiAgICAgIGxldCBuYW1lID0gbmV3IEVuZ2xpc2hBcmFiaWNEVE8oKTtcclxuICAgICAgbmFtZS5BcmFiaWMgPSBkZXBhcnRtZW50LmRlcGFydG1lbnROYW1lRFRPLmFyYWJpYztcclxuICAgICAgbmFtZS5FbmdsaXNoID0gZGVwYXJ0bWVudC5kZXBhcnRtZW50TmFtZURUTy5lbmdsaXNoO1xyXG5cclxuICAgICAgdGhpcy5FZGl0TmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLkVkaXROYW1lLk5hbWUgPSBcIkVkaXROYW1lXCI7XHJcbiAgICAgIHRoaXMuRWRpdE5hbWUuQXJhYmljTGFiZWxLZXkgPSBcIk5hbWVJbkFyYWJpY1wiO1xyXG4gICAgICB0aGlzLkVkaXROYW1lLkVuZ2xpc2hMYWJlbEtleSA9IFwiTmFtZUluRW5nbGlzaFwiO1xyXG4gICAgICB0aGlzLkVkaXROYW1lLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLkVkaXROYW1lLlZhbHVlID0gbmFtZTtcclxuXHJcblxyXG4gICAgICB0aGlzLkVkaXRTYW1BY2NvdW50ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuRWRpdFNhbUFjY291bnQuTmFtZSA9IFwiRWRpdFNhbUFjY291bnRcIjtcclxuICAgICAgdGhpcy5FZGl0U2FtQWNjb3VudC5MYWJlbEtleSA9IFwiU2FtQWNjb3VudFwiO1xyXG4gICAgICB0aGlzLkVkaXRTYW1BY2NvdW50LlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgdGhpcy5FZGl0U2FtQWNjb3VudC5WYWx1ZSA9IGRlcGFydG1lbnQuc2FtQWNjb3VudDtcclxuXHJcbiAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oZWRpdERlcGFydG1lbnRNb2RhbCk7XHJcblxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgLy9lZGl0RGVwYXJ0bWVudCgpIHtcclxuICAvLyAgaWYgKHRoaXMuRWRpdERlcGFydG1lbnRGb3JtLmludmFsaWQpIHtcclxuICAvLyAgICByZXR1cm47XHJcbiAgLy8gIH1cclxuICAvLyAgZWxzZSB7XHJcbiAgICAgXHJcbiAgLy8gICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy5FZGl0RGVwYXJ0bWVudEZvcm0udmFsdWU7XHJcbiAgLy8gICAgbGV0IEVkaXRNb2RlbDpEZXBhcnRtZW50TW9kZWw9IG5ldyBEZXBhcnRtZW50TW9kZWwoKSA7XHJcbiAgLy8gICAgRWRpdE1vZGVsLklkID0gdGhpcy5EZXBhcnRtZW50SWQ7XHJcbiAgLy8gICAgRWRpdE1vZGVsLkRlcGFydG1lbnROYW1lRFRPLkVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5FZGl0TmFtZS5FbmdsaXNoVmFsdWU7XHJcbiAgLy8gICAgRWRpdE1vZGVsLkRlcGFydG1lbnROYW1lRFRPLkFyYWJpYyA9IFJlc3VsdE1vZGVsLkVkaXROYW1lLkFyYWJpY1ZhbHVlO1xyXG4gIC8vICAgIEVkaXRNb2RlbC5TYW1BY2NvdW50ID0gUmVzdWx0TW9kZWwuRWRpdFNhbUFjY291bnQ7XHJcbiAgLy8gICAgdGhpcy5EZXBhcnRtZW50U2VydmljZS5lZGl0RGVwYXJ0bWVudChFZGl0TW9kZWwpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgLy8gICAgICB0aGlzLm1vZGFsU2VydmljZS5kaXNtaXNzQWxsKCk7ICAgICAgICBcclxuICAvLyAgICAgIGxldCBlbGVtZW50ID0gdGhpcy5wYWdpbmdFbGVtZW50IGFzIGFueTtcclxuICAvLyAgICAgIGVsZW1lbnQuVXBkYXRlUGFnaW5nKCk7XHJcbiAgLy8gICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgIFxyXG4gIC8vICAgIH0pXHJcbiAgLy8gIH1cclxuICAvL31cclxuXHJcbiAgZ2V0RWRpdERlcGFydG1lbnRNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy5FZGl0RGVwYXJ0bWVudEZvcm0udmFsdWU7XHJcbiAgICBsZXQgRWRpdE1vZGVsOiBEZXBhcnRtZW50TW9kZWwgPSBuZXcgRGVwYXJ0bWVudE1vZGVsKCk7XHJcbiAgICBFZGl0TW9kZWwuSWQgPSB0aGlzLkRlcGFydG1lbnRJZDtcclxuICAgIEVkaXRNb2RlbC5EZXBhcnRtZW50TmFtZURUTy5FbmdsaXNoID0gUmVzdWx0TW9kZWwuRWRpdE5hbWUuRW5nbGlzaFZhbHVlO1xyXG4gICAgRWRpdE1vZGVsLkRlcGFydG1lbnROYW1lRFRPLkFyYWJpYyA9IFJlc3VsdE1vZGVsLkVkaXROYW1lLkFyYWJpY1ZhbHVlO1xyXG4gICAgRWRpdE1vZGVsLlNhbUFjY291bnQgPSBSZXN1bHRNb2RlbC5FZGl0U2FtQWNjb3VudDtcclxuICAgIHBhcmFtQXJyYXkucHVzaChFZGl0TW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfVxyXG5cclxuICBnZXRFZGl0RGVwYXJ0bWVudEZ1bmN0aW9uID0gKEVkaXRNb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5EZXBhcnRtZW50U2VydmljZS5lZGl0RGVwYXJ0bWVudChFZGl0TW9kZWwpXHJcbiAgfVxyXG4gIG9uRWRpdERlcGFydG1lbnRTdWNjZXNzID0gKHJlc3VsdCkgPT4ge1xyXG4gICAgY29uc29sZS5sb2cocmVzdWx0KTtcclxuICB9XHJcbiAgb25FZGl0RGVwYXJ0bWVudEVycm9yID0gKGVycm9yKSA9PiB7XHJcbiAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgfVxyXG5cclxuICAvL0RlbGV0ZSBkZXBhcnRtZW50XHJcbiAgc2hvd0RlbGV0ZURlcGFydG1lbnRNb2RhbChkZXBhcnRtZW50SWRFbmM6IGFueSkge1xyXG4gICAgdGhpcy5kZWxldGVEZXBhcnRtZW50SWQgPSBkZXBhcnRtZW50SWRFbmM7XHJcblxyXG4gICAgLy9hcnJheSBzZW50IHRvIHNlcnZpY2UgZnVuY3Rpb25cclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgcGFyYW1BcnJheS5wdXNoKHRoaXMuZGVsZXRlRGVwYXJ0bWVudElkKTtcclxuXHJcbiAgICB0aGlzLkRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMgPSBuZXcgQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zKCk7XHJcbiAgICB0aGlzLkRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5kZWxldGVEZXBhcnRtZW50O1xyXG4gICAgdGhpcy5EZWxldGVDb25maXJtYXRpb25PcHRpb25zLlNlcnZpY2VTdWJtaXRNb2RlbCA9IHBhcmFtQXJyYXk7XHJcbiAgICB0aGlzLkRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMuUGFnaW5nUmVmZXJlbmNlID0gdGhpcy5wYWdpbmdFbGVtZW50O1xyXG5cclxuICAgIHRoaXMuZGVsZXRlQ29udHJvbExvYWRlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBkZWxldGVEZXBhcnRtZW50ID0gKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuRGVwYXJ0bWVudFNlcnZpY2UuZGVsZXRlRGVwYXJ0bWVudChpZCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLmRlc3Ryb3lIYW5kbGVyKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8YmxvY2stdWk+PC9ibG9jay11aT5cclxuPCEtLSBQYWdlIENvbnRlbnQgLS0+XHJcbjxkaXYgKm5nSWY9XCJTaG93UGFnZUNvbnRlbnRcIiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtY3VzdG9tLWhcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMCBwdC01XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCIgKm5nSWY9XCJJc0ZpbHRlckxvYWRlZFwiPlxyXG4gICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiRGVwYXJ0bWVudEZvcm1cIj5cclxuICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwic2VhcmNoVGV4dEJveFwiIFtncm91cF09XCJEZXBhcnRtZW50Rm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgIDwvZm9ybT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICA8IS0tIGJlZ2luOjpNZW51IC0tPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeVwiIHRpdGxlPVwiQWRkXCIgKGNsaWNrKT1cInNob3dBZGREZXBhcnRtZW50TW9kYWwoQWRkRGVwYXJ0bWVudE1vZGFsKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcGx1cyBtZS0xXCI+PC9pPlxyXG4gICAgICAgICAge3tVdGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWRkXCIpfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPCEtLSBlbmQ6Ok1lbnUgLS0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB5LTNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICA8IS0tYmVnaW46OlBlcm1pc3Npb24gbGlzdC0tPlxyXG4gICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIGFsaWduLW1pZGRsZSB0YWJsZS1yb3ctZGFzaGVkIGZzLTYgZ3ktNSBkYXRhVGFibGUgbm8tZm9vdGVyXCI+XHJcbiAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtc3RhcnQgdGV4dC1ncmF5LTQwMCBmdy1ib2xkZXIgZnMtNyB0ZXh0LXVwcGVyY2FzZSBncy0wXCI+XHJcbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e1V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJOYW1lXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3tVdGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2FtQWNjb3VudFwiKX19PC90aD5cclxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7VXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlVzZXJzQ291bnRcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctNTBweFwiPnt7VXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFjdGlvblwiKX19PC90aD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICA8dGJvZHkgaWQ9XCJsaXN0aW5nQ29udGFpbmVyXCIgY2xhc3M9XCJmdy1ib2xkIHRleHQtZ3JheS02MDAgYm9yZGVyLTBcIj5cclxuXHJcbiAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgRGVwYXJ0bWVudCBvZiBEZXBhcnRtZW50UGFnaW5nUmVzdWx0XCI+XHJcblxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiBbcm91dGVyTGlua109XCJbJy9BZG1pbi9EZXBhcnRtZW50cy9EZXBhcnRtZW50SW5mbycsRGVwYXJ0bWVudC5pZF1cIiByb3V0ZXJMaW5rQWN0aXZlPVwicm91dGVyLWxpbmstYWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1kYXJrXCI+e3tEZXBhcnRtZW50LmRlcGFydG1lbnROYW1lfX08L2E+XHJcblxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPnt7RGVwYXJ0bWVudC5zYW1BY2NvdW50fX08L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD57e0RlcGFydG1lbnQudXNlcnNDb3VudH19PC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWxpZ2h0IGJ0bi1hY3RpdmUtbGlnaHQtcHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZWxsaXBzaXMtaFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZHJvcC1pdGVtIHB4LTNcIiBuZ2JEcm9wZG93bkl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RWRpdERlcGFydG1lbnRNb2RhbChEZXBhcnRtZW50LmlkLERlcGFydG1lbnQuaWRFbmNyeXB0ZWQsRWRpdERlcGFydG1lbnRNb2RhbClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcC1saW5rIHB4LTNcIj57e1V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFZGl0XCIpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgbmdiRHJvcGRvd25JdGVtIGNsYXNzPVwiZHJvcC1pdGVtIHB4LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RGVsZXRlRGVwYXJ0bWVudE1vZGFsKERlcGFydG1lbnQuaWRFbmNyeXB0ZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3AtbGluayBweC0zXCI+e3tVdGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGVsZXRlXCIpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDx0ciAqbmdJZj1cIkRlcGFydG1lbnRQYWdpbmdSZXN1bHQubGVuZ3RoID09IDBcIj5cclxuICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjRcIj5cclxuICAgICAgICAgICAgICAgIDxsaWItZW1wdHktZGF0YT48L2xpYi1lbXB0eS1kYXRhPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgIDwvdGFibGU+XHJcblxyXG4gICAgICAgIDwhLS1lbmQ6OlBlcm1pc3Npb24gbGlzdC0tPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBib3JkZXItMFwiPlxyXG4gICAgICA8QkJTRi1QYWdpbmcgKEl0ZW1zKT1cInNldERlcGFydG1lbnRMaXN0UmVzdWx0KCRldmVudClcIiAqbmdJZj1cIklzRmlsdGVyTG9hZGVkXCJcclxuICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cIkRlcGFydG1lbnRQYWdpbmdcIiBbZ3JvdXBdPVwiRGVwYXJ0bWVudEZvcm1cIiAjRGVwYXJ0bWVudFBhZ2luZ1ZpZXdFbGVtZW50PlxyXG4gICAgICA8L0JCU0YtUGFnaW5nPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuXHJcbjwhLS1hZGQgTW9kYWwtLT5cclxuPG5nLXRlbXBsYXRlICNBZGREZXBhcnRtZW50TW9kYWwgbGV0LW1vZGFsPlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiIGlkPVwiZXhhbXBsZU1vZGFsTGFiZWxcIj48L2g1PlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5XCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICA8c3BhbiBbaW5saW5lU1ZHXT1cIicuL3NyYy9hc3NldHMvaW1hZ2VzL2FycjA2MS5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgPGgxIGNsYXNzPVwibWItM1wiPiB7e1V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBZGRcIil9fSB7e1V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJEZXBhcnRtZW50XCIpfX08L2gxPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cIkFkZERlcGFydG1lbnRGb3JtT3B0aW9uc1wiPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbFRleHRCb3ggW29wdGlvbnNdPVwiQWRkTmFtZVwiIFtncm91cF09XCJBZGREZXBhcnRtZW50Rm9ybVwiPjwvQkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiQWRkU2FtQWNjb3VudFwiIFtncm91cF09XCJBZGREZXBhcnRtZW50Rm9ybVwiPlxyXG4gICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtN1wiPlxyXG4gICAgICAgIDxidXR0b24gI0Nsb3NlRGVwYXJ0bWVudE1vZGFsIGlkPVwiQ2xvc2VEZXBhcnRtZW50TW9kYWxcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBidG4tc20gIG1lLTNcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cclxuICAgICAgICAgIHt7VXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNhbmNlbExhYmVsXCIpfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIj57e1V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTYXZlTGFiZWxcIil9fTwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvQkJTRi1Gb3JtPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG48IS0tRWRpdCBNb2RhbC0tPlxyXG48bmctdGVtcGxhdGUgI0VkaXREZXBhcnRtZW50TW9kYWwgbGV0LW1vZGFsPlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiIGlkPVwiZXhhbXBsZU1vZGFsTGFiZWxcIj48L2g1PlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5XCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICA8c3BhbiBbaW5saW5lU1ZHXT1cIicuL3NyYy9hc3NldHMvaW1hZ2VzL2FycjA2MS5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgPGgxIGNsYXNzPVwibWItM1wiPnt7VXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkVkaXRcIil9fSB7e1V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJEZXBhcnRtZW50XCIpfX08L2gxPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cIkVkaXREZXBhcnRtZW50Rm9ybU9wdGlvbnNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbFRleHRCb3ggW29wdGlvbnNdPVwiRWRpdE5hbWVcIiBbZ3JvdXBdPVwiRWRpdERlcGFydG1lbnRGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJFZGl0U2FtQWNjb3VudFwiIFtncm91cF09XCJFZGl0RGVwYXJ0bWVudEZvcm1cIj5cclxuICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICA8YnV0dG9uICNDbG9zZUVkaXREZXBhcnRtZW50TW9kYWwgaWQ9XCJDbG9zZUVkaXREZXBhcnRtZW50TW9kYWxcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBidG4tc20gIG1lLTNcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cclxuICAgICAgICAgIHt7VXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNhbmNlbExhYmVsXCIpfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIj57e1V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTYXZlTGFiZWxcIil9fTwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvQkJTRi1Gb3JtPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG48IS0tZGVsZXRlIE1vZGFsLS0+XHJcbjxCQlNGLUNvbmZpcm1hdGlvbk1vZGFsICpuZ0lmPVwiZGVsZXRlQ29udHJvbExvYWRlZFwiIFtvcHRpb25zXT1cIkRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnNcIiBpZD1cIkNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbFwiICNDb25maXJtYXRpb25Nb2RhbENvbnRyb2w+PC9CQlNGLUNvbmZpcm1hdGlvbk1vZGFsPlxyXG4iXX0=
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwYXJ0bWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2RlcGFydG1lbnRzL2RlcGFydG1lbnQvZGVwYXJ0bWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL2RlcGFydG1lbnRzL2RlcGFydG1lbnQvZGVwYXJ0bWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFzQixTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhNLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUN2RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0RBQW9ELENBQUM7Ozs7Ozs7Ozs7Ozs7QUFVckYsTUFBTSxPQUFPLG1CQUFtQjtJQW9DOUIsWUFFVSxrQkFBcUMsRUFDckMsaUJBQW9DLEVBQ3BDLFlBQXNCLEVBQ3RCLFdBQXdCLEVBQ3hCLGNBQThCLEVBQzlCLGVBQStCLEVBQy9CLHFCQUEyQztRQU4zQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsaUJBQVksR0FBWixZQUFZLENBQVU7UUFDdEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsbUJBQWMsR0FBZCxjQUFjLENB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RUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDOztZQUUvSSxJQUFJLENBQUMsc0JBQXNCLEdBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFBO0lBQzFELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUUvQyxDQUFDOztpSEF6UFUsbUJBQW1CO3FHQUFuQixtQkFBbUIsMlNDZmhDLHcrT0E0SkE7NEZEN0lhLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixXQUFXLEVBQUUsNkJBQTZCO2lCQUMzQzt5UkFjOEQsYUFBYTtzQkFBekUsU0FBUzt1QkFBQyw2QkFBNkIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBbUJELHdCQUF3QjtzQkFBakYsU0FBUzt1QkFBQywwQkFBMEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgVmlld0NoaWxkLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBFbmdsaXNoQXJhYmljRFRPLCBGaWx0ZXJJdGVtLCBGaWx0ZXJUeXBlLCBJbnB1dFR5cGUsIE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zLCBQYWdpbmdPcHRpb25zLCBUZXh0Qm94T3B0aW9ucywgRm9ybU9wdGlvbnMsIENvbmZpcm1hdGlvbk1vZGFsT3B0aW9ucyB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgRGVwYXJ0bWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvU2VydmljZXMvRGVwYXJ0bWVudFNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IERlcGFydG1lbnRNb2RlbCB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvRGVwYXJ0bWVudE1vZGVscy9EZXBhcnRtZW50TW9kZWwnO1xyXG5pbXBvcnQgeyBQYWdlSW5mb1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9fbWV0cm9uaWMvY29yZS9zZXJ2aWNlcy9wYWdlLWluZm8uc2VydmljZSc7XHJcbmltcG9ydCB7IE5nYk1vZGFsLCAgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBFbnZpcm9ubWVudFNlcnZpY2UsIFV0aWxpdHlTZXJ2aWNlLCBSZXF1ZXN0SGFuZGxlclNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFBhZ2luZ0NvbXBvbmVudCB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzL2xpYi9jb250cm9scy9QYWdpbmcvUGFnaW5nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMvbGliL2NvbnRyb2xzL0NvbmZpcm1hdGlvbk1vZGFsL0NvbmZpcm1hdGlvbk1vZGFsLmNvbXBvbmVudCc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWRlcGFydG1lbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kZXBhcnRtZW50LmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIERlcGFydG1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQgLE9uRGVzdHJveSB7XHJcbiAgLy9QYWdlIHJlcXVpcmVtZW50c1xyXG4gIFByb2R1Y3Rpb25Nb2RlOiBib29sZWFuO1xyXG4gIEFwaVVybCA9IHRoaXMuZGVwYXJ0bWVudFNlcnZpY2UuQXBpVXJsXHJcblxyXG4gIC8vRmlsdGVyIGFuZCBwYWdpbmcgY29tcG9uZW50c1xyXG4gIERlcGFydG1lbnRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgc2VhcmNoVGV4dEJveDogVGV4dEJveE9wdGlvbnM7XHJcbiAgVGV4dElucHV0RmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIElzRmlsdGVyTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgRGVwYXJ0bWVudFBhZ2luZzogUGFnaW5nT3B0aW9ucztcclxuICBEZXBhcnRtZW50UGFnaW5nUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gIERlcGFydG1lbnRGaWx0ZXJlZExpc3Q6IGFueVtdID0gW107XHJcbiAgQFZpZXdDaGlsZCgnRGVwYXJ0bWVudFBhZ2luZ1ZpZXdFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHBhZ2luZ0VsZW1lbnQ6IFBhZ2luZ0NvbXBvbmVudDxEZXBhcnRtZW50TW9kZWw+O1xyXG5cclxuICAvL0FkZCBNb2RlbCBDb250cm9sc1xyXG4gIEFkZERlcGFydG1lbnRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgQWRkRGVwYXJ0bWVudEZvcm1PcHRpb25zOiBGb3JtT3B0aW9uc1xyXG4gIEFkZE5hbWU6TXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnNcclxuICBBZGRTYW1BY2NvdW50OiBUZXh0Qm94T3B0aW9ucztcclxuXHJcbiAgLy9FZGl0IE1vZGVsIENvbnRyb2xzXHJcbiAgRWRpdERlcGFydG1lbnRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgRWRpdERlcGFydG1lbnRGb3JtT3B0aW9uczogRm9ybU9wdGlvbnNcclxuICBFZGl0TmFtZTpNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9uc1xyXG4gIEVkaXRTYW1BY2NvdW50OiBUZXh0Qm94T3B0aW9ucztcclxuICBEZXBhcnRtZW50SWQ6IG51bWJlcjtcclxuXHJcbiAgLy9kZWxldGUgIE1vZGVsIENvbnRyb2xzXHJcbiAgZGVsZXRlRGVwYXJ0bWVudElkOiBzdHJpbmc7XHJcbiAgRGVsZXRlQ29uZmlybWF0aW9uT3B0aW9uczogQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zO1xyXG4gIGRlbGV0ZUNvbnRyb2xMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdDb25maXJtYXRpb25Nb2RhbENvbnRyb2wnLCB7IHN0YXRpYzogZmFsc2UgfSkgQ29uZmlybWF0aW9uTW9kYWxDb250cm9sOiBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudDtcclxuXHJcblxyXG5cclxuICBjb25zdHJ1Y3RvclxyXG4gIChcclxuICAgIHByaXZhdGUgZW52aXJvbm1lbnRTZXJ2aWNlOkVudmlyb25tZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgZGVwYXJ0bWVudFNlcnZpY2U6IERlcGFydG1lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSxcclxuICAgIHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOlBhZ2VJbmZvU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVxdWVzdEhhbmRsZXJTZXJ2aWNlOlJlcXVlc3RIYW5kbGVyU2VydmljZSxcclxuICAgKSBcclxuICB7XHJcbiAgfVxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgLy9QYWdlIGhlYWRlciAoYnJlYWRjcnVtYiBhbmQgdGl0bGUpXHJcbiAgICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VUaXRsZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRlcGFydG1lbnRzXCIpXHJcbiAgICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VCcmVhZGNydW1icyA9IFtcclxuICAgICAgIHsgdGl0bGU6IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkhvbWVcIiksIHBhdGg6ICcvQWRtaW4vSG9tZScsIGlzU2VwYXJhdG9yOiBmYWxzZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfVxyXG5cclxuICAgICBdO1xyXG4gICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZVRpdGxlKCk7XHJcbiAgICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlQnJlYWRjcnVtYnMoKTtcclxuICAgICB0aGlzLlByb2R1Y3Rpb25Nb2RlID0gdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0UHJvZHVjdGlvbk1vZGUoKTtcclxuXHJcbiAgICAgLy9pbml0aWFsaXplIHBhZ2VcclxuICAgICB0aGlzLmluaXRpYWxpemVQYWdlKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy9Jbml0aWFsaXplIGZpbHRlcnMgYW5kIHBhZ2luZ1xyXG4gIGluaXRpYWxpemVQYWdlKCkge1xyXG4gICAgICAvLyBUZXh0Qm94IGluaXRcclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Qm94ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuc2VhcmNoVGV4dEJveC5OYW1lID0gXCJzZWFyY2hUZXh0Qm94XCJcclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Qm94LkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICAgIHRoaXMuc2VhcmNoVGV4dEJveC5UeXBlID0gSW5wdXRUeXBlLlRleHRcclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Qm94LlBsYWNlaG9sZGVyID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2VhcmNoQnlOYW1lXCIpXHJcblxyXG4gICAgICB0aGlzLlRleHRJbnB1dEZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICAgIHRoaXMuVGV4dElucHV0RmlsdGVyLkZvcm1Db250cm9sTmFtZSA9IFwic2VhcmNoVGV4dEJveFwiXHJcbiAgICAgIHRoaXMuVGV4dElucHV0RmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcInNlYXJjaFRleHRcIlxyXG4gICAgICB0aGlzLlRleHRJbnB1dEZpbHRlci5Jc0Zvcm1Db250cm9sID0gdHJ1ZVxyXG4gICAgICB0aGlzLlRleHRJbnB1dEZpbHRlci5GaWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5UZXh0Qm94XHJcblxyXG4gICAgIFxyXG4gICAgICB0aGlzLkRlcGFydG1lbnRQYWdpbmcgPSBuZXcgUGFnaW5nT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLkRlcGFydG1lbnRQYWdpbmcuQWN0aW9uUG9zdFVSTCA9ICB0aGlzLkFwaVVybCArICdHZXREZXBhcnRtZW50c0J5RmlsdGVyJztcclxuICAgICAgdGhpcy5EZXBhcnRtZW50UGFnaW5nLk9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzID0gW1wic2VhcmNoVGV4dEJveFwiXVxyXG4gICAgICB0aGlzLkRlcGFydG1lbnRQYWdpbmcuRmlsdGVycyA9IFt0aGlzLlRleHRJbnB1dEZpbHRlcl1cclxuICAgICAgdGhpcy5EZXBhcnRtZW50UGFnaW5nLlZhbGlkYXRpb25Ub2tlbiA9IHRoaXMuYXV0aFNlcnZpY2UuYXV0aG9yaXphdGlvbkhlYWRlclZhbHVlKClcclxuICAgICAgdGhpcy5Jc0ZpbHRlckxvYWRlZCA9IHRydWU7XHJcbiAgICAgIFxyXG4gIH1cclxuXHJcbiAgLy9QYWdpbmcgZnVuY3Rpb25zXHJcbiAgc2V0RGVwYXJ0bWVudExpc3RSZXN1bHQocmVzdWx0OkRlcGFydG1lbnRNb2RlbFtdKSB7XHJcbiAgICBjb25zb2xlLmxvZyhyZXN1bHQpO1xyXG4gICAgdGhpcy5EZXBhcnRtZW50UGFnaW5nUmVzdWx0PSByZXN1bHRcclxuICAgIHRoaXMuRGVwYXJ0bWVudEZpbHRlcmVkTGlzdD10aGlzLkRlcGFydG1lbnRQYWdpbmdSZXN1bHQ7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKClcclxuICB9XHJcblxyXG4gIC8vQWRkIGRlcGFydG1lbnRcclxuICBzaG93QWRkRGVwYXJ0bWVudE1vZGFsKGFkZERlcGFydG1lbnRNb2RhbCkge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdGFydEJsb2NrVUkoKVxyXG4gICAgdGhpcy5BZGREZXBhcnRtZW50Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pXHJcblxyXG4gICAgdGhpcy5BZGREZXBhcnRtZW50Rm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgIHRoaXMuQWRkRGVwYXJ0bWVudEZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuQWRkRGVwYXJ0bWVudEZvcm1cclxuICAgIHRoaXMuQWRkRGVwYXJ0bWVudEZvcm1PcHRpb25zLkdldE1vZGVsRnVuY3Rpb24gPSB0aGlzLmdldEFkZERlcGFydG1lbnRNb2RlbDtcclxuICAgIHRoaXMuQWRkRGVwYXJ0bWVudEZvcm1PcHRpb25zLlNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9IHRoaXMuZ2V0QWRkRGVwYXJ0bWVudEZ1bmN0aW9uO1xyXG4gICAgdGhpcy5BZGREZXBhcnRtZW50Rm9ybU9wdGlvbnMuT25TdWNjZXNzSGFuZGxlciA9IHRoaXMub25BZGREZXBhcnRtZW50U3VjY2VzcztcclxuICAgIHRoaXMuQWRkRGVwYXJ0bWVudEZvcm1PcHRpb25zLk9uRXJyb3JIYW5kbGVyID0gdGhpcy5vbkFkZERlcGFydG1lbnRFcnJvcjtcclxuICAgIHRoaXMuQWRkRGVwYXJ0bWVudEZvcm1PcHRpb25zLlBhZ2luZ1JlZmVyZW5jZSA9IHRoaXMucGFnaW5nRWxlbWVudCAgXHJcblxyXG4gICAgdGhpcy5BZGROYW1lID0gbmV3IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLkFkZE5hbWUuTmFtZSA9IFwiQWRkTmFtZVwiO1xyXG4gICAgdGhpcy5BZGROYW1lLkFyYWJpY0xhYmVsS2V5ID0gXCJOYW1lSW5BcmFiaWNcIjtcclxuICAgIHRoaXMuQWRkTmFtZS5FbmdsaXNoTGFiZWxLZXkgPSBcIk5hbWVJbkVuZ2xpc2hcIjtcclxuICAgIHRoaXMuQWRkTmFtZS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgIHRoaXMuQWRkTmFtZS5WYWx1ZSA9IG51bGw7XHJcbiAgICBcclxuICAgIHRoaXMuQWRkU2FtQWNjb3VudCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5BZGRTYW1BY2NvdW50Lk5hbWUgPSBcIkFkZFNhbUFjY291bnRcIjtcclxuICAgIHRoaXMuQWRkU2FtQWNjb3VudC5MYWJlbEtleSA9IFwiU2FtQWNjb3VudFwiO1xyXG4gICAgdGhpcy5BZGRTYW1BY2NvdW50LlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgIHRoaXMuQWRkU2FtQWNjb3VudC5WYWx1ZSA9IG51bGw7XHJcblxyXG4gICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihhZGREZXBhcnRtZW50TW9kYWwpO1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG4gICAgY29uc29sZS5sb2coIHRoaXMuQWRkU2FtQWNjb3VudClcclxuICB9XHJcblxyXG4gIGdldEFkZERlcGFydG1lbnRNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy5BZGREZXBhcnRtZW50Rm9ybS52YWx1ZTtcclxuICAgIGxldCBBZGRNb2RlbDogRGVwYXJ0bWVudE1vZGVsID0gbmV3IERlcGFydG1lbnRNb2RlbCgpO1xyXG4gICAgQWRkTW9kZWwuU2FtQWNjb3VudCA9IFJlc3VsdE1vZGVsLkFkZFNhbUFjY291bnQ7XHJcbiAgICBBZGRNb2RlbC5EZXBhcnRtZW50TmFtZURUTy5BcmFiaWMgPSBSZXN1bHRNb2RlbC5BZGROYW1lLkFyYWJpY1ZhbHVlO1xyXG4gICAgQWRkTW9kZWwuRGVwYXJ0bWVudE5hbWVEVE8uRW5nbGlzaCA9IFJlc3VsdE1vZGVsLkFkZE5hbWUuRW5nbGlzaFZhbHVlO1xyXG4gICAgcGFyYW1BcnJheS5wdXNoKEFkZE1vZGVsKTtcclxuICAgIHJldHVybiBwYXJhbUFycmF5O1xyXG4gIH1cclxuXHJcbiAgZ2V0QWRkRGVwYXJ0bWVudEZ1bmN0aW9uID0gKEFkZE1vZGVsKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLmRlcGFydG1lbnRTZXJ2aWNlLmFkZERlcGFydG1lbnQoQWRkTW9kZWwpXHJcbiAgfVxyXG4gIG9uQWRkRGVwYXJ0bWVudFN1Y2Nlc3MgPSAocmVzdWx0KSA9PiB7XHJcbiAgICBjb25zb2xlLmxvZyhyZXN1bHQpO1xyXG4gIH1cclxuICBvbkFkZERlcGFydG1lbnRFcnJvciA9IChlcnJvcikgPT4ge1xyXG4gICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gIH1cclxuICAvL0VkaXQgZGVwYXJ0bWVudFxyXG4gIHNob3dFZGl0RGVwYXJ0bWVudE1vZGFsKGRlcGFydG1lbnRJZDogbnVtYmVyLGRlcGFydG1lbnRJREVuYzogc3RyaW5nLCBlZGl0RGVwYXJ0bWVudE1vZGFsKSB7XHJcbiAgICB0aGlzLkVkaXREZXBhcnRtZW50Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIHRoaXMuRWRpdERlcGFydG1lbnRGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgdGhpcy5FZGl0RGVwYXJ0bWVudEZvcm1PcHRpb25zLkZvcm1Hcm91cCA9IHRoaXMuRWRpdERlcGFydG1lbnRGb3JtXHJcbiAgICB0aGlzLkVkaXREZXBhcnRtZW50Rm9ybU9wdGlvbnMuR2V0TW9kZWxGdW5jdGlvbiA9IHRoaXMuZ2V0RWRpdERlcGFydG1lbnRNb2RlbDtcclxuICAgIHRoaXMuRWRpdERlcGFydG1lbnRGb3JtT3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmdldEVkaXREZXBhcnRtZW50RnVuY3Rpb247XHJcbiAgICB0aGlzLkVkaXREZXBhcnRtZW50Rm9ybU9wdGlvbnMuT25TdWNjZXNzSGFuZGxlciA9IHRoaXMub25FZGl0RGVwYXJ0bWVudFN1Y2Nlc3M7XHJcbiAgICB0aGlzLkVkaXREZXBhcnRtZW50Rm9ybU9wdGlvbnMuT25FcnJvckhhbmRsZXIgPSB0aGlzLm9uRWRpdERlcGFydG1lbnRFcnJvcjtcclxuICAgIHRoaXMuRWRpdERlcGFydG1lbnRGb3JtT3B0aW9ucy5QYWdpbmdSZWZlcmVuY2UgPSB0aGlzLnBhZ2luZ0VsZW1lbnRcclxuXHJcbiAgICB0aGlzLkRlcGFydG1lbnRJZCA9IGRlcGFydG1lbnRJZDtcclxuICAgIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLmdldEx1Y2t5TnVtYmVyKCkuc3Vic2NyaWJlKCgpPT57fSlcclxuICAgIHRoaXMuZGVwYXJ0bWVudFNlcnZpY2UuZ2V0RWRpdERlcGFydG1lbnQoZGVwYXJ0bWVudElERW5jKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgIGxldCBkZXBhcnRtZW50ID0gcmVzdWx0Lm1vZGVsIGFzIGFueTtcclxuXHJcbiAgICAgIGxldCBuYW1lID0gbmV3IEVuZ2xpc2hBcmFiaWNEVE8oKTtcclxuICAgICAgbmFtZS5BcmFiaWMgPSBkZXBhcnRtZW50LmRlcGFydG1lbnROYW1lRFRPLmFyYWJpYztcclxuICAgICAgbmFtZS5FbmdsaXNoID0gZGVwYXJ0bWVudC5kZXBhcnRtZW50TmFtZURUTy5lbmdsaXNoO1xyXG5cclxuICAgICAgdGhpcy5FZGl0TmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLkVkaXROYW1lLk5hbWUgPSBcIkVkaXROYW1lXCI7XHJcbiAgICAgIHRoaXMuRWRpdE5hbWUuQXJhYmljTGFiZWxLZXkgPSBcIk5hbWVJbkFyYWJpY1wiO1xyXG4gICAgICB0aGlzLkVkaXROYW1lLkVuZ2xpc2hMYWJlbEtleSA9IFwiTmFtZUluRW5nbGlzaFwiO1xyXG4gICAgICB0aGlzLkVkaXROYW1lLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLkVkaXROYW1lLlZhbHVlID0gbmFtZTtcclxuXHJcblxyXG4gICAgICB0aGlzLkVkaXRTYW1BY2NvdW50ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuRWRpdFNhbUFjY291bnQuTmFtZSA9IFwiRWRpdFNhbUFjY291bnRcIjtcclxuICAgICAgdGhpcy5FZGl0U2FtQWNjb3VudC5MYWJlbEtleSA9IFwiU2FtQWNjb3VudFwiO1xyXG4gICAgICB0aGlzLkVkaXRTYW1BY2NvdW50LlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgdGhpcy5FZGl0U2FtQWNjb3VudC5WYWx1ZSA9IGRlcGFydG1lbnQuc2FtQWNjb3VudDtcclxuXHJcbiAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oZWRpdERlcGFydG1lbnRNb2RhbCk7XHJcblxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgZ2V0RWRpdERlcGFydG1lbnRNb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy5FZGl0RGVwYXJ0bWVudEZvcm0udmFsdWU7XHJcbiAgICBsZXQgRWRpdE1vZGVsOiBEZXBhcnRtZW50TW9kZWwgPSBuZXcgRGVwYXJ0bWVudE1vZGVsKCk7XHJcbiAgICBFZGl0TW9kZWwuSWQgPSB0aGlzLkRlcGFydG1lbnRJZDtcclxuICAgIEVkaXRNb2RlbC5EZXBhcnRtZW50TmFtZURUTy5FbmdsaXNoID0gUmVzdWx0TW9kZWwuRWRpdE5hbWUuRW5nbGlzaFZhbHVlO1xyXG4gICAgRWRpdE1vZGVsLkRlcGFydG1lbnROYW1lRFRPLkFyYWJpYyA9IFJlc3VsdE1vZGVsLkVkaXROYW1lLkFyYWJpY1ZhbHVlO1xyXG4gICAgRWRpdE1vZGVsLlNhbUFjY291bnQgPSBSZXN1bHRNb2RlbC5FZGl0U2FtQWNjb3VudDtcclxuICAgIHBhcmFtQXJyYXkucHVzaChFZGl0TW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfVxyXG5cclxuICBnZXRFZGl0RGVwYXJ0bWVudEZ1bmN0aW9uID0gKEVkaXRNb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5kZXBhcnRtZW50U2VydmljZS5lZGl0RGVwYXJ0bWVudChFZGl0TW9kZWwpXHJcbiAgfVxyXG4gIG9uRWRpdERlcGFydG1lbnRTdWNjZXNzID0gKHJlc3VsdCkgPT4ge1xyXG4gICAgY29uc29sZS5sb2cocmVzdWx0KTtcclxuICB9XHJcbiAgb25FZGl0RGVwYXJ0bWVudEVycm9yID0gKGVycm9yKSA9PiB7XHJcbiAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgfVxyXG5cclxuICAvL0RlbGV0ZSBkZXBhcnRtZW50XHJcbiAgc2hvd0RlbGV0ZURlcGFydG1lbnRNb2RhbChkZXBhcnRtZW50SWRFbmM6IGFueSkge1xyXG4gICAgdGhpcy5kZWxldGVEZXBhcnRtZW50SWQgPSBkZXBhcnRtZW50SWRFbmM7XHJcblxyXG4gICAgLy9hcnJheSBzZW50IHRvIHNlcnZpY2UgZnVuY3Rpb25cclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgcGFyYW1BcnJheS5wdXNoKHRoaXMuZGVsZXRlRGVwYXJ0bWVudElkKTtcclxuXHJcbiAgICB0aGlzLkRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMgPSBuZXcgQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zKCk7XHJcbiAgICB0aGlzLkRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5kZWxldGVEZXBhcnRtZW50O1xyXG4gICAgdGhpcy5EZWxldGVDb25maXJtYXRpb25PcHRpb25zLlNlcnZpY2VTdWJtaXRNb2RlbCA9IHBhcmFtQXJyYXk7XHJcbiAgICB0aGlzLkRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMuUGFnaW5nUmVmZXJlbmNlID0gdGhpcy5wYWdpbmdFbGVtZW50O1xyXG5cclxuICAgIHRoaXMuZGVsZXRlQ29udHJvbExvYWRlZCA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5Db25maXJtYXRpb25Nb2RhbENvbnRyb2wuc2hvd01vZGFsKCk7XHJcbiAgICB9LCAyMDApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRGVwYXJ0bWVudCA9IChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLmRlcGFydG1lbnRTZXJ2aWNlLmRlbGV0ZURlcGFydG1lbnQoaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqRnVuY3Rpb25OYW1lOmZpbHRlckRlcGFydG1lbnRMaXN0ICovXHJcbiAgLyoqRGVjbGFyYXRpb246ZnVuY3Rpb24gdG8gZmlsdGVyIERlcGFydG1lbnRMaXN0IGluIGNsaWVudC1zaWRlICovXHJcbiAgLyoqUGFyYW1ldGVyczoqL1xyXG4gIC8qKnNlYXJjaFZhbHVlOiBjdXJyZW50IHZhbHVlIG9mIHNlYXJjaCBib3gqL1xyXG4gIGZpbHRlckRlcGFydG1lbnRMaXN0KHNlYXJjaFZhbHVlKXtcclxuICAgIGlmKHNlYXJjaFZhbHVlKVxyXG4gICAgdGhpcy5EZXBhcnRtZW50RmlsdGVyZWRMaXN0PSB0aGlzLkRlcGFydG1lbnRQYWdpbmdSZXN1bHQuZmlsdGVyKGl0ZW0gPT4gaXRlbS5kZXBhcnRtZW50TmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKTtcclxuICAgIGVsc2VcclxuICAgIHRoaXMuRGVwYXJ0bWVudEZpbHRlcmVkTGlzdD0gdGhpcy5EZXBhcnRtZW50UGFnaW5nUmVzdWx0XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLm9uRGVzdHJveSQubmV4dCgpO1xyXG4gXHJcbiAgfVxyXG5cclxufVxyXG4iLCI8YmxvY2stdWk+PC9ibG9jay11aT5cclxuPCEtLSBQYWdlIENvbnRlbnQgLS0+XHJcbjxkaXYgIGNsYXNzPVwiY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1jdXN0b20taFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIHB0LTVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIiAqbmdJZj1cIklzRmlsdGVyTG9hZGVkXCI+XHJcbiAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cInNlYXJjaFRleHRCb3hcIiAgKE9uQ2hhbmdlKT1cImZpbHRlckRlcGFydG1lbnRMaXN0KCRldmVudClcIiBbZ3JvdXBdPVwiRGVwYXJ0bWVudEZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICA8IS0tIGJlZ2luOjpNZW51IC0tPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeVwiIHRpdGxlPVwiQWRkXCIgKGNsaWNrKT1cInNob3dBZGREZXBhcnRtZW50TW9kYWwoQWRkRGVwYXJ0bWVudE1vZGFsKVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcGx1cyBtZS0xXCI+PC9pPlxyXG4gICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWRkXCIpfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPCEtLSBlbmQ6Ok1lbnUgLS0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB5LTNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICA8IS0tYmVnaW46OlBlcm1pc3Npb24gbGlzdC0tPlxyXG4gICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIGFsaWduLW1pZGRsZSB0YWJsZS1yb3ctZGFzaGVkIGZzLTYgZ3ktNSBkYXRhVGFibGUgbm8tZm9vdGVyXCI+XHJcbiAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtc3RhcnQgdGV4dC1ncmF5LTQwMCBmdy1ib2xkZXIgZnMtNyB0ZXh0LXVwcGVyY2FzZSBncy0wXCI+XHJcbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJOYW1lXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2FtQWNjb3VudFwiKX19PC90aD5cclxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlVzZXJzQ291bnRcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFjdGlvblwiKX19PC90aD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICA8dGJvZHkgaWQ9XCJsaXN0aW5nQ29udGFpbmVyXCIgY2xhc3M9XCJmdy1ib2xkIHRleHQtZ3JheS02MDAgYm9yZGVyLTBcIj5cclxuXHJcbiAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgRGVwYXJ0bWVudCBvZiBEZXBhcnRtZW50RmlsdGVyZWRMaXN0XCI+XHJcblxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiBbcm91dGVyTGlua109XCJbJy9BZG1pbi9EZXBhcnRtZW50cy9EZXBhcnRtZW50SW5mbycsRGVwYXJ0bWVudC5pZEVuY3J5cHRlZF1cIiByb3V0ZXJMaW5rQWN0aXZlPVwicm91dGVyLWxpbmstYWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1kYXJrXCI+e3tEZXBhcnRtZW50LmRlcGFydG1lbnROYW1lfX08L2E+XHJcblxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPnt7RGVwYXJ0bWVudC5zYW1BY2NvdW50fX08L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD57e0RlcGFydG1lbnQudXNlcnNDb3VudH19PC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWxpZ2h0IGJ0bi1hY3RpdmUtbGlnaHQtcHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZWxsaXBzaXMtaFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZHJvcC1pdGVtIHB4LTNcIiBuZ2JEcm9wZG93bkl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RWRpdERlcGFydG1lbnRNb2RhbChEZXBhcnRtZW50LmlkLERlcGFydG1lbnQuaWRFbmNyeXB0ZWQsRWRpdERlcGFydG1lbnRNb2RhbClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcC1saW5rIHB4LTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFZGl0XCIpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgbmdiRHJvcGRvd25JdGVtIGNsYXNzPVwiZHJvcC1pdGVtIHB4LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RGVsZXRlRGVwYXJ0bWVudE1vZGFsKERlcGFydG1lbnQuaWRFbmNyeXB0ZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3AtbGluayBweC0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGVsZXRlXCIpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDx0ciAqbmdJZj1cIkRlcGFydG1lbnRGaWx0ZXJlZExpc3QubGVuZ3RoID09IDBcIj5cclxuICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjRcIj5cclxuICAgICAgICAgICAgICAgIDxsaWItZW1wdHktZGF0YT48L2xpYi1lbXB0eS1kYXRhPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgIDwvdGFibGU+XHJcblxyXG4gICAgICAgIDwhLS1lbmQ6OlBlcm1pc3Npb24gbGlzdC0tPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBib3JkZXItMFwiPlxyXG4gICAgICA8QkJTRi1QYWdpbmcgKEl0ZW1zKT1cInNldERlcGFydG1lbnRMaXN0UmVzdWx0KCRldmVudClcIiAqbmdJZj1cIklzRmlsdGVyTG9hZGVkXCJcclxuICAgICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cIkRlcGFydG1lbnRQYWdpbmdcIiBbZ3JvdXBdPVwiRGVwYXJ0bWVudEZvcm1cIiAjRGVwYXJ0bWVudFBhZ2luZ1ZpZXdFbGVtZW50PlxyXG4gICAgICA8L0JCU0YtUGFnaW5nPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuXHJcbjwhLS1hZGQgTW9kYWwtLT5cclxuPG5nLXRlbXBsYXRlICNBZGREZXBhcnRtZW50TW9kYWwgbGV0LW1vZGFsPlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiIGlkPVwiZXhhbXBsZU1vZGFsTGFiZWxcIj48L2g1PlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5XCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICA8c3BhbiBbaW5saW5lU1ZHXT1cIicuL3NyYy9hc3NldHMvaW1hZ2VzL2FycjA2MS5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgPGgxIGNsYXNzPVwibWItM1wiPiB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBZGRcIil9fSB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJEZXBhcnRtZW50XCIpfX08L2gxPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8QkJTRi1Gb3JtIFtvcHRpb25zXT1cIkFkZERlcGFydG1lbnRGb3JtT3B0aW9uc1wiPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbFRleHRCb3ggW29wdGlvbnNdPVwiQWRkTmFtZVwiIFtncm91cF09XCJBZGREZXBhcnRtZW50Rm9ybVwiPjwvQkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiQWRkU2FtQWNjb3VudFwiIFtncm91cF09XCJBZGREZXBhcnRtZW50Rm9ybVwiID5cclxuICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICA8YnV0dG9uICNDbG9zZURlcGFydG1lbnRNb2RhbCBpZD1cIkNsb3NlRGVwYXJ0bWVudE1vZGFsXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGlnaHQgYnRuLXNtICBtZS0zXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2F2ZUxhYmVsXCIpfX08L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L0JCU0YtRm9ybT5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPCEtLUVkaXQgTW9kYWwtLT5cclxuPG5nLXRlbXBsYXRlICNFZGl0RGVwYXJ0bWVudE1vZGFsIGxldC1tb2RhbD5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIHBiLTAgYm9yZGVyLTAganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cImV4YW1wbGVNb2RhbExhYmVsXCI+PC9oNT5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCI+XHJcbiAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjEuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgc2Nyb2xsLXkgcHgtMTAgcHgtbGctMTUgcHQtMCBwYi0xNVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1iLTEzIHRleHQtY2VudGVyXCI+XHJcbiAgICAgIDxoMSBjbGFzcz1cIm1iLTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFZGl0XCIpfX0ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGVwYXJ0bWVudFwiKX19PC9oMT5cclxuICAgIDwvZGl2PlxyXG4gICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJFZGl0RGVwYXJ0bWVudEZvcm1PcHRpb25zXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94IFtvcHRpb25zXT1cIkVkaXROYW1lXCIgW2dyb3VwXT1cIkVkaXREZXBhcnRtZW50Rm9ybVwiPjwvQkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiRWRpdFNhbUFjY291bnRcIiBbZ3JvdXBdPVwiRWRpdERlcGFydG1lbnRGb3JtXCI+XHJcbiAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC03XCI+XHJcbiAgICAgICAgPGJ1dHRvbiAjQ2xvc2VFZGl0RGVwYXJ0bWVudE1vZGFsIGlkPVwiQ2xvc2VFZGl0RGVwYXJ0bWVudE1vZGFsXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGlnaHQgYnRuLXNtICBtZS0zXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2F2ZUxhYmVsXCIpfX08L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L0JCU0YtRm9ybT5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPCEtLWRlbGV0ZSBNb2RhbC0tPlxyXG48QkJTRi1Db25maXJtYXRpb25Nb2RhbCAqbmdJZj1cImRlbGV0ZUNvbnRyb2xMb2FkZWRcIiBbb3B0aW9uc109XCJEZWxldGVDb25maXJtYXRpb25PcHRpb25zXCIgaWQ9XCJDb25maXJtYXRpb25Nb2RhbENvbnRyb2xcIiAjQ29uZmlybWF0aW9uTW9kYWxDb250cm9sPjwvQkJTRi1Db25maXJtYXRpb25Nb2RhbD5cclxuIl19