@snabcentr/client-core 2.59.0 → 2.59.2
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/esm2022/services/sc-seo.service.mjs +8 -5
- package/esm2022/user/services/sc-user.service.mjs +8 -7
- package/fesm2022/snabcentr-client-core.mjs +13 -9
- package/fesm2022/snabcentr-client-core.mjs.map +1 -1
- package/package.json +1 -1
- package/release_notes.tmp +1 -1
- package/services/sc-seo.service.d.ts +3 -1
- package/user/services/sc-user.service.d.ts +4 -4
|
@@ -74,11 +74,12 @@ export class ScSeoService {
|
|
|
74
74
|
* Устанавливает Open Graph meta-теги.
|
|
75
75
|
*
|
|
76
76
|
* @param ogTitle Open Graph заголовок.
|
|
77
|
+
* @param ogDescription Open Graph описание.
|
|
77
78
|
* @param ogImg Open Graph изображение.
|
|
78
79
|
* @param emitEventAfterSet Признак того, необходимо ли генерировать событие, после установки тегов. По умолчанию {@link true}.
|
|
79
80
|
*/
|
|
80
|
-
setPageOpenGraphMetaTags(ogTitle = this.defaultSeo.title, ogImg = this.urls.logoUrl, emitEventAfterSet = true) {
|
|
81
|
-
this.setOpenGraphMetaTags(ogTitle, `${this.urls.siteUrl}${this.router.url}`, ogImg);
|
|
81
|
+
setPageOpenGraphMetaTags(ogTitle = this.defaultSeo.title, ogDescription = this.defaultSeo.description, ogImg = this.urls.logoUrl, emitEventAfterSet = true) {
|
|
82
|
+
this.setOpenGraphMetaTags(ogTitle, ogDescription, `${this.urls.siteUrl}${this.router.url}`, ogImg);
|
|
82
83
|
if (emitEventAfterSet) {
|
|
83
84
|
this.isSetMetaTagsEventEmitter.emit();
|
|
84
85
|
}
|
|
@@ -125,7 +126,7 @@ export class ScSeoService {
|
|
|
125
126
|
this.setPageTitle(title);
|
|
126
127
|
this.setPageMetaDescription(description);
|
|
127
128
|
this.setPageMetaKeywords(keywords);
|
|
128
|
-
this.setOpenGraphMetaTags(title, `${this.urls.siteUrl}${this.router.url}`, img);
|
|
129
|
+
this.setOpenGraphMetaTags(title, description, `${this.urls.siteUrl}${this.router.url}`, img);
|
|
129
130
|
meta.forEach((tag) => {
|
|
130
131
|
this.setPageMetaByName(tag.name, tag.content);
|
|
131
132
|
});
|
|
@@ -194,13 +195,15 @@ export class ScSeoService {
|
|
|
194
195
|
* Устанавливает Open Graph meta-теги страницы для социальных сетей.
|
|
195
196
|
*
|
|
196
197
|
* @param title Заголовок страницы.
|
|
198
|
+
* @param description Описание страницы.
|
|
197
199
|
* @param url Ссылка на страницу.
|
|
198
200
|
* @param img Изображение.
|
|
199
201
|
*/
|
|
200
|
-
setOpenGraphMetaTags(title, url, img) {
|
|
202
|
+
setOpenGraphMetaTags(title, description, url, img) {
|
|
201
203
|
this.setOpenGraphMetaByProperty('og:title', title);
|
|
202
204
|
this.setOpenGraphMetaByProperty('og:url', url);
|
|
203
205
|
this.setOpenGraphMetaByProperty('og:image', img);
|
|
206
|
+
this.setOpenGraphMetaByProperty('og:description', description);
|
|
204
207
|
this.setOpenGraphMetaByProperty('og:type', 'website');
|
|
205
208
|
}
|
|
206
209
|
/**
|
|
@@ -239,4 +242,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
239
242
|
providedIn: 'root',
|
|
240
243
|
}]
|
|
241
244
|
}], ctorParameters: () => [] });
|
|
242
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NlcnZpY2VzL3NjLXNlby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHNUM7O0dBRUc7QUFJSCxNQUFNLE9BQU8sWUFBWTtJQThDckI7O09BRUc7SUFDSDtRQWhEQTs7V0FFRztRQUNhLDhCQUF5QixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXpGOztXQUVHO1FBQ2MsZUFBVSxHQUF1QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUUvRTs7V0FFRztRQUNjLFdBQU0sR0FBVyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFakQ7O1dBRUc7UUFDYyxTQUFJLEdBQVksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpEOztXQUVHO1FBQ2MsZ0JBQVcsR0FBUyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEQ7O1dBRUc7UUFDYyxpQkFBWSxHQUFVLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVyRDs7V0FFRztRQUNjLHNCQUFpQixHQUFXLFVBQVUsQ0FBQztRQUV4RDs7V0FFRztRQUNjLGFB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QUUsR0FBVztRQUNoRSxJQUFJLENBQUMsMEJBQTBCLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsMEJBQTBCLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxpQkFBaUIsQ0FBQyxJQUFZLEVBQUUsT0FBZTtRQUNuRCxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUN2RyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSywwQkFBMEIsQ0FBQyxRQUFnQixFQUFFLE9BQWU7UUFDaEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7SUFDL0csQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxZQUFZLENBQUMsSUFBWTtRQUM3QixJQUFJLENBQUMsMEJBQTBCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JELENBQUM7K0dBNVFRLFlBQVk7bUhBQVosWUFBWSxjQUZULE1BQU07OzRGQUVULFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1ldGEsIFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBTY0lTZW8gfSBmcm9tICcuLi9jYXRhbG9nL2R0by9zYy1pLXNlbyc7XG5pbXBvcnQgeyBTY0lEZWZhdWx0UGFnZU1ldGEgfSBmcm9tICcuLi9jb25maWcvc2MtaS1kZWZhdWx0LXBhZ2UtbWV0YSc7XG5pbXBvcnQgeyBTY0lVcmxzIH0gZnJvbSAnLi4vY29uZmlnL3NjLWktdXJscyc7XG5pbXBvcnQgeyBTQ19DT01QQU5ZX05BTUUgfSBmcm9tICcuLi90b2tlbnMvc2MtY29tcGFueS1uYW1lJztcbmltcG9ydCB7IFNDX0RFRkFVTFRfUEFHRV9NRVRBIH0gZnJvbSAnLi4vdG9rZW5zL3NjLWRlZmF1bHQtcGFnZS1tZXRhJztcbmltcG9ydCB7IFNDX1VSTFMgfSBmcm9tICcuLi90b2tlbnMvc2MtdXJscyc7XG5pbXBvcnQgeyBSb2JvdHNUYWdUeXBlIH0gZnJvbSAnLi90eXBlcy9yb2JvdHMtdGFnLXR5cGUnO1xuXG4vKipcbiAqINCh0LXRgNCy0LjRgSDRg9C/0YDQsNCy0LvQtdC90LjRjyBTRU8t0L/QsNGA0LDQvNC10YLRgNCw0LzQuC5cbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NTZW9TZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDRg9GB0YLQsNC90L7QstC60LggbWV0YS3RgtC10LPQvtCyINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGlzU2V0TWV0YVRhZ3NFdmVudEVtaXR0ZXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqINCU0LDQvdC90YvQtSDQviDQvNC10YLQsC3QtNCw0L3QvdGL0YUg0YHRgtGA0LDQvdC40YbRiyDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRTZW86IFNjSURlZmF1bHRQYWdlTWV0YSA9IGluamVjdChTQ19ERUZBVUxUX1BBR0VfTUVUQSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LzQsNGA0YjRgNGD0YLQuNC30LDRhtC40LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0YHRi9C70L7QuiDQv9GA0LjQu9C+0LbQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVybHM6IFNjSVVybHMgPSBpbmplY3QoU0NfVVJMUyk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0YPRgdGC0LDQvdC+0LLQutC4INC80LXRgtCw0LTQsNC90L3Ri9GFINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXRhU2VydmljZTogTWV0YSA9IGluamVjdChNZXRhKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDRg9C/0YDQsNCy0LvQtdC90LjRjyDQt9Cw0LPQvtC70L7QstC60L7QvCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGl0bGVTZXJ2aWNlOiBUaXRsZSA9IGluamVjdChUaXRsZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10LvQtdC60YLQvtGAINCz0YDRg9C/0L/RiyDQtNC70Y8g0YPRgdGC0LDQvdCw0LLQu9C40LLQsNC10LzRi9GFINC80LXRgtCw0YLQtdCz0L7Qsi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGFHcm91cFNlbGVjdG9yOiBzdHJpbmcgPSAnc2VvLXRhZ3MnO1xuXG4gICAgLyoqXG4gICAgICog0J7QsdGK0LXQutGCIHtAbGluayBEb2N1bWVudH0sINC/0YDQtdC00L7RgdGC0LDQstC70Y/RjtGJ0LjQuSDQtNC+0YHRgtGD0L8g0LogRE9NINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICAgLyoqXG4gICAgICog0J3QsNC30LLQsNC90LjQtSDQutC+0LzQv9Cw0L3QuNC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcGFueU5hbWU6IHN0cmluZyA9IGluamVjdChTQ19DT01QQU5ZX05BTUUpO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY1Nlb1NlcnZpY2V9LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5zZXRTaGFyZVR5cGUoJ3dlYnNpdGUnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBtZXRhLdGC0LXQs9C4LlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiDQntC/0LjRgdCw0L3QuNC1INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIGtleXdvcmRzINCa0LvRjtGH0LXQstGL0LUg0YHQu9C+0LLQsCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBlbWl0RXZlbnRBZnRlclNldCDQn9GA0LjQt9C90LDQuiDRgtC+0LPQviwg0L3QtdC+0LHRhdC+0LTQuNC80L4g0LvQuCDQs9C10L3QtdGA0LjRgNC+0LLQsNGC0Ywg0YHQvtCx0YvRgtC40LUsINC/0L7RgdC70LUg0YPRgdGC0LDQvdC+0LLQutC4INGC0LXQs9C+0LIuINCf0L4g0YPQvNC+0LvRh9Cw0L3QuNGOIHtAbGluayB0cnVlfS5cbiAgICAgKiBAcGFyYW0gcm9ib3RzINCh0L/QuNGB0L7QuiByb2JvdHMg0YLQtdCz0L7QsiDQtNC70Y8g0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0UGFnZU1ldGFUYWdzKFxuICAgICAgICB0aXRsZTogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLnRpdGxlLFxuICAgICAgICBkZXNjcmlwdGlvbjogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLmRlc2NyaXB0aW9uLFxuICAgICAgICBrZXl3b3Jkczogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLmtleXdvcmRzLFxuICAgICAgICBlbWl0RXZlbnRBZnRlclNldDogYm9vbGVhbiA9IHRydWUsXG4gICAgICAgIHJvYm90czogUm9ib3RzVGFnVHlwZVtdID0gWydpbmRleCcsICdmb2xsb3cnXVxuICAgICk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFBhZ2VUaXRsZSh0aXRsZSk7XG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFEZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7XG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFLZXl3b3JkcyhrZXl3b3Jkcyk7XG5cbiAgICAgICAgdGhpcy5zZXRQYWdlTWV0YVJvYm90cyhyb2JvdHMpO1xuXG4gICAgICAgIGlmIChlbWl0RXZlbnRBZnRlclNldCkge1xuICAgICAgICAgICAgdGhpcy5pc1NldE1ldGFUYWdzRXZlbnRFbWl0dGVyLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIE9wZW4gR3JhcGggbWV0YS3RgtC10LPQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvZ1RpdGxlIE9wZW4gR3JhcGgg0LfQsNCz0L7Qu9C+0LLQvtC6LlxuICAgICAqIEBwYXJhbSBvZ0ltZyBPcGVuIEdyYXBoINC40LfQvtCx0YDQsNC20LXQvdC40LUuXG4gICAgICogQHBhcmFtIGVtaXRFdmVudEFmdGVyU2V0INCf0YDQuNC30L3QsNC6INGC0L7Qs9C+LCDQvdC10L7QsdGF0L7QtNC40LzQviDQu9C4INCz0LXQvdC10YDQuNGA0L7QstCw0YLRjCDRgdC+0LHRi9GC0LjQtSwg0L/QvtGB0LvQtSDRg9GB0YLQsNC90L7QstC60Lgg0YLQtdCz0L7Qsi4g0J/QviDRg9C80L7Qu9GH0LDQvdC40Y4ge0BsaW5rIHRydWV9LlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRQYWdlT3BlbkdyYXBoTWV0YVRhZ3Mob2dUaXRsZTogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLnRpdGxlLCBvZ0ltZzogc3RyaW5nID0gdGhpcy51cmxzLmxvZ29VcmwsIGVtaXRFdmVudEFmdGVyU2V0OiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFUYWdzKG9nVGl0bGUsIGAke3RoaXMudXJscy5zaXRlVXJsfSR7dGhpcy5yb3V0ZXIudXJsfWAsIG9nSW1nKTtcblxuICAgICAgICBpZiAoZW1pdEV2ZW50QWZ0ZXJTZXQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTZXRNZXRhVGFnc0V2ZW50RW1pdHRlci5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQstGB0LUgbWV0YS3RgtC10LPQuCDQuNC3INC/0YDQuNGI0LXQtNGI0LXQs9C+INC40YHRgtC+0YfQvdC40LrQsC4g0JXRgdC70Lgg0LrQsNC60L7Qs9C+LdGC0L4g0YLQtdCz0LAg0L3QtdGCLCDQsdGD0LTQtdGCINGD0YHRgtCw0L3QvtCy0LvQtdC90L4g0LfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByZXNvdXJjZSDQmNGB0YLQvtGH0L3QuNC6IG1ldGEgLSDRgtC10LPQvtCyLlxuICAgICAqIEBwYXJhbSBpbWcg0JjQt9C+0LHRgNCw0LbQtdC90LjQtS4g0JXRgdC70Lgg0L3QtSDQv9GA0LjRiNC70L4sINGC0L4g0LHRg9C00LXRgiDRg9GB0YLQsNC90L7QstC70LXQvdC+INC30L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4uXG4gICAgICogQHBhcmFtIHJvYm90cyDQodC/0LjRgdC+0Logcm9ib3RzINGC0LXQs9C+0LIg0LTQu9GPINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHVibGljIHNldE1ldGFUYWdzRnJvbVJlc291cmNlKHJlc291cmNlPzogU2NJU2VvLCBpbWc6IHN0cmluZyA9IHRoaXMudXJscy5sb2dvVXJsLCByb2JvdHM6IFJvYm90c1RhZ1R5cGVbXSA9IFsnaW5kZXgnLCAnZm9sbG93J10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRBbGxQYWdlTWV0YVRhZ3MocmVzb3VyY2U/LnRpdGxlLCByZXNvdXJjZT8uZGVzY3JpcHRpb24sIHJlc291cmNlPy5rZXl3b3JkcywgaW1nLCByZXNvdXJjZT8ubWV0YSwgcm9ib3RzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQstGB0LUgbWV0YS3RgtC10LPQuCDRgdGC0YDQsNC90LjRhtGLINGB0L4g0LfQvdCw0YfQtdC90LjQtdC8INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLCDQstC90LXQtNGA0Y/RjyDRgtGD0LTQsCDQt9Cw0LPQvtC70L7QstC+0LosINC10YHQu9C4INC+0L0g0L/QtdGA0LXQtNCw0L0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGl0bGUg0JfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIHJvYm90cyDQodC/0LjRgdC+0Logcm9ib3RzINGC0LXQs9C+0LIg0LTQu9GPINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHVibGljIHNldERlZmF1bHRBbGxQYWdlTWV0YVRhZ3ModGl0bGU6IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby50aXRsZSwgcm9ib3RzOiBSb2JvdHNUYWdUeXBlW10gPSBbJ2luZGV4JywgJ2ZvbGxvdyddKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0QWxsUGFnZU1ldGFUYWdzKGAke3RpdGxlfSAtICR7dGhpcy5jb21wYW55TmFtZX1gLCBgJHt0aXRsZX0sICR7dGhpcy5kZWZhdWx0U2VvLmRlc2NyaXB0aW9ufWAsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBbXSwgcm9ib3RzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQstGB0LUgbWV0YS3RgtC10LPQuCDRgdGC0YDQsNC90LjRhtGLINGB0L4g0LfQvdCw0YfQtdC90LjQtdC8INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLCDQstC90LXQtNGA0Y/RjyDRgtGD0LTQsCDQt9Cw0LPQvtC70L7QstC+0LosINC10YHQu9C4INC+0L0g0L/QtdGA0LXQtNCw0L0uINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINC30L3QsNGH0LXQvdC40LUgXCLQvdC1INC40L3QtNC10LrRgdC40YDQvtCy0LDRgtGMXCIg0LTQu9GPINC/0L7QuNGB0LrQvtCy0YvRhSDRgNC+0LHQvtGC0L7Qsi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0aXRsZSDQl9Cw0LPQvtC70L7QstC+0Log0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0Tm9JbmRleERlZmF1bHRBbGxQYWdlTWV0YVRhZ3ModGl0bGU6IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby50aXRsZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldEFsbFBhZ2VNZXRhVGFncyhgJHt0aXRsZX0gLSAke3RoaXMuY29tcGFueU5hbWV9YCwgYCR7dGl0bGV9LCAke3RoaXMuZGVmYXVsdFNlby5kZXNjcmlwdGlvbn1gLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgW10sIFsnbm9pbmRleCcsICdub2ZvbGxvdycsICdub2FyY2hpdmUnXSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LLRgdC1IG1ldGEt0YLQtdCz0Lgg0YHRgtGA0LDQvdC40YbRiy4g0JXRgdC70Lgg0LrQsNC60L7QuS3Qu9C40LHQviDQuNC3INC/0LDRgNCw0LzQtdGC0YDQvtCyINC90LUg0YPQutCw0LfQsNC9LCDQtNC70Y8g0L3QtdCz0L4g0YPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YLRgdGPINC30L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGl0bGUg0JfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIGRlc2NyaXB0aW9uINCe0L/QuNGB0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0ga2V5d29yZHMg0JrQu9GO0YfQtdCy0YvQtSDRgdC70L7QstCwINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIGltZyDQmNC30L7QsdGA0LDQttC10L3QuNC1LlxuICAgICAqIEBwYXJhbSBtZXRhINCc0LDRgdGB0LjQsiDQtNC+0L/QvtC70L3QuNGC0LXQu9GM0L3Ri9GFINC30L3QsNGH0LXQvdC40Lkg0LzQtdGC0LDRgtC10LPQvtCyLlxuICAgICAqIEBwYXJhbSByb2JvdHMg0KHQv9C40YHQvtC6IHJvYm90cyDRgtC10LPQvtCyINC00LvRjyDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRBbGxQYWdlTWV0YVRhZ3MoXG4gICAgICAgIHRpdGxlOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8udGl0bGUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8uZGVzY3JpcHRpb24sXG4gICAgICAgIGtleXdvcmRzOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8ua2V5d29yZHMsXG4gICAgICAgIGltZzogc3RyaW5nID0gdGhpcy51cmxzLmxvZ29VcmwsXG4gICAgICAgIG1ldGE6IFNjSVNlb1snbWV0YSddID0gW10sXG4gICAgICAgIHJvYm90czogUm9ib3RzVGFnVHlwZVtdID0gWydpbmRleCcsICdmb2xsb3cnXVxuICAgICk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZU1ldGFUYWdzKCk7XG4gICAgICAgIHRoaXMuc2V0UGFnZVRpdGxlKHRpdGxlKTtcbiAgICAgICAgdGhpcy5zZXRQYWdlTWV0YURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKTtcbiAgICAgICAgdGhpcy5zZXRQYWdlTWV0YUtleXdvcmRzKGtleXdvcmRzKTtcbiAgICAgICAgdGhpcy5zZXRPcGVuR3JhcGhNZXRhVGFncyh0aXRsZSwgYCR7dGhpcy51cmxzLnNpdGVVcmx9JHt0aGlzLnJvdXRlci51cmx9YCwgaW1nKTtcbiAgICAgICAgbWV0YS5mb3JFYWNoKCh0YWcpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0UGFnZU1ldGFCeU5hbWUodGFnLm5hbWUsIHRhZy5jb250ZW50KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFSb2JvdHMocm9ib3RzKTtcblxuICAgICAgICB0aGlzLmlzU2V0TWV0YVRhZ3NFdmVudEVtaXR0ZXIuZW1pdCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIG1ldGEt0YLQtdCzIHJvYm90cyDQtNC70Y8g0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByb2JvdHMg0KHQv9C40YHQvtC6IHJvYm90cyDRgtC10LPQvtCyINC00LvRjyDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRQYWdlTWV0YVJvYm90cyhyb2JvdHM6IFJvYm90c1RhZ1R5cGVbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFBhZ2VNZXRhQnlOYW1lKCdyb2JvdHMnLCByb2JvdHMuam9pbignLCAnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQtNCw0LvRj9C10YIg0LLRgdC1INGD0YHRgtCw0L3QvtCy0LvQtdC90L3Ri9C1IG1ldGEt0YLQtdCz0LguXG4gICAgICovXG4gICAgcHVibGljIHJlbW92ZU1ldGFUYWdzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0YWdzID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxNZXRhRWxlbWVudD4oYG1ldGFbZGF0YS1ncm91cD1cIiR7dGhpcy5kYXRhR3JvdXBTZWxlY3Rvcn1cIl1gKTtcblxuICAgICAgICB0YWdzLmZvckVhY2goKHRhZykgPT4ge1xuICAgICAgICAgICAgdGhpcy5tZXRhU2VydmljZS5yZW1vdmVUYWdFbGVtZW50KHRhZyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0LPQtdC90LXRgNC40YDQvtCy0LDQvdC90YvQuSBTRU8tcmVzb3VyY2Ug0YEg0YPQutCw0LfQsNC90L3Ri9C80Lgg0L/QsNGA0LDQvNC10YLRgNCw0LzQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzZW8g0JTQsNC90L3Ri9C1IFNFTyDRgNC10YHRg9GA0YHQsC5cbiAgICAgKiBAcGFyYW0gZGVmYXVsdFRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLINC40YHQv9C+0LvRjNC30YPQtdC80YvQuSDQsiDRgdC70YPRh9Cw0LUg0L7RgtGB0YPRgtGB0YLQstC40Y8g0LfQsNCz0L7Qu9C+0LLQutCwINCyIFNFTy3RgNC10YHRg9GA0YHQtS5cbiAgICAgKiBAcGFyYW0gZGVmYXVsdERlc2NyaXB0aW9uINCe0L/QuNGB0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiyDQuNGB0L/QvtC70YzQt9GD0LXQvNC+0LUg0LIg0YHQu9GD0YfQsNC1INC+0YLRgdGD0YLRgdGC0LLQuNGPINC+0L/QuNGB0LDQvdC40Y8g0LIgU0VPLdGA0LXRgdGD0YDRgdC1LlxuICAgICAqIEBwYXJhbSBkZWZhdWx0S2V5V29yZHMg0JrQu9GO0YfQtdCy0YvQtSDRgdC70L7QstCwINGB0YLRgNCw0L3QuNGG0Ysg0LjRgdC/0L7Qu9GM0LfRg9C10LzRi9C1INCyINGB0LvRg9GH0LDQtSDQvtGC0YHRg9GC0YHRgtCy0LjRjyDQutC70Y7Rh9C10LLRi9GFINGB0LvQvtCyINCyIFNFTy3RgNC10YHRg9GA0YHQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0R2VuZXJhdGVTZW9SZXNvdXJjZShcbiAgICAgICAgc2VvOiBTY0lTZW8gfCB1bmRlZmluZWQsXG4gICAgICAgIGRlZmF1bHRUaXRsZTogc3RyaW5nLFxuICAgICAgICBkZWZhdWx0RGVzY3JpcHRpb246IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby5kZXNjcmlwdGlvbixcbiAgICAgICAgZGVmYXVsdEtleVdvcmRzOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8ua2V5d29yZHNcbiAgICApOiBTY0lTZW8ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGl0bGU6IHNlbz8udGl0bGUgPz8gZGVmYXVsdFRpdGxlLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHNlbz8uZGVzY3JpcHRpb24gPz8gZGVmYXVsdERlc2NyaXB0aW9uLFxuICAgICAgICAgICAga2V5d29yZHM6IHNlbz8ua2V5d29yZHMgPz8gZGVmYXVsdEtleVdvcmRzLFxuICAgICAgICAgICAgbWV0YTogc2VvPy5tZXRhLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIHRpdGxlLdC30LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBhcHBlbmREZWZhdWx0VGl0bGUg0KTQu9Cw0LMg0L3QtdC+0LHRhdC+0LTQuNC80L7RgdGC0Lgg0LTQvtCx0LDQstC40YLRjCDQt9Cw0LPQvtC70L7QstC+0Log0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4g0LIg0LrQvtC90LXRhiDQt9Cw0LPQvtC70L7QstC60LAg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFBhZ2VUaXRsZSh0aXRsZTogc3RyaW5nLCBhcHBlbmREZWZhdWx0VGl0bGU6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRUaXRsZSh0aXRsZSArIChhcHBlbmREZWZhdWx0VGl0bGUgPyBgIC0gJHt0aGlzLmRlZmF1bHRTZW8udGl0bGV9YCA6ICcnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgbWV0YS3QvtC/0LjRgdCw0L3QuNC1INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gTWV0YS3QvtC/0LjRgdCw0L3QuNC1INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRQYWdlTWV0YURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRQYWdlTWV0YUJ5TmFtZSgnZGVzY3JpcHRpb24nLCBkZXNjcmlwdGlvbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgbWV0YS3QutC70Y7Rh9C10LLRi9C1INGB0LvQvtCy0LAg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBrZXl3b3JkcyBNZXRhLdC60LvRjtGH0LXQstGL0LUg0YHQu9C+0LLQsCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0UGFnZU1ldGFLZXl3b3JkcyhrZXl3b3Jkczogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFCeU5hbWUoJ2tleXdvcmRzJywga2V5d29yZHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIE9wZW4gR3JhcGggbWV0YS3RgtC10LPQuCDRgdGC0YDQsNC90LjRhtGLINC00LvRjyDRgdC+0YbQuNCw0LvRjNC90YvRhSDRgdC10YLQtdC5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSB1cmwg0KHRgdGL0LvQutCwINC90LAg0YHRgtGA0LDQvdC40YbRgy5cbiAgICAgKiBAcGFyYW0gaW1nINCY0LfQvtCx0YDQsNC20LXQvdC40LUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRPcGVuR3JhcGhNZXRhVGFncyh0aXRsZTogc3RyaW5nLCB1cmw6IHN0cmluZywgaW1nOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRPcGVuR3JhcGhNZXRhQnlQcm9wZXJ0eSgnb2c6dGl0bGUnLCB0aXRsZSk7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YUJ5UHJvcGVydHkoJ29nOnVybCcsIHVybCk7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YUJ5UHJvcGVydHkoJ29nOmltYWdlJywgaW1nKTtcbiAgICAgICAgdGhpcy5zZXRPcGVuR3JhcGhNZXRhQnlQcm9wZXJ0eSgnb2c6dHlwZScsICd3ZWJzaXRlJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgbWV0YS3RgtC10LMg0YHRgtGA0LDQvdC40YbRiyDRgSDRg9C60LDQt9Cw0L3QvdGL0Lwg0LjQvNC10L3QtdC8LlxuICAgICAqINCR0YPQtNC10YIg0YHQvtC30LTQsNC9INC40LvQuCDQvtCx0L3QvtCy0LvRkdC9INC30LDQs9C+0LvQvtCy0L7QuiDQstC40LTQsCBgPG1ldGEgbmFtZT1cIntuYW1lfVwiIGNvbnRlbnQ9XCJ7Y29udGVudH1cIiAvPmBcbiAgICAgKlxuICAgICAqIEBwYXJhbSBuYW1lINCd0LDQt9Cy0LDQvdC40LUg0LfQsNCz0L7Qu9C+0LLQutCwLlxuICAgICAqIEBwYXJhbSBjb250ZW50INCh0L7QtNC10YDQttC40LzQvtC1INC30LDQs9C+0LvQvtCy0LrQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFBhZ2VNZXRhQnlOYW1lKG5hbWU6IHN0cmluZywgY29udGVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWV0YVNlcnZpY2UudXBkYXRlVGFnKHsgbmFtZTogbmFtZSwgY29udGVudDogY29udGVudCwgJ2RhdGEtZ3JvdXAnOiB0aGlzLmRhdGFHcm91cFNlbGVjdG9yIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIE9wZW4gR3JhcGggbWV0YS3RgtC10LMg0L/QviDRgdCy0L7QudGB0YLQstGDINCw0YLRgNC40LHRg9GC0LAgcHJvcGVydHkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcGVydHkg0KHQstC+0LnRgdGC0LLQviDQsNGC0YDQuNCx0YPRgtCwLlxuICAgICAqIEBwYXJhbSBjb250ZW50INCh0L7QtNC10YDQttC40LzQvtC1INGC0LXQs9CwLlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0T3BlbkdyYXBoTWV0YUJ5UHJvcGVydHkocHJvcGVydHk6IHN0cmluZywgY29udGVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWV0YVNlcnZpY2UudXBkYXRlVGFnKHsgcHJvcGVydHk6IHByb3BlcnR5LCBjb250ZW50OiBjb250ZW50LCAnZGF0YS1ncm91cCc6IHRoaXMuZGF0YUdyb3VwU2VsZWN0b3IgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgT3BlbiBHcmFwaCDQvNC10YLQsC3RgtC10LMg0YLQuNC/0LAg0L7QsdGK0LXQutGC0LAuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdHlwZSDQotC40L8g0L7QsdGK0LXQutGC0LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRTaGFyZVR5cGUodHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YUJ5UHJvcGVydHkoJ29nOnR5cGUnLCB0eXBlKTtcbiAgICB9XG59XG4iXX0=
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NlcnZpY2VzL3NjLXNlby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHNUM7O0dBRUc7QUFJSCxNQUFNLE9BQU8sWUFBWTtJQThDckI7O09BRUc7SUFDSDtRQWhEQTs7V0FFRztRQUNhLDhCQUF5QixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXpGOztXQUVHO1FBQ2MsZUFBVSxHQUF1QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUUvRTs7V0FFRztRQUNjLFdBQU0sR0FBVyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFakQ7O1dBRUc7UUFDYyxTQUFJLEdBQVksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpEOztXQUVHO1FBQ2MsZ0JBQVcsR0FBUyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEQ7O1dBRUc7UUFDYyxpQkFBWSxHQUFVLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVyRDs7V0FFRztRQUNjLHNCQUFpQixHQUFXLFVBQVUsQ0FBQztRQUV4RDs7V0FFRztRQUNjLGFB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QU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1ldGEsIFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBTY0lTZW8gfSBmcm9tICcuLi9jYXRhbG9nL2R0by9zYy1pLXNlbyc7XG5pbXBvcnQgeyBTY0lEZWZhdWx0UGFnZU1ldGEgfSBmcm9tICcuLi9jb25maWcvc2MtaS1kZWZhdWx0LXBhZ2UtbWV0YSc7XG5pbXBvcnQgeyBTY0lVcmxzIH0gZnJvbSAnLi4vY29uZmlnL3NjLWktdXJscyc7XG5pbXBvcnQgeyBTQ19DT01QQU5ZX05BTUUgfSBmcm9tICcuLi90b2tlbnMvc2MtY29tcGFueS1uYW1lJztcbmltcG9ydCB7IFNDX0RFRkFVTFRfUEFHRV9NRVRBIH0gZnJvbSAnLi4vdG9rZW5zL3NjLWRlZmF1bHQtcGFnZS1tZXRhJztcbmltcG9ydCB7IFNDX1VSTFMgfSBmcm9tICcuLi90b2tlbnMvc2MtdXJscyc7XG5pbXBvcnQgeyBSb2JvdHNUYWdUeXBlIH0gZnJvbSAnLi90eXBlcy9yb2JvdHMtdGFnLXR5cGUnO1xuXG4vKipcbiAqINCh0LXRgNCy0LjRgSDRg9C/0YDQsNCy0LvQtdC90LjRjyBTRU8t0L/QsNGA0LDQvNC10YLRgNCw0LzQuC5cbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NTZW9TZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDRg9GB0YLQsNC90L7QstC60LggbWV0YS3RgtC10LPQvtCyINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGlzU2V0TWV0YVRhZ3NFdmVudEVtaXR0ZXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqINCU0LDQvdC90YvQtSDQviDQvNC10YLQsC3QtNCw0L3QvdGL0YUg0YHRgtGA0LDQvdC40YbRiyDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRTZW86IFNjSURlZmF1bHRQYWdlTWV0YSA9IGluamVjdChTQ19ERUZBVUxUX1BBR0VfTUVUQSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LzQsNGA0YjRgNGD0YLQuNC30LDRhtC40LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0YHRi9C70L7QuiDQv9GA0LjQu9C+0LbQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVybHM6IFNjSVVybHMgPSBpbmplY3QoU0NfVVJMUyk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0YPRgdGC0LDQvdC+0LLQutC4INC80LXRgtCw0LTQsNC90L3Ri9GFINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXRhU2VydmljZTogTWV0YSA9IGluamVjdChNZXRhKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDRg9C/0YDQsNCy0LvQtdC90LjRjyDQt9Cw0LPQvtC70L7QstC60L7QvCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGl0bGVTZXJ2aWNlOiBUaXRsZSA9IGluamVjdChUaXRsZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10LvQtdC60YLQvtGAINCz0YDRg9C/0L/RiyDQtNC70Y8g0YPRgdGC0LDQvdCw0LLQu9C40LLQsNC10LzRi9GFINC80LXRgtCw0YLQtdCz0L7Qsi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGFHcm91cFNlbGVjdG9yOiBzdHJpbmcgPSAnc2VvLXRhZ3MnO1xuXG4gICAgLyoqXG4gICAgICog0J7QsdGK0LXQutGCIHtAbGluayBEb2N1bWVudH0sINC/0YDQtdC00L7RgdGC0LDQstC70Y/RjtGJ0LjQuSDQtNC+0YHRgtGD0L8g0LogRE9NINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICAgLyoqXG4gICAgICog0J3QsNC30LLQsNC90LjQtSDQutC+0LzQv9Cw0L3QuNC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcGFueU5hbWU6IHN0cmluZyA9IGluamVjdChTQ19DT01QQU5ZX05BTUUpO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY1Nlb1NlcnZpY2V9LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5zZXRTaGFyZVR5cGUoJ3dlYnNpdGUnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBtZXRhLdGC0LXQs9C4LlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiDQntC/0LjRgdCw0L3QuNC1INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIGtleXdvcmRzINCa0LvRjtGH0LXQstGL0LUg0YHQu9C+0LLQsCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBlbWl0RXZlbnRBZnRlclNldCDQn9GA0LjQt9C90LDQuiDRgtC+0LPQviwg0L3QtdC+0LHRhdC+0LTQuNC80L4g0LvQuCDQs9C10L3QtdGA0LjRgNC+0LLQsNGC0Ywg0YHQvtCx0YvRgtC40LUsINC/0L7RgdC70LUg0YPRgdGC0LDQvdC+0LLQutC4INGC0LXQs9C+0LIuINCf0L4g0YPQvNC+0LvRh9Cw0L3QuNGOIHtAbGluayB0cnVlfS5cbiAgICAgKiBAcGFyYW0gcm9ib3RzINCh0L/QuNGB0L7QuiByb2JvdHMg0YLQtdCz0L7QsiDQtNC70Y8g0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0UGFnZU1ldGFUYWdzKFxuICAgICAgICB0aXRsZTogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLnRpdGxlLFxuICAgICAgICBkZXNjcmlwdGlvbjogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLmRlc2NyaXB0aW9uLFxuICAgICAgICBrZXl3b3Jkczogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLmtleXdvcmRzLFxuICAgICAgICBlbWl0RXZlbnRBZnRlclNldDogYm9vbGVhbiA9IHRydWUsXG4gICAgICAgIHJvYm90czogUm9ib3RzVGFnVHlwZVtdID0gWydpbmRleCcsICdmb2xsb3cnXVxuICAgICk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFBhZ2VUaXRsZSh0aXRsZSk7XG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFEZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7XG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFLZXl3b3JkcyhrZXl3b3Jkcyk7XG5cbiAgICAgICAgdGhpcy5zZXRQYWdlTWV0YVJvYm90cyhyb2JvdHMpO1xuXG4gICAgICAgIGlmIChlbWl0RXZlbnRBZnRlclNldCkge1xuICAgICAgICAgICAgdGhpcy5pc1NldE1ldGFUYWdzRXZlbnRFbWl0dGVyLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIE9wZW4gR3JhcGggbWV0YS3RgtC10LPQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvZ1RpdGxlIE9wZW4gR3JhcGgg0LfQsNCz0L7Qu9C+0LLQvtC6LlxuICAgICAqIEBwYXJhbSBvZ0Rlc2NyaXB0aW9uIE9wZW4gR3JhcGgg0L7Qv9C40YHQsNC90LjQtS5cbiAgICAgKiBAcGFyYW0gb2dJbWcgT3BlbiBHcmFwaCDQuNC30L7QsdGA0LDQttC10L3QuNC1LlxuICAgICAqIEBwYXJhbSBlbWl0RXZlbnRBZnRlclNldCDQn9GA0LjQt9C90LDQuiDRgtC+0LPQviwg0L3QtdC+0LHRhdC+0LTQuNC80L4g0LvQuCDQs9C10L3QtdGA0LjRgNC+0LLQsNGC0Ywg0YHQvtCx0YvRgtC40LUsINC/0L7RgdC70LUg0YPRgdGC0LDQvdC+0LLQutC4INGC0LXQs9C+0LIuINCf0L4g0YPQvNC+0LvRh9Cw0L3QuNGOIHtAbGluayB0cnVlfS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0UGFnZU9wZW5HcmFwaE1ldGFUYWdzKFxuICAgICAgICBvZ1RpdGxlOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8udGl0bGUsXG4gICAgICAgIG9nRGVzY3JpcHRpb246IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby5kZXNjcmlwdGlvbixcbiAgICAgICAgb2dJbWc6IHN0cmluZyA9IHRoaXMudXJscy5sb2dvVXJsLFxuICAgICAgICBlbWl0RXZlbnRBZnRlclNldDogYm9vbGVhbiA9IHRydWVcbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRPcGVuR3JhcGhNZXRhVGFncyhvZ1RpdGxlLCBvZ0Rlc2NyaXB0aW9uLCBgJHt0aGlzLnVybHMuc2l0ZVVybH0ke3RoaXMucm91dGVyLnVybH1gLCBvZ0ltZyk7XG5cbiAgICAgICAgaWYgKGVtaXRFdmVudEFmdGVyU2V0KSB7XG4gICAgICAgICAgICB0aGlzLmlzU2V0TWV0YVRhZ3NFdmVudEVtaXR0ZXIuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LLRgdC1IG1ldGEt0YLQtdCz0Lgg0LjQtyDQv9GA0LjRiNC10LTRiNC10LPQviDQuNGB0YLQvtGH0L3QuNC60LAuINCV0YHQu9C4INC60LDQutC+0LPQvi3RgtC+INGC0LXQs9CwINC90LXRgiwg0LHRg9C00LXRgiDRg9GB0YLQsNC90L7QstC70LXQvdC+INC30L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVzb3VyY2Ug0JjRgdGC0L7Rh9C90LjQuiBtZXRhIC0g0YLQtdCz0L7Qsi5cbiAgICAgKiBAcGFyYW0gaW1nINCY0LfQvtCx0YDQsNC20LXQvdC40LUuINCV0YHQu9C4INC90LUg0L/RgNC40YjQu9C+LCDRgtC+INCx0YPQtNC10YIg0YPRgdGC0LDQvdC+0LLQu9C10L3QviDQt9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICAgICAqIEBwYXJhbSByb2JvdHMg0KHQv9C40YHQvtC6IHJvYm90cyDRgtC10LPQvtCyINC00LvRjyDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRNZXRhVGFnc0Zyb21SZXNvdXJjZShyZXNvdXJjZT86IFNjSVNlbywgaW1nOiBzdHJpbmcgPSB0aGlzLnVybHMubG9nb1VybCwgcm9ib3RzOiBSb2JvdHNUYWdUeXBlW10gPSBbJ2luZGV4JywgJ2ZvbGxvdyddKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0QWxsUGFnZU1ldGFUYWdzKHJlc291cmNlPy50aXRsZSwgcmVzb3VyY2U/LmRlc2NyaXB0aW9uLCByZXNvdXJjZT8ua2V5d29yZHMsIGltZywgcmVzb3VyY2U/Lm1ldGEsIHJvYm90cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LLRgdC1IG1ldGEt0YLQtdCz0Lgg0YHRgtGA0LDQvdC40YbRiyDRgdC+INC30L3QsNGH0LXQvdC40LXQvCDQv9C+INGD0LzQvtC70YfQsNC90LjRjiwg0LLQvdC10LTRgNGP0Y8g0YLRg9C00LAg0LfQsNCz0L7Qu9C+0LLQvtC6LCDQtdGB0LvQuCDQvtC9INC/0LXRgNC10LTQsNC9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSByb2JvdHMg0KHQv9C40YHQvtC6IHJvYm90cyDRgtC10LPQvtCyINC00LvRjyDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXREZWZhdWx0QWxsUGFnZU1ldGFUYWdzKHRpdGxlOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8udGl0bGUsIHJvYm90czogUm9ib3RzVGFnVHlwZVtdID0gWydpbmRleCcsICdmb2xsb3cnXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldEFsbFBhZ2VNZXRhVGFncyhgJHt0aXRsZX0gLSAke3RoaXMuY29tcGFueU5hbWV9YCwgYCR7dGl0bGV9LCAke3RoaXMuZGVmYXVsdFNlby5kZXNjcmlwdGlvbn1gLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgW10sIHJvYm90cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LLRgdC1IG1ldGEt0YLQtdCz0Lgg0YHRgtGA0LDQvdC40YbRiyDRgdC+INC30L3QsNGH0LXQvdC40LXQvCDQv9C+INGD0LzQvtC70YfQsNC90LjRjiwg0LLQvdC10LTRgNGP0Y8g0YLRg9C00LAg0LfQsNCz0L7Qu9C+0LLQvtC6LCDQtdGB0LvQuCDQvtC9INC/0LXRgNC10LTQsNC9LiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQt9C90LDRh9C10L3QuNC1IFwi0L3QtSDQuNC90LTQtdC60YHQuNGA0L7QstCw0YLRjFwiINC00LvRjyDQv9C+0LjRgdC60L7QstGL0YUg0YDQvtCx0L7RgtC+0LIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGl0bGUg0JfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHVibGljIHNldE5vSW5kZXhEZWZhdWx0QWxsUGFnZU1ldGFUYWdzKHRpdGxlOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8udGl0bGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRBbGxQYWdlTWV0YVRhZ3MoYCR7dGl0bGV9IC0gJHt0aGlzLmNvbXBhbnlOYW1lfWAsIGAke3RpdGxlfSwgJHt0aGlzLmRlZmF1bHRTZW8uZGVzY3JpcHRpb259YCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIFtdLCBbJ25vaW5kZXgnLCAnbm9mb2xsb3cnLCAnbm9hcmNoaXZlJ10pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINCy0YHQtSBtZXRhLdGC0LXQs9C4INGB0YLRgNCw0L3QuNGG0YsuINCV0YHQu9C4INC60LDQutC+0Lkt0LvQuNCx0L4g0LjQtyDQv9Cw0YDQsNC80LXRgtGA0L7QsiDQvdC1INGD0LrQsNC30LDQvSwg0LTQu9GPINC90LXQs9C+INGD0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGC0YHRjyDQt9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiDQntC/0LjRgdCw0L3QuNC1INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIGtleXdvcmRzINCa0LvRjtGH0LXQstGL0LUg0YHQu9C+0LLQsCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBpbWcg0JjQt9C+0LHRgNCw0LbQtdC90LjQtS5cbiAgICAgKiBAcGFyYW0gbWV0YSDQnNCw0YHRgdC40LIg0LTQvtC/0L7Qu9C90LjRgtC10LvRjNC90YvRhSDQt9C90LDRh9C10L3QuNC5INC80LXRgtCw0YLQtdCz0L7Qsi5cbiAgICAgKiBAcGFyYW0gcm9ib3RzINCh0L/QuNGB0L7QuiByb2JvdHMg0YLQtdCz0L7QsiDQtNC70Y8g0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0QWxsUGFnZU1ldGFUYWdzKFxuICAgICAgICB0aXRsZTogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLnRpdGxlLFxuICAgICAgICBkZXNjcmlwdGlvbjogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLmRlc2NyaXB0aW9uLFxuICAgICAgICBrZXl3b3Jkczogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLmtleXdvcmRzLFxuICAgICAgICBpbWc6IHN0cmluZyA9IHRoaXMudXJscy5sb2dvVXJsLFxuICAgICAgICBtZXRhOiBTY0lTZW9bJ21ldGEnXSA9IFtdLFxuICAgICAgICByb2JvdHM6IFJvYm90c1RhZ1R5cGVbXSA9IFsnaW5kZXgnLCAnZm9sbG93J11cbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmVNZXRhVGFncygpO1xuICAgICAgICB0aGlzLnNldFBhZ2VUaXRsZSh0aXRsZSk7XG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFEZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7XG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFLZXl3b3JkcyhrZXl3b3Jkcyk7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YVRhZ3ModGl0bGUsIGRlc2NyaXB0aW9uLCBgJHt0aGlzLnVybHMuc2l0ZVVybH0ke3RoaXMucm91dGVyLnVybH1gLCBpbWcpO1xuICAgICAgICBtZXRhLmZvckVhY2goKHRhZykgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRQYWdlTWV0YUJ5TmFtZSh0YWcubmFtZSwgdGFnLmNvbnRlbnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXRQYWdlTWV0YVJvYm90cyhyb2JvdHMpO1xuXG4gICAgICAgIHRoaXMuaXNTZXRNZXRhVGFnc0V2ZW50RW1pdHRlci5lbWl0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgbWV0YS3RgtC10LMgcm9ib3RzINC00LvRjyDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJvYm90cyDQodC/0LjRgdC+0Logcm9ib3RzINGC0LXQs9C+0LIg0LTQu9GPINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHVibGljIHNldFBhZ2VNZXRhUm9ib3RzKHJvYm90czogUm9ib3RzVGFnVHlwZVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFCeU5hbWUoJ3JvYm90cycsIHJvYm90cy5qb2luKCcsICcpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9C00LDQu9GP0LXRgiDQstGB0LUg0YPRgdGC0LDQvdC+0LLQu9C10L3QvdGL0LUgbWV0YS3RgtC10LPQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVtb3ZlTWV0YVRhZ3MoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTE1ldGFFbGVtZW50PihgbWV0YVtkYXRhLWdyb3VwPVwiJHt0aGlzLmRhdGFHcm91cFNlbGVjdG9yfVwiXWApO1xuXG4gICAgICAgIHRhZ3MuZm9yRWFjaCgodGFnKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1ldGFTZXJ2aWNlLnJlbW92ZVRhZ0VsZW1lbnQodGFnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQs9C10L3QtdGA0LjRgNC+0LLQsNC90L3Ri9C5IFNFTy1yZXNvdXJjZSDRgSDRg9C60LDQt9Cw0L3QvdGL0LzQuCDQv9Cw0YDQsNC80LXRgtGA0LDQvNC4LlxuICAgICAqXG4gICAgICogQHBhcmFtIHNlbyDQlNCw0L3QvdGL0LUgU0VPINGA0LXRgdGD0YDRgdCwLlxuICAgICAqIEBwYXJhbSBkZWZhdWx0VGl0bGUg0JfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0Ysg0LjRgdC/0L7Qu9GM0LfRg9C10LzRi9C5INCyINGB0LvRg9GH0LDQtSDQvtGC0YHRg9GC0YHRgtCy0LjRjyDQt9Cw0LPQvtC70L7QstC60LAg0LIgU0VPLdGA0LXRgdGD0YDRgdC1LlxuICAgICAqIEBwYXJhbSBkZWZhdWx0RGVzY3JpcHRpb24g0J7Qv9C40YHQsNC90LjQtSDRgdGC0YDQsNC90LjRhtGLINC40YHQv9C+0LvRjNC30YPQtdC80L7QtSDQsiDRgdC70YPRh9Cw0LUg0L7RgtGB0YPRgtGB0YLQstC40Y8g0L7Qv9C40YHQsNC90LjRjyDQsiBTRU8t0YDQtdGB0YPRgNGB0LUuXG4gICAgICogQHBhcmFtIGRlZmF1bHRLZXlXb3JkcyDQmtC70Y7Rh9C10LLRi9C1INGB0LvQvtCy0LAg0YHRgtGA0LDQvdC40YbRiyDQuNGB0L/QvtC70YzQt9GD0LXQvNGL0LUg0LIg0YHQu9GD0YfQsNC1INC+0YLRgdGD0YLRgdGC0LLQuNGPINC60LvRjtGH0LXQstGL0YUg0YHQu9C+0LIg0LIgU0VPLdGA0LXRgdGD0YDRgdC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRHZW5lcmF0ZVNlb1Jlc291cmNlKFxuICAgICAgICBzZW86IFNjSVNlbyB8IHVuZGVmaW5lZCxcbiAgICAgICAgZGVmYXVsdFRpdGxlOiBzdHJpbmcsXG4gICAgICAgIGRlZmF1bHREZXNjcmlwdGlvbjogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLmRlc2NyaXB0aW9uLFxuICAgICAgICBkZWZhdWx0S2V5V29yZHM6IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby5rZXl3b3Jkc1xuICAgICk6IFNjSVNlbyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0aXRsZTogc2VvPy50aXRsZSA/PyBkZWZhdWx0VGl0bGUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogc2VvPy5kZXNjcmlwdGlvbiA/PyBkZWZhdWx0RGVzY3JpcHRpb24sXG4gICAgICAgICAgICBrZXl3b3Jkczogc2VvPy5rZXl3b3JkcyA/PyBkZWZhdWx0S2V5V29yZHMsXG4gICAgICAgICAgICBtZXRhOiBzZW8/Lm1ldGEsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgdGl0bGUt0LfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGl0bGUg0JfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIGFwcGVuZERlZmF1bHRUaXRsZSDQpNC70LDQsyDQvdC10L7QsdGF0L7QtNC40LzQvtGB0YLQuCDQtNC+0LHQsNCy0LjRgtGMINC30LDQs9C+0LvQvtCy0L7QuiDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQsiDQutC+0L3QtdGGINC30LDQs9C+0LvQvtCy0LrQsCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0UGFnZVRpdGxlKHRpdGxlOiBzdHJpbmcsIGFwcGVuZERlZmF1bHRUaXRsZTogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKHRpdGxlICsgKGFwcGVuZERlZmF1bHRUaXRsZSA/IGAgLSAke3RoaXMuZGVmYXVsdFNlby50aXRsZX1gIDogJycpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBtZXRhLdC+0L/QuNGB0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBNZXRhLdC+0L/QuNGB0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFBhZ2VNZXRhRGVzY3JpcHRpb24oZGVzY3JpcHRpb246IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFBhZ2VNZXRhQnlOYW1lKCdkZXNjcmlwdGlvbicsIGRlc2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBtZXRhLdC60LvRjtGH0LXQstGL0LUg0YHQu9C+0LLQsCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqXG4gICAgICogQHBhcmFtIGtleXdvcmRzIE1ldGEt0LrQu9GO0YfQtdCy0YvQtSDRgdC70L7QstCwINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRQYWdlTWV0YUtleXdvcmRzKGtleXdvcmRzOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRQYWdlTWV0YUJ5TmFtZSgna2V5d29yZHMnLCBrZXl3b3Jkcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgT3BlbiBHcmFwaCBtZXRhLdGC0LXQs9C4INGB0YLRgNCw0L3QuNGG0Ysg0LTQu9GPINGB0L7RhtC40LDQu9GM0L3Ri9GFINGB0LXRgtC10LkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGl0bGUg0JfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIGRlc2NyaXB0aW9uINCe0L/QuNGB0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gdXJsINCh0YHRi9C70LrQsCDQvdCwINGB0YLRgNCw0L3QuNGG0YMuXG4gICAgICogQHBhcmFtIGltZyDQmNC30L7QsdGA0LDQttC10L3QuNC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0T3BlbkdyYXBoTWV0YVRhZ3ModGl0bGU6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZywgdXJsOiBzdHJpbmcsIGltZzogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YUJ5UHJvcGVydHkoJ29nOnRpdGxlJywgdGl0bGUpO1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFCeVByb3BlcnR5KCdvZzp1cmwnLCB1cmwpO1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFCeVByb3BlcnR5KCdvZzppbWFnZScsIGltZyk7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YUJ5UHJvcGVydHkoJ29nOmRlc2NyaXB0aW9uJywgZGVzY3JpcHRpb24pO1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFCeVByb3BlcnR5KCdvZzp0eXBlJywgJ3dlYnNpdGUnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBtZXRhLdGC0LXQsyDRgdGC0YDQsNC90LjRhtGLINGBINGD0LrQsNC30LDQvdC90YvQvCDQuNC80LXQvdC10LwuXG4gICAgICog0JHRg9C00LXRgiDRgdC+0LfQtNCw0L0g0LjQu9C4INC+0LHQvdC+0LLQu9GR0L0g0LfQsNCz0L7Qu9C+0LLQvtC6INCy0LjQtNCwIGA8bWV0YSBuYW1lPVwie25hbWV9XCIgY29udGVudD1cIntjb250ZW50fVwiIC8+YFxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUg0J3QsNC30LLQsNC90LjQtSDQt9Cw0LPQvtC70L7QstC60LAuXG4gICAgICogQHBhcmFtIGNvbnRlbnQg0KHQvtC00LXRgNC20LjQvNC+0LUg0LfQsNCz0L7Qu9C+0LLQutCwLlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0UGFnZU1ldGFCeU5hbWUobmFtZTogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBuYW1lOiBuYW1lLCBjb250ZW50OiBjb250ZW50LCAnZGF0YS1ncm91cCc6IHRoaXMuZGF0YUdyb3VwU2VsZWN0b3IgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgT3BlbiBHcmFwaCBtZXRhLdGC0LXQsyDQv9C+INGB0LLQvtC50YHRgtCy0YMg0LDRgtGA0LjQsdGD0YLQsCBwcm9wZXJ0eS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0eSDQodCy0L7QudGB0YLQstC+INCw0YLRgNC40LHRg9GC0LAuXG4gICAgICogQHBhcmFtIGNvbnRlbnQg0KHQvtC00LXRgNC20LjQvNC+0LUg0YLQtdCz0LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRPcGVuR3JhcGhNZXRhQnlQcm9wZXJ0eShwcm9wZXJ0eTogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogcHJvcGVydHksIGNvbnRlbnQ6IGNvbnRlbnQsICdkYXRhLWdyb3VwJzogdGhpcy5kYXRhR3JvdXBTZWxlY3RvciB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBPcGVuIEdyYXBoINC80LXRgtCwLdGC0LXQsyDRgtC40L/QsCDQvtCx0YrQtdC60YLQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0eXBlINCi0LjQvyDQvtCx0YrQtdC60YLQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFNoYXJlVHlwZSh0eXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRPcGVuR3JhcGhNZXRhQnlQcm9wZXJ0eSgnb2c6dHlwZScsIHR5cGUpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -3,7 +3,7 @@ import { inject, Injectable } from '@angular/core';
|
|
|
3
3
|
import { WA_LOCAL_STORAGE } from '@ng-web-apis/common';
|
|
4
4
|
import { filterByKey, StorageService, toValue, WA_STORAGE_EVENT } from '@ng-web-apis/storage';
|
|
5
5
|
import { tuiIsPresent } from '@taiga-ui/cdk';
|
|
6
|
-
import { filter, map, shareReplay, switchMap, tap } from 'rxjs';
|
|
6
|
+
import { filter, map, shareReplay, startWith, switchMap, tap } from 'rxjs';
|
|
7
7
|
import { ScAuthService } from '../../auth/services/sc-auth.service';
|
|
8
8
|
import { ScTokenService } from '../../auth/services/sc-token.service';
|
|
9
9
|
import { IS_BROWSER } from '../../providers/ssr.providers';
|
|
@@ -29,18 +29,19 @@ export class ScUserService {
|
|
|
29
29
|
* {@link Storage}.
|
|
30
30
|
*/
|
|
31
31
|
this.storage = inject(WA_LOCAL_STORAGE, { optional: true });
|
|
32
|
+
/**
|
|
33
|
+
* Признак, что скрипт выполняется в браузере.
|
|
34
|
+
*/
|
|
35
|
+
this.isBrowser = inject(IS_BROWSER);
|
|
32
36
|
/**
|
|
33
37
|
* {@link Observable} ключа доступа пользователя к API в {@link Storage}.
|
|
34
38
|
*/
|
|
35
|
-
this.user$ = this.storageEvent$.pipe(filterByKey('userData'), toValue(), map((userData) => (userData ? new ScUser(JSON.parse(userData)) : null)),
|
|
39
|
+
this.user$ = this.storageEvent$.pipe(filterByKey('userData'), toValue(), map((userData) => (userData ? new ScUser(JSON.parse(userData)) : null)), startWith(this.storage && this.isBrowser ? null : new ScUser({ metadata: {} })), // Инициализация пользователя при SSR для корректной работы связанных сервисов.
|
|
40
|
+
filter(tuiIsPresent), shareReplay({ refCount: true, bufferSize: 1 }));
|
|
36
41
|
/**
|
|
37
42
|
* Сервис для работы с токенами.
|
|
38
43
|
*/
|
|
39
44
|
this.tokenService = inject(ScTokenService);
|
|
40
|
-
/**
|
|
41
|
-
* Признак, что скрипт выполняется в браузере.
|
|
42
|
-
*/
|
|
43
|
-
this.isBrowser = inject(IS_BROWSER);
|
|
44
45
|
/**
|
|
45
46
|
* Сервис аутентификации.
|
|
46
47
|
*/
|
|
@@ -180,4 +181,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
180
181
|
providedIn: 'root',
|
|
181
182
|
}]
|
|
182
183
|
}] });
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS91c2VyL3NlcnZpY2VzL3NjLXVzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxXQUFXLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDN0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFPM0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUd4Qzs7R0FFRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBSDFCO1FBSUk7O1dBRUc7UUFDYyxrQkFBYSxHQUE2QixNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUVwRjs7V0FF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QUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXQV9MT0NBTF9TVE9SQUdFIH0gZnJvbSAnQG5nLXdlYi1hcGlzL2NvbW1vbic7XG5pbXBvcnQgeyBmaWx0ZXJCeUtleSwgU3RvcmFnZVNlcnZpY2UsIHRvVmFsdWUsIFdBX1NUT1JBR0VfRVZFTlQgfSBmcm9tICdAbmctd2ViLWFwaXMvc3RvcmFnZSc7XG5pbXBvcnQgeyB0dWlJc1ByZXNlbnQgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSUF1dGhUb2tlbiB9IGZyb20gJy4uLy4uL2F1dGgvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBTY0F1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXV0aC9zZXJ2aWNlcy9zYy1hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NUb2tlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9hdXRoL3NlcnZpY2VzL3NjLXRva2VuLnNlcnZpY2UnO1xuaW1wb3J0IHsgSVNfQlJPV1NFUiB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9zc3IucHJvdmlkZXJzJztcbmltcG9ydCB7IFNDX1VSTFMgfSBmcm9tICcuLi8uLi90b2tlbnMvc2MtdXJscyc7XG5pbXBvcnQgeyBTY1VzZXJNZXRyaWthR29hbHNFbnVtIH0gZnJvbSAnLi4vLi4vdXNlci1tZXRyaWthL2VudW1zL3NjLXVzZXItbWV0cmlrYS1nb2Fscy1lbnVtJztcbmltcG9ydCB7IFNjVXNlck1ldHJpa2FTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXNlci1tZXRyaWthL3NlcnZpY2VzL3NjLXVzZXItbWV0cmlrYS5zZXJ2aWNlJztcbmltcG9ydCB7IFNjSVNpbXBsZVVzZXJPbkRhdGFDcmVhdGUgfSBmcm9tICcuLi9kdG8nO1xuaW1wb3J0IHsgU2NJQ2hhbmdlUGFzc3dvcmQgfSBmcm9tICcuLi9kdG8vc2MtaS1jaGFuZ2UtcGFzc3dvcmQnO1xuaW1wb3J0IHsgU2NJUGFzc3dvcmRPbkRhdGFVcGRhdGUgfSBmcm9tICcuLi9kdG8vc2MtaS1wYXNzd29yZC1vbi1kYXRhLWNyZWF0ZSc7XG5pbXBvcnQgeyBTY0lQaG9uZU9uRGF0YUFwcHJvdmUgfSBmcm9tICcuLi9kdG8vc2MtaS1waG9uZS1vbi1kYXRhLWFwcHJvdmUnO1xuaW1wb3J0IHsgU2NJVXNlck9uRGF0YUNyZWF0ZSB9IGZyb20gJy4uL2R0by9zYy1pLXVzZXItb24tZGF0YS1jcmVhdGUnO1xuaW1wb3J0IHsgU2NJVXNlck9uRGF0YVVwZGF0ZSB9IGZyb20gJy4uL2R0by9zYy1pLXVzZXItb24tZGF0YS11cGRhdGUnO1xuaW1wb3J0IHsgU2NVc2VyIH0gZnJvbSAnLi4vZHRvL3NjLXVzZXInO1xuaW1wb3J0IHsgU2NJVXNlckRUTyB9IGZyb20gJy4uL2ludGVybmFsL2R0byc7XG5cbi8qKlxuICog0KHQtdGA0LLQuNGBINC40L3RhNC+0YDQvNCw0YbQuNC4INC+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NVc2VyU2VydmljZSB7XG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INCh0L7QsdGL0YLQuNC1INC40LfQvNC10L3QtdC90LjRjyDQsiB7QGxpbmsgU3RvcmFnZX0uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlRXZlbnQkOiBPYnNlcnZhYmxlPFN0b3JhZ2VFdmVudD4gPSBpbmplY3QoV0FfU1RPUkFHRV9FVkVOVCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSB7QGxpbmsgU3RvcmFnZX0uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlU2VydmljZTogU3RvcmFnZSA9IGluamVjdChTdG9yYWdlU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgU3RvcmFnZX0uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlOiBTdG9yYWdlIHwgbnVsbCA9IGluamVjdChXQV9MT0NBTF9TVE9SQUdFLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC60LvRjtGH0LAg0LTQvtGB0YLRg9C/0LAg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINC6IEFQSSDQsiB7QGxpbmsgU3RvcmFnZX0uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyJDogT2JzZXJ2YWJsZTxTY1VzZXI+ID0gdGhpcy5zdG9yYWdlRXZlbnQkLnBpcGUoXG4gICAgICAgIGZpbHRlckJ5S2V5KCd1c2VyRGF0YScpLFxuICAgICAgICB0b1ZhbHVlKCksXG4gICAgICAgIG1hcCgodXNlckRhdGEpID0+ICh1c2VyRGF0YSA/IG5ldyBTY1VzZXIoSlNPTi5wYXJzZSh1c2VyRGF0YSkgYXMgU2NJVXNlckRUTykgOiBudWxsKSksXG4gICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxIH0pXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINGC0L7QutC10L3QsNC80LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB0b2tlblNlcnZpY2UgPSBpbmplY3QoU2NUb2tlblNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDRgdC60YDQuNC/0YIg0LLRi9C/0L7Qu9C90Y/QtdGC0YHRjyDQsiDQsdGA0LDRg9C30LXRgNC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaXNCcm93c2VyOiBib29sZWFuID0gaW5qZWN0KElTX0JST1dTRVIpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBhdXRoU2VydmljZSA9IGluamVjdChTY0F1dGhTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdGB0YvQu9C+0Log0L3QsCDRgNCw0LfQtNC10LvRiyBiYWNrZW5kJ2EuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1cmxzID0gaW5qZWN0KFNDX1VSTFMpO1xuXG4gICAgLyoqXG4gICAgICogSFRUUC3QutC70LjQtdC90YIuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC00LvRjyDRgdCx0L7RgNCwINC80LXRgtGA0LjQuiDQviDQtNC10LnRgdGC0LLQuNGP0YUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LkuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyTWV0cmlrYVNlcnZpY2UgPSBpbmplY3QoU2NVc2VyTWV0cmlrYVNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0JLRi9C/0L7Qu9C90Y/QtdGCINC40L3QuNGG0LjQsNC70LjQt9Cw0YbQuNGOINGB0LXRgNCy0LjRgdCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBpbml0U2VydmljZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNCcm93c2VyKSB7XG4gICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLmdldEF1dGhDaGFuZ2UoKVxuICAgICAgICAgICAgICAgIC5waXBlKHN3aXRjaE1hcCgoc3RhdGUpID0+IChzdGF0ZSA/IHRoaXMuZ2V0VXNlckluZm8kKCkgOiB0aGlzLmdldEd1ZXN0SW5mbyQoKSkpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHVzZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyTWV0cmlrYVNlcnZpY2Uuc2V0VXNlclBhcmFtcyh1c2VyLmlkLCB1c2VyLnVzZXJUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRVc2VyVG9TdG9yYWdlKHVzZXIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXRVc2VyVG9TdG9yYWdlKG5ldyBTY1VzZXIoeyBtZXRhZGF0YToge30gfSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LTQsNC90L3Ri9C1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDQsiB7QGxpbmsgU3RvcmFnZX0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXNlciDQlNCw0L3QvdGL0LUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0VXNlclRvU3RvcmFnZSh1c2VyOiBTY1VzZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3RvcmFnZSAmJiB0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKCd1c2VyRGF0YScsIEpTT04uc3RyaW5naWZ5KHVzZXIpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQuNC30LzQtdC90LXQvdC40Y8g0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0YLQtdC60YPRidC10Lwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICAgICAqXG4gICAgICogQHBhcmFtIG5ld0RhdGEg0JTQsNC90L3Ri9C1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjywg0LrQvtGC0L7RgNGL0LUg0L3Rg9C20L3QviDQvtCx0L3QvtCy0LjRgtGMLlxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVVc2VySW5mbyQobmV3RGF0YTogU2NJVXNlck9uRGF0YVVwZGF0ZSB8IFNjSUNoYW5nZVBhc3N3b3JkIHwgU2NJUGhvbmVPbkRhdGFBcHByb3ZlKTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDx1bmRlZmluZWQ+KGAke3RoaXMudXJscy5hcGlVcmx9L3VzZXJgLCBuZXdEYXRhKS5waXBlKFxuICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5lbWl0VXNlck1ldHJpa2FFdmVudCh7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldDogU2NVc2VyTWV0cmlrYUdvYWxzRW51bS51c2VyUHJvZmlsZUVkaXRlZCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC30LDQv9GA0L7RgdCwINC40LfQvNC10L3QtdC90LjRjyDQuNC90YTQvtGA0LzQsNGG0LjQuCDQviDRgtC10LrRg9GJ0LXQvCDQv9C+0LvRjNC30L7QstCw0YLQtdC70LUt0LPQvtGB0YLQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuZXdEYXRhINCU0LDQvdC90YvQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8t0LPQvtGB0YLRjywg0LrQvtGC0L7RgNGL0LUg0L3Rg9C20L3QviDQvtCx0L3QvtCy0LjRgtGMLlxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVHdWVzdEluZm8kKG5ld0RhdGE6IFBpY2s8U2NJVXNlck9uRGF0YVVwZGF0ZSwgJ21ldGFkYXRhJz4pOiBPYnNlcnZhYmxlPHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBhdGNoPHVuZGVmaW5lZD4oYCR7dGhpcy51cmxzLmFwaVVybH0vZ3Vlc3RgLCBuZXdEYXRhKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0YDQtdCz0LjRgdGC0YDQsNGG0LjQuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXNlciDQlNCw0L3QvdGL0LUg0LTQu9GPINGA0LXQs9C40YHRgtGA0LDRhtC40LguXG4gICAgICogQHBhcmFtIHdpdGhBdXRoINCk0LvQsNCzLCDRg9C60LDQt9GL0LLQsNGO0YnQuNC5LCDQvdGD0LbQvdC+INC70Lgg0YPRgdGC0LDQvdCw0LLQu9C40LLQsNGC0Ywg0YLQvtC60LXQvSDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBzaWduVXAkKHVzZXI6IFNjSVVzZXJPbkRhdGFDcmVhdGUgfCBTY0lTaW1wbGVVc2VyT25EYXRhQ3JlYXRlLCB3aXRoQXV0aDogYm9vbGVhbiA9IHRydWUpOiBPYnNlcnZhYmxlPElBdXRoVG9rZW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PElBdXRoVG9rZW4+KGAke3RoaXMudXJscy5hcGlVcmx9L3VzZXIvcmVnaXN0ZXJgLCB1c2VyKS5waXBlKFxuICAgICAgICAgICAgdGFwKCh0b2tlbikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXNlck1ldHJpa2FTZXJ2aWNlLmVtaXRVc2VyTWV0cmlrYUV2ZW50KHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiBTY1VzZXJNZXRyaWthR29hbHNFbnVtLnNpZ25lZFVwLFxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKHdpdGhBdXRoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9rZW5TZXJ2aWNlLnNldEF1dGhUb2tlbih0b2tlbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0L3QsCDQvtGC0L/RgNCw0LLQutGDINC60L7QtNCwINC40LfQvNC10L3QtdC90LjRjyDQv9Cw0YDQvtC70Y8g0L3QsCDRjdC70LXQutGC0YDQvtC90L3Rg9GOINC/0L7Rh9GC0YMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZW1haWwg0JDQtNGA0LXRgSDRjdC70LXQutGC0YDQvtC90L3QvtC5INC/0L7Rh9GC0YsuXG4gICAgICovXG4gICAgcHVibGljIHNlbmRSZXNldFBhc3N3b3JkQ29kZSQoZW1haWw6IHN0cmluZyk6IE9ic2VydmFibGU8dW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PHVuZGVmaW5lZD4oYCR7dGhpcy51cmxzLmFwaVVybH0vYXV0aC9wYXNzd29yZC9yZXN0b3JlYCwgeyBwYXJhbXM6IHsgZW1haWw6IGVtYWlsIH0gfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC30LDQv9GA0L7RgdCwINC40LfQvNC10L3QtdC90LjRjyDQv9Cw0YDQvtC70Y8uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmV3UGFzc3dvcmQg0JTQsNC90L3Ri9C1INC00LvRjyDQuNC30LzQtdC90LXQvdC40Y8g0L/QsNGA0L7Qu9GPLlxuICAgICAqL1xuICAgIHB1YmxpYyByZXNldFBhc3N3b3JkJChuZXdQYXNzd29yZDogU2NJUGFzc3dvcmRPbkRhdGFVcGRhdGUpOiBPYnNlcnZhYmxlPHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8dW5kZWZpbmVkPihgJHt0aGlzLnVybHMuYXBpVXJsfS9hdXRoL3Bhc3N3b3JkL3Jlc3RvcmVgLCBuZXdQYXNzd29yZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INGC0LXQutGD0YnQtdCz0L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRVc2VyQ2hhbmdlJCgpOiBPYnNlcnZhYmxlPFNjVXNlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy51c2VyJDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0L3QvtCy0LvRj9C10YIg0LTQsNC90L3Ri9C1IHtAbGluayBPYnNlcnZhYmxlfSDRgtC10LrRg9GJ0LXQs9C+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlVXNlckNoYW5nZSQoKTogT2JzZXJ2YWJsZTxTY1VzZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VXNlckluZm8kKCkucGlwZShcbiAgICAgICAgICAgIHRhcCgodXNlcikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VXNlclRvU3RvcmFnZSh1c2VyKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC30LDQv9GA0L7RgdCwINC90LAg0L/QvtC70YPRh9C10L3QuNC1INC40L3RhNC+0YDQvNCw0YbQuNC4INC+INGC0LXQutGD0YnQtdC8INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VXNlckluZm8kKCk6IE9ic2VydmFibGU8U2NVc2VyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFNjSVVzZXJEVE8+KGAke3RoaXMudXJscy5hcGlVcmx9L3VzZXJgKS5waXBlKG1hcCgodXNlcikgPT4gbmV3IFNjVXNlcih1c2VyKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHQvdC+0LLQu9GP0LXRgiDQtNCw0L3QvdGL0LUge0BsaW5rIE9ic2VydmFibGV9INGC0LXQutGD0YnQtdCz0L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVHdWVzdENoYW5nZSQoKTogT2JzZXJ2YWJsZTxTY1VzZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0R3Vlc3RJbmZvJCgpLnBpcGUoXG4gICAgICAgICAgICB0YXAoKHVzZXIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFVzZXJUb1N0b3JhZ2UodXNlcik7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQvdCwINC/0L7Qu9GD0YfQtdC90LjQtSDQuNC90YTQvtGA0LzQsNGG0LjQuCDQviDRgtC10LrRg9GJ0LXQvCDQv9C+0LvRjNC30L7QstCw0YLQtdC70LUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRHdWVzdEluZm8kKCk6IE9ic2VydmFibGU8U2NVc2VyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFNjSVVzZXJEVE8+KGAke3RoaXMudXJscy5hcGlVcmx9L2d1ZXN0YCkucGlwZShtYXAoKHVzZXIpID0+IG5ldyBTY1VzZXIodXNlcikpKTtcbiAgICB9XG59XG4iXX0=
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtdXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS91c2VyL3NlcnZpY2VzL3NjLXVzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdkYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBTzNGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHeEM7O0dBRUc7QUFJSCxNQUFNLE9BQU8sYUFBYTtJQUgxQjtRQUlJOztXQUVHO1FBQ2Msa0JBQWEsR0FBNkIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7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LENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RyxDQUFDOytHQTdMUSxhQUFhO21IQUFiLGFBQWEsY0FGVixNQUFNOzs0RkFFVCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdBX0xPQ0FMX1NUT1JBR0UgfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7IGZpbHRlckJ5S2V5LCBTdG9yYWdlU2VydmljZSwgdG9WYWx1ZSwgV0FfU1RPUkFHRV9FVkVOVCB9IGZyb20gJ0BuZy13ZWItYXBpcy9zdG9yYWdlJztcbmltcG9ydCB7IHR1aUlzUHJlc2VudCB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IElBdXRoVG9rZW4gfSBmcm9tICcuLi8uLi9hdXRoL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgU2NBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL2F1dGgvc2VydmljZXMvc2MtYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFNjVG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXV0aC9zZXJ2aWNlcy9zYy10b2tlbi5zZXJ2aWNlJztcbmltcG9ydCB7IElTX0JST1dTRVIgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvc3NyLnByb3ZpZGVycyc7XG5pbXBvcnQgeyBTQ19VUkxTIH0gZnJvbSAnLi4vLi4vdG9rZW5zL3NjLXVybHMnO1xuaW1wb3J0IHsgU2NVc2VyTWV0cmlrYUdvYWxzRW51bSB9IGZyb20gJy4uLy4uL3VzZXItbWV0cmlrYS9lbnVtcy9zYy11c2VyLW1ldHJpa2EtZ29hbHMtZW51bSc7XG5pbXBvcnQgeyBTY1VzZXJNZXRyaWthU2VydmljZSB9IGZyb20gJy4uLy4uL3VzZXItbWV0cmlrYS9zZXJ2aWNlcy9zYy11c2VyLW1ldHJpa2Euc2VydmljZSc7XG5pbXBvcnQgeyBTY0lTaW1wbGVVc2VyT25EYXRhQ3JlYXRlIH0gZnJvbSAnLi4vZHRvJztcbmltcG9ydCB7IFNjSUNoYW5nZVBhc3N3b3JkIH0gZnJvbSAnLi4vZHRvL3NjLWktY2hhbmdlLXBhc3N3b3JkJztcbmltcG9ydCB7IFNjSVBhc3N3b3JkT25EYXRhVXBkYXRlIH0gZnJvbSAnLi4vZHRvL3NjLWktcGFzc3dvcmQtb24tZGF0YS1jcmVhdGUnO1xuaW1wb3J0IHsgU2NJUGhvbmVPbkRhdGFBcHByb3ZlIH0gZnJvbSAnLi4vZHRvL3NjLWktcGhvbmUtb24tZGF0YS1hcHByb3ZlJztcbmltcG9ydCB7IFNjSVVzZXJPbkRhdGFDcmVhdGUgfSBmcm9tICcuLi9kdG8vc2MtaS11c2VyLW9uLWRhdGEtY3JlYXRlJztcbmltcG9ydCB7IFNjSVVzZXJPbkRhdGFVcGRhdGUgfSBmcm9tICcuLi9kdG8vc2MtaS11c2VyLW9uLWRhdGEtdXBkYXRlJztcbmltcG9ydCB7IFNjVXNlciB9IGZyb20gJy4uL2R0by9zYy11c2VyJztcbmltcG9ydCB7IFNjSVVzZXJEVE8gfSBmcm9tICcuLi9pbnRlcm5hbC9kdG8nO1xuXG4vKipcbiAqINCh0LXRgNCy0LjRgSDQuNC90YTQvtGA0LzQsNGG0LjQuCDQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70LUuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNjVXNlclNlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQodC+0LHRi9GC0LjQtSDQuNC30LzQtdC90LXQvdC40Y8g0LIge0BsaW5rIFN0b3JhZ2V9LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZUV2ZW50JDogT2JzZXJ2YWJsZTxTdG9yYWdlRXZlbnQ+ID0gaW5qZWN0KFdBX1NUT1JBR0VfRVZFTlQpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEge0BsaW5rIFN0b3JhZ2V9LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2UgPSBpbmplY3QoU3RvcmFnZVNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIFN0b3JhZ2V9LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZTogU3RvcmFnZSB8IG51bGwgPSBpbmplY3QoV0FfTE9DQUxfU1RPUkFHRSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0YHQutGA0LjQv9GCINCy0YvQv9C+0LvQvdGP0LXRgtGB0Y8g0LIg0LHRgNCw0YPQt9C10YDQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGlzQnJvd3NlcjogYm9vbGVhbiA9IGluamVjdChJU19CUk9XU0VSKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQutC70Y7Rh9CwINC00L7RgdGC0YPQv9CwINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDQuiBBUEkg0LIge0BsaW5rIFN0b3JhZ2V9LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlciQ6IE9ic2VydmFibGU8U2NVc2VyPiA9IHRoaXMuc3RvcmFnZUV2ZW50JC5waXBlKFxuICAgICAgICBmaWx0ZXJCeUtleSgndXNlckRhdGEnKSxcbiAgICAgICAgdG9WYWx1ZSgpLFxuICAgICAgICBtYXAoKHVzZXJEYXRhKSA9PiAodXNlckRhdGEgPyBuZXcgU2NVc2VyKEpTT04ucGFyc2UodXNlckRhdGEpIGFzIFNjSVVzZXJEVE8pIDogbnVsbCkpLFxuICAgICAgICBzdGFydFdpdGgodGhpcy5zdG9yYWdlICYmIHRoaXMuaXNCcm93c2VyID8gbnVsbCA6IG5ldyBTY1VzZXIoeyBtZXRhZGF0YToge30gfSkpLCAvLyDQmNC90LjRhtC40LDQu9C40LfQsNGG0LjRjyDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8g0L/RgNC4IFNTUiDQtNC70Y8g0LrQvtGA0YDQtdC60YLQvdC+0Lkg0YDQsNCx0L7RgtGLINGB0LLRj9C30LDQvdC90YvRhSDRgdC10YDQstC40YHQvtCyLlxuICAgICAgICBmaWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSwgYnVmZmVyU2l6ZTogMSB9KVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSDRgtC+0LrQtdC90LDQvNC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9rZW5TZXJ2aWNlID0gaW5qZWN0KFNjVG9rZW5TZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aFNlcnZpY2UgPSBpbmplY3QoU2NBdXRoU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0YHRgdGL0LvQvtC6INC90LAg0YDQsNC30LTQtdC70YsgYmFja2VuZCdhLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXJscyA9IGluamVjdChTQ19VUkxTKTtcblxuICAgIC8qKlxuICAgICAqIEhUVFAt0LrQu9C40LXQvdGCLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQtNC70Y8g0YHQsdC+0YDQsCDQvNC10YLRgNC40Log0L4g0LTQtdC50YHRgtCy0LjRj9GFINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlck1ldHJpa2FTZXJ2aWNlID0gaW5qZWN0KFNjVXNlck1ldHJpa2FTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCS0YvQv9C+0LvQvdGP0LXRgiDQuNC90LjRhtC40LDQu9C40LfQsNGG0LjRjiDRgdC10YDQstC40YHQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgaW5pdFNlcnZpY2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZVxuICAgICAgICAgICAgICAgIC5nZXRBdXRoQ2hhbmdlKClcbiAgICAgICAgICAgICAgICAucGlwZShzd2l0Y2hNYXAoKHN0YXRlKSA9PiAoc3RhdGUgPyB0aGlzLmdldFVzZXJJbmZvJCgpIDogdGhpcy5nZXRHdWVzdEluZm8kKCkpKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCh1c2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXNlck1ldHJpa2FTZXJ2aWNlLnNldFVzZXJQYXJhbXModXNlci5pZCwgdXNlci51c2VyVHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0VXNlclRvU3RvcmFnZSh1c2VyKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VXNlclRvU3RvcmFnZShuZXcgU2NVc2VyKHsgbWV0YWRhdGE6IHt9IH0pKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINC00LDQvdC90YvQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8g0LIge0BsaW5rIFN0b3JhZ2V9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXIg0JTQsNC90L3Ri9C1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFVzZXJUb1N0b3JhZ2UodXNlcjogU2NVc2VyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN0b3JhZ2UgJiYgdGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgndXNlckRhdGEnLCBKU09OLnN0cmluZ2lmeSh1c2VyKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0LjQt9C80LXQvdC10L3QuNGPINC40L3RhNC+0YDQvNCw0YbQuNC4INC+INGC0LXQutGD0YnQtdC8INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuZXdEYXRhINCU0LDQvdC90YvQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8sINC60L7RgtC+0YDRi9C1INC90YPQttC90L4g0L7QsdC90L7QstC40YLRjC5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlVXNlckluZm8kKG5ld0RhdGE6IFNjSVVzZXJPbkRhdGFVcGRhdGUgfCBTY0lDaGFuZ2VQYXNzd29yZCB8IFNjSVBob25lT25EYXRhQXBwcm92ZSk6IE9ic2VydmFibGU8dW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucGF0Y2g8dW5kZWZpbmVkPihgJHt0aGlzLnVybHMuYXBpVXJsfS91c2VyYCwgbmV3RGF0YSkucGlwZShcbiAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51c2VyTWV0cmlrYVNlcnZpY2UuZW1pdFVzZXJNZXRyaWthRXZlbnQoe1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IFNjVXNlck1ldHJpa2FHb2Fsc0VudW0udXNlclByb2ZpbGVFZGl0ZWQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQuNC30LzQtdC90LXQvdC40Y8g0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0YLQtdC60YPRidC10Lwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LdCz0L7RgdGC0LUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmV3RGF0YSDQlNCw0L3QvdGL0LUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLdCz0L7RgdGC0Y8sINC60L7RgtC+0YDRi9C1INC90YPQttC90L4g0L7QsdC90L7QstC40YLRjC5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlR3Vlc3RJbmZvJChuZXdEYXRhOiBQaWNrPFNjSVVzZXJPbkRhdGFVcGRhdGUsICdtZXRhZGF0YSc+KTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDx1bmRlZmluZWQ+KGAke3RoaXMudXJscy5hcGlVcmx9L2d1ZXN0YCwgbmV3RGF0YSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC30LDQv9GA0L7RgdCwINGA0LXQs9C40YHRgtGA0LDRhtC40Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgICAqXG4gICAgICogQHBhcmFtIHVzZXIg0JTQsNC90L3Ri9C1INC00LvRjyDRgNC10LPQuNGB0YLRgNCw0YbQuNC4LlxuICAgICAqIEBwYXJhbSB3aXRoQXV0aCDQpNC70LDQsywg0YPQutCw0LfRi9Cy0LDRjtGJ0LjQuSwg0L3Rg9C20L3QviDQu9C4INGD0YHRgtCw0L3QsNCy0LvQuNCy0LDRgtGMINGC0L7QutC10L0g0LDRg9GC0LXQvdGC0LjRhNC40LrQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2lnblVwJCh1c2VyOiBTY0lVc2VyT25EYXRhQ3JlYXRlIHwgU2NJU2ltcGxlVXNlck9uRGF0YUNyZWF0ZSwgd2l0aEF1dGg6IGJvb2xlYW4gPSB0cnVlKTogT2JzZXJ2YWJsZTxJQXV0aFRva2VuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxJQXV0aFRva2VuPihgJHt0aGlzLnVybHMuYXBpVXJsfS91c2VyL3JlZ2lzdGVyYCwgdXNlcikucGlwZShcbiAgICAgICAgICAgIHRhcCgodG9rZW4pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5lbWl0VXNlck1ldHJpa2FFdmVudCh7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldDogU2NVc2VyTWV0cmlrYUdvYWxzRW51bS5zaWduZWRVcCxcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGlmICh3aXRoQXV0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRva2VuU2VydmljZS5zZXRBdXRoVG9rZW4odG9rZW4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIge0BsaW5rIE9ic2VydmFibGV9INC30LDQv9GA0L7RgdCwINC90LAg0L7RgtC/0YDQsNCy0LrRgyDQutC+0LTQsCDQuNC30LzQtdC90LXQvdC40Y8g0L/QsNGA0L7Qu9GPINC90LAg0Y3Qu9C10LrRgtGA0L7QvdC90YPRjiDQv9C+0YfRgtGDLlxuICAgICAqXG4gICAgICogQHBhcmFtIGVtYWlsINCQ0LTRgNC10YEg0Y3Qu9C10LrRgtGA0L7QvdC90L7QuSDQv9C+0YfRgtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZW5kUmVzZXRQYXNzd29yZENvZGUkKGVtYWlsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDx1bmRlZmluZWQ+KGAke3RoaXMudXJscy5hcGlVcmx9L2F1dGgvcGFzc3dvcmQvcmVzdG9yZWAsIHsgcGFyYW1zOiB7IGVtYWlsOiBlbWFpbCB9IH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQuNC30LzQtdC90LXQvdC40Y8g0L/QsNGA0L7Qu9GPLlxuICAgICAqXG4gICAgICogQHBhcmFtIG5ld1Bhc3N3b3JkINCU0LDQvdC90YvQtSDQtNC70Y8g0LjQt9C80LXQvdC10L3QuNGPINC/0LDRgNC+0LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVzZXRQYXNzd29yZCQobmV3UGFzc3dvcmQ6IFNjSVBhc3N3b3JkT25EYXRhVXBkYXRlKTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHVuZGVmaW5lZD4oYCR7dGhpcy51cmxzLmFwaVVybH0vYXV0aC9wYXNzd29yZC9yZXN0b3JlYCwgbmV3UGFzc3dvcmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDRgtC10LrRg9GJ0LXQs9C+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VXNlckNoYW5nZSQoKTogT2JzZXJ2YWJsZTxTY1VzZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlciQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdC90L7QstC70Y/QtdGCINC00LDQvdC90YvQtSB7QGxpbmsgT2JzZXJ2YWJsZX0g0YLQtdC60YPRidC10LPQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZVVzZXJDaGFuZ2UkKCk6IE9ic2VydmFibGU8U2NVc2VyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFVzZXJJbmZvJCgpLnBpcGUoXG4gICAgICAgICAgICB0YXAoKHVzZXIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFVzZXJUb1N0b3JhZ2UodXNlcik7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQvdCwINC/0L7Qu9GD0YfQtdC90LjQtSDQuNC90YTQvtGA0LzQsNGG0LjQuCDQviDRgtC10LrRg9GJ0LXQvCDQv9C+0LvRjNC30L7QstCw0YLQtdC70LUuXG4gICAgICovXG4gICAgcHVibGljIGdldFVzZXJJbmZvJCgpOiBPYnNlcnZhYmxlPFNjVXNlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxTY0lVc2VyRFRPPihgJHt0aGlzLnVybHMuYXBpVXJsfS91c2VyYCkucGlwZShtYXAoKHVzZXIpID0+IG5ldyBTY1VzZXIodXNlcikpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0L3QvtCy0LvRj9C10YIg0LTQsNC90L3Ri9C1IHtAbGluayBPYnNlcnZhYmxlfSDRgtC10LrRg9GJ0LXQs9C+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlR3Vlc3RDaGFuZ2UkKCk6IE9ic2VydmFibGU8U2NVc2VyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEd1ZXN0SW5mbyQoKS5waXBlKFxuICAgICAgICAgICAgdGFwKCh1c2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRVc2VyVG9TdG9yYWdlKHVzZXIpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0L3QsCDQv9C+0LvRg9GH0LXQvdC40LUg0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0YLQtdC60YPRidC10Lwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0R3Vlc3RJbmZvJCgpOiBPYnNlcnZhYmxlPFNjVXNlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxTY0lVc2VyRFRPPihgJHt0aGlzLnVybHMuYXBpVXJsfS9ndWVzdGApLnBpcGUobWFwKCh1c2VyKSA9PiBuZXcgU2NVc2VyKHVzZXIpKSk7XG4gICAgfVxufVxuIl19
|
|
@@ -991,18 +991,19 @@ class ScUserService {
|
|
|
991
991
|
* {@link Storage}.
|
|
992
992
|
*/
|
|
993
993
|
this.storage = inject(WA_LOCAL_STORAGE, { optional: true });
|
|
994
|
+
/**
|
|
995
|
+
* Признак, что скрипт выполняется в браузере.
|
|
996
|
+
*/
|
|
997
|
+
this.isBrowser = inject(IS_BROWSER);
|
|
994
998
|
/**
|
|
995
999
|
* {@link Observable} ключа доступа пользователя к API в {@link Storage}.
|
|
996
1000
|
*/
|
|
997
|
-
this.user$ = this.storageEvent$.pipe(filterByKey('userData'), toValue(), map((userData) => (userData ? new ScUser(JSON.parse(userData)) : null)),
|
|
1001
|
+
this.user$ = this.storageEvent$.pipe(filterByKey('userData'), toValue(), map((userData) => (userData ? new ScUser(JSON.parse(userData)) : null)), startWith(this.storage && this.isBrowser ? null : new ScUser({ metadata: {} })), // Инициализация пользователя при SSR для корректной работы связанных сервисов.
|
|
1002
|
+
filter(tuiIsPresent), shareReplay({ refCount: true, bufferSize: 1 }));
|
|
998
1003
|
/**
|
|
999
1004
|
* Сервис для работы с токенами.
|
|
1000
1005
|
*/
|
|
1001
1006
|
this.tokenService = inject(ScTokenService);
|
|
1002
|
-
/**
|
|
1003
|
-
* Признак, что скрипт выполняется в браузере.
|
|
1004
|
-
*/
|
|
1005
|
-
this.isBrowser = inject(IS_BROWSER);
|
|
1006
1007
|
/**
|
|
1007
1008
|
* Сервис аутентификации.
|
|
1008
1009
|
*/
|
|
@@ -6870,11 +6871,12 @@ class ScSeoService {
|
|
|
6870
6871
|
* Устанавливает Open Graph meta-теги.
|
|
6871
6872
|
*
|
|
6872
6873
|
* @param ogTitle Open Graph заголовок.
|
|
6874
|
+
* @param ogDescription Open Graph описание.
|
|
6873
6875
|
* @param ogImg Open Graph изображение.
|
|
6874
6876
|
* @param emitEventAfterSet Признак того, необходимо ли генерировать событие, после установки тегов. По умолчанию {@link true}.
|
|
6875
6877
|
*/
|
|
6876
|
-
setPageOpenGraphMetaTags(ogTitle = this.defaultSeo.title, ogImg = this.urls.logoUrl, emitEventAfterSet = true) {
|
|
6877
|
-
this.setOpenGraphMetaTags(ogTitle, `${this.urls.siteUrl}${this.router.url}`, ogImg);
|
|
6878
|
+
setPageOpenGraphMetaTags(ogTitle = this.defaultSeo.title, ogDescription = this.defaultSeo.description, ogImg = this.urls.logoUrl, emitEventAfterSet = true) {
|
|
6879
|
+
this.setOpenGraphMetaTags(ogTitle, ogDescription, `${this.urls.siteUrl}${this.router.url}`, ogImg);
|
|
6878
6880
|
if (emitEventAfterSet) {
|
|
6879
6881
|
this.isSetMetaTagsEventEmitter.emit();
|
|
6880
6882
|
}
|
|
@@ -6921,7 +6923,7 @@ class ScSeoService {
|
|
|
6921
6923
|
this.setPageTitle(title);
|
|
6922
6924
|
this.setPageMetaDescription(description);
|
|
6923
6925
|
this.setPageMetaKeywords(keywords);
|
|
6924
|
-
this.setOpenGraphMetaTags(title, `${this.urls.siteUrl}${this.router.url}`, img);
|
|
6926
|
+
this.setOpenGraphMetaTags(title, description, `${this.urls.siteUrl}${this.router.url}`, img);
|
|
6925
6927
|
meta.forEach((tag) => {
|
|
6926
6928
|
this.setPageMetaByName(tag.name, tag.content);
|
|
6927
6929
|
});
|
|
@@ -6990,13 +6992,15 @@ class ScSeoService {
|
|
|
6990
6992
|
* Устанавливает Open Graph meta-теги страницы для социальных сетей.
|
|
6991
6993
|
*
|
|
6992
6994
|
* @param title Заголовок страницы.
|
|
6995
|
+
* @param description Описание страницы.
|
|
6993
6996
|
* @param url Ссылка на страницу.
|
|
6994
6997
|
* @param img Изображение.
|
|
6995
6998
|
*/
|
|
6996
|
-
setOpenGraphMetaTags(title, url, img) {
|
|
6999
|
+
setOpenGraphMetaTags(title, description, url, img) {
|
|
6997
7000
|
this.setOpenGraphMetaByProperty('og:title', title);
|
|
6998
7001
|
this.setOpenGraphMetaByProperty('og:url', url);
|
|
6999
7002
|
this.setOpenGraphMetaByProperty('og:image', img);
|
|
7003
|
+
this.setOpenGraphMetaByProperty('og:description', description);
|
|
7000
7004
|
this.setOpenGraphMetaByProperty('og:type', 'website');
|
|
7001
7005
|
}
|
|
7002
7006
|
/**
|