valtech-components 2.0.1002 → 2.0.1004

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.
@@ -3,16 +3,19 @@ import { provideValtechPreferencesRoutes } from '../preferences-view/preferences
3
3
  import { provideValtechSecurityRoutes } from '../security-view/security.routes';
4
4
  import { provideValtechAccountRoutes } from '../account-view/account.routes';
5
5
  import { provideValtechOrganizationRoutes } from '../organization-view/organization.routes';
6
+ import { provideValtechNotificationPreferencesRoutes } from '../notification-preferences-view/notification-preferences.routes';
7
+ import { provideValtechPermissionsRoutes } from '../permissions-view/permissions.routes';
6
8
  import { SettingsHubComponent } from './settings-hub.component';
7
9
  /**
8
10
  * Helper para montar el bloque completo de Settings en una app del factory: el
9
- * HUB de navegación (`val-settings-hub`) en el index + las vistas promovidas
10
- * (Perfil, Preferencias) + las rutas propias de la app (`extraRoutes`).
11
+ * HUB de navegación (`val-settings-hub`) + TODAS las vistas promovidas (Perfil,
12
+ * Preferencias, Seguridad, Cuenta, Gestión org, Preferencias de notificaciones,
13
+ * Permisos) + las rutas propias de la app (`extraRoutes`). Cada `include*` permite
14
+ * apagar una sección; `hubPath`/`indexRedirectTo`/`*Path` permiten reubicar el hub
15
+ * y las vistas para preservar URLs existentes.
11
16
  *
12
- * Pensado para apps nuevas (greenfield) que adoptan el set entero. showcase NO
13
- * lo usa hoy (preserva su `settings.routes.ts` por la semántica de sus muchas
14
- * secciones no promovidas — ver guía de promoción), pero el provider debe
15
- * existir y compilar para el resto de apps.
17
+ * showcase lo consume (ver `settings.routes.ts` de showcase): hub en `preferences`,
18
+ * preferences-view en `general`, index→redirect, `organization/new` por `extraRoutes`.
16
19
  *
17
20
  * @example
18
21
  * ```ts
@@ -36,17 +39,23 @@ import { SettingsHubComponent } from './settings-hub.component';
36
39
  */
37
40
  export function provideValtechSettingsRoutes(opts) {
38
41
  const basePath = opts?.basePath ?? 'settings';
42
+ const hubPath = opts?.hubPath ?? '';
39
43
  const includeProfile = opts?.includeProfile ?? true;
40
44
  const includePreferences = opts?.includePreferences ?? true;
41
45
  const includeSecurity = opts?.includeSecurity ?? true;
42
46
  const includeAccount = opts?.includeAccount ?? true;
43
47
  const includeOrganization = opts?.includeOrganization ?? true;
48
+ const includeNotificationPreferences = opts?.includeNotificationPreferences ?? true;
49
+ const includePermissions = opts?.includePermissions ?? true;
44
50
  return [
45
51
  {
46
52
  path: basePath,
47
53
  children: [
54
+ ...(opts?.indexRedirectTo
55
+ ? [{ path: '', redirectTo: opts.indexRedirectTo, pathMatch: 'full' }]
56
+ : []),
48
57
  {
49
- path: '',
58
+ path: hubPath,
50
59
  component: SettingsHubComponent,
51
60
  data: { settingsHubConfig: opts?.hubConfig },
52
61
  },
@@ -62,9 +71,18 @@ export function provideValtechSettingsRoutes(opts) {
62
71
  ...(includeOrganization
63
72
  ? provideValtechOrganizationRoutes({ config: opts?.organizationConfig })
64
73
  : []),
74
+ ...(includeNotificationPreferences
75
+ ? provideValtechNotificationPreferencesRoutes({
76
+ path: opts?.notificationPreferencesPath ?? 'notifications',
77
+ config: opts?.notificationPreferencesConfig,
78
+ })
79
+ : []),
80
+ ...(includePermissions
81
+ ? provideValtechPermissionsRoutes({ config: opts?.permissionsConfig })
82
+ : []),
65
83
  ...(opts?.extraRoutes ?? []),
66
84
  ],
67
85
  },
68
86
  ];
69
87
  }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3Mucm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9zZXR0aW5ncy1odWIvc2V0dGluZ3Mucm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTdFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXpGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRWhGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTdFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRzVGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBd0NoRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Qkc7QUFDSCxNQUFNLFVBQVUsNEJBQTRCLENBQUMsSUFBbUM7SUFDOUUsTUFBTSxRQUFRLEdBQUcsSUFBSSxFQUFFLFFBQVEsSUFBSSxVQUFVLENBQUM7SUFDOUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxFQUFFLGNBQWMsSUFBSSxJQUFJLENBQUM7SUFDcEQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEVBQUUsa0JBQWtCLElBQUksSUFBSSxDQUFDO0lBQzVELE1BQU0sZUFBZSxHQUFHLElBQUksRUFBRSxlQUFlLElBQUksSUFBSSxDQUFDO0lBQ3RELE1BQU0sY0FBYyxHQUFHLElBQUksRUFBRSxjQUFjLElBQUksSUFBSSxDQUFDO0lBQ3BELE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxFQUFFLG1CQUFtQixJQUFJLElBQUksQ0FBQztJQUU5RCxPQUFPO1FBQ0w7WUFDRSxJQUFJLEVBQUUsUUFBUTtZQUNkLFFBQVEsRUFBRTtnQkFDUjtvQkFDRSxJQUFJLEVBQUUsRUFBRTtvQkFDUixTQUFTLEVBQUUsb0JBQW9CO29CQUMvQixJQUFJLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO2lCQUM3QztnQkFDRCxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN2RixHQUFHLENBQUMsa0JBQWtCO29CQUNwQixDQUFDLENBQUMsK0JBQStCLENBQUM7d0JBQzlCLElBQUksRUFBRSxJQUFJLEVBQUUsZUFBZSxJQUFJLGFBQWE7d0JBQzVDLE1BQU0sRUFBRSxJQUFJLEVBQUUsaUJBQWlCO3FCQUNoQyxDQUFDO29CQUNKLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ1AsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDMUYsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsMkJBQTJCLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDdkYsR0FBRyxDQUFDLG1CQUFtQjtvQkFDckIsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxDQUFDO29CQUN4RSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNQLEdBQUcsQ0FBQyxJQUFJLEVBQUUsV0FBVyxJQUFJLEVBQUUsQ0FBQzthQUM3QjtTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBwcm92aWRlVmFsdGVjaFByb2ZpbGVSb3V0ZXMgfSBmcm9tICcuLi9wcm9maWxlLXZpZXcvcHJvZmlsZS5yb3V0ZXMnO1xuaW1wb3J0IHsgUHJvZmlsZVZpZXdDb25maWcgfSBmcm9tICcuLi9wcm9maWxlLXZpZXcvdHlwZXMnO1xuaW1wb3J0IHsgcHJvdmlkZVZhbHRlY2hQcmVmZXJlbmNlc1JvdXRlcyB9IGZyb20gJy4uL3ByZWZlcmVuY2VzLXZpZXcvcHJlZmVyZW5jZXMucm91dGVzJztcbmltcG9ydCB7IFByZWZlcmVuY2VzVmlld0NvbmZpZyB9IGZyb20gJy4uL3ByZWZlcmVuY2VzLXZpZXcvdHlwZXMnO1xuaW1wb3J0IHsgcHJvdmlkZVZhbHRlY2hTZWN1cml0eVJvdXRlcyB9IGZyb20gJy4uL3NlY3VyaXR5LXZpZXcvc2VjdXJpdHkucm91dGVzJztcbmltcG9ydCB7IFNlY3VyaXR5Vmlld0NvbmZpZyB9IGZyb20gJy4uL3NlY3VyaXR5LXZpZXcvdHlwZXMnO1xuaW1wb3J0IHsgcHJvdmlkZVZhbHRlY2hBY2NvdW50Um91dGVzIH0gZnJvbSAnLi4vYWNjb3VudC12aWV3L2FjY291bnQucm91dGVzJztcbmltcG9ydCB7IEFjY291bnRWaWV3Q29uZmlnIH0gZnJvbSAnLi4vYWNjb3VudC12aWV3L3R5cGVzJztcbmltcG9ydCB7IHByb3ZpZGVWYWx0ZWNoT3JnYW5pemF0aW9uUm91dGVzIH0gZnJvbSAnLi4vb3JnYW5pemF0aW9uLXZpZXcvb3JnYW5pemF0aW9uLnJvdXRlcyc7XG5pbXBvcnQgeyBPcmdhbml6YXRpb25WaWV3Q29uZmlnIH0gZnJvbSAnLi4vb3JnYW5pemF0aW9uLXZpZXcvdHlwZXMnO1xuXG5pbXBvcnQgeyBTZXR0aW5nc0h1YkNvbXBvbmVudCB9IGZyb20gJy4vc2V0dGluZ3MtaHViLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZXR0aW5nc0h1YkNvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIE9wY2lvbmVzIGRlIGBwcm92aWRlVmFsdGVjaFNldHRpbmdzUm91dGVzYC4gQWdydXBhIGVsIEhVQiAoYHZhbC1zZXR0aW5ncy1odWJgKVxuICogY29uIGxhcyB2aXN0YXMgeWEgcHJvbW92aWRhcyAoUGVyZmlsICsgUHJlZmVyZW5jaWFzKSBiYWpvIHVuIMO6bmljbyBgcGF0aGBcbiAqIGJhc2UsIHkgZGVqYSBgZXh0cmFSb3V0ZXNgIHBhcmEgbGFzIHNlY2Npb25lcyBkZSBsYSBhcHAgYcO6biBubyBwcm9tb3ZpZGFzXG4gKiAoc2VjdXJpdHksIGFjY291bnQsIG5vdGlmaWNhdGlvbnMsIG9yZ2FuaXphdGlvbiwg4oCmKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWYWx0ZWNoU2V0dGluZ3NSb3V0ZXNPcHRpb25zIHtcbiAgLyoqIFBhdGggYmFzZSBkZWwgYmxvcXVlIGRlIHNldHRpbmdzLiBEZWZhdWx0IGAnc2V0dGluZ3MnYC4gKi9cbiAgYmFzZVBhdGg/OiBzdHJpbmc7XG4gIC8qKiBDb25maWcgZGVsIEhVQiAocGFzYWRhIHBvciByb3V0ZSBkYXRhIGBzZXR0aW5nc0h1YkNvbmZpZ2ApLiAqL1xuICBodWJDb25maWc/OiBTZXR0aW5nc0h1YkNvbmZpZztcbiAgLyoqIENvbmZpZyBkZSBsYSB2aXN0YSBQZXJmaWwgKHBhc3MtdGhyb3VnaCBhIGBwcm92aWRlVmFsdGVjaFByb2ZpbGVSb3V0ZXNgKS4gKi9cbiAgcHJvZmlsZUNvbmZpZz86IFByb2ZpbGVWaWV3Q29uZmlnO1xuICAvKiogQ29uZmlnIGRlIGxhIHZpc3RhIFByZWZlcmVuY2lhcyAocGFzcy10aHJvdWdoIGEgYHByb3ZpZGVWYWx0ZWNoUHJlZmVyZW5jZXNSb3V0ZXNgKS4gKi9cbiAgcHJlZmVyZW5jZXNDb25maWc/OiBQcmVmZXJlbmNlc1ZpZXdDb25maWc7XG4gIC8qKiBDb25maWcgZGUgbGEgdmlzdGEgU2VndXJpZGFkIChwYXNzLXRocm91Z2ggYSBgcHJvdmlkZVZhbHRlY2hTZWN1cml0eVJvdXRlc2ApLiAqL1xuICBzZWN1cml0eUNvbmZpZz86IFNlY3VyaXR5Vmlld0NvbmZpZztcbiAgLyoqIENvbmZpZyBkZSBsYSB2aXN0YSBDdWVudGEgKHBhc3MtdGhyb3VnaCBhIGBwcm92aWRlVmFsdGVjaEFjY291bnRSb3V0ZXNgKS4gKi9cbiAgYWNjb3VudENvbmZpZz86IEFjY291bnRWaWV3Q29uZmlnO1xuICAvKiogQ29uZmlnIGRlIGxhIHZpc3RhIEdlc3Rpw7NuIGRlIG9yZ2FuaXphY2nDs24gKHBhc3MtdGhyb3VnaCBhIGBwcm92aWRlVmFsdGVjaE9yZ2FuaXphdGlvblJvdXRlc2ApLiAqL1xuICBvcmdhbml6YXRpb25Db25maWc/OiBPcmdhbml6YXRpb25WaWV3Q29uZmlnO1xuICAvKiogTW9udGEgbGEgcnV0YSBgcHJvZmlsZWAuIERlZmF1bHQgYHRydWVgLiAqL1xuICBpbmNsdWRlUHJvZmlsZT86IGJvb2xlYW47XG4gIC8qKiBNb250YSBsYSBydXRhIGRlIHByZWZlcmVuY2lhcy4gRGVmYXVsdCBgdHJ1ZWAuICovXG4gIGluY2x1ZGVQcmVmZXJlbmNlcz86IGJvb2xlYW47XG4gIC8qKiBNb250YSBsYSBydXRhIGBzZWN1cml0eWAuIERlZmF1bHQgYHRydWVgLiAqL1xuICBpbmNsdWRlU2VjdXJpdHk/OiBib29sZWFuO1xuICAvKiogTW9udGEgbGEgcnV0YSBgYWNjb3VudGAuIERlZmF1bHQgYHRydWVgLiAqL1xuICBpbmNsdWRlQWNjb3VudD86IGJvb2xlYW47XG4gIC8qKiBNb250YSBsYSBydXRhIGBvcmdhbml6YXRpb25gLiBEZWZhdWx0IGB0cnVlYC4gKi9cbiAgaW5jbHVkZU9yZ2FuaXphdGlvbj86IGJvb2xlYW47XG4gIC8qKiBQYXRoIGRlIGxhIHZpc3RhIFByZWZlcmVuY2lhcy4gRGVmYXVsdCBgJ3ByZWZlcmVuY2VzJ2AuICovXG4gIHByZWZlcmVuY2VzUGF0aD86IHN0cmluZztcbiAgLyoqIFJ1dGFzIGV4dHJhIGEgc3VtYXIgY29tbyBoaWphcyAoc2VjY2lvbmVzIGRlIGxhIGFwcCBubyBwcm9tb3ZpZGFzKS4gKi9cbiAgZXh0cmFSb3V0ZXM/OiBSb3V0ZXM7XG59XG5cbi8qKlxuICogSGVscGVyIHBhcmEgbW9udGFyIGVsIGJsb3F1ZSBjb21wbGV0byBkZSBTZXR0aW5ncyBlbiB1bmEgYXBwIGRlbCBmYWN0b3J5OiBlbFxuICogSFVCIGRlIG5hdmVnYWNpw7NuIChgdmFsLXNldHRpbmdzLWh1YmApIGVuIGVsIGluZGV4ICsgbGFzIHZpc3RhcyBwcm9tb3ZpZGFzXG4gKiAoUGVyZmlsLCBQcmVmZXJlbmNpYXMpICsgbGFzIHJ1dGFzIHByb3BpYXMgZGUgbGEgYXBwIChgZXh0cmFSb3V0ZXNgKS5cbiAqXG4gKiBQZW5zYWRvIHBhcmEgYXBwcyBudWV2YXMgKGdyZWVuZmllbGQpIHF1ZSBhZG9wdGFuIGVsIHNldCBlbnRlcm8uIHNob3djYXNlIE5PXG4gKiBsbyB1c2EgaG95IChwcmVzZXJ2YSBzdSBgc2V0dGluZ3Mucm91dGVzLnRzYCBwb3IgbGEgc2Vtw6FudGljYSBkZSBzdXMgbXVjaGFzXG4gKiBzZWNjaW9uZXMgbm8gcHJvbW92aWRhcyDigJQgdmVyIGd1w61hIGRlIHByb21vY2nDs24pLCBwZXJvIGVsIHByb3ZpZGVyIGRlYmVcbiAqIGV4aXN0aXIgeSBjb21waWxhciBwYXJhIGVsIHJlc3RvIGRlIGFwcHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiAvLyBhcHAucm91dGVzLnRzXG4gKiBpbXBvcnQgeyBwcm92aWRlVmFsdGVjaFNldHRpbmdzUm91dGVzIH0gZnJvbSAndmFsdGVjaC1jb21wb25lbnRzJztcbiAqXG4gKiBleHBvcnQgY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gKiAgIHtcbiAqICAgICBwYXRoOiAnYXBwJyxcbiAqICAgICBjaGlsZHJlbjogW1xuICogICAgICAgLi4ucHJvdmlkZVZhbHRlY2hTZXR0aW5nc1JvdXRlcyh7XG4gKiAgICAgICAgIGh1YkNvbmZpZzogeyBvbkxvZ291dDogKCkgPT4gYXV0aC5sb2dvdXRXaXRoQ29uZmlybWF0aW9uKCkgfSxcbiAqICAgICAgICAgZXh0cmFSb3V0ZXM6IFtcbiAqICAgICAgICAgICB7IHBhdGg6ICdzZWN1cml0eScsIGxvYWRDb21wb25lbnQ6ICgpID0+IC4uLiB9LFxuICogICAgICAgICBdLFxuICogICAgICAgfSksXG4gKiAgICAgXSxcbiAqICAgfSxcbiAqIF07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVWYWx0ZWNoU2V0dGluZ3NSb3V0ZXMob3B0cz86IFZhbHRlY2hTZXR0aW5nc1JvdXRlc09wdGlvbnMpOiBSb3V0ZXMge1xuICBjb25zdCBiYXNlUGF0aCA9IG9wdHM/LmJhc2VQYXRoID8/ICdzZXR0aW5ncyc7XG4gIGNvbnN0IGluY2x1ZGVQcm9maWxlID0gb3B0cz8uaW5jbHVkZVByb2ZpbGUgPz8gdHJ1ZTtcbiAgY29uc3QgaW5jbHVkZVByZWZlcmVuY2VzID0gb3B0cz8uaW5jbHVkZVByZWZlcmVuY2VzID8/IHRydWU7XG4gIGNvbnN0IGluY2x1ZGVTZWN1cml0eSA9IG9wdHM/LmluY2x1ZGVTZWN1cml0eSA/PyB0cnVlO1xuICBjb25zdCBpbmNsdWRlQWNjb3VudCA9IG9wdHM/LmluY2x1ZGVBY2NvdW50ID8/IHRydWU7XG4gIGNvbnN0IGluY2x1ZGVPcmdhbml6YXRpb24gPSBvcHRzPy5pbmNsdWRlT3JnYW5pemF0aW9uID8/IHRydWU7XG5cbiAgcmV0dXJuIFtcbiAgICB7XG4gICAgICBwYXRoOiBiYXNlUGF0aCxcbiAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgICBjb21wb25lbnQ6IFNldHRpbmdzSHViQ29tcG9uZW50LFxuICAgICAgICAgIGRhdGE6IHsgc2V0dGluZ3NIdWJDb25maWc6IG9wdHM/Lmh1YkNvbmZpZyB9LFxuICAgICAgICB9LFxuICAgICAgICAuLi4oaW5jbHVkZVByb2ZpbGUgPyBwcm92aWRlVmFsdGVjaFByb2ZpbGVSb3V0ZXMoeyBjb25maWc6IG9wdHM/LnByb2ZpbGVDb25maWcgfSkgOiBbXSksXG4gICAgICAgIC4uLihpbmNsdWRlUHJlZmVyZW5jZXNcbiAgICAgICAgICA/IHByb3ZpZGVWYWx0ZWNoUHJlZmVyZW5jZXNSb3V0ZXMoe1xuICAgICAgICAgICAgICBwYXRoOiBvcHRzPy5wcmVmZXJlbmNlc1BhdGggPz8gJ3ByZWZlcmVuY2VzJyxcbiAgICAgICAgICAgICAgY29uZmlnOiBvcHRzPy5wcmVmZXJlbmNlc0NvbmZpZyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiBbXSksXG4gICAgICAgIC4uLihpbmNsdWRlU2VjdXJpdHkgPyBwcm92aWRlVmFsdGVjaFNlY3VyaXR5Um91dGVzKHsgY29uZmlnOiBvcHRzPy5zZWN1cml0eUNvbmZpZyB9KSA6IFtdKSxcbiAgICAgICAgLi4uKGluY2x1ZGVBY2NvdW50ID8gcHJvdmlkZVZhbHRlY2hBY2NvdW50Um91dGVzKHsgY29uZmlnOiBvcHRzPy5hY2NvdW50Q29uZmlnIH0pIDogW10pLFxuICAgICAgICAuLi4oaW5jbHVkZU9yZ2FuaXphdGlvblxuICAgICAgICAgID8gcHJvdmlkZVZhbHRlY2hPcmdhbml6YXRpb25Sb3V0ZXMoeyBjb25maWc6IG9wdHM/Lm9yZ2FuaXphdGlvbkNvbmZpZyB9KVxuICAgICAgICAgIDogW10pLFxuICAgICAgICAuLi4ob3B0cz8uZXh0cmFSb3V0ZXMgPz8gW10pLFxuICAgICAgXSxcbiAgICB9LFxuICBdO1xufVxuIl19
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3Mucm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9zZXR0aW5ncy1odWIvc2V0dGluZ3Mucm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTdFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXpGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRWhGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRTdFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRTVGLE9BQU8sRUFBRSwyQ0FBMkMsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBRS9ILE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBR3pGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBOERoRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJHO0FBQ0gsTUFBTSxVQUFVLDRCQUE0QixDQUFDLElBQW1DO0lBQzlFLE1BQU0sUUFBUSxHQUFHLElBQUksRUFBRSxRQUFRLElBQUksVUFBVSxDQUFDO0lBQzlDLE1BQU0sT0FBTyxHQUFHLElBQUksRUFBRSxPQUFPLElBQUksRUFBRSxDQUFDO0lBQ3BDLE1BQU0sY0FBYyxHQUFHLElBQUksRUFBRSxjQUFjLElBQUksSUFBSSxDQUFDO0lBQ3BELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxFQUFFLGtCQUFrQixJQUFJLElBQUksQ0FBQztJQUM1RCxNQUFNLGVBQWUsR0FBRyxJQUFJLEVBQUUsZUFBZSxJQUFJLElBQUksQ0FBQztJQUN0RCxNQUFNLGNBQWMsR0FBRyxJQUFJLEVBQUUsY0FBYyxJQUFJLElBQUksQ0FBQztJQUNwRCxNQUFNLG1CQUFtQixHQUFHLElBQUksRUFBRSxtQkFBbUIsSUFBSSxJQUFJLENBQUM7SUFDOUQsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLEVBQUUsOEJBQThCLElBQUksSUFBSSxDQUFDO0lBQ3BGLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxFQUFFLGtCQUFrQixJQUFJLElBQUksQ0FBQztJQUU1RCxPQUFPO1FBQ0w7WUFDRSxJQUFJLEVBQUUsUUFBUTtZQUNkLFFBQVEsRUFBRTtnQkFDUixHQUFHLENBQUMsSUFBSSxFQUFFLGVBQWU7b0JBQ3ZCLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBZSxFQUFFLENBQUM7b0JBQzlFLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ1A7b0JBQ0UsSUFBSSxFQUFFLE9BQU87b0JBQ2IsU0FBUyxFQUFFLG9CQUFvQjtvQkFDL0IsSUFBSSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtpQkFDN0M7Z0JBQ0QsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsMkJBQTJCLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDdkYsR0FBRyxDQUFDLGtCQUFrQjtvQkFDcEIsQ0FBQyxDQUFDLCtCQUErQixDQUFDO3dCQUM5QixJQUFJLEVBQUUsSUFBSSxFQUFFLGVBQWUsSUFBSSxhQUFhO3dCQUM1QyxNQUFNLEVBQUUsSUFBSSxFQUFFLGlCQUFpQjtxQkFDaEMsQ0FBQztvQkFDSixDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNQLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzFGLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZGLEdBQUcsQ0FBQyxtQkFBbUI7b0JBQ3JCLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztvQkFDeEUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDUCxHQUFHLENBQUMsOEJBQThCO29CQUNoQyxDQUFDLENBQUMsMkNBQTJDLENBQUM7d0JBQzFDLElBQUksRUFBRSxJQUFJLEVBQUUsMkJBQTJCLElBQUksZUFBZTt3QkFDMUQsTUFBTSxFQUFFLElBQUksRUFBRSw2QkFBNkI7cUJBQzVDLENBQUM7b0JBQ0osQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDUCxHQUFHLENBQUMsa0JBQWtCO29CQUNwQixDQUFDLENBQUMsK0JBQStCLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUM7b0JBQ3RFLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ1AsR0FBRyxDQUFDLElBQUksRUFBRSxXQUFXLElBQUksRUFBRSxDQUFDO2FBQzdCO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IHByb3ZpZGVWYWx0ZWNoUHJvZmlsZVJvdXRlcyB9IGZyb20gJy4uL3Byb2ZpbGUtdmlldy9wcm9maWxlLnJvdXRlcyc7XG5pbXBvcnQgeyBQcm9maWxlVmlld0NvbmZpZyB9IGZyb20gJy4uL3Byb2ZpbGUtdmlldy90eXBlcyc7XG5pbXBvcnQgeyBwcm92aWRlVmFsdGVjaFByZWZlcmVuY2VzUm91dGVzIH0gZnJvbSAnLi4vcHJlZmVyZW5jZXMtdmlldy9wcmVmZXJlbmNlcy5yb3V0ZXMnO1xuaW1wb3J0IHsgUHJlZmVyZW5jZXNWaWV3Q29uZmlnIH0gZnJvbSAnLi4vcHJlZmVyZW5jZXMtdmlldy90eXBlcyc7XG5pbXBvcnQgeyBwcm92aWRlVmFsdGVjaFNlY3VyaXR5Um91dGVzIH0gZnJvbSAnLi4vc2VjdXJpdHktdmlldy9zZWN1cml0eS5yb3V0ZXMnO1xuaW1wb3J0IHsgU2VjdXJpdHlWaWV3Q29uZmlnIH0gZnJvbSAnLi4vc2VjdXJpdHktdmlldy90eXBlcyc7XG5pbXBvcnQgeyBwcm92aWRlVmFsdGVjaEFjY291bnRSb3V0ZXMgfSBmcm9tICcuLi9hY2NvdW50LXZpZXcvYWNjb3VudC5yb3V0ZXMnO1xuaW1wb3J0IHsgQWNjb3VudFZpZXdDb25maWcgfSBmcm9tICcuLi9hY2NvdW50LXZpZXcvdHlwZXMnO1xuaW1wb3J0IHsgcHJvdmlkZVZhbHRlY2hPcmdhbml6YXRpb25Sb3V0ZXMgfSBmcm9tICcuLi9vcmdhbml6YXRpb24tdmlldy9vcmdhbml6YXRpb24ucm91dGVzJztcbmltcG9ydCB7IE9yZ2FuaXphdGlvblZpZXdDb25maWcgfSBmcm9tICcuLi9vcmdhbml6YXRpb24tdmlldy90eXBlcyc7XG5pbXBvcnQgeyBwcm92aWRlVmFsdGVjaE5vdGlmaWNhdGlvblByZWZlcmVuY2VzUm91dGVzIH0gZnJvbSAnLi4vbm90aWZpY2F0aW9uLXByZWZlcmVuY2VzLXZpZXcvbm90aWZpY2F0aW9uLXByZWZlcmVuY2VzLnJvdXRlcyc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25QcmVmZXJlbmNlc1ZpZXdDb25maWcgfSBmcm9tICcuLi9ub3RpZmljYXRpb24tcHJlZmVyZW5jZXMtdmlldy90eXBlcyc7XG5pbXBvcnQgeyBwcm92aWRlVmFsdGVjaFBlcm1pc3Npb25zUm91dGVzIH0gZnJvbSAnLi4vcGVybWlzc2lvbnMtdmlldy9wZXJtaXNzaW9ucy5yb3V0ZXMnO1xuaW1wb3J0IHsgUGVybWlzc2lvbnNWaWV3Q29uZmlnIH0gZnJvbSAnLi4vcGVybWlzc2lvbnMtdmlldy90eXBlcyc7XG5cbmltcG9ydCB7IFNldHRpbmdzSHViQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5ncy1odWIuY29tcG9uZW50JztcbmltcG9ydCB7IFNldHRpbmdzSHViQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogT3BjaW9uZXMgZGUgYHByb3ZpZGVWYWx0ZWNoU2V0dGluZ3NSb3V0ZXNgLiBBZ3J1cGEgZWwgSFVCIChgdmFsLXNldHRpbmdzLWh1YmApXG4gKiBjb24gbGFzIHZpc3RhcyB5YSBwcm9tb3ZpZGFzIChQZXJmaWwgKyBQcmVmZXJlbmNpYXMpIGJham8gdW4gw7puaWNvIGBwYXRoYFxuICogYmFzZSwgeSBkZWphIGBleHRyYVJvdXRlc2AgcGFyYSBsYXMgc2VjY2lvbmVzIGRlIGxhIGFwcCBhw7puIG5vIHByb21vdmlkYXNcbiAqIChzZWN1cml0eSwgYWNjb3VudCwgbm90aWZpY2F0aW9ucywgb3JnYW5pemF0aW9uLCDigKYpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbHRlY2hTZXR0aW5nc1JvdXRlc09wdGlvbnMge1xuICAvKiogUGF0aCBiYXNlIGRlbCBibG9xdWUgZGUgc2V0dGluZ3MuIERlZmF1bHQgYCdzZXR0aW5ncydgLiAqL1xuICBiYXNlUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFBhdGggZG9uZGUgc2UgbW9udGEgZWwgSFVCIGRlbnRybyBkZWwgYmxvcXVlLiBEZWZhdWx0IGAnJ2AgKMOtbmRpY2UpLiBQYXJhXG4gICAqIGFwcHMgcXVlIHF1aWVyZW4gZWwgaHViIGVuIHVuYSBzdWItcnV0YSAoZWouIHNob3djYXNlIGxvIHRpZW5lIGVuXG4gICAqIGBwcmVmZXJlbmNlc2ApLCBzZXRlYXIgZXN0byArIGBpbmRleFJlZGlyZWN0VG9gLlxuICAgKi9cbiAgaHViUGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIFNpIHNlIHNldGVhLCBhZ3JlZ2EgYHsgcGF0aDogJycsIHJlZGlyZWN0VG8sIHBhdGhNYXRjaDogJ2Z1bGwnIH1gIGFsIMOtbmRpY2UuXG4gICAqIFBlbnNhZG8gcGFyYSBjdWFuZG8gYGh1YlBhdGhgIE5PIGVzIGAnJ2AgKGVsIMOtbmRpY2UgcXVlZGEgbGlicmUgeSBzZSByZWRpcmlnZVxuICAgKiBhbCBodWIgdSBvdHJhIHNlY2Npw7NuKS4gTm8gdXNhciBqdW50byBjb24gYGh1YlBhdGg6ICcnYCAoY29saXNpb25hcsOtYW4pLlxuICAgKi9cbiAgaW5kZXhSZWRpcmVjdFRvPzogc3RyaW5nO1xuICAvKiogQ29uZmlnIGRlbCBIVUIgKHBhc2FkYSBwb3Igcm91dGUgZGF0YSBgc2V0dGluZ3NIdWJDb25maWdgKS4gKi9cbiAgaHViQ29uZmlnPzogU2V0dGluZ3NIdWJDb25maWc7XG4gIC8qKiBDb25maWcgZGUgbGEgdmlzdGEgUGVyZmlsIChwYXNzLXRocm91Z2ggYSBgcHJvdmlkZVZhbHRlY2hQcm9maWxlUm91dGVzYCkuICovXG4gIHByb2ZpbGVDb25maWc/OiBQcm9maWxlVmlld0NvbmZpZztcbiAgLyoqIENvbmZpZyBkZSBsYSB2aXN0YSBQcmVmZXJlbmNpYXMgKHBhc3MtdGhyb3VnaCBhIGBwcm92aWRlVmFsdGVjaFByZWZlcmVuY2VzUm91dGVzYCkuICovXG4gIHByZWZlcmVuY2VzQ29uZmlnPzogUHJlZmVyZW5jZXNWaWV3Q29uZmlnO1xuICAvKiogQ29uZmlnIGRlIGxhIHZpc3RhIFNlZ3VyaWRhZCAocGFzcy10aHJvdWdoIGEgYHByb3ZpZGVWYWx0ZWNoU2VjdXJpdHlSb3V0ZXNgKS4gKi9cbiAgc2VjdXJpdHlDb25maWc/OiBTZWN1cml0eVZpZXdDb25maWc7XG4gIC8qKiBDb25maWcgZGUgbGEgdmlzdGEgQ3VlbnRhIChwYXNzLXRocm91Z2ggYSBgcHJvdmlkZVZhbHRlY2hBY2NvdW50Um91dGVzYCkuICovXG4gIGFjY291bnRDb25maWc/OiBBY2NvdW50Vmlld0NvbmZpZztcbiAgLyoqIENvbmZpZyBkZSBsYSB2aXN0YSBHZXN0acOzbiBkZSBvcmdhbml6YWNpw7NuIChwYXNzLXRocm91Z2ggYSBgcHJvdmlkZVZhbHRlY2hPcmdhbml6YXRpb25Sb3V0ZXNgKS4gKi9cbiAgb3JnYW5pemF0aW9uQ29uZmlnPzogT3JnYW5pemF0aW9uVmlld0NvbmZpZztcbiAgLyoqIENvbmZpZyBkZSBQcmVmZXJlbmNpYXMgZGUgbm90aWZpY2FjaW9uZXMgcHVzaCAocGFzcy10aHJvdWdoKS4gKi9cbiAgbm90aWZpY2F0aW9uUHJlZmVyZW5jZXNDb25maWc/OiBOb3RpZmljYXRpb25QcmVmZXJlbmNlc1ZpZXdDb25maWc7XG4gIC8qKiBDb25maWcgZGVsIHZpc29yIGRlIFBlcm1pc29zIChwYXNzLXRocm91Z2gpLiAqL1xuICBwZXJtaXNzaW9uc0NvbmZpZz86IFBlcm1pc3Npb25zVmlld0NvbmZpZztcbiAgLyoqIE1vbnRhIGxhIHJ1dGEgYHByb2ZpbGVgLiBEZWZhdWx0IGB0cnVlYC4gKi9cbiAgaW5jbHVkZVByb2ZpbGU/OiBib29sZWFuO1xuICAvKiogTW9udGEgbGEgcnV0YSBkZSBwcmVmZXJlbmNpYXMuIERlZmF1bHQgYHRydWVgLiAqL1xuICBpbmNsdWRlUHJlZmVyZW5jZXM/OiBib29sZWFuO1xuICAvKiogTW9udGEgbGEgcnV0YSBgc2VjdXJpdHlgLiBEZWZhdWx0IGB0cnVlYC4gKi9cbiAgaW5jbHVkZVNlY3VyaXR5PzogYm9vbGVhbjtcbiAgLyoqIE1vbnRhIGxhIHJ1dGEgYGFjY291bnRgLiBEZWZhdWx0IGB0cnVlYC4gKi9cbiAgaW5jbHVkZUFjY291bnQ/OiBib29sZWFuO1xuICAvKiogTW9udGEgbGEgcnV0YSBgb3JnYW5pemF0aW9uYC4gRGVmYXVsdCBgdHJ1ZWAuICovXG4gIGluY2x1ZGVPcmdhbml6YXRpb24/OiBib29sZWFuO1xuICAvKiogTW9udGEgbGEgcnV0YSBkZSBwcmVmZXJlbmNpYXMgZGUgbm90aWZpY2FjaW9uZXMgcHVzaC4gRGVmYXVsdCBgdHJ1ZWAuICovXG4gIGluY2x1ZGVOb3RpZmljYXRpb25QcmVmZXJlbmNlcz86IGJvb2xlYW47XG4gIC8qKiBNb250YSBsYSBydXRhIGBwZXJtaXNzaW9uc2AuIERlZmF1bHQgYHRydWVgLiAqL1xuICBpbmNsdWRlUGVybWlzc2lvbnM/OiBib29sZWFuO1xuICAvKiogUGF0aCBkZSBsYSB2aXN0YSBQcmVmZXJlbmNpYXMuIERlZmF1bHQgYCdwcmVmZXJlbmNlcydgLiAqL1xuICBwcmVmZXJlbmNlc1BhdGg/OiBzdHJpbmc7XG4gIC8qKiBQYXRoIGRlIGxhIHZpc3RhIFByZWZlcmVuY2lhcyBkZSBub3RpZmljYWNpb25lcyBwdXNoLiBEZWZhdWx0IGAnbm90aWZpY2F0aW9ucydgLiAqL1xuICBub3RpZmljYXRpb25QcmVmZXJlbmNlc1BhdGg/OiBzdHJpbmc7XG4gIC8qKiBSdXRhcyBleHRyYSBhIHN1bWFyIGNvbW8gaGlqYXMgKHNlY2Npb25lcyBkZSBsYSBhcHAgbm8gcHJvbW92aWRhcykuICovXG4gIGV4dHJhUm91dGVzPzogUm91dGVzO1xufVxuXG4vKipcbiAqIEhlbHBlciBwYXJhIG1vbnRhciBlbCBibG9xdWUgY29tcGxldG8gZGUgU2V0dGluZ3MgZW4gdW5hIGFwcCBkZWwgZmFjdG9yeTogZWxcbiAqIEhVQiBkZSBuYXZlZ2FjacOzbiAoYHZhbC1zZXR0aW5ncy1odWJgKSArIFRPREFTIGxhcyB2aXN0YXMgcHJvbW92aWRhcyAoUGVyZmlsLFxuICogUHJlZmVyZW5jaWFzLCBTZWd1cmlkYWQsIEN1ZW50YSwgR2VzdGnDs24gb3JnLCBQcmVmZXJlbmNpYXMgZGUgbm90aWZpY2FjaW9uZXMsXG4gKiBQZXJtaXNvcykgKyBsYXMgcnV0YXMgcHJvcGlhcyBkZSBsYSBhcHAgKGBleHRyYVJvdXRlc2ApLiBDYWRhIGBpbmNsdWRlKmAgcGVybWl0ZVxuICogYXBhZ2FyIHVuYSBzZWNjacOzbjsgYGh1YlBhdGhgL2BpbmRleFJlZGlyZWN0VG9gL2AqUGF0aGAgcGVybWl0ZW4gcmV1YmljYXIgZWwgaHViXG4gKiB5IGxhcyB2aXN0YXMgcGFyYSBwcmVzZXJ2YXIgVVJMcyBleGlzdGVudGVzLlxuICpcbiAqIHNob3djYXNlIGxvIGNvbnN1bWUgKHZlciBgc2V0dGluZ3Mucm91dGVzLnRzYCBkZSBzaG93Y2FzZSk6IGh1YiBlbiBgcHJlZmVyZW5jZXNgLFxuICogcHJlZmVyZW5jZXMtdmlldyBlbiBgZ2VuZXJhbGAsIGluZGV44oaScmVkaXJlY3QsIGBvcmdhbml6YXRpb24vbmV3YCBwb3IgYGV4dHJhUm91dGVzYC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIC8vIGFwcC5yb3V0ZXMudHNcbiAqIGltcG9ydCB7IHByb3ZpZGVWYWx0ZWNoU2V0dGluZ3NSb3V0ZXMgfSBmcm9tICd2YWx0ZWNoLWNvbXBvbmVudHMnO1xuICpcbiAqIGV4cG9ydCBjb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAqICAge1xuICogICAgIHBhdGg6ICdhcHAnLFxuICogICAgIGNoaWxkcmVuOiBbXG4gKiAgICAgICAuLi5wcm92aWRlVmFsdGVjaFNldHRpbmdzUm91dGVzKHtcbiAqICAgICAgICAgaHViQ29uZmlnOiB7IG9uTG9nb3V0OiAoKSA9PiBhdXRoLmxvZ291dFdpdGhDb25maXJtYXRpb24oKSB9LFxuICogICAgICAgICBleHRyYVJvdXRlczogW1xuICogICAgICAgICAgIHsgcGF0aDogJ3NlY3VyaXR5JywgbG9hZENvbXBvbmVudDogKCkgPT4gLi4uIH0sXG4gKiAgICAgICAgIF0sXG4gKiAgICAgICB9KSxcbiAqICAgICBdLFxuICogICB9LFxuICogXTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVZhbHRlY2hTZXR0aW5nc1JvdXRlcyhvcHRzPzogVmFsdGVjaFNldHRpbmdzUm91dGVzT3B0aW9ucyk6IFJvdXRlcyB7XG4gIGNvbnN0IGJhc2VQYXRoID0gb3B0cz8uYmFzZVBhdGggPz8gJ3NldHRpbmdzJztcbiAgY29uc3QgaHViUGF0aCA9IG9wdHM/Lmh1YlBhdGggPz8gJyc7XG4gIGNvbnN0IGluY2x1ZGVQcm9maWxlID0gb3B0cz8uaW5jbHVkZVByb2ZpbGUgPz8gdHJ1ZTtcbiAgY29uc3QgaW5jbHVkZVByZWZlcmVuY2VzID0gb3B0cz8uaW5jbHVkZVByZWZlcmVuY2VzID8/IHRydWU7XG4gIGNvbnN0IGluY2x1ZGVTZWN1cml0eSA9IG9wdHM/LmluY2x1ZGVTZWN1cml0eSA/PyB0cnVlO1xuICBjb25zdCBpbmNsdWRlQWNjb3VudCA9IG9wdHM/LmluY2x1ZGVBY2NvdW50ID8/IHRydWU7XG4gIGNvbnN0IGluY2x1ZGVPcmdhbml6YXRpb24gPSBvcHRzPy5pbmNsdWRlT3JnYW5pemF0aW9uID8/IHRydWU7XG4gIGNvbnN0IGluY2x1ZGVOb3RpZmljYXRpb25QcmVmZXJlbmNlcyA9IG9wdHM/LmluY2x1ZGVOb3RpZmljYXRpb25QcmVmZXJlbmNlcyA/PyB0cnVlO1xuICBjb25zdCBpbmNsdWRlUGVybWlzc2lvbnMgPSBvcHRzPy5pbmNsdWRlUGVybWlzc2lvbnMgPz8gdHJ1ZTtcblxuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIHBhdGg6IGJhc2VQYXRoLFxuICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgLi4uKG9wdHM/LmluZGV4UmVkaXJlY3RUb1xuICAgICAgICAgID8gW3sgcGF0aDogJycsIHJlZGlyZWN0VG86IG9wdHMuaW5kZXhSZWRpcmVjdFRvLCBwYXRoTWF0Y2g6ICdmdWxsJyBhcyBjb25zdCB9XVxuICAgICAgICAgIDogW10pLFxuICAgICAgICB7XG4gICAgICAgICAgcGF0aDogaHViUGF0aCxcbiAgICAgICAgICBjb21wb25lbnQ6IFNldHRpbmdzSHViQ29tcG9uZW50LFxuICAgICAgICAgIGRhdGE6IHsgc2V0dGluZ3NIdWJDb25maWc6IG9wdHM/Lmh1YkNvbmZpZyB9LFxuICAgICAgICB9LFxuICAgICAgICAuLi4oaW5jbHVkZVByb2ZpbGUgPyBwcm92aWRlVmFsdGVjaFByb2ZpbGVSb3V0ZXMoeyBjb25maWc6IG9wdHM/LnByb2ZpbGVDb25maWcgfSkgOiBbXSksXG4gICAgICAgIC4uLihpbmNsdWRlUHJlZmVyZW5jZXNcbiAgICAgICAgICA/IHByb3ZpZGVWYWx0ZWNoUHJlZmVyZW5jZXNSb3V0ZXMoe1xuICAgICAgICAgICAgICBwYXRoOiBvcHRzPy5wcmVmZXJlbmNlc1BhdGggPz8gJ3ByZWZlcmVuY2VzJyxcbiAgICAgICAgICAgICAgY29uZmlnOiBvcHRzPy5wcmVmZXJlbmNlc0NvbmZpZyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiBbXSksXG4gICAgICAgIC4uLihpbmNsdWRlU2VjdXJpdHkgPyBwcm92aWRlVmFsdGVjaFNlY3VyaXR5Um91dGVzKHsgY29uZmlnOiBvcHRzPy5zZWN1cml0eUNvbmZpZyB9KSA6IFtdKSxcbiAgICAgICAgLi4uKGluY2x1ZGVBY2NvdW50ID8gcHJvdmlkZVZhbHRlY2hBY2NvdW50Um91dGVzKHsgY29uZmlnOiBvcHRzPy5hY2NvdW50Q29uZmlnIH0pIDogW10pLFxuICAgICAgICAuLi4oaW5jbHVkZU9yZ2FuaXphdGlvblxuICAgICAgICAgID8gcHJvdmlkZVZhbHRlY2hPcmdhbml6YXRpb25Sb3V0ZXMoeyBjb25maWc6IG9wdHM/Lm9yZ2FuaXphdGlvbkNvbmZpZyB9KVxuICAgICAgICAgIDogW10pLFxuICAgICAgICAuLi4oaW5jbHVkZU5vdGlmaWNhdGlvblByZWZlcmVuY2VzXG4gICAgICAgICAgPyBwcm92aWRlVmFsdGVjaE5vdGlmaWNhdGlvblByZWZlcmVuY2VzUm91dGVzKHtcbiAgICAgICAgICAgICAgcGF0aDogb3B0cz8ubm90aWZpY2F0aW9uUHJlZmVyZW5jZXNQYXRoID8/ICdub3RpZmljYXRpb25zJyxcbiAgICAgICAgICAgICAgY29uZmlnOiBvcHRzPy5ub3RpZmljYXRpb25QcmVmZXJlbmNlc0NvbmZpZyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiBbXSksXG4gICAgICAgIC4uLihpbmNsdWRlUGVybWlzc2lvbnNcbiAgICAgICAgICA/IHByb3ZpZGVWYWx0ZWNoUGVybWlzc2lvbnNSb3V0ZXMoeyBjb25maWc6IG9wdHM/LnBlcm1pc3Npb25zQ29uZmlnIH0pXG4gICAgICAgICAgOiBbXSksXG4gICAgICAgIC4uLihvcHRzPy5leHRyYVJvdXRlcyA/PyBbXSksXG4gICAgICBdLFxuICAgIH0sXG4gIF07XG59XG4iXX0=
@@ -56,6 +56,21 @@ export class PreferencesService {
56
56
  this._updateInFlight = false;
57
57
  const destroyRef = inject(DestroyRef);
58
58
  destroyRef.onDestroy(() => this.unbind());
59
+ // Seed `_fontSize` con el valor que FontSizeService ya restauró desde
60
+ // localStorage en su constructor (providedIn root → ya corrió al inyectarlo
61
+ // acá). Sin esto, el signal arranca en 'medium' y el effect de abajo —que
62
+ // dispara al marcarse `synced`— forzaría 'medium' pisando el tamaño
63
+ // restaurado cuando el snapshot Firestore NO trae `fontSize` (user sin ese
64
+ // campo en el mirror). Bug: cambias el tamaño, refrescas y se pierde.
65
+ if (this.fontSizeService) {
66
+ this._fontSize.set(this.fontSizeService.size());
67
+ }
68
+ // Mismo seed para theme — ThemeService aplica su valor de localStorage en
69
+ // bootstrap (`currentOption`). Necesario para desgatear el effect de theme
70
+ // (abajo) sin que el default 'auto' pise el tema restaurado.
71
+ if (this.themeService) {
72
+ this._theme.set(this.themeService.currentOption);
73
+ }
59
74
  // Auto-bind al user actual. effect() corre en injection context (constructor OK).
60
75
  // allowSignalWrites: bindToUser/unbind escriben `_synced` (señal interna sin
61
76
  // dependencias del propio effect) → seguro y necesario.
@@ -68,14 +83,18 @@ export class PreferencesService {
68
83
  this.unbind();
69
84
  }
70
85
  }, { allowSignalWrites: true });
71
- // Side-effect: aplicar theme local cuando llega snapshot real.
72
- // OJO: usar `toggleUserPreference()` y NO el setter `Theme =`. El setter
73
- // solo persiste localStorage + emite el BehaviorSubject; no aplica las
74
- // clases `body.dark`/`body.light` que el palette `dark.class.css` de
75
- // Ionic necesita para conmutar el tema visible.
86
+ // Side-effect: aplicar theme. SIN gate `_synced` (local-first, igual que
87
+ // fontSize): ThemeService/localStorage es la verdad del dispositivo y
88
+ // `_theme` viene seedeado arriba. Aplicar siempre que cambie da apply
89
+ // optimista al instante; el sync cross-device también aplica vía snapshot.
90
+ // Gatearlo en `_synced` hacía que el primer cambio de un user nuevo (sin doc
91
+ // Firestore aún) no se aplicara: el selector mostraba "Dark" pero el tema no
92
+ // cambiaba. (El selector de idioma no sufre esto porque val-language-selector
93
+ // llama i18n.setLanguage directo; el de theme depende solo de este effect.)
94
+ // OJO: usar `toggleUserPreference()` y NO el setter `Theme =`. El setter solo
95
+ // persiste localStorage + emite el BehaviorSubject; no aplica las clases
96
+ // `body.dark`/`html.ion-palette-dark` que el palette de Ionic necesita.
76
97
  effect(() => {
77
- if (!this._synced())
78
- return;
79
98
  const t = this._theme();
80
99
  if (this.themeService) {
81
100
  this.themeService.toggleUserPreference(t);
@@ -90,11 +109,17 @@ export class PreferencesService {
90
109
  this.i18n.setLanguage(l);
91
110
  }
92
111
  });
93
- // Side-effect: aplicar fontSize local cuando llega snapshot real.
112
+ // Side-effect: aplicar fontSize.
113
+ // SIN gate `_synced` (igual que theme): el tamaño es una
114
+ // preferencia local-first — FontSizeService/localStorage es la verdad del
115
+ // dispositivo y `_fontSize` ya viene seedeado de ahí arriba. Aplicar siempre
116
+ // que cambie permite que el cambio del usuario surta efecto al instante
117
+ // (optimista, sin esperar el round-trip a Firestore) y que el sync
118
+ // cross-device también aplique al llegar el snapshot. Gatearlo en `_synced`
119
+ // hacía que el primer cambio de un user nuevo (sin doc Firestore aún) no se
120
+ // aplicara: el selector mostraba "Grande" pero el font-size no cambiaba.
94
121
  // allowSignalWrites: fontSizeService.setSize() escribe this._size (signal).
95
122
  effect(() => {
96
- if (!this._synced())
97
- return;
98
123
  const fs = this._fontSize();
99
124
  if (this.fontSizeService) {
100
125
  this.fontSizeService.setSize(fs);
@@ -222,4 +247,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
222
247
  }] }, { type: i6.I18nService, decorators: [{
223
248
  type: Optional
224
249
  }] }] });
225
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvcHJlZmVyZW5jZXMvcHJlZmVyZW5jZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpHLE9BQU8sRUFBZ0IsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQWdCckQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUVILE1BQU0sT0FBTyxrQkFBa0I7SUE2QjdCLFlBQ3VDLE1BQXlCLEVBQ3RELFNBQTJCLEVBQzNCLElBQWlCLEVBQ2pCLElBQWdCLEVBQ0osWUFBaUMsRUFDakMsZUFBdUMsRUFDdkMsSUFBd0I7UUFOUCxXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUN0RCxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDSixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBQ3ZDLFNBQUksR0FBSixJQUFJLENBQW9CO1FBbkM3QixXQUFNLEdBQUcsTUFBTSxDQUFtQixNQUFNLENBQUMsQ0FBQztRQUMxQyxjQUFTLEdBQUcsTUFBTSxDQUFzQixJQUFJLENBQUMsQ0FBQztRQUM5QyxjQUFTLEdBQUcsTUFBTSxDQUFzQixRQUFRLENBQUMsQ0FBQztRQUNuRSxvRkFBb0Y7UUFDcEYsZ0VBQWdFO1FBQy9DLHlCQUFvQixHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUMvRCxzRkFBc0Y7UUFDckUs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QUFDO1lBQzFDLElBQUksR0FBRyxDQUFDLFFBQVE7Z0JBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25ELElBQUksR0FBRyxDQUFDLFFBQVE7Z0JBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25ELElBQUksR0FBRyxDQUFDLGFBQWEsSUFBSSxPQUFPLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUN2RSxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUQsQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLE1BQU07UUFDWixJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBQzlCLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7K0dBbE1VLGtCQUFrQixrQkE4Qm5CLG1CQUFtQjttSEE5QmxCLGtCQUFrQixjQURMLE1BQU07OzRGQUNuQixrQkFBa0I7a0JBRDlCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkErQjdCLE1BQU07MkJBQUMsbUJBQW1COzswQkFJMUIsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIGVmZmVjdCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgVkFMVEVDSF9BVVRIX0NPTkZJRyB9IGZyb20gJy4uL2F1dGgvY29uZmlnJztcbmltcG9ydCB7IFZhbHRlY2hBdXRoQ29uZmlnIH0gZnJvbSAnLi4vYXV0aC90eXBlcyc7XG5pbXBvcnQgeyBGaXJlc3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vZmlyZWJhc2UvZmlyZXN0b3JlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSTE4bkxhbmcgfSBmcm9tICcuLi9pMThuL3R5cGVzJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vaTE4bi9pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGhlbWVPcHRpb24sIFRoZW1lU2VydmljZSB9IGZyb20gJy4uL3RoZW1lLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9udFNpemVPcHRpb24sIEZvbnRTaXplU2VydmljZSB9IGZyb20gJy4uL2ZvbnQtc2l6ZS9mb250LXNpemUuc2VydmljZSc7XG5pbXBvcnQge1xuICBQcmVmZXJlbmNlc0RvY3VtZW50LFxuICBQcmVmZXJlbmNlc0ZvbnRTaXplLFxuICBQcmVmZXJlbmNlc0xhbmd1YWdlLFxuICBQcmVmZXJlbmNlc1RoZW1lLFxuICBQcmVmZXJlbmNlc1VwZGF0ZSxcbiAgUHJlZmVyZW5jZXNVcGRhdGVSZXNwb25zZSxcbn0gZnJvbSAnLi9wcmVmZXJlbmNlcy50eXBlcyc7XG5cbi8qKlxuICogUHJlZmVyZW5jZXNTZXJ2aWNlIOKAlCBwcmVmZXJlbmNpYXMgZGVsIHVzZXIgZW4gZWwgZG9jIGNhbsOzbmljbyBGaXJlc3RvcmVcbiAqIGAvYXBwcy97YXBwSWR9L3VzZXJzL3t1aWR9L3ByZWZlcmVuY2VzL21haW5gLlxuICpcbiAqIFJlYWQgcmVhY3Rpdm8gKHNpZ25hbHMpIHZpYSBsaXN0ZW5lciBGaXJlc3RvcmUuXG4gKiBXcml0ZSB2aWEgYFBVVCAvdjIvYXV0aC9wcmVmZXJlbmNlc2AgKGNsaWVudGUgTlVOQ0EgZXNjcmliZSBGaXJlc3RvcmUgZGlyZWN0byDigJRcbiAqIHZlciBtZW1vcmlhIGBmZWVkYmFja19ub19kaXJlY3RfZmlyZXN0b3JlX3dyaXRlc2ApLlxuICpcbiAqIFNpZGUtZWZmZWN0cyBhdXRvbcOhdGljb3M6XG4gKiAtIEN1YW5kbyBgdGhlbWUoKWAgY2FtYmlhIOKGkiBgVGhlbWVTZXJ2aWNlLlRoZW1lID0gLi4uYFxuICogLSBDdWFuZG8gYGxhbmd1YWdlKClgIGNhbWJpYSDihpIgYEkxOG5TZXJ2aWNlLnNldExhbmd1YWdlKC4uLilgXG4gKlxuICogQXV0by1iaW5kIGFsIHVzZXIgYWN0dWFsIHZpYSBgQXV0aFNlcnZpY2UudXNlcigpYC4gU2luIHVzZXIgKGxvZ291dCkg4oaSIHVuYmluZC5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQcmVmZXJlbmNlc1NlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IF90aGVtZSA9IHNpZ25hbDxQcmVmZXJlbmNlc1RoZW1lPignYXV0bycpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9sYW5ndWFnZSA9IHNpZ25hbDxQcmVmZXJlbmNlc0xhbmd1YWdlPignZXMnKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZm9udFNpemUgPSBzaWduYWw8UHJlZmVyZW5jZXNGb250U2l6ZT4oJ21lZGl1bScpO1xuICAvLyBEZWZhdWx0IGBmYWxzZWAgKG9wdC1pbikuIEVsIHVzZXIgZGViZSBhY3RpdmFyIGV4cGzDrWNpdGFtZW50ZSBsYXMgbm90aWZpY2FjaW9uZXM7XG4gIC8vIG5vIGFzdW1pbW9zIGNvbnNlbnRpbWllbnRvIGltcGzDrWNpdG8uIEJhY2tlbmQgZGViZSBjb2luY2lkaXIuXG4gIHByaXZhdGUgcmVhZG9ubHkgX25vdGlmaWNhdGlvbnNNYXN0ZXIgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICAvKiogYHRydWVgIGRlc3B1w6lzIGRlbCBwcmltZXIgc25hcHNob3QgRmlyZXN0b3JlLiBBbnRlcywgZGVmYXVsdHMgc2luIHNpZGUtZWZmZWN0cy4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfc3luY2VkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICByZWFkb25seSB0aGVtZSA9IHRoaXMuX3RoZW1lLmFzUmVhZG9ubHkoKTtcbiAgcmVhZG9ubHkgbGFuZ3VhZ2UgPSB0aGlzLl9sYW5ndWFnZS5hc1JlYWRvbmx5KCk7XG4gIHJlYWRvbmx5IGZvbnRTaXplID0gdGhpcy5fZm9udFNpemUuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBub3RpZmljYXRpb25zTWFzdGVyID0gdGhpcy5fbm90aWZpY2F0aW9uc01hc3Rlci5hc1JlYWRvbmx5KCk7XG4gIHJlYWRvbmx5IHN5bmNlZCA9IHRoaXMuX3N5bmNlZC5hc1JlYWRvbmx5KCk7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgY3VycmVudFVzZXJJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIGB0cnVlYCBtaWVudHJhcyB1biBgdXBkYXRlKClgIGVzdMOhIGVuIHZ1ZWxvIChQVVQgYWwgYmFja2VuZCkuXG4gICAqXG4gICAqIEVsIGxpc3RlbmVyIEZpcmVzdG9yZSAoYGJpbmRUb1VzZXJgKSBlcyByZWFsLXRpbWUgeSBwdWVkZSBlbWl0aXIgdW4gc25hcHNob3RcbiAgICogKnN0YWxlKiDigJQgYW50ZXJpb3IgYWwgc3luYyBkZWwgYmFja2VuZCDigJQgcXVlIHBpc2Fyw61hIGVsIHZhbG9yIG9wdGltaXN0YSBkZVxuICAgKiBgX25vdGlmaWNhdGlvbnNNYXN0ZXJgIHkgcmV2ZXJ0aXLDrWEgZWwgdG9nZ2xlLiBNaWVudHJhcyBlc3RlIGZsYWcgZXN0w6kgYHRydWVgXG4gICAqIGVsIGxpc3RlbmVyIGlnbm9yYSBsYXMgZW1pc2lvbmVzOyBlbCBgdXBkYXRlKClgIHlhIGFsaW5lYSBsYXMgc2XDsWFsZXMgY29uIGxhXG4gICAqIHJlc3B1ZXN0YSBkZWwgYmFja2VuZCBhbCB0ZXJtaW5hci5cbiAgICovXG4gIHByaXZhdGUgX3VwZGF0ZUluRmxpZ2h0ID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChWQUxURUNIX0FVVEhfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogVmFsdGVjaEF1dGhDb25maWcsXG4gICAgcHJpdmF0ZSBmaXJlc3RvcmU6IEZpcmVzdG9yZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSB0aGVtZVNlcnZpY2U6IFRoZW1lU2VydmljZSB8IG51bGwsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBmb250U2l6ZVNlcnZpY2U6IEZvbnRTaXplU2VydmljZSB8IG51bGwsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBpMThuOiBJMThuU2VydmljZSB8IG51bGxcbiAgKSB7XG4gICAgY29uc3QgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBkZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB0aGlzLnVuYmluZCgpKTtcblxuICAgIC8vIEF1dG8tYmluZCBhbCB1c2VyIGFjdHVhbC4gZWZmZWN0KCkgY29ycmUgZW4gaW5qZWN0aW9uIGNvbnRleHQgKGNvbnN0cnVjdG9yIE9LKS5cbiAgICAvLyBhbGxvd1NpZ25hbFdyaXRlczogYmluZFRvVXNlci91bmJpbmQgZXNjcmliZW4gYF9zeW5jZWRgIChzZcOxYWwgaW50ZXJuYSBzaW5cbiAgICAvLyBkZXBlbmRlbmNpYXMgZGVsIHByb3BpbyBlZmZlY3QpIOKGkiBzZWd1cm8geSBuZWNlc2FyaW8uXG4gICAgZWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCB1c2VyID0gdGhpcy5hdXRoLnVzZXIoKTtcbiAgICAgICAgaWYgKHVzZXI/LnVzZXJJZCkge1xuICAgICAgICAgIHRoaXMuYmluZFRvVXNlcih1c2VyLnVzZXJJZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy51bmJpbmQoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICk7XG5cbiAgICAvLyBTaWRlLWVmZmVjdDogYXBsaWNhciB0aGVtZSBsb2NhbCBjdWFuZG8gbGxlZ2Egc25hcHNob3QgcmVhbC5cbiAgICAvLyBPSk86IHVzYXIgYHRvZ2dsZVVzZXJQcmVmZXJlbmNlKClgIHkgTk8gZWwgc2V0dGVyIGBUaGVtZSA9YC4gRWwgc2V0dGVyXG4gICAgLy8gc29sbyBwZXJzaXN0ZSBsb2NhbFN0b3JhZ2UgKyBlbWl0ZSBlbCBCZWhhdmlvclN1YmplY3Q7IG5vIGFwbGljYSBsYXNcbiAgICAvLyBjbGFzZXMgYGJvZHkuZGFya2AvYGJvZHkubGlnaHRgIHF1ZSBlbCBwYWxldHRlIGBkYXJrLmNsYXNzLmNzc2AgZGVcbiAgICAvLyBJb25pYyBuZWNlc2l0YSBwYXJhIGNvbm11dGFyIGVsIHRlbWEgdmlzaWJsZS5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9zeW5jZWQoKSkgcmV0dXJuO1xuICAgICAgY29uc3QgdCA9IHRoaXMuX3RoZW1lKCk7XG4gICAgICBpZiAodGhpcy50aGVtZVNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy50aGVtZVNlcnZpY2UudG9nZ2xlVXNlclByZWZlcmVuY2UodCBhcyBUaGVtZU9wdGlvbik7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBTaWRlLWVmZmVjdDogYXBsaWNhciBsYW5ndWFnZSBsb2NhbCBjdWFuZG8gbGxlZ2Egc25hcHNob3QgcmVhbC5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLl9zeW5jZWQoKSkgcmV0dXJuO1xuICAgICAgY29uc3QgbCA9IHRoaXMuX2xhbmd1YWdlKCk7XG4gICAgICBpZiAodGhpcy5pMThuICYmIHRoaXMuaTE4bi5sYW5nKCkgIT09IGwpIHtcbiAgICAgICAgdGhpcy5pMThuLnNldExhbmd1YWdlKGwgYXMgSTE4bkxhbmcpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gU2lkZS1lZmZlY3Q6IGFwbGljYXIgZm9udFNpemUgbG9jYWwgY3VhbmRvIGxsZWdhIHNuYXBzaG90IHJlYWwuXG4gICAgLy8gYWxsb3dTaWduYWxXcml0ZXM6IGZvbnRTaXplU2VydmljZS5zZXRTaXplKCkgZXNjcmliZSB0aGlzLl9zaXplIChzaWduYWwpLlxuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLl9zeW5jZWQoKSkgcmV0dXJuO1xuICAgICAgICBjb25zdCBmcyA9IHRoaXMuX2ZvbnRTaXplKCk7XG4gICAgICAgIGlmICh0aGlzLmZvbnRTaXplU2VydmljZSkge1xuICAgICAgICAgIHRoaXMuZm9udFNpemVTZXJ2aWNlLnNldFNpemUoZnMgYXMgRm9udFNpemVPcHRpb24pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKiBBY3R1YWxpemEgcHJlZmVyZW5jaWFzIHZpYSBiYWNrZW5kLiBPcHRpbWlzdGljIFVJOiBhcGxpY2EgbG9jYWwsIHJldmllcnRlIHNpIGZhbGxhLiAqL1xuICBhc3luYyB1cGRhdGUocGFydGlhbDogUHJlZmVyZW5jZXNVcGRhdGUpOiBQcm9taXNlPFByZWZlcmVuY2VzVXBkYXRlUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L3YyL2F1dGgvcHJlZmVyZW5jZXNgO1xuXG4gICAgY29uc3QgcHJldiA9IHtcbiAgICAgIHRoZW1lOiB0aGlzLl90aGVtZSgpLFxuICAgICAgbGFuZ3VhZ2U6IHRoaXMuX2xhbmd1YWdlKCksXG4gICAgICBmb250U2l6ZTogdGhpcy5fZm9udFNpemUoKSxcbiAgICAgIG1hc3RlcjogdGhpcy5fbm90aWZpY2F0aW9uc01hc3RlcigpLFxuICAgIH07XG5cbiAgICBpZiAocGFydGlhbC50aGVtZSkgdGhpcy5fdGhlbWUuc2V0KHBhcnRpYWwudGhlbWUpO1xuICAgIGlmIChwYXJ0aWFsLmxhbmd1YWdlKSB0aGlzLl9sYW5ndWFnZS5zZXQocGFydGlhbC5sYW5ndWFnZSk7XG4gICAgaWYgKHBhcnRpYWwuZm9udFNpemUpIHRoaXMuX2ZvbnRTaXplLnNldChwYXJ0aWFsLmZvbnRTaXplKTtcbiAgICBpZiAocGFydGlhbC5ub3RpZmljYXRpb25zICYmIHR5cGVvZiBwYXJ0aWFsLm5vdGlmaWNhdGlvbnMubWFzdGVyID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnNNYXN0ZXIuc2V0KHBhcnRpYWwubm90aWZpY2F0aW9ucy5tYXN0ZXIpO1xuICAgIH1cblxuICAgIC8vIEJsb3F1ZWFyIGVsIGxpc3RlbmVyIEZpcmVzdG9yZSBtaWVudHJhcyBlbCBQVVQgZXN0w6EgZW4gdnVlbG86IHVuIHNuYXBzaG90XG4gICAgLy8gc3RhbGUgbm8gZGViZSBwaXNhciBlbCB2YWxvciBvcHRpbWlzdGEgcmVjacOpbiBhcGxpY2Fkby5cbiAgICB0aGlzLl91cGRhdGVJbkZsaWdodCA9IHRydWU7XG5cbiAgICB0cnkge1xuICAgICAgLy8gRW52aWFyIGFwcElkIGV4cGzDrWNpdG8g4oCUIGVsIGJhY2tlbmQgbG8gdXNhIHBhcmEgZXNjcmliaXIgZWwgbWlycm9yXG4gICAgICAvLyBGaXJlc3RvcmUgZW4gYXBwcy97YXBwSWR9Ly4uLiBjb3JyZWN0bywgc2luIGRlcGVuZGVyIGRlbCBoZWFkZXIgT3JpZ2luXG4gICAgICAvLyAocXVlIGVuIFBXQSBpT1MgcHVlZGUgbm8gcmVzb2x2ZXIgYWwgQXBwSUQgZXNwZXJhZG8pLlxuICAgICAgY29uc3QgYm9keSA9IHsgLi4ucGFydGlhbCwgYXBwSWQ6IHRoaXMuY29uZmlnLmFwcElkIH07XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHAucHV0PFByZWZlcmVuY2VzVXBkYXRlUmVzcG9uc2U+KHVybCwgYm9keSkpO1xuICAgICAgLy8gRWwgbGlzdGVuZXIgRmlyZXN0b3JlIGVzIGxhIGZ1ZW50ZSBmaW5hbCwgcGVybyBhbGluZWFyIHlhIGNvbiBsYVxuICAgICAgLy8gcmVzcHVlc3RhIGRlbCBiYWNrZW5kIGFjZWxlcmEgVVggKGVzcGVjaWFsbWVudGUgc2kgZWwgbGlzdGVuZXJcbiAgICAgIC8vIHRhcmRhIGVuIHByb3BhZ2FyKS5cbiAgICAgIGlmIChyZXMudGhlbWUpIHRoaXMuX3RoZW1lLnNldChyZXMudGhlbWUgYXMgUHJlZmVyZW5jZXNUaGVtZSk7XG4gICAgICBpZiAocmVzLmxhbmd1YWdlKSB0aGlzLl9sYW5ndWFnZS5zZXQocmVzLmxhbmd1YWdlIGFzIFByZWZlcmVuY2VzTGFuZ3VhZ2UpO1xuICAgICAgaWYgKHJlcy5mb250U2l6ZSkgdGhpcy5fZm9udFNpemUuc2V0KHJlcy5mb250U2l6ZSBhcyBQcmVmZXJlbmNlc0ZvbnRTaXplKTtcbiAgICAgIGlmICh0eXBlb2YgcmVzLm5vdGlmaWNhdGlvbnM/Lm1hc3RlciA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnNNYXN0ZXIuc2V0KHJlcy5ub3RpZmljYXRpb25zLm1hc3Rlcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgLy8gUmV2ZXJ0IG9wdGltaXN0aWMuXG4gICAgICB0aGlzLl90aGVtZS5zZXQocHJldi50aGVtZSk7XG4gICAgICB0aGlzLl9sYW5ndWFnZS5zZXQocHJldi5sYW5ndWFnZSk7XG4gICAgICB0aGlzLl9mb250U2l6ZS5zZXQocHJldi5mb250U2l6ZSk7XG4gICAgICB0aGlzLl9ub3RpZmljYXRpb25zTWFzdGVyLnNldChwcmV2Lm1hc3Rlcik7XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuX3VwZGF0ZUluRmxpZ2h0ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgc2V0VGhlbWUodGhlbWU6IFByZWZlcmVuY2VzVGhlbWUpOiBQcm9taXNlPFByZWZlcmVuY2VzVXBkYXRlUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGUoeyB0aGVtZSB9KTtcbiAgfVxuXG4gIHNldExhbmd1YWdlKGxhbmd1YWdlOiBQcmVmZXJlbmNlc0xhbmd1YWdlKTogUHJvbWlzZTxQcmVmZXJlbmNlc1VwZGF0ZVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlKHsgbGFuZ3VhZ2UgfSk7XG4gIH1cblxuICBzZXRGb250U2l6ZShmb250U2l6ZTogUHJlZmVyZW5jZXNGb250U2l6ZSk6IFByb21pc2U8UHJlZmVyZW5jZXNVcGRhdGVSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZSh7IGZvbnRTaXplIH0pO1xuICB9XG5cbiAgc2V0Tm90aWZpY2F0aW9uc01hc3RlcihlbmFibGVkOiBib29sZWFuKTogUHJvbWlzZTxQcmVmZXJlbmNlc1VwZGF0ZVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlKHsgbm90aWZpY2F0aW9uczogeyBtYXN0ZXI6IGVuYWJsZWQgfSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYmluZFRvVXNlcih1c2VySWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmN1cnJlbnRVc2VySWQgPT09IHVzZXJJZCAmJiB0aGlzLnN1YnNjcmlwdGlvbikgcmV0dXJuO1xuICAgIHRoaXMudW5iaW5kKCk7XG4gICAgdGhpcy5jdXJyZW50VXNlcklkID0gdXNlcklkO1xuICAgIC8vIEZpcmVzdG9yZVNlcnZpY2UuZG9jQ2hhbmdlcyBwcmVmaWphIGF1dG9tw6F0aWNhbWVudGUgYGFwcHMve2FwcElkfS9gXG4gICAgLy8gY3VhbmRvIGBjb25maWcuYXBwSWRgIGVzdMOhIHNldGVhZG8gZW4gVmFsdGVjaEF1dGhDb25maWcuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmZpcmVzdG9yZVxuICAgICAgLmRvY0NoYW5nZXM8UHJlZmVyZW5jZXNEb2N1bWVudCAmIHsgaWQ/OiBzdHJpbmcgfT4oYHVzZXJzLyR7dXNlcklkfS9wcmVmZXJlbmNlc2AsICdtYWluJylcbiAgICAgIC5zdWJzY3JpYmUoZG9jID0+IHtcbiAgICAgICAgaWYgKCFkb2MpIHtcbiAgICAgICAgICAvLyBEb2Mgbm8gZXhpc3RlIGHDum4gKHVzZXIgbnVldm8sIHNpbiBwcmltZXIgc3luYykuIE1hbnRlbmVtb3NcbiAgICAgICAgICAvLyBkZWZhdWx0cyBsb2NhbGVzIHBlcm8gTk8gbWFyY2Ftb3Mgc3luY2VkIOKAlCBsb3Mgc2lkZS1lZmZlY3RzIG5vXG4gICAgICAgICAgLy8gcGlzYW4gZWwgdGhlbWUvbGFuZyBsb2NhbGVzIGNvbiB2YWxvcmVzIGFyYml0cmFyaW9zLlxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZ25vcmFyIGVtaXNpb25lcyBkZWwgbGlzdGVuZXIgbWllbnRyYXMgaGF5IHVuIHVwZGF0ZSgpIGVuIHZ1ZWxvOiB1blxuICAgICAgICAvLyBzbmFwc2hvdCBzdGFsZSAoYW50ZXJpb3IgYWwgc3luYyBkZWwgYmFja2VuZCkgcmV2ZXJ0aXLDrWEgZWwgdmFsb3JcbiAgICAgICAgLy8gb3B0aW1pc3RhLiBFbCB1cGRhdGUoKSB5YSBhbGluZWEgbGFzIHNlw7FhbGVzIGNvbiBsYSByZXNwdWVzdGEgcmVhbC5cbiAgICAgICAgaWYgKHRoaXMuX3VwZGF0ZUluRmxpZ2h0KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkb2MudGhlbWUpIHRoaXMuX3RoZW1lLnNldChkb2MudGhlbWUpO1xuICAgICAgICBpZiAoZG9jLmxhbmd1YWdlKSB0aGlzLl9sYW5ndWFnZS5zZXQoZG9jLmxhbmd1YWdlKTtcbiAgICAgICAgaWYgKGRvYy5mb250U2l6ZSkgdGhpcy5fZm9udFNpemUuc2V0KGRvYy5mb250U2l6ZSk7XG4gICAgICAgIGlmIChkb2Mubm90aWZpY2F0aW9ucyAmJiB0eXBlb2YgZG9jLm5vdGlmaWNhdGlvbnMubWFzdGVyID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zTWFzdGVyLnNldChkb2Mubm90aWZpY2F0aW9ucy5tYXN0ZXIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3N5bmNlZC5zZXQodHJ1ZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdW5iaW5kKCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuY3VycmVudFVzZXJJZCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLl9zeW5jZWQuc2V0KGZhbHNlKTtcbiAgfVxufVxuIl19
250
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvcHJlZmVyZW5jZXMvcHJlZmVyZW5jZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpHLE9BQU8sRUFBZ0IsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQWdCckQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUVILE1BQU0sT0FBTyxrQkFBa0I7SUE2QjdCLFlBQ3VDLE1BQXlCLEVBQ3RELFNBQTJCLEVBQzNCLElBQWlCLEVBQ2pCLElBQWdCLEVBQ0osWUFBaUMsRUFDakMsZUFBdUMsRUFDdkMsSUFBd0I7UUFOUCxXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUN0RCxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDSixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsb0JBQWUsR0FBZixlQUFlLENBQXdCO1FBQ3ZDLFNBQUksR0FBSixJQUFJLENBQW9CO1FBbkM3QixXQUFNLEdBQUcsTUFBTSxDQUFtQixNQUFNLENBQUMsQ0FBQztRQUMxQyxjQUFTLEdBQUcsTUFBTSxDQUFzQixJQUFJLENBQUMsQ0FBQztRQUM5QyxjQUFTLEdBQUcsTUFBTSxDQUFzQixRQUFRLENBQUMsQ0FBQztRQUNuRSxvRkFBb0Y7UUFDcEYsZ0VBQWdFO1FBQy9DLHlCQUFvQixHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUMvRCxzRkFBc0Y7UUFDckUs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LEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7UUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7UUFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQzsrR0EvTlUsa0JBQWtCLGtCQThCbkIsbUJBQW1CO21IQTlCbEIsa0JBQWtCLGNBREwsTUFBTTs7NEZBQ25CLGtCQUFrQjtrQkFEOUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQStCN0IsTUFBTTsyQkFBQyxtQkFBbUI7OzBCQUkxQixRQUFROzswQkFDUixRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdHJveVJlZiwgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCwgZWZmZWN0LCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9hdXRoL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBWQUxURUNIX0FVVEhfQ09ORklHIH0gZnJvbSAnLi4vYXV0aC9jb25maWcnO1xuaW1wb3J0IHsgVmFsdGVjaEF1dGhDb25maWcgfSBmcm9tICcuLi9hdXRoL3R5cGVzJztcbmltcG9ydCB7IEZpcmVzdG9yZVNlcnZpY2UgfSBmcm9tICcuLi9maXJlYmFzZS9maXJlc3RvcmUuc2VydmljZSc7XG5pbXBvcnQgeyBJMThuTGFuZyB9IGZyb20gJy4uL2kxOG4vdHlwZXMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi9pMThuL2kxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBUaGVtZU9wdGlvbiwgVGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi4vdGhlbWUuc2VydmljZSc7XG5pbXBvcnQgeyBGb250U2l6ZU9wdGlvbiwgRm9udFNpemVTZXJ2aWNlIH0gZnJvbSAnLi4vZm9udC1zaXplL2ZvbnQtc2l6ZS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIFByZWZlcmVuY2VzRG9jdW1lbnQsXG4gIFByZWZlcmVuY2VzRm9udFNpemUsXG4gIFByZWZlcmVuY2VzTGFuZ3VhZ2UsXG4gIFByZWZlcmVuY2VzVGhlbWUsXG4gIFByZWZlcmVuY2VzVXBkYXRlLFxuICBQcmVmZXJlbmNlc1VwZGF0ZVJlc3BvbnNlLFxufSBmcm9tICcuL3ByZWZlcmVuY2VzLnR5cGVzJztcblxuLyoqXG4gKiBQcmVmZXJlbmNlc1NlcnZpY2Ug4oCUIHByZWZlcmVuY2lhcyBkZWwgdXNlciBlbiBlbCBkb2MgY2Fuw7NuaWNvIEZpcmVzdG9yZVxuICogYC9hcHBzL3thcHBJZH0vdXNlcnMve3VpZH0vcHJlZmVyZW5jZXMvbWFpbmAuXG4gKlxuICogUmVhZCByZWFjdGl2byAoc2lnbmFscykgdmlhIGxpc3RlbmVyIEZpcmVzdG9yZS5cbiAqIFdyaXRlIHZpYSBgUFVUIC92Mi9hdXRoL3ByZWZlcmVuY2VzYCAoY2xpZW50ZSBOVU5DQSBlc2NyaWJlIEZpcmVzdG9yZSBkaXJlY3RvIOKAlFxuICogdmVyIG1lbW9yaWEgYGZlZWRiYWNrX25vX2RpcmVjdF9maXJlc3RvcmVfd3JpdGVzYCkuXG4gKlxuICogU2lkZS1lZmZlY3RzIGF1dG9tw6F0aWNvczpcbiAqIC0gQ3VhbmRvIGB0aGVtZSgpYCBjYW1iaWEg4oaSIGBUaGVtZVNlcnZpY2UuVGhlbWUgPSAuLi5gXG4gKiAtIEN1YW5kbyBgbGFuZ3VhZ2UoKWAgY2FtYmlhIOKGkiBgSTE4blNlcnZpY2Uuc2V0TGFuZ3VhZ2UoLi4uKWBcbiAqXG4gKiBBdXRvLWJpbmQgYWwgdXNlciBhY3R1YWwgdmlhIGBBdXRoU2VydmljZS51c2VyKClgLiBTaW4gdXNlciAobG9nb3V0KSDihpIgdW5iaW5kLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFByZWZlcmVuY2VzU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3RoZW1lID0gc2lnbmFsPFByZWZlcmVuY2VzVGhlbWU+KCdhdXRvJyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2xhbmd1YWdlID0gc2lnbmFsPFByZWZlcmVuY2VzTGFuZ3VhZ2U+KCdlcycpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9mb250U2l6ZSA9IHNpZ25hbDxQcmVmZXJlbmNlc0ZvbnRTaXplPignbWVkaXVtJyk7XG4gIC8vIERlZmF1bHQgYGZhbHNlYCAob3B0LWluKS4gRWwgdXNlciBkZWJlIGFjdGl2YXIgZXhwbMOtY2l0YW1lbnRlIGxhcyBub3RpZmljYWNpb25lcztcbiAgLy8gbm8gYXN1bWltb3MgY29uc2VudGltaWVudG8gaW1wbMOtY2l0by4gQmFja2VuZCBkZWJlIGNvaW5jaWRpci5cbiAgcHJpdmF0ZSByZWFkb25seSBfbm90aWZpY2F0aW9uc01hc3RlciA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIC8qKiBgdHJ1ZWAgZGVzcHXDqXMgZGVsIHByaW1lciBzbmFwc2hvdCBGaXJlc3RvcmUuIEFudGVzLCBkZWZhdWx0cyBzaW4gc2lkZS1lZmZlY3RzLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9zeW5jZWQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHJlYWRvbmx5IHRoZW1lID0gdGhpcy5fdGhlbWUuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBsYW5ndWFnZSA9IHRoaXMuX2xhbmd1YWdlLmFzUmVhZG9ubHkoKTtcbiAgcmVhZG9ubHkgZm9udFNpemUgPSB0aGlzLl9mb250U2l6ZS5hc1JlYWRvbmx5KCk7XG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbnNNYXN0ZXIgPSB0aGlzLl9ub3RpZmljYXRpb25zTWFzdGVyLmFzUmVhZG9ubHkoKTtcbiAgcmVhZG9ubHkgc3luY2VkID0gdGhpcy5fc3luY2VkLmFzUmVhZG9ubHkoKTtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBjdXJyZW50VXNlcklkPzogc3RyaW5nO1xuICAvKipcbiAgICogYHRydWVgIG1pZW50cmFzIHVuIGB1cGRhdGUoKWAgZXN0w6EgZW4gdnVlbG8gKFBVVCBhbCBiYWNrZW5kKS5cbiAgICpcbiAgICogRWwgbGlzdGVuZXIgRmlyZXN0b3JlIChgYmluZFRvVXNlcmApIGVzIHJlYWwtdGltZSB5IHB1ZWRlIGVtaXRpciB1biBzbmFwc2hvdFxuICAgKiAqc3RhbGUqIOKAlCBhbnRlcmlvciBhbCBzeW5jIGRlbCBiYWNrZW5kIOKAlCBxdWUgcGlzYXLDrWEgZWwgdmFsb3Igb3B0aW1pc3RhIGRlXG4gICAqIGBfbm90aWZpY2F0aW9uc01hc3RlcmAgeSByZXZlcnRpcsOtYSBlbCB0b2dnbGUuIE1pZW50cmFzIGVzdGUgZmxhZyBlc3TDqSBgdHJ1ZWBcbiAgICogZWwgbGlzdGVuZXIgaWdub3JhIGxhcyBlbWlzaW9uZXM7IGVsIGB1cGRhdGUoKWAgeWEgYWxpbmVhIGxhcyBzZcOxYWxlcyBjb24gbGFcbiAgICogcmVzcHVlc3RhIGRlbCBiYWNrZW5kIGFsIHRlcm1pbmFyLlxuICAgKi9cbiAgcHJpdmF0ZSBfdXBkYXRlSW5GbGlnaHQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFZBTFRFQ0hfQVVUSF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBWYWx0ZWNoQXV0aENvbmZpZyxcbiAgICBwcml2YXRlIGZpcmVzdG9yZTogRmlyZXN0b3JlU2VydmljZSxcbiAgICBwcml2YXRlIGF1dGg6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHRoZW1lU2VydmljZTogVGhlbWVTZXJ2aWNlIHwgbnVsbCxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGZvbnRTaXplU2VydmljZTogRm9udFNpemVTZXJ2aWNlIHwgbnVsbCxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGkxOG46IEkxOG5TZXJ2aWNlIHwgbnVsbFxuICApIHtcbiAgICBjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIGRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHRoaXMudW5iaW5kKCkpO1xuXG4gICAgLy8gU2VlZCBgX2ZvbnRTaXplYCBjb24gZWwgdmFsb3IgcXVlIEZvbnRTaXplU2VydmljZSB5YSByZXN0YXVyw7MgZGVzZGVcbiAgICAvLyBsb2NhbFN0b3JhZ2UgZW4gc3UgY29uc3RydWN0b3IgKHByb3ZpZGVkSW4gcm9vdCDihpIgeWEgY29ycmnDsyBhbCBpbnllY3RhcmxvXG4gICAgLy8gYWPDoSkuIFNpbiBlc3RvLCBlbCBzaWduYWwgYXJyYW5jYSBlbiAnbWVkaXVtJyB5IGVsIGVmZmVjdCBkZSBhYmFqbyDigJRxdWVcbiAgICAvLyBkaXNwYXJhIGFsIG1hcmNhcnNlIGBzeW5jZWRg4oCUIGZvcnphcsOtYSAnbWVkaXVtJyBwaXNhbmRvIGVsIHRhbWHDsW9cbiAgICAvLyByZXN0YXVyYWRvIGN1YW5kbyBlbCBzbmFwc2hvdCBGaXJlc3RvcmUgTk8gdHJhZSBgZm9udFNpemVgICh1c2VyIHNpbiBlc2VcbiAgICAvLyBjYW1wbyBlbiBlbCBtaXJyb3IpLiBCdWc6IGNhbWJpYXMgZWwgdGFtYcOxbywgcmVmcmVzY2FzIHkgc2UgcGllcmRlLlxuICAgIGlmICh0aGlzLmZvbnRTaXplU2VydmljZSkge1xuICAgICAgdGhpcy5fZm9udFNpemUuc2V0KHRoaXMuZm9udFNpemVTZXJ2aWNlLnNpemUoKSBhcyBQcmVmZXJlbmNlc0ZvbnRTaXplKTtcbiAgICB9XG5cbiAgICAvLyBNaXNtbyBzZWVkIHBhcmEgdGhlbWUg4oCUIFRoZW1lU2VydmljZSBhcGxpY2Egc3UgdmFsb3IgZGUgbG9jYWxTdG9yYWdlIGVuXG4gICAgLy8gYm9vdHN0cmFwIChgY3VycmVudE9wdGlvbmApLiBOZWNlc2FyaW8gcGFyYSBkZXNnYXRlYXIgZWwgZWZmZWN0IGRlIHRoZW1lXG4gICAgLy8gKGFiYWpvKSBzaW4gcXVlIGVsIGRlZmF1bHQgJ2F1dG8nIHBpc2UgZWwgdGVtYSByZXN0YXVyYWRvLlxuICAgIGlmICh0aGlzLnRoZW1lU2VydmljZSkge1xuICAgICAgdGhpcy5fdGhlbWUuc2V0KHRoaXMudGhlbWVTZXJ2aWNlLmN1cnJlbnRPcHRpb24gYXMgUHJlZmVyZW5jZXNUaGVtZSk7XG4gICAgfVxuXG4gICAgLy8gQXV0by1iaW5kIGFsIHVzZXIgYWN0dWFsLiBlZmZlY3QoKSBjb3JyZSBlbiBpbmplY3Rpb24gY29udGV4dCAoY29uc3RydWN0b3IgT0spLlxuICAgIC8vIGFsbG93U2lnbmFsV3JpdGVzOiBiaW5kVG9Vc2VyL3VuYmluZCBlc2NyaWJlbiBgX3N5bmNlZGAgKHNlw7FhbCBpbnRlcm5hIHNpblxuICAgIC8vIGRlcGVuZGVuY2lhcyBkZWwgcHJvcGlvIGVmZmVjdCkg4oaSIHNlZ3VybyB5IG5lY2VzYXJpby5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLmF1dGgudXNlcigpO1xuICAgICAgICBpZiAodXNlcj8udXNlcklkKSB7XG4gICAgICAgICAgdGhpcy5iaW5kVG9Vc2VyKHVzZXIudXNlcklkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnVuYmluZCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgKTtcblxuICAgIC8vIFNpZGUtZWZmZWN0OiBhcGxpY2FyIHRoZW1lLiBTSU4gZ2F0ZSBgX3N5bmNlZGAgKGxvY2FsLWZpcnN0LCBpZ3VhbCBxdWVcbiAgICAvLyBmb250U2l6ZSk6IFRoZW1lU2VydmljZS9sb2NhbFN0b3JhZ2UgZXMgbGEgdmVyZGFkIGRlbCBkaXNwb3NpdGl2byB5XG4gICAgLy8gYF90aGVtZWAgdmllbmUgc2VlZGVhZG8gYXJyaWJhLiBBcGxpY2FyIHNpZW1wcmUgcXVlIGNhbWJpZSBkYSBhcHBseVxuICAgIC8vIG9wdGltaXN0YSBhbCBpbnN0YW50ZTsgZWwgc3luYyBjcm9zcy1kZXZpY2UgdGFtYmnDqW4gYXBsaWNhIHbDrWEgc25hcHNob3QuXG4gICAgLy8gR2F0ZWFybG8gZW4gYF9zeW5jZWRgIGhhY8OtYSBxdWUgZWwgcHJpbWVyIGNhbWJpbyBkZSB1biB1c2VyIG51ZXZvIChzaW4gZG9jXG4gICAgLy8gRmlyZXN0b3JlIGHDum4pIG5vIHNlIGFwbGljYXJhOiBlbCBzZWxlY3RvciBtb3N0cmFiYSBcIkRhcmtcIiBwZXJvIGVsIHRlbWEgbm9cbiAgICAvLyBjYW1iaWFiYS4gKEVsIHNlbGVjdG9yIGRlIGlkaW9tYSBubyBzdWZyZSBlc3RvIHBvcnF1ZSB2YWwtbGFuZ3VhZ2Utc2VsZWN0b3JcbiAgICAvLyBsbGFtYSBpMThuLnNldExhbmd1YWdlIGRpcmVjdG87IGVsIGRlIHRoZW1lIGRlcGVuZGUgc29sbyBkZSBlc3RlIGVmZmVjdC4pXG4gICAgLy8gT0pPOiB1c2FyIGB0b2dnbGVVc2VyUHJlZmVyZW5jZSgpYCB5IE5PIGVsIHNldHRlciBgVGhlbWUgPWAuIEVsIHNldHRlciBzb2xvXG4gICAgLy8gcGVyc2lzdGUgbG9jYWxTdG9yYWdlICsgZW1pdGUgZWwgQmVoYXZpb3JTdWJqZWN0OyBubyBhcGxpY2EgbGFzIGNsYXNlc1xuICAgIC8vIGBib2R5LmRhcmtgL2BodG1sLmlvbi1wYWxldHRlLWRhcmtgIHF1ZSBlbCBwYWxldHRlIGRlIElvbmljIG5lY2VzaXRhLlxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCB0ID0gdGhpcy5fdGhlbWUoKTtcbiAgICAgIGlmICh0aGlzLnRoZW1lU2VydmljZSkge1xuICAgICAgICB0aGlzLnRoZW1lU2VydmljZS50b2dnbGVVc2VyUHJlZmVyZW5jZSh0IGFzIFRoZW1lT3B0aW9uKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIFNpZGUtZWZmZWN0OiBhcGxpY2FyIGxhbmd1YWdlIGxvY2FsIGN1YW5kbyBsbGVnYSBzbmFwc2hvdCByZWFsLlxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuX3N5bmNlZCgpKSByZXR1cm47XG4gICAgICBjb25zdCBsID0gdGhpcy5fbGFuZ3VhZ2UoKTtcbiAgICAgIGlmICh0aGlzLmkxOG4gJiYgdGhpcy5pMThuLmxhbmcoKSAhPT0gbCkge1xuICAgICAgICB0aGlzLmkxOG4uc2V0TGFuZ3VhZ2UobCBhcyBJMThuTGFuZyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBTaWRlLWVmZmVjdDogYXBsaWNhciBmb250U2l6ZS5cbiAgICAvLyBTSU4gZ2F0ZSBgX3N5bmNlZGAgKGlndWFsIHF1ZSB0aGVtZSk6IGVsIHRhbWHDsW8gZXMgdW5hXG4gICAgLy8gcHJlZmVyZW5jaWEgbG9jYWwtZmlyc3Qg4oCUIEZvbnRTaXplU2VydmljZS9sb2NhbFN0b3JhZ2UgZXMgbGEgdmVyZGFkIGRlbFxuICAgIC8vIGRpc3Bvc2l0aXZvIHkgYF9mb250U2l6ZWAgeWEgdmllbmUgc2VlZGVhZG8gZGUgYWjDrSBhcnJpYmEuIEFwbGljYXIgc2llbXByZVxuICAgIC8vIHF1ZSBjYW1iaWUgcGVybWl0ZSBxdWUgZWwgY2FtYmlvIGRlbCB1c3VhcmlvIHN1cnRhIGVmZWN0byBhbCBpbnN0YW50ZVxuICAgIC8vIChvcHRpbWlzdGEsIHNpbiBlc3BlcmFyIGVsIHJvdW5kLXRyaXAgYSBGaXJlc3RvcmUpIHkgcXVlIGVsIHN5bmNcbiAgICAvLyBjcm9zcy1kZXZpY2UgdGFtYmnDqW4gYXBsaXF1ZSBhbCBsbGVnYXIgZWwgc25hcHNob3QuIEdhdGVhcmxvIGVuIGBfc3luY2VkYFxuICAgIC8vIGhhY8OtYSBxdWUgZWwgcHJpbWVyIGNhbWJpbyBkZSB1biB1c2VyIG51ZXZvIChzaW4gZG9jIEZpcmVzdG9yZSBhw7puKSBubyBzZVxuICAgIC8vIGFwbGljYXJhOiBlbCBzZWxlY3RvciBtb3N0cmFiYSBcIkdyYW5kZVwiIHBlcm8gZWwgZm9udC1zaXplIG5vIGNhbWJpYWJhLlxuICAgIC8vIGFsbG93U2lnbmFsV3JpdGVzOiBmb250U2l6ZVNlcnZpY2Uuc2V0U2l6ZSgpIGVzY3JpYmUgdGhpcy5fc2l6ZSAoc2lnbmFsKS5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZzID0gdGhpcy5fZm9udFNpemUoKTtcbiAgICAgICAgaWYgKHRoaXMuZm9udFNpemVTZXJ2aWNlKSB7XG4gICAgICAgICAgdGhpcy5mb250U2l6ZVNlcnZpY2Uuc2V0U2l6ZShmcyBhcyBGb250U2l6ZU9wdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICApO1xuICB9XG5cbiAgLyoqIEFjdHVhbGl6YSBwcmVmZXJlbmNpYXMgdmlhIGJhY2tlbmQuIE9wdGltaXN0aWMgVUk6IGFwbGljYSBsb2NhbCwgcmV2aWVydGUgc2kgZmFsbGEuICovXG4gIGFzeW5jIHVwZGF0ZShwYXJ0aWFsOiBQcmVmZXJlbmNlc1VwZGF0ZSk6IFByb21pc2U8UHJlZmVyZW5jZXNVcGRhdGVSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuY29uZmlnLmFwaVVybH0vdjIvYXV0aC9wcmVmZXJlbmNlc2A7XG5cbiAgICBjb25zdCBwcmV2ID0ge1xuICAgICAgdGhlbWU6IHRoaXMuX3RoZW1lKCksXG4gICAgICBsYW5ndWFnZTogdGhpcy5fbGFuZ3VhZ2UoKSxcbiAgICAgIGZvbnRTaXplOiB0aGlzLl9mb250U2l6ZSgpLFxuICAgICAgbWFzdGVyOiB0aGlzLl9ub3RpZmljYXRpb25zTWFzdGVyKCksXG4gICAgfTtcblxuICAgIGlmIChwYXJ0aWFsLnRoZW1lKSB0aGlzLl90aGVtZS5zZXQocGFydGlhbC50aGVtZSk7XG4gICAgaWYgKHBhcnRpYWwubGFuZ3VhZ2UpIHRoaXMuX2xhbmd1YWdlLnNldChwYXJ0aWFsLmxhbmd1YWdlKTtcbiAgICBpZiAocGFydGlhbC5mb250U2l6ZSkgdGhpcy5fZm9udFNpemUuc2V0KHBhcnRpYWwuZm9udFNpemUpO1xuICAgIGlmIChwYXJ0aWFsLm5vdGlmaWNhdGlvbnMgJiYgdHlwZW9mIHBhcnRpYWwubm90aWZpY2F0aW9ucy5tYXN0ZXIgPT09ICdib29sZWFuJykge1xuICAgICAgdGhpcy5fbm90aWZpY2F0aW9uc01hc3Rlci5zZXQocGFydGlhbC5ub3RpZmljYXRpb25zLm1hc3Rlcik7XG4gICAgfVxuXG4gICAgLy8gQmxvcXVlYXIgZWwgbGlzdGVuZXIgRmlyZXN0b3JlIG1pZW50cmFzIGVsIFBVVCBlc3TDoSBlbiB2dWVsbzogdW4gc25hcHNob3RcbiAgICAvLyBzdGFsZSBubyBkZWJlIHBpc2FyIGVsIHZhbG9yIG9wdGltaXN0YSByZWNpw6luIGFwbGljYWRvLlxuICAgIHRoaXMuX3VwZGF0ZUluRmxpZ2h0ID0gdHJ1ZTtcblxuICAgIHRyeSB7XG4gICAgICAvLyBFbnZpYXIgYXBwSWQgZXhwbMOtY2l0byDigJQgZWwgYmFja2VuZCBsbyB1c2EgcGFyYSBlc2NyaWJpciBlbCBtaXJyb3JcbiAgICAgIC8vIEZpcmVzdG9yZSBlbiBhcHBzL3thcHBJZH0vLi4uIGNvcnJlY3RvLCBzaW4gZGVwZW5kZXIgZGVsIGhlYWRlciBPcmlnaW5cbiAgICAgIC8vIChxdWUgZW4gUFdBIGlPUyBwdWVkZSBubyByZXNvbHZlciBhbCBBcHBJRCBlc3BlcmFkbykuXG4gICAgICBjb25zdCBib2R5ID0geyAuLi5wYXJ0aWFsLCBhcHBJZDogdGhpcy5jb25maWcuYXBwSWQgfTtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuaHR0cC5wdXQ8UHJlZmVyZW5jZXNVcGRhdGVSZXNwb25zZT4odXJsLCBib2R5KSk7XG4gICAgICAvLyBFbCBsaXN0ZW5lciBGaXJlc3RvcmUgZXMgbGEgZnVlbnRlIGZpbmFsLCBwZXJvIGFsaW5lYXIgeWEgY29uIGxhXG4gICAgICAvLyByZXNwdWVzdGEgZGVsIGJhY2tlbmQgYWNlbGVyYSBVWCAoZXNwZWNpYWxtZW50ZSBzaSBlbCBsaXN0ZW5lclxuICAgICAgLy8gdGFyZGEgZW4gcHJvcGFnYXIpLlxuICAgICAgaWYgKHJlcy50aGVtZSkgdGhpcy5fdGhlbWUuc2V0KHJlcy50aGVtZSBhcyBQcmVmZXJlbmNlc1RoZW1lKTtcbiAgICAgIGlmIChyZXMubGFuZ3VhZ2UpIHRoaXMuX2xhbmd1YWdlLnNldChyZXMubGFuZ3VhZ2UgYXMgUHJlZmVyZW5jZXNMYW5ndWFnZSk7XG4gICAgICBpZiAocmVzLmZvbnRTaXplKSB0aGlzLl9mb250U2l6ZS5zZXQocmVzLmZvbnRTaXplIGFzIFByZWZlcmVuY2VzRm9udFNpemUpO1xuICAgICAgaWYgKHR5cGVvZiByZXMubm90aWZpY2F0aW9ucz8ubWFzdGVyID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uc01hc3Rlci5zZXQocmVzLm5vdGlmaWNhdGlvbnMubWFzdGVyKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXM7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAvLyBSZXZlcnQgb3B0aW1pc3RpYy5cbiAgICAgIHRoaXMuX3RoZW1lLnNldChwcmV2LnRoZW1lKTtcbiAgICAgIHRoaXMuX2xhbmd1YWdlLnNldChwcmV2Lmxhbmd1YWdlKTtcbiAgICAgIHRoaXMuX2ZvbnRTaXplLnNldChwcmV2LmZvbnRTaXplKTtcbiAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnNNYXN0ZXIuc2V0KHByZXYubWFzdGVyKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fdXBkYXRlSW5GbGlnaHQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBzZXRUaGVtZSh0aGVtZTogUHJlZmVyZW5jZXNUaGVtZSk6IFByb21pc2U8UHJlZmVyZW5jZXNVcGRhdGVSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZSh7IHRoZW1lIH0pO1xuICB9XG5cbiAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2U6IFByZWZlcmVuY2VzTGFuZ3VhZ2UpOiBQcm9taXNlPFByZWZlcmVuY2VzVXBkYXRlUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGUoeyBsYW5ndWFnZSB9KTtcbiAgfVxuXG4gIHNldEZvbnRTaXplKGZvbnRTaXplOiBQcmVmZXJlbmNlc0ZvbnRTaXplKTogUHJvbWlzZTxQcmVmZXJlbmNlc1VwZGF0ZVJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlKHsgZm9udFNpemUgfSk7XG4gIH1cblxuICBzZXROb3RpZmljYXRpb25zTWFzdGVyKGVuYWJsZWQ6IGJvb2xlYW4pOiBQcm9taXNlPFByZWZlcmVuY2VzVXBkYXRlUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGUoeyBub3RpZmljYXRpb25zOiB7IG1hc3RlcjogZW5hYmxlZCB9IH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBiaW5kVG9Vc2VyKHVzZXJJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY3VycmVudFVzZXJJZCA9PT0gdXNlcklkICYmIHRoaXMuc3Vic2NyaXB0aW9uKSByZXR1cm47XG4gICAgdGhpcy51bmJpbmQoKTtcbiAgICB0aGlzLmN1cnJlbnRVc2VySWQgPSB1c2VySWQ7XG4gICAgLy8gRmlyZXN0b3JlU2VydmljZS5kb2NDaGFuZ2VzIHByZWZpamEgYXV0b23DoXRpY2FtZW50ZSBgYXBwcy97YXBwSWR9L2BcbiAgICAvLyBjdWFuZG8gYGNvbmZpZy5hcHBJZGAgZXN0w6Egc2V0ZWFkbyBlbiBWYWx0ZWNoQXV0aENvbmZpZy5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuZmlyZXN0b3JlXG4gICAgICAuZG9jQ2hhbmdlczxQcmVmZXJlbmNlc0RvY3VtZW50ICYgeyBpZD86IHN0cmluZyB9PihgdXNlcnMvJHt1c2VySWR9L3ByZWZlcmVuY2VzYCwgJ21haW4nKVxuICAgICAgLnN1YnNjcmliZShkb2MgPT4ge1xuICAgICAgICBpZiAoIWRvYykge1xuICAgICAgICAgIC8vIERvYyBubyBleGlzdGUgYcO6biAodXNlciBudWV2bywgc2luIHByaW1lciBzeW5jKS4gTWFudGVuZW1vc1xuICAgICAgICAgIC8vIGRlZmF1bHRzIGxvY2FsZXMgcGVybyBOTyBtYXJjYW1vcyBzeW5jZWQg4oCUIGxvcyBzaWRlLWVmZmVjdHMgbm9cbiAgICAgICAgICAvLyBwaXNhbiBlbCB0aGVtZS9sYW5nIGxvY2FsZXMgY29uIHZhbG9yZXMgYXJiaXRyYXJpb3MuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIElnbm9yYXIgZW1pc2lvbmVzIGRlbCBsaXN0ZW5lciBtaWVudHJhcyBoYXkgdW4gdXBkYXRlKCkgZW4gdnVlbG86IHVuXG4gICAgICAgIC8vIHNuYXBzaG90IHN0YWxlIChhbnRlcmlvciBhbCBzeW5jIGRlbCBiYWNrZW5kKSByZXZlcnRpcsOtYSBlbCB2YWxvclxuICAgICAgICAvLyBvcHRpbWlzdGEuIEVsIHVwZGF0ZSgpIHlhIGFsaW5lYSBsYXMgc2XDsWFsZXMgY29uIGxhIHJlc3B1ZXN0YSByZWFsLlxuICAgICAgICBpZiAodGhpcy5fdXBkYXRlSW5GbGlnaHQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRvYy50aGVtZSkgdGhpcy5fdGhlbWUuc2V0KGRvYy50aGVtZSk7XG4gICAgICAgIGlmIChkb2MubGFuZ3VhZ2UpIHRoaXMuX2xhbmd1YWdlLnNldChkb2MubGFuZ3VhZ2UpO1xuICAgICAgICBpZiAoZG9jLmZvbnRTaXplKSB0aGlzLl9mb250U2l6ZS5zZXQoZG9jLmZvbnRTaXplKTtcbiAgICAgICAgaWYgKGRvYy5ub3RpZmljYXRpb25zICYmIHR5cGVvZiBkb2Mubm90aWZpY2F0aW9ucy5tYXN0ZXIgPT09ICdib29sZWFuJykge1xuICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnNNYXN0ZXIuc2V0KGRvYy5ub3RpZmljYXRpb25zLm1hc3Rlcik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc3luY2VkLnNldCh0cnVlKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1bmJpbmQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5jdXJyZW50VXNlcklkID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuX3N5bmNlZC5zZXQoZmFsc2UpO1xuICB9XG59XG4iXX0=
@@ -2,5 +2,5 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export const VERSION = '2.0.1002';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC4xMDAyJztcbiJdfQ==
5
+ export const VERSION = '2.0.1004';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC4xMDA0JztcbiJdfQ==