@eo-sdk/client 7.16.9 → 7.16.12
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.
- package/app/eo-framework-core/api/plugins.service.d.ts +3 -2
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js +12 -9
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js.map +1 -1
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js +2 -2
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js.map +1 -1
- package/bundles/eo-sdk-client.umd.js +12 -5
- package/bundles/eo-sdk-client.umd.js.map +1 -1
- package/bundles/eo-sdk-client.umd.min.js +1 -1
- package/bundles/eo-sdk-client.umd.min.js.map +1 -1
- package/eo-sdk-client.metadata.json +1 -1
- package/esm2015/app/eo-client/about-state/about-state.component.js +3 -3
- package/esm2015/app/eo-framework/object-form/object-form/object-form.component.js +2 -2
- package/esm2015/app/eo-framework/process/history/process-history.component.js +2 -2
- package/esm2015/app/eo-framework-core/api/plugins.service.js +10 -3
- package/esm2015/projects/eo-sdk/core/lib/config/translate-json-loader.js +5 -2
- package/esm2015/projects/eo-sdk/core/lib/model/eo-user.model.js +2 -2
- package/esm2015/projects/eo-sdk/core/lib/service/search/search.service.js +4 -4
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js +8 -5
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js.map +1 -1
- package/fesm2015/eo-sdk-client.js +13 -6
- package/fesm2015/eo-sdk-client.js.map +1 -1
- package/package.json +2 -2
- package/projects/eo-sdk/core/eo-sdk-client-projects-eo-sdk-core.metadata.json +1 -1
- package/projects/eo-sdk/core/package.json +1 -1
|
@@ -44,6 +44,8 @@ import localeHi from '@angular/common/locales/hi';
|
|
|
44
44
|
import localeExtraHi from '@angular/common/locales/extra/hi';
|
|
45
45
|
import localeBn from '@angular/common/locales/bn';
|
|
46
46
|
import localeExtraBn from '@angular/common/locales/extra/bn';
|
|
47
|
+
import localeEnGb from '@angular/common/locales/en-GB';
|
|
48
|
+
import localeExtraEnGb from '@angular/common/locales/extra/en-GB';
|
|
47
49
|
/**
|
|
48
50
|
* @ignore
|
|
49
51
|
* Loader that fetches translations based on the configured locations
|
|
@@ -70,6 +72,7 @@ export class EoxTranslateJsonLoader {
|
|
|
70
72
|
registerLocaleData(localeHi, 'hi', localeExtraHi); // Hindi
|
|
71
73
|
registerLocaleData(localeBn, 'bn', localeExtraBn); // Bengalese
|
|
72
74
|
registerLocaleData(localeDeCh, 'de-CH', localeExtraDeCh); // German (switzerland)
|
|
75
|
+
registerLocaleData(localeEnGb, 'en-GB', localeExtraEnGb); // English (Great-Britain)
|
|
73
76
|
}
|
|
74
77
|
/**
|
|
75
78
|
*
|
|
@@ -82,7 +85,7 @@ export class EoxTranslateJsonLoader {
|
|
|
82
85
|
loadTranslationFile(folder, lang) {
|
|
83
86
|
return this.http.get(`${folder}${lang}.json`).pipe(catchError((e) => {
|
|
84
87
|
// ISO codes with more than 2 characters are sub-languages like de-CH.
|
|
85
|
-
// If there is no translation file for that sub-language we'll try to load
|
|
88
|
+
// If there is no translation file for that sub-language we'll try to load
|
|
86
89
|
// the file for the base language (in this case de).
|
|
87
90
|
return lang.length > 2 ? this.loadTranslationFile(folder, lang.substring(0, 2)) : of({});
|
|
88
91
|
}));
|
|
@@ -92,4 +95,4 @@ EoxTranslateJsonLoader.ctorParameters = () => [
|
|
|
92
95
|
{ type: HttpClient },
|
|
93
96
|
{ type: CoreConfig, decorators: [{ type: Inject, args: [CORE_CONFIG,] }] }
|
|
94
97
|
];
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLWpzb24tbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9jb25maWcvdHJhbnNsYXRlLWpzb24tbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sRUFBYSxFQUFFLEVBQUUsUUFBUSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBQyxVQUFVLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLFVBQVUsTUFBTSwrQkFBK0IsQ0FBQztBQUN2RCxPQUFPLGVBQWUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNsRSxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUc3RDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDLFlBQW1CLElBQWdCLEVBQThCLE1BQWtCO1FBQWhFLFNBQUksR0FBSixJQUFJLENBQVk7UUFBOEIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUNqRixrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM1RCxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM1RCxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsVUFBVTtRQUM3RCxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYTtRQUNoRSxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM1RCxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsVUFBVTtRQUM3RCxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsVUFBVTtRQUM3RCxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsVUFBVTtRQUM3RCxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsVUFBVTtRQUM3RCxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsUUFBUTtRQUMzRCxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM1RCxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM1RCxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsWUFBWTtRQUMvRCxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsV0FBVztRQUM5RCxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM1RCxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsUUFBUTtRQUMzRCxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsWUFBWTtRQUMvRCxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsdUJBQXVCO0lBQ25GLENBQUM7SUFHRDs7OztPQUlHO0lBQ0gsY0FBYyxDQUFDLElBQVk7UUFDekIsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNsRyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUNoRSxDQUFDO0lBQ0osQ0FBQztJQUVPLG1CQUFtQixDQUFDLE1BQWMsRUFBRSxJQUFZO1FBQ3RELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ2hELFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2Ysc0VBQXNFO1lBQ3RFLDJFQUEyRTtZQUMzRSxvREFBb0Q7WUFDcEQsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDMUYsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7OztZQWpHSyxVQUFVO1lBSVYsVUFBVSx1QkFtRHNCLE1BQU0sU0FBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUcmFuc2xhdGVMb2FkZXJ9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHtJbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge09ic2VydmFibGUsIG9mLCBmb3JrSm9pbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7Y2F0Y2hFcnJvciwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7Q29yZUNvbmZpZ30gZnJvbSAnLi9jb3JlLWNvbmZpZyc7XHJcbmltcG9ydCB7Q09SRV9DT05GSUd9IGZyb20gJy4vY29yZS1pbml0LnRva2Vucyc7XHJcblxyXG4vKipcclxuICogaTE4biBwYWNrYWdlc1xyXG4gKi9cclxuaW1wb3J0IHtyZWdpc3RlckxvY2FsZURhdGF9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCBsb2NhbGVEZUNoIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2RlLUNIJztcclxuaW1wb3J0IGxvY2FsZUV4dHJhRGVDaCBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9leHRyYS9kZS1DSCc7XHJcbmltcG9ydCBsb2NhbGVEZSBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9kZSc7XHJcbmltcG9ydCBsb2NhbGVFeHRyYURlIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2V4dHJhL2RlJztcclxuaW1wb3J0IGxvY2FsZUFyIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2FyJztcclxuaW1wb3J0IGxvY2FsZUV4dHJhQXIgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvYXInO1xyXG5pbXBvcnQgbG9jYWxlRXMgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXMnO1xyXG5pbXBvcnQgbG9jYWxlRXh0cmFFcyBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9leHRyYS9lcyc7XHJcbmltcG9ydCBsb2NhbGVQdCBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9wdCc7XHJcbmltcG9ydCBsb2NhbGVFeHRyYVB0IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2V4dHJhL3B0JztcclxuaW1wb3J0IGxvY2FsZUZyIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2ZyJztcclxuaW1wb3J0IGxvY2FsZUV4dHJhRnIgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvZnInO1xyXG5pbXBvcnQgbG9jYWxlWmggZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvemgnO1xyXG5pbXBvcnQgbG9jYWxlRXh0cmFaaCBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9leHRyYS96aCc7XHJcbmltcG9ydCBsb2NhbGVMdiBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9sdic7XHJcbmltcG9ydCBsb2NhbGVFeHRyYUx2IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2V4dHJhL2x2JztcclxuaW1wb3J0IGxvY2FsZVJ1IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL3J1JztcclxuaW1wb3J0IGxvY2FsZUV4dHJhUnUgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvcnUnO1xyXG5pbXBvcnQgbG9jYWxlSXQgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvaXQnO1xyXG5pbXBvcnQgbG9jYWxlRXh0cmFJdCBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9leHRyYS9pdCc7XHJcbmltcG9ydCBsb2NhbGVObCBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9ubCc7XHJcbmltcG9ydCBsb2NhbGVFeHRyYU5sIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2V4dHJhL25sJztcclxuaW1wb3J0IGxvY2FsZVNrIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL3NrJztcclxuaW1wb3J0IGxvY2FsZUV4dHJhU2sgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvc2snO1xyXG5pbXBvcnQgbG9jYWxlUGwgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvcGwnO1xyXG5pbXBvcnQgbG9jYWxlRXh0cmFQbCBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9leHRyYS9wbCc7XHJcbmltcG9ydCBsb2NhbGVVayBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy91ayc7XHJcbmltcG9ydCBsb2NhbGVFeHRyYVVrIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2V4dHJhL3VrJztcclxuaW1wb3J0IGxvY2FsZUphIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2phJztcclxuaW1wb3J0IGxvY2FsZUV4dHJhSmEgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvamEnO1xyXG5pbXBvcnQgbG9jYWxlS28gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMva28nO1xyXG5pbXBvcnQgbG9jYWxlRXh0cmFLbyBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9leHRyYS9rbyc7XHJcbmltcG9ydCBsb2NhbGVIaSBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9oaSc7XHJcbmltcG9ydCBsb2NhbGVFeHRyYUhpIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2V4dHJhL2hpJztcclxuaW1wb3J0IGxvY2FsZUJuIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2JuJztcclxuaW1wb3J0IGxvY2FsZUV4dHJhQm4gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvYm4nO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBAaWdub3JlXHJcbiAqIExvYWRlciB0aGF0IGZldGNoZXMgdHJhbnNsYXRpb25zIGJhc2VkIG9uIHRoZSBjb25maWd1cmVkIGxvY2F0aW9uc1xyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEVveFRyYW5zbGF0ZUpzb25Mb2FkZXIgaW1wbGVtZW50cyBUcmFuc2xhdGVMb2FkZXIge1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaHR0cDogSHR0cENsaWVudCwgQEluamVjdChDT1JFX0NPTkZJRykgcHVibGljIGNvbmZpZzogQ29yZUNvbmZpZykge1xyXG4gICAgcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZURlLCAnZGUnLCBsb2NhbGVFeHRyYURlKTsgLy8gR2VybWFuXHJcbiAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlQXIsICdhcicsIGxvY2FsZUV4dHJhQXIpOyAvLyBBcmFiaWNcclxuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVFcywgJ2VzJywgbG9jYWxlRXh0cmFFcyk7IC8vIFNwYW5pc2hcclxuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVQdCwgJ3B0JywgbG9jYWxlRXh0cmFQdCk7IC8vIFBvcnR1Z3Vlc2VcclxuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVGciwgJ2ZyJywgbG9jYWxlRXh0cmFGcik7IC8vIEZyZW5jaFxyXG4gICAgcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZVpoLCAnemgnLCBsb2NhbGVFeHRyYVpoKTsgLy8gQ2hpbmVzZVxyXG4gICAgcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZUx2LCAnbHYnLCBsb2NhbGVFeHRyYUx2KTsgLy8gTGF0dmlhblxyXG4gICAgcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZVJ1LCAncnUnLCBsb2NhbGVFeHRyYVJ1KTsgLy8gUnVzc2lhblxyXG4gICAgcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZUl0LCAnaXQnLCBsb2NhbGVFeHRyYUl0KTsgLy8gSXRhbGlhblxyXG4gICAgcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZU5sLCAnbmwnLCBsb2NhbGVFeHRyYU5sKTsgLy8gRHV0Y2hcclxuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVTaywgJ3NrJywgbG9jYWxlRXh0cmFTayk7IC8vIFNsb3Zha1xyXG4gICAgcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZVBsLCAncGwnLCBsb2NhbGVFeHRyYVBsKTsgLy8gUG9saXNoXHJcbiAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlVWssICd1aycsIGxvY2FsZUV4dHJhVWspOyAvLyBVa3JhaW5pYW5cclxuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVKYSwgJ2phJywgbG9jYWxlRXh0cmFKYSk7IC8vIEphcGFuZXNlXHJcbiAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlS28sICdrbycsIGxvY2FsZUV4dHJhS28pOyAvLyBLb3JlYW5cclxuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVIaSwgJ2hpJywgbG9jYWxlRXh0cmFIaSk7IC8vIEhpbmRpXHJcbiAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlQm4sICdibicsIGxvY2FsZUV4dHJhQm4pOyAvLyBCZW5nYWxlc2VcclxuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVEZUNoLCAnZGUtQ0gnLCBsb2NhbGVFeHRyYURlQ2gpOyAvLyBHZXJtYW4gKHN3aXR6ZXJsYW5kKVxyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHN0cmluZyBsYW5nXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxPYmplY3Q+XHJcbiAgICovXHJcbiAgZ2V0VHJhbnNsYXRpb24obGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxPYmplY3Q+IHtcclxuICAgIHJldHVybiBmb3JrSm9pbih0aGlzLmNvbmZpZy50cmFuc2xhdGlvbnMubWFwKGZvbGRlciA9PiB0aGlzLmxvYWRUcmFuc2xhdGlvbkZpbGUoZm9sZGVyLCBsYW5nKSkpLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzKSA9PiByZXMucmVkdWNlKChhY2MsIHgpID0+IE9iamVjdC5hc3NpZ24oYWNjLCB4KSwge30pKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZFRyYW5zbGF0aW9uRmlsZShmb2xkZXI6IHN0cmluZywgbGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke2ZvbGRlcn0ke2xhbmd9Lmpzb25gKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlKSA9PiB7XHJcbiAgICAgICAgLy8gSVNPIGNvZGVzIHdpdGggbW9yZSB0aGFuIDIgY2hhcmFjdGVycyBhcmUgc3ViLWxhbmd1YWdlcyBsaWtlIGRlLUNILlxyXG4gICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIHRyYW5zbGF0aW9uIGZpbGUgZm9yIHRoYXQgc3ViLWxhbmd1YWdlIHdlJ2xsIHRyeSB0byBsb2FkIFxyXG4gICAgICAgIC8vIHRoZSBmaWxlIGZvciB0aGUgYmFzZSBsYW5ndWFnZSAoaW4gdGhpcyBjYXNlIGRlKS5cclxuICAgICAgICByZXR1cm4gbGFuZy5sZW5ndGggPiAyID8gdGhpcy5sb2FkVHJhbnNsYXRpb25GaWxlKGZvbGRlciwgbGFuZy5zdWJzdHJpbmcoMCwgMikpIDogb2Yoe30pXHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLWpzb24tbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9jb25maWcvdHJhbnNsYXRlLWpzb24tbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sRUFBYSxFQUFFLEVBQUUsUUFBUSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBQyxVQUFVLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLFVBQVUsTUFBTSwrQkFBK0IsQ0FBQztBQUN2RCxPQUFPLGVBQWUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNsRSxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFFBQVEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRCxPQUFPLGFBQWEsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLFVBQVUsTUFBTSwrQkFBK0IsQ0FBQztBQUN2RCxPQUFPLGVBQWUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVsRTs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sc0JB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WUFDZixzRUFBc0U7WUFDdEUsMEVBQTBFO1lBQzFFLG9EQUFvRDtZQUNwRCxPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUMxRixDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQzs7O1lBbkdLLFVBQVU7WUFJVixVQUFVLHVCQW9Ec0IsTUFBTSxTQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1RyYW5zbGF0ZUxvYWRlcn0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge0luamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2YsIGZvcmtKb2lufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtjYXRjaEVycm9yLCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHtDb3JlQ29uZmlnfSBmcm9tICcuL2NvcmUtY29uZmlnJztcclxuaW1wb3J0IHtDT1JFX0NPTkZJR30gZnJvbSAnLi9jb3JlLWluaXQudG9rZW5zJztcclxuXHJcbi8qKlxyXG4gKiBpMThuIHBhY2thZ2VzXHJcbiAqL1xyXG5pbXBvcnQge3JlZ2lzdGVyTG9jYWxlRGF0YX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IGxvY2FsZURlQ2ggZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZGUtQ0gnO1xyXG5pbXBvcnQgbG9jYWxlRXh0cmFEZUNoIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2V4dHJhL2RlLUNIJztcclxuaW1wb3J0IGxvY2FsZURlIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2RlJztcclxuaW1wb3J0IGxvY2FsZUV4dHJhRGUgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvZGUnO1xyXG5pbXBvcnQgbG9jYWxlQXIgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvYXInO1xyXG5pbXBvcnQgbG9jYWxlRXh0cmFBciBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9leHRyYS9hcic7XHJcbmltcG9ydCBsb2NhbGVFcyBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9lcyc7XHJcbmltcG9ydCBsb2NhbGVFeHRyYUVzIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2V4dHJhL2VzJztcclxuaW1wb3J0IGxvY2FsZVB0IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL3B0JztcclxuaW1wb3J0IGxvY2FsZUV4dHJhUHQgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvcHQnO1xyXG5pbXBvcnQgbG9jYWxlRnIgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZnInO1xyXG5pbXBvcnQgbG9jYWxlRXh0cmFGciBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9leHRyYS9mcic7XHJcbmltcG9ydCBsb2NhbGVaaCBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy96aCc7XHJcbmltcG9ydCBsb2NhbGVFeHRyYVpoIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2V4dHJhL3poJztcclxuaW1wb3J0IGxvY2FsZUx2IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2x2JztcclxuaW1wb3J0IGxvY2FsZUV4dHJhTHYgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvbHYnO1xyXG5pbXBvcnQgbG9jYWxlUnUgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvcnUnO1xyXG5pbXBvcnQgbG9jYWxlRXh0cmFSdSBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9leHRyYS9ydSc7XHJcbmltcG9ydCBsb2NhbGVJdCBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9pdCc7XHJcbmltcG9ydCBsb2NhbGVFeHRyYUl0IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2V4dHJhL2l0JztcclxuaW1wb3J0IGxvY2FsZU5sIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL25sJztcclxuaW1wb3J0IGxvY2FsZUV4dHJhTmwgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvbmwnO1xyXG5pbXBvcnQgbG9jYWxlU2sgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvc2snO1xyXG5pbXBvcnQgbG9jYWxlRXh0cmFTayBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9leHRyYS9zayc7XHJcbmltcG9ydCBsb2NhbGVQbCBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9wbCc7XHJcbmltcG9ydCBsb2NhbGVFeHRyYVBsIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2V4dHJhL3BsJztcclxuaW1wb3J0IGxvY2FsZVVrIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL3VrJztcclxuaW1wb3J0IGxvY2FsZUV4dHJhVWsgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvdWsnO1xyXG5pbXBvcnQgbG9jYWxlSmEgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvamEnO1xyXG5pbXBvcnQgbG9jYWxlRXh0cmFKYSBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9leHRyYS9qYSc7XHJcbmltcG9ydCBsb2NhbGVLbyBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9rbyc7XHJcbmltcG9ydCBsb2NhbGVFeHRyYUtvIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2V4dHJhL2tvJztcclxuaW1wb3J0IGxvY2FsZUhpIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2hpJztcclxuaW1wb3J0IGxvY2FsZUV4dHJhSGkgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXh0cmEvaGknO1xyXG5pbXBvcnQgbG9jYWxlQm4gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvYm4nO1xyXG5pbXBvcnQgbG9jYWxlRXh0cmFCbiBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9leHRyYS9ibic7XHJcbmltcG9ydCBsb2NhbGVFbkdiIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2VuLUdCJztcclxuaW1wb3J0IGxvY2FsZUV4dHJhRW5HYiBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9leHRyYS9lbi1HQic7XHJcblxyXG4vKipcclxuICogQGlnbm9yZVxyXG4gKiBMb2FkZXIgdGhhdCBmZXRjaGVzIHRyYW5zbGF0aW9ucyBiYXNlZCBvbiB0aGUgY29uZmlndXJlZCBsb2NhdGlvbnNcclxuICovXHJcbmV4cG9ydCBjbGFzcyBFb3hUcmFuc2xhdGVKc29uTG9hZGVyIGltcGxlbWVudHMgVHJhbnNsYXRlTG9hZGVyIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGh0dHA6IEh0dHBDbGllbnQsIEBJbmplY3QoQ09SRV9DT05GSUcpIHB1YmxpYyBjb25maWc6IENvcmVDb25maWcpIHtcclxuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVEZSwgJ2RlJywgbG9jYWxlRXh0cmFEZSk7IC8vIEdlcm1hblxyXG4gICAgcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZUFyLCAnYXInLCBsb2NhbGVFeHRyYUFyKTsgLy8gQXJhYmljXHJcbiAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlRXMsICdlcycsIGxvY2FsZUV4dHJhRXMpOyAvLyBTcGFuaXNoXHJcbiAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlUHQsICdwdCcsIGxvY2FsZUV4dHJhUHQpOyAvLyBQb3J0dWd1ZXNlXHJcbiAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlRnIsICdmcicsIGxvY2FsZUV4dHJhRnIpOyAvLyBGcmVuY2hcclxuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVaaCwgJ3poJywgbG9jYWxlRXh0cmFaaCk7IC8vIENoaW5lc2VcclxuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVMdiwgJ2x2JywgbG9jYWxlRXh0cmFMdik7IC8vIExhdHZpYW5cclxuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVSdSwgJ3J1JywgbG9jYWxlRXh0cmFSdSk7IC8vIFJ1c3NpYW5cclxuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVJdCwgJ2l0JywgbG9jYWxlRXh0cmFJdCk7IC8vIEl0YWxpYW5cclxuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVObCwgJ25sJywgbG9jYWxlRXh0cmFObCk7IC8vIER1dGNoXHJcbiAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlU2ssICdzaycsIGxvY2FsZUV4dHJhU2spOyAvLyBTbG92YWtcclxuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVQbCwgJ3BsJywgbG9jYWxlRXh0cmFQbCk7IC8vIFBvbGlzaFxyXG4gICAgcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZVVrLCAndWsnLCBsb2NhbGVFeHRyYVVrKTsgLy8gVWtyYWluaWFuXHJcbiAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlSmEsICdqYScsIGxvY2FsZUV4dHJhSmEpOyAvLyBKYXBhbmVzZVxyXG4gICAgcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZUtvLCAna28nLCBsb2NhbGVFeHRyYUtvKTsgLy8gS29yZWFuXHJcbiAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlSGksICdoaScsIGxvY2FsZUV4dHJhSGkpOyAvLyBIaW5kaVxyXG4gICAgcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZUJuLCAnYm4nLCBsb2NhbGVFeHRyYUJuKTsgLy8gQmVuZ2FsZXNlXHJcbiAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlRGVDaCwgJ2RlLUNIJywgbG9jYWxlRXh0cmFEZUNoKTsgLy8gR2VybWFuIChzd2l0emVybGFuZClcclxuICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVFbkdiLCAnZW4tR0InLCBsb2NhbGVFeHRyYUVuR2IpOyAvLyBFbmdsaXNoIChHcmVhdC1Ccml0YWluKVxyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHN0cmluZyBsYW5nXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxPYmplY3Q+XHJcbiAgICovXHJcbiAgZ2V0VHJhbnNsYXRpb24obGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxPYmplY3Q+IHtcclxuICAgIHJldHVybiBmb3JrSm9pbih0aGlzLmNvbmZpZy50cmFuc2xhdGlvbnMubWFwKGZvbGRlciA9PiB0aGlzLmxvYWRUcmFuc2xhdGlvbkZpbGUoZm9sZGVyLCBsYW5nKSkpLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzKSA9PiByZXMucmVkdWNlKChhY2MsIHgpID0+IE9iamVjdC5hc3NpZ24oYWNjLCB4KSwge30pKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZFRyYW5zbGF0aW9uRmlsZShmb2xkZXI6IHN0cmluZywgbGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke2ZvbGRlcn0ke2xhbmd9Lmpzb25gKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlKSA9PiB7XHJcbiAgICAgICAgLy8gSVNPIGNvZGVzIHdpdGggbW9yZSB0aGFuIDIgY2hhcmFjdGVycyBhcmUgc3ViLWxhbmd1YWdlcyBsaWtlIGRlLUNILlxyXG4gICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIHRyYW5zbGF0aW9uIGZpbGUgZm9yIHRoYXQgc3ViLWxhbmd1YWdlIHdlJ2xsIHRyeSB0byBsb2FkXHJcbiAgICAgICAgLy8gdGhlIGZpbGUgZm9yIHRoZSBiYXNlIGxhbmd1YWdlIChpbiB0aGlzIGNhc2UgZGUpLlxyXG4gICAgICAgIHJldHVybiBsYW5nLmxlbmd0aCA+IDIgPyB0aGlzLmxvYWRUcmFuc2xhdGlvbkZpbGUoZm9sZGVyLCBsYW5nLnN1YnN0cmluZygwLCAyKSkgOiBvZih7fSlcclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -16,7 +16,7 @@ export class EoUser {
|
|
|
16
16
|
if (jUser.hasimage === true) {
|
|
17
17
|
this.imageUri = '/organization/image/' + this.id;
|
|
18
18
|
}
|
|
19
|
-
this.userSettings = json['usersettings'];
|
|
19
|
+
this.userSettings = typeof json['usersettings'] === 'object' ? json['usersettings'] : {};
|
|
20
20
|
this.schema = {
|
|
21
21
|
version: jSchema.version,
|
|
22
22
|
supportedLocales: jSchema.supportedlocales
|
|
@@ -83,4 +83,4 @@ export class EoUser {
|
|
|
83
83
|
return this.schemaLocale;
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW8tdXNlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VvLXNkay9jb3JlL3NyYy9saWIvbW9kZWwvZW8tdXNlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxNQUFNLE9BQU8sTUFBTTtJQWtFakI7OztPQUdHO0lBQ0gsWUFBWSxJQUFTO1FBRW5CLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFL0IsSUFBSSxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQzdCLElBQUksS0FBSyxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1NBQ2xEO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pGLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87WUFDeEIsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLGdCQUFnQjtTQUMzQyxDQUFDO1FBRUYsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFlBQVksQ0FBQyxTQUFpQjtRQUU1QixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNWLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO2dCQUMzQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDO2dCQUM5QyxDQUFDLEVBQUUsQ0FBQzthQUNMO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsT0FBTyxDQUFDLElBQVk7UUFDbEIsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNWLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO2dCQUN0QyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO2dCQUNwQyxDQUFDLEVBQUUsQ0FBQzthQUNMO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7O09BR0c7SUFDSSxZQUFZLENBQUMsSUFBWTtRQUM5QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUN0QztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSSxlQUFlO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGVBQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5leHBvcnQgaW50ZXJmYWNlIFByaXZpbGVnZXMge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgdHlwZTogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEVvVXNlciB7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSB1c2VycyBJRFxyXG4gICAqL1xyXG4gIHB1YmxpYyBpZDogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIFRoZSB1c2VycyBuYW1lXHJcbiAgICovXHJcbiAgcHVibGljIG5hbWU6IHN0cmluZztcclxuICAvKipcclxuICAgKiBUaGUgdXNlcnMgZmlyc3RuYW1lXHJcbiAgICovXHJcbiAgcHVibGljIGZpcnN0bmFtZTogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIFRoZSB1c2VycyBsYXN0bmFtZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBsYXN0bmFtZTogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIFRoZSB1c2VycyB0aXRsZSAoZ2VuZXJhdGVkIGZyb20gYmFja2VuZHMgdGl0bGUgcGF0dGVybilcclxuICAgKi9cclxuICBwdWJsaWMgdGl0bGU6IHN0cmluZztcclxuICAvKipcclxuICAgKiBUaGUgdXNlcnMgZW1haWwgYWRkcmVzc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBlbWFpbDogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCB0aGUgdXNlciBpcyBwcmVzZW50XHJcbiAgICovXHJcbiAgcHVibGljIHByZXNlbnQ6IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogVVJJIHRvIHRoZSB1c2VycyBhdmF0YXIgaW1hZ2VcclxuICAgKi9cclxuICBwdWJsaWMgaW1hZ2VVcmk6IHN0cmluZztcclxuICAvKipcclxuICAgKiBDdXN0b20gdXNlciBzZXR0aW5nc1xyXG4gICAqL1xyXG4gIHB1YmxpYyB1c2VyU2V0dGluZ3M6IGFueTtcclxuICAvKipcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgcHVibGljIHNjaGVtYTogYW55O1xyXG4gIC8qKlxyXG4gICAqIExpc3Qgb2YgdGhlIHVzZXJzIHByaXZpbGVnZXNcclxuICAgKi9cclxuICBwdWJsaWMgcHJpdmlsZWdlczogUHJpdmlsZWdlc1tdO1xyXG4gIC8qKlxyXG4gICAqIExpc3Qgb2Ygcm9sZXMgdGhlIHVzZXIgYmVsb25ncyB0b1xyXG4gICAqL1xyXG4gIHB1YmxpYyByb2xlczogYW55W107XHJcbiAgLyoqXHJcbiAgICogTGlzdCBvZiB0aGUgdXNlcnMgZGVwdXRpZXNcclxuICAgKi9cclxuICBwdWJsaWMgZGVwdXRpZXM6IGFueVtdO1xyXG4gIC8qKlxyXG4gICAqIExpc3Qgb2YgdGhlIHVzZXJzIHN1YnN0aXR1dGVzXHJcbiAgICovXHJcbiAgcHVibGljIHN1YnN0aXR1dGVzT2Y6IGFueVtdO1xyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9wdWJsaWMgc2NoZW1hTG9jYWxlOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIHB1YmxpYyB1aURpcmVjdGlvbjogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlXHJcbiAgICogQHBhcmFtIGpzb24gVGhlIEpTT04gb2JqZWN0IHJlY2VpdmVkIGZyb20gdGhlIGJhY2tlbmQuIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgbmV3IHVzZXIgaW5zdGFuY2VcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihqc29uOiBhbnkpIHtcclxuXHJcbiAgICBjb25zdCBqVXNlciA9IGpzb25bJ3VzZXInXTtcclxuICAgIGNvbnN0IGpTY2hlbWEgPSBqc29uWydzY2hlbWEnXTtcclxuXHJcbiAgICB0aGlzLmlkID0galVzZXIuaWQ7XHJcbiAgICB0aGlzLm5hbWUgPSBqVXNlci5uYW1lO1xyXG4gICAgdGhpcy5maXJzdG5hbWUgPSBqVXNlci5maXJzdG5hbWU7XHJcbiAgICB0aGlzLmxhc3RuYW1lID0galVzZXIubGFzdG5hbWU7XHJcbiAgICB0aGlzLnRpdGxlID0galVzZXIudGl0bGU7XHJcbiAgICB0aGlzLmVtYWlsID0galVzZXIuZW1haWw7XHJcbiAgICB0aGlzLnByZXNlbnQgPSBqVXNlci5wcmVzZW50O1xyXG4gICAgaWYgKGpVc2VyLmhhc2ltYWdlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuaW1hZ2VVcmkgPSAnL29yZ2FuaXphdGlvbi9pbWFnZS8nICsgdGhpcy5pZDtcclxuICAgIH1cclxuICAgIHRoaXMudXNlclNldHRpbmdzID0gdHlwZW9mIGpzb25bJ3VzZXJzZXR0aW5ncyddID09PSAnb2JqZWN0JyA/IGpzb25bJ3VzZXJzZXR0aW5ncyddIDoge307XHJcbiAgICB0aGlzLnNjaGVtYSA9IHtcclxuICAgICAgdmVyc2lvbjogalNjaGVtYS52ZXJzaW9uLFxyXG4gICAgICBzdXBwb3J0ZWRMb2NhbGVzOiBqU2NoZW1hLnN1cHBvcnRlZGxvY2FsZXNcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5wcml2aWxlZ2VzID0galVzZXIucHJpdmlsZWdlcztcclxuICAgIHRoaXMucm9sZXMgPSBqVXNlci5lZmZlY3RpdmVyb2xlcztcclxuICAgIHRoaXMuZGVwdXRpZXMgPSBqVXNlci5kZXB1dGllcyB8fCBbXTtcclxuICAgIHRoaXMuc3Vic3RpdHV0ZXNPZiA9IGpVc2VyLnN1YnN0aXR1dGVzT2YgfHwgW107XHJcbiAgICB0aGlzLnNjaGVtYUxvY2FsZSA9IGpVc2VyLmxvY2FsZSB8fCB0aGlzLmdldENsaWVudExvY2FsZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2tzIGlmIHRoZSB1c2VyIGhhcyBhIGNlcnRhaW4gcHJpdmlsZWdlXHJcbiAgICogQHBhcmFtIHByaXZpbGVnZSBUaGUgcHJpdmlsZWdlIHRvIGJlIGNoZWNrZWRcclxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSB1c2VyIGhhcyB0aGlzIHBhcnRpY3VsYXIgcHJpdmlsZWdlLCBmYWxzZSBvdGhlcndpc2VcclxuICAgKi9cclxuICBoYXNQcml2aWxlZ2UocHJpdmlsZWdlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuXHJcbiAgICBsZXQgbWF0Y2ggPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLnByaXZpbGVnZXMpIHtcclxuICAgICAgbGV0IGkgPSAwO1xyXG4gICAgICB3aGlsZSAoIW1hdGNoICYmIGkgPCB0aGlzLnByaXZpbGVnZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgbWF0Y2ggPSB0aGlzLnByaXZpbGVnZXNbaV0ubmFtZSA9PT0gcHJpdmlsZWdlO1xyXG4gICAgICAgIGkrKztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1hdGNoO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2tzIGlmIHRoZSB1c2VyIGhhcyBhIGNlcnRhaW4gcm9sZVxyXG4gICAqIEBwYXJhbSByb2xlIFRoZSByb2xlIHRvIGJlIGNoZWNrZWRcclxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSB1c2VyIGhhcyB0aGlzIHBhcnRpY3VsYXIgcm9sZSwgZmFsc2Ugb3RoZXJ3aXNlXHJcbiAgICovXHJcbiAgaGFzUm9sZShyb2xlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGxldCBtYXRjaCA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMucm9sZXMpIHtcclxuICAgICAgbGV0IGkgPSAwO1xyXG4gICAgICB3aGlsZSAoIW1hdGNoICYmIGkgPCB0aGlzLnJvbGVzLmxlbmd0aCkge1xyXG4gICAgICAgIG1hdGNoID0gdGhpcy5yb2xlc1tpXS5uYW1lID09PSByb2xlO1xyXG4gICAgICAgIGkrKztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1hdGNoO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogYWRkcyB0aGUgYmFzZSBwYXRoIGZvciB0aGUgdXNlcnMgaW1hZ2UgcGF0aC5cclxuICAgKiBAcGFyYW0gYmFzZSBUaGUgYmFzZSBwYXRoXHJcbiAgICovXHJcbiAgcHVibGljIHNldEltYWdlQmFzZShiYXNlOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmltYWdlVXJpKSB7XHJcbiAgICAgIHRoaXMuaW1hZ2VVcmkgPSBiYXNlICsgdGhpcy5pbWFnZVVyaTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHVzZXJzIGNvbmZpZ3VyZWQgY2xpZW50IGxvY2FsZVxyXG4gICAqIEByZXR1cm5zIGxvY2FsZSBzdHJpbmdcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0Q2xpZW50TG9jYWxlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy51c2VyU2V0dGluZ3NbJ2NsaWVudGxvY2FsZSddIHx8ICdlbic7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSB1c2VycyBjb25maWd1cmVkIHNjaGVtYSBsb2NhbGVcclxuICAgKiBAcmV0dXJucyBsb2NhbGUgc3RyaW5nXHJcbiAgICovXHJcbiAgcHVibGljIGdldFNjaGVtYUxvY2FsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc2NoZW1hTG9jYWxlO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
|
@@ -199,13 +199,13 @@ export class SearchService {
|
|
|
199
199
|
return this.backend
|
|
200
200
|
.post('/export', queryJson, this.backend.getSearchBase(), {
|
|
201
201
|
observe: 'response',
|
|
202
|
-
responseType: '
|
|
202
|
+
responseType: 'blob'
|
|
203
203
|
})
|
|
204
204
|
.pipe(tap(res => {
|
|
205
205
|
const blob = new Blob([res.body], {
|
|
206
|
-
type: 'text/
|
|
206
|
+
type: 'text/csv;charset=utf-8'
|
|
207
207
|
});
|
|
208
|
-
FileSaver.saveAs(blob, this.getFileNameFromHttpResponse(res));
|
|
208
|
+
FileSaver.saveAs(blob, this.getFileNameFromHttpResponse(res), { autoBom: true });
|
|
209
209
|
}));
|
|
210
210
|
}
|
|
211
211
|
getFileNameFromHttpResponse(res) {
|
|
@@ -459,4 +459,4 @@ SearchService.ctorParameters = () => [
|
|
|
459
459
|
{ type: BackendService },
|
|
460
460
|
{ type: Config }
|
|
461
461
|
];
|
|
462
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL3NlcnZpY2Uvc2VhcmNoL3NlYXJjaC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFFeEMsT0FBTyxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDekQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN2QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLFdBQVcsRUFDWixNQUFNLHNCQUFzQixDQUFDO0FBRTlCOzs7R0FHRztBQUVILE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFlBQ1UsTUFBcUIsRUFDckIsT0FBdUIsRUFDdkIsTUFBYztRQUZkLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNyQixDQUFDO0lBRUo7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQVU7UUFDbkMsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLEtBQUssWUFBWSxVQUFVLEVBQUU7Z0JBQy9CLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7aUJBQU0sSUFDTCxLQUFLLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQztnQkFDaEMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsRUFDbEM7Z0JBQ0EsT0FBTyxJQUFJLFVBQVUsQ0FDbkIsS0FBSyxDQUFDLFFBQVEsRUFDZCxLQUFLLENBQUMsVUFBVSxFQUNoQixLQUFLLENBQUMsV0FBVyxDQUNsQixDQUFDO2FBQ0g7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksVUFBVSxDQUFDLEtBQVU7UUFDMUIsSUFBSSxDQUFjLENBQUM7UUFDbkIsSUFBSSxLQUFLLFlBQVksV0FBVyxFQUFFO1lBQ2hDLENBQUMsR0FBRyxLQUFLLENBQUM7U0FDWDthQUFNO1lBQ0wsSUFBSSxJQUFJLENBQUM7WUFDVDs7ZUFFRztZQUNILElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO2dCQUM3QixJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMxQjtpQkFBTTtnQkFDTCxJQUFJLEdBQUcsS0FBSyxDQUFDO2FBQ2Q7WUFFRCxDQUFDLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUN0QixDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ3BDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNaLElBQUksWUFBWSxDQUNkLENBQUMsRUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNuQixDQUNGLENBQUM7Z0JBQ0osQ0FBQyxDQUFDLENBQUM7YUFDSjtZQUNELElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDckIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRTt3QkFDaEMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDNUM7eUJBQU07d0JBQ0wsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ2pCO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ0o7WUFDRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDbEMsSUFBSSxDQUFDLEtBQUssU0FBUyxFQUFFO3dCQUNuQix5RUFBeUU7d0JBQ3pFLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxVQUFVLENBQUM7NEJBQzNDLEVBQUUsRUFBRSxHQUFHOzRCQUNQLE1BQU0sRUFBRSxJQUFJOzRCQUNaLElBQUksRUFBRSxTQUFTOzRCQUNmLEtBQUssRUFBRSxTQUFTOzRCQUNoQixLQUFLLEVBQUUsU0FBUzs0QkFDaEIsZUFBZSxFQUFFLElBQUk7NEJBQ3JCLFFBQVEsRUFBRSxLQUFLOzRCQUNmLFFBQVEsRUFBRSxFQUFFOzRCQUNaLFdBQVcsRUFBRSxFQUFFOzRCQUNmLFNBQVMsRUFBRSxLQUFLOzRCQUNoQixRQUFRLEVBQUUsQ0FBQzs0QkFDWCxRQUFRLEVBQUUsQ0FBQzt5QkFDWixDQUFDLENBQUM7d0JBQ0gsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO3FCQUNsRDt5QkFBTTt3QkFDTCxDQUFDLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ3pEO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ0o7WUFDRCxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDdkIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNoQixDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQztnQkFDMUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUM7Z0JBQ2hELENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQzdCLENBQUMsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQztnQkFDM0QsQ0FBQyxDQUFDLFVBQVU7b0JBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksV0FBVyxDQUFDLG1CQUFtQixDQUFDO2FBQzlEO1NBQ0Y7UUFFRCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxLQUFrQjtRQUM5QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNqRCxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDL0MsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNJLGNBQWMsQ0FBQyxLQUFVO1FBRTlCLElBQUcsS0FBSyxZQUFZLFdBQVcsRUFBRTtZQUMvQixLQUFLLEdBQUcsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQzlCO1FBQ0QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ3hDLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ2YsTUFBTSxLQUFLLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQzdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDL0MsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDN0MsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7b0JBQzlDLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU87b0JBQ3JDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ1AsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtvQkFDakMsTUFBTSxFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsR0FBRyxXQUFXLENBQUM7b0JBQ3hELEtBQUssQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7b0JBQzlEOzt1QkFFRztvQkFDSCxJQUNFLFNBQVMsS0FBSyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUk7d0JBQzFDLGlCQUFpQixFQUNqQjt3QkFDQSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFOzRCQUN6QyxLQUFLLENBQUMsZUFBZSxDQUNuQixhQUFhLEVBQ2IsTUFBTSxDQUFDLEdBQUcsRUFDVixNQUFNLENBQUMsU0FBUyxFQUNoQixNQUFNLENBQ1AsQ0FBQzt3QkFDSixDQUFDLENBQUMsQ0FBQztxQkFDSjtnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksZ0JBQWdCLENBQ3JCLEtBQWtCLEVBQ2xCLFNBQWlCLEVBQ2pCLFNBQWlCO1FBRWpCLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUUvQixDQUFDLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUNuQixNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNsRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FDakQsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FDekMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQy9DLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksWUFBWSxDQUNqQixTQUFjLEVBQ2QsZUFBeUIsRUFDekIsVUFBbUI7UUFFbkIsSUFBSSxHQUFXLENBQUM7UUFDaEIsSUFBSSxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBQ3RCLElBQUksZUFBZSxFQUFFO1lBQ25CLEdBQUcsR0FBRyxZQUFZLENBQUM7U0FDcEI7YUFBTTtZQUNMLE1BQU0sSUFBSSxHQUFHLFVBQVUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM5RCxHQUFHLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQztTQUN4QjtRQUNELEtBQUssQ0FBQyxPQUFPLG1DQUFPLEtBQUssQ0FBQyxPQUFPLEtBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDLElBQUksS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsaUJBQWlCLEVBQUUsR0FBQyxDQUFDO1FBRTlJLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0SSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxvQkFBb0IsQ0FBQyxTQUFpQjtRQUMzQyxPQUFPLElBQUksQ0FBQyxPQUFPO2FBQ2hCLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDeEQsT0FBTyxFQUFFLFVBQVU7WUFDbkIsWUFBWSxFQUFFLE1BQU07U0FDckIsQ0FBQzthQUNELElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDUixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDaEMsSUFBSSxFQUFFLDBCQUEwQjthQUNqQyxDQUFDLENBQUM7WUFDSCxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVPLDJCQUEyQixDQUFDLEdBQXNCO1FBQ3hELE1BQU0sd0JBQXdCLEdBQzVCLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9DLE9BQU8sd0JBQXdCLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLFlBQVksQ0FBQyxJQUFZO1FBQzlCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQ3pCLHdCQUF3QixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUNsRCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUM3QixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLGVBQWUsQ0FDcEIsV0FBeUIsRUFDekIsZUFBdUIsRUFDdkIsWUFBaUI7UUFFakIsTUFBTSxNQUFNLEdBQW1CLEVBQUUsQ0FBQztRQUNsQyxNQUFNLFVBQVUsR0FBcUIsSUFBSSxDQUFDLG9CQUFvQixDQUM1RCxXQUFXLEVBQ1gsZUFBZSxDQUNoQixDQUFDO1FBQ0YsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLGVBQWUsQ0FBQyxDQUFDO1FBRXJGLElBQUksWUFBWSxLQUFLLElBQUksRUFBRTtZQUN6QixNQUFNLENBQUMsSUFBSSxDQUNULElBQUksWUFBWSxDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FDckUsQ0FBQztTQUNIO2FBQU0sSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLGNBQWMsS0FBSyxNQUFNLEVBQUU7WUFDL0QsTUFBTSxDQUFDLElBQUksQ0FDVCxJQUFJLFlBQVksQ0FDZCxlQUFlLEVBQ2YsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQzNCLFlBQVksQ0FDYixDQUNGLENBQUM7U0FDSDthQUFNLElBQUksWUFBWSxZQUFZLFVBQVUsRUFBRTtZQUM3Qzs7ZUFFRztZQUNILElBQ0UsWUFBWSxDQUFDLFVBQVUsS0FBSyxJQUFJO2dCQUNoQyxZQUFZLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFDckM7Z0JBQ0EsTUFBTSxDQUFDLElBQUksQ0FDVCxJQUFJLFlBQVksQ0FDZCxlQUFlLEVBQ2YsWUFBWSxDQUFDLFFBQVEsRUFDckIsWUFBWSxDQUFDLFVBQVUsRUFDdkIsWUFBWSxDQUFDLFdBQVcsRUFDeEIsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsRUFBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQzlELENBQ0YsQ0FBQzthQUNIO1NBQ0Y7YUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFO1lBQ3ZGOztlQUVHO1lBQ0gsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUU7Z0JBQ3RELE1BQU0sQ0FBQyxJQUFJLENBQ1QsSUFBSSxZQUFZLENBQ2QsZUFBZSxFQUNmLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUN4QixZQUFZLENBQ2IsQ0FDRixDQUFDO2FBQ0g7U0FDRjthQUFNLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRTtZQUMzQjs7ZUFFRztZQUNILE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUc7Z0JBQ3pDLElBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVMsRUFBQztvQkFDN0IsTUFBTSxZQUFZLEdBQUcsR0FBRyxlQUFlLElBQUksR0FBRyxFQUFFLENBQUM7b0JBQ2pELElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLFVBQVUsRUFBRTt3QkFDdkMsTUFBTSxDQUFDLElBQUksQ0FDVCxJQUFJLFlBQVksQ0FDZCxZQUFZLEVBQ1osUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFDdEIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFDeEIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FDMUIsQ0FDRixDQUFDO3FCQUNIO3lCQUFNO3dCQUNMLE1BQU0sQ0FBQyxJQUFJLENBQ1QsSUFBSSxZQUFZLENBQ2QsWUFBWSxFQUNaLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssRUFDckYsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUNkLENBQ0YsQ0FBQztxQkFDSDtpQkFDRjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMOztlQUVHO1lBQ0gsTUFBTSxDQUFDLElBQUksQ0FDVCxJQUFJLFlBQVksQ0FDZCxlQUFlLEVBQ2YsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQzNCLFlBQVksQ0FDYixDQUNGLENBQUM7U0FDSDtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ssb0JBQW9CLENBQzFCLFdBQXlCLEVBQ3pCLGVBQXVCO1FBRXZCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLElBQUksS0FBSyxDQUFDO1FBQ1YsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFBRTtZQUN2QyxLQUFLLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2xDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSyxlQUFlLENBQzdDLENBQUM7WUFDRixDQUFDLEVBQUUsQ0FBQztTQUNMO1FBRUQsT0FBTztZQUNMLFdBQVcsRUFBRSxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDO1lBQ2xELEtBQUssRUFBRSxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPO1lBQ3RDLFFBQVEsRUFBRSxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxVQUFVO1lBQzVDLFFBQVEsRUFBRSxLQUFLLElBQUksS0FBSyxDQUFDLFFBQVE7U0FDbEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLHlCQUF5QixDQUFDLFdBQWdCO1FBQ2hELE9BQU8sQ0FDTCxXQUFXO1lBQ1gsQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLGNBQWM7Z0JBQ2xDLFdBQVcsQ0FBQyxJQUFJLEtBQUssWUFBWTtnQkFDakMsTUFBTTtnQkFDTixDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssUUFBUTtvQkFDNUIsV0FBVyxDQUFDLGNBQWMsS0FBSyxVQUFVLENBQUM7Z0JBQzVDLCtCQUErQjtnQkFDL0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FDOUQsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLHdCQUF3QixDQUFDLGVBQWU7UUFDN0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyxNQUFNLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUM7UUFDMUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDO1FBRXZDOztXQUVHO1FBQ0gsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsMkVBQzNDLENBQUMsQ0FBQyxPQUFPLEtBQ1osRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEtBQ04sQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUMsQ0FBQyxHQUV0QyxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksRUFBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBQyxDQUFDLEdBQzdDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxFQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFDLENBQUMsRUFDdEMsQ0FBQyxDQUFDO1FBRUosTUFBTSxDQUFDLEtBQUssR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUMxQyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDekIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsOEJBQThCLENBQUMsS0FBa0I7UUFDL0MsTUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN0RSxNQUFNLFdBQVcsR0FDZixDQUFDLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUMzQyxDQUFDLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ1gsT0FBTyxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU8sc0JBQXNCLENBQzVCLElBQXVCLEVBQ3ZCLFdBQThCO1FBRTlCLE9BQU87WUFDTCxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXO1lBQ3pDLGVBQWUsRUFBRSxJQUFJLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQ3JFLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILDBCQUEwQixDQUN4QixJQUF1QixFQUN2QixXQUE4QixFQUM5QixJQUFJO1FBRUosTUFBTSxFQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUMsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQzdELElBQUksRUFDSixXQUFXLENBQ1osQ0FBQztRQUNGLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsdUJBQXVCLFFBQVEsRUFBRSxFQUFFO1lBQzVELFdBQVcsRUFBRSxlQUFlO1lBQzVCLElBQUk7U0FDTCxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxPQUFPO2FBQ2hCLE9BQU8sQ0FBQyxHQUFHLENBQUM7YUFDWixJQUFJLENBQ0gsR0FBRyxDQUNELENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FDWCxJQUFJLGVBQWUsQ0FDakIsR0FBRyxDQUFDLFFBQVEsRUFDWixHQUFHLENBQUMsU0FBUyxFQUNiLEdBQUcsQ0FBQyxVQUFVLEVBQ2QsR0FBRyxDQUFDLE1BQU0sRUFDVixHQUFHLENBQUMsSUFBSSxDQUNULENBQ0osQ0FDRixDQUFDO0lBQ04sQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gseUJBQXlCLENBQ3ZCLElBQXVCLEVBQ3ZCLFdBQThCLEVBQzlCLElBQXFCLEVBQ3JCLE1BQU0sR0FBRyxLQUFLO1FBRWQsTUFBTSxPQUFPLEdBQUcsTUFBTTtZQUNwQixDQUFDLENBQUMsNEJBQTRCO1lBQzlCLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQztRQUMzQixNQUFNLEVBQUMsUUFBUSxFQUFFLGVBQWUsRUFBQyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FDN0QsSUFBSSxFQUNKLFdBQVcsQ0FDWixDQUFDO1FBQ0YsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsUUFBUSxFQUFFO1lBQzdDLFdBQVcsRUFBRSxlQUFlO1NBQzdCLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCwyQkFBMkIsQ0FDekIsSUFBdUIsRUFDdkIsV0FBOEI7UUFFOUIsTUFBTSxFQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUMsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQzdELElBQUksRUFDSixXQUFXLENBQ1osQ0FBQztRQUNGLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsdUJBQXVCLFFBQVEsRUFBRSxFQUFFO1lBQzVELFdBQVcsRUFBRSxlQUFlO1NBQzdCLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxvQkFBb0IsQ0FBQyxNQUFvQixFQUFFLGVBQXVCO1FBQ2hFLElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUN0QixJQUFJLE1BQU0sRUFBRTtZQUNWLDRCQUE0QjtZQUM1QixJQUFJLENBQUMsZUFBZSxLQUFLLFFBQVEsSUFBSSxlQUFlLEtBQUssVUFBVSxDQUFDLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRTtnQkFDekYsS0FBSyxHQUFHLElBQUksVUFBVSxDQUNwQixNQUFNLENBQUMsUUFBUSxFQUNmLE1BQU0sQ0FBQyxVQUFVLEVBQ2pCLE1BQU0sQ0FBQyxXQUFXLENBQ25CLENBQUM7YUFDSDtpQkFBTTtnQkFDTCxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQzthQUMzQjtTQUNGO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILDBCQUEwQixDQUFDLE9BQXVCLEVBQUUsYUFBYTtRQUMvRCxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2xCLElBQUksR0FBRyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDL0QsSUFBSSxJQUFJLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNoRSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQixDQUFDOzs7WUF6bEJGLFVBQVU7OztZQWRILGFBQWE7WUFGYixjQUFjO1lBQ2QsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cFJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIEZpbGVTYXZlciBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHttYXAsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge09iamVjdFR5cGV9IGZyb20gJy4uLy4uL21vZGVsL29iamVjdC10eXBlLm1vZGVsJztcclxuaW1wb3J0IHtSYW5nZVZhbHVlfSBmcm9tICcuLi8uLi9tb2RlbC9yYW5nZS12YWx1ZS5tb2RlbCc7XHJcbmltcG9ydCB7VXRpbHN9IGZyb20gJy4uLy4uL3V0aWwvdXRpbHMnO1xyXG5pbXBvcnQge0JhY2tlbmRTZXJ2aWNlfSBmcm9tICcuLi9iYWNrZW5kL2JhY2tlbmQuc2VydmljZSc7XHJcbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcvY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQge1N5c3RlbVNlcnZpY2V9IGZyb20gJy4uL3N5c3RlbS9zeXN0ZW0uc2VydmljZSc7XHJcbmltcG9ydCB7U2VhcmNoRmlsdGVyVHlwZX0gZnJvbSAnLi9zZWFyY2gtZmlsdGVyLXR5cGUuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtcclxuICBGaWVsZERlZmluaXRpb24sXHJcbiAgU2VhcmNoRmlsdGVyLFxyXG4gIFNlYXJjaFF1ZXJ5LFxyXG4gIFNlYXJjaFJlc3VsdCxcclxuICBTZWFyY2hTdGF0ZVxyXG59IGZyb20gJy4vc2VhcmNoLXF1ZXJ5Lm1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBDb2xsZWN0aW9uIG9mIFNlYXJjaCBTZXJ2aWNlc1xyXG4gKiBTZWUge0BsaW5rIFNlYXJjaFF1ZXJ5fSBmb3IgUXVlcnkgRGVmaW5pdGlvblxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2VhcmNoU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHN5c3RlbTogU3lzdGVtU2VydmljZSxcclxuICAgIHByaXZhdGUgYmFja2VuZDogQmFja2VuZFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnXHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgUmFuZ2VWYWx1ZSBpbnN0YW5jZSBmcm9tIHRoZSBnaXZlbiB2YWx1ZSBvYmplY3QuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIG9iamVjdCB0byBiZVxyXG4gICAqIEByZXR1cm5zIFJhbmdlVmFsdWVcclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIHRvUmFuZ2VWYWx1ZSh2YWx1ZTogYW55KTogUmFuZ2VWYWx1ZSB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgUmFuZ2VWYWx1ZSkge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICB2YWx1ZS5oYXNPd25Qcm9wZXJ0eSgnb3BlcmF0b3InKSAmJlxyXG4gICAgICAgIHZhbHVlLmhhc093blByb3BlcnR5KCdmaXJzdFZhbHVlJylcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBSYW5nZVZhbHVlKFxyXG4gICAgICAgICAgdmFsdWUub3BlcmF0b3IsXHJcbiAgICAgICAgICB2YWx1ZS5maXJzdFZhbHVlLFxyXG4gICAgICAgICAgdmFsdWUuc2Vjb25kVmFsdWVcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgZnJvbWF0ZWQgc2VhcmNoIFF1ZXJ5XHJcbiAgICpcclxuICAgKiBAcGFyYW0gcXVlcnlcclxuICAgKiBAcmV0dXJucyBTZWFyY2hRdWVyeVxyXG4gICAqL1xyXG4gIHB1YmxpYyBidWlsZFF1ZXJ5KHF1ZXJ5OiBhbnkpOiBTZWFyY2hRdWVyeSB7XHJcbiAgICBsZXQgcTogU2VhcmNoUXVlcnk7XHJcbiAgICBpZiAocXVlcnkgaW5zdGFuY2VvZiBTZWFyY2hRdWVyeSkge1xyXG4gICAgICBxID0gcXVlcnk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgcU9iajtcclxuICAgICAgLyoqXHJcbiAgICAgICAqIGlmIHdlIGdvdCBhIHN0cmluZywgd2UnbGwgYXNzdW1lIHRoYXQgaXQncyBhIEpTT05cclxuICAgICAgICovXHJcbiAgICAgIGlmICh0eXBlb2YgcXVlcnkgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgcU9iaiA9IEpTT04ucGFyc2UocXVlcnkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHFPYmogPSBxdWVyeTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcSA9IG5ldyBTZWFyY2hRdWVyeSgpO1xyXG4gICAgICBxLnRlcm0gPSBxT2JqLnRlcm07XHJcbiAgICAgIGlmIChxT2JqLmZpbHRlcnMpIHtcclxuICAgICAgICBPYmplY3Qua2V5cyhxT2JqLmZpbHRlcnMpLmZvckVhY2goayA9PiB7XHJcbiAgICAgICAgICBxLmZpbHRlcnMucHVzaChcclxuICAgICAgICAgICAgbmV3IFNlYXJjaEZpbHRlcihcclxuICAgICAgICAgICAgICBrLFxyXG4gICAgICAgICAgICAgIHFPYmouZmlsdGVyc1trXS5vLFxyXG4gICAgICAgICAgICAgIHFPYmouZmlsdGVyc1trXS52MSxcclxuICAgICAgICAgICAgICBxT2JqLmZpbHRlcnNba10udjJcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBpZiAocU9iai50eXBlcykge1xyXG4gICAgICAgIHFPYmoudHlwZXMuZm9yRWFjaCh0ID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLnN5c3RlbS5nZXRPYmplY3RUeXBlKHQpKSB7XHJcbiAgICAgICAgICAgIHEudHlwZXMucHVzaCh0aGlzLnN5c3RlbS5nZXRPYmplY3RUeXBlKHQpKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHEudHlwZXMucHVzaCh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBpZiAocU9iai5jb250ZXh0Zm9sZGVydHlwZXMpIHtcclxuICAgICAgICBxT2JqLmNvbnRleHRmb2xkZXJ0eXBlcy5mb3JFYWNoKHQgPT4ge1xyXG4gICAgICAgICAgaWYgKHQgPT09ICdzeXNyb290Jykge1xyXG4gICAgICAgICAgICAvLyAnc3lzcm9vdCcgaXMgbm90IGEgcmVhbCBvYmplY3QgdHlwZSwgc28gd2UgaGF2ZSB0byBjcmVhdGUgYSBmYWtlIHR5cGUuXHJcbiAgICAgICAgICAgIGNvbnN0IHN5c3Jvb3RGYWtlT2JqZWN0VHlwZSA9IG5ldyBPYmplY3RUeXBlKHtcclxuICAgICAgICAgICAgICBpZDogJ2EnLFxyXG4gICAgICAgICAgICAgIGZvbGRlcjogdHJ1ZSxcclxuICAgICAgICAgICAgICBuYW1lOiAnc3lzcm9vdCcsXHJcbiAgICAgICAgICAgICAgcW5hbWU6ICdzeXNyb290JyxcclxuICAgICAgICAgICAgICBsYWJlbDogJ3N5c3Jvb3QnLFxyXG4gICAgICAgICAgICAgIGlzY29udGV4dGZvbGRlcjogdHJ1ZSxcclxuICAgICAgICAgICAgICBhYnN0cmFjdDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgZWxlbWVudHM6IFtdLFxyXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnJyxcclxuICAgICAgICAgICAgICBzaGFyZWFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIG1pbmZpbGVzOiAwLFxyXG4gICAgICAgICAgICAgIG1heGZpbGVzOiAxXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBxLmNvbnRleHRGb2xkZXJUeXBlcy5wdXNoKHN5c3Jvb3RGYWtlT2JqZWN0VHlwZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBxLmNvbnRleHRGb2xkZXJUeXBlcy5wdXNoKHRoaXMuc3lzdGVtLmdldE9iamVjdFR5cGUodCkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHEuZmllbGRzID0gcU9iai5maWVsZHM7XHJcbiAgICAgIGlmIChxT2JqLm9wdGlvbnMpIHtcclxuICAgICAgICBxLnN1Z2dlc3QgPSBxT2JqLm9wdGlvbnMuc3VnZ2VzdCB8fCBmYWxzZTtcclxuICAgICAgICBxLmV4cGVydE1vZGUgPSBxT2JqLm9wdGlvbnMuZXhwZXJ0bW9kZSB8fCBmYWxzZTtcclxuICAgICAgICBxLnNjb3BlID0gcU9iai5vcHRpb25zLnNjb3BlO1xyXG4gICAgICAgIHEucmVzb2x2ZVJlZmVyZW5jZSA9IHFPYmoub3B0aW9ucy5yZXNvbHZlUmVmZXJlbmNlIHx8IHRydWU7XHJcbiAgICAgICAgcS5zZWFyY2hNb2RlID1cclxuICAgICAgICAgIHFPYmoub3B0aW9ucy5zZWFyY2htb2RlIHx8IFNlYXJjaFF1ZXJ5LkRFRkFVTFRfU0VBUkNIX01PREU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4ZWN1dGVzIGEgcXVlcnkuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcXVlcnkgVGhlIHF1ZXJ5IHRvIGJlIGV4ZWN1dGVkXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxTZWFyY2hSZXN1bHQ+XHJcbiAgICovXHJcbiAgcHVibGljIHNlYXJjaChxdWVyeTogU2VhcmNoUXVlcnkpOiBPYnNlcnZhYmxlPFNlYXJjaFJlc3VsdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVF1ZXJ5KHF1ZXJ5LmdldFF1ZXJ5SnNvbigpKS5waXBlKFxyXG4gICAgICBtYXAocmVzID0+IHRoaXMuY3JlYXRlUmVzdWx0RnJvbVJlc3BvbnNlKHJlcykpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmUgU2VhcmNoIHJlc3VsdHNcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0U2VhcmNoU3RhdGUocXVlcnk6IGFueSk6IE9ic2VydmFibGU8U2VhcmNoU3RhdGU+IHtcclxuICAgIFxyXG4gICAgaWYocXVlcnkgaW5zdGFuY2VvZiBTZWFyY2hRdWVyeSkge1xyXG4gICAgICBxdWVyeSA9IHF1ZXJ5LmdldFF1ZXJ5SnNvbigpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVF1ZXJ5KHF1ZXJ5LCB0cnVlKS5waXBlKFxyXG4gICAgICBtYXAoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc3RhdGUgPSBuZXcgU2VhcmNoU3RhdGUoKTtcclxuICAgICAgICBzdGF0ZS5jb3VudCA9IHJlcy5oaXRzLnRvdGFsO1xyXG4gICAgICAgIE9iamVjdC5rZXlzKFNlYXJjaFF1ZXJ5LkJBU0VfUEFSQU1TKS5mb3JFYWNoKGsgPT4ge1xyXG4gICAgICAgICAgY29uc3QgYmFzZVBhcmFtID0gU2VhcmNoUXVlcnkuQkFTRV9QQVJBTVNba107XHJcbiAgICAgICAgICBjb25zdCBhZ2dyZWdhdGlvbnMgPSByZXMuYWdncmVnYXRpb25zW2Jhc2VQYXJhbV1cclxuICAgICAgICAgICAgPyByZXMuYWdncmVnYXRpb25zW2Jhc2VQYXJhbV0uYnVja2V0c1xyXG4gICAgICAgICAgICA6IFtdO1xyXG4gICAgICAgICAgYWdncmVnYXRpb25zLmZvckVhY2goYWdncmVnYXRpb24gPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB7a2V5LCBkb2NfY291bnQsIGNvbnRleHRmb2xkZXJ0eXBlfSA9IGFnZ3JlZ2F0aW9uO1xyXG4gICAgICAgICAgICBzdGF0ZS5hZGRBZ2dyZWdhdGlvbnMoYmFzZVBhcmFtLCBrZXksIGRvY19jb3VudCwgYWdncmVnYXRpb24pO1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogdHlwZSBhZ2dyZWdhdGlvbnMgbWF5IGFsc28gY29udGFpbiBidWNrZXRzIGZvciB0aGVpciBjb250ZXh0IHR5cGVzXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgYmFzZVBhcmFtID09PSBTZWFyY2hRdWVyeS5CQVNFX1BBUkFNUy5UWVBFICYmXHJcbiAgICAgICAgICAgICAgY29udGV4dGZvbGRlcnR5cGVcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgY29udGV4dGZvbGRlcnR5cGUuYnVja2V0cy5mb3JFYWNoKGN0eEFnZyA9PiB7XHJcbiAgICAgICAgICAgICAgICBzdGF0ZS5hZGRBZ2dyZWdhdGlvbnMoXHJcbiAgICAgICAgICAgICAgICAgICdjb250ZXh0dHlwZScsXHJcbiAgICAgICAgICAgICAgICAgIGN0eEFnZy5rZXksXHJcbiAgICAgICAgICAgICAgICAgIGN0eEFnZy5kb2NfY291bnQsXHJcbiAgICAgICAgICAgICAgICAgIGN0eEFnZ1xyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBzdGF0ZTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGEgcGFydCBvZiBhIHF1ZXJpZXMgcmVzdWx0LiBUaGlzIGNhbiBiZSB1c2VkIGZvciBwYWdpbmcgb2YgcmVzdWx0c1xyXG4gICAqIG9yIGxhenkgbG9hZGluZyBsYXJnZSByZXN1bHRzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHF1ZXJ5IFRoZSBxdWVyeSB0byBiZSBleGVjdXRlZFxyXG4gICAqIEBwYXJhbSBmcm9tSW5kZXggVGhlIGluZGV4IGZyb20gd2hlcmUgdG8gZmV0Y2ggcmVzdWx0c1xyXG4gICAqIEBwYXJhbSBjaHVua1NpemUgU2l6ZSBvZiB0aGUgY2h1bmsgdG8gYmUgZmV0Y2hlZFxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8U2VhcmNoUmVzdWx0PlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRDaHVua2VkUmVzdWx0KFxyXG4gICAgcXVlcnk6IFNlYXJjaFF1ZXJ5LFxyXG4gICAgZnJvbUluZGV4OiBudW1iZXIsXHJcbiAgICBjaHVua1NpemU6IG51bWJlclxyXG4gICk6IE9ic2VydmFibGU8U2VhcmNoUmVzdWx0PiB7XHJcbiAgICBjb25zdCBxID0gcXVlcnkuZ2V0UXVlcnlKc29uKCk7XHJcblxyXG4gICAgcS5mcm9tID0gZnJvbUluZGV4O1xyXG4gICAgY29uc3QgcXVlcnlVcmkgPSBgc2VhcmNoIWNodW5rOiR7Y2h1bmtTaXplfSEke0pTT04uc3RyaW5naWZ5KHEpfWA7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldFZpYVRlbXBDYWNoZShxdWVyeVVyaSwgKCkgPT5cclxuICAgICAgdGhpcy5leGVjdXRlUXVlcnkocSwgZmFsc2UsIGNodW5rU2l6ZSkucGlwZShcclxuICAgICAgICBtYXAocmVzID0+IHRoaXMuY3JlYXRlUmVzdWx0RnJvbVJlc3BvbnNlKHJlcykpXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeGVjdXRlcyBhIHF1ZXJ5XHJcbiAgICpcclxuICAgKiBAcGFyYW0gcXVlcnlKc29uIFRoZSBxdWVyeSBKU09OIHRvIGJlIGV4ZWN1dGVkXHJcbiAgICogQHBhcmFtIGFnZ3JlZ2F0ZVNlYXJjaCBGbGFnIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgdG8gZXhlY3V0ZSBhbiBhZ2dyZWdhdGlvbiBzZWFyY2ggKG5vIGFjdHVhbCByZXN1bHRzKVxyXG4gICAqIEBwYXJhbSBjdXN0b21TaXplIEN1c3RvbSBudW1iZXIgb2YgcmVzdWx0cyB0byBiZSBmZXRjaGVkLCBpZiBub3Qgc2V0IHRoZSBkZWZhdWx0IHNpemUgd2lsbCBiZSBhcHBsaWVkXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XHJcbiAgICovXHJcbiAgcHVibGljIGV4ZWN1dGVRdWVyeShcclxuICAgIHF1ZXJ5SnNvbjogYW55LFxyXG4gICAgYWdncmVnYXRlU2VhcmNoPzogYm9vbGVhbixcclxuICAgIGN1c3RvbVNpemU/OiBudW1iZXJcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHVyaTogc3RyaW5nO1xyXG4gICAgbGV0IHF1ZXJ5ID0gcXVlcnlKc29uO1xyXG4gICAgaWYgKGFnZ3JlZ2F0ZVNlYXJjaCkge1xyXG4gICAgICB1cmkgPSBgL2FnZ3JlZ2F0ZWA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBzaXplID0gY3VzdG9tU2l6ZSB8fCB0aGlzLmNvbmZpZy5nZXRSYXcoJ3NlYXJjaC5saW1pdCcpO1xyXG4gICAgICB1cmkgPSBgLz9zaXplPSR7c2l6ZX1gO1xyXG4gICAgfVxyXG4gICAgcXVlcnkub3B0aW9ucyA9IHsuLi5xdWVyeS5vcHRpb25zLCB0cmFja3RvdGFsaGl0czogdGhpcy5jb25maWcuZ2V0UmF3KCdzZWFyY2gudHJhY2tUb3RhbEhpdHMnKSB8fCBmYWxzZSwgdGltZXpvbmU6IFV0aWxzLmdldFRpbWV6b25lT2Zmc2V0KCl9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0VmlhVGVtcENhY2hlKHVyaSArIEpTT04uc3RyaW5naWZ5KHF1ZXJ5KSwgKCkgPT4gdGhpcy5iYWNrZW5kLnBvc3QodXJpLCBxdWVyeSwgdGhpcy5iYWNrZW5kLmdldFNlYXJjaEJhc2UoKSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRG93bmxvYWRzIGEgY3N2LWZpbGUgb2YgdGhlIHJlc3VsdHMgb2YgYSBnaXZlbiBzZWFyY2gtcXVlcnlcclxuICAgKlxyXG4gICAqIEBwYXJhbSBxdWVyeUpzb24gVGhlIHF1ZXJ5IEpTT04gdG8gYmUgZXhlY3V0ZWRcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT5cclxuICAgKi9cclxuICBwdWJsaWMgZG93bmxvYWRDc3ZGcm9tUXVlcnkocXVlcnlKc29uOiBvYmplY3QpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxyXG4gICAgICAucG9zdCgnL2V4cG9ydCcsIHF1ZXJ5SnNvbiwgdGhpcy5iYWNrZW5kLmdldFNlYXJjaEJhc2UoKSwge1xyXG4gICAgICAgIG9ic2VydmU6ICdyZXNwb25zZScsXHJcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCdcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFwKHJlcyA9PiB7XHJcbiAgICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW3Jlcy5ib2R5XSwge1xyXG4gICAgICAgICAgICB0eXBlOiAndGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04J1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBGaWxlU2F2ZXIuc2F2ZUFzKGJsb2IsIHRoaXMuZ2V0RmlsZU5hbWVGcm9tSHR0cFJlc3BvbnNlKHJlcykpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEZpbGVOYW1lRnJvbUh0dHBSZXNwb25zZShyZXM6IEh0dHBSZXNwb25zZTxhbnk+KSB7XHJcbiAgICBjb25zdCBjb250ZW50RGlzcG9zaXRpb25IZWFkZXIgPVxyXG4gICAgICByZXMuaGVhZGVycy5nZXQoJ0NvbnRlbnQtRGlzcG9zaXRpb24nKSB8fCAnJztcclxuICAgIHJldHVybiBjb250ZW50RGlzcG9zaXRpb25IZWFkZXIuc3BsaXQoJ2ZpbGVuYW1lPScpWzFdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXhlY3V0ZXMgYSBzZWFyY2ggZm9yIGZldGNoaW5nIHN1Z2dlc3Rpb25zIG9uIGEgZ2l2ZW4gc2VhcmNoIHRlcm0uXHJcbiAgICpcclxuICAgKiBAcGFyYW0gdGVybSBUaGUgc2VhcmNoIHRlcm1cclxuICAgKiBAcmV0dXJuXHJcbiAgICovXHJcbiAgcHVibGljIGF1dG9jb21wbGV0ZSh0ZXJtOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0SnNvbihcclxuICAgICAgYC9hdXRvY29tcGxldGU/cHJlZml4PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHRlcm0pfWAsXHJcbiAgICAgIHRoaXMuYmFja2VuZC5nZXRTZWFyY2hCYXNlKClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVc2UgdGhpcyBtZXRob2QgdG8gY3JlYXRlIGEgU2VhcmNoRmlsdGVyIGZvciBhIGZvcm0gZWxlbWVudC4gQmFzZWQgb24gdGhlIHRhcmdldCB0eXBlc1xyXG4gICAqIGl0J2xsIGNyZWF0ZSB0aGUgcmlnaHQga2luZCBvZiBmaWx0ZXIgdGhhdCB5b3UgdGhlbiBjYW4gYWRkIHRvIGEgU2VhcmNoUXVlcnlcclxuICAgKlxyXG4gICAqIEBwYXJhbSB0YXJnZXRUeXBlc1xyXG4gICAqIEBwYXJhbSBmb3JtRWxlbWVudE5hbWVcclxuICAgKiBAcGFyYW0gZWxlbWVudFZhbHVlXHJcbiAgICogQHJldHVybnMgU2VhcmNoRmlsdGVyW10gQW4gYXJyYXkgb2Ygc2VhcmNoIGZpbHRlcnMgbW9zdCBvZiB0aGUgdGltZSBjb250YWluaW5nIG9ubHkgb25lIGVudHJ5LCBidXRcclxuICAgKiBmb3IgdGFibGUgZWxlbWVudHMgdGhpcyBjb3VsZCBiZSBtb3JlXHJcbiAgICovXHJcbiAgcHVibGljIGdldFNlYXJjaEZpbHRlcihcclxuICAgIHRhcmdldFR5cGVzOiBPYmplY3RUeXBlW10sXHJcbiAgICBmb3JtRWxlbWVudE5hbWU6IHN0cmluZyxcclxuICAgIGVsZW1lbnRWYWx1ZTogYW55XHJcbiAgKTogU2VhcmNoRmlsdGVyW10ge1xyXG4gICAgY29uc3QgZmlsdGVyOiBTZWFyY2hGaWx0ZXJbXSA9IFtdO1xyXG4gICAgY29uc3QgZmlsdGVyVHlwZTogU2VhcmNoRmlsdGVyVHlwZSA9IHRoaXMuaWRlbnRpZnlTZWFyY2hGaWx0ZXIoXHJcbiAgICAgIHRhcmdldFR5cGVzLFxyXG4gICAgICBmb3JtRWxlbWVudE5hbWVcclxuICAgICk7XHJcbiAgICBjb25zdCBmb3JtRWxlbWVudCA9IHRhcmdldFR5cGVzWzBdLmVsZW1lbnRzLmZpbmQoZWwgPT4gZWwucW5hbWUgPT09IGZvcm1FbGVtZW50TmFtZSk7XHJcblxyXG4gICAgaWYgKGVsZW1lbnRWYWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICBmaWx0ZXIucHVzaChcclxuICAgICAgICBuZXcgU2VhcmNoRmlsdGVyKGZvcm1FbGVtZW50TmFtZSwgU2VhcmNoRmlsdGVyLk9QRVJBVE9SLkVRVUFMLCBudWxsKVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIGlmIChmb3JtRWxlbWVudCAmJiBmb3JtRWxlbWVudC5jbGFzc2lmaWNhdGlvbiA9PT0gJ3BhdGgnKSB7XHJcbiAgICAgIGZpbHRlci5wdXNoKFxyXG4gICAgICAgIG5ldyBTZWFyY2hGaWx0ZXIoXHJcbiAgICAgICAgICBmb3JtRWxlbWVudE5hbWUsXHJcbiAgICAgICAgICBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuTUFUQ0gsXHJcbiAgICAgICAgICBlbGVtZW50VmFsdWVcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKGVsZW1lbnRWYWx1ZSBpbnN0YW5jZW9mIFJhbmdlVmFsdWUpIHtcclxuICAgICAgLyoqXHJcbiAgICAgICAqIGNyZWF0ZSBmaWx0ZXIgZm9yIGVsZW1lbnRzIHRoYXQgc3VwcG9ydCByYW5nZXMgbGlrZSBEQVRFVElNRSBhbmQgTlVNQkVSXHJcbiAgICAgICAqL1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgZWxlbWVudFZhbHVlLmZpcnN0VmFsdWUgIT09IG51bGwgJiZcclxuICAgICAgICBlbGVtZW50VmFsdWUuZmlyc3RWYWx1ZSAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICkge1xyXG4gICAgICAgIGZpbHRlci5wdXNoKFxyXG4gICAgICAgICAgbmV3IFNlYXJjaEZpbHRlcihcclxuICAgICAgICAgICAgZm9ybUVsZW1lbnROYW1lLFxyXG4gICAgICAgICAgICBlbGVtZW50VmFsdWUub3BlcmF0b3IsXHJcbiAgICAgICAgICAgIGVsZW1lbnRWYWx1ZS5maXJzdFZhbHVlLFxyXG4gICAgICAgICAgICBlbGVtZW50VmFsdWUuc2Vjb25kVmFsdWUsXHJcbiAgICAgICAgICAgIGZpbHRlclR5cGUuZGF0ZXRpbWUgPyB7dGltZTogZmlsdGVyVHlwZS53aXRodGltZX0gOiB1bmRlZmluZWRcclxuICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKChmaWx0ZXJUeXBlLm11bHRpc2VsZWN0IHx8IEFycmF5LmlzQXJyYXkoZWxlbWVudFZhbHVlKSkgJiYgIWZpbHRlclR5cGUudGFibGUpIHtcclxuICAgICAgLyoqXHJcbiAgICAgICAqIGNyZWF0ZSBmaWx0ZXIgZm9yIG11bHRpc2VsZWN0IGVsZW1lbnRzIGxpa2UgQ09ERVNZU1RFTSBhbmQgT1JHQU5JWkFUSU9OXHJcbiAgICAgICAqL1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShlbGVtZW50VmFsdWUpICYmIGVsZW1lbnRWYWx1ZS5sZW5ndGgpIHtcclxuICAgICAgICBmaWx0ZXIucHVzaChcclxuICAgICAgICAgIG5ldyBTZWFyY2hGaWx0ZXIoXHJcbiAgICAgICAgICAgIGZvcm1FbGVtZW50TmFtZSxcclxuICAgICAgICAgICAgU2VhcmNoRmlsdGVyLk9QRVJBVE9SLklOLFxyXG4gICAgICAgICAgICBlbGVtZW50VmFsdWVcclxuICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKGZpbHRlclR5cGUudGFibGUpIHtcclxuICAgICAgLyoqXHJcbiAgICAgICAqIGNyZWF0ZSBmaWx0ZXIocykgZm9yIHRhYmxlIGVsZW1lbnRzXHJcbiAgICAgICAqL1xyXG4gICAgICBjb25zdCBxdWVyeVJvdyA9IGVsZW1lbnRWYWx1ZVswXTtcclxuICAgICAgT2JqZWN0LmtleXMocXVlcnlSb3cpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgIGlmKHF1ZXJ5Um93W2tleV0gIT09IHVuZGVmaW5lZCl7XHJcbiAgICAgICAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSBgJHtmb3JtRWxlbWVudE5hbWV9LiR7a2V5fWA7XHJcbiAgICAgICAgICBpZiAocXVlcnlSb3dba2V5XSBpbnN0YW5jZW9mIFJhbmdlVmFsdWUpIHtcclxuICAgICAgICAgICAgZmlsdGVyLnB1c2goXHJcbiAgICAgICAgICAgICAgbmV3IFNlYXJjaEZpbHRlcihcclxuICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZSxcclxuICAgICAgICAgICAgICAgIHF1ZXJ5Um93W2tleV0ub3BlcmF0b3IsXHJcbiAgICAgICAgICAgICAgICBxdWVyeVJvd1trZXldLmZpcnN0VmFsdWUsXHJcbiAgICAgICAgICAgICAgICBxdWVyeVJvd1trZXldLnNlY29uZFZhbHVlXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZmlsdGVyLnB1c2goXHJcbiAgICAgICAgICAgICAgbmV3IFNlYXJjaEZpbHRlcihcclxuICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZSxcclxuICAgICAgICAgICAgICAgIEFycmF5LmlzQXJyYXkocXVlcnlSb3dba2V5XSkgPyBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuSU4gOiBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuRVFVQUwsXHJcbiAgICAgICAgICAgICAgICBxdWVyeVJvd1trZXldXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvKipcclxuICAgICAgICogZGVmYXVsdCB3aWxsIHVzZSBlcXVhbGl0eSBvcGVyYXRvclxyXG4gICAgICAgKi9cclxuICAgICAgZmlsdGVyLnB1c2goXHJcbiAgICAgICAgbmV3IFNlYXJjaEZpbHRlcihcclxuICAgICAgICAgIGZvcm1FbGVtZW50TmFtZSxcclxuICAgICAgICAgIFNlYXJjaEZpbHRlci5PUEVSQVRPUi5FUVVBTCxcclxuICAgICAgICAgIGVsZW1lbnRWYWx1ZVxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmaWx0ZXI7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBpZGVudGlmaWVzIGZvcm0gZWxlbWVudHMgdGhhdCBhcmUgZW5hYmxlZCB0byBjb250YWluIG11bHRpcGxlIHZhbHVlc1xyXG4gICAqIHRyeSB0byBmaW5kIHRoZSBmb3JtIGVsZW1lbnQgaW5zaWRlIG9mIHRoZSBwcm92aWRlZCBvYmplY3QgdHlwZXMgdG8gZ2V0IGl0cyB0eXBlXHJcbiAgICpcclxuICAgKiBAcGFyYW0gT2JqZWN0VHlwZVtdIHRhcmdldFR5cGVzXHJcbiAgICogQHBhcmFtIHN0cmluZyBmb3JtRWxlbWVudE5hbWVcclxuICAgKiBAcmV0dXJuIFNlYXJjaEZpbHRlclR5cGVcclxuICAgKi9cclxuICBwcml2YXRlIGlkZW50aWZ5U2VhcmNoRmlsdGVyKFxyXG4gICAgdGFyZ2V0VHlwZXM6IE9iamVjdFR5cGVbXSxcclxuICAgIGZvcm1FbGVtZW50TmFtZTogc3RyaW5nXHJcbiAgKTogU2VhcmNoRmlsdGVyVHlwZSB7XHJcbiAgICBsZXQgaSA9IDA7XHJcbiAgICBsZXQgbWF0Y2g7XHJcbiAgICB3aGlsZSAoIW1hdGNoICYmIGkgPCB0YXJnZXRUeXBlcy5sZW5ndGgpIHtcclxuICAgICAgbWF0Y2ggPSB0YXJnZXRUeXBlc1tpXS5lbGVtZW50cy5maW5kKFxyXG4gICAgICAgIGVsZW1lbnQgPT4gZWxlbWVudC5xbmFtZSA9PT0gZm9ybUVsZW1lbnROYW1lXHJcbiAgICAgICk7XHJcbiAgICAgIGkrKztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBtdWx0aXNlbGVjdDogdGhpcy5pc011bHRpc2VsZWN0U2VhcmNoRmlsdGVyKG1hdGNoKSxcclxuICAgICAgdGFibGU6IG1hdGNoICYmIG1hdGNoLnR5cGUgPT09ICdUQUJMRScsXHJcbiAgICAgIGRhdGV0aW1lOiBtYXRjaCAmJiBtYXRjaC50eXBlID09PSAnREFURVRJTUUnLFxyXG4gICAgICB3aXRodGltZTogbWF0Y2ggJiYgbWF0Y2gud2l0aHRpbWVcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBpZGVudGlmaWVzIGZvcm0gZWxlbWVudHMgdGhhdCBhcmUgZW5hYmxlZCB0byBjb250YWluIG11bHRpcGxlIHZhbHVlc1xyXG4gICAqXHJcbiAgICogQHBhcmFtIGZvcm1FbGVtZW50XHJcbiAgICogQHJldHVybiBib29sZWFuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpc011bHRpc2VsZWN0U2VhcmNoRmlsdGVyKGZvcm1FbGVtZW50OiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIGZvcm1FbGVtZW50ICYmXHJcbiAgICAgIChmb3JtRWxlbWVudC50eXBlID09PSAnT1JHQU5JWkFUSU9OJyB8fFxyXG4gICAgICAgIGZvcm1FbGVtZW50LnR5cGUgPT09ICdDT0RFU1lTVEVNJyB8fFxyXG4gICAgICAgIC8vIC4uLlxyXG4gICAgICAgIChmb3JtRWxlbWVudC50eXBlID09PSAnU1RSSU5HJyAmJlxyXG4gICAgICAgICAgZm9ybUVsZW1lbnQuY2xhc3NpZmljYXRpb24gPT09ICdzZWxlY3RvcicpIHx8XHJcbiAgICAgICAgLy8gbXVsdGlzZWxlY3QgcmVmZXJlbmNlIGZpZWxkc1xyXG4gICAgICAgIChmb3JtRWxlbWVudC50eXBlID09PSAnU1RSSU5HJyAmJiBmb3JtRWxlbWVudC5tdWx0aXNlbGVjdCkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIFNlYXJjaFJlc3VsdCBmcm9tIHRoZSByZXNwb25zZSBzZW50IGJ5IHRoZSBzZXJ2ZXJcclxuICAgKlxyXG4gICAqIEBwYXJhbSBiYWNrZW5kUmVzcG9uc2UgU2VydmVyIHJlc3BvbnNlXHJcbiAgICogQHJldHVyblRoZSBTZWFyY2hSZXN1bHQgU2VhcmNoUmVzdWx0IG9iamVjdCBjcmVhdGVkIGZyb20gdGhlIHNlcnZlciByZXNwb25zZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBjcmVhdGVSZXN1bHRGcm9tUmVzcG9uc2UoYmFja2VuZFJlc3BvbnNlKTogU2VhcmNoUmVzdWx0IHtcclxuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBTZWFyY2hSZXN1bHQoKTtcclxuICAgIHJlc3VsdC5zdWdnZXN0cyA9IGJhY2tlbmRSZXNwb25zZS5zdWdnZXN0O1xyXG4gICAgcmVzdWx0LmZpZWxkcyA9IGJhY2tlbmRSZXNwb25zZS5jb25maWc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiB1c2UgaGl0cyBfaWQgZmllbGQgYXMgaWQgcHJvcGVydHksIGJlY2F1c2Ugb3RoZXJ3aXNlIGVtcHR5IHJlc3VsdCBoaXRzIHdvdWxkIG5vdCBjb250YWluIGFuIGlkXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IGhpdHMgPSBiYWNrZW5kUmVzcG9uc2UuaGl0cy5oaXRzLm1hcChoID0+ICh7XHJcbiAgICAgIC4uLmguX3NvdXJjZSxcclxuICAgICAgaWQ6IGguX2lkLFxyXG4gICAgICAuLi4oaC5zbmlwcGV0cyAmJiB7c25pcHBldHM6IGguc25pcHBldHN9KSxcclxuICAgICAgLy8gaGF2aW5nIHJlcXVlc3RlZCBhIHJlc29sdmVkIHJlZmVyZW5jZSAob3B0aW9ucykgd2UgYWxzbyBwYXNzIGBfcmVmZXJlbmNlYCBpbiB0aGUgcmVzdWx0IGl0ZW1cclxuICAgICAgLi4uKGgucmVmZXJlbmNlcyAmJiB7X3JlZmVyZW5jZXM6IGgucmVmZXJlbmNlc30pLFxyXG4gICAgICAuLi4oaC5jb250ZXh0ICYmIHtjb250ZXh0OiBoLmNvbnRleHR9KVxyXG4gICAgfSkpO1xyXG5cclxuICAgIHJlc3VsdC5jb3VudCA9IGJhY2tlbmRSZXNwb25zZS5oaXRzLnRvdGFsO1xyXG4gICAgcmVzdWx0LmhpdHMgPSBoaXRzIHx8IFtdO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFByb3ZpZGVzIHRoZSBSZXN1bCB0RmllbGQgRGVmaW5pdGlvbiBDb25maWdcclxuICAgKlxyXG4gICAqIEBwYXJhbSBTZWFyY2hRdWVyeSBxdWVyeVxyXG4gICAqIEByZXR1cm4gKHt0eXBlOiBPYmplY3RUeXBlOyBjb250ZXh0VHlwZTogT2JqZWN0VHlwZX0pXHJcbiAgICovXHJcbiAgZ2V0UmVzdWx0RmllbGREZWZpbml0aW9uQ29uZmlnKHF1ZXJ5OiBTZWFyY2hRdWVyeSkge1xyXG4gICAgY29uc3QgdHlwZSA9IChxdWVyeS50eXBlcyB8fCBbXSkubGVuZ3RoID09PSAxID8gcXVlcnkudHlwZXNbMF0gOiBudWxsO1xyXG4gICAgY29uc3QgY29udGV4dFR5cGUgPVxyXG4gICAgICAocXVlcnkuY29udGV4dEZvbGRlclR5cGVzIHx8IFtdKS5sZW5ndGggPT09IDFcclxuICAgICAgICA/IHF1ZXJ5LmNvbnRleHRGb2xkZXJUeXBlc1swXVxyXG4gICAgICAgIDogbnVsbDtcclxuICAgIHJldHVybiB7dHlwZSwgY29udGV4dFR5cGV9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXNvbHZlQ29uZmlnVHlwZU5hbWVzKFxyXG4gICAgdHlwZTogT2JqZWN0VHlwZSB8IG51bGwsXHJcbiAgICBjb250ZXh0VHlwZTogT2JqZWN0VHlwZSB8IG51bGxcclxuICApIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHR5cGVOYW1lOiB0eXBlID8gdHlwZS5xbmFtZSA6ICdzeXNvYmplY3QnLFxyXG4gICAgICBjb250ZXh0VHlwZU5hbWU6IHR5cGUgJiYgY29udGV4dFR5cGUgPyBjb250ZXh0VHlwZS5xbmFtZSA6IHVuZGVmaW5lZFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIHJlc3VsdCBmaWVsZCBkZWZpbml0aW9uIGZvciBhIGdpdmVuIG9iamVjdCB0eXBlXHJcbiAgICogVVNFUjogKGRlZmF1bHQpIHRoZSByZXN1bHQgbGlzdCBjb25maWd1cmF0aW9uIHNhdmVkIGJ5IHRoZSBjdXJyZW50IHVzZXJcclxuICAgKiBERUZBVUxUOiB0aGUgZGVmYXVsdCByZXN1bHQgbGlzdCBjb25maWd1cmF0aW9uIChhbHNvIHJldHVybmVkIHdoZW4gdGhlcmUgaXMgbm8gdXNlciBjb25maWd1cmF0aW9uKVxyXG4gICAqIEFMTDogYWxsIGF2YWlsYWJsZSByZXN1bHQgZmllbGRzIGZvciB0aGUgZ2l2ZW4gdHlwZSAoYW5kIGNvbnRleHQpXHJcbiAgICpcclxuICAgKiBAcGFyYW0gT2JqZWN0VHlwZSB8IG51bGwgdHlwZSBUaGUgb2JqZWN0IHR5cGVcclxuICAgKiBAcGFyYW0gT2JqZWN0VHlwZSB8IG51bGwgY29udGV4dFR5cGUgT2JqZWN0IHR5cGUgdGFyZ2V0IHR5cGVzIGFsbG93ZWQgY29udGV4dCB0eXBlXHJcbiAgICogQHBhcmFtIG1vZGUgVGhlIHJlc3VsdCBsaXN0cyBjb25maWd1cmF0aW9uIG1vZGU6XHJcbiAgICogQHJldHVybiBPYnNlcnZhYmxlPEZpZWxkRGVmaW5pdGlvbj5cclxuICAgKi9cclxuICBmZXRjaFJlc3VsdEZpZWxkRGVmaW5pdGlvbihcclxuICAgIHR5cGU6IE9iamVjdFR5cGUgfCBudWxsLFxyXG4gICAgY29udGV4dFR5cGU6IE9iamVjdFR5cGUgfCBudWxsLFxyXG4gICAgbW9kZVxyXG4gICkge1xyXG4gICAgY29uc3Qge3R5cGVOYW1lLCBjb250ZXh0VHlwZU5hbWV9ID0gdGhpcy5yZXNvbHZlQ29uZmlnVHlwZU5hbWVzKFxyXG4gICAgICB0eXBlLFxyXG4gICAgICBjb250ZXh0VHlwZVxyXG4gICAgKTtcclxuICAgIGNvbnN0IHVybCA9IFV0aWxzLmJ1aWxkVXJpKGAvdXNlci9jb25maWcvcmVzdWx0LyR7dHlwZU5hbWV9YCwge1xyXG4gICAgICBjb250ZXh0dHlwZTogY29udGV4dFR5cGVOYW1lLFxyXG4gICAgICBtb2RlXHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcclxuICAgICAgLmdldEpzb24odXJsKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoXHJcbiAgICAgICAgICAocmVzOiBhbnkpID0+XHJcbiAgICAgICAgICAgIG5ldyBGaWVsZERlZmluaXRpb24oXHJcbiAgICAgICAgICAgICAgcmVzLmVsZW1lbnRzLFxyXG4gICAgICAgICAgICAgIHJlcy5zb3J0b3JkZXIsXHJcbiAgICAgICAgICAgICAgcmVzLmdyb3Vwb3JkZXIsXHJcbiAgICAgICAgICAgICAgcmVzLnBpbm5lZCxcclxuICAgICAgICAgICAgICByZXMubW9kZVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2F2ZXMgYSBjb2x1bW4gZGVmaW5pdGlvbiBhcyByZXN1bHQgb3IgY29tbW9uIHJlc3VsdC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBPYmplY3RUeXBlIHwgbnVsbCB0eXBlIFRoZSBvYmplY3QgdHlwZVxyXG4gICAqIEBwYXJhbSBPYmplY3RUeXBlIHwgbnVsbCBjb250ZXh0VHlwZSBPYmplY3QgdHlwZSB0YXJnZXQgdHlwZXMgYWxsb3dlZCBjb250ZXh0IHR5cGVcclxuICAgKiBAcGFyYW0gRmllbGREZWZpbml0aW9uIGRhdGEgVGhlIHJlc3VsdCBsaXN0IGNvbmZpZ3VyYXRpb24gdG8gYmUgcGVyc2lzdGVkXHJcbiAgICogQHBhcmFtIGJvb2xlYW4gY29tbW9uIEZsYWcgZW5hYmxlcyB0byBzZXQgY29uZmlnIGFzIGRlZmF1bHQgLyBjb21tb24gcmVzdWx0XHJcbiAgICogQHJldHVybiBPYnNlcnZhYmxlPGFueT5cclxuICAgKi9cclxuICBzYXZlUmVzdWx0RmllbGREZWZpbml0aW9uKFxyXG4gICAgdHlwZTogT2JqZWN0VHlwZSB8IG51bGwsXHJcbiAgICBjb250ZXh0VHlwZTogT2JqZWN0VHlwZSB8IG51bGwsXHJcbiAgICBkYXRhOiBGaWVsZERlZmluaXRpb24sXHJcbiAgICBjb21tb24gPSBmYWxzZVxyXG4gICkge1xyXG4gICAgY29uc3QgYmFzZVVyaSA9IGNvbW1vblxyXG4gICAgICA/ICcvdXNlci9jb25maWcvY29tbW9ucmVzdWx0LydcclxuICAgICAgOiAnL3VzZXIvY29uZmlnL3Jlc3VsdC8nO1xyXG4gICAgY29uc3Qge3R5cGVOYW1lLCBjb250ZXh0VHlwZU5hbWV9ID0gdGhpcy5yZXNvbHZlQ29uZmlnVHlwZU5hbWVzKFxyXG4gICAgICB0eXBlLFxyXG4gICAgICBjb250ZXh0VHlwZVxyXG4gICAgKTtcclxuICAgIGNvbnN0IHVybCA9IFV0aWxzLmJ1aWxkVXJpKGJhc2VVcmkgKyB0eXBlTmFtZSwge1xyXG4gICAgICBjb250ZXh0dHlwZTogY29udGV4dFR5cGVOYW1lXHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucG9zdCh1cmwsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyBhIGNvbHVtbiBkZWZpbml0aW9uLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIE9iamVjdFR5cGUgfCBudWxsIHR5cGUgVGhlIG9iamVjdCB0eXBlXHJcbiAgICogQHBhcmFtIE9iamVjdFR5cGUgfCBudWxsIGNvbnRleHRUeXBlIE9iamVjdCB0eXBlIHRhcmdldCB0eXBlcyBhbGxvd2VkIGNvbnRleHQgdHlwZVxyXG4gICAqIEByZXR1cm4gT2JzZXJ2YWJsZTxhbnk+XHJcbiAgICovXHJcbiAgcmVtb3ZlUmVzdWx0RmllbGREZWZpbml0aW9uKFxyXG4gICAgdHlwZTogT2JqZWN0VHlwZSB8IG51bGwsXHJcbiAgICBjb250ZXh0VHlwZTogT2JqZWN0VHlwZSB8IG51bGxcclxuICApIHtcclxuICAgIGNvbnN0IHt0eXBlTmFtZSwgY29udGV4dFR5cGVOYW1lfSA9IHRoaXMucmVzb2x2ZUNvbmZpZ1R5cGVOYW1lcyhcclxuICAgICAgdHlwZSxcclxuICAgICAgY29udGV4dFR5cGVcclxuICAgICk7XHJcbiAgICBjb25zdCB1cmwgPSBVdGlscy5idWlsZFVyaShgL3VzZXIvY29uZmlnL3Jlc3VsdC8ke3R5cGVOYW1lfWAsIHtcclxuICAgICAgY29udGV4dHR5cGU6IGNvbnRleHRUeXBlTmFtZVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmRlbCh1cmwpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgdmFsdWUgdG8gYmUgYWRkZWQgdG8gYSBmb3JtIGVsZW1lbnQgYnkgZXh0cmFjdGluZyBpdCBmcm9tIGFcclxuICAgKiBzZWFyY2ggZmlsdGVyLiBUaGUga2luZCBvZiB2YWx1ZSBkaWZmZXJzIGJhc2VkIG9uIHRoZSBmb3JtIGVsZW1lbnRzIHR5cGUuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZmlsdGVyIFRoZSBmaWx0ZXIgdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXHJcbiAgICogQHBhcmFtIGZvcm1FbGVtZW50VHlwZSBGb3JtIGVsZW1lbnRzIHR5cGUgKCdTVFJJTkcnLCAnREFURScsICdDT0RFU1lTVEVNJywgLi4uKVxyXG4gICAqIEByZXR1cm5zIHRoZSBleHRyYWN0ZWQgdmFsdWVcclxuICAgKi9cclxuICBmaWx0ZXJUb0VsZW1lbnRWYWx1ZShmaWx0ZXI6IFNlYXJjaEZpbHRlciwgZm9ybUVsZW1lbnRUeXBlOiBzdHJpbmcpIHtcclxuICAgIGxldCB2YWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgIGlmIChmaWx0ZXIpIHtcclxuICAgICAgLy8gdHlwZXMgdGhhdCBzdXBwb3J0IHJhbmdlc1xyXG4gICAgICBpZiAoKGZvcm1FbGVtZW50VHlwZSA9PT0gJ05VTUJFUicgfHwgZm9ybUVsZW1lbnRUeXBlID09PSAnREFURVRJTUUnKSAmJiBmaWx0ZXIuZmlyc3RWYWx1ZSkge1xyXG4gICAgICAgIHZhbHVlID0gbmV3IFJhbmdlVmFsdWUoXHJcbiAgICAgICAgICBmaWx0ZXIub3BlcmF0b3IsXHJcbiAgICAgICAgICBmaWx0ZXIuZmlyc3RWYWx1ZSxcclxuICAgICAgICAgIGZpbHRlci5zZWNvbmRWYWx1ZVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdmFsdWUgPSBmaWx0ZXIuZmlyc3RWYWx1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIHRhYmxlIHZhbHVlIGJ5IGV4dHJhY3RpbmcgdGhlIGRhdGEgZnJvbSB0aGUgY29ycmVzcG9uZGluZ1xyXG4gICAqIHNlYXJjaCBmaWx0ZXJzLlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBmaWx0ZXJzIFRoZSBmaWx0ZXJzIHRvIGV4dHJhY3QgdmFsdWUgZnJvbVxyXG4gICAqIEBwYXJhbSB0YWJsZUVsZW1lbnRzIHRoZSBmb3JtIGVsZW1lbnRzIG9mIHRoZSB0YWJsZVxyXG4gICAqIEByZXR1cm5zIHRoZSB0YWJsZSB2YWx1ZSBleHRyYWN0ZWQgZnJvbSBhbGwgZmlsdGVyc1xyXG4gICAqL1xyXG4gIHRhYmxlRmlsdGVyc1RvRWxlbWVudFZhbHVlKGZpbHRlcnM6IFNlYXJjaEZpbHRlcltdLCB0YWJsZUVsZW1lbnRzKXtcclxuICAgIGxldCB2YWx1ZSA9IHt9O1xyXG4gICAgZmlsdGVycy5mb3JFYWNoKGYgPT4ge1xyXG4gICAgICBsZXQga2V5ID0gdGFibGVFbGVtZW50cy5maW5kKGUgPT4gZS5xbmFtZSA9PT0gZi5wcm9wZXJ0eSkubmFtZTtcclxuICAgICAgbGV0IHR5cGUgPSB0YWJsZUVsZW1lbnRzLmZpbmQoZSA9PiBlLnFuYW1lID09PSBmLnByb3BlcnR5KS50eXBlO1xyXG4gICAgICB2YWx1ZVtrZXldID0gdGhpcy5maWx0ZXJUb0VsZW1lbnRWYWx1ZShmLCB0eXBlKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIFt2YWx1ZV07XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
462
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL3NlcnZpY2Uvc2VhcmNoL3NlYXJjaC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFFeEMsT0FBTyxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDekQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN2QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLFdBQVcsRUFDWixNQUFNLHNCQUFzQixDQUFDO0FBRTlCOzs7R0FHRztBQUVILE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFlBQ1UsTUFBcUIsRUFDckIsT0FBdUIsRUFDdkIsTUFBYztRQUZkLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNyQixDQUFDO0lBRUo7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQVU7UUFDbkMsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLEtBQUssWUFB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QUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNoRSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQixDQUFDOzs7WUF6bEJGLFVBQVU7OztZQWRILGFBQWE7WUFGYixjQUFjO1lBQ2QsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cFJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIEZpbGVTYXZlciBmcm9tICdmaWxlLXNhdmVyJztcclxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHttYXAsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge09iamVjdFR5cGV9IGZyb20gJy4uLy4uL21vZGVsL29iamVjdC10eXBlLm1vZGVsJztcclxuaW1wb3J0IHtSYW5nZVZhbHVlfSBmcm9tICcuLi8uLi9tb2RlbC9yYW5nZS12YWx1ZS5tb2RlbCc7XHJcbmltcG9ydCB7VXRpbHN9IGZyb20gJy4uLy4uL3V0aWwvdXRpbHMnO1xyXG5pbXBvcnQge0JhY2tlbmRTZXJ2aWNlfSBmcm9tICcuLi9iYWNrZW5kL2JhY2tlbmQuc2VydmljZSc7XHJcbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcvY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQge1N5c3RlbVNlcnZpY2V9IGZyb20gJy4uL3N5c3RlbS9zeXN0ZW0uc2VydmljZSc7XHJcbmltcG9ydCB7U2VhcmNoRmlsdGVyVHlwZX0gZnJvbSAnLi9zZWFyY2gtZmlsdGVyLXR5cGUuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtcclxuICBGaWVsZERlZmluaXRpb24sXHJcbiAgU2VhcmNoRmlsdGVyLFxyXG4gIFNlYXJjaFF1ZXJ5LFxyXG4gIFNlYXJjaFJlc3VsdCxcclxuICBTZWFyY2hTdGF0ZVxyXG59IGZyb20gJy4vc2VhcmNoLXF1ZXJ5Lm1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBDb2xsZWN0aW9uIG9mIFNlYXJjaCBTZXJ2aWNlc1xyXG4gKiBTZWUge0BsaW5rIFNlYXJjaFF1ZXJ5fSBmb3IgUXVlcnkgRGVmaW5pdGlvblxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2VhcmNoU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHN5c3RlbTogU3lzdGVtU2VydmljZSxcclxuICAgIHByaXZhdGUgYmFja2VuZDogQmFja2VuZFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnXHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgUmFuZ2VWYWx1ZSBpbnN0YW5jZSBmcm9tIHRoZSBnaXZlbiB2YWx1ZSBvYmplY3QuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIG9iamVjdCB0byBiZVxyXG4gICAqIEByZXR1cm5zIFJhbmdlVmFsdWVcclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIHRvUmFuZ2VWYWx1ZSh2YWx1ZTogYW55KTogUmFuZ2VWYWx1ZSB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgUmFuZ2VWYWx1ZSkge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICB2YWx1ZS5oYXNPd25Qcm9wZXJ0eSgnb3BlcmF0b3InKSAmJlxyXG4gICAgICAgIHZhbHVlLmhhc093blByb3BlcnR5KCdmaXJzdFZhbHVlJylcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBSYW5nZVZhbHVlKFxyXG4gICAgICAgICAgdmFsdWUub3BlcmF0b3IsXHJcbiAgICAgICAgICB2YWx1ZS5maXJzdFZhbHVlLFxyXG4gICAgICAgICAgdmFsdWUuc2Vjb25kVmFsdWVcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgZnJvbWF0ZWQgc2VhcmNoIFF1ZXJ5XHJcbiAgICpcclxuICAgKiBAcGFyYW0gcXVlcnlcclxuICAgKiBAcmV0dXJucyBTZWFyY2hRdWVyeVxyXG4gICAqL1xyXG4gIHB1YmxpYyBidWlsZFF1ZXJ5KHF1ZXJ5OiBhbnkpOiBTZWFyY2hRdWVyeSB7XHJcbiAgICBsZXQgcTogU2VhcmNoUXVlcnk7XHJcbiAgICBpZiAocXVlcnkgaW5zdGFuY2VvZiBTZWFyY2hRdWVyeSkge1xyXG4gICAgICBxID0gcXVlcnk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgcU9iajtcclxuICAgICAgLyoqXHJcbiAgICAgICAqIGlmIHdlIGdvdCBhIHN0cmluZywgd2UnbGwgYXNzdW1lIHRoYXQgaXQncyBhIEpTT05cclxuICAgICAgICovXHJcbiAgICAgIGlmICh0eXBlb2YgcXVlcnkgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgcU9iaiA9IEpTT04ucGFyc2UocXVlcnkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHFPYmogPSBxdWVyeTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcSA9IG5ldyBTZWFyY2hRdWVyeSgpO1xyXG4gICAgICBxLnRlcm0gPSBxT2JqLnRlcm07XHJcbiAgICAgIGlmIChxT2JqLmZpbHRlcnMpIHtcclxuICAgICAgICBPYmplY3Qua2V5cyhxT2JqLmZpbHRlcnMpLmZvckVhY2goayA9PiB7XHJcbiAgICAgICAgICBxLmZpbHRlcnMucHVzaChcclxuICAgICAgICAgICAgbmV3IFNlYXJjaEZpbHRlcihcclxuICAgICAgICAgICAgICBrLFxyXG4gICAgICAgICAgICAgIHFPYmouZmlsdGVyc1trXS5vLFxyXG4gICAgICAgICAgICAgIHFPYmouZmlsdGVyc1trXS52MSxcclxuICAgICAgICAgICAgICBxT2JqLmZpbHRlcnNba10udjJcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBpZiAocU9iai50eXBlcykge1xyXG4gICAgICAgIHFPYmoudHlwZXMuZm9yRWFjaCh0ID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLnN5c3RlbS5nZXRPYmplY3RUeXBlKHQpKSB7XHJcbiAgICAgICAgICAgIHEudHlwZXMucHVzaCh0aGlzLnN5c3RlbS5nZXRPYmplY3RUeXBlKHQpKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHEudHlwZXMucHVzaCh0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBpZiAocU9iai5jb250ZXh0Zm9sZGVydHlwZXMpIHtcclxuICAgICAgICBxT2JqLmNvbnRleHRmb2xkZXJ0eXBlcy5mb3JFYWNoKHQgPT4ge1xyXG4gICAgICAgICAgaWYgKHQgPT09ICdzeXNyb290Jykge1xyXG4gICAgICAgICAgICAvLyAnc3lzcm9vdCcgaXMgbm90IGEgcmVhbCBvYmplY3QgdHlwZSwgc28gd2UgaGF2ZSB0byBjcmVhdGUgYSBmYWtlIHR5cGUuXHJcbiAgICAgICAgICAgIGNvbnN0IHN5c3Jvb3RGYWtlT2JqZWN0VHlwZSA9IG5ldyBPYmplY3RUeXBlKHtcclxuICAgICAgICAgICAgICBpZDogJ2EnLFxyXG4gICAgICAgICAgICAgIGZvbGRlcjogdHJ1ZSxcclxuICAgICAgICAgICAgICBuYW1lOiAnc3lzcm9vdCcsXHJcbiAgICAgICAgICAgICAgcW5hbWU6ICdzeXNyb290JyxcclxuICAgICAgICAgICAgICBsYWJlbDogJ3N5c3Jvb3QnLFxyXG4gICAgICAgICAgICAgIGlzY29udGV4dGZvbGRlcjogdHJ1ZSxcclxuICAgICAgICAgICAgICBhYnN0cmFjdDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgZWxlbWVudHM6IFtdLFxyXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnJyxcclxuICAgICAgICAgICAgICBzaGFyZWFibGU6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIG1pbmZpbGVzOiAwLFxyXG4gICAgICAgICAgICAgIG1heGZpbGVzOiAxXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBxLmNvbnRleHRGb2xkZXJUeXBlcy5wdXNoKHN5c3Jvb3RGYWtlT2JqZWN0VHlwZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBxLmNvbnRleHRGb2xkZXJUeXBlcy5wdXNoKHRoaXMuc3lzdGVtLmdldE9iamVjdFR5cGUodCkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHEuZmllbGRzID0gcU9iai5maWVsZHM7XHJcbiAgICAgIGlmIChxT2JqLm9wdGlvbnMpIHtcclxuICAgICAgICBxLnN1Z2dlc3QgPSBxT2JqLm9wdGlvbnMuc3VnZ2VzdCB8fCBmYWxzZTtcclxuICAgICAgICBxLmV4cGVydE1vZGUgPSBxT2JqLm9wdGlvbnMuZXhwZXJ0bW9kZSB8fCBmYWxzZTtcclxuICAgICAgICBxLnNjb3BlID0gcU9iai5vcHRpb25zLnNjb3BlO1xyXG4gICAgICAgIHEucmVzb2x2ZVJlZmVyZW5jZSA9IHFPYmoub3B0aW9ucy5yZXNvbHZlUmVmZXJlbmNlIHx8IHRydWU7XHJcbiAgICAgICAgcS5zZWFyY2hNb2RlID1cclxuICAgICAgICAgIHFPYmoub3B0aW9ucy5zZWFyY2htb2RlIHx8IFNlYXJjaFF1ZXJ5LkRFRkFVTFRfU0VBUkNIX01PREU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4ZWN1dGVzIGEgcXVlcnkuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcXVlcnkgVGhlIHF1ZXJ5IHRvIGJlIGV4ZWN1dGVkXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxTZWFyY2hSZXN1bHQ+XHJcbiAgICovXHJcbiAgcHVibGljIHNlYXJjaChxdWVyeTogU2VhcmNoUXVlcnkpOiBPYnNlcnZhYmxlPFNlYXJjaFJlc3VsdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVF1ZXJ5KHF1ZXJ5LmdldFF1ZXJ5SnNvbigpKS5waXBlKFxyXG4gICAgICBtYXAocmVzID0+IHRoaXMuY3JlYXRlUmVzdWx0RnJvbVJlc3BvbnNlKHJlcykpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmUgU2VhcmNoIHJlc3VsdHNcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0U2VhcmNoU3RhdGUocXVlcnk6IGFueSk6IE9ic2VydmFibGU8U2VhcmNoU3RhdGU+IHtcclxuXHJcbiAgICBpZihxdWVyeSBpbnN0YW5jZW9mIFNlYXJjaFF1ZXJ5KSB7XHJcbiAgICAgIHF1ZXJ5ID0gcXVlcnkuZ2V0UXVlcnlKc29uKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5leGVjdXRlUXVlcnkocXVlcnksIHRydWUpLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBzdGF0ZSA9IG5ldyBTZWFyY2hTdGF0ZSgpO1xyXG4gICAgICAgIHN0YXRlLmNvdW50ID0gcmVzLmhpdHMudG90YWw7XHJcbiAgICAgICAgT2JqZWN0LmtleXMoU2VhcmNoUXVlcnkuQkFTRV9QQVJBTVMpLmZvckVhY2goayA9PiB7XHJcbiAgICAgICAgICBjb25zdCBiYXNlUGFyYW0gPSBTZWFyY2hRdWVyeS5CQVNFX1BBUkFNU1trXTtcclxuICAgICAgICAgIGNvbnN0IGFnZ3JlZ2F0aW9ucyA9IHJlcy5hZ2dyZWdhdGlvbnNbYmFzZVBhcmFtXVxyXG4gICAgICAgICAgICA/IHJlcy5hZ2dyZWdhdGlvbnNbYmFzZVBhcmFtXS5idWNrZXRzXHJcbiAgICAgICAgICAgIDogW107XHJcbiAgICAgICAgICBhZ2dyZWdhdGlvbnMuZm9yRWFjaChhZ2dyZWdhdGlvbiA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHtrZXksIGRvY19jb3VudCwgY29udGV4dGZvbGRlcnR5cGV9ID0gYWdncmVnYXRpb247XHJcbiAgICAgICAgICAgIHN0YXRlLmFkZEFnZ3JlZ2F0aW9ucyhiYXNlUGFyYW0sIGtleSwgZG9jX2NvdW50LCBhZ2dyZWdhdGlvbik7XHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKiB0eXBlIGFnZ3JlZ2F0aW9ucyBtYXkgYWxzbyBjb250YWluIGJ1Y2tldHMgZm9yIHRoZWlyIGNvbnRleHQgdHlwZXNcclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICBiYXNlUGFyYW0gPT09IFNlYXJjaFF1ZXJ5LkJBU0VfUEFSQU1TLlRZUEUgJiZcclxuICAgICAgICAgICAgICBjb250ZXh0Zm9sZGVydHlwZVxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICBjb250ZXh0Zm9sZGVydHlwZS5idWNrZXRzLmZvckVhY2goY3R4QWdnID0+IHtcclxuICAgICAgICAgICAgICAgIHN0YXRlLmFkZEFnZ3JlZ2F0aW9ucyhcclxuICAgICAgICAgICAgICAgICAgJ2NvbnRleHR0eXBlJyxcclxuICAgICAgICAgICAgICAgICAgY3R4QWdnLmtleSxcclxuICAgICAgICAgICAgICAgICAgY3R4QWdnLmRvY19jb3VudCxcclxuICAgICAgICAgICAgICAgICAgY3R4QWdnXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHN0YXRlO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYSBwYXJ0IG9mIGEgcXVlcmllcyByZXN1bHQuIFRoaXMgY2FuIGJlIHVzZWQgZm9yIHBhZ2luZyBvZiByZXN1bHRzXHJcbiAgICogb3IgbGF6eSBsb2FkaW5nIGxhcmdlIHJlc3VsdHMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcXVlcnkgVGhlIHF1ZXJ5IHRvIGJlIGV4ZWN1dGVkXHJcbiAgICogQHBhcmFtIGZyb21JbmRleCBUaGUgaW5kZXggZnJvbSB3aGVyZSB0byBmZXRjaCByZXN1bHRzXHJcbiAgICogQHBhcmFtIGNodW5rU2l6ZSBTaXplIG9mIHRoZSBjaHVuayB0byBiZSBmZXRjaGVkXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxTZWFyY2hSZXN1bHQ+XHJcbiAgICovXHJcbiAgcHVibGljIGdldENodW5rZWRSZXN1bHQoXHJcbiAgICBxdWVyeTogU2VhcmNoUXVlcnksXHJcbiAgICBmcm9tSW5kZXg6IG51bWJlcixcclxuICAgIGNodW5rU2l6ZTogbnVtYmVyXHJcbiAgKTogT2JzZXJ2YWJsZTxTZWFyY2hSZXN1bHQ+IHtcclxuICAgIGNvbnN0IHEgPSBxdWVyeS5nZXRRdWVyeUpzb24oKTtcclxuXHJcbiAgICBxLmZyb20gPSBmcm9tSW5kZXg7XHJcbiAgICBjb25zdCBxdWVyeVVyaSA9IGBzZWFyY2ghY2h1bms6JHtjaHVua1NpemV9ISR7SlNPTi5zdHJpbmdpZnkocSl9YDtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0VmlhVGVtcENhY2hlKHF1ZXJ5VXJpLCAoKSA9PlxyXG4gICAgICB0aGlzLmV4ZWN1dGVRdWVyeShxLCBmYWxzZSwgY2h1bmtTaXplKS5waXBlKFxyXG4gICAgICAgIG1hcChyZXMgPT4gdGhpcy5jcmVhdGVSZXN1bHRGcm9tUmVzcG9uc2UocmVzKSlcclxuICAgICAgKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4ZWN1dGVzIGEgcXVlcnlcclxuICAgKlxyXG4gICAqIEBwYXJhbSBxdWVyeUpzb24gVGhlIHF1ZXJ5IEpTT04gdG8gYmUgZXhlY3V0ZWRcclxuICAgKiBAcGFyYW0gYWdncmVnYXRlU2VhcmNoIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCB0byBleGVjdXRlIGFuIGFnZ3JlZ2F0aW9uIHNlYXJjaCAobm8gYWN0dWFsIHJlc3VsdHMpXHJcbiAgICogQHBhcmFtIGN1c3RvbVNpemUgQ3VzdG9tIG51bWJlciBvZiByZXN1bHRzIHRvIGJlIGZldGNoZWQsIGlmIG5vdCBzZXQgdGhlIGRlZmF1bHQgc2l6ZSB3aWxsIGJlIGFwcGxpZWRcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT5cclxuICAgKi9cclxuICBwdWJsaWMgZXhlY3V0ZVF1ZXJ5KFxyXG4gICAgcXVlcnlKc29uOiBhbnksXHJcbiAgICBhZ2dyZWdhdGVTZWFyY2g/OiBib29sZWFuLFxyXG4gICAgY3VzdG9tU2l6ZT86IG51bWJlclxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgdXJpOiBzdHJpbmc7XHJcbiAgICBsZXQgcXVlcnkgPSBxdWVyeUpzb247XHJcbiAgICBpZiAoYWdncmVnYXRlU2VhcmNoKSB7XHJcbiAgICAgIHVyaSA9IGAvYWdncmVnYXRlYDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHNpemUgPSBjdXN0b21TaXplIHx8IHRoaXMuY29uZmlnLmdldFJhdygnc2VhcmNoLmxpbWl0Jyk7XHJcbiAgICAgIHVyaSA9IGAvP3NpemU9JHtzaXplfWA7XHJcbiAgICB9XHJcbiAgICBxdWVyeS5vcHRpb25zID0gey4uLnF1ZXJ5Lm9wdGlvbnMsIHRyYWNrdG90YWxoaXRzOiB0aGlzLmNvbmZpZy5nZXRSYXcoJ3NlYXJjaC50cmFja1RvdGFsSGl0cycpIHx8IGZhbHNlLCB0aW1lem9uZTogVXRpbHMuZ2V0VGltZXpvbmVPZmZzZXQoKX07XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXRWaWFUZW1wQ2FjaGUodXJpICsgSlNPTi5zdHJpbmdpZnkocXVlcnkpLCAoKSA9PiB0aGlzLmJhY2tlbmQucG9zdCh1cmksIHF1ZXJ5LCB0aGlzLmJhY2tlbmQuZ2V0U2VhcmNoQmFzZSgpKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEb3dubG9hZHMgYSBjc3YtZmlsZSBvZiB0aGUgcmVzdWx0cyBvZiBhIGdpdmVuIHNlYXJjaC1xdWVyeVxyXG4gICAqXHJcbiAgICogQHBhcmFtIHF1ZXJ5SnNvbiBUaGUgcXVlcnkgSlNPTiB0byBiZSBleGVjdXRlZFxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxyXG4gICAqL1xyXG4gIHB1YmxpYyBkb3dubG9hZENzdkZyb21RdWVyeShxdWVyeUpzb246IG9iamVjdCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXHJcbiAgICAgIC5wb3N0KCcvZXhwb3J0JywgcXVlcnlKc29uLCB0aGlzLmJhY2tlbmQuZ2V0U2VhcmNoQmFzZSgpLCB7XHJcbiAgICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyxcclxuICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJ1xyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YXAocmVzID0+IHtcclxuICAgICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbcmVzLmJvZHldLCB7XHJcbiAgICAgICAgICAgIHR5cGU6ICd0ZXh0L2NzdjtjaGFyc2V0PXV0Zi04J1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBGaWxlU2F2ZXIuc2F2ZUFzKGJsb2IsIHRoaXMuZ2V0RmlsZU5hbWVGcm9tSHR0cFJlc3BvbnNlKHJlcyksIHthdXRvQm9tOiB0cnVlfSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RmlsZU5hbWVGcm9tSHR0cFJlc3BvbnNlKHJlczogSHR0cFJlc3BvbnNlPGFueT4pIHtcclxuICAgIGNvbnN0IGNvbnRlbnREaXNwb3NpdGlvbkhlYWRlciA9XHJcbiAgICAgIHJlcy5oZWFkZXJzLmdldCgnQ29udGVudC1EaXNwb3NpdGlvbicpIHx8ICcnO1xyXG4gICAgcmV0dXJuIGNvbnRlbnREaXNwb3NpdGlvbkhlYWRlci5zcGxpdCgnZmlsZW5hbWU9JylbMV07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeGVjdXRlcyBhIHNlYXJjaCBmb3IgZmV0Y2hpbmcgc3VnZ2VzdGlvbnMgb24gYSBnaXZlbiBzZWFyY2ggdGVybS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB0ZXJtIFRoZSBzZWFyY2ggdGVybVxyXG4gICAqIEByZXR1cm5cclxuICAgKi9cclxuICBwdWJsaWMgYXV0b2NvbXBsZXRlKHRlcm06IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXRKc29uKFxyXG4gICAgICBgL2F1dG9jb21wbGV0ZT9wcmVmaXg9JHtlbmNvZGVVUklDb21wb25lbnQodGVybSl9YCxcclxuICAgICAgdGhpcy5iYWNrZW5kLmdldFNlYXJjaEJhc2UoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVzZSB0aGlzIG1ldGhvZCB0byBjcmVhdGUgYSBTZWFyY2hGaWx0ZXIgZm9yIGEgZm9ybSBlbGVtZW50LiBCYXNlZCBvbiB0aGUgdGFyZ2V0IHR5cGVzXHJcbiAgICogaXQnbGwgY3JlYXRlIHRoZSByaWdodCBraW5kIG9mIGZpbHRlciB0aGF0IHlvdSB0aGVuIGNhbiBhZGQgdG8gYSBTZWFyY2hRdWVyeVxyXG4gICAqXHJcbiAgICogQHBhcmFtIHRhcmdldFR5cGVzXHJcbiAgICogQHBhcmFtIGZvcm1FbGVtZW50TmFtZVxyXG4gICAqIEBwYXJhbSBlbGVtZW50VmFsdWVcclxuICAgKiBAcmV0dXJucyBTZWFyY2hGaWx0ZXJbXSBBbiBhcnJheSBvZiBzZWFyY2ggZmlsdGVycyBtb3N0IG9mIHRoZSB0aW1lIGNvbnRhaW5pbmcgb25seSBvbmUgZW50cnksIGJ1dFxyXG4gICAqIGZvciB0YWJsZSBlbGVtZW50cyB0aGlzIGNvdWxkIGJlIG1vcmVcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0U2VhcmNoRmlsdGVyKFxyXG4gICAgdGFyZ2V0VHlwZXM6IE9iamVjdFR5cGVbXSxcclxuICAgIGZvcm1FbGVtZW50TmFtZTogc3RyaW5nLFxyXG4gICAgZWxlbWVudFZhbHVlOiBhbnlcclxuICApOiBTZWFyY2hGaWx0ZXJbXSB7XHJcbiAgICBjb25zdCBmaWx0ZXI6IFNlYXJjaEZpbHRlcltdID0gW107XHJcbiAgICBjb25zdCBmaWx0ZXJUeXBlOiBTZWFyY2hGaWx0ZXJUeXBlID0gdGhpcy5pZGVudGlmeVNlYXJjaEZpbHRlcihcclxuICAgICAgdGFyZ2V0VHlwZXMsXHJcbiAgICAgIGZvcm1FbGVtZW50TmFtZVxyXG4gICAgKTtcclxuICAgIGNvbnN0IGZvcm1FbGVtZW50ID0gdGFyZ2V0VHlwZXNbMF0uZWxlbWVudHMuZmluZChlbCA9PiBlbC5xbmFtZSA9PT0gZm9ybUVsZW1lbnROYW1lKTtcclxuXHJcbiAgICBpZiAoZWxlbWVudFZhbHVlID09PSBudWxsKSB7XHJcbiAgICAgIGZpbHRlci5wdXNoKFxyXG4gICAgICAgIG5ldyBTZWFyY2hGaWx0ZXIoZm9ybUVsZW1lbnROYW1lLCBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuRVFVQUwsIG51bGwpXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKGZvcm1FbGVtZW50ICYmIGZvcm1FbGVtZW50LmNsYXNzaWZpY2F0aW9uID09PSAncGF0aCcpIHtcclxuICAgICAgZmlsdGVyLnB1c2goXHJcbiAgICAgICAgbmV3IFNlYXJjaEZpbHRlcihcclxuICAgICAgICAgIGZvcm1FbGVtZW50TmFtZSxcclxuICAgICAgICAgIFNlYXJjaEZpbHRlci5PUEVSQVRPUi5NQVRDSCxcclxuICAgICAgICAgIGVsZW1lbnRWYWx1ZVxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSBpZiAoZWxlbWVudFZhbHVlIGluc3RhbmNlb2YgUmFuZ2VWYWx1ZSkge1xyXG4gICAgICAvKipcclxuICAgICAgICogY3JlYXRlIGZpbHRlciBmb3IgZWxlbWVudHMgdGhhdCBzdXBwb3J0IHJhbmdlcyBsaWtlIERBVEVUSU1FIGFuZCBOVU1CRVJcclxuICAgICAgICovXHJcbiAgICAgIGlmIChcclxuICAgICAgICBlbGVtZW50VmFsdWUuZmlyc3RWYWx1ZSAhPT0gbnVsbCAmJlxyXG4gICAgICAgIGVsZW1lbnRWYWx1ZS5maXJzdFZhbHVlICE9PSB1bmRlZmluZWRcclxuICAgICAgKSB7XHJcbiAgICAgICAgZmlsdGVyLnB1c2goXHJcbiAgICAgICAgICBuZXcgU2VhcmNoRmlsdGVyKFxyXG4gICAgICAgICAgICBmb3JtRWxlbWVudE5hbWUsXHJcbiAgICAgICAgICAgIGVsZW1lbnRWYWx1ZS5vcGVyYXRvcixcclxuICAgICAgICAgICAgZWxlbWVudFZhbHVlLmZpcnN0VmFsdWUsXHJcbiAgICAgICAgICAgIGVsZW1lbnRWYWx1ZS5zZWNvbmRWYWx1ZSxcclxuICAgICAgICAgICAgZmlsdGVyVHlwZS5kYXRldGltZSA/IHt0aW1lOiBmaWx0ZXJUeXBlLndpdGh0aW1lfSA6IHVuZGVmaW5lZFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoKGZpbHRlclR5cGUubXVsdGlzZWxlY3QgfHwgQXJyYXkuaXNBcnJheShlbGVtZW50VmFsdWUpKSAmJiAhZmlsdGVyVHlwZS50YWJsZSkge1xyXG4gICAgICAvKipcclxuICAgICAgICogY3JlYXRlIGZpbHRlciBmb3IgbXVsdGlzZWxlY3QgZWxlbWVudHMgbGlrZSBDT0RFU1lTVEVNIGFuZCBPUkdBTklaQVRJT05cclxuICAgICAgICovXHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGVsZW1lbnRWYWx1ZSkgJiYgZWxlbWVudFZhbHVlLmxlbmd0aCkge1xyXG4gICAgICAgIGZpbHRlci5wdXNoKFxyXG4gICAgICAgICAgbmV3IFNlYXJjaEZpbHRlcihcclxuICAgICAgICAgICAgZm9ybUVsZW1lbnROYW1lLFxyXG4gICAgICAgICAgICBTZWFyY2hGaWx0ZXIuT1BFUkFUT1IuSU4sXHJcbiAgICAgICAgICAgIGVsZW1lbnRWYWx1ZVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoZmlsdGVyVHlwZS50YWJsZSkge1xyXG4gICAgICAvKipcclxuICAgICAgICogY3JlYXRlIGZpbHRlcihzKSBmb3IgdGFibGUgZWxlbWVudHNcclxuICAgICAgICovXHJcbiAgICAgIGNvbnN0IHF1ZXJ5Um93ID0gZWxlbWVudFZhbHVlWzBdO1xyXG4gICAgICBPYmplY3Qua2V5cyhxdWVyeVJvdykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XHJcbiAgICAgICAgaWYocXVlcnlSb3dba2V5XSAhPT0gdW5kZWZpbmVkKXtcclxuICAgICAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IGAke2Zvcm1FbGVtZW50TmFtZX0uJHtrZXl9YDtcclxuICAgICAgICAgIGlmIChxdWVyeVJvd1trZXldIGluc3RhbmNlb2YgUmFuZ2VWYWx1ZSkge1xyXG4gICAgICAgICAgICBmaWx0ZXIucHVzaChcclxuICAgICAgICAgICAgICBuZXcgU2VhcmNoRmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lLFxyXG4gICAgICAgICAgICAgICAgcXVlcnlSb3dba2V5XS5vcGVyYXRvcixcclxuICAgICAgICAgICAgICAgIHF1ZXJ5Um93W2tleV0uZmlyc3RWYWx1ZSxcclxuICAgICAgICAgICAgICAgIHF1ZXJ5Um93W2tleV0uc2Vjb25kVmFsdWVcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBmaWx0ZXIucHVzaChcclxuICAgICAgICAgICAgICBuZXcgU2VhcmNoRmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lLFxyXG4gICAgICAgICAgICAgICAgQXJyYXkuaXNBcnJheShxdWVyeVJvd1trZXldKSA/IFNlYXJjaEZpbHRlci5PUEVSQVRPUi5JTiA6IFNlYXJjaEZpbHRlci5PUEVSQVRPUi5FUVVBTCxcclxuICAgICAgICAgICAgICAgIHF1ZXJ5Um93W2tleV1cclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBkZWZhdWx0IHdpbGwgdXNlIGVxdWFsaXR5IG9wZXJhdG9yXHJcbiAgICAgICAqL1xyXG4gICAgICBmaWx0ZXIucHVzaChcclxuICAgICAgICBuZXcgU2VhcmNoRmlsdGVyKFxyXG4gICAgICAgICAgZm9ybUVsZW1lbnROYW1lLFxyXG4gICAgICAgICAgU2VhcmNoRmlsdGVyLk9QRVJBVE9SLkVRVUFMLFxyXG4gICAgICAgICAgZWxlbWVudFZhbHVlXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpbHRlcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGlkZW50aWZpZXMgZm9ybSBlbGVtZW50cyB0aGF0IGFyZSBlbmFibGVkIHRvIGNvbnRhaW4gbXVsdGlwbGUgdmFsdWVzXHJcbiAgICogdHJ5IHRvIGZpbmQgdGhlIGZvcm0gZWxlbWVudCBpbnNpZGUgb2YgdGhlIHByb3ZpZGVkIG9iamVjdCB0eXBlcyB0byBnZXQgaXRzIHR5cGVcclxuICAgKlxyXG4gICAqIEBwYXJhbSBPYmplY3RUeXBlW10gdGFyZ2V0VHlwZXNcclxuICAgKiBAcGFyYW0gc3RyaW5nIGZvcm1FbGVtZW50TmFtZVxyXG4gICAqIEByZXR1cm4gU2VhcmNoRmlsdGVyVHlwZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgaWRlbnRpZnlTZWFyY2hGaWx0ZXIoXHJcbiAgICB0YXJnZXRUeXBlczogT2JqZWN0VHlwZVtdLFxyXG4gICAgZm9ybUVsZW1lbnROYW1lOiBzdHJpbmdcclxuICApOiBTZWFyY2hGaWx0ZXJUeXBlIHtcclxuICAgIGxldCBpID0gMDtcclxuICAgIGxldCBtYXRjaDtcclxuICAgIHdoaWxlICghbWF0Y2ggJiYgaSA8IHRhcmdldFR5cGVzLmxlbmd0aCkge1xyXG4gICAgICBtYXRjaCA9IHRhcmdldFR5cGVzW2ldLmVsZW1lbnRzLmZpbmQoXHJcbiAgICAgICAgZWxlbWVudCA9PiBlbGVtZW50LnFuYW1lID09PSBmb3JtRWxlbWVudE5hbWVcclxuICAgICAgKTtcclxuICAgICAgaSsrO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIG11bHRpc2VsZWN0OiB0aGlzLmlzTXVsdGlzZWxlY3RTZWFyY2hGaWx0ZXIobWF0Y2gpLFxyXG4gICAgICB0YWJsZTogbWF0Y2ggJiYgbWF0Y2gudHlwZSA9PT0gJ1RBQkxFJyxcclxuICAgICAgZGF0ZXRpbWU6IG1hdGNoICYmIG1hdGNoLnR5cGUgPT09ICdEQVRFVElNRScsXHJcbiAgICAgIHdpdGh0aW1lOiBtYXRjaCAmJiBtYXRjaC53aXRodGltZVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGlkZW50aWZpZXMgZm9ybSBlbGVtZW50cyB0aGF0IGFyZSBlbmFibGVkIHRvIGNvbnRhaW4gbXVsdGlwbGUgdmFsdWVzXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZm9ybUVsZW1lbnRcclxuICAgKiBAcmV0dXJuIGJvb2xlYW5cclxuICAgKi9cclxuICBwcml2YXRlIGlzTXVsdGlzZWxlY3RTZWFyY2hGaWx0ZXIoZm9ybUVsZW1lbnQ6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgZm9ybUVsZW1lbnQgJiZcclxuICAgICAgKGZvcm1FbGVtZW50LnR5cGUgPT09ICdPUkdBTklaQVRJT04nIHx8XHJcbiAgICAgICAgZm9ybUVsZW1lbnQudHlwZSA9PT0gJ0NPREVTWVNURU0nIHx8XHJcbiAgICAgICAgLy8gLi4uXHJcbiAgICAgICAgKGZvcm1FbGVtZW50LnR5cGUgPT09ICdTVFJJTkcnICYmXHJcbiAgICAgICAgICBmb3JtRWxlbWVudC5jbGFzc2lmaWNhdGlvbiA9PT0gJ3NlbGVjdG9yJykgfHxcclxuICAgICAgICAvLyBtdWx0aXNlbGVjdCByZWZlcmVuY2UgZmllbGRzXHJcbiAgICAgICAgKGZvcm1FbGVtZW50LnR5cGUgPT09ICdTVFJJTkcnICYmIGZvcm1FbGVtZW50Lm11bHRpc2VsZWN0KSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgU2VhcmNoUmVzdWx0IGZyb20gdGhlIHJlc3BvbnNlIHNlbnQgYnkgdGhlIHNlcnZlclxyXG4gICAqXHJcbiAgICogQHBhcmFtIGJhY2tlbmRSZXNwb25zZSBTZXJ2ZXIgcmVzcG9uc2VcclxuICAgKiBAcmV0dXJuVGhlIFNlYXJjaFJlc3VsdCBTZWFyY2hSZXN1bHQgb2JqZWN0IGNyZWF0ZWQgZnJvbSB0aGUgc2VydmVyIHJlc3BvbnNlXHJcbiAgICovXHJcbiAgcHVibGljIGNyZWF0ZVJlc3VsdEZyb21SZXNwb25zZShiYWNrZW5kUmVzcG9uc2UpOiBTZWFyY2hSZXN1bHQge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IFNlYXJjaFJlc3VsdCgpO1xyXG4gICAgcmVzdWx0LnN1Z2dlc3RzID0gYmFja2VuZFJlc3BvbnNlLnN1Z2dlc3Q7XHJcbiAgICByZXN1bHQuZmllbGRzID0gYmFja2VuZFJlc3BvbnNlLmNvbmZpZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIHVzZSBoaXRzIF9pZCBmaWVsZCBhcyBpZCBwcm9wZXJ0eSwgYmVjYXVzZSBvdGhlcndpc2UgZW1wdHkgcmVzdWx0IGhpdHMgd291bGQgbm90IGNvbnRhaW4gYW4gaWRcclxuICAgICAqL1xyXG4gICAgY29uc3QgaGl0cyA9IGJhY2tlbmRSZXNwb25zZS5oaXRzLmhpdHMubWFwKGggPT4gKHtcclxuICAgICAgLi4uaC5fc291cmNlLFxyXG4gICAgICBpZDogaC5faWQsXHJcbiAgICAgIC4uLihoLnNuaXBwZXRzICYmIHtzbmlwcGV0czogaC5zbmlwcGV0c30pLFxyXG4gICAgICAvLyBoYXZpbmcgcmVxdWVzdGVkIGEgcmVzb2x2ZWQgcmVmZXJlbmNlIChvcHRpb25zKSB3ZSBhbHNvIHBhc3MgYF9yZWZlcmVuY2VgIGluIHRoZSByZXN1bHQgaXRlbVxyXG4gICAgICAuLi4oaC5yZWZlcmVuY2VzICYmIHtfcmVmZXJlbmNlczogaC5yZWZlcmVuY2VzfSksXHJcbiAgICAgIC4uLihoLmNvbnRleHQgJiYge2NvbnRleHQ6IGguY29udGV4dH0pXHJcbiAgICB9KSk7XHJcblxyXG4gICAgcmVzdWx0LmNvdW50ID0gYmFja2VuZFJlc3BvbnNlLmhpdHMudG90YWw7XHJcbiAgICByZXN1bHQuaGl0cyA9IGhpdHMgfHwgW107XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJvdmlkZXMgdGhlIFJlc3VsIHRGaWVsZCBEZWZpbml0aW9uIENvbmZpZ1xyXG4gICAqXHJcbiAgICogQHBhcmFtIFNlYXJjaFF1ZXJ5IHF1ZXJ5XHJcbiAgICogQHJldHVybiAoe3R5cGU6IE9iamVjdFR5cGU7IGNvbnRleHRUeXBlOiBPYmplY3RUeXBlfSlcclxuICAgKi9cclxuICBnZXRSZXN1bHRGaWVsZERlZmluaXRpb25Db25maWcocXVlcnk6IFNlYXJjaFF1ZXJ5KSB7XHJcbiAgICBjb25zdCB0eXBlID0gKHF1ZXJ5LnR5cGVzIHx8IFtdKS5sZW5ndGggPT09IDEgPyBxdWVyeS50eXBlc1swXSA6IG51bGw7XHJcbiAgICBjb25zdCBjb250ZXh0VHlwZSA9XHJcbiAgICAgIChxdWVyeS5jb250ZXh0Rm9sZGVyVHlwZXMgfHwgW10pLmxlbmd0aCA9PT0gMVxyXG4gICAgICAgID8gcXVlcnkuY29udGV4dEZvbGRlclR5cGVzWzBdXHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgcmV0dXJuIHt0eXBlLCBjb250ZXh0VHlwZX07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc29sdmVDb25maWdUeXBlTmFtZXMoXHJcbiAgICB0eXBlOiBPYmplY3RUeXBlIHwgbnVsbCxcclxuICAgIGNvbnRleHRUeXBlOiBPYmplY3RUeXBlIHwgbnVsbFxyXG4gICkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdHlwZU5hbWU6IHR5cGUgPyB0eXBlLnFuYW1lIDogJ3N5c29iamVjdCcsXHJcbiAgICAgIGNvbnRleHRUeXBlTmFtZTogdHlwZSAmJiBjb250ZXh0VHlwZSA/IGNvbnRleHRUeXBlLnFuYW1lIDogdW5kZWZpbmVkXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgcmVzdWx0IGZpZWxkIGRlZmluaXRpb24gZm9yIGEgZ2l2ZW4gb2JqZWN0IHR5cGVcclxuICAgKiBVU0VSOiAoZGVmYXVsdCkgdGhlIHJlc3VsdCBsaXN0IGNvbmZpZ3VyYXRpb24gc2F2ZWQgYnkgdGhlIGN1cnJlbnQgdXNlclxyXG4gICAqIERFRkFVTFQ6IHRoZSBkZWZhdWx0IHJlc3VsdCBsaXN0IGNvbmZpZ3VyYXRpb24gKGFsc28gcmV0dXJuZWQgd2hlbiB0aGVyZSBpcyBubyB1c2VyIGNvbmZpZ3VyYXRpb24pXHJcbiAgICogQUxMOiBhbGwgYXZhaWxhYmxlIHJlc3VsdCBmaWVsZHMgZm9yIHRoZSBnaXZlbiB0eXBlIChhbmQgY29udGV4dClcclxuICAgKlxyXG4gICAqIEBwYXJhbSBPYmplY3RUeXBlIHwgbnVsbCB0eXBlIFRoZSBvYmplY3QgdHlwZVxyXG4gICAqIEBwYXJhbSBPYmplY3RUeXBlIHwgbnVsbCBjb250ZXh0VHlwZSBPYmplY3QgdHlwZSB0YXJnZXQgdHlwZXMgYWxsb3dlZCBjb250ZXh0IHR5cGVcclxuICAgKiBAcGFyYW0gbW9kZSBUaGUgcmVzdWx0IGxpc3RzIGNvbmZpZ3VyYXRpb24gbW9kZTpcclxuICAgKiBAcmV0dXJuIE9ic2VydmFibGU8RmllbGREZWZpbml0aW9uPlxyXG4gICAqL1xyXG4gIGZldGNoUmVzdWx0RmllbGREZWZpbml0aW9uKFxyXG4gICAgdHlwZTogT2JqZWN0VHlwZSB8IG51bGwsXHJcbiAgICBjb250ZXh0VHlwZTogT2JqZWN0VHlwZSB8IG51bGwsXHJcbiAgICBtb2RlXHJcbiAgKSB7XHJcbiAgICBjb25zdCB7dHlwZU5hbWUsIGNvbnRleHRUeXBlTmFtZX0gPSB0aGlzLnJlc29sdmVDb25maWdUeXBlTmFtZXMoXHJcbiAgICAgIHR5cGUsXHJcbiAgICAgIGNvbnRleHRUeXBlXHJcbiAgICApO1xyXG4gICAgY29uc3QgdXJsID0gVXRpbHMuYnVpbGRVcmkoYC91c2VyL2NvbmZpZy9yZXN1bHQvJHt0eXBlTmFtZX1gLCB7XHJcbiAgICAgIGNvbnRleHR0eXBlOiBjb250ZXh0VHlwZU5hbWUsXHJcbiAgICAgIG1vZGVcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxyXG4gICAgICAuZ2V0SnNvbih1cmwpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcChcclxuICAgICAgICAgIChyZXM6IGFueSkgPT5cclxuICAgICAgICAgICAgbmV3IEZpZWxkRGVmaW5pdGlvbihcclxuICAgICAgICAgICAgICByZXMuZWxlbWVudHMsXHJcbiAgICAgICAgICAgICAgcmVzLnNvcnRvcmRlcixcclxuICAgICAgICAgICAgICByZXMuZ3JvdXBvcmRlcixcclxuICAgICAgICAgICAgICByZXMucGlubmVkLFxyXG4gICAgICAgICAgICAgIHJlcy5tb2RlXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTYXZlcyBhIGNvbHVtbiBkZWZpbml0aW9uIGFzIHJlc3VsdCBvciBjb21tb24gcmVzdWx0LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIE9iamVjdFR5cGUgfCBudWxsIHR5cGUgVGhlIG9iamVjdCB0eXBlXHJcbiAgICogQHBhcmFtIE9iamVjdFR5cGUgfCBudWxsIGNvbnRleHRUeXBlIE9iamVjdCB0eXBlIHRhcmdldCB0eXBlcyBhbGxvd2VkIGNvbnRleHQgdHlwZVxyXG4gICAqIEBwYXJhbSBGaWVsZERlZmluaXRpb24gZGF0YSBUaGUgcmVzdWx0IGxpc3QgY29uZmlndXJhdGlvbiB0byBiZSBwZXJzaXN0ZWRcclxuICAgKiBAcGFyYW0gYm9vbGVhbiBjb21tb24gRmxhZyBlbmFibGVzIHRvIHNldCBjb25maWcgYXMgZGVmYXVsdCAvIGNvbW1vbiByZXN1bHRcclxuICAgKiBAcmV0dXJuIE9ic2VydmFibGU8YW55PlxyXG4gICAqL1xyXG4gIHNhdmVSZXN1bHRGaWVsZERlZmluaXRpb24oXHJcbiAgICB0eXBlOiBPYmplY3RUeXBlIHwgbnVsbCxcclxuICAgIGNvbnRleHRUeXBlOiBPYmplY3RUeXBlIHwgbnVsbCxcclxuICAgIGRhdGE6IEZpZWxkRGVmaW5pdGlvbixcclxuICAgIGNvbW1vbiA9IGZhbHNlXHJcbiAgKSB7XHJcbiAgICBjb25zdCBiYXNlVXJpID0gY29tbW9uXHJcbiAgICAgID8gJy91c2VyL2NvbmZpZy9jb21tb25yZXN1bHQvJ1xyXG4gICAgICA6ICcvdXNlci9jb25maWcvcmVzdWx0Lyc7XHJcbiAgICBjb25zdCB7dHlwZU5hbWUsIGNvbnRleHRUeXBlTmFtZX0gPSB0aGlzLnJlc29sdmVDb25maWdUeXBlTmFtZXMoXHJcbiAgICAgIHR5cGUsXHJcbiAgICAgIGNvbnRleHRUeXBlXHJcbiAgICApO1xyXG4gICAgY29uc3QgdXJsID0gVXRpbHMuYnVpbGRVcmkoYmFzZVVyaSArIHR5cGVOYW1lLCB7XHJcbiAgICAgIGNvbnRleHR0eXBlOiBjb250ZXh0VHlwZU5hbWVcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wb3N0KHVybCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzIGEgY29sdW1uIGRlZmluaXRpb24uXHJcbiAgICpcclxuICAgKiBAcGFyYW0gT2JqZWN0VHlwZSB8IG51bGwgdHlwZSBUaGUgb2JqZWN0IHR5cGVcclxuICAgKiBAcGFyYW0gT2JqZWN0VHlwZSB8IG51bGwgY29udGV4dFR5cGUgT2JqZWN0IHR5cGUgdGFyZ2V0IHR5cGVzIGFsbG93ZWQgY29udGV4dCB0eXBlXHJcbiAgICogQHJldHVybiBPYnNlcnZhYmxlPGFueT5cclxuICAgKi9cclxuICByZW1vdmVSZXN1bHRGaWVsZERlZmluaXRpb24oXHJcbiAgICB0eXBlOiBPYmplY3RUeXBlIHwgbnVsbCxcclxuICAgIGNvbnRleHRUeXBlOiBPYmplY3RUeXBlIHwgbnVsbFxyXG4gICkge1xyXG4gICAgY29uc3Qge3R5cGVOYW1lLCBjb250ZXh0VHlwZU5hbWV9ID0gdGhpcy5yZXNvbHZlQ29uZmlnVHlwZU5hbWVzKFxyXG4gICAgICB0eXBlLFxyXG4gICAgICBjb250ZXh0VHlwZVxyXG4gICAgKTtcclxuICAgIGNvbnN0IHVybCA9IFV0aWxzLmJ1aWxkVXJpKGAvdXNlci9jb25maWcvcmVzdWx0LyR7dHlwZU5hbWV9YCwge1xyXG4gICAgICBjb250ZXh0dHlwZTogY29udGV4dFR5cGVOYW1lXHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZGVsKHVybCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSB2YWx1ZSB0byBiZSBhZGRlZCB0byBhIGZvcm0gZWxlbWVudCBieSBleHRyYWN0aW5nIGl0IGZyb20gYVxyXG4gICAqIHNlYXJjaCBmaWx0ZXIuIFRoZSBraW5kIG9mIHZhbHVlIGRpZmZlcnMgYmFzZWQgb24gdGhlIGZvcm0gZWxlbWVudHMgdHlwZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBmaWx0ZXIgVGhlIGZpbHRlciB0byBleHRyYWN0IHZhbHVlIGZyb21cclxuICAgKiBAcGFyYW0gZm9ybUVsZW1lbnRUeXBlIEZvcm0gZWxlbWVudHMgdHlwZSAoJ1NUUklORycsICdEQVRFJywgJ0NPREVTWVNURU0nLCAuLi4pXHJcbiAgICogQHJldHVybnMgdGhlIGV4dHJhY3RlZCB2YWx1ZVxyXG4gICAqL1xyXG4gIGZpbHRlclRvRWxlbWVudFZhbHVlKGZpbHRlcjogU2VhcmNoRmlsdGVyLCBmb3JtRWxlbWVudFR5cGU6IHN0cmluZykge1xyXG4gICAgbGV0IHZhbHVlID0gdW5kZWZpbmVkO1xyXG4gICAgaWYgKGZpbHRlcikge1xyXG4gICAgICAvLyB0eXBlcyB0aGF0IHN1cHBvcnQgcmFuZ2VzXHJcbiAgICAgIGlmICgoZm9ybUVsZW1lbnRUeXBlID09PSAnTlVNQkVSJyB8fCBmb3JtRWxlbWVudFR5cGUgPT09ICdEQVRFVElNRScpICYmIGZpbHRlci5maXJzdFZhbHVlKSB7XHJcbiAgICAgICAgdmFsdWUgPSBuZXcgUmFuZ2VWYWx1ZShcclxuICAgICAgICAgIGZpbHRlci5vcGVyYXRvcixcclxuICAgICAgICAgIGZpbHRlci5maXJzdFZhbHVlLFxyXG4gICAgICAgICAgZmlsdGVyLnNlY29uZFZhbHVlXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB2YWx1ZSA9IGZpbHRlci5maXJzdFZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgdGFibGUgdmFsdWUgYnkgZXh0cmFjdGluZyB0aGUgZGF0YSBmcm9tIHRoZSBjb3JyZXNwb25kaW5nXHJcbiAgICogc2VhcmNoIGZpbHRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZmlsdGVycyBUaGUgZmlsdGVycyB0byBleHRyYWN0IHZhbHVlIGZyb21cclxuICAgKiBAcGFyYW0gdGFibGVFbGVtZW50cyB0aGUgZm9ybSBlbGVtZW50cyBvZiB0aGUgdGFibGVcclxuICAgKiBAcmV0dXJucyB0aGUgdGFibGUgdmFsdWUgZXh0cmFjdGVkIGZyb20gYWxsIGZpbHRlcnNcclxuICAgKi9cclxuICB0YWJsZUZpbHRlcnNUb0VsZW1lbnRWYWx1ZShmaWx0ZXJzOiBTZWFyY2hGaWx0ZXJbXSwgdGFibGVFbGVtZW50cyl7XHJcbiAgICBsZXQgdmFsdWUgPSB7fTtcclxuICAgIGZpbHRlcnMuZm9yRWFjaChmID0+IHtcclxuICAgICAgbGV0IGtleSA9IHRhYmxlRWxlbWVudHMuZmluZChlID0+IGUucW5hbWUgPT09IGYucHJvcGVydHkpLm5hbWU7XHJcbiAgICAgIGxldCB0eXBlID0gdGFibGVFbGVtZW50cy5maW5kKGUgPT4gZS5xbmFtZSA9PT0gZi5wcm9wZXJ0eSkudHlwZTtcclxuICAgICAgdmFsdWVba2V5XSA9IHRoaXMuZmlsdGVyVG9FbGVtZW50VmFsdWUoZiwgdHlwZSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBbdmFsdWVdO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -41,6 +41,8 @@ import localeHi from '@angular/common/locales/hi';
|
|
|
41
41
|
import localeExtraHi from '@angular/common/locales/extra/hi';
|
|
42
42
|
import localeBn from '@angular/common/locales/bn';
|
|
43
43
|
import localeExtraBn from '@angular/common/locales/extra/bn';
|
|
44
|
+
import localeEnGb from '@angular/common/locales/en-GB';
|
|
45
|
+
import localeExtraEnGb from '@angular/common/locales/extra/en-GB';
|
|
44
46
|
import * as momentImported from 'moment';
|
|
45
47
|
import { LocalStorage, StorageMap } from '@ngx-pwa/local-storage';
|
|
46
48
|
import { saveAs } from 'file-saver';
|
|
@@ -123,6 +125,7 @@ class EoxTranslateJsonLoader {
|
|
|
123
125
|
registerLocaleData(localeHi, 'hi', localeExtraHi); // Hindi
|
|
124
126
|
registerLocaleData(localeBn, 'bn', localeExtraBn); // Bengalese
|
|
125
127
|
registerLocaleData(localeDeCh, 'de-CH', localeExtraDeCh); // German (switzerland)
|
|
128
|
+
registerLocaleData(localeEnGb, 'en-GB', localeExtraEnGb); // English (Great-Britain)
|
|
126
129
|
}
|
|
127
130
|
/**
|
|
128
131
|
*
|
|
@@ -135,7 +138,7 @@ class EoxTranslateJsonLoader {
|
|
|
135
138
|
loadTranslationFile(folder, lang) {
|
|
136
139
|
return this.http.get(`${folder}${lang}.json`).pipe(catchError((e) => {
|
|
137
140
|
// ISO codes with more than 2 characters are sub-languages like de-CH.
|
|
138
|
-
// If there is no translation file for that sub-language we'll try to load
|
|
141
|
+
// If there is no translation file for that sub-language we'll try to load
|
|
139
142
|
// the file for the base language (in this case de).
|
|
140
143
|
return lang.length > 2 ? this.loadTranslationFile(folder, lang.substring(0, 2)) : of({});
|
|
141
144
|
}));
|
|
@@ -744,7 +747,7 @@ class EoUser {
|
|
|
744
747
|
if (jUser.hasimage === true) {
|
|
745
748
|
this.imageUri = '/organization/image/' + this.id;
|
|
746
749
|
}
|
|
747
|
-
this.userSettings = json['usersettings'];
|
|
750
|
+
this.userSettings = typeof json['usersettings'] === 'object' ? json['usersettings'] : {};
|
|
748
751
|
this.schema = {
|
|
749
752
|
version: jSchema.version,
|
|
750
753
|
supportedLocales: jSchema.supportedlocales
|
|
@@ -4912,13 +4915,13 @@ class SearchService {
|
|
|
4912
4915
|
return this.backend
|
|
4913
4916
|
.post('/export', queryJson, this.backend.getSearchBase(), {
|
|
4914
4917
|
observe: 'response',
|
|
4915
|
-
responseType: '
|
|
4918
|
+
responseType: 'blob'
|
|
4916
4919
|
})
|
|
4917
4920
|
.pipe(tap(res => {
|
|
4918
4921
|
const blob = new Blob([res.body], {
|
|
4919
|
-
type: 'text/
|
|
4922
|
+
type: 'text/csv;charset=utf-8'
|
|
4920
4923
|
});
|
|
4921
|
-
saveAs(blob, this.getFileNameFromHttpResponse(res));
|
|
4924
|
+
saveAs(blob, this.getFileNameFromHttpResponse(res), { autoBom: true });
|
|
4922
4925
|
}));
|
|
4923
4926
|
}
|
|
4924
4927
|
getFileNameFromHttpResponse(res) {
|