@infrab4a/connect-angular 4.17.0-beta.9 → 4.17.0

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.
@@ -15,7 +15,7 @@ import * as i7 from "./angular-firestore.module";
15
15
  import * as i8 from "./angular-hasura-graphql.module";
16
16
  export declare class AngularConnectModule {
17
17
  static initializeApp(defaultShop: Shops, options: {
18
- firebase?: FirebaseOptions;
18
+ firebase: FirebaseOptions;
19
19
  elasticSearch?: AxiosElasticSearchConfig;
20
20
  vertexConfig?: VertexSearchConfig;
21
21
  hasura: HasuraGraphQLOptions;
@@ -3,7 +3,7 @@ import { HasuraGraphQLAuthOptions } from '@infrab4a/connect';
3
3
  import * as i0 from "@angular/core";
4
4
  export type HasuraGraphQLOptions = {
5
5
  endpoint: string;
6
- credentials?: HasuraGraphQLAuthOptions;
6
+ credentials: HasuraGraphQLAuthOptions;
7
7
  };
8
8
  export declare class AngularHasuraGraphQLModule {
9
9
  static initializeApp(options: {
@@ -2,7 +2,7 @@ import { NgModule } from '@angular/core';
2
2
  import { FirebaseApp, getApp, initializeApp, provideFirebaseApp } from '@angular/fire/app';
3
3
  import { initializeAppCheck, provideAppCheck, ReCaptchaEnterpriseProvider } from '@angular/fire/app-check';
4
4
  import { getStorage, provideStorage, Storage } from '@angular/fire/storage';
5
- import { FirebaseFileUploaderService, isEmpty, isNil, ProductsVertexSearch, UpdateUserImage, } from '@infrab4a/connect';
5
+ import { FirebaseFileUploaderService, isNil, ProductsVertexSearch, UpdateUserImage, } from '@infrab4a/connect';
6
6
  import { AngularElasticSeachModule } from './angular-elastic-search.module';
7
7
  import { AngularFirebaseAuthModule } from './angular-firebase-auth.module';
8
8
  import { AngularFirestoreModule } from './angular-firestore.module';
@@ -22,8 +22,6 @@ export class AngularConnectModule {
22
22
  return {
23
23
  ngModule: AngularConnectModule,
24
24
  providers: [
25
- { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },
26
- { provide: RECAPTCHA_SITE_KEY, useValue: options.recaptchaSiteKey },
27
25
  {
28
26
  provide: CATEGORY_STRUCTURE,
29
27
  useClass: isNil(options?.oldCategoryStructure) || options?.oldCategoryStructure
@@ -33,11 +31,15 @@ export class AngularConnectModule {
33
31
  { provide: PERSISTENCE_PROVIDER, useClass: options?.persistenceProvider || CookieDataPersistence },
34
32
  ...(isNil(defaultShop) ? [] : [{ provide: DEFAULT_SHOP, useValue: defaultShop }]),
35
33
  ...(isNil(options?.firebase) ? [] : [{ provide: FIREBASE_OPTIONS, useValue: options?.firebase }]),
34
+ ...(isNil(options?.firebase) ? [] : [{ provide: FIREBASE_APP_NAME, useValue: nameOrConfig }]),
36
35
  ...(isNil(options?.elasticSearch) ? [] : [{ provide: ES_CONFIG, useValue: options.elasticSearch }]),
37
36
  ...(isNil(options?.vertexConfig) ? [] : [{ provide: VERTEX_CONFIG, useValue: options.vertexConfig }]),
38
37
  ...(isNil(options?.hasura) ? [] : [{ provide: HASURA_OPTIONS, useValue: options.hasura }]),
39
38
  ...(isNil(options?.backendUrl) ? [] : [{ provide: BACKEND_URL, useValue: options.backendUrl }]),
40
39
  ...(isNil(options?.storageBaseUrl) ? [] : [{ provide: STORAGE_BASE_URL, useValue: options.storageBaseUrl }]),
40
+ ...(isNil(options?.recaptchaSiteKey)
41
+ ? []
42
+ : [{ provide: RECAPTCHA_SITE_KEY, useValue: options.recaptchaSiteKey }]),
41
43
  ],
42
44
  };
43
45
  }
@@ -79,34 +81,28 @@ AngularConnectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ve
79
81
  useExisting: ProductsVertexSearch,
80
82
  },
81
83
  ], imports: [provideFirebaseApp((injector) => {
82
- const appName = injector.get(FIREBASE_APP_NAME);
84
+ const appName = injector.get(FIREBASE_APP_NAME) || '[DEFAULT]';
83
85
  try {
84
- return appName ? getApp(appName) : getApp();
86
+ return getApp(appName);
85
87
  }
86
88
  catch (error) {
87
- console.warn('Firebase app not found, initializing new app');
88
- if (error instanceof Error) {
89
- console.error(error.message);
90
- }
91
89
  return initializeApp(injector.get(FIREBASE_OPTIONS), appName);
92
90
  }
93
91
  }),
94
92
  provideAppCheck((injector) => {
95
93
  const app = injector.get(FirebaseApp);
96
- console.log('Connect APP', app.name);
97
94
  try {
98
95
  const siteKey = injector.get(RECAPTCHA_SITE_KEY);
99
- console.log('RECAPTCHA_SITE_KEY', isEmpty(siteKey) ? undefined : new ReCaptchaEnterpriseProvider(siteKey));
100
- return initializeAppCheck(app, {
101
- provider: isEmpty(siteKey) ? undefined : new ReCaptchaEnterpriseProvider(siteKey),
102
- isTokenAutoRefreshEnabled: true,
103
- });
96
+ if (siteKey && siteKey.trim() !== '')
97
+ return initializeAppCheck(app, {
98
+ provider: new ReCaptchaEnterpriseProvider(siteKey),
99
+ isTokenAutoRefreshEnabled: true,
100
+ });
104
101
  }
105
102
  catch (error) {
106
- if (error instanceof Error)
107
- console.error(error.message);
108
- return;
103
+ console.warn('ReCAPTCHA site key not provided or invalid, App Check not initialized');
109
104
  }
105
+ return;
110
106
  }),
111
107
  provideStorage((injector) => getStorage(injector.get(FirebaseApp))),
112
108
  AngularElasticSeachModule,
@@ -119,34 +115,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
119
115
  args: [{
120
116
  imports: [
121
117
  provideFirebaseApp((injector) => {
122
- const appName = injector.get(FIREBASE_APP_NAME);
118
+ const appName = injector.get(FIREBASE_APP_NAME) || '[DEFAULT]';
123
119
  try {
124
- return appName ? getApp(appName) : getApp();
120
+ return getApp(appName);
125
121
  }
126
122
  catch (error) {
127
- console.warn('Firebase app not found, initializing new app');
128
- if (error instanceof Error) {
129
- console.error(error.message);
130
- }
131
123
  return initializeApp(injector.get(FIREBASE_OPTIONS), appName);
132
124
  }
133
125
  }),
134
126
  provideAppCheck((injector) => {
135
127
  const app = injector.get(FirebaseApp);
136
- console.log('Connect APP', app.name);
137
128
  try {
138
129
  const siteKey = injector.get(RECAPTCHA_SITE_KEY);
139
- console.log('RECAPTCHA_SITE_KEY', isEmpty(siteKey) ? undefined : new ReCaptchaEnterpriseProvider(siteKey));
140
- return initializeAppCheck(app, {
141
- provider: isEmpty(siteKey) ? undefined : new ReCaptchaEnterpriseProvider(siteKey),
142
- isTokenAutoRefreshEnabled: true,
143
- });
130
+ if (siteKey && siteKey.trim() !== '')
131
+ return initializeAppCheck(app, {
132
+ provider: new ReCaptchaEnterpriseProvider(siteKey),
133
+ isTokenAutoRefreshEnabled: true,
134
+ });
144
135
  }
145
136
  catch (error) {
146
- if (error instanceof Error)
147
- console.error(error.message);
148
- return;
137
+ console.warn('ReCAPTCHA site key not provided or invalid, App Check not initialized');
149
138
  }
139
+ return;
150
140
  }),
151
141
  provideStorage((injector) => getStorage(injector.get(FirebaseApp))),
152
142
  AngularElasticSeachModule,
@@ -188,4 +178,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
188
178
  ],
189
179
  }]
190
180
  }] });
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1jb25uZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvYW5ndWxhci1jb25uZWN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlDLFFBQVEsRUFBUSxNQUFNLGVBQWUsQ0FBQTtBQUM3RSxPQUFPLEVBQUUsV0FBVyxFQUFtQixNQUFNLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDM0csT0FBTyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQzFHLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzNFLE9BQU8sRUFHTCwyQkFBMkIsRUFDM0IsT0FBTyxFQUNQLEtBQUssRUFDTCxvQkFBb0IsRUFFcEIsZUFBZSxHQUdoQixNQUFNLG1CQUFtQixDQUFBO0FBQzFCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQzNFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBQzFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQ25FLE9BQU8sRUFBRSwwQkFBMEIsRUFBd0IsTUFBTSxpQ0FBaUMsQ0FBQTtBQUNsRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUN6RSxPQUFPLEVBQ0wsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osU0FBUyxFQUNULGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsYUFBYSxHQUNkLE1BQU0sVUFBVSxDQUFBO0FBQ2pCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBbUIsTUFBTSxlQUFlLENBQUE7QUFDdEUsT0FBTyxFQUNMLFdBQVcsRUFDWCxXQUFXLEVBQ1gsY0FBYyxFQUNkLGVBQWUsRUFDZixlQUFlLEVBQ2YsMkJBQTJCLEVBQzNCLGFBQWEsRUFDYixlQUFlLEVBQ2YsWUFBWSxFQUNaLGVBQWUsRUFDZixlQUFlLEdBQ2hCLE1BQU0sWUFBWSxDQUFBO0FBQ25CLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDZCQUE2QixDQUFBOzs7OztBQTZFdEcsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixNQUFNLENBQUMsYUFBYSxDQUNsQixXQUFrQixFQUNsQixPQVVDLEVBQ0QsWUFBeUM7UUFFekMsT0FBTztZQUNMLFFBQVEsRUFBRSxvQkFBb0I7WUFDOUIsU0FBUyxFQUFFO2dCQUNULEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUU7Z0JBQ3RELEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ25FO29CQUNFLE9BQU8sRUFBRSxrQkFBa0I7b0JBQzNCLFFBQVEsRUFDTixLQUFLLENBQUMsT0FBTyxFQUFFLG9CQUFvQixDQUFDLElBQUksT0FBTyxFQUFFLG9CQUFvQjt3QkFDbkUsQ0FBQyxDQUFDLDJCQUEyQjt3QkFDN0IsQ0FBQyxDQUFDLDJCQUEyQjtpQkFDbEM7Z0JBQ0QsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxxQkFBcUIsRUFBRTtnQkFDbEcsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDakYsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQ2pHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztnQkFDbkcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO2dCQUNyRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQzFGLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztnQkFDL0YsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7YUFDN0c7U0FDRixDQUFBO0lBQ0gsQ0FBQzs7aUhBdENVLG9CQUFvQjtrSEFBcEIsb0JBQW9CLHVFQXRDN0IseUJBQXlCO1FBQ3pCLHdCQUF3QjtRQUN4Qix5QkFBeUI7UUFDekIsc0JBQXNCO1FBQ3RCLDBCQUEwQjtrSEFrQ2pCLG9CQUFvQixhQWhDcEI7UUFDVCxXQUFXO1FBQ1gsV0FBVztRQUNYLGNBQWM7UUFDZCxlQUFlO1FBQ2YsZUFBZTtRQUNmLDJCQUEyQjtRQUMzQixhQUFhO1FBQ2IsZUFBZTtRQUNmLFlBQVk7UUFDWixlQUFlO1FBQ2YsZUFBZTtRQUNmO1lBQ0UsT0FBTyxFQUFFLGVBQWU7WUFDeEIsVUFBVSxFQUFFLENBQUMsY0FBOEIsRUFBRSxZQUFpQyxFQUFFLEVBQUU7Z0JBQ2hGLE9BQU8sSUFBSSxlQUFlLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQyxDQUFBO1lBQzFELENBQUM7WUFDRCxJQUFJLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxxQkFBcUIsQ0FBQztTQUNoRDtRQUNEO1lBQ0UsT0FBTyxFQUFFLHFCQUFxQjtZQUM5QixVQUFVLEVBQUUsQ0FBQyxPQUFnQixFQUFFLE9BQWUsRUFBRSxFQUFFO2dCQUNoRCxPQUFPLElBQUksMkJBQTJCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQzFELENBQUM7WUFDRCxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUM7U0FDbEM7UUFDRDtZQUNFLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFdBQVcsRUFBRSxvQkFBb0I7U0FDbEM7S0FDRixZQXRFQyxrQkFBa0IsQ0FBQyxDQUFDLFFBQWtCLEVBQUUsRUFBRTtZQUN4QyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFTLGlCQUFpQixDQUFDLENBQUE7WUFFdkQsSUFBSTtnQkFDRixPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQTthQUM1QztZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsOENBQThDLENBQUMsQ0FBQTtnQkFDNUQsSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFO29CQUMxQixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtpQkFDN0I7Z0JBQ0QsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFBO2FBQzlEO1FBQ0gsQ0FBQyxDQUFDO1FBQ0YsZUFBZSxDQUFDLENBQUMsUUFBa0IsRUFBRSxFQUFFO1lBQ3JDLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUE7WUFFckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBRXBDLElBQUk7Z0JBQ0YsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBUyxrQkFBa0IsQ0FBQyxDQUFBO2dCQUV4RCxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7Z0JBRTFHLE9BQU8sa0JBQWtCLENBQUMsR0FBRyxFQUFFO29CQUM3QixRQUFRLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksMkJBQTJCLENBQUMsT0FBTyxDQUFDO29CQUNqRix5QkFBeUIsRUFBRSxJQUFJO2lCQUNoQyxDQUFDLENBQUE7YUFDSDtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLElBQUksS0FBSyxZQUFZLEtBQUs7b0JBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7Z0JBRXhELE9BQU07YUFDUDtRQUNILENBQUMsQ0FBQztRQUNGLGNBQWMsQ0FBQyxDQUFDLFFBQWtCLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDN0UseUJBQXlCO1FBQ3pCLHdCQUF3QjtRQUN4Qix5QkFBeUI7UUFDekIsc0JBQXNCO1FBQ3RCLDBCQUEwQjsyRkFrQ2pCLG9CQUFvQjtrQkExRWhDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLGtCQUFrQixDQUFDLENBQUMsUUFBa0IsRUFBRSxFQUFFOzRCQUN4QyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFTLGlCQUFpQixDQUFDLENBQUE7NEJBRXZELElBQUk7Z0NBQ0YsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUE7NkJBQzVDOzRCQUFDLE9BQU8sS0FBSyxFQUFFO2dDQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsOENBQThDLENBQUMsQ0FBQTtnQ0FDNUQsSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFO29DQUMxQixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtpQ0FDN0I7Z0NBQ0QsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFBOzZCQUM5RDt3QkFDSCxDQUFDLENBQUM7d0JBQ0YsZUFBZSxDQUFDLENBQUMsUUFBa0IsRUFBRSxFQUFFOzRCQUNyQyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFBOzRCQUVyQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7NEJBRXBDLElBQUk7Z0NBQ0YsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBUyxrQkFBa0IsQ0FBQyxDQUFBO2dDQUV4RCxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7Z0NBRTFHLE9BQU8sa0JBQWtCLENBQUMsR0FBRyxFQUFFO29DQUM3QixRQUFRLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksMkJBQTJCLENBQUMsT0FBTyxDQUFDO29DQUNqRix5QkFBeUIsRUFBRSxJQUFJO2lDQUNoQyxDQUFDLENBQUE7NkJBQ0g7NEJBQUMsT0FBTyxLQUFLLEVBQUU7Z0NBQ2QsSUFBSSxLQUFLLFlBQVksS0FBSztvQ0FBRSxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtnQ0FFeEQsT0FBTTs2QkFDUDt3QkFDSCxDQUFDLENBQUM7d0JBQ0YsY0FBYyxDQUFDLENBQUMsUUFBa0IsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzt3QkFDN0UseUJBQXlCO3dCQUN6Qix3QkFBd0I7d0JBQ3hCLHlCQUF5Qjt3QkFDekIsc0JBQXNCO3dCQUN0QiwwQkFBMEI7cUJBQzNCO29CQUNELFNBQVMsRUFBRTt3QkFDVCxXQUFXO3dCQUNYLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsMkJBQTJCO3dCQUMzQixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGVBQWU7d0JBQ2Y7NEJBQ0UsT0FBTyxFQUFFLGVBQWU7NEJBQ3hCLFVBQVUsRUFBRSxDQUFDLGNBQThCLEVBQUUsWUFBaUMsRUFBRSxFQUFFO2dDQUNoRixPQUFPLElBQUksZUFBZSxDQUFDLGNBQWMsRUFBRSxZQUFZLENBQUMsQ0FBQTs0QkFDMUQsQ0FBQzs0QkFDRCxJQUFJLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxxQkFBcUIsQ0FBQzt5QkFDaEQ7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsVUFBVSxFQUFFLENBQUMsT0FBZ0IsRUFBRSxPQUFlLEVBQUUsRUFBRTtnQ0FDaEQsT0FBTyxJQUFJLDJCQUEyQixDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQTs0QkFDMUQsQ0FBQzs0QkFDRCxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUM7eUJBQ2xDO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxlQUFlOzRCQUN4QixXQUFXLEVBQUUsb0JBQW9CO3lCQUNsQztxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGaXJlYmFzZUFwcCwgRmlyZWJhc2VPcHRpb25zLCBnZXRBcHAsIGluaXRpYWxpemVBcHAsIHByb3ZpZGVGaXJlYmFzZUFwcCB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXBwJ1xuaW1wb3J0IHsgaW5pdGlhbGl6ZUFwcENoZWNrLCBwcm92aWRlQXBwQ2hlY2ssIFJlQ2FwdGNoYUVudGVycHJpc2VQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXBwLWNoZWNrJ1xuaW1wb3J0IHsgZ2V0U3RvcmFnZSwgcHJvdmlkZVN0b3JhZ2UsIFN0b3JhZ2UgfSBmcm9tICdAYW5ndWxhci9maXJlL3N0b3JhZ2UnXG5pbXBvcnQge1xuICBBeGlvc0VsYXN0aWNTZWFyY2hDb25maWcsXG4gIEZpbGVVcGxvYWRlclNlcnZpY2UsXG4gIEZpcmViYXNlRmlsZVVwbG9hZGVyU2VydmljZSxcbiAgaXNFbXB0eSxcbiAgaXNOaWwsXG4gIFByb2R1Y3RzVmVydGV4U2VhcmNoLFxuICBTaG9wcyxcbiAgVXBkYXRlVXNlckltYWdlLFxuICBVc2VyUmVwb3NpdG9yeSxcbiAgVmVydGV4U2VhcmNoQ29uZmlnLFxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcbmltcG9ydCB7IEFuZ3VsYXJFbGFzdGljU2VhY2hNb2R1bGUgfSBmcm9tICcuL2FuZ3VsYXItZWxhc3RpYy1zZWFyY2gubW9kdWxlJ1xuaW1wb3J0IHsgQW5ndWxhckZpcmViYXNlQXV0aE1vZHVsZSB9IGZyb20gJy4vYW5ndWxhci1maXJlYmFzZS1hdXRoLm1vZHVsZSdcbmltcG9ydCB7IEFuZ3VsYXJGaXJlc3RvcmVNb2R1bGUgfSBmcm9tICcuL2FuZ3VsYXItZmlyZXN0b3JlLm1vZHVsZSdcbmltcG9ydCB7IEFuZ3VsYXJIYXN1cmFHcmFwaFFMTW9kdWxlLCBIYXN1cmFHcmFwaFFMT3B0aW9ucyB9IGZyb20gJy4vYW5ndWxhci1oYXN1cmEtZ3JhcGhxbC5tb2R1bGUnXG5pbXBvcnQgeyBBbmd1bGFyVmVydGV4U2VhY2hNb2R1bGUgfSBmcm9tICcuL2FuZ3VsYXItdmVydGV4LXNlYXJjaC5tb2R1bGUnXG5pbXBvcnQge1xuICBCQUNLRU5EX1VSTCxcbiAgQ0FURUdPUllfU1RSVUNUVVJFLFxuICBERUZBVUxUX1NIT1AsXG4gIEVTX0NPTkZJRyxcbiAgRklSRUJBU0VfQVBQX05BTUUsXG4gIEZJUkVCQVNFX09QVElPTlMsXG4gIEhBU1VSQV9PUFRJT05TLFxuICBQRVJTSVNURU5DRV9QUk9WSURFUixcbiAgUkVDQVBUQ0hBX1NJVEVfS0VZLFxuICBWRVJURVhfQ09ORklHLFxufSBmcm9tICcuL2NvbnN0cydcbmltcG9ydCB7IFNUT1JBR0VfQkFTRV9VUkwgfSBmcm9tICcuL2NvbnN0cy9zdG9yYWdlLWJhc2UtdXJsLmNvbnN0J1xuaW1wb3J0IHsgQ29va2llRGF0YVBlcnNpc3RlbmNlLCBEYXRhUGVyc2lzdGVuY2UgfSBmcm9tICcuL3BlcnNpc3RlbmNlJ1xuaW1wb3J0IHtcbiAgQXV0aFNlcnZpY2UsXG4gIENhcnRTZXJ2aWNlLFxuICBDYXRhbG9nU2VydmljZSxcbiAgQ2F0ZWdvcnlTZXJ2aWNlLFxuICBDaGVja291dFNlcnZpY2UsXG4gIENoZWNrb3V0U3Vic2NyaXB0aW9uU2VydmljZSxcbiAgQ291cG9uU2VydmljZSxcbiAgSG9tZVNob3BTZXJ2aWNlLFxuICBPcmRlclNlcnZpY2UsXG4gIFNoaXBwaW5nU2VydmljZSxcbiAgV2lzaGxpc3RTZXJ2aWNlLFxufSBmcm9tICcuL3NlcnZpY2VzJ1xuaW1wb3J0IHsgTmV3Q2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyLCBPbGRDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIgfSBmcm9tICcuL3NlcnZpY2VzL2NhdGFsb2cvYWRhcHRlcnMnXG5pbXBvcnQgeyBGaXJlYmFzZUFwcENvbmZpZyB9IGZyb20gJy4vdHlwZXMnXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBwcm92aWRlRmlyZWJhc2VBcHAoKGluamVjdG9yOiBJbmplY3RvcikgPT4ge1xuICAgICAgY29uc3QgYXBwTmFtZSA9IGluamVjdG9yLmdldDxzdHJpbmc+KEZJUkVCQVNFX0FQUF9OQU1FKVxuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gYXBwTmFtZSA/IGdldEFwcChhcHBOYW1lKSA6IGdldEFwcCgpXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0ZpcmViYXNlIGFwcCBub3QgZm91bmQsIGluaXRpYWxpemluZyBuZXcgYXBwJylcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yLm1lc3NhZ2UpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGluaXRpYWxpemVBcHAoaW5qZWN0b3IuZ2V0KEZJUkVCQVNFX09QVElPTlMpLCBhcHBOYW1lKVxuICAgICAgfVxuICAgIH0pLFxuICAgIHByb3ZpZGVBcHBDaGVjaygoaW5qZWN0b3I6IEluamVjdG9yKSA9PiB7XG4gICAgICBjb25zdCBhcHAgPSBpbmplY3Rvci5nZXQoRmlyZWJhc2VBcHApXG5cbiAgICAgIGNvbnNvbGUubG9nKCdDb25uZWN0IEFQUCcsIGFwcC5uYW1lKVxuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBzaXRlS2V5ID0gaW5qZWN0b3IuZ2V0PHN0cmluZz4oUkVDQVBUQ0hBX1NJVEVfS0VZKVxuXG4gICAgICAgIGNvbnNvbGUubG9nKCdSRUNBUFRDSEFfU0lURV9LRVknLCBpc0VtcHR5KHNpdGVLZXkpID8gdW5kZWZpbmVkIDogbmV3IFJlQ2FwdGNoYUVudGVycHJpc2VQcm92aWRlcihzaXRlS2V5KSlcblxuICAgICAgICByZXR1cm4gaW5pdGlhbGl6ZUFwcENoZWNrKGFwcCwge1xuICAgICAgICAgIHByb3ZpZGVyOiBpc0VtcHR5KHNpdGVLZXkpID8gdW5kZWZpbmVkIDogbmV3IFJlQ2FwdGNoYUVudGVycHJpc2VQcm92aWRlcihzaXRlS2V5KSxcbiAgICAgICAgICBpc1Rva2VuQXV0b1JlZnJlc2hFbmFibGVkOiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIGNvbnNvbGUuZXJyb3IoZXJyb3IubWVzc2FnZSlcblxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9KSxcbiAgICBwcm92aWRlU3RvcmFnZSgoaW5qZWN0b3I6IEluamVjdG9yKSA9PiBnZXRTdG9yYWdlKGluamVjdG9yLmdldChGaXJlYmFzZUFwcCkpKSxcbiAgICBBbmd1bGFyRWxhc3RpY1NlYWNoTW9kdWxlLFxuICAgIEFuZ3VsYXJWZXJ0ZXhTZWFjaE1vZHVsZSxcbiAgICBBbmd1bGFyRmlyZWJhc2VBdXRoTW9kdWxlLFxuICAgIEFuZ3VsYXJGaXJlc3RvcmVNb2R1bGUsXG4gICAgQW5ndWxhckhhc3VyYUdyYXBoUUxNb2R1bGUsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIEF1dGhTZXJ2aWNlLFxuICAgIENhcnRTZXJ2aWNlLFxuICAgIENhdGFsb2dTZXJ2aWNlLFxuICAgIENhdGVnb3J5U2VydmljZSxcbiAgICBDaGVja291dFNlcnZpY2UsXG4gICAgQ2hlY2tvdXRTdWJzY3JpcHRpb25TZXJ2aWNlLFxuICAgIENvdXBvblNlcnZpY2UsXG4gICAgSG9tZVNob3BTZXJ2aWNlLFxuICAgIE9yZGVyU2VydmljZSxcbiAgICBTaGlwcGluZ1NlcnZpY2UsXG4gICAgV2lzaGxpc3RTZXJ2aWNlLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFVwZGF0ZVVzZXJJbWFnZSxcbiAgICAgIHVzZUZhY3Rvcnk6ICh1c2VyUmVwb3NpdG9yeTogVXNlclJlcG9zaXRvcnksIGZpbGVVcGxvYWRlcjogRmlsZVVwbG9hZGVyU2VydmljZSkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFVwZGF0ZVVzZXJJbWFnZSh1c2VyUmVwb3NpdG9yeSwgZmlsZVVwbG9hZGVyKVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFsnVXNlclJlcG9zaXRvcnknLCAnRmlsZVVwbG9hZGVyU2VydmljZSddLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ0ZpbGVVcGxvYWRlclNlcnZpY2UnLFxuICAgICAgdXNlRmFjdG9yeTogKHN0b3JhZ2U6IFN0b3JhZ2UsIGJhc2VVcmw6IHN0cmluZykgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IEZpcmViYXNlRmlsZVVwbG9hZGVyU2VydmljZShzdG9yYWdlLCBiYXNlVXJsKVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFtTdG9yYWdlLCBTVE9SQUdFX0JBU0VfVVJMXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdQcm9kdWN0U2VhcmNoJyxcbiAgICAgIHVzZUV4aXN0aW5nOiBQcm9kdWN0c1ZlcnRleFNlYXJjaCxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBbmd1bGFyQ29ubmVjdE1vZHVsZSB7XG4gIHN0YXRpYyBpbml0aWFsaXplQXBwKFxuICAgIGRlZmF1bHRTaG9wOiBTaG9wcyxcbiAgICBvcHRpb25zOiB7XG4gICAgICBmaXJlYmFzZT86IEZpcmViYXNlT3B0aW9uc1xuICAgICAgZWxhc3RpY1NlYXJjaD86IEF4aW9zRWxhc3RpY1NlYXJjaENvbmZpZ1xuICAgICAgdmVydGV4Q29uZmlnPzogVmVydGV4U2VhcmNoQ29uZmlnXG4gICAgICBoYXN1cmE6IEhhc3VyYUdyYXBoUUxPcHRpb25zXG4gICAgICBiYWNrZW5kVXJsOiBzdHJpbmdcbiAgICAgIG9sZENhdGVnb3J5U3RydWN0dXJlPzogYm9vbGVhblxuICAgICAgc3RvcmFnZUJhc2VVcmw/OiBzdHJpbmdcbiAgICAgIHBlcnNpc3RlbmNlUHJvdmlkZXI/OiBUeXBlPERhdGFQZXJzaXN0ZW5jZT5cbiAgICAgIHJlY2FwdGNoYVNpdGVLZXk/OiBzdHJpbmdcbiAgICB9LFxuICAgIG5hbWVPckNvbmZpZz86IHN0cmluZyB8IEZpcmViYXNlQXBwQ29uZmlnLFxuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFuZ3VsYXJDb25uZWN0TW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBBbmd1bGFyQ29ubmVjdE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IEZJUkVCQVNFX0FQUF9OQU1FLCB1c2VWYWx1ZTogbmFtZU9yQ29uZmlnIH0sXG4gICAgICAgIHsgcHJvdmlkZTogUkVDQVBUQ0hBX1NJVEVfS0VZLCB1c2VWYWx1ZTogb3B0aW9ucy5yZWNhcHRjaGFTaXRlS2V5IH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBDQVRFR09SWV9TVFJVQ1RVUkUsXG4gICAgICAgICAgdXNlQ2xhc3M6XG4gICAgICAgICAgICBpc05pbChvcHRpb25zPy5vbGRDYXRlZ29yeVN0cnVjdHVyZSkgfHwgb3B0aW9ucz8ub2xkQ2F0ZWdvcnlTdHJ1Y3R1cmVcbiAgICAgICAgICAgICAgPyBPbGRDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXJcbiAgICAgICAgICAgICAgOiBOZXdDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIsXG4gICAgICAgIH0sXG4gICAgICAgIHsgcHJvdmlkZTogUEVSU0lTVEVOQ0VfUFJPVklERVIsIHVzZUNsYXNzOiBvcHRpb25zPy5wZXJzaXN0ZW5jZVByb3ZpZGVyIHx8IENvb2tpZURhdGFQZXJzaXN0ZW5jZSB9LFxuICAgICAgICAuLi4oaXNOaWwoZGVmYXVsdFNob3ApID8gW10gOiBbeyBwcm92aWRlOiBERUZBVUxUX1NIT1AsIHVzZVZhbHVlOiBkZWZhdWx0U2hvcCB9XSksXG4gICAgICAgIC4uLihpc05pbChvcHRpb25zPy5maXJlYmFzZSkgPyBbXSA6IFt7IHByb3ZpZGU6IEZJUkVCQVNFX09QVElPTlMsIHVzZVZhbHVlOiBvcHRpb25zPy5maXJlYmFzZSB9XSksXG4gICAgICAgIC4uLihpc05pbChvcHRpb25zPy5lbGFzdGljU2VhcmNoKSA/IFtdIDogW3sgcHJvdmlkZTogRVNfQ09ORklHLCB1c2VWYWx1ZTogb3B0aW9ucy5lbGFzdGljU2VhcmNoIH1dKSxcbiAgICAgICAgLi4uKGlzTmlsKG9wdGlvbnM/LnZlcnRleENvbmZpZykgPyBbXSA6IFt7IHByb3ZpZGU6IFZFUlRFWF9DT05GSUcsIHVzZVZhbHVlOiBvcHRpb25zLnZlcnRleENvbmZpZyB9XSksXG4gICAgICAgIC4uLihpc05pbChvcHRpb25zPy5oYXN1cmEpID8gW10gOiBbeyBwcm92aWRlOiBIQVNVUkFfT1BUSU9OUywgdXNlVmFsdWU6IG9wdGlvbnMuaGFzdXJhIH1dKSxcbiAgICAgICAgLi4uKGlzTmlsKG9wdGlvbnM/LmJhY2tlbmRVcmwpID8gW10gOiBbeyBwcm92aWRlOiBCQUNLRU5EX1VSTCwgdXNlVmFsdWU6IG9wdGlvbnMuYmFja2VuZFVybCB9XSksXG4gICAgICAgIC4uLihpc05pbChvcHRpb25zPy5zdG9yYWdlQmFzZVVybCkgPyBbXSA6IFt7IHByb3ZpZGU6IFNUT1JBR0VfQkFTRV9VUkwsIHVzZVZhbHVlOiBvcHRpb25zLnN0b3JhZ2VCYXNlVXJsIH1dKSxcbiAgICAgIF0sXG4gICAgfVxuICB9XG59XG4iXX0=
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1jb25uZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvYW5ndWxhci1jb25uZWN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlDLFFBQVEsRUFBUSxNQUFNLGVBQWUsQ0FBQTtBQUM3RSxPQUFPLEVBQUUsV0FBVyxFQUFtQixNQUFNLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDM0csT0FBTyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQzFHLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzNFLE9BQU8sRUFHTCwyQkFBMkIsRUFDM0IsS0FBSyxFQUNMLG9CQUFvQixFQUVwQixlQUFlLEdBR2hCLE1BQU0sbUJBQW1CLENBQUE7QUFDMUIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFDM0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDMUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDbkUsT0FBTyxFQUFFLDBCQUEwQixFQUF3QixNQUFNLGlDQUFpQyxDQUFBO0FBQ2xHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBQ3pFLE9BQU8sRUFDTCxXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixhQUFhLEdBQ2QsTUFBTSxVQUFVLENBQUE7QUFDakIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNB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QUNYLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixlQUFlO3dCQUNmLDJCQUEyQjt3QkFDM0IsYUFBYTt3QkFDYixlQUFlO3dCQUNmLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixlQUFlO3dCQUNmOzRCQUNFLE9BQU8sRUFBRSxlQUFlOzRCQUN4QixVQUFVLEVBQUUsQ0FBQyxjQUE4QixFQUFFLFlBQWlDLEVBQUUsRUFBRTtnQ0FDaEYsT0FBTyxJQUFJLGVBQWUsQ0FBQyxjQUFjLEVBQUUsWUFBWSxDQUFDLENBQUE7NEJBQzFELENBQUM7NEJBQ0QsSUFBSSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUscUJBQXFCLENBQUM7eUJBQ2hEO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFVBQVUsRUFBRSxDQUFDLE9BQWdCLEVBQUUsT0FBZSxFQUFFLEVBQUU7Z0NBQ2hELE9BQU8sSUFBSSwyQkFBMkIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUE7NEJBQzFELENBQUM7NEJBQ0QsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLGdCQUFnQixDQUFDO3lCQUNsQzt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsZUFBZTs0QkFDeEIsV0FBVyxFQUFFLG9CQUFvQjt5QkFDbEM7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRmlyZWJhc2VBcHAsIEZpcmViYXNlT3B0aW9ucywgZ2V0QXBwLCBpbml0aWFsaXplQXBwLCBwcm92aWRlRmlyZWJhc2VBcHAgfSBmcm9tICdAYW5ndWxhci9maXJlL2FwcCdcbmltcG9ydCB7IGluaXRpYWxpemVBcHBDaGVjaywgcHJvdmlkZUFwcENoZWNrLCBSZUNhcHRjaGFFbnRlcnByaXNlUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9maXJlL2FwcC1jaGVjaydcbmltcG9ydCB7IGdldFN0b3JhZ2UsIHByb3ZpZGVTdG9yYWdlLCBTdG9yYWdlIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9zdG9yYWdlJ1xuaW1wb3J0IHtcbiAgQXhpb3NFbGFzdGljU2VhcmNoQ29uZmlnLFxuICBGaWxlVXBsb2FkZXJTZXJ2aWNlLFxuICBGaXJlYmFzZUZpbGVVcGxvYWRlclNlcnZpY2UsXG4gIGlzTmlsLFxuICBQcm9kdWN0c1ZlcnRleFNlYXJjaCxcbiAgU2hvcHMsXG4gIFVwZGF0ZVVzZXJJbWFnZSxcbiAgVXNlclJlcG9zaXRvcnksXG4gIFZlcnRleFNlYXJjaENvbmZpZyxcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5pbXBvcnQgeyBBbmd1bGFyRWxhc3RpY1NlYWNoTW9kdWxlIH0gZnJvbSAnLi9hbmd1bGFyLWVsYXN0aWMtc2VhcmNoLm1vZHVsZSdcbmltcG9ydCB7IEFuZ3VsYXJGaXJlYmFzZUF1dGhNb2R1bGUgfSBmcm9tICcuL2FuZ3VsYXItZmlyZWJhc2UtYXV0aC5tb2R1bGUnXG5pbXBvcnQgeyBBbmd1bGFyRmlyZXN0b3JlTW9kdWxlIH0gZnJvbSAnLi9hbmd1bGFyLWZpcmVzdG9yZS5tb2R1bGUnXG5pbXBvcnQgeyBBbmd1bGFySGFzdXJhR3JhcGhRTE1vZHVsZSwgSGFzdXJhR3JhcGhRTE9wdGlvbnMgfSBmcm9tICcuL2FuZ3VsYXItaGFzdXJhLWdyYXBocWwubW9kdWxlJ1xuaW1wb3J0IHsgQW5ndWxhclZlcnRleFNlYWNoTW9kdWxlIH0gZnJvbSAnLi9hbmd1bGFyLXZlcnRleC1zZWFyY2gubW9kdWxlJ1xuaW1wb3J0IHtcbiAgQkFDS0VORF9VUkwsXG4gIENBVEVHT1JZX1NUUlVDVFVSRSxcbiAgREVGQVVMVF9TSE9QLFxuICBFU19DT05GSUcsXG4gIEZJUkVCQVNFX0FQUF9OQU1FLFxuICBGSVJFQkFTRV9PUFRJT05TLFxuICBIQVNVUkFfT1BUSU9OUyxcbiAgUEVSU0lTVEVOQ0VfUFJPVklERVIsXG4gIFJFQ0FQVENIQV9TSVRFX0tFWSxcbiAgVkVSVEVYX0NPTkZJRyxcbn0gZnJvbSAnLi9jb25zdHMnXG5pbXBvcnQgeyBTVE9SQUdFX0JBU0VfVVJMIH0gZnJvbSAnLi9jb25zdHMvc3RvcmFnZS1iYXNlLXVybC5jb25zdCdcbmltcG9ydCB7IENvb2tpZURhdGFQZXJzaXN0ZW5jZSwgRGF0YVBlcnNpc3RlbmNlIH0gZnJvbSAnLi9wZXJzaXN0ZW5jZSdcbmltcG9ydCB7XG4gIEF1dGhTZXJ2aWNlLFxuICBDYXJ0U2VydmljZSxcbiAgQ2F0YWxvZ1NlcnZpY2UsXG4gIENhdGVnb3J5U2VydmljZSxcbiAgQ2hlY2tvdXRTZXJ2aWNlLFxuICBDaGVja291dFN1YnNjcmlwdGlvblNlcnZpY2UsXG4gIENvdXBvblNlcnZpY2UsXG4gIEhvbWVTaG9wU2VydmljZSxcbiAgT3JkZXJTZXJ2aWNlLFxuICBTaGlwcGluZ1NlcnZpY2UsXG4gIFdpc2hsaXN0U2VydmljZSxcbn0gZnJvbSAnLi9zZXJ2aWNlcydcbmltcG9ydCB7IE5ld0NhdGVnb3J5U3RydWN0dXJlQWRhcHRlciwgT2xkQ2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyIH0gZnJvbSAnLi9zZXJ2aWNlcy9jYXRhbG9nL2FkYXB0ZXJzJ1xuaW1wb3J0IHsgRmlyZWJhc2VBcHBDb25maWcgfSBmcm9tICcuL3R5cGVzJ1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgcHJvdmlkZUZpcmViYXNlQXBwKChpbmplY3RvcjogSW5qZWN0b3IpID0+IHtcbiAgICAgIGNvbnN0IGFwcE5hbWUgPSBpbmplY3Rvci5nZXQ8c3RyaW5nPihGSVJFQkFTRV9BUFBfTkFNRSkgfHwgJ1tERUZBVUxUXSdcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGdldEFwcChhcHBOYW1lKVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIGluaXRpYWxpemVBcHAoaW5qZWN0b3IuZ2V0KEZJUkVCQVNFX09QVElPTlMpLCBhcHBOYW1lKVxuICAgICAgfVxuICAgIH0pLFxuICAgIHByb3ZpZGVBcHBDaGVjaygoaW5qZWN0b3I6IEluamVjdG9yKSA9PiB7XG4gICAgICBjb25zdCBhcHAgPSBpbmplY3Rvci5nZXQoRmlyZWJhc2VBcHApXG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHNpdGVLZXkgPSBpbmplY3Rvci5nZXQ8c3RyaW5nPihSRUNBUFRDSEFfU0lURV9LRVkpXG5cbiAgICAgICAgaWYgKHNpdGVLZXkgJiYgc2l0ZUtleS50cmltKCkgIT09ICcnKVxuICAgICAgICAgIHJldHVybiBpbml0aWFsaXplQXBwQ2hlY2soYXBwLCB7XG4gICAgICAgICAgICBwcm92aWRlcjogbmV3IFJlQ2FwdGNoYUVudGVycHJpc2VQcm92aWRlcihzaXRlS2V5KSxcbiAgICAgICAgICAgIGlzVG9rZW5BdXRvUmVmcmVzaEVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignUmVDQVBUQ0hBIHNpdGUga2V5IG5vdCBwcm92aWRlZCBvciBpbnZhbGlkLCBBcHAgQ2hlY2sgbm90IGluaXRpYWxpemVkJylcbiAgICAgIH1cblxuICAgICAgcmV0dXJuXG4gICAgfSksXG4gICAgcHJvdmlkZVN0b3JhZ2UoKGluamVjdG9yOiBJbmplY3RvcikgPT4gZ2V0U3RvcmFnZShpbmplY3Rvci5nZXQoRmlyZWJhc2VBcHApKSksXG4gICAgQW5ndWxhckVsYXN0aWNTZWFjaE1vZHVsZSxcbiAgICBBbmd1bGFyVmVydGV4U2VhY2hNb2R1bGUsXG4gICAgQW5ndWxhckZpcmViYXNlQXV0aE1vZHVsZSxcbiAgICBBbmd1bGFyRmlyZXN0b3JlTW9kdWxlLFxuICAgIEFuZ3VsYXJIYXN1cmFHcmFwaFFMTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBBdXRoU2VydmljZSxcbiAgICBDYXJ0U2VydmljZSxcbiAgICBDYXRhbG9nU2VydmljZSxcbiAgICBDYXRlZ29yeVNlcnZpY2UsXG4gICAgQ2hlY2tvdXRTZXJ2aWNlLFxuICAgIENoZWNrb3V0U3Vic2NyaXB0aW9uU2VydmljZSxcbiAgICBDb3Vwb25TZXJ2aWNlLFxuICAgIEhvbWVTaG9wU2VydmljZSxcbiAgICBPcmRlclNlcnZpY2UsXG4gICAgU2hpcHBpbmdTZXJ2aWNlLFxuICAgIFdpc2hsaXN0U2VydmljZSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBVcGRhdGVVc2VySW1hZ2UsXG4gICAgICB1c2VGYWN0b3J5OiAodXNlclJlcG9zaXRvcnk6IFVzZXJSZXBvc2l0b3J5LCBmaWxlVXBsb2FkZXI6IEZpbGVVcGxvYWRlclNlcnZpY2UpID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBVcGRhdGVVc2VySW1hZ2UodXNlclJlcG9zaXRvcnksIGZpbGVVcGxvYWRlcilcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbJ1VzZXJSZXBvc2l0b3J5JywgJ0ZpbGVVcGxvYWRlclNlcnZpY2UnXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdGaWxlVXBsb2FkZXJTZXJ2aWNlJyxcbiAgICAgIHVzZUZhY3Rvcnk6IChzdG9yYWdlOiBTdG9yYWdlLCBiYXNlVXJsOiBzdHJpbmcpID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBGaXJlYmFzZUZpbGVVcGxvYWRlclNlcnZpY2Uoc3RvcmFnZSwgYmFzZVVybClcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbU3RvcmFnZSwgU1RPUkFHRV9CQVNFX1VSTF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiAnUHJvZHVjdFNlYXJjaCcsXG4gICAgICB1c2VFeGlzdGluZzogUHJvZHVjdHNWZXJ0ZXhTZWFyY2gsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQW5ndWxhckNvbm5lY3RNb2R1bGUge1xuICBzdGF0aWMgaW5pdGlhbGl6ZUFwcChcbiAgICBkZWZhdWx0U2hvcDogU2hvcHMsXG4gICAgb3B0aW9uczoge1xuICAgICAgZmlyZWJhc2U6IEZpcmViYXNlT3B0aW9uc1xuICAgICAgZWxhc3RpY1NlYXJjaD86IEF4aW9zRWxhc3RpY1NlYXJjaENvbmZpZ1xuICAgICAgdmVydGV4Q29uZmlnPzogVmVydGV4U2VhcmNoQ29uZmlnXG4gICAgICBoYXN1cmE6IEhhc3VyYUdyYXBoUUxPcHRpb25zXG4gICAgICBiYWNrZW5kVXJsOiBzdHJpbmdcbiAgICAgIG9sZENhdGVnb3J5U3RydWN0dXJlPzogYm9vbGVhblxuICAgICAgc3RvcmFnZUJhc2VVcmw/OiBzdHJpbmdcbiAgICAgIHBlcnNpc3RlbmNlUHJvdmlkZXI/OiBUeXBlPERhdGFQZXJzaXN0ZW5jZT5cbiAgICAgIHJlY2FwdGNoYVNpdGVLZXk/OiBzdHJpbmdcbiAgICB9LFxuICAgIG5hbWVPckNvbmZpZz86IHN0cmluZyB8IEZpcmViYXNlQXBwQ29uZmlnLFxuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFuZ3VsYXJDb25uZWN0TW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBBbmd1bGFyQ29ubmVjdE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogQ0FURUdPUllfU1RSVUNUVVJFLFxuICAgICAgICAgIHVzZUNsYXNzOlxuICAgICAgICAgICAgaXNOaWwob3B0aW9ucz8ub2xkQ2F0ZWdvcnlTdHJ1Y3R1cmUpIHx8IG9wdGlvbnM/Lm9sZENhdGVnb3J5U3RydWN0dXJlXG4gICAgICAgICAgICAgID8gT2xkQ2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyXG4gICAgICAgICAgICAgIDogTmV3Q2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyLFxuICAgICAgICB9LFxuICAgICAgICB7IHByb3ZpZGU6IFBFUlNJU1RFTkNFX1BST1ZJREVSLCB1c2VDbGFzczogb3B0aW9ucz8ucGVyc2lzdGVuY2VQcm92aWRlciB8fCBDb29raWVEYXRhUGVyc2lzdGVuY2UgfSxcbiAgICAgICAgLi4uKGlzTmlsKGRlZmF1bHRTaG9wKSA/IFtdIDogW3sgcHJvdmlkZTogREVGQVVMVF9TSE9QLCB1c2VWYWx1ZTogZGVmYXVsdFNob3AgfV0pLFxuICAgICAgICAuLi4oaXNOaWwob3B0aW9ucz8uZmlyZWJhc2UpID8gW10gOiBbeyBwcm92aWRlOiBGSVJFQkFTRV9PUFRJT05TLCB1c2VWYWx1ZTogb3B0aW9ucz8uZmlyZWJhc2UgfV0pLFxuICAgICAgICAuLi4oaXNOaWwob3B0aW9ucz8uZmlyZWJhc2UpID8gW10gOiBbeyBwcm92aWRlOiBGSVJFQkFTRV9BUFBfTkFNRSwgdXNlVmFsdWU6IG5hbWVPckNvbmZpZyB9XSksXG4gICAgICAgIC4uLihpc05pbChvcHRpb25zPy5lbGFzdGljU2VhcmNoKSA/IFtdIDogW3sgcHJvdmlkZTogRVNfQ09ORklHLCB1c2VWYWx1ZTogb3B0aW9ucy5lbGFzdGljU2VhcmNoIH1dKSxcbiAgICAgICAgLi4uKGlzTmlsKG9wdGlvbnM/LnZlcnRleENvbmZpZykgPyBbXSA6IFt7IHByb3ZpZGU6IFZFUlRFWF9DT05GSUcsIHVzZVZhbHVlOiBvcHRpb25zLnZlcnRleENvbmZpZyB9XSksXG4gICAgICAgIC4uLihpc05pbChvcHRpb25zPy5oYXN1cmEpID8gW10gOiBbeyBwcm92aWRlOiBIQVNVUkFfT1BUSU9OUywgdXNlVmFsdWU6IG9wdGlvbnMuaGFzdXJhIH1dKSxcbiAgICAgICAgLi4uKGlzTmlsKG9wdGlvbnM/LmJhY2tlbmRVcmwpID8gW10gOiBbeyBwcm92aWRlOiBCQUNLRU5EX1VSTCwgdXNlVmFsdWU6IG9wdGlvbnMuYmFja2VuZFVybCB9XSksXG4gICAgICAgIC4uLihpc05pbChvcHRpb25zPy5zdG9yYWdlQmFzZVVybCkgPyBbXSA6IFt7IHByb3ZpZGU6IFNUT1JBR0VfQkFTRV9VUkwsIHVzZVZhbHVlOiBvcHRpb25zLnN0b3JhZ2VCYXNlVXJsIH1dKSxcbiAgICAgICAgLi4uKGlzTmlsKG9wdGlvbnM/LnJlY2FwdGNoYVNpdGVLZXkpXG4gICAgICAgICAgPyBbXVxuICAgICAgICAgIDogW3sgcHJvdmlkZTogUkVDQVBUQ0hBX1NJVEVfS0VZLCB1c2VWYWx1ZTogb3B0aW9ucy5yZWNhcHRjaGFTaXRlS2V5IH1dKSxcbiAgICAgIF0sXG4gICAgfVxuICB9XG59XG4iXX0=
@@ -306,4 +306,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
306
306
  ],
307
307
  }]
308
308
  }] });
309
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1oYXN1cmEtZ3JhcGhxbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL2FuZ3VsYXItaGFzdXJhLWdyYXBocWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ25ELE9BQU8sRUFBdUIsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxRSxPQUFPLEVBQ0wsaURBQWlELEVBQ2pELHFDQUFxQyxFQUVyQywrQkFBK0IsRUFDL0Isc0NBQXNDLEVBRXRDLDZCQUE2QixFQUM3QixtQ0FBbUMsRUFLbkMsOEJBQThCLEVBRTlCLHFDQUFxQyxFQUVyQywrQ0FBK0MsRUFFL0MsOEJBQThCLEVBRTlCLCtCQUErQixHQUNoQyxNQUFNLG1CQUFtQixDQUFBO0FBQzFCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7O0FBcUt6QyxNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDLE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FHcEI7UUFDQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLDBCQUEwQjtZQUNwQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDO1NBQzVELENBQUE7SUFDSCxDQUFDOzt1SEFUVSwwQkFBMEI7d0hBQTFCLDBCQUEwQjt3SEFBMUIsMEJBQTBCLGFBaEsxQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGNBQWM7WUFDdkIsVUFBVSxFQUFFLENBQUMsT0FBNkIsRUFBRSxVQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNsRSxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7Z0JBQzFCLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztnQkFDaEMsWUFBWSxFQUFFO29CQUNaLE9BQU8sRUFBRSxDQUFDLE9BQXlFLEVBQUUsRUFBRTt3QkFDckYsSUFBSSxpQkFBaUIsQ0FBQyxVQUFVLENBQUM7NEJBQUUsT0FBTyxPQUFPLENBQUE7d0JBRWpELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7d0JBRTNDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO3dCQUUzQixPQUFPLE9BQU8sQ0FBQTtvQkFDaEIsQ0FBQztvQkFDRCxRQUFRLEVBQUUsQ0FBQyxRQUFhLEVBQUUsT0FBeUUsRUFBRSxFQUFFO3dCQUNyRyxJQUFJLGlCQUFpQixDQUFDLFVBQVUsQ0FBQzs0QkFBRSxPQUFPLFFBQVEsQ0FBQTt3QkFFbEQsYUFBYSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTt3QkFFL0IsT0FBTyxRQUFRLENBQUE7b0JBQ2pCLENBQUM7aUJBQ0Y7YUFDRixDQUFDO1lBQ0YsSUFBSSxFQUFFLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQztTQUNwQztRQUNEO1lBQ0UsT0FBTyxFQUFFLG9CQUFvQjtZQUM3QixXQUFXLEVBQUUsK0JBQStCO1NBQzdDO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsK0JBQStCO1lBQ3hDLFVBQVUsRUFBRSxDQUNWLE9BQVksRUFDWixpQkFBaUQsRUFDakQsd0JBQStELEVBQzNDLEVBQUU7Z0JBQ3RCLE9BQU8sSUFBSSwrQkFBK0IsQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLENBQUMsQ0FBQTtZQUNsRyxDQUFDO1lBQ0QsSUFBSSxFQUFFLENBQUMsY0FBYyxFQUFFLDhCQUE4QixFQUFFLHFDQUFxQyxDQUFDO1NBQzlGO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLFdBQVcsRUFBRSw4QkFBOEI7U0FDNUM7UUFDRDtZQUNFLE9BQU8sRUFBRSw4QkFBOEI7WUFDdkMsVUFBVSxFQUFFLENBQUMsWUFBaUIsRUFBcUIsRUFBRTtnQkFDbkQsT0FBTyxJQUFJLDhCQUE4QixDQUFDLFlBQVksQ0FBQyxDQUFBO1lBQ3pELENBQUM7WUFDRCxJQUFJLEVBQUUsQ0FBQyxjQUFjLENBQUM7U0FDdkI7UUFDRDtZQUNFLE9BQU8sRUFBRSwwQkFBMEI7WUFDbkMsV0FBVyxFQUFFLHFDQUFxQztTQUNuRDtRQUNEO1lBQ0UsT0FBTyxFQUFFLHFDQUFxQztZQUM5QyxVQUFVLEVBQUUsQ0FBQyxZQUFpQixFQUE0QixFQUFFO2dCQUMxRCxPQUFPLElBQUkscUNBQXFDLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDaEUsQ0FBQztZQUNELElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQztTQUN2QjtRQUNEO1lBQ0UsT0FBTyxFQUFFLG1CQUFtQjtZQUM1QixXQUFXLEVBQUUsOEJBQThCO1NBQzVDO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsOEJBQThCO1lBQ3ZDLFVBQVUsRUFBRSxDQUFDLFlBQWlCLEVBQXFCLEVBQUU7Z0JBQ25ELE9BQU8sSUFBSSw4QkFBOEIsQ0FBQyxZQUFZLENBQUMsQ0FBQTtZQUN6RCxDQUFDO1lBQ0QsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDO1NBQ3ZCO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsb0NBQW9DO1lBQzdDLFdBQVcsRUFBRSwrQ0FBK0M7U0FDN0Q7UUFDRDtZQUNFLE9BQU8sRUFBRSwrQ0FBK0M7WUFDeEQsVUFBVSxFQUFFLENBQUMsWUFBaUIsRUFBc0MsRUFBRTtnQkFDcEUsT0FBTyxJQUFJLCtDQUErQyxDQUFDLFlBQVksQ0FBQyxDQUFBO1lBQzFFLENBQUM7WUFDRCxJQUFJLEVBQUUsQ0FBQyxjQUFjLENBQUM7U0FDdkI7UUFDRDtZQUNFLE9BQU8sRUFBRSwwQkFBMEI7WUFDbkMsV0FBVyxFQUFFLHFDQUFxQztTQUNuRDtRQUNEO1lBQ0UsT0FBTyxFQUFFLHFDQUFxQztZQUM5QyxVQUFVLEVBQUUsQ0FBQyxPQUFZLEVBQTRCLEVBQUU7Z0JBQ3JELE9BQU8sSUFBSSxxQ0FBcUMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUMzRCxDQUFDO1lBQ0QsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDO1NBQ3ZCO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsd0JBQXdCO1lBQ2pDLFdBQVcsRUFBRSxtQ0FBbUM7U0FDakQ7UUFDRDtZQUNFLE9BQU8sRUFBRSxtQ0FBbUM7WUFDNUMsVUFBVSxFQUFFLENBQUMsT0FBWSxFQUEwQixFQUFFO2dCQUNuRCxPQUFPLElBQUksbUNBQW1DLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDekQsQ0FBQztZQUNELElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQztTQUN2QjtRQUNEO1lBQ0UsT0FBTyxFQUFFLGtCQUFrQjtZQUMzQixXQUFXLEVBQUUsNkJBQTZCO1NBQzNDO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsNkJBQTZCO1lBQ3RDLFVBQVUsRUFBRSxDQUNWLE9BQVksRUFDWixzQkFBMkQsRUFDM0Qsd0JBQStELEVBQzdDLEVBQUU7Z0JBQ3BCLE9BQU8sSUFBSSw2QkFBNkIsQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsd0JBQXdCLENBQUMsQ0FBQTtZQUNyRyxDQUFDO1lBQ0QsSUFBSSxFQUFFLENBQUMsY0FBYyxFQUFFLG1DQUFtQyxFQUFFLHFDQUFxQyxDQUFDO1NBQ25HO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsaURBQWlEO1lBQzFELFVBQVUsRUFBRSxDQUFDLE9BQVksRUFBcUQsRUFBRSxDQUM5RSxJQUFJLGlEQUFpRCxDQUFDLE9BQU8sQ0FBQztZQUNoRSxJQUFJLEVBQUUsQ0FBQyxjQUFjLENBQUM7U0FDdkI7UUFDRDtZQUNFLE9BQU8sRUFBRSxzQ0FBc0M7WUFDL0MsV0FBVyxFQUFFLGlEQUFpRDtTQUMvRDtRQUNEO1lBQ0UsT0FBTyxFQUFFLHNDQUFzQztZQUMvQyxVQUFVLEVBQUUsQ0FBQyxPQUFZLEVBQTBDLEVBQUU7Z0JBQ25FLE9BQU8sSUFBSSxzQ0FBc0MsQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUM1RCxDQUFDO1lBQ0QsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDO1NBQ3ZCO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsMkJBQTJCO1lBQ3BDLFdBQVcsRUFBRSxzQ0FBc0M7U0FDcEQ7UUFDRDtZQUNFLE9BQU8sRUFBRSwrQkFBK0I7WUFDeEMsVUFBVSxFQUFFLENBQ1YsT0FBWSxFQUNaLHlCQUFpRSxFQUNoQyxFQUFFO2dCQUNuQyxPQUFPLElBQUksK0JBQStCLENBQUMsT0FBTyxFQUFFLHlCQUF5QixDQUFDLENBQUE7WUFDaEYsQ0FBQztZQUNELElBQUksRUFBRSxDQUFDLGNBQWMsRUFBRSxzQ0FBc0MsQ0FBQztTQUMvRDtRQUNEO1lBQ0UsT0FBTyxFQUFFLG9CQUFvQjtZQUM3QixXQUFXLEVBQUUsK0JBQStCO1NBQzdDO0tBQ0Y7MkZBRVUsMEJBQTBCO2tCQWpLdEMsUUFBUTttQkFBQztvQkFDUixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGNBQWM7NEJBQ3ZCLFVBQVUsRUFBRSxDQUFDLE9BQTZCLEVBQUUsVUFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztnQ0FDbEUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO2dDQUMxQixXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7Z0NBQ2hDLFlBQVksRUFBRTtvQ0FDWixPQUFPLEVBQUUsQ0FBQyxPQUF5RSxFQUFFLEVBQUU7d0NBQ3JGLElBQUksaUJBQWlCLENBQUMsVUFBVSxDQUFDOzRDQUFFLE9BQU8sT0FBTyxDQUFBO3dDQUVqRCxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFBO3dDQUUzQyxPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTt3Q0FFM0IsT0FBTyxPQUFPLENBQUE7b0NBQ2hCLENBQUM7b0NBQ0QsUUFBUSxFQUFFLENBQUMsUUFBYSxFQUFFLE9BQXlFLEVBQUUsRUFBRTt3Q0FDckcsSUFBSSxpQkFBaUIsQ0FBQyxVQUFVLENBQUM7NENBQUUsT0FBTyxRQUFRLENBQUE7d0NBRWxELGFBQWEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7d0NBRS9CLE9BQU8sUUFBUSxDQUFBO29DQUNqQixDQUFDO2lDQUNGOzZCQUNGLENBQUM7NEJBQ0YsSUFBSSxFQUFFLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQzt5QkFDcEM7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLG9CQUFvQjs0QkFDN0IsV0FBVyxFQUFFLCtCQUErQjt5QkFDN0M7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLCtCQUErQjs0QkFDeEMsVUFBVSxFQUFFLENBQ1YsT0FBWSxFQUNaLGlCQUFpRCxFQUNqRCx3QkFBK0QsRUFDM0MsRUFBRTtnQ0FDdEIsT0FBTyxJQUFJLCtCQUErQixDQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsQ0FBQyxDQUFBOzRCQUNsRyxDQUFDOzRCQUNELElBQUksRUFBRSxDQUFDLGNBQWMsRUFBRSw4QkFBOEIsRUFBRSxxQ0FBcUMsQ0FBQzt5QkFDOUY7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsV0FBVyxFQUFFLDhCQUE4Qjt5QkFDNUM7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLDhCQUE4Qjs0QkFDdkMsVUFBVSxFQUFFLENBQUMsWUFBaUIsRUFBcUIsRUFBRTtnQ0FDbkQsT0FBTyxJQUFJLDhCQUE4QixDQUFDLFlBQVksQ0FBQyxDQUFBOzRCQUN6RCxDQUFDOzRCQUNELElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQzt5QkFDdkI7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLDBCQUEwQjs0QkFDbkMsV0FBVyxFQUFFLHFDQUFxQzt5QkFDbkQ7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLHFDQUFxQzs0QkFDOUMsVUFBVSxFQUFFLENBQUMsWUFBaUIsRUFBNEIsRUFBRTtnQ0FDMUQsT0FBTyxJQUFJLHFDQUFxQyxDQUFDLFlBQVksQ0FBQyxDQUFBOzRCQUNoRSxDQUFDOzRCQUNELElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQzt5QkFDdkI7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsV0FBVyxFQUFFLDhCQUE4Qjt5QkFDNUM7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLDhCQUE4Qjs0QkFDdkMsVUFBVSxFQUFFLENBQUMsWUFBaUIsRUFBcUIsRUFBRTtnQ0FDbkQsT0FBTyxJQUFJLDhCQUE4QixDQUFDLFlBQVksQ0FBQyxDQUFBOzRCQUN6RCxDQUFDOzRCQUNELElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQzt5QkFDdkI7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLG9DQUFvQzs0QkFDN0MsV0FBVyxFQUFFLCtDQUErQzt5QkFDN0Q7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLCtDQUErQzs0QkFDeEQsVUFBVSxFQUFFLENBQUMsWUFBaUIsRUFBc0MsRUFBRTtnQ0FDcEUsT0FBTyxJQUFJLCtDQUErQyxDQUFDLFlBQVksQ0FBQyxDQUFBOzRCQUMxRSxDQUFDOzRCQUNELElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQzt5QkFDdkI7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLDBCQUEwQjs0QkFDbkMsV0FBVyxFQUFFLHFDQUFxQzt5QkFDbkQ7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLHFDQUFxQzs0QkFDOUMsVUFBVSxFQUFFLENBQUMsT0FBWSxFQUE0QixFQUFFO2dDQUNyRCxPQUFPLElBQUkscUNBQXFDLENBQUMsT0FBTyxDQUFDLENBQUE7NEJBQzNELENBQUM7NEJBQ0QsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDO3lCQUN2Qjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsd0JBQXdCOzRCQUNqQyxXQUFXLEVBQUUsbUNBQW1DO3lCQUNqRDt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsbUNBQW1DOzRCQUM1QyxVQUFVLEVBQUUsQ0FBQyxPQUFZLEVBQTBCLEVBQUU7Z0NBQ25ELE9BQU8sSUFBSSxtQ0FBbUMsQ0FBQyxPQUFPLENBQUMsQ0FBQTs0QkFDekQsQ0FBQzs0QkFDRCxJQUFJLEVBQUUsQ0FBQyxjQUFjLENBQUM7eUJBQ3ZCO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSw2QkFBNkI7eUJBQzNDO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSw2QkFBNkI7NEJBQ3RDLFVBQVUsRUFBRSxDQUNWLE9BQVksRUFDWixzQkFBMkQsRUFDM0Qsd0JBQStELEVBQzdDLEVBQUU7Z0NBQ3BCLE9BQU8sSUFBSSw2QkFBNkIsQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsd0JBQXdCLENBQUMsQ0FBQTs0QkFDckcsQ0FBQzs0QkFDRCxJQUFJLEVBQUUsQ0FBQyxjQUFjLEVBQUUsbUNBQW1DLEVBQUUscUNBQXFDLENBQUM7eUJBQ25HO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxpREFBaUQ7NEJBQzFELFVBQVUsRUFBRSxDQUFDLE9BQVksRUFBcUQsRUFBRSxDQUM5RSxJQUFJLGlEQUFpRCxDQUFDLE9BQU8sQ0FBQzs0QkFDaEUsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDO3lCQUN2Qjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsc0NBQXNDOzRCQUMvQyxXQUFXLEVBQUUsaURBQWlEO3lCQUMvRDt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsc0NBQXNDOzRCQUMvQyxVQUFVLEVBQUUsQ0FBQyxPQUFZLEVBQTBDLEVBQUU7Z0NBQ25FLE9BQU8sSUFBSSxzQ0FBc0MsQ0FBQyxPQUFPLENBQUMsQ0FBQTs0QkFDNUQsQ0FBQzs0QkFDRCxJQUFJLEVBQUUsQ0FBQyxjQUFjLENBQUM7eUJBQ3ZCO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSwyQkFBMkI7NEJBQ3BDLFdBQVcsRUFBRSxzQ0FBc0M7eUJBQ3BEO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSwrQkFBK0I7NEJBQ3hDLFVBQVUsRUFBRSxDQUNWLE9BQVksRUFDWix5QkFBaUUsRUFDaEMsRUFBRTtnQ0FDbkMsT0FBTyxJQUFJLCtCQUErQixDQUFDLE9BQU8sRUFBRSx5QkFBeUIsQ0FBQyxDQUFBOzRCQUNoRixDQUFDOzRCQUNELElBQUksRUFBRSxDQUFDLGNBQWMsRUFBRSxzQ0FBc0MsQ0FBQzt5QkFDL0Q7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLG9CQUFvQjs0QkFDN0IsV0FBVyxFQUFFLCtCQUErQjt5QkFDN0M7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDYXRlZ29yeUNvbGxlY3Rpb25DaGlsZHJlbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICBDYXRlZ29yeUZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICBDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnksXG4gIENhdGVnb3J5SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gIENhdGVnb3J5UHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICBDYXRlZ29yeVJlcG9zaXRvcnksXG4gIEZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICBGaWx0ZXJPcHRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgRmlsdGVyT3B0aW9uUmVwb3NpdG9yeSxcbiAgRmlsdGVyUmVwb3NpdG9yeSxcbiAgR3JhcGhRTFBhcmFtcyxcbiAgSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zLFxuICBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gIFByb2R1Y3RSZXBvc2l0b3J5LFxuICBQcm9kdWN0UmV2aWV3c0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICBQcm9kdWN0UmV2aWV3c1JlcG9zaXRvcnksXG4gIFByb2R1Y3RTdG9ja05vdGlmaWNhdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25SZXBvc2l0b3J5LFxuICBWYXJpYW50SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gIFZhcmlhbnRSZXBvc2l0b3J5LFxuICBXaXNobGlzdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcbmltcG9ydCB7IEhBU1VSQV9PUFRJT05TIH0gZnJvbSAnLi9jb25zdHMnXG5cbmV4cG9ydCB0eXBlIEhhc3VyYUdyYXBoUUxPcHRpb25zID0geyBlbmRwb2ludDogc3RyaW5nOyBjcmVkZW50aWFscz86IEhhc3VyYUdyYXBoUUxBdXRoT3B0aW9ucyB9XG5cbkBOZ01vZHVsZSh7XG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdIYXN1cmFDb25maWcnLFxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IEhhc3VyYUdyYXBoUUxPcHRpb25zLCBwbGF0Zm9ybUlkOiBzdHJpbmcpID0+ICh7XG4gICAgICAgIGVuZHBvaW50OiBvcHRpb25zLmVuZHBvaW50LFxuICAgICAgICBhdXRoT3B0aW9uczogb3B0aW9ucy5jcmVkZW50aWFscyxcbiAgICAgICAgaW50ZXJjZXB0b3JzOiB7XG4gICAgICAgICAgcmVxdWVzdDogKHJlcXVlc3Q6IEdyYXBoUUxQYXJhbXM8YW55PiAmIHsgaW50ZXJ2YWw6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IH0pID0+IHtcbiAgICAgICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKSkgcmV0dXJuIHJlcXVlc3RcblxuICAgICAgICAgICAgY29uc3QgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7fSwgMTAwKVxuXG4gICAgICAgICAgICByZXF1ZXN0LmludGVydmFsID0gaW50ZXJ2YWxcblxuICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc3BvbnNlOiAocmVzcG9uc2U6IGFueSwgcmVxdWVzdDogR3JhcGhRTFBhcmFtczxhbnk+ICYgeyBpbnRlcnZhbDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfSkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpKSByZXR1cm4gcmVzcG9uc2VcblxuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChyZXF1ZXN0LmludGVydmFsKVxuXG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2VcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBkZXBzOiBbSEFTVVJBX09QVElPTlMsIFBMQVRGT1JNX0lEXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdDYXRlZ29yeVJlcG9zaXRvcnknLFxuICAgICAgdXNlRXhpc3Rpbmc6IENhdGVnb3J5SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBDYXRlZ29yeUhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgdXNlRmFjdG9yeTogKFxuICAgICAgICBvcHRpb25zOiBhbnksXG4gICAgICAgIHByb2R1Y3RSZXBvc2l0b3J5OiBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgICAgIGNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeTogQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICAgICk6IENhdGVnb3J5UmVwb3NpdG9yeSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgQ2F0ZWdvcnlIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zLCBwcm9kdWN0UmVwb3NpdG9yeSwgY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5KVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJywgUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LCBDYXRlZ29yeUZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5XSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdQcm9kdWN0UmVwb3NpdG9yeScsXG4gICAgICB1c2VFeGlzdGluZzogUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgdXNlRmFjdG9yeTogKGhhc3VyYUNvbmZpZzogYW55KTogUHJvZHVjdFJlcG9zaXRvcnkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShoYXN1cmFDb25maWcpXG4gICAgICB9LFxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdQcm9kdWN0UmV2aWV3c1JlcG9zaXRvcnknLFxuICAgICAgdXNlRXhpc3Rpbmc6IFByb2R1Y3RSZXZpZXdzSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBQcm9kdWN0UmV2aWV3c0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgdXNlRmFjdG9yeTogKGhhc3VyYUNvbmZpZzogYW55KTogUHJvZHVjdFJldmlld3NSZXBvc2l0b3J5ID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9kdWN0UmV2aWV3c0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KGhhc3VyYUNvbmZpZylcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZyddLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ1ZhcmlhbnRSZXBvc2l0b3J5JyxcbiAgICAgIHVzZUV4aXN0aW5nOiBWYXJpYW50SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBWYXJpYW50SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgICB1c2VGYWN0b3J5OiAoaGFzdXJhQ29uZmlnOiBhbnkpOiBWYXJpYW50UmVwb3NpdG9yeSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgVmFyaWFudEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KGhhc3VyYUNvbmZpZylcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZyddLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ1Byb2R1Y3RTdG9ja05vdGlmaWNhdGlvblJlcG9zaXRvcnknLFxuICAgICAgdXNlRXhpc3Rpbmc6IFByb2R1Y3RTdG9ja05vdGlmaWNhdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogUHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgICB1c2VGYWN0b3J5OiAoaGFzdXJhQ29uZmlnOiBhbnkpOiBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25SZXBvc2l0b3J5ID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShoYXN1cmFDb25maWcpXG4gICAgICB9LFxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnknLFxuICAgICAgdXNlRXhpc3Rpbmc6IENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBDYXRlZ29yeUZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IGFueSk6IENhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zKVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiAnRmlsdGVyT3B0aW9uUmVwb3NpdG9yeScsXG4gICAgICB1c2VFeGlzdGluZzogRmlsdGVyT3B0aW9uSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBGaWx0ZXJPcHRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICAgIHVzZUZhY3Rvcnk6IChvcHRpb25zOiBhbnkpOiBGaWx0ZXJPcHRpb25SZXBvc2l0b3J5ID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBGaWx0ZXJPcHRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zKVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiAnRmlsdGVyUmVwb3NpdG9yeScsXG4gICAgICB1c2VFeGlzdGluZzogRmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICAgIHVzZUZhY3Rvcnk6IChcbiAgICAgICAgb3B0aW9uczogYW55LFxuICAgICAgICBmaWx0ZXJPcHRpb25SZXBvc2l0b3J5OiBGaWx0ZXJPcHRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICAgICAgY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5OiBDYXRlZ29yeUZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgKTogRmlsdGVyUmVwb3NpdG9yeSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgRmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucywgZmlsdGVyT3B0aW9uUmVwb3NpdG9yeSwgY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5KVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJywgRmlsdGVyT3B0aW9uSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksIENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnldLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQ2F0ZWdvcnlDb2xsZWN0aW9uQ2hpbGRyZW5IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICAgIHVzZUZhY3Rvcnk6IChvcHRpb25zOiBhbnkpOiBDYXRlZ29yeUNvbGxlY3Rpb25DaGlsZHJlbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5ID0+XG4gICAgICAgIG5ldyBDYXRlZ29yeUNvbGxlY3Rpb25DaGlsZHJlbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMpLFxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdDYXRlZ29yeUNvbGxlY3Rpb25DaGlsZHJlblJlcG9zaXRvcnknLFxuICAgICAgdXNlRXhpc3Rpbmc6IENhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBDYXRlZ29yeVByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICAgIHVzZUZhY3Rvcnk6IChvcHRpb25zOiBhbnkpOiBDYXRlZ29yeVByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgQ2F0ZWdvcnlQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucylcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZyddLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ0NhdGVnb3J5UHJvZHVjdFJlcG9zaXRvcnknLFxuICAgICAgdXNlRXhpc3Rpbmc6IENhdGVnb3J5UHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogV2lzaGxpc3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICAgIHVzZUZhY3Rvcnk6IChcbiAgICAgICAgb3B0aW9uczogYW55LFxuICAgICAgICBjYXRlZ29yeVByb2R1Y3RSZXBvc2l0b3J5OiBDYXRlZ29yeVByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICAgICk6IFdpc2hsaXN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFdpc2hsaXN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucywgY2F0ZWdvcnlQcm9kdWN0UmVwb3NpdG9yeSlcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZycsIENhdGVnb3J5UHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5XSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdXaXNobGlzdFJlcG9zaXRvcnknLFxuICAgICAgdXNlRXhpc3Rpbmc6IFdpc2hsaXN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQW5ndWxhckhhc3VyYUdyYXBoUUxNb2R1bGUge1xuICBzdGF0aWMgaW5pdGlhbGl6ZUFwcChvcHRpb25zOiB7XG4gICAgZW5kcG9pbnQ6IHN0cmluZ1xuICAgIGNyZWRlbnRpYWxzOiBIYXN1cmFHcmFwaFFMQXV0aE9wdGlvbnNcbiAgfSk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QW5ndWxhckhhc3VyYUdyYXBoUUxNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFuZ3VsYXJIYXN1cmFHcmFwaFFMTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBIQVNVUkFfT1BUSU9OUywgdXNlVmFsdWU6IG9wdGlvbnMgfV0sXG4gICAgfVxuICB9XG59XG4iXX0=
309
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1oYXN1cmEtZ3JhcGhxbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL2FuZ3VsYXItaGFzdXJhLWdyYXBocWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ25ELE9BQU8sRUFBdUIsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxRSxPQUFPLEVBQ0wsaURBQWlELEVBQ2pELHFDQUFxQyxFQUVyQywrQkFBK0IsRUFDL0Isc0NBQXNDLEVBRXRDLDZCQUE2QixFQUM3QixtQ0FBbUMsRUFLbkMsOEJBQThCLEVBRTlCLHFDQUFxQyxFQUVyQywrQ0FBK0MsRUFFL0MsOEJBQThCLEVBRTlCLCtCQUErQixHQUNoQyxNQUFNLG1CQUFtQixDQUFBO0FBQzFCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7O0FBcUt6QyxNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDLE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FHcEI7UUFDQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLDBCQUEwQjtZQUNwQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDO1NBQzVELENBQUE7SUFDSCxDQUFDOzt1SEFUVSwwQkFBMEI7d0hBQTFCLDBCQUEwQjt3SEFBMUIsMEJBQTBCLGFBaEsxQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGNBQWM7WUFDdkIsVUFBVSxFQUFFLENBQUMsT0FBNkIsRUFBRSxVQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNsRSxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7Z0JBQzFCLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztnQkFDaEMsWUFBWSxFQUFFO29CQUNaLE9BQU8sRUFB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IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDYXRlZ29yeUNvbGxlY3Rpb25DaGlsZHJlbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICBDYXRlZ29yeUZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICBDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnksXG4gIENhdGVnb3J5SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gIENhdGVnb3J5UHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICBDYXRlZ29yeVJlcG9zaXRvcnksXG4gIEZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICBGaWx0ZXJPcHRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgRmlsdGVyT3B0aW9uUmVwb3NpdG9yeSxcbiAgRmlsdGVyUmVwb3NpdG9yeSxcbiAgR3JhcGhRTFBhcmFtcyxcbiAgSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zLFxuICBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gIFByb2R1Y3RSZXBvc2l0b3J5LFxuICBQcm9kdWN0UmV2aWV3c0hhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICBQcm9kdWN0UmV2aWV3c1JlcG9zaXRvcnksXG4gIFByb2R1Y3RTdG9ja05vdGlmaWNhdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25SZXBvc2l0b3J5LFxuICBWYXJpYW50SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gIFZhcmlhbnRSZXBvc2l0b3J5LFxuICBXaXNobGlzdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcbmltcG9ydCB7IEhBU1VSQV9PUFRJT05TIH0gZnJvbSAnLi9jb25zdHMnXG5cbmV4cG9ydCB0eXBlIEhhc3VyYUdyYXBoUUxPcHRpb25zID0geyBlbmRwb2ludDogc3RyaW5nOyBjcmVkZW50aWFsczogSGFzdXJhR3JhcGhRTEF1dGhPcHRpb25zIH1cblxuQE5nTW9kdWxlKHtcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogJ0hhc3VyYUNvbmZpZycsXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogSGFzdXJhR3JhcGhRTE9wdGlvbnMsIHBsYXRmb3JtSWQ6IHN0cmluZykgPT4gKHtcbiAgICAgICAgZW5kcG9pbnQ6IG9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgIGF1dGhPcHRpb25zOiBvcHRpb25zLmNyZWRlbnRpYWxzLFxuICAgICAgICBpbnRlcmNlcHRvcnM6IHtcbiAgICAgICAgICByZXF1ZXN0OiAocmVxdWVzdDogR3JhcGhRTFBhcmFtczxhbnk+ICYgeyBpbnRlcnZhbDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfSkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpKSByZXR1cm4gcmVxdWVzdFxuXG4gICAgICAgICAgICBjb25zdCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHt9LCAxMDApXG5cbiAgICAgICAgICAgIHJlcXVlc3QuaW50ZXJ2YWwgPSBpbnRlcnZhbFxuXG4gICAgICAgICAgICByZXR1cm4gcmVxdWVzdFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzcG9uc2U6IChyZXNwb25zZTogYW55LCByZXF1ZXN0OiBHcmFwaFFMUGFyYW1zPGFueT4gJiB7IGludGVydmFsOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIocGxhdGZvcm1JZCkpIHJldHVybiByZXNwb25zZVxuXG4gICAgICAgICAgICBjbGVhckludGVydmFsKHJlcXVlc3QuaW50ZXJ2YWwpXG5cbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZVxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIGRlcHM6IFtIQVNVUkFfT1BUSU9OUywgUExBVEZPUk1fSURdLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ0NhdGVnb3J5UmVwb3NpdG9yeScsXG4gICAgICB1c2VFeGlzdGluZzogQ2F0ZWdvcnlIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IENhdGVnb3J5SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgICB1c2VGYWN0b3J5OiAoXG4gICAgICAgIG9wdGlvbnM6IGFueSxcbiAgICAgICAgcHJvZHVjdFJlcG9zaXRvcnk6IFByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICAgICAgY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5OiBDYXRlZ29yeUZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgKTogQ2F0ZWdvcnlSZXBvc2l0b3J5ID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBDYXRlZ29yeUhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMsIHByb2R1Y3RSZXBvc2l0b3J5LCBjYXRlZ29yeUZpbHRlclJlcG9zaXRvcnkpXG4gICAgICB9LFxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnLCBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksIENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnldLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ1Byb2R1Y3RSZXBvc2l0b3J5JyxcbiAgICAgIHVzZUV4aXN0aW5nOiBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgICB1c2VGYWN0b3J5OiAoaGFzdXJhQ29uZmlnOiBhbnkpOiBQcm9kdWN0UmVwb3NpdG9yeSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KGhhc3VyYUNvbmZpZylcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZyddLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ1Byb2R1Y3RSZXZpZXdzUmVwb3NpdG9yeScsXG4gICAgICB1c2VFeGlzdGluZzogUHJvZHVjdFJldmlld3NIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFByb2R1Y3RSZXZpZXdzSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgICB1c2VGYWN0b3J5OiAoaGFzdXJhQ29uZmlnOiBhbnkpOiBQcm9kdWN0UmV2aWV3c1JlcG9zaXRvcnkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb2R1Y3RSZXZpZXdzSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkoaGFzdXJhQ29uZmlnKVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiAnVmFyaWFudFJlcG9zaXRvcnknLFxuICAgICAgdXNlRXhpc3Rpbmc6IFZhcmlhbnRIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFZhcmlhbnRIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICAgIHVzZUZhY3Rvcnk6IChoYXN1cmFDb25maWc6IGFueSk6IFZhcmlhbnRSZXBvc2l0b3J5ID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBWYXJpYW50SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkoaGFzdXJhQ29uZmlnKVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiAnUHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uUmVwb3NpdG9yeScsXG4gICAgICB1c2VFeGlzdGluZzogUHJvZHVjdFN0b2NrTm90aWZpY2F0aW9uSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBQcm9kdWN0U3RvY2tOb3RpZmljYXRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICAgIHVzZUZhY3Rvcnk6IChoYXN1cmFDb25maWc6IGFueSk6IFByb2R1Y3RTdG9ja05vdGlmaWNhdGlvblJlcG9zaXRvcnkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb2R1Y3RTdG9ja05vdGlmaWNhdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KGhhc3VyYUNvbmZpZylcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZyddLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ0NhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeScsXG4gICAgICB1c2VFeGlzdGluZzogQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgICB1c2VGYWN0b3J5OiAob3B0aW9uczogYW55KTogQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5ID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBDYXRlZ29yeUZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMpXG4gICAgICB9LFxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdGaWx0ZXJPcHRpb25SZXBvc2l0b3J5JyxcbiAgICAgIHVzZUV4aXN0aW5nOiBGaWx0ZXJPcHRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEZpbHRlck9wdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IGFueSk6IEZpbHRlck9wdGlvblJlcG9zaXRvcnkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IEZpbHRlck9wdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5KG9wdGlvbnMpXG4gICAgICB9LFxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6ICdGaWx0ZXJSZXBvc2l0b3J5JyxcbiAgICAgIHVzZUV4aXN0aW5nOiBGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEZpbHRlckhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgdXNlRmFjdG9yeTogKFxuICAgICAgICBvcHRpb25zOiBhbnksXG4gICAgICAgIGZpbHRlck9wdGlvblJlcG9zaXRvcnk6IEZpbHRlck9wdGlvbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgICBjYXRlZ29yeUZpbHRlclJlcG9zaXRvcnk6IENhdGVnb3J5RmlsdGVySGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgICApOiBGaWx0ZXJSZXBvc2l0b3J5ID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zLCBmaWx0ZXJPcHRpb25SZXBvc2l0b3J5LCBjYXRlZ29yeUZpbHRlclJlcG9zaXRvcnkpXG4gICAgICB9LFxuICAgICAgZGVwczogWydIYXN1cmFDb25maWcnLCBGaWx0ZXJPcHRpb25IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSwgQ2F0ZWdvcnlGaWx0ZXJIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeV0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBDYXRlZ29yeUNvbGxlY3Rpb25DaGlsZHJlbkhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IGFueSk6IENhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkgPT5cbiAgICAgICAgbmV3IENhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuSGFzdXJhR3JhcGhRTFJlcG9zaXRvcnkob3B0aW9ucyksXG4gICAgICBkZXBzOiBbJ0hhc3VyYUNvbmZpZyddLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ0NhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuUmVwb3NpdG9yeScsXG4gICAgICB1c2VFeGlzdGluZzogQ2F0ZWdvcnlDb2xsZWN0aW9uQ2hpbGRyZW5IYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IENhdGVnb3J5UHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgdXNlRmFjdG9yeTogKG9wdGlvbnM6IGFueSk6IENhdGVnb3J5UHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5ID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBDYXRlZ29yeVByb2R1Y3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zKVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJ10sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiAnQ2F0ZWdvcnlQcm9kdWN0UmVwb3NpdG9yeScsXG4gICAgICB1c2VFeGlzdGluZzogQ2F0ZWdvcnlQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBXaXNobGlzdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgdXNlRmFjdG9yeTogKFxuICAgICAgICBvcHRpb25zOiBhbnksXG4gICAgICAgIGNhdGVnb3J5UHJvZHVjdFJlcG9zaXRvcnk6IENhdGVnb3J5UHJvZHVjdEhhc3VyYUdyYXBoUUxSZXBvc2l0b3J5LFxuICAgICAgKTogV2lzaGxpc3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgV2lzaGxpc3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeShvcHRpb25zLCBjYXRlZ29yeVByb2R1Y3RSZXBvc2l0b3J5KVxuICAgICAgfSxcbiAgICAgIGRlcHM6IFsnSGFzdXJhQ29uZmlnJywgQ2F0ZWdvcnlQcm9kdWN0SGFzdXJhR3JhcGhRTFJlcG9zaXRvcnldLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogJ1dpc2hsaXN0UmVwb3NpdG9yeScsXG4gICAgICB1c2VFeGlzdGluZzogV2lzaGxpc3RIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBbmd1bGFySGFzdXJhR3JhcGhRTE1vZHVsZSB7XG4gIHN0YXRpYyBpbml0aWFsaXplQXBwKG9wdGlvbnM6IHtcbiAgICBlbmRwb2ludDogc3RyaW5nXG4gICAgY3JlZGVudGlhbHM6IEhhc3VyYUdyYXBoUUxBdXRoT3B0aW9uc1xuICB9KTogTW9kdWxlV2l0aFByb3ZpZGVyczxBbmd1bGFySGFzdXJhR3JhcGhRTE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQW5ndWxhckhhc3VyYUdyYXBoUUxNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEhBU1VSQV9PUFRJT05TLCB1c2VWYWx1ZTogb3B0aW9ucyB9XSxcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -3,7 +3,7 @@ import { NgModule, InjectionToken, PLATFORM_ID, Injectable, Inject } from '@angu
3
3
  import * as i1$4 from '@angular/fire/app';
4
4
  import { FirebaseApp, provideFirebaseApp, getApp, initializeApp } from '@angular/fire/app';
5
5
  import * as i2 from '@angular/fire/app-check';
6
- import { provideAppCheck, ReCaptchaEnterpriseProvider, initializeAppCheck } from '@angular/fire/app-check';
6
+ import { provideAppCheck, initializeAppCheck, ReCaptchaEnterpriseProvider } from '@angular/fire/app-check';
7
7
  import * as i3 from '@angular/fire/storage';
8
8
  import { Storage, provideStorage, getStorage } from '@angular/fire/storage';
9
9
  import * as i1$2 from '@infrab4a/connect';
@@ -2668,8 +2668,6 @@ class AngularConnectModule {
2668
2668
  return {
2669
2669
  ngModule: AngularConnectModule,
2670
2670
  providers: [
2671
- { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },
2672
- { provide: RECAPTCHA_SITE_KEY, useValue: options.recaptchaSiteKey },
2673
2671
  {
2674
2672
  provide: CATEGORY_STRUCTURE,
2675
2673
  useClass: isNil(options === null || options === void 0 ? void 0 : options.oldCategoryStructure) || (options === null || options === void 0 ? void 0 : options.oldCategoryStructure)
@@ -2679,11 +2677,15 @@ class AngularConnectModule {
2679
2677
  { provide: PERSISTENCE_PROVIDER, useClass: (options === null || options === void 0 ? void 0 : options.persistenceProvider) || CookieDataPersistence },
2680
2678
  ...(isNil(defaultShop) ? [] : [{ provide: DEFAULT_SHOP, useValue: defaultShop }]),
2681
2679
  ...(isNil(options === null || options === void 0 ? void 0 : options.firebase) ? [] : [{ provide: FIREBASE_OPTIONS, useValue: options === null || options === void 0 ? void 0 : options.firebase }]),
2680
+ ...(isNil(options === null || options === void 0 ? void 0 : options.firebase) ? [] : [{ provide: FIREBASE_APP_NAME, useValue: nameOrConfig }]),
2682
2681
  ...(isNil(options === null || options === void 0 ? void 0 : options.elasticSearch) ? [] : [{ provide: ES_CONFIG, useValue: options.elasticSearch }]),
2683
2682
  ...(isNil(options === null || options === void 0 ? void 0 : options.vertexConfig) ? [] : [{ provide: VERTEX_CONFIG, useValue: options.vertexConfig }]),
2684
2683
  ...(isNil(options === null || options === void 0 ? void 0 : options.hasura) ? [] : [{ provide: HASURA_OPTIONS, useValue: options.hasura }]),
2685
2684
  ...(isNil(options === null || options === void 0 ? void 0 : options.backendUrl) ? [] : [{ provide: BACKEND_URL, useValue: options.backendUrl }]),
2686
2685
  ...(isNil(options === null || options === void 0 ? void 0 : options.storageBaseUrl) ? [] : [{ provide: STORAGE_BASE_URL, useValue: options.storageBaseUrl }]),
2686
+ ...(isNil(options === null || options === void 0 ? void 0 : options.recaptchaSiteKey)
2687
+ ? []
2688
+ : [{ provide: RECAPTCHA_SITE_KEY, useValue: options.recaptchaSiteKey }]),
2687
2689
  ],
2688
2690
  };
2689
2691
  }
@@ -2725,34 +2727,28 @@ AngularConnectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ve
2725
2727
  useExisting: ProductsVertexSearch,
2726
2728
  },
2727
2729
  ], imports: [provideFirebaseApp((injector) => {
2728
- const appName = injector.get(FIREBASE_APP_NAME);
2730
+ const appName = injector.get(FIREBASE_APP_NAME) || '[DEFAULT]';
2729
2731
  try {
2730
- return appName ? getApp(appName) : getApp();
2732
+ return getApp(appName);
2731
2733
  }
2732
2734
  catch (error) {
2733
- console.warn('Firebase app not found, initializing new app');
2734
- if (error instanceof Error) {
2735
- console.error(error.message);
2736
- }
2737
2735
  return initializeApp(injector.get(FIREBASE_OPTIONS), appName);
2738
2736
  }
2739
2737
  }),
2740
2738
  provideAppCheck((injector) => {
2741
2739
  const app = injector.get(FirebaseApp);
2742
- console.log('Connect APP', app.name);
2743
2740
  try {
2744
2741
  const siteKey = injector.get(RECAPTCHA_SITE_KEY);
2745
- console.log('RECAPTCHA_SITE_KEY', isEmpty(siteKey) ? undefined : new ReCaptchaEnterpriseProvider(siteKey));
2746
- return initializeAppCheck(app, {
2747
- provider: isEmpty(siteKey) ? undefined : new ReCaptchaEnterpriseProvider(siteKey),
2748
- isTokenAutoRefreshEnabled: true,
2749
- });
2742
+ if (siteKey && siteKey.trim() !== '')
2743
+ return initializeAppCheck(app, {
2744
+ provider: new ReCaptchaEnterpriseProvider(siteKey),
2745
+ isTokenAutoRefreshEnabled: true,
2746
+ });
2750
2747
  }
2751
2748
  catch (error) {
2752
- if (error instanceof Error)
2753
- console.error(error.message);
2754
- return;
2749
+ console.warn('ReCAPTCHA site key not provided or invalid, App Check not initialized');
2755
2750
  }
2751
+ return;
2756
2752
  }),
2757
2753
  provideStorage((injector) => getStorage(injector.get(FirebaseApp))),
2758
2754
  AngularElasticSeachModule,
@@ -2765,34 +2761,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
2765
2761
  args: [{
2766
2762
  imports: [
2767
2763
  provideFirebaseApp((injector) => {
2768
- const appName = injector.get(FIREBASE_APP_NAME);
2764
+ const appName = injector.get(FIREBASE_APP_NAME) || '[DEFAULT]';
2769
2765
  try {
2770
- return appName ? getApp(appName) : getApp();
2766
+ return getApp(appName);
2771
2767
  }
2772
2768
  catch (error) {
2773
- console.warn('Firebase app not found, initializing new app');
2774
- if (error instanceof Error) {
2775
- console.error(error.message);
2776
- }
2777
2769
  return initializeApp(injector.get(FIREBASE_OPTIONS), appName);
2778
2770
  }
2779
2771
  }),
2780
2772
  provideAppCheck((injector) => {
2781
2773
  const app = injector.get(FirebaseApp);
2782
- console.log('Connect APP', app.name);
2783
2774
  try {
2784
2775
  const siteKey = injector.get(RECAPTCHA_SITE_KEY);
2785
- console.log('RECAPTCHA_SITE_KEY', isEmpty(siteKey) ? undefined : new ReCaptchaEnterpriseProvider(siteKey));
2786
- return initializeAppCheck(app, {
2787
- provider: isEmpty(siteKey) ? undefined : new ReCaptchaEnterpriseProvider(siteKey),
2788
- isTokenAutoRefreshEnabled: true,
2789
- });
2776
+ if (siteKey && siteKey.trim() !== '')
2777
+ return initializeAppCheck(app, {
2778
+ provider: new ReCaptchaEnterpriseProvider(siteKey),
2779
+ isTokenAutoRefreshEnabled: true,
2780
+ });
2790
2781
  }
2791
2782
  catch (error) {
2792
- if (error instanceof Error)
2793
- console.error(error.message);
2794
- return;
2783
+ console.warn('ReCAPTCHA site key not provided or invalid, App Check not initialized');
2795
2784
  }
2785
+ return;
2796
2786
  }),
2797
2787
  provideStorage((injector) => getStorage(injector.get(FirebaseApp))),
2798
2788
  AngularElasticSeachModule,