ontimize-web-ngx 15.0.4 → 15.1.1

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 (89) hide show
  1. package/esm2020/lib/components/app-sidenav/menu-group/o-app-sidenav-menu-group.component.mjs +3 -3
  2. package/esm2020/lib/components/app-sidenav/o-app-sidenav.component.mjs +15 -13
  3. package/esm2020/lib/components/bar-menu/menu-nested/o-bar-menu-nested.component.mjs +3 -3
  4. package/esm2020/lib/components/bar-menu/o-bar-menu.component.mjs +10 -1
  5. package/esm2020/lib/components/button/o-button.component.mjs +27 -11
  6. package/esm2020/lib/components/form/index.mjs +2 -1
  7. package/esm2020/lib/components/form/o-form-tokens.mjs +3 -0
  8. package/esm2020/lib/components/form/o-form.component.mjs +42 -15
  9. package/esm2020/lib/components/grid/o-grid.component.mjs +7 -3
  10. package/esm2020/lib/components/input/combo/combo-search/o-combo-search.component.mjs +4 -1
  11. package/esm2020/lib/components/input/combo/o-combo.component.mjs +10 -3
  12. package/esm2020/lib/components/input/date-input/o-date-input.component.mjs +5 -1
  13. package/esm2020/lib/components/input/radio/o-radio.component.mjs +7 -5
  14. package/esm2020/lib/components/list/o-list.component.mjs +8 -4
  15. package/esm2020/lib/components/list/renderers/o-list-item-text-renderer.class.mjs +13 -4
  16. package/esm2020/lib/components/o-service-base-component.class.mjs +11 -5
  17. package/esm2020/lib/components/o-service-component.class.mjs +64 -1
  18. package/esm2020/lib/components/table/column/cell-editor/real/o-table-cell-editor-real.component.mjs +2 -2
  19. package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.mjs +2 -4
  20. package/esm2020/lib/components/table/extensions/skeleton/o-table-skeleton.component.mjs +8 -7
  21. package/esm2020/lib/components/table/extensions/sort/o-mat-sort.mjs +2 -4
  22. package/esm2020/lib/components/table/o-table.component.mjs +30 -13
  23. package/esm2020/lib/components/tree/o-tree.component.mjs +7 -3
  24. package/esm2020/lib/interfaces/app-menu.interface.mjs +1 -1
  25. package/esm2020/lib/interfaces/service-data-component.interface.mjs +1 -1
  26. package/esm2020/lib/layouts/app-layout/o-app-layout.component.mjs +1 -1
  27. package/esm2020/lib/layouts/form-layout/o-form-layout-manager.component.mjs +17 -1
  28. package/esm2020/lib/services/app-menu.service.mjs +36 -2
  29. package/esm2020/lib/services/o-auth.service.mjs +7 -1
  30. package/esm2020/lib/services/permissions/permissions.service.mjs +40 -6
  31. package/esm2020/lib/types/form/index.mjs +2 -0
  32. package/esm2020/lib/types/form/o-form-global-config.type.mjs +2 -0
  33. package/esm2020/lib/types/index.mjs +3 -1
  34. package/esm2020/lib/types/o-component-permissions-by-route.type.mjs +2 -0
  35. package/esm2020/lib/types/o-form-permissions.type.mjs +1 -1
  36. package/esm2020/lib/types/o-global-config.type.mjs +3 -0
  37. package/esm2020/lib/types/o-grid-permissions.type.mjs +2 -0
  38. package/esm2020/lib/types/o-list-permissions.type.mjs +2 -0
  39. package/esm2020/lib/types/o-service-base-permissions.type.mjs +2 -0
  40. package/esm2020/lib/types/o-tree-permissions.type.mjs +2 -0
  41. package/esm2020/lib/types/table/o-table-global-config.type.mjs +1 -1
  42. package/esm2020/lib/types/table/o-table-permissions.type.mjs +1 -1
  43. package/esm2020/lib/util/codes.mjs +9 -1
  44. package/esm2020/lib/util/util.mjs +16 -1
  45. package/fesm2015/ontimize-web-ngx.mjs +1297 -1018
  46. package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
  47. package/fesm2020/ontimize-web-ngx.mjs +1296 -1018
  48. package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
  49. package/lib/components/app-sidenav/o-app-sidenav.component.d.ts +4 -4
  50. package/lib/components/bar-menu/o-bar-menu.component.d.ts +4 -0
  51. package/lib/components/button/o-button.component.d.ts +11 -2
  52. package/lib/components/form/index.d.ts +1 -0
  53. package/lib/components/form/o-form-tokens.d.ts +3 -0
  54. package/lib/components/form/o-form.component.d.ts +11 -4
  55. package/lib/components/grid/o-grid.component.d.ts +4 -0
  56. package/lib/components/input/combo/combo-search/o-combo-search.component.d.ts +1 -0
  57. package/lib/components/input/combo/o-combo.component.d.ts +2 -0
  58. package/lib/components/input/date-input/o-date-input.component.d.ts +1 -0
  59. package/lib/components/input/radio/o-radio.component.d.ts +2 -1
  60. package/lib/components/list/o-list.component.d.ts +4 -0
  61. package/lib/components/list/renderers/o-list-item-text-renderer.class.d.ts +4 -1
  62. package/lib/components/o-service-base-component.class.d.ts +2 -0
  63. package/lib/components/o-service-component.class.d.ts +11 -0
  64. package/lib/components/table/extensions/skeleton/o-table-skeleton.component.d.ts +1 -1
  65. package/lib/components/table/o-table.component.d.ts +3 -3
  66. package/lib/components/tree/o-tree.component.d.ts +4 -0
  67. package/lib/interfaces/app-menu.interface.d.ts +1 -0
  68. package/lib/interfaces/service-data-component.interface.d.ts +1 -0
  69. package/lib/layouts/form-layout/o-form-layout-manager.component.d.ts +1 -0
  70. package/lib/services/app-menu.service.d.ts +7 -1
  71. package/lib/services/o-auth.service.d.ts +1 -0
  72. package/lib/services/permissions/permissions.service.d.ts +14 -3
  73. package/lib/types/form/index.d.ts +1 -0
  74. package/lib/types/form/o-form-global-config.type.d.ts +3 -0
  75. package/lib/types/index.d.ts +2 -0
  76. package/lib/types/o-component-permissions-by-route.type.d.ts +5 -0
  77. package/lib/types/o-form-permissions.type.d.ts +2 -7
  78. package/lib/types/o-global-config.type.d.ts +5 -0
  79. package/lib/types/o-grid-permissions.type.d.ts +2 -0
  80. package/lib/types/o-list-permissions.type.d.ts +2 -0
  81. package/lib/types/o-service-base-permissions.type.d.ts +7 -0
  82. package/lib/types/o-tree-permissions.type.d.ts +2 -0
  83. package/lib/types/table/o-table-global-config.type.d.ts +5 -0
  84. package/lib/types/table/o-table-permissions.type.d.ts +2 -4
  85. package/lib/util/codes.d.ts +8 -1
  86. package/lib/util/util.d.ts +2 -0
  87. package/package.json +1 -1
  88. package/theme.scss +72 -71
  89. package/theming/ontimize-style.scss +1 -30
@@ -1,5 +1,5 @@
1
1
  import { Injectable, Injector } from '@angular/core';
2
- import { Observable } from 'rxjs';
2
+ import { Observable, Subject } from 'rxjs';
3
3
  import { share } from 'rxjs/operators';
4
4
  import { AppConfig } from '../../config/app-config';
5
5
  import { Util } from '../../util/util';
@@ -9,6 +9,7 @@ import * as i0 from "@angular/core";
9
9
  export class PermissionsService {
10
10
  constructor(injector) {
11
11
  this.injector = injector;
12
+ this.onChangePermissions = new Subject();
12
13
  const appConfig = this.injector.get(AppConfig).getConfiguration();
13
14
  if (Util.isDefined(appConfig.permissionsConfiguration)) {
14
15
  this.ontimizePermissionsConfig = appConfig.permissionsConfiguration;
@@ -33,6 +34,7 @@ export class PermissionsService {
33
34
  }
34
35
  restart() {
35
36
  this.permissions = undefined;
37
+ this.onChangePermissions.next(this.permissions);
36
38
  }
37
39
  hasPermissions() {
38
40
  return this.permissions !== undefined;
@@ -66,6 +68,7 @@ export class PermissionsService {
66
68
  const dataObservable = new Observable(innerObserver => {
67
69
  self.permissionsService.loadPermissions().subscribe((res) => {
68
70
  self.permissions = res;
71
+ self.onChangePermissions.next(self.permissions);
69
72
  innerObserver.next(res);
70
73
  }, (err) => {
71
74
  console.error('[Permissions.queryPermissions]: error', err);
@@ -77,6 +80,9 @@ export class PermissionsService {
77
80
  return dataObservable.pipe(share());
78
81
  }
79
82
  getPermissionIdFromActRoute(actRoute) {
83
+ if (!Util.isDefined(actRoute)) {
84
+ return undefined;
85
+ }
80
86
  let result;
81
87
  let snapshot = actRoute.snapshot;
82
88
  result = ((snapshot.data || {})['oPermission'] || {})['permissionId'];
@@ -111,10 +117,11 @@ export class PermissionsService {
111
117
  if (attrPermissions && attrPermissions.selector === selector) {
112
118
  compPermissions = attrPermissions;
113
119
  }
114
- return {
120
+ const permissions = {
115
121
  route: routePermissions,
116
122
  component: compPermissions
117
123
  };
124
+ return permissions;
118
125
  }
119
126
  getTablePermissions(attr, actRoute) {
120
127
  if (!Util.isDefined(this.permissions)) {
@@ -136,24 +143,36 @@ export class PermissionsService {
136
143
  };
137
144
  return permissions;
138
145
  }
139
- getFormPermissions(attr, actRoute) {
146
+ getServiceBasePermissions(attr, actRoute, selector) {
140
147
  if (!Util.isDefined(this.permissions)) {
141
148
  return undefined;
142
149
  }
143
- const perm = this.getOComponentPermissions(attr, actRoute, 'o-form');
150
+ const perm = this.getOComponentPermissions(attr, actRoute, selector);
144
151
  const routePerm = perm.route;
145
152
  const compPerm = perm.component;
146
153
  if (!Util.isDefined(routePerm) || !Util.isDefined(compPerm)) {
147
154
  return compPerm || routePerm;
148
155
  }
149
156
  const permissions = {
150
- selector: 'o-form',
157
+ selector: selector,
151
158
  attr: routePerm.attr,
152
159
  components: this.mergeOPermissionsArrays(compPerm.components, routePerm.components),
153
160
  actions: this.mergeOPermissionsArrays(compPerm.actions, routePerm.actions)
154
161
  };
155
162
  return permissions;
156
163
  }
164
+ getFormPermissions(attr, actRoute) {
165
+ return this.getServiceBasePermissions(attr, actRoute, 'o-form');
166
+ }
167
+ getListPermissions(attr, actRoute) {
168
+ return this.getServiceBasePermissions(attr, actRoute, 'o-list');
169
+ }
170
+ getGridPermissions(attr, actRoute) {
171
+ return this.getServiceBasePermissions(attr, actRoute, 'o-grid');
172
+ }
173
+ getTreePermissions(attr, actRoute) {
174
+ return this.getServiceBasePermissions(attr, actRoute, 'o-tree');
175
+ }
157
176
  getMenuPermissions(attr) {
158
177
  let permissions;
159
178
  if (!Util.isDefined(this.permissions)) {
@@ -163,6 +182,21 @@ export class PermissionsService {
163
182
  permissions = allMenu.find(comp => comp.attr === attr);
164
183
  return permissions;
165
184
  }
185
+ getAllMenuPermissions() {
186
+ if (!Util.isDefined(this.permissions)) {
187
+ return undefined;
188
+ }
189
+ const permissions = this.permissions.menu || [];
190
+ return permissions;
191
+ }
192
+ getOButtonPermissions(attr, actRoute) {
193
+ let permissions;
194
+ if (!Util.isDefined(this.permissions)) {
195
+ return undefined;
196
+ }
197
+ permissions = this.getOComponentPermissions(attr, actRoute, 'o-button');
198
+ return permissions.component;
199
+ }
166
200
  mergeOPermissionsArrays(permissionsA, permissionsB) {
167
201
  if (!Util.isDefined(permissionsA) || !Util.isDefined(permissionsB)) {
168
202
  return permissionsA || permissionsB;
@@ -204,4 +238,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
204
238
  providedIn: 'root'
205
239
  }]
206
240
  }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9zZXJ2aWNlcy9wZXJtaXNzaW9ucy9wZXJtaXNzaW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQVFwRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBSzVFLE1BQU0sT0FBTyxrQkFBa0I7SUFPN0IsWUFBc0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUN0QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRWxFLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUMsRUFBRTtZQUN0RCxJQUFJLENBQUMseUJBQXlCLEdBQUcsU0FBUyxDQUFDLHdCQUF3QixDQUFDO1NBQ3JFO0lBQ0gsQ0FBQztJQUVTLGdCQUFnQjtRQUN4QixNQUFNLGNBQWMsR0FBUSwwQkFBMEIsQ0FBQztRQUN2RCxJQUFJO1lBQ0YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxD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QUFPLEtBQUssS0FBSyxDQUFDO0lBQ2xFLENBQUM7O2dIQS9NVSxrQkFBa0I7b0hBQWxCLGtCQUFrQixjQUZqQixNQUFNOzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2hhcmUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFwcENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbmZpZy9hcHAtY29uZmlnJztcbmltcG9ydCB7IE9Db21wb25lbnRQZXJtaXNzaW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzL28tY29tcG9uZW50LXBlcm1pc3Npb25zLnR5cGUnO1xuaW1wb3J0IHsgT0Zvcm1QZXJtaXNzaW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzL28tZm9ybS1wZXJtaXNzaW9ucy50eXBlJztcbmltcG9ydCB7IE9QZXJtaXNzaW9uc0RlZmluaXRpb24gfSBmcm9tICcuLi8uLi90eXBlcy9vLXBlcm1pc3Npb25zLWRlZmluaXRpb24udHlwZSc7XG5pbXBvcnQgeyBPUGVybWlzc2lvbnMgfSBmcm9tICcuLi8uLi90eXBlcy9vLXBlcm1pc3Npb25zLnR5cGUnO1xuaW1wb3J0IHsgT1JvdXRlUGVybWlzc2lvbnMgfSBmcm9tICcuLi8uLi90eXBlcy9vLXJvdXRlLXBlcm1pc3Npb25zLnR5cGUnO1xuaW1wb3J0IHsgT1RhYmxlTWVudVBlcm1pc3Npb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMvdGFibGUvby10YWJsZS1tZW51LXBlcm1pc3Npb25zLnR5cGUnO1xuaW1wb3J0IHsgT1RhYmxlUGVybWlzc2lvbnMgfSBmcm9tICcuLi8uLi90eXBlcy90YWJsZS9vLXRhYmxlLXBlcm1pc3Npb25zLnR5cGUnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBPbnRpbWl6ZUVFUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi9vbnRpbWl6ZS1lZS1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi9vbnRpbWl6ZS1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbnNTZXJ2aWNlIHtcblxuICBwcm90ZWN0ZWQgcGVybWlzc2lvbnNTZXJ2aWNlOiBhbnk7XG4gIHByb3RlY3RlZCBvbnRpbWl6ZVBlcm1pc3Npb25zQ29uZmlnOiBhbnk7XG5cbiAgcHJvdGVjdGVkIHBlcm1pc3Npb25zOiBPUGVybWlzc2lvbnNEZWZpbml0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBjb25zdCBhcHBDb25maWcgPSB0aGlzLmluamVjdG9yLmdldChBcHBDb25maWcpLmdldENvbmZpZ3VyYXRpb24oKTtcblxuICAgIGlmIChVdGlsLmlzRGVmaW5lZChhcHBDb25maWcucGVybWlzc2lvbnNDb25maWd1cmF0aW9uKSkge1xuICAgICAgdGhpcy5vbnRpbWl6ZVBlcm1pc3Npb25zQ29uZmlnID0gYXBwQ29uZmlnLnBlcm1pc3Npb25zQ29uZmlndXJhdGlvbjtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY29uZmlndXJlU2VydmljZSgpIHtcbiAgICBjb25zdCBsb2FkaW5nU2VydmljZTogYW55ID0gT250aW1pemVQZXJtaXNzaW9uc1NlcnZpY2U7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQobG9hZGluZ1NlcnZpY2UpO1xuICAgICAgaWYgKFV0aWwuaXNQZXJtaXNzaW9uc1NlcnZpY2UodGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UpKSB7XG4gICAgICAgIGlmICh0aGlzLnBlcm1pc3Npb25zU2VydmljZSBpbnN0YW5jZW9mIE9udGltaXplUGVybWlzc2lvbnNTZXJ2aWNlKSB7XG4gICAgICAgICAgKHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlIGFzIE9udGltaXplUGVybWlzc2lvbnNTZXJ2aWNlKS5jb25maWd1cmVTZXJ2aWNlKHRoaXMub250aW1pemVQZXJtaXNzaW9uc0NvbmZpZyk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UgaW5zdGFuY2VvZiBPbnRpbWl6ZUVFUGVybWlzc2lvbnNTZXJ2aWNlKSB7XG4gICAgICAgICAgKHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlIGFzIE9udGltaXplRUVQZXJtaXNzaW9uc1NlcnZpY2UpLmNvbmZpZ3VyZVNlcnZpY2UodGhpcy5vbnRpbWl6ZVBlcm1pc3Npb25zQ29uZmlnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgfVxuICB9XG5cbiAgcmVzdGFydCgpIHtcbiAgICB0aGlzLnBlcm1pc3Npb25zID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgaGFzUGVybWlzc2lvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGVybWlzc2lvbnMgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldFVzZXJQZXJtaXNzaW9uc0FzUHJvbWlzZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZCkgPT4ge1xuICAgICAgc2VsZi5wZXJtaXNzaW9ucyA9IHt9O1xuICAgICAgaWYgKFV0aWwuaXNEZWZpbmVkKHNlbGYub250aW1pemVQZXJtaXNzaW9uc0NvbmZpZykpIHtcbiAgICAgICAgc2VsZi5jb25maWd1cmVTZXJ2aWNlKCk7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHNlbGYucXVlcnlQZXJtaXNzaW9ucygpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cblxuICBwcm90ZWN0ZWQgcXVlcnlQZXJtaXNzaW9ucygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIGNvbnN0IGRhdGFPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT4gPSBuZXcgT2JzZXJ2YWJsZShpbm5lck9ic2VydmVyID0+IHtcbiAgICAgIHNlbGYucGVybWlzc2lvbnNTZXJ2aWNlLmxvYWRQZXJtaXNzaW9ucygpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgc2VsZi5wZXJtaXNzaW9ucyA9IHJlcztcbiAgICAgICAgaW5uZXJPYnNlcnZlci5uZXh0KHJlcyk7XG4gICAgICB9LCAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignW1Blcm1pc3Npb25zLnF1ZXJ5UGVybWlzc2lvbnNdOiBlcnJvcicsIGVycik7XG4gICAgICAgIGlubmVyT2JzZXJ2ZXIuZXJyb3IoZXJyKTtcbiAgICAgIH0sICgpID0+IHtcbiAgICAgICAgaW5uZXJPYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGRhdGFPYnNlcnZhYmxlLnBpcGUoc2hhcmUoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0UGVybWlzc2lvbklkRnJvbUFjdFJvdXRlKGFjdFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IHN0cmluZyB7XG4gICAgbGV0IHJlc3VsdDogc3RyaW5nO1xuICAgIGxldCBzbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCA9IGFjdFJvdXRlLnNuYXBzaG90O1xuICAgIHJlc3VsdCA9ICgoc25hcHNob3QuZGF0YSB8fCB7fSlbJ29QZXJtaXNzaW9uJ10gfHwge30pWydwZXJtaXNzaW9uSWQnXTtcbiAgICB3aGlsZSAoVXRpbC5pc0RlZmluZWQoc25hcHNob3QuZmlyc3RDaGlsZCkgJiYgIVV0aWwuaXNEZWZpbmVkKHJlc3VsdCkpIHtcbiAgICAgIHNuYXBzaG90ID0gc25hcHNob3QuZmlyc3RDaGlsZDtcbiAgICAgIHJlc3VsdCA9ICgoc25hcHNob3QuZGF0YSB8fCB7fSlbJ29QZXJtaXNzaW9uJ10gfHwge30pWydwZXJtaXNzaW9uSWQnXTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDb21wb25lbnRQZXJtaXNzaW9uc1VzaW5nUm91dGUoYXR0cjogc3RyaW5nLCBhY3RSb3V0ZTogQWN0aXZhdGVkUm91dGUpOiBPQ29tcG9uZW50UGVybWlzc2lvbnMge1xuICAgIGxldCByZXN1bHQ6IE9Db21wb25lbnRQZXJtaXNzaW9ucztcbiAgICBjb25zdCBwZXJtaXNzaW9uSWQgPSB0aGlzLmdldFBlcm1pc3Npb25JZEZyb21BY3RSb3V0ZShhY3RSb3V0ZSk7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHBlcm1pc3Npb25JZCkpIHtcbiAgICAgIGNvbnN0IHJvdXRlUGVybWlzc2lvbnM6IE9Sb3V0ZVBlcm1pc3Npb25zID0gKHRoaXMucGVybWlzc2lvbnMucm91dGVzIHx8IFtdKS5maW5kKHJvdXRlID0+IHJvdXRlLnBlcm1pc3Npb25JZCA9PT0gcGVybWlzc2lvbklkKTtcbiAgICAgIGlmIChVdGlsLmlzRGVmaW5lZChyb3V0ZVBlcm1pc3Npb25zKSkge1xuICAgICAgICByZXN1bHQgPSAocm91dGVQZXJtaXNzaW9ucy5jb21wb25lbnRzIHx8IFtdKS5maW5kKGNvbXAgPT4gY29tcC5hdHRyID09PSBhdHRyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRPQ29tcG9uZW50UGVybWlzc2lvbnMoYXR0cjogc3RyaW5nLCBhY3RSb3V0ZTogQWN0aXZhdGVkUm91dGUsIHNlbGVjdG9yOiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQodGhpcy5wZXJtaXNzaW9ucykpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGxldCByb3V0ZVBlcm1pc3Npb25zOiBhbnk7XG4gICAgY29uc3QgZ2VuZXJpY1JvdXRlUGVybTogT0NvbXBvbmVudFBlcm1pc3Npb25zID0gdGhpcy5nZXRDb21wb25lbnRQZXJtaXNzaW9uc1VzaW5nUm91dGUoYXR0ciwgYWN0Um91dGUpO1xuICAgIGlmIChnZW5lcmljUm91dGVQZXJtICYmIGdlbmVyaWNSb3V0ZVBlcm0uc2VsZWN0b3IgPT09IHNlbGVjdG9yKSB7XG4gICAgICByb3V0ZVBlcm1pc3Npb25zID0gZ2VuZXJpY1JvdXRlUGVybTtcbiAgICB9XG4gICAgbGV0IGNvbXBQZXJtaXNzaW9uczogYW55O1xuICAgIGNvbnN0IGF0dHJQZXJtaXNzaW9ucyA9ICh0aGlzLnBlcm1pc3Npb25zLmNvbXBvbmVudHMgfHwgW10pLmZpbmQoY29tcCA9PiBjb21wLmF0dHIgPT09IGF0dHIpO1xuICAgIGlmIChhdHRyUGVybWlzc2lvbnMgJiYgYXR0clBlcm1pc3Npb25zLnNlbGVjdG9yID09PSBzZWxlY3Rvcikge1xuICAgICAgY29tcFBlcm1pc3Npb25zID0gYXR0clBlcm1pc3Npb25zO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgcm91dGU6IHJvdXRlUGVybWlzc2lvbnMsXG4gICAgICBjb21wb25lbnQ6IGNvbXBQZXJtaXNzaW9uc1xuICAgIH07XG4gIH1cblxuICBnZXRUYWJsZVBlcm1pc3Npb25zKGF0dHI6IHN0cmluZywgYWN0Um91dGU6IEFjdGl2YXRlZFJvdXRlKTogT1RhYmxlUGVybWlzc2lvbnMge1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQodGhpcy5wZXJtaXNzaW9ucykpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IHBlcm0gPSB0aGlzLmdldE9Db21wb25lbnRQZXJtaXNzaW9ucyhhdHRyLCBhY3RSb3V0ZSwgJ28tdGFibGUnKTtcbiAgICBjb25zdCByb3V0ZVBlcm06IE9UYWJsZVBlcm1pc3Npb25zID0gPE9UYWJsZVBlcm1pc3Npb25zPnBlcm0ucm91dGU7XG4gICAgY29uc3QgY29tcFBlcm06IE9UYWJsZVBlcm1pc3Npb25zID0gPE9UYWJsZVBlcm1pc3Npb25zPnBlcm0uY29tcG9uZW50O1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQocm91dGVQZXJtKSB8fCAhVXRpbC5pc0RlZmluZWQoY29tcFBlcm0pKSB7XG4gICAgICByZXR1cm4gY29tcFBlcm0gfHwgcm91dGVQZXJtO1xuICAgIH1cbiAgICBjb25zdCBwZXJtaXNzaW9uczogT1RhYmxlUGVybWlzc2lvbnMgPSB7XG4gICAgICBzZWxlY3RvcjogJ28tdGFibGUnLFxuICAgICAgYXR0cjogcm91dGVQZXJtLmF0dHIsXG4gICAgICBtZW51OiB0aGlzLm1lcmdlT1RhYmxlTWVudVBlcm1pc3Npb25zKGNvbXBQZXJtLm1lbnUsIHJvdXRlUGVybS5tZW51KSxcbiAgICAgIGNvbHVtbnM6IHRoaXMubWVyZ2VPUGVybWlzc2lvbnNBcnJheXMoY29tcFBlcm0uY29sdW1ucywgcm91dGVQZXJtLmNvbHVtbnMpLFxuICAgICAgYWN0aW9uczogdGhpcy5tZXJnZU9QZXJtaXNzaW9uc0FycmF5cyhjb21wUGVybS5hY3Rpb25zLCByb3V0ZVBlcm0uYWN0aW9ucyksXG4gICAgICBjb250ZXh0TWVudTogdGhpcy5tZXJnZU9QZXJtaXNzaW9uc0FycmF5cyhjb21wUGVybS5jb250ZXh0TWVudSwgcm91dGVQZXJtLmNvbnRleHRNZW51KVxuICAgIH07XG4gICAgcmV0dXJuIHBlcm1pc3Npb25zO1xuICB9XG5cbiAgZ2V0Rm9ybVBlcm1pc3Npb25zKGF0dHI6IHN0cmluZywgYWN0Um91dGU6IEFjdGl2YXRlZFJvdXRlKTogT0Zvcm1QZXJtaXNzaW9ucyB7XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZCh0aGlzLnBlcm1pc3Npb25zKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgcGVybSA9IHRoaXMuZ2V0T0NvbXBvbmVudFBlcm1pc3Npb25zKGF0dHIsIGFjdFJvdXRlLCAnby1mb3JtJyk7XG4gICAgY29uc3Qgcm91dGVQZXJtOiBPRm9ybVBlcm1pc3Npb25zID0gPE9Gb3JtUGVybWlzc2lvbnM+cGVybS5yb3V0ZTtcbiAgICBjb25zdCBjb21wUGVybTogT0Zvcm1QZXJtaXNzaW9ucyA9IDxPRm9ybVBlcm1pc3Npb25zPnBlcm0uY29tcG9uZW50O1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQocm91dGVQZXJtKSB8fCAhVXRpbC5pc0RlZmluZWQoY29tcFBlcm0pKSB7XG4gICAgICByZXR1cm4gY29tcFBlcm0gfHwgcm91dGVQZXJtO1xuICAgIH1cbiAgICBjb25zdCBwZXJtaXNzaW9uczogT0Zvcm1QZXJtaXNzaW9ucyA9IHtcbiAgICAgIHNlbGVjdG9yOiAnby1mb3JtJyxcbiAgICAgIGF0dHI6IHJvdXRlUGVybS5hdHRyLFxuICAgICAgY29tcG9uZW50czogdGhpcy5tZXJnZU9QZXJtaXNzaW9uc0FycmF5cyhjb21wUGVybS5jb21wb25lbnRzLCByb3V0ZVBlcm0uY29tcG9uZW50cyksXG4gICAgICBhY3Rpb25zOiB0aGlzLm1lcmdlT1Blcm1pc3Npb25zQXJyYXlzKGNvbXBQZXJtLmFjdGlvbnMsIHJvdXRlUGVybS5hY3Rpb25zKVxuICAgIH07XG4gICAgcmV0dXJuIHBlcm1pc3Npb25zO1xuICB9XG5cbiAgZ2V0TWVudVBlcm1pc3Npb25zKGF0dHI6IHN0cmluZyk6IE9QZXJtaXNzaW9ucyB7XG4gICAgbGV0IHBlcm1pc3Npb25zO1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQodGhpcy5wZXJtaXNzaW9ucykpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IGFsbE1lbnU6IE9QZXJtaXNzaW9uc1tdID0gdGhpcy5wZXJtaXNzaW9ucy5tZW51IHx8IFtdO1xuXG4gICAgcGVybWlzc2lvbnMgPSBhbGxNZW51LmZpbmQoY29tcCA9PiBjb21wLmF0dHIgPT09IGF0dHIpO1xuXG4gICAgcmV0dXJuIHBlcm1pc3Npb25zO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1lcmdlT1Blcm1pc3Npb25zQXJyYXlzKHBlcm1pc3Npb25zQTogT1Blcm1pc3Npb25zW10sIHBlcm1pc3Npb25zQjogT1Blcm1pc3Npb25zW10pOiBPUGVybWlzc2lvbnNbXSB7XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZChwZXJtaXNzaW9uc0EpIHx8ICFVdGlsLmlzRGVmaW5lZChwZXJtaXNzaW9uc0IpKSB7XG4gICAgICByZXR1cm4gcGVybWlzc2lvbnNBIHx8IHBlcm1pc3Npb25zQjtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0gT2JqZWN0LmFzc2lnbihbXSwgcGVybWlzc2lvbnNBKTtcbiAgICBwZXJtaXNzaW9uc0IuZm9yRWFjaCgocGVybTogT1Blcm1pc3Npb25zKSA9PiB7XG4gICAgICBjb25zdCBmb3VuZCA9IHJlc3VsdC5maW5kKHIgPT4gci5hdHRyID09PSBwZXJtLmF0dHIpO1xuICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgIGZvdW5kLnZpc2libGUgPSBwZXJtLnZpc2libGU7XG4gICAgICAgIGZvdW5kLmVuYWJsZWQgPSBwZXJtLmVuYWJsZWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQucHVzaChwZXJtKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJvdGVjdGVkIG1lcmdlT1RhYmxlTWVudVBlcm1pc3Npb25zKHBlcm1pc3Npb25zQTogT1RhYmxlTWVudVBlcm1pc3Npb25zLCBwZXJtaXNzaW9uc0I6IE9UYWJsZU1lbnVQZXJtaXNzaW9ucyk6IE9UYWJsZU1lbnVQZXJtaXNzaW9ucyB7XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZChwZXJtaXNzaW9uc0EpIHx8ICFVdGlsLmlzRGVmaW5lZChwZXJtaXNzaW9uc0IpKSB7XG4gICAgICByZXR1cm4gcGVybWlzc2lvbnNBIHx8IHBlcm1pc3Npb25zQjtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgdmlzaWJsZTogcGVybWlzc2lvbnNCLnZpc2libGUsXG4gICAgICBlbmFibGVkOiBwZXJtaXNzaW9uc0IuZW5hYmxlZCxcbiAgICAgIGl0ZW1zOiB0aGlzLm1lcmdlT1Blcm1pc3Npb25zQXJyYXlzKHBlcm1pc3Npb25zQS5pdGVtcywgcGVybWlzc2lvbnNCLml0ZW1zKVxuICAgIH07XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGlzUGVybWlzc2lvbklkUm91dGVSZXN0cmljdGVkKHBlcm1pc3Npb25JZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgcm91dGVEYXRhID0gKHRoaXMucGVybWlzc2lvbnMucm91dGVzIHx8IFtdKS5maW5kKHJvdXRlID0+IHJvdXRlLnBlcm1pc3Npb25JZCA9PT0gcGVybWlzc2lvbklkKTtcbiAgICByZXR1cm4gVXRpbC5pc0RlZmluZWQocm91dGVEYXRhKSAmJiByb3V0ZURhdGEuZW5hYmxlZCA9PT0gZmFsc2U7XG4gIH1cbn1cbiJdfQ==
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9zZXJ2aWNlcy9wZXJtaXNzaW9ucy9wZXJtaXNzaW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFXcEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQU01RSxNQUFNLE9BQU8sa0JBQWtCO0lBUTdCLFlBQXNCLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFQakMsd0JBQW1CLEdBQWlCLElBQUksT0FBTyxFQUFNLENBQUM7UUFRM0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUVsRSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLEVBQUU7WUFDdEQsSUFBSSxDQUFDLHlCQUF5QixHQUFHLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQztTQUNyRTtJQUNILENBQUM7SUFFUyxnQkFBZ0I7UUFDeEIsTUFBTSxjQUFjLEdBQVEsMEJBQTBCLENBQUM7UUFDdkQsSUFBSTtZQUNGLElBQUksQ0FBQyxrQkFB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WUFBWSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDO1NBQzVFLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsNkJBQTZCLENBQUMsWUFBb0I7UUFDaEQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxLQUFLLFlBQVksQ0FBQyxDQUFDO1FBQ3JHLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQztJQUNsRSxDQUFDOztnSEEzUFUsa0JBQWtCO29IQUFsQixrQkFBa0IsY0FGakIsTUFBTTs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNoYXJlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBBcHBDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWcvYXBwLWNvbmZpZyc7XG5pbXBvcnQgeyBPQ29tcG9uZW50UGVybWlzc2lvbnNCeVJvdXRlIH0gZnJvbSAnLi4vLi4vdHlwZXMvby1jb21wb25lbnQtcGVybWlzc2lvbnMtYnktcm91dGUudHlwZSc7XG5pbXBvcnQgeyBPQ29tcG9uZW50UGVybWlzc2lvbnMgfSBmcm9tICcuLi8uLi90eXBlcy9vLWNvbXBvbmVudC1wZXJtaXNzaW9ucy50eXBlJztcbmltcG9ydCB7IE9Gb3JtUGVybWlzc2lvbnMgfSBmcm9tICcuLi8uLi90eXBlcy9vLWZvcm0tcGVybWlzc2lvbnMudHlwZSc7XG5pbXBvcnQgeyBPR3JpZFBlcm1pc3Npb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMvby1ncmlkLXBlcm1pc3Npb25zLnR5cGUnO1xuaW1wb3J0IHsgT0xpc3RQZXJtaXNzaW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzL28tbGlzdC1wZXJtaXNzaW9ucy50eXBlJztcbmltcG9ydCB7IE9QZXJtaXNzaW9uc0RlZmluaXRpb24gfSBmcm9tICcuLi8uLi90eXBlcy9vLXBlcm1pc3Npb25zLWRlZmluaXRpb24udHlwZSc7XG5pbXBvcnQgeyBPUGVybWlzc2lvbnMgfSBmcm9tICcuLi8uLi90eXBlcy9vLXBlcm1pc3Npb25zLnR5cGUnO1xuaW1wb3J0IHsgT1JvdXRlUGVybWlzc2lvbnMgfSBmcm9tICcuLi8uLi90eXBlcy9vLXJvdXRlLXBlcm1pc3Npb25zLnR5cGUnO1xuaW1wb3J0IHsgT1RhYmxlTWVudVBlcm1pc3Npb25zIH0gZnJvbSAnLi4vLi4vdHlwZXMvdGFibGUvby10YWJsZS1tZW51LXBlcm1pc3Npb25zLnR5cGUnO1xuaW1wb3J0IHsgT1RhYmxlUGVybWlzc2lvbnMgfSBmcm9tICcuLi8uLi90eXBlcy90YWJsZS9vLXRhYmxlLXBlcm1pc3Npb25zLnR5cGUnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBPbnRpbWl6ZUVFUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi9vbnRpbWl6ZS1lZS1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IE9udGltaXplUGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnLi9vbnRpbWl6ZS1wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IE9UcmVlUGVybWlzc2lvbnMgfSBmcm9tICcuLi8uLi90eXBlcy9vLXRyZWUtcGVybWlzc2lvbnMudHlwZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBlcm1pc3Npb25zU2VydmljZSB7XG4gIHB1YmxpYyBvbkNoYW5nZVBlcm1pc3Npb25zOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxbXT4oKTtcblxuICBwcm90ZWN0ZWQgcGVybWlzc2lvbnNTZXJ2aWNlOiBhbnk7XG4gIHByb3RlY3RlZCBvbnRpbWl6ZVBlcm1pc3Npb25zQ29uZmlnOiBhbnk7XG5cbiAgcHJvdGVjdGVkIHBlcm1pc3Npb25zOiBPUGVybWlzc2lvbnNEZWZpbml0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBjb25zdCBhcHBDb25maWcgPSB0aGlzLmluamVjdG9yLmdldChBcHBDb25maWcpLmdldENvbmZpZ3VyYXRpb24oKTtcblxuICAgIGlmIChVdGlsLmlzRGVmaW5lZChhcHBDb25maWcucGVybWlzc2lvbnNDb25maWd1cmF0aW9uKSkge1xuICAgICAgdGhpcy5vbnRpbWl6ZVBlcm1pc3Npb25zQ29uZmlnID0gYXBwQ29uZmlnLnBlcm1pc3Npb25zQ29uZmlndXJhdGlvbjtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY29uZmlndXJlU2VydmljZSgpIHtcbiAgICBjb25zdCBsb2FkaW5nU2VydmljZTogYW55ID0gT250aW1pemVQZXJtaXNzaW9uc1NlcnZpY2U7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQobG9hZGluZ1NlcnZpY2UpO1xuICAgICAgaWYgKFV0aWwuaXNQZXJtaXNzaW9uc1NlcnZpY2UodGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UpKSB7XG4gICAgICAgIGlmICh0aGlzLnBlcm1pc3Npb25zU2VydmljZSBpbnN0YW5jZW9mIE9udGltaXplUGVybWlzc2lvbnNTZXJ2aWNlKSB7XG4gICAgICAgICAgKHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlIGFzIE9udGltaXplUGVybWlzc2lvbnNTZXJ2aWNlKS5jb25maWd1cmVTZXJ2aWNlKHRoaXMub250aW1pemVQZXJtaXNzaW9uc0NvbmZpZyk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UgaW5zdGFuY2VvZiBPbnRpbWl6ZUVFUGVybWlzc2lvbnNTZXJ2aWNlKSB7XG4gICAgICAgICAgKHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlIGFzIE9udGltaXplRUVQZXJtaXNzaW9uc1NlcnZpY2UpLmNvbmZpZ3VyZVNlcnZpY2UodGhpcy5vbnRpbWl6ZVBlcm1pc3Npb25zQ29uZmlnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgfVxuICB9XG5cbiAgcmVzdGFydCgpIHtcbiAgICB0aGlzLnBlcm1pc3Npb25zID0gdW5kZWZpbmVkO1xuICAgIHRoaXMub25DaGFuZ2VQZXJtaXNzaW9ucy5uZXh0KHRoaXMucGVybWlzc2lvbnMpO1xuICB9XG5cbiAgaGFzUGVybWlzc2lvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucGVybWlzc2lvbnMgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldFVzZXJQZXJtaXNzaW9uc0FzUHJvbWlzZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZCkgPT4ge1xuICAgICAgc2VsZi5wZXJtaXNzaW9ucyA9IHt9O1xuICAgICAgaWYgKFV0aWwuaXNEZWZpbmVkKHNlbGYub250aW1pemVQZXJtaXNzaW9uc0NvbmZpZykpIHtcbiAgICAgICAgc2VsZi5jb25maWd1cmVTZXJ2aWNlKCk7XG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHNlbGYucXVlcnlQZXJtaXNzaW9ucygpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHF1ZXJ5UGVybWlzc2lvbnMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBjb25zdCBkYXRhT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxhbnk+ID0gbmV3IE9ic2VydmFibGUoaW5uZXJPYnNlcnZlciA9PiB7XG4gICAgICBzZWxmLnBlcm1pc3Npb25zU2VydmljZS5sb2FkUGVybWlzc2lvbnMoKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgIHNlbGYucGVybWlzc2lvbnMgPSByZXM7XG4gICAgICAgIHNlbGYub25DaGFuZ2VQZXJtaXNzaW9ucy5uZXh0KHNlbGYucGVybWlzc2lvbnMpO1xuICAgICAgICBpbm5lck9ic2VydmVyLm5leHQocmVzKTtcbiAgICAgIH0sIChlcnI6IGFueSkgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdbUGVybWlzc2lvbnMucXVlcnlQZXJtaXNzaW9uc106IGVycm9yJywgZXJyKTtcbiAgICAgICAgaW5uZXJPYnNlcnZlci5lcnJvcihlcnIpO1xuICAgICAgfSwgKCkgPT4ge1xuICAgICAgICBpbm5lck9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gZGF0YU9ic2VydmFibGUucGlwZShzaGFyZSgpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRQZXJtaXNzaW9uSWRGcm9tQWN0Um91dGUoYWN0Um91dGU6IEFjdGl2YXRlZFJvdXRlKTogc3RyaW5nIHtcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKGFjdFJvdXRlKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgbGV0IHJlc3VsdDogc3RyaW5nO1xuICAgIGxldCBzbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCA9IGFjdFJvdXRlLnNuYXBzaG90O1xuICAgIHJlc3VsdCA9ICgoc25hcHNob3QuZGF0YSB8fCB7fSlbJ29QZXJtaXNzaW9uJ10gfHwge30pWydwZXJtaXNzaW9uSWQnXTtcbiAgICB3aGlsZSAoVXRpbC5pc0RlZmluZWQoc25hcHNob3QuZmlyc3RDaGlsZCkgJiYgIVV0aWwuaXNEZWZpbmVkKHJlc3VsdCkpIHtcbiAgICAgIHNuYXBzaG90ID0gc25hcHNob3QuZmlyc3RDaGlsZDtcbiAgICAgIHJlc3VsdCA9ICgoc25hcHNob3QuZGF0YSB8fCB7fSlbJ29QZXJtaXNzaW9uJ10gfHwge30pWydwZXJtaXNzaW9uSWQnXTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDb21wb25lbnRQZXJtaXNzaW9uc1VzaW5nUm91dGUoYXR0cjogc3RyaW5nLCBhY3RSb3V0ZTogQWN0aXZhdGVkUm91dGUpOiBPQ29tcG9uZW50UGVybWlzc2lvbnMge1xuICAgIGxldCByZXN1bHQ6IE9Db21wb25lbnRQZXJtaXNzaW9ucztcbiAgICBjb25zdCBwZXJtaXNzaW9uSWQgPSB0aGlzLmdldFBlcm1pc3Npb25JZEZyb21BY3RSb3V0ZShhY3RSb3V0ZSk7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHBlcm1pc3Npb25JZCkpIHtcbiAgICAgIGNvbnN0IHJvdXRlUGVybWlzc2lvbnM6IE9Sb3V0ZVBlcm1pc3Npb25zID0gKHRoaXMucGVybWlzc2lvbnMucm91dGVzIHx8IFtdKS5maW5kKHJvdXRlID0+IHJvdXRlLnBlcm1pc3Npb25JZCA9PT0gcGVybWlzc2lvbklkKTtcbiAgICAgIGlmIChVdGlsLmlzRGVmaW5lZChyb3V0ZVBlcm1pc3Npb25zKSkge1xuICAgICAgICByZXN1bHQgPSAocm91dGVQZXJtaXNzaW9ucy5jb21wb25lbnRzIHx8IFtdKS5maW5kKGNvbXAgPT4gY29tcC5hdHRyID09PSBhdHRyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRPQ29tcG9uZW50UGVybWlzc2lvbnMoYXR0cjogc3RyaW5nLCBhY3RSb3V0ZTogQWN0aXZhdGVkUm91dGUsIHNlbGVjdG9yOiBzdHJpbmcpOiBPQ29tcG9uZW50UGVybWlzc2lvbnNCeVJvdXRlIHtcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHRoaXMucGVybWlzc2lvbnMpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBsZXQgcm91dGVQZXJtaXNzaW9uczogYW55O1xuICAgIGNvbnN0IGdlbmVyaWNSb3V0ZVBlcm06IE9Db21wb25lbnRQZXJtaXNzaW9ucyA9IHRoaXMuZ2V0Q29tcG9uZW50UGVybWlzc2lvbnNVc2luZ1JvdXRlKGF0dHIsIGFjdFJvdXRlKTtcbiAgICBpZiAoZ2VuZXJpY1JvdXRlUGVybSAmJiBnZW5lcmljUm91dGVQZXJtLnNlbGVjdG9yID09PSBzZWxlY3Rvcikge1xuICAgICAgcm91dGVQZXJtaXNzaW9ucyA9IGdlbmVyaWNSb3V0ZVBlcm07XG4gICAgfVxuICAgIGxldCBjb21wUGVybWlzc2lvbnM6IGFueTtcbiAgICBjb25zdCBhdHRyUGVybWlzc2lvbnMgPSAodGhpcy5wZXJtaXNzaW9ucy5jb21wb25lbnRzIHx8IFtdKS5maW5kKGNvbXAgPT4gY29tcC5hdHRyID09PSBhdHRyKTtcbiAgICBpZiAoYXR0clBlcm1pc3Npb25zICYmIGF0dHJQZXJtaXNzaW9ucy5zZWxlY3RvciA9PT0gc2VsZWN0b3IpIHtcbiAgICAgIGNvbXBQZXJtaXNzaW9ucyA9IGF0dHJQZXJtaXNzaW9ucztcbiAgICB9XG4gICAgY29uc3QgcGVybWlzc2lvbnM6IE9Db21wb25lbnRQZXJtaXNzaW9uc0J5Um91dGUgPSB7XG4gICAgICByb3V0ZTogcm91dGVQZXJtaXNzaW9ucyxcbiAgICAgIGNvbXBvbmVudDogY29tcFBlcm1pc3Npb25zXG4gICAgfTtcbiAgICByZXR1cm4gcGVybWlzc2lvbnM7XG4gIH1cblxuICBnZXRUYWJsZVBlcm1pc3Npb25zKGF0dHI6IHN0cmluZywgYWN0Um91dGU6IEFjdGl2YXRlZFJvdXRlKTogT1RhYmxlUGVybWlzc2lvbnMge1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQodGhpcy5wZXJtaXNzaW9ucykpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IHBlcm0gPSB0aGlzLmdldE9Db21wb25lbnRQZXJtaXNzaW9ucyhhdHRyLCBhY3RSb3V0ZSwgJ28tdGFibGUnKTtcbiAgICBjb25zdCByb3V0ZVBlcm06IE9UYWJsZVBlcm1pc3Npb25zID0gPE9UYWJsZVBlcm1pc3Npb25zPnBlcm0ucm91dGU7XG4gICAgY29uc3QgY29tcFBlcm06IE9UYWJsZVBlcm1pc3Npb25zID0gPE9UYWJsZVBlcm1pc3Npb25zPnBlcm0uY29tcG9uZW50O1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQocm91dGVQZXJtKSB8fCAhVXRpbC5pc0RlZmluZWQoY29tcFBlcm0pKSB7XG4gICAgICByZXR1cm4gY29tcFBlcm0gfHwgcm91dGVQZXJtO1xuICAgIH1cbiAgICBjb25zdCBwZXJtaXNzaW9uczogT1RhYmxlUGVybWlzc2lvbnMgPSB7XG4gICAgICBzZWxlY3RvcjogJ28tdGFibGUnLFxuICAgICAgYXR0cjogcm91dGVQZXJtLmF0dHIsXG4gICAgICBtZW51OiB0aGlzLm1lcmdlT1RhYmxlTWVudVBlcm1pc3Npb25zKGNvbXBQZXJtLm1lbnUsIHJvdXRlUGVybS5tZW51KSxcbiAgICAgIGNvbHVtbnM6IHRoaXMubWVyZ2VPUGVybWlzc2lvbnNBcnJheXMoY29tcFBlcm0uY29sdW1ucywgcm91dGVQZXJtLmNvbHVtbnMpLFxuICAgICAgYWN0aW9uczogdGhpcy5tZXJnZU9QZXJtaXNzaW9uc0FycmF5cyhjb21wUGVybS5hY3Rpb25zLCByb3V0ZVBlcm0uYWN0aW9ucyksXG4gICAgICBjb250ZXh0TWVudTogdGhpcy5tZXJnZU9QZXJtaXNzaW9uc0FycmF5cyhjb21wUGVybS5jb250ZXh0TWVudSwgcm91dGVQZXJtLmNvbnRleHRNZW51KVxuICAgIH07XG4gICAgcmV0dXJuIHBlcm1pc3Npb25zO1xuICB9XG4gIHByaXZhdGUgZ2V0U2VydmljZUJhc2VQZXJtaXNzaW9ucyhhdHRyOiBzdHJpbmcsIGFjdFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgc2VsZWN0b3I6IHN0cmluZyk6IE9Db21wb25lbnRQZXJtaXNzaW9ucyB7XG4gICAgaWYgKCFVdGlsLmlzRGVmaW5lZCh0aGlzLnBlcm1pc3Npb25zKSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgcGVybSA9IHRoaXMuZ2V0T0NvbXBvbmVudFBlcm1pc3Npb25zKGF0dHIsIGFjdFJvdXRlLCBzZWxlY3Rvcik7XG4gICAgY29uc3Qgcm91dGVQZXJtOiBPQ29tcG9uZW50UGVybWlzc2lvbnMgPSBwZXJtLnJvdXRlO1xuICAgIGNvbnN0IGNvbXBQZXJtOiBPQ29tcG9uZW50UGVybWlzc2lvbnMgPSBwZXJtLmNvbXBvbmVudDtcblxuICAgIGlmICghVXRpbC5pc0RlZmluZWQocm91dGVQZXJtKSB8fCAhVXRpbC5pc0RlZmluZWQoY29tcFBlcm0pKSB7XG4gICAgICByZXR1cm4gY29tcFBlcm0gfHwgcm91dGVQZXJtO1xuICAgIH1cblxuICAgIGNvbnN0IHBlcm1pc3Npb25zOiBPQ29tcG9uZW50UGVybWlzc2lvbnMgPSB7XG4gICAgICBzZWxlY3Rvcjogc2VsZWN0b3IsXG4gICAgICBhdHRyOiByb3V0ZVBlcm0uYXR0cixcbiAgICAgIGNvbXBvbmVudHM6IHRoaXMubWVyZ2VPUGVybWlzc2lvbnNBcnJheXMoY29tcFBlcm0uY29tcG9uZW50cywgcm91dGVQZXJtLmNvbXBvbmVudHMpLFxuICAgICAgYWN0aW9uczogdGhpcy5tZXJnZU9QZXJtaXNzaW9uc0FycmF5cyhjb21wUGVybS5hY3Rpb25zLCByb3V0ZVBlcm0uYWN0aW9ucylcbiAgICB9O1xuXG4gICAgcmV0dXJuIHBlcm1pc3Npb25zO1xuICB9XG4gIGdldEZvcm1QZXJtaXNzaW9ucyhhdHRyOiBzdHJpbmcsIGFjdFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IE9Gb3JtUGVybWlzc2lvbnMge1xuICAgIHJldHVybiA8T0Zvcm1QZXJtaXNzaW9ucz50aGlzLmdldFNlcnZpY2VCYXNlUGVybWlzc2lvbnMoYXR0ciwgYWN0Um91dGUsICdvLWZvcm0nKTtcbiAgfVxuXG4gIGdldExpc3RQZXJtaXNzaW9ucyhhdHRyOiBzdHJpbmcsIGFjdFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IE9MaXN0UGVybWlzc2lvbnMge1xuICAgIHJldHVybiA8T0xpc3RQZXJtaXNzaW9ucz50aGlzLmdldFNlcnZpY2VCYXNlUGVybWlzc2lvbnMoYXR0ciwgYWN0Um91dGUsICdvLWxpc3QnKTtcbiAgfVxuXG4gIGdldEdyaWRQZXJtaXNzaW9ucyhhdHRyOiBzdHJpbmcsIGFjdFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IE9HcmlkUGVybWlzc2lvbnMge1xuICAgIHJldHVybiA8T0dyaWRQZXJtaXNzaW9ucz50aGlzLmdldFNlcnZpY2VCYXNlUGVybWlzc2lvbnMoYXR0ciwgYWN0Um91dGUsICdvLWdyaWQnKTtcbiAgfVxuXG4gIGdldFRyZWVQZXJtaXNzaW9ucyhhdHRyOiBzdHJpbmcsIGFjdFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IE9UcmVlUGVybWlzc2lvbnMge1xuICAgIHJldHVybiA8T1RyZWVQZXJtaXNzaW9ucz50aGlzLmdldFNlcnZpY2VCYXNlUGVybWlzc2lvbnMoYXR0ciwgYWN0Um91dGUsICdvLXRyZWUnKTtcbiAgfVxuXG4gIGdldE1lbnVQZXJtaXNzaW9ucyhhdHRyOiBzdHJpbmcpOiBPUGVybWlzc2lvbnMge1xuICAgIGxldCBwZXJtaXNzaW9ucztcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHRoaXMucGVybWlzc2lvbnMpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBhbGxNZW51OiBPUGVybWlzc2lvbnNbXSA9IHRoaXMucGVybWlzc2lvbnMubWVudSB8fCBbXTtcblxuICAgIHBlcm1pc3Npb25zID0gYWxsTWVudS5maW5kKGNvbXAgPT4gY29tcC5hdHRyID09PSBhdHRyKTtcblxuICAgIHJldHVybiBwZXJtaXNzaW9ucztcbiAgfVxuXG4gIGdldEFsbE1lbnVQZXJtaXNzaW9ucygpOiBPUGVybWlzc2lvbnNbXSB7XG5cbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHRoaXMucGVybWlzc2lvbnMpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBwZXJtaXNzaW9uczogT1Blcm1pc3Npb25zW10gPSB0aGlzLnBlcm1pc3Npb25zLm1lbnUgfHwgW107XG5cbiAgICByZXR1cm4gcGVybWlzc2lvbnM7XG4gIH1cblxuXG4gIGdldE9CdXR0b25QZXJtaXNzaW9ucyhhdHRyOiBzdHJpbmcsIGFjdFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IE9QZXJtaXNzaW9ucyB7XG4gICAgbGV0IHBlcm1pc3Npb25zO1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQodGhpcy5wZXJtaXNzaW9ucykpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHBlcm1pc3Npb25zID0gdGhpcy5nZXRPQ29tcG9uZW50UGVybWlzc2lvbnMoYXR0ciwgYWN0Um91dGUsICdvLWJ1dHRvbicpO1xuXG4gICAgcmV0dXJuIHBlcm1pc3Npb25zLmNvbXBvbmVudDtcbiAgfVxuXG4gIHByb3RlY3RlZCBtZXJnZU9QZXJtaXNzaW9uc0FycmF5cyhwZXJtaXNzaW9uc0E6IE9QZXJtaXNzaW9uc1tdLCBwZXJtaXNzaW9uc0I6IE9QZXJtaXNzaW9uc1tdKTogT1Blcm1pc3Npb25zW10ge1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQocGVybWlzc2lvbnNBKSB8fCAhVXRpbC5pc0RlZmluZWQocGVybWlzc2lvbnNCKSkge1xuICAgICAgcmV0dXJuIHBlcm1pc3Npb25zQSB8fCBwZXJtaXNzaW9uc0I7XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdCA9IE9iamVjdC5hc3NpZ24oW10sIHBlcm1pc3Npb25zQSk7XG4gICAgcGVybWlzc2lvbnNCLmZvckVhY2goKHBlcm06IE9QZXJtaXNzaW9ucykgPT4ge1xuICAgICAgY29uc3QgZm91bmQgPSByZXN1bHQuZmluZChyID0+IHIuYXR0ciA9PT0gcGVybS5hdHRyKTtcbiAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICBmb3VuZC52aXNpYmxlID0gcGVybS52aXNpYmxlO1xuICAgICAgICBmb3VuZC5lbmFibGVkID0gcGVybS5lbmFibGVkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0LnB1c2gocGVybSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBtZXJnZU9UYWJsZU1lbnVQZXJtaXNzaW9ucyhwZXJtaXNzaW9uc0E6IE9UYWJsZU1lbnVQZXJtaXNzaW9ucywgcGVybWlzc2lvbnNCOiBPVGFibGVNZW51UGVybWlzc2lvbnMpOiBPVGFibGVNZW51UGVybWlzc2lvbnMge1xuICAgIGlmICghVXRpbC5pc0RlZmluZWQocGVybWlzc2lvbnNBKSB8fCAhVXRpbC5pc0RlZmluZWQocGVybWlzc2lvbnNCKSkge1xuICAgICAgcmV0dXJuIHBlcm1pc3Npb25zQSB8fCBwZXJtaXNzaW9uc0I7XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIHZpc2libGU6IHBlcm1pc3Npb25zQi52aXNpYmxlLFxuICAgICAgZW5hYmxlZDogcGVybWlzc2lvbnNCLmVuYWJsZWQsXG4gICAgICBpdGVtczogdGhpcy5tZXJnZU9QZXJtaXNzaW9uc0FycmF5cyhwZXJtaXNzaW9uc0EuaXRlbXMsIHBlcm1pc3Npb25zQi5pdGVtcylcbiAgICB9O1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBpc1Blcm1pc3Npb25JZFJvdXRlUmVzdHJpY3RlZChwZXJtaXNzaW9uSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJvdXRlRGF0YSA9ICh0aGlzLnBlcm1pc3Npb25zLnJvdXRlcyB8fCBbXSkuZmluZChyb3V0ZSA9PiByb3V0ZS5wZXJtaXNzaW9uSWQgPT09IHBlcm1pc3Npb25JZCk7XG4gICAgcmV0dXJuIFV0aWwuaXNEZWZpbmVkKHJvdXRlRGF0YSkgJiYgcm91dGVEYXRhLmVuYWJsZWQgPT09IGZhbHNlO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './o-form-global-config.type';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdHlwZXMvZm9ybS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9vLWZvcm0tZ2xvYmFsLWNvbmZpZy50eXBlJzsiXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1mb3JtLWdsb2JhbC1jb25maWcudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi90eXBlcy9mb3JtL28tZm9ybS1nbG9iYWwtY29uZmlnLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIE9Gb3JtR2xvYmFsQ29uZmlnID0ge1xuICBoZWFkZXJBY3Rpb25zOiBzdHJpbmc7XG59O1xuIl19
@@ -37,4 +37,6 @@ export * from './session-info.type';
37
37
  export * from './sql-order.type';
38
38
  export * from './o-grouped-column-types.type';
39
39
  export * from './o-filter-definition.type';
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsdUNBQXVDLENBQUE7QUFDckQsY0FBYywrQkFBK0IsQ0FBQTtBQUM3QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGdDQUFnQyxDQUFBO0FBQzlDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGFibGUvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9hZ2dyZWdhdGUtZnVuY3Rpb24udHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2ljLWV4cHJlc3Npb24udHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZy50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlndXJlLW1lc3NhZ2Utc2VydmljZS1hcmdzLnR5cGUnXG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZ3VyZS1zZXJ2aWNlLWFyZ3MudHlwZSdcbmV4cG9ydCAqIGZyb20gJy4vZGF0ZS1jdXN0b20tY2xhc3MudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGUtZmlsdGVyLWZ1bmN0aW9uLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvci1kYXRhLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9leHByZXNzaW9uLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9maWx0ZXItZXhwcmVzc2lvbi50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1sYXlvdXQtZGV0YWlsLWNvbXBvbmVudC1kYXRhLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLXZhbHVlLW9wdGlvbnMudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2h0dHAtcmVxdWVzdC1vcHRpb25zLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tZW51LXJvb3QtaXRlbS50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vby1icmVhZGNydW1iLWl0ZW0udHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL28tY29tcG9uZW50LXBlcm1pc3Npb25zLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWRhdGUtdmFsdWUudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL28tZmlsdGVyLWJ1aWxkZXItdmFsdWVzLnR5cGUnXG5leHBvcnQgKiBmcm9tICcuL28tZm9ybS1pbml0aWFsaXphdGlvbi1vcHRpb25zLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWZvcm0tcGVybWlzc2lvbnMudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL28taW5wdXRzLW9wdGlvbnMudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL28tbGlzdC1pbml0aWFsaXphdGlvbi1vcHRpb25zLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLW1hdC1lcnJvci50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vby1wZXJtaXNzaW9ucy1kZWZpbml0aW9uLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLXBlcm1pc3Npb25zLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLXJvdXRlLXBlcm1pc3Npb25zLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vbnRpbWl6ZS1lZS1wZXJtaXNzaW9ucy1jb25maWcudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL29udGltaXplLXBlcm1pc3Npb25zLWNvbmZpZy50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vb250aW1pemUtc2VydmljZS1jb25maWcudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL29wZXJhdGlvbi1mdW5jdGlvbi50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcXVlcnktZGF0YS1hcmdzLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWljay1maWx0ZXItZnVuY3Rpb24udHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3JlbW90ZS1jb25maWd1cmF0aW9uLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlLXJlcXVlc3QtcGFyYW0udHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3Nlc3Npb24taW5mby50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc3FsLW9yZGVyLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWdyb3VwZWQtY29sdW1uLXR5cGVzLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWZpbHRlci1kZWZpbml0aW9uLnR5cGUnO1xuIl19
40
+ export * from './form/index';
41
+ export * from './o-global-config.type';
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsdUNBQXVDLENBQUE7QUFDckQsY0FBYywrQkFBK0IsQ0FBQTtBQUM3QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGdDQUFnQyxDQUFBO0FBQzlDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90YWJsZS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2FnZ3JlZ2F0ZS1mdW5jdGlvbi50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vYmFzaWMtZXhwcmVzc2lvbi50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlnLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25maWd1cmUtbWVzc2FnZS1zZXJ2aWNlLWFyZ3MudHlwZSdcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlndXJlLXNlcnZpY2UtYXJncy50eXBlJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRlLWN1c3RvbS1jbGFzcy50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0ZS1maWx0ZXItZnVuY3Rpb24udHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vycm9yLWRhdGEudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2V4cHJlc3Npb24udHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlci1leHByZXNzaW9uLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWxheW91dC1kZXRhaWwtY29tcG9uZW50LWRhdGEudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0tdmFsdWUtb3B0aW9ucy50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vaHR0cC1yZXF1ZXN0LW9wdGlvbnMudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL21lbnUtcm9vdC1pdGVtLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWJyZWFkY3J1bWItaXRlbS50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vby1jb21wb25lbnQtcGVybWlzc2lvbnMudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL28tZGF0ZS12YWx1ZS50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vby1maWx0ZXItYnVpbGRlci12YWx1ZXMudHlwZSdcbmV4cG9ydCAqIGZyb20gJy4vby1mb3JtLWluaXRpYWxpemF0aW9uLW9wdGlvbnMudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL28tZm9ybS1wZXJtaXNzaW9ucy50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vby1pbnB1dHMtb3B0aW9ucy50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vby1saXN0LWluaXRpYWxpemF0aW9uLW9wdGlvbnMudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL28tbWF0LWVycm9yLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vLXBlcm1pc3Npb25zLWRlZmluaXRpb24udHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL28tcGVybWlzc2lvbnMudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL28tcm91dGUtcGVybWlzc2lvbnMudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL29udGltaXplLWVlLXBlcm1pc3Npb25zLWNvbmZpZy50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vb250aW1pemUtcGVybWlzc2lvbnMtY29uZmlnLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9vbnRpbWl6ZS1zZXJ2aWNlLWNvbmZpZy50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vb3BlcmF0aW9uLWZ1bmN0aW9uLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyeS1kYXRhLWFyZ3MudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3F1aWNrLWZpbHRlci1mdW5jdGlvbi50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVtb3RlLWNvbmZpZ3VyYXRpb24udHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2UtcmVxdWVzdC1wYXJhbS50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc2Vzc2lvbi1pbmZvLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcWwtb3JkZXIudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL28tZ3JvdXBlZC1jb2x1bW4tdHlwZXMudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL28tZmlsdGVyLWRlZmluaXRpb24udHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm0vaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9vLWdsb2JhbC1jb25maWcudHlwZSc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1jb21wb25lbnQtcGVybWlzc2lvbnMtYnktcm91dGUudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi90eXBlcy9vLWNvbXBvbmVudC1wZXJtaXNzaW9ucy1ieS1yb3V0ZS50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPQ29tcG9uZW50UGVybWlzc2lvbnMgfSBmcm9tIFwiLi9vLWNvbXBvbmVudC1wZXJtaXNzaW9ucy50eXBlXCJcblxuZXhwb3J0IHR5cGUgT0NvbXBvbmVudFBlcm1pc3Npb25zQnlSb3V0ZSA9IHtcbiAgcm91dGU/OiBPQ29tcG9uZW50UGVybWlzc2lvbnMsXG4gIGNvbXBvbmVudD86IE9Db21wb25lbnRQZXJtaXNzaW9uc1xufSJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1mb3JtLXBlcm1pc3Npb25zLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdHlwZXMvby1mb3JtLXBlcm1pc3Npb25zLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9QZXJtaXNzaW9ucyB9IGZyb20gJy4vby1wZXJtaXNzaW9ucy50eXBlJztcblxuZXhwb3J0IHR5cGUgT0Zvcm1QZXJtaXNzaW9ucyA9IHtcbiAgYXR0cjogc3RyaW5nO1xuICBzZWxlY3Rvcjogc3RyaW5nO1xuICBjb21wb25lbnRzPzogT1Blcm1pc3Npb25zW107XG4gIGFjdGlvbnM/OiBPUGVybWlzc2lvbnNbXTtcbn07XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1mb3JtLXBlcm1pc3Npb25zLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdHlwZXMvby1mb3JtLXBlcm1pc3Npb25zLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9TZXJ2aWNlQmFzZVBlcm1pc3Npb25zIH0gZnJvbSAnLi9vLXNlcnZpY2UtYmFzZS1wZXJtaXNzaW9ucy50eXBlJztcblxuZXhwb3J0IHR5cGUgT0Zvcm1QZXJtaXNzaW9ucyA9IE9TZXJ2aWNlQmFzZVBlcm1pc3Npb25zO1xuIl19
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from "@angular/core";
2
+ export const O_GLOBAL_CONFIG = new InjectionToken('o-global-config');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1nbG9iYWwtY29uZmlnLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdHlwZXMvby1nbG9iYWwtY29uZmlnLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0vQyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxjQUFjLENBQWdCLGlCQUFpQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCB0eXBlIE9HbG9iYWxDb25maWcgPSB7XG4gIHN0b3JlU3RhdGU6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgT19HTE9CQUxfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPE9HbG9iYWxDb25maWc+KCdvLWdsb2JhbC1jb25maWcnKTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1ncmlkLXBlcm1pc3Npb25zLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdHlwZXMvby1ncmlkLXBlcm1pc3Npb25zLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9TZXJ2aWNlQmFzZVBlcm1pc3Npb25zIH0gZnJvbSAnLi9vLXNlcnZpY2UtYmFzZS1wZXJtaXNzaW9ucy50eXBlJztcblxuZXhwb3J0IHR5cGUgT0dyaWRQZXJtaXNzaW9ucyA9IE9TZXJ2aWNlQmFzZVBlcm1pc3Npb25zO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1saXN0LXBlcm1pc3Npb25zLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdHlwZXMvby1saXN0LXBlcm1pc3Npb25zLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9TZXJ2aWNlQmFzZVBlcm1pc3Npb25zIH0gZnJvbSAnLi9vLXNlcnZpY2UtYmFzZS1wZXJtaXNzaW9ucy50eXBlJztcblxuZXhwb3J0IHR5cGUgT0xpc3RQZXJtaXNzaW9ucyA9IE9TZXJ2aWNlQmFzZVBlcm1pc3Npb25zO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1zZXJ2aWNlLWJhc2UtcGVybWlzc2lvbnMudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi90eXBlcy9vLXNlcnZpY2UtYmFzZS1wZXJtaXNzaW9ucy50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPUGVybWlzc2lvbnMgfSBmcm9tICcuL28tcGVybWlzc2lvbnMudHlwZSc7XG5cbmV4cG9ydCB0eXBlIE9TZXJ2aWNlQmFzZVBlcm1pc3Npb25zID0ge1xuICBhdHRyOiBzdHJpbmc7XG4gIHNlbGVjdG9yOiBzdHJpbmc7XG4gIGNvbXBvbmVudHM/OiBPUGVybWlzc2lvbnNbXTtcbiAgYWN0aW9ucz86IE9QZXJtaXNzaW9uc1tdO1xufTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10cmVlLXBlcm1pc3Npb25zLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdHlwZXMvby10cmVlLXBlcm1pc3Npb25zLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9TZXJ2aWNlQmFzZVBlcm1pc3Npb25zIH0gZnJvbSAnLi9vLXNlcnZpY2UtYmFzZS1wZXJtaXNzaW9ucy50eXBlJztcblxuZXhwb3J0IHR5cGUgT1RyZWVQZXJtaXNzaW9ucyA9IE9TZXJ2aWNlQmFzZVBlcm1pc3Npb25zO1xuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1nbG9iYWwtY29uZmlnLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdHlwZXMvdGFibGUvby10YWJsZS1nbG9iYWwtY29uZmlnLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIE9UYWJsZUdsb2JhbENvbmZpZyA9IHtcbiAgYXV0b0FkanVzdDogYm9vbGVhbjtcbiAgYXV0b0FsaWduVGl0bGVzOiBib29sZWFuO1xufTtcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1nbG9iYWwtY29uZmlnLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdHlwZXMvdGFibGUvby10YWJsZS1nbG9iYWwtY29uZmlnLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9Sb3dIZWlnaHQsIE9UYWJsZURldGFpbE1vZGUsIE9UYWJsZUVkaXRpb25Nb2RlIH0gZnJvbSAnLi8uLi8uLi91dGlsL2NvZGVzJztcblxuZXhwb3J0IHR5cGUgT1RhYmxlR2xvYmFsQ29uZmlnID0ge1xuICBhdXRvQWRqdXN0OiBib29sZWFuO1xuICBhdXRvQWxpZ25UaXRsZXM6IGJvb2xlYW47XG4gIGZpbHRlckNvbHVtbkFjdGl2ZUJ5RGVmYXVsdDogYm9vbGVhbjtcbiAgZWRpdGlvbk1vZGU6IE9UYWJsZUVkaXRpb25Nb2RlO1xuICBkZXRhaWxNb2RlOiBPVGFibGVEZXRhaWxNb2RlO1xuICByb3dIZWlnaHQ6IE9Sb3dIZWlnaHRcbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1wZXJtaXNzaW9ucy50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3R5cGVzL3RhYmxlL28tdGFibGUtcGVybWlzc2lvbnMudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT1Blcm1pc3Npb25zIH0gZnJvbSAnLi4vby1wZXJtaXNzaW9ucy50eXBlJztcbmltcG9ydCB7IE9UYWJsZU1lbnVQZXJtaXNzaW9ucyB9IGZyb20gJy4vby10YWJsZS1tZW51LXBlcm1pc3Npb25zLnR5cGUnO1xuXG5leHBvcnQgdHlwZSBPVGFibGVQZXJtaXNzaW9ucyA9IHtcbiAgYXR0cjogc3RyaW5nO1xuICBzZWxlY3Rvcjogc3RyaW5nO1xuICBtZW51PzogT1RhYmxlTWVudVBlcm1pc3Npb25zO1xuICBjb2x1bW5zPzogT1Blcm1pc3Npb25zW107XG4gIGFjdGlvbnM/OiBPUGVybWlzc2lvbnNbXTtcbiAgY29udGV4dE1lbnU/OiBPUGVybWlzc2lvbnNbXTtcbn07XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1wZXJtaXNzaW9ucy50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3R5cGVzL3RhYmxlL28tdGFibGUtcGVybWlzc2lvbnMudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT1Blcm1pc3Npb25zIH0gZnJvbSAnLi4vby1wZXJtaXNzaW9ucy50eXBlJztcbmltcG9ydCB7IE9TZXJ2aWNlQmFzZVBlcm1pc3Npb25zIH0gZnJvbSAnLi4vby1zZXJ2aWNlLWJhc2UtcGVybWlzc2lvbnMudHlwZSc7XG5pbXBvcnQgeyBPVGFibGVNZW51UGVybWlzc2lvbnMgfSBmcm9tICcuL28tdGFibGUtbWVudS1wZXJtaXNzaW9ucy50eXBlJztcblxuZXhwb3J0IHR5cGUgT1RhYmxlUGVybWlzc2lvbnMgPSBPU2VydmljZUJhc2VQZXJtaXNzaW9ucyAmIHtcbiAgbWVudT86IE9UYWJsZU1lbnVQZXJtaXNzaW9ucztcbiAgY29sdW1ucz86IE9QZXJtaXNzaW9uc1tdO1xuICBjb250ZXh0TWVudT86IE9QZXJtaXNzaW9uc1tdO1xufTsiXX0=
@@ -24,6 +24,12 @@ export class Codes {
24
24
  }
25
25
  return !((e.keyCode < 48 || e.keyCode > 57) && (e.keyCode < 96 || e.keyCode > 105));
26
26
  }
27
+ static isValidEditionMode(editionMode) {
28
+ return Codes.AVAILABLE_MODES.indexOf(editionMode) !== -1;
29
+ }
30
+ static isValidDetailMode(detailMode) {
31
+ return Codes.AVAILABLE_DETAIL_MODES.indexOf(detailMode) !== -1;
32
+ }
27
33
  }
28
34
  Codes.PAGINATED_QUERY_METHOD = 'advancedQuery';
29
35
  Codes.DELETE_METHOD = 'delete';
@@ -39,9 +45,11 @@ Codes.AVAILABLE_ROW_HEIGHTS_VALUES = ['small', 'medium', 'large'];
39
45
  Codes.DETAIL_MODE_NONE = 'none';
40
46
  Codes.DETAIL_MODE_CLICK = 'click';
41
47
  Codes.DETAIL_MODE_DBLCLICK_VALUES = ['dblclick', 'doubleclick'];
48
+ Codes.AVAILABLE_DETAIL_MODES = [Codes.DETAIL_MODE_NONE, Codes.DETAIL_MODE_CLICK, ...Codes.DETAIL_MODE_DBLCLICK_VALUES];
42
49
  Codes.EDITION_MODE_NONE = 'none';
43
50
  Codes.EDITION_MODE_CLICK = 'click';
44
51
  Codes.EDITION_MODE_DBLCLICK_VALUES = ['dblclick', 'doubleclick'];
52
+ Codes.AVAILABLE_MODES = [Codes.EDITION_MODE_NONE, Codes.EDITION_MODE_CLICK, ...Codes.EDITION_MODE_DBLCLICK_VALUES];
45
53
  Codes.SELECTION_MODE_NONE = 'none';
46
54
  Codes.SELECTION_MODE_SINGLE = 'single';
47
55
  Codes.SELECTION_MODE_MULTIPLE = 'multiple';
@@ -115,4 +123,4 @@ Codes.VISIBLE_EXPORT_BUTTONS = ['xlsx', 'pdf', 'html'];
115
123
  Codes.VISIBLE_EXPORT_BUTTONS3X = ['xlsx', 'pdf', 'csv'];
116
124
  Codes.DEFAULT_CHANGE_EVENT = 'onValueChange';
117
125
  Codes.TYPES_DATE_GROUPS = ["YEAR", "MONTH", "YEAR_MONTH", "YEAR_MONTH_DAY"];
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdXRpbC9jb2Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sS0FBSztJQTBIaEIsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQWE7UUFDcEMsT0FBTyxLQUFLLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBYTtRQUNuQyxPQUFPLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxpQkFBaUI7UUFDdEIsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2YsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDOUIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFjO1FBQ2hDLE9BQU8sQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBRUQsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQWdCO1FBRXhDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFL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LFFBQVEsQ0FBQztBQUNqQyxzQkFBZ0IsR0FBVyxXQUFXLENBQUM7QUFDdkMsbUJBQWEsR0FBVyxRQUFRLENBQUM7QUFDakMsNkJBQXVCLEdBQVcsa0JBQWtCLENBQUM7QUFHckQsOEJBQXdCLEdBQUcsRUFBRSxDQUFDO0FBQzlCLHdCQUFrQixHQUFHLFFBQVEsQ0FBQztBQUM5Qiw0QkFBc0IsR0FBRyxZQUFZLENBQUM7QUFDdEMsOEJBQXdCLEdBQUcsYUFBYSxDQUFDO0FBQ3pDLHlCQUFtQixHQUFHLEVBQUUsQ0FBQztBQUV6Qiw2QkFBdUIsR0FBRyxFQUFFLENBQUM7QUFDN0IsNkJBQXVCLEdBQUcsRUFBRSxDQUFDO0FBRTdCLHFCQUFlLEdBQXFCLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzFELG1CQUFhLEdBQW1CLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUV6RCxvQkFBYyxHQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3ZDLGtCQUFZLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRXhDLDZCQUF1QixHQUFtQixTQUFTLENBQUM7QUFDcEQsNEJBQXNCLEdBQW1CLFFBQVEsQ0FBQztBQUNsRCw0QkFBc0IsR0FBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDM0QsOEJBQXdCLEdBQWEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBRTVELDBCQUFvQixHQUFrQixlQUFlLENBQUM7QUFDdEQsdUJBQWlCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgT0FwcExheW91dE1vZGUgPSAnbW9iaWxlJyB8ICdkZXNrdG9wJztcbmV4cG9ydCB0eXBlIE9TaWRlbmF2TW9kZSA9ICdvdmVyJyB8ICdwdXNoJyB8ICdzaWRlJztcbmV4cG9ydCB0eXBlIENIQU5HRV9FVkVOVFMgPSAnb25WYWx1ZUNoYW5nZScgfCAnb25DaGFuZ2UnO1xuXG5leHBvcnQgY2xhc3MgQ29kZXMge1xuXG4gIHB1YmxpYyBzdGF0aWMgUEFHSU5BVEVEX1FVRVJZX01FVEhPRCA9ICdhZHZhbmNlZFF1ZXJ5JztcbiAgcHVibGljIHN0YXRpYyBERUxFVEVfTUVUSE9EID0gJ2RlbGV0ZSc7XG4gIHB1YmxpYyBzdGF0aWMgSU5TRVJUX01FVEhPRCA9ICdpbnNlcnQnO1xuICBwdWJsaWMgc3RhdGljIFVQREFURV9NRVRIT0QgPSAndXBkYXRlJztcbiAgcHVibGljIHN0YXRpYyBRVUVSWV9NRVRIT0QgPSAncXVlcnknO1xuXG4gIHB1YmxpYyBzdGF0aWMgREVGQVVMVF9RVUVSWV9ST1dTID0gMTA7XG4gIHB1YmxpYyBzdGF0aWMgUEFHRV9TSVpFX09QVElPTlMgPSBbMTAsIDI1LCA1MCwgMTAwXTtcblxuICBwdWJsaWMgc3RhdGljIERFVEFJTF9JQ09OID0gJ2NoZXZyb25fcmlnaHQnO1xuICBwdWJsaWMgc3RhdGljIEVESVRfSUNPTiA9ICdtb2RlX2VkaXQnO1xuXG4gIHB1YmxpYyBzdGF0aWMgREVGQVVMVF9ST1dfSEVJR0hUID0gJ21lZGl1bSc7XG4gIHB1YmxpYyBzdGF0aWMgQVZBSUxBQkxFX1JPV19IRUlHSFRTX1ZBTFVFUyA9IFsnc21hbGwnLCAnbWVkaXVtJywgJ2xhcmdlJ107XG5cbiAgcHVibGljIHN0YXRpYyBERVRBSUxfTU9ERV9OT05FID0gJ25vbmUnO1xuICBwdWJsaWMgc3RhdGljIERFVEFJTF9NT0RFX0NMSUNLID0gJ2NsaWNrJztcbiAgcHVibGljIHN0YXRpYyBERVRBSUxfTU9ERV9EQkxDTElDS19WQUxVRVMgPSBbJ2RibGNsaWNrJywgJ2RvdWJsZWNsaWNrJ107XG5cbiAgcHVibGljIHN0YXRpYyBFRElUSU9OX01PREVfTk9ORSA9ICdub25lJztcbiAgcHVibGljIHN0YXRpYyBFRElUSU9OX01PREVfQ0xJQ0sgPSAnY2xpY2snO1xuICBwdWJsaWMgc3RhdGljIEVESVRJT05fTU9ERV9EQkxDTElDS19WQUxVRVMgPSBbJ2RibGNsaWNrJywgJ2RvdWJsZWNsaWNrJ107XG5cbiAgcHVibGljIHN0YXRpYyBTRUxFQ1RJT05fTU9ERV9OT05FID0gJ25vbmUnO1xuICBwdWJsaWMgc3RhdGljIFNFTEVDVElPTl9NT0RFX1NJTkdMRSA9ICdzaW5nbGUnO1xuICBwdWJsaWMgc3RhdGljIFNFTEVDVElPTl9NT0RFX01VTFRJUExFID0gJ211bHRpcGxlJztcblxuICBwdWJsaWMgc3RhdGljIEVYUE9SVF9NT0RFX1ZJU0lCTEUgPSAndmlzaWJsZSc7XG4gIHB1YmxpYyBzdGF0aWMgRVhQT1JUX01PREVfTE9DQUwgPSAnbG9jYWwnO1xuICBwdWJsaWMgc3RhdGljIEVYUE9SVF9NT0RFX0FMTCA9ICdhbGwnO1xuXG4gIHB1YmxpYyBzdGF0aWMgSFlQSEVOX1NFUEFSQVRPUiA9ICctJztcbiAgcHVibGljIHN0YXRpYyBTUEFDRV9TRVBBUkFUT1IgPSAnICc7XG4gIHB1YmxpYyBzdGF0aWMgQ09MVU1OU19BTElBU19TRVBBUkFUT1IgPSAnOic7XG4gIHB1YmxpYyBzdGF0aWMgQVJSQVlfSU5QVVRfU0VQQVJBVE9SID0gJzsnO1xuICBwdWJsaWMgc3RhdGljIFRZUEVfU0VQQVJBVE9SID0gJzonO1xuICBwdWJsaWMgc3RhdGljIFZBTFVFU19TRVBBUkFUT1IgPSAnPSc7XG4gIHB1YmxpYyBzdGF0aWMgQVNDX1NPUlQgPSAnYXNjJztcbiAgcHVibGljIHN0YXRpYyBERVNDX1NPUlQgPSAnZGVzYyc7XG5cbiAgcHVibGljIHN0YXRpYyBUWVBFX0lOVCA9ICdpbnQnO1xuXG4gIHB1YmxpYyBzdGF0aWMgUk9VVEVfU0VQQVJBVE9SID0gJy8nO1xuICBwdWJsaWMgc3RhdGljIFJPVVRFX1ZBUklBQkxFX0NIQVIgPSAnOic7XG5cbiAgcHVibGljIHN0YXRpYyBQQVJFTlRfS0VZU19LRVkgPSAncGsnO1xuICBwdWJsaWMgc3RhdGljIFFVRVJZX1BBUkFNUyA9ICdxdWVyeVBhcmFtcyc7XG4gIHB1YmxpYyBzdGF0aWMgSVNfREVUQUlMID0gJ2lzZGV0YWlsJztcblxuICBwdWJsaWMgc3RhdGljIExBTkdVQUdFX0tFWSA9ICdsYW5nJztcbiAgcHVibGljIHN0YXRpYyBTRVNTSU9OX0tFWSA9ICdzZXNzaW9uJztcbiAgcHVibGljIHN0YXRpYyBTRVNTSU9OX0VYUElSRURfS0VZID0gJ3Nlc3Npb24tZXhwaXJlZCc7XG5cbiAgcHVibGljIHN0YXRpYyBMT0dJTl9ST1VURSA9ICcvbG9naW4nO1xuICBwdWJsaWMgc3RhdGljIEZPUkJJRERFTl9ST1VURSA9ICc0MDMnO1xuICBwdWJsaWMgc3RhdGljIERFRkFVTFRfRURJVF9ST1VURSA9ICdlZGl0JztcbiAgcHVibGljIHN0YXRpYyBERUZBVUxUX0RFVEFJTF9ST1VURSA9IHVuZGVmaW5lZDtcbiAgcHVibGljIHN0YXRpYyBERUZBVUxUX0lOU0VSVF9ST1VURSA9ICduZXcnO1xuXG4gIHB1YmxpYyBzdGF0aWMgSUdOT1JFX0NBTl9ERUFDVElWQVRFID0gJ2lnbm9yZV9jYW5fZGVhY3RpdmF0ZSc7XG4gIHB1YmxpYyBzdGF0aWMgSU5TRVJUSU9OX01PREUgPSAnaW5zZXJ0aW9uTW9kZSc7XG5cbiAgcHVibGljIHN0YXRpYyBPTlRJTUlaRV9TVUNDRVNTRlVMX0NPREUgPSAwO1xuICBwdWJsaWMgc3RhdGljIE9OVElNSVpFX0ZBSUxFRF9DT0RFID0gMTtcbiAgcHVibGljIHN0YXRpYyBPTlRJTUlaRV9VTkFVVEhPUklaRURfQ09ERSA9IDM7XG5cbiAgcHVibGljIHN0YXRpYyBJQ09OX1BPU0lUSU9OX0xFRlQgPSAnbGVmdCc7XG4gIHB1YmxpYyBzdGF0aWMgSUNPTl9QT1NJVElPTl9SSUdIVCA9ICdyaWdodCc7XG5cbiAgcHVibGljIHN0YXRpYyBDT0xVTU5fVElUTEVfQUxJR05fU1RBUlQgPSAnc3RhcnQnO1xuICBwdWJsaWMgc3RhdGljIENPTFVNTl9USVRMRV9BTElHTl9DRU5URVIgPSAnY2VudGVyJztcbiAgcHVibGljIHN0YXRpYyBDT0xVTU5fVElUTEVfQUxJR05fRU5EID0gJ2VuZCc7XG4gIHB1YmxpYyBzdGF0aWMgQ09MVU1OX1RJVExFX0FMSUdOX0FVVE8gPSAnYXV0byc7XG4gIHB1YmxpYyBzdGF0aWMgQVZBSUxBQkxFX0NPTFVNTl9USVRMRV9BTElHTlMgPVxuICAgIFtDb2Rlcy5DT0xVTU5fVElUTEVfQUxJR05fU1RBUlQsIENvZGVzLkNPTFVNTl9USVRMRV9BTElHTl9DRU5URVIsIENvZGVzLkNPTFVNTl9USVRMRV9BTElHTl9FTkQsIENvZGVzLkNPTFVNTl9USVRMRV9BTElHTl9BVVRPXTtcblxuICBwdWJsaWMgc3RhdGljIE9fTUFUX0VSUk9SX1NUQU5EQVJEID0gJ3N0YW5kYXJkJztcbiAgcHVibGljIHN0YXRpYyBPX01BVF9FUlJPUl9MSVRFID0gJ2xpdGUnO1xuXG4gIHB1YmxpYyBzdGF0aWMgT19JTlBVVFNfT1BUSU9OU19DT0xPUl9BQ0NFTlQgPSAnYWNjZW50JztcbiAgcHVibGljIHN0YXRpYyBIb3VyRm9ybWF0ID0ge1xuICAgIFRXRUxWRTogJ2hoOm1tIGEnLFxuICAgIFRXRU5UWV9GT1VSOiAnSEg6bW0gYScsXG4gIH07XG5cbiAgLy8gT0Zvcm1Db21wb25lbnRcbiAgcHVibGljIHN0YXRpYyBDTE9TRV9ERVRBSUxfQUNUSU9OOiBzdHJpbmcgPSAnQ0xPU0UnO1xuICBwdWJsaWMgc3RhdGljIEJBQ0tfQUNUSU9OOiBzdHJpbmcgPSAnQkFDSyc7XG4gIHB1YmxpYyBzdGF0aWMgUkVMT0FEX0FDVElPTjogc3RyaW5nID0gJ1JFTE9BRCc7XG4gIHB1YmxpYyBzdGF0aWMgR09fRURJVF9BQ1RJT046IHN0cmluZyA9ICdHT19FRElUJztcbiAgcHVibGljIHN0YXRpYyBFRElUX0FDVElPTjogc3RyaW5nID0gJ0VESVQnO1xuICBwdWJsaWMgc3RhdGljIElOU0VSVF9BQ1RJT046IHN0cmluZyA9ICdJTlNFUlQnO1xuICBwdWJsaWMgc3RhdGljIEdPX0lOU0VSVF9BQ1RJT046IHN0cmluZyA9ICdHT19JTlNFUlQnO1xuICBwdWJsaWMgc3RhdGljIERFTEVURV9BQ1RJT046IHN0cmluZyA9ICdERUxFVEUnO1xuICBwdWJsaWMgc3RhdGljIFVORE9fTEFTVF9DSEFOR0VfQUNUSU9OOiBzdHJpbmcgPSAnVU5ET19MQVNUX0NIQU5HRSc7XG5cbiAgLy8gT1RhYmxlQ29tcG9uZW50XG4gIHB1YmxpYyBzdGF0aWMgREVGQVVMVF9DT0xVTU5fTUlOX1dJRFRIID0gODA7XG4gIHB1YmxpYyBzdGF0aWMgTkFNRV9DT0xVTU5fU0VMRUNUID0gJ3NlbGVjdCc7XG4gIHB1YmxpYyBzdGF0aWMgTkFNRV9DT0xVTU5fRVhQQU5EQUJMRSA9ICdleHBhbmRhYmxlJztcbiAgcHVibGljIHN0YXRpYyBTVUZGSVhfQ09MVU1OX0lOU0VSVEFCTEUgPSAnX2luc2VydGFibGUnO1xuICBwdWJsaWMgc3RhdGljIExJTUlUX1NDUk9MTFZJUlRVQUwgPSA1MDtcblxuICBwdWJsaWMgc3RhdGljIFRXRU5UWV9GT1VSX0hPVVJfRk9STUFUID0gMjQ7XG4gIHB1YmxpYyBzdGF0aWMgVFdFTFZFX0ZPVVJfSE9VUl9GT1JNQVQgPSAxMjtcblxuICBwdWJsaWMgc3RhdGljIE9BcHBMYXlvdXRNb2RlczogT0FwcExheW91dE1vZGVbXSA9IFsnbW9iaWxlJywgJ2Rlc2t0b3AnXTtcbiAgcHVibGljIHN0YXRpYyBPU2lkZW5hdk1vZGVzOiBPU2lkZW5hdk1vZGVbXSA9IFsnb3ZlcicsICdwdXNoJywgJ3NpZGUnXTtcblxuICBwdWJsaWMgc3RhdGljIE9BcHBMYXlvdXRNb2RlID0gWydtb2JpbGUnLCAnZGVza3RvcCddO1xuICBwdWJsaWMgc3RhdGljIE9TaWRlbmF2TW9kZSA9IFsnb3ZlcicsICdwdXNoJywgJ3NpZGUnXTtcblxuICBwdWJsaWMgc3RhdGljIEFQUF9MQVlPVVRfTU9ERV9ERVNLVE9QOiBPQXBwTGF5b3V0TW9kZSA9ICdkZXNrdG9wJztcbiAgcHVibGljIHN0YXRpYyBBUFBfTEFZT1VUX01PREVfTU9CSUxFOiBPQXBwTGF5b3V0TW9kZSA9ICdtb2JpbGUnO1xuICBwdWJsaWMgc3RhdGljIFZJU0lCTEVfRVhQT1JUX0JVVFRPTlM6IHN0cmluZ1tdID0gWyd4bHN4JywgJ3BkZicsICdodG1sJ107XG4gIHB1YmxpYyBzdGF0aWMgVklTSUJMRV9FWFBPUlRfQlVUVE9OUzNYOiBzdHJpbmdbXSA9IFsneGxzeCcsICdwZGYnLCAnY3N2J107XG5cbiAgcHVibGljIHN0YXRpYyBERUZBVUxUX0NIQU5HRV9FVkVOVDogQ0hBTkdFX0VWRU5UUyA9ICdvblZhbHVlQ2hhbmdlJztcbiAgcHVibGljIHN0YXRpYyBUWVBFU19EQVRFX0dST1VQUyA9IFtcIllFQVJcIiwgXCJNT05USFwiLCBcIllFQVJfTU9OVEhcIiwgXCJZRUFSX01PTlRIX0RBWVwiXTtcblxuICBzdGF0aWMgaXNEb3VibGVDbGlja01vZGUodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBDb2Rlcy5ERVRBSUxfTU9ERV9EQkxDTElDS19WQUxVRVMuaW5kZXhPZih2YWx1ZSkgIT09IC0xO1xuICB9XG5cbiAgc3RhdGljIGlzVmFsaWRSb3dIZWlnaHQodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBDb2Rlcy5BVkFJTEFCTEVfUk9XX0hFSUdIVFNfVkFMVUVTLmluZGV4T2YodmFsdWUpICE9PSAtMTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRJc0RldGFpbE9iamVjdCgpOiBhbnkge1xuICAgIGNvbnN0IHJlcyA9IHt9O1xuICAgIHJlc1tDb2Rlcy5JU19ERVRBSUxdID0gJ3RydWUnO1xuICAgIHJldHVybiByZXM7XG4gIH1cblxuICBzdGF0aWMgZm9ybWF0U3RyaW5nKGZvcm1hdDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIChmb3JtYXQgPT09IENvZGVzLlRXRU5UWV9GT1VSX0hPVVJfRk9STUFUID8gQ29kZXMuSG91ckZvcm1hdC5UV0VOVFlfRk9VUiA6IENvZGVzLkhvdXJGb3JtYXQuVFdFTFZFKTtcbiAgfVxuXG4gIHN0YXRpYyBpc0hvdXJJbnB1dEFsbG93ZWQoZTogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICAgIC8vIEFsbG93OiBiYWNrc3BhY2UsIGRlbGV0ZSwgdGFiLCBlc2NhcGUsIGVudGVyXG4gICAgaWYgKFs0NiwgOCwgOSwgMjcsIDEzXS5zb21lKG4gPT4gbiA9PT0gZS5rZXlDb2RlKSB8fFxuICAgICAgKGUua2V5ID09PSAnOicpIHx8XG4gICAgICAvLyBBbGxvdzogQ3RybC9jbWQrQVxuICAgICAgKGUua2V5Q29kZSA9PT0gNjUgJiYgKGUuY3RybEtleSA9PT0gdHJ1ZSB8fCBlLm1ldGFLZXkgPT09IHRydWUpKSB8fFxuICAgICAgLy8gQWxsb3c6IEN0cmwvY21kK0NcbiAgICAgIChlLmtleUNvZGUgPT09IDY3ICYmIChlLmN0cmxLZXkgPT09IHRydWUgfHwgZS5tZXRhS2V5ID09PSB0cnVlKSkgfHxcbiAgICAgIC8vIEFsbG93OiBDdHJsL2NtZCtYXG4gICAgICAoZS5rZXlDb2RlID09PSA4OCAmJiAoZS5jdHJsS2V5ID09PSB0cnVlIHx8IGUubWV0YUtleSA9PT0gdHJ1ZSkpIHx8XG4gICAgICAvLyBBbGxvdzogaG9tZSwgZW5kLCBsZWZ0LCByaWdodCwgdXAsIGRvd25cbiAgICAgIChlLmtleUNvZGUgPj0gMzUgJiYgZS5rZXlDb2RlIDw9IDQwKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiAhKChlLmtleUNvZGUgPCA0OCB8fCBlLmtleUNvZGUgPiA1NykgJiYgKGUua2V5Q29kZSA8IDk2IHx8IGUua2V5Q29kZSA+IDEwNSkpO1xuICB9XG59XG4iXX0=
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvdXRpbC9jb2Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxNQUFNLE9BQU8sS0FBSztJQTZIaEIsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQWE7UUFDcEMsT0FBTyxLQUFLLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBYTtRQUNuQyxPQUFPLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxpQkFBaUI7UUFDdEIsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2YsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDOUIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFjO1FBQ2hDLE9BQU8sQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBRUQsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQWdCO1FBRXhDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFL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LEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRXhDLDZCQUF1QixHQUFtQixTQUFTLENBQUM7QUFDcEQsNEJBQXNCLEdBQW1CLFFBQVEsQ0FBQztBQUNsRCw0QkFBc0IsR0FBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDM0QsOEJBQXdCLEdBQWEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBRTVELDBCQUFvQixHQUFrQixlQUFlLENBQUM7QUFDdEQsdUJBQWlCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgT0FwcExheW91dE1vZGUgPSAnbW9iaWxlJyB8ICdkZXNrdG9wJztcbmV4cG9ydCB0eXBlIE9TaWRlbmF2TW9kZSA9ICdvdmVyJyB8ICdwdXNoJyB8ICdzaWRlJztcbmV4cG9ydCB0eXBlIENIQU5HRV9FVkVOVFMgPSAnb25WYWx1ZUNoYW5nZScgfCAnb25DaGFuZ2UnO1xuXG5leHBvcnQgdHlwZSBPUm93SGVpZ2h0ID0gJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJztcbmV4cG9ydCB0eXBlIE9UYWJsZUVkaXRpb25Nb2RlID0gJ25vbmUnIHwgJ2NsaWNrJyB8ICdkYmxjbGljaycgfCAnZG91YmxlY2xpY2snO1xuZXhwb3J0IHR5cGUgT1RhYmxlRGV0YWlsTW9kZSA9ICdub25lJyB8ICdjbGljaycgfCAnZGJsY2xpY2snIHwgJ2RvdWJsZWNsaWNrJztcbmV4cG9ydCBjbGFzcyBDb2RlcyB7XG5cbiAgcHVibGljIHN0YXRpYyBQQUdJTkFURURfUVVFUllfTUVUSE9EID0gJ2FkdmFuY2VkUXVlcnknO1xuICBwdWJsaWMgc3RhdGljIERFTEVURV9NRVRIT0QgPSAnZGVsZXRlJztcbiAgcHVibGljIHN0YXRpYyBJTlNFUlRfTUVUSE9EID0gJ2luc2VydCc7XG4gIHB1YmxpYyBzdGF0aWMgVVBEQVRFX01FVEhPRCA9ICd1cGRhdGUnO1xuICBwdWJsaWMgc3RhdGljIFFVRVJZX01FVEhPRCA9ICdxdWVyeSc7XG5cbiAgcHVibGljIHN0YXRpYyBERUZBVUxUX1FVRVJZX1JPV1MgPSAxMDtcbiAgcHVibGljIHN0YXRpYyBQQUdFX1NJWkVfT1BUSU9OUyA9IFsxMCwgMjUsIDUwLCAxMDBdO1xuXG4gIHB1YmxpYyBzdGF0aWMgREVUQUlMX0lDT04gPSAnY2hldnJvbl9yaWdodCc7XG4gIHB1YmxpYyBzdGF0aWMgRURJVF9JQ09OID0gJ21vZGVfZWRpdCc7XG5cbiAgcHVibGljIHN0YXRpYyBERUZBVUxUX1JPV19IRUlHSFQgPSAnbWVkaXVtJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVkFJTEFCTEVfUk9XX0hFSUdIVFNfVkFMVUVTID0gWydzbWFsbCcsICdtZWRpdW0nLCAnbGFyZ2UnXTtcblxuICBwdWJsaWMgc3RhdGljIERFVEFJTF9NT0RFX05PTkUgPSAnbm9uZSc7XG4gIHB1YmxpYyBzdGF0aWMgREVUQUlMX01PREVfQ0xJQ0sgPSAnY2xpY2snO1xuICBwdWJsaWMgc3RhdGljIERFVEFJTF9NT0RFX0RCTENMSUNLX1ZBTFVFUyA9IFsnZGJsY2xpY2snLCAnZG91YmxlY2xpY2snXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVkFJTEFCTEVfREVUQUlMX01PREVTID0gW0NvZGVzLkRFVEFJTF9NT0RFX05PTkUsIENvZGVzLkRFVEFJTF9NT0RFX0NMSUNLLCAuLi5Db2Rlcy5ERVRBSUxfTU9ERV9EQkxDTElDS19WQUxVRVNdO1xuXG4gIHB1YmxpYyBzdGF0aWMgRURJVElPTl9NT0RFX05PTkUgPSAnbm9uZSc7XG4gIHB1YmxpYyBzdGF0aWMgRURJVElPTl9NT0RFX0NMSUNLID0gJ2NsaWNrJztcbiAgcHVibGljIHN0YXRpYyBFRElUSU9OX01PREVfREJMQ0xJQ0tfVkFMVUVTID0gWydkYmxjbGljaycsICdkb3VibGVjbGljayddO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFWQUlMQUJMRV9NT0RFUyA9IFtDb2Rlcy5FRElUSU9OX01PREVfTk9ORSwgQ29kZXMuRURJVElPTl9NT0RFX0NMSUNLLCAuLi5Db2Rlcy5FRElUSU9OX01PREVfREJMQ0xJQ0tfVkFMVUVTXTtcblxuICBwdWJsaWMgc3RhdGljIFNFTEVDVElPTl9NT0RFX05PTkUgPSAnbm9uZSc7XG4gIHB1YmxpYyBzdGF0aWMgU0VMRUNUSU9OX01PREVfU0lOR0xFID0gJ3NpbmdsZSc7XG4gIHB1YmxpYyBzdGF0aWMgU0VMRUNUSU9OX01PREVfTVVMVElQTEUgPSAnbXVsdGlwbGUnO1xuXG4gIHB1YmxpYyBzdGF0aWMgRVhQT1JUX01PREVfVklTSUJMRSA9ICd2aXNpYmxlJztcbiAgcHVibGljIHN0YXRpYyBFWFBPUlRfTU9ERV9MT0NBTCA9ICdsb2NhbCc7XG4gIHB1YmxpYyBzdGF0aWMgRVhQT1JUX01PREVfQUxMID0gJ2FsbCc7XG5cbiAgcHVibGljIHN0YXRpYyBIWVBIRU5fU0VQQVJBVE9SID0gJy0nO1xuICBwdWJsaWMgc3RhdGljIFNQQUNFX1NFUEFSQVRPUiA9ICcgJztcbiAgcHVibGljIHN0YXRpYyBDT0xVTU5TX0FMSUFTX1NFUEFSQVRPUiA9ICc6JztcbiAgcHVibGljIHN0YXRpYyBBUlJBWV9JTlBVVF9TRVBBUkFUT1IgPSAnOyc7XG4gIHB1YmxpYyBzdGF0aWMgVFlQRV9TRVBBUkFUT1IgPSAnOic7XG4gIHB1YmxpYyBzdGF0aWMgVkFMVUVTX1NFUEFSQVRPUiA9ICc9JztcbiAgcHVibGljIHN0YXRpYyBBU0NfU09SVCA9ICdhc2MnO1xuICBwdWJsaWMgc3RhdGljIERFU0NfU09SVCA9ICdkZXNjJztcblxuICBwdWJsaWMgc3RhdGljIFRZUEVfSU5UID0gJ2ludCc7XG5cbiAgcHVibGljIHN0YXRpYyBST1VURV9TRVBBUkFUT1IgPSAnLyc7XG4gIHB1YmxpYyBzdGF0aWMgUk9VVEVfVkFSSUFCTEVfQ0hBUiA9ICc6JztcblxuICBwdWJsaWMgc3RhdGljIFBBUkVOVF9LRVlTX0tFWSA9ICdwayc7XG4gIHB1YmxpYyBzdGF0aWMgUVVFUllfUEFSQU1TID0gJ3F1ZXJ5UGFyYW1zJztcbiAgcHVibGljIHN0YXRpYyBJU19ERVRBSUwgPSAnaXNkZXRhaWwnO1xuXG4gIHB1YmxpYyBzdGF0aWMgTEFOR1VBR0VfS0VZID0gJ2xhbmcnO1xuICBwdWJsaWMgc3RhdGljIFNFU1NJT05fS0VZID0gJ3Nlc3Npb24nO1xuICBwdWJsaWMgc3RhdGljIFNFU1NJT05fRVhQSVJFRF9LRVkgPSAnc2Vzc2lvbi1leHBpcmVkJztcblxuICBwdWJsaWMgc3RhdGljIExPR0lOX1JPVVRFID0gJy9sb2dpbic7XG4gIHB1YmxpYyBzdGF0aWMgRk9SQklEREVOX1JPVVRFID0gJzQwMyc7XG4gIHB1YmxpYyBzdGF0aWMgREVGQVVMVF9FRElUX1JPVVRFID0gJ2VkaXQnO1xuICBwdWJsaWMgc3RhdGljIERFRkFVTFRfREVUQUlMX1JPVVRFID0gdW5kZWZpbmVkO1xuICBwdWJsaWMgc3RhdGljIERFRkFVTFRfSU5TRVJUX1JPVVRFID0gJ25ldyc7XG5cbiAgcHVibGljIHN0YXRpYyBJR05PUkVfQ0FOX0RFQUNUSVZBVEUgPSAnaWdub3JlX2Nhbl9kZWFjdGl2YXRlJztcbiAgcHVibGljIHN0YXRpYyBJTlNFUlRJT05fTU9ERSA9ICdpbnNlcnRpb25Nb2RlJztcblxuICBwdWJsaWMgc3RhdGljIE9OVElNSVpFX1NVQ0NFU1NGVUxfQ09ERSA9IDA7XG4gIHB1YmxpYyBzdGF0aWMgT05USU1JWkVfRkFJTEVEX0NPREUgPSAxO1xuICBwdWJsaWMgc3RhdGljIE9OVElNSVpFX1VOQVVUSE9SSVpFRF9DT0RFID0gMztcblxuICBwdWJsaWMgc3RhdGljIElDT05fUE9TSVRJT05fTEVGVCA9ICdsZWZ0JztcbiAgcHVibGljIHN0YXRpYyBJQ09OX1BPU0lUSU9OX1JJR0hUID0gJ3JpZ2h0JztcblxuICBwdWJsaWMgc3RhdGljIENPTFVNTl9USVRMRV9BTElHTl9TVEFSVCA9ICdzdGFydCc7XG4gIHB1YmxpYyBzdGF0aWMgQ09MVU1OX1RJVExFX0FMSUdOX0NFTlRFUiA9ICdjZW50ZXInO1xuICBwdWJsaWMgc3RhdGljIENPTFVNTl9USVRMRV9BTElHTl9FTkQgPSAnZW5kJztcbiAgcHVibGljIHN0YXRpYyBDT0xVTU5fVElUTEVfQUxJR05fQVVUTyA9ICdhdXRvJztcbiAgcHVibGljIHN0YXRpYyBBVkFJTEFCTEVfQ09MVU1OX1RJVExFX0FMSUdOUyA9XG4gICAgW0NvZGVzLkNPTFVNTl9USVRMRV9BTElHTl9TVEFSVCwgQ29kZXMuQ09MVU1OX1RJVExFX0FMSUdOX0NFTlRFUiwgQ29kZXMuQ09MVU1OX1RJVExFX0FMSUdOX0VORCwgQ29kZXMuQ09MVU1OX1RJVExFX0FMSUdOX0FVVE9dO1xuXG4gIHB1YmxpYyBzdGF0aWMgT19NQVRfRVJST1JfU1RBTkRBUkQgPSAnc3RhbmRhcmQnO1xuICBwdWJsaWMgc3RhdGljIE9fTUFUX0VSUk9SX0xJVEUgPSAnbGl0ZSc7XG5cbiAgcHVibGljIHN0YXRpYyBPX0lOUFVUU19PUFRJT05TX0NPTE9SX0FDQ0VOVCA9ICdhY2NlbnQnO1xuICBwdWJsaWMgc3RhdGljIEhvdXJGb3JtYXQgPSB7XG4gICAgVFdFTFZFOiAnaGg6bW0gYScsXG4gICAgVFdFTlRZX0ZPVVI6ICdISDptbSBhJyxcbiAgfTtcblxuICAvLyBPRm9ybUNvbXBvbmVudFxuICBwdWJsaWMgc3RhdGljIENMT1NFX0RFVEFJTF9BQ1RJT046IHN0cmluZyA9ICdDTE9TRSc7XG4gIHB1YmxpYyBzdGF0aWMgQkFDS19BQ1RJT046IHN0cmluZyA9ICdCQUNLJztcbiAgcHVibGljIHN0YXRpYyBSRUxPQURfQUNUSU9OOiBzdHJpbmcgPSAnUkVMT0FEJztcbiAgcHVibGljIHN0YXRpYyBHT19FRElUX0FDVElPTjogc3RyaW5nID0gJ0dPX0VESVQnO1xuICBwdWJsaWMgc3RhdGljIEVESVRfQUNUSU9OOiBzdHJpbmcgPSAnRURJVCc7XG4gIHB1YmxpYyBzdGF0aWMgSU5TRVJUX0FDVElPTjogc3RyaW5nID0gJ0lOU0VSVCc7XG4gIHB1YmxpYyBzdGF0aWMgR09fSU5TRVJUX0FDVElPTjogc3RyaW5nID0gJ0dPX0lOU0VSVCc7XG4gIHB1YmxpYyBzdGF0aWMgREVMRVRFX0FDVElPTjogc3RyaW5nID0gJ0RFTEVURSc7XG4gIHB1YmxpYyBzdGF0aWMgVU5ET19MQVNUX0NIQU5HRV9BQ1RJT046IHN0cmluZyA9ICdVTkRPX0xBU1RfQ0hBTkdFJztcblxuICAvLyBPVGFibGVDb21wb25lbnRcbiAgcHVibGljIHN0YXRpYyBERUZBVUxUX0NPTFVNTl9NSU5fV0lEVEggPSA4MDtcbiAgcHVibGljIHN0YXRpYyBOQU1FX0NPTFVNTl9TRUxFQ1QgPSAnc2VsZWN0JztcbiAgcHVibGljIHN0YXRpYyBOQU1FX0NPTFVNTl9FWFBBTkRBQkxFID0gJ2V4cGFuZGFibGUnO1xuICBwdWJsaWMgc3RhdGljIFNVRkZJWF9DT0xVTU5fSU5TRVJUQUJMRSA9ICdfaW5zZXJ0YWJsZSc7XG4gIHB1YmxpYyBzdGF0aWMgTElNSVRfU0NST0xMVklSVFVBTCA9IDUwO1xuXG4gIHB1YmxpYyBzdGF0aWMgVFdFTlRZX0ZPVVJfSE9VUl9GT1JNQVQgPSAyNDtcbiAgcHVibGljIHN0YXRpYyBUV0VMVkVfRk9VUl9IT1VSX0ZPUk1BVCA9IDEyO1xuXG4gIHB1YmxpYyBzdGF0aWMgT0FwcExheW91dE1vZGVzOiBPQXBwTGF5b3V0TW9kZVtdID0gWydtb2JpbGUnLCAnZGVza3RvcCddO1xuICBwdWJsaWMgc3RhdGljIE9TaWRlbmF2TW9kZXM6IE9TaWRlbmF2TW9kZVtdID0gWydvdmVyJywgJ3B1c2gnLCAnc2lkZSddO1xuXG4gIHB1YmxpYyBzdGF0aWMgT0FwcExheW91dE1vZGUgPSBbJ21vYmlsZScsICdkZXNrdG9wJ107XG4gIHB1YmxpYyBzdGF0aWMgT1NpZGVuYXZNb2RlID0gWydvdmVyJywgJ3B1c2gnLCAnc2lkZSddO1xuXG4gIHB1YmxpYyBzdGF0aWMgQVBQX0xBWU9VVF9NT0RFX0RFU0tUT1A6IE9BcHBMYXlvdXRNb2RlID0gJ2Rlc2t0b3AnO1xuICBwdWJsaWMgc3RhdGljIEFQUF9MQVlPVVRfTU9ERV9NT0JJTEU6IE9BcHBMYXlvdXRNb2RlID0gJ21vYmlsZSc7XG4gIHB1YmxpYyBzdGF0aWMgVklTSUJMRV9FWFBPUlRfQlVUVE9OUzogc3RyaW5nW10gPSBbJ3hsc3gnLCAncGRmJywgJ2h0bWwnXTtcbiAgcHVibGljIHN0YXRpYyBWSVNJQkxFX0VYUE9SVF9CVVRUT05TM1g6IHN0cmluZ1tdID0gWyd4bHN4JywgJ3BkZicsICdjc3YnXTtcblxuICBwdWJsaWMgc3RhdGljIERFRkFVTFRfQ0hBTkdFX0VWRU5UOiBDSEFOR0VfRVZFTlRTID0gJ29uVmFsdWVDaGFuZ2UnO1xuICBwdWJsaWMgc3RhdGljIFRZUEVTX0RBVEVfR1JPVVBTID0gW1wiWUVBUlwiLCBcIk1PTlRIXCIsIFwiWUVBUl9NT05USFwiLCBcIllFQVJfTU9OVEhfREFZXCJdO1xuXG5cbiAgc3RhdGljIGlzRG91YmxlQ2xpY2tNb2RlKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQ29kZXMuREVUQUlMX01PREVfREJMQ0xJQ0tfVkFMVUVTLmluZGV4T2YodmFsdWUpICE9PSAtMTtcbiAgfVxuXG4gIHN0YXRpYyBpc1ZhbGlkUm93SGVpZ2h0KHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQ29kZXMuQVZBSUxBQkxFX1JPV19IRUlHSFRTX1ZBTFVFUy5pbmRleE9mKHZhbHVlKSAhPT0gLTE7XG4gIH1cblxuICBzdGF0aWMgZ2V0SXNEZXRhaWxPYmplY3QoKTogYW55IHtcbiAgICBjb25zdCByZXMgPSB7fTtcbiAgICByZXNbQ29kZXMuSVNfREVUQUlMXSA9ICd0cnVlJztcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgc3RhdGljIGZvcm1hdFN0cmluZyhmb3JtYXQ6IG51bWJlcikge1xuICAgIHJldHVybiAoZm9ybWF0ID09PSBDb2Rlcy5UV0VOVFlfRk9VUl9IT1VSX0ZPUk1BVCA/IENvZGVzLkhvdXJGb3JtYXQuVFdFTlRZX0ZPVVIgOiBDb2Rlcy5Ib3VyRm9ybWF0LlRXRUxWRSk7XG4gIH1cblxuICBzdGF0aWMgaXNIb3VySW5wdXRBbGxvd2VkKGU6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuIHtcbiAgICAvLyBBbGxvdzogYmFja3NwYWNlLCBkZWxldGUsIHRhYiwgZXNjYXBlLCBlbnRlclxuICAgIGlmIChbNDYsIDgsIDksIDI3LCAxM10uc29tZShuID0+IG4gPT09IGUua2V5Q29kZSkgfHxcbiAgICAgIChlLmtleSA9PT0gJzonKSB8fFxuICAgICAgLy8gQWxsb3c6IEN0cmwvY21kK0FcbiAgICAgIChlLmtleUNvZGUgPT09IDY1ICYmIChlLmN0cmxLZXkgPT09IHRydWUgfHwgZS5tZXRhS2V5ID09PSB0cnVlKSkgfHxcbiAgICAgIC8vIEFsbG93OiBDdHJsL2NtZCtDXG4gICAgICAoZS5rZXlDb2RlID09PSA2NyAmJiAoZS5jdHJsS2V5ID09PSB0cnVlIHx8IGUubWV0YUtleSA9PT0gdHJ1ZSkpIHx8XG4gICAgICAvLyBBbGxvdzogQ3RybC9jbWQrWFxuICAgICAgKGUua2V5Q29kZSA9PT0gODggJiYgKGUuY3RybEtleSA9PT0gdHJ1ZSB8fCBlLm1ldGFLZXkgPT09IHRydWUpKSB8fFxuICAgICAgLy8gQWxsb3c6IGhvbWUsIGVuZCwgbGVmdCwgcmlnaHQsIHVwLCBkb3duXG4gICAgICAoZS5rZXlDb2RlID49IDM1ICYmIGUua2V5Q29kZSA8PSA0MCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gISgoZS5rZXlDb2RlIDwgNDggfHwgZS5rZXlDb2RlID4gNTcpICYmIChlLmtleUNvZGUgPCA5NiB8fCBlLmtleUNvZGUgPiAxMDUpKTtcbiAgfVxuICBzdGF0aWMgaXNWYWxpZEVkaXRpb25Nb2RlKGVkaXRpb25Nb2RlOiBPVGFibGVFZGl0aW9uTW9kZSkge1xuICAgIHJldHVybiBDb2Rlcy5BVkFJTEFCTEVfTU9ERVMuaW5kZXhPZihlZGl0aW9uTW9kZSkgIT09IC0xO1xuICB9XG4gIHN0YXRpYyBpc1ZhbGlkRGV0YWlsTW9kZShkZXRhaWxNb2RlOiBPVGFibGVEZXRhaWxNb2RlKTogYW55IHtcbiAgICByZXR1cm4gQ29kZXMuQVZBSUxBQkxFX0RFVEFJTF9NT0RFUy5pbmRleE9mKGRldGFpbE1vZGUpICE9PSAtMTtcbiAgfVxuXG59XG4iXX0=