ng-easycommerce-v18 0.3.13 → 0.3.14-beta.10
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/README.md +21 -0
- package/esm2022/lib/classes/filters/filter.mjs +27 -2
- package/esm2022/lib/constants/api.constants.service.mjs +42 -44
- package/esm2022/lib/constants/core.constants.service.mjs +2 -2
- package/esm2022/lib/ec-components/abstractions-components/menu-ec.component.mjs +17 -1
- package/esm2022/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.mjs +15 -12
- package/esm2022/lib/ec-components/auth-ec/password-reset-ec/password-reset-ec.component.mjs +7 -2
- package/esm2022/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.mjs +5 -3
- package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.mjs +141 -75
- package/esm2022/lib/ec-components/filters-ec/filters-ec.component.mjs +30 -5
- package/esm2022/lib/ec-components/header-ec/header-ec.component.mjs +32 -23
- package/esm2022/lib/ec-components/product-detail-ec/product-detail-ec.component.mjs +11 -10
- package/esm2022/lib/ec-components/related-products-ec/related-products-ec.component.mjs +6 -4
- package/esm2022/lib/ec-components/stores-ec/stores-ec.component.mjs +21 -6
- package/esm2022/lib/ec-components/widgets-ec/decidir-ec/decidir-ec.component.mjs +5 -3
- package/esm2022/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.mjs +4 -2
- package/esm2022/lib/ec-components/widgets-ec/redsys-catch-ec/redsys-catch-ec.component.mjs +135 -80
- package/esm2022/lib/ec-services/analytics/facebook-pixel.service.mjs +4 -2
- package/esm2022/lib/ec-services/analytics/google-analytics.service.mjs +7 -3
- package/esm2022/lib/ec-services/analytics/gtm.service.mjs +6 -3
- package/esm2022/lib/ec-services/analytics/metricool-pixel.service.mjs +4 -2
- package/esm2022/lib/ec-services/local-storage.service.mjs +21 -7
- package/esm2022/lib/ec-services/ngx-local-storage.service.mjs +24 -7
- package/esm2022/lib/ec-services/options.service.mjs +27 -3
- package/esm2022/lib/interfaces/filter.mjs +1 -1
- package/esm2022/lib/interfaces/options.mjs +1 -1
- package/fesm2022/ng-easycommerce-v18.mjs +603 -316
- package/fesm2022/ng-easycommerce-v18.mjs.map +1 -1
- package/lib/constants/api.constants.service.d.ts +13 -24
- package/lib/ec-components/abstractions-components/menu-ec.component.d.ts +12 -0
- package/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.d.ts +38 -16
- package/lib/ec-components/filters-ec/filters-ec.component.d.ts +12 -4
- package/lib/ec-components/header-ec/header-ec.component.d.ts +1 -1
- package/lib/ec-components/stores-ec/stores-ec.component.d.ts +2 -1
- package/lib/ec-components/widgets-ec/redsys-catch-ec/redsys-catch-ec.component.d.ts +26 -5
- package/lib/ec-services/local-storage.service.d.ts +4 -2
- package/lib/ec-services/ngx-local-storage.service.d.ts +4 -2
- package/lib/ec-services/options.service.d.ts +4 -0
- package/lib/interfaces/filter.d.ts +1 -0
- package/lib/interfaces/options.d.ts +2 -0
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { inject, Injectable } from '@angular/core';
|
|
1
|
+
import { inject, Injectable, PLATFORM_ID } from '@angular/core';
|
|
2
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
2
3
|
import { ConnectionService } from '../api';
|
|
3
4
|
import { BehaviorSubject, catchError, map, of, shareReplay } from 'rxjs';
|
|
4
5
|
import { ApiConstantsService, CoreConstantsService } from '../constants';
|
|
@@ -12,6 +13,10 @@ export class OptionsService {
|
|
|
12
13
|
* Maneja las peticiones a la API
|
|
13
14
|
*/
|
|
14
15
|
connection = inject(ConnectionService);
|
|
16
|
+
/**
|
|
17
|
+
* Platform ID para verificar si estamos en el navegador
|
|
18
|
+
*/
|
|
19
|
+
platformId = inject(PLATFORM_ID);
|
|
15
20
|
/**
|
|
16
21
|
* Constantes del core
|
|
17
22
|
*/
|
|
@@ -122,7 +127,26 @@ export class OptionsService {
|
|
|
122
127
|
* @returns
|
|
123
128
|
*/
|
|
124
129
|
removeAccents(str) {
|
|
125
|
-
|
|
130
|
+
if (isPlatformBrowser(this.platformId) && typeof String.prototype.normalize === 'function') {
|
|
131
|
+
return str.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
|
|
132
|
+
}
|
|
133
|
+
// Fallback para SSR - remover acentos manualmente
|
|
134
|
+
return str.replace(/[àáâãäå]/g, 'a')
|
|
135
|
+
.replace(/[èéêë]/g, 'e')
|
|
136
|
+
.replace(/[ìíîï]/g, 'i')
|
|
137
|
+
.replace(/[òóôõö]/g, 'o')
|
|
138
|
+
.replace(/[ùúûü]/g, 'u')
|
|
139
|
+
.replace(/[ýÿ]/g, 'y')
|
|
140
|
+
.replace(/[ñ]/g, 'n')
|
|
141
|
+
.replace(/[ç]/g, 'c')
|
|
142
|
+
.replace(/[ÀÁÂÃÄÅ]/g, 'A')
|
|
143
|
+
.replace(/[ÈÉÊË]/g, 'E')
|
|
144
|
+
.replace(/[ÌÍÎÏ]/g, 'I')
|
|
145
|
+
.replace(/[ÒÓÔÕÖ]/g, 'O')
|
|
146
|
+
.replace(/[ÙÚÛÜ]/g, 'U')
|
|
147
|
+
.replace(/[ÝŸ]/g, 'Y')
|
|
148
|
+
.replace(/[Ñ]/g, 'N')
|
|
149
|
+
.replace(/[Ç]/g, 'C');
|
|
126
150
|
}
|
|
127
151
|
/**
|
|
128
152
|
* Realiza un mapeo de los datos para darle un formato mas entendible a la
|
|
@@ -302,4 +326,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
302
326
|
providedIn: 'root'
|
|
303
327
|
}]
|
|
304
328
|
}], ctorParameters: () => [] });
|
|
305
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLXNlcnZpY2VzL29wdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxXQUFXLEVBQVEsTUFBTSxNQUFNLENBQUM7QUFDM0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUd6RTs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sY0FBYztJQUMxQjs7T0FFRztJQUNLLFVBQVUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMvQzs7T0FFRztJQUNLLFNBQVMsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNqRDs7T0FFRztJQUNLLFlBQVksR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNuRDs7T0FFRztJQUNLLGlCQUFpQixHQUFHLElBQUksZUFBZSxDQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELFdBQVcsR0FBMkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3BGOztPQUVHO0lBQ0ssZUFBZSxHQUFHLElBQUksZUFBZSxDQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELFNBQVMsR0FBMEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMvRTs7T0FFRztJQUNLLGlCQUFpQixHQUFHLElBQUksZUFBZSxDQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELFdBQVcsR0FBNEIs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QUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtxQkFDakksQ0FBQyxDQUFDO2lCQUNILENBQUM7Z0JBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuQixDQUFDLENBQUMsQ0FBQTtZQUNGLE9BQU8sTUFBTSxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7d0dBNVNXLGNBQWM7NEdBQWQsY0FBYyxjQUZkLE1BQU07OzRGQUVOLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbm5lY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vYXBpJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjYXRjaEVycm9yLCBtYXAsIE9ic2VydmFibGUsIG9mLCBzaGFyZVJlcGxheSwgdGFrZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBcGlDb25zdGFudHNTZXJ2aWNlLCBDb3JlQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IEF0dHJpYnV0ZSwgQ2F0ZWdvcnksIEZBUSwgU2VjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuLi9jbGFzc2VzJztcclxuLyoqXHJcbiAqIEVzdGUgc2VydmljaW8gcGVybWl0ZSBtYW5lamEgbGFzIENhdGVnb3JpYXMsIFNlY2Npb25lcyB5IEF0cmlidXRvcyBjb21vIG1lbnVlcyBcclxuICogcGFyYSBsYSBhcGxpY2FjacOzbi4gXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcblx0cHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPcHRpb25zU2VydmljZSB7XHJcblx0LyoqXHJcblx0ICogTWFuZWphIGxhcyBwZXRpY2lvbmVzIGEgbGEgQVBJXHJcblx0ICovXHJcblx0cHJpdmF0ZSBjb25uZWN0aW9uID0gaW5qZWN0KENvbm5lY3Rpb25TZXJ2aWNlKTtcclxuXHQvKipcclxuXHQgKiBDb25zdGFudGVzIGRlbCBjb3JlXHJcblx0ICovXHJcblx0cHJpdmF0ZSBjb25zdGFudHMgPSBpbmplY3QoQ29yZUNvbnN0YW50c1NlcnZpY2UpO1xyXG5cdC8qKlxyXG5cdCAqIENvbnN0YW50ZXMgZGUgbGEgQVBJXHJcblx0ICovXHJcblx0cHJpdmF0ZSBhcGlDb25zdGFudHMgPSBpbmplY3QoQXBpQ29uc3RhbnRzU2VydmljZSk7XHJcblx0LyoqXHJcblx0ICogTWFuZWphIGxvcyBjYW1iaW9zIGVuIGxhcyBjYXRlZ29yaWFzXHJcblx0ICovXHJcblx0cHJpdmF0ZSBjYXRlZ29yaWVzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q2F0ZWdvcnlbXT4oW10pO1xyXG5cdHByaXZhdGUgY2F0ZWdvcmllcyQ6IE9ic2VydmFibGU8Q2F0ZWdvcnlbXT4gPSB0aGlzLmNhdGVnb3JpZXNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cdC8qKlxyXG5cdCAqIE1hbmVqYSBsb3MgY2FtYmlvcyBlbiBsYXMgc2VjY2lvbmVzXHJcblx0ICovXHJcblx0cHJpdmF0ZSBzZWN0aW9uc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNlY3Rpb25bXT4oW10pO1xyXG5cdHByaXZhdGUgc2VjdGlvbnMkOiBPYnNlcnZhYmxlPFNlY3Rpb25bXT4gPSB0aGlzLnNlY3Rpb25zU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHQvKipcclxuXHQgKiBNYW5lamEgbG9zIGNhbWJpb3MgZW4gbG9zIGF0cmlidXRvc1xyXG5cdCAqL1xyXG5cdHByaXZhdGUgYXR0cmlidXRlc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF0dHJpYnV0ZVtdPihbXSk7XHJcblx0cHJpdmF0ZSBhdHRyaWJ1dGVzJDogT2JzZXJ2YWJsZTxBdHRyaWJ1dGVbXT4gPSB0aGlzLmF0dHJpYnV0ZXNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuXHQvL0FQSSBVUkxTXHJcblx0cHJpdmF0ZSByZWFkb25seSBTSE9QX0NIQU5ORUxfQVBJID0gYCR7dGhpcy5hcGlDb25zdGFudHMuU0hPUF9BUElfVVJMfSR7dGhpcy5hcGlDb25zdGFudHMuQ0hBTk5FTH0vYDtcclxuXHRwcml2YXRlIHJlYWRvbmx5IENNU19DSEFOTkVMX0FQSSA9IGAke3RoaXMuYXBpQ29uc3RhbnRzLkNNU19VUkx9JHt0aGlzLmFwaUNvbnN0YW50cy5DSEFOTkVMfS9gO1xyXG5cdC8qKlxyXG5cdCAqIERldnVlbHZlIGxhIFVSTCBwYXJhIG9idGVuZXIgbGFzIGNhdGVnb3JpYXMuXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0cHJpdmF0ZSB0YXhvbnNBcGkoKSB7IHJldHVybiBgJHt0aGlzLlNIT1BfQ0hBTk5FTF9BUEl9dGF4b25zLz9sb2NhbGU9JHt0aGlzLmFwaUNvbnN0YW50cy5MT0NBTEV9YCB9O1xyXG5cdC8qKlxyXG5cdCAqIERldnVlbHZlIGxhIFVSTCBwYXJhIG9idGVuZXIgbGFzIHNlY2Npb25lc1xyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdHByaXZhdGUgc2VjdGlvbnNBcGkoKSB7IHJldHVybiBgJHt0aGlzLkNNU19DSEFOTkVMX0FQSX1zZWN0aW9ucy8/bG9jYWxlPSR7dGhpcy5hcGlDb25zdGFudHMuTE9DQUxFfWAgfTtcclxuXHQvKipcclxuXHQgKiBEZXZ1ZWx2ZSBsYSBVUkwgcGFyYSBvYnRlbmVyIGxvcyBhdHJpYnV0b3MuIFNlIGxlIHB1ZWRlIGFwbGljYXIgZmxpdHJvcy5cclxuXHQgKiBAcGFyYW0gZmlsdGVyIFxyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdHByaXZhdGUgYXR0cmlidXRlc0FwaShmaWx0ZXIgPSAnJykgeyByZXR1cm4gYCR7dGhpcy5TSE9QX0NIQU5ORUxfQVBJfXByb2R1Y3Qtc2VhcmNoL2F0dHJpYnV0ZXMvP2xvY2FsZT0ke3RoaXMuYXBpQ29uc3RhbnRzLkxPQ0FMRX0mbGltaXQ9MSZwYWdlPTEke2ZpbHRlcn1gIH07XHJcblx0cHJpdmF0ZSBmYXFzQXBpKCkgeyByZXR1cm4gJ2Ntcy8nICsgdGhpcy5hcGlDb25zdGFudHMuQ0hBTk5FTCArICcvZmFxJyB9O1xyXG4gICAgcHJpdmF0ZSBwYWdlQ29udGVudEJ5Q29kZUFwaSA9IChjb2RlOiBzdHJpbmcpID0+IHRoaXMuY21zQmFzZSgpICsgJy8nICsgdGhpcy5jb25zdGFudHMuZ2V0Q2hhbm5lbCgpICsgJy9wYWdlLycgKyBjb2RlO1xyXG5cdHByaXZhdGUgY21zQmFzZSA9ICgpID0+ICdjbXMvJyArIHRoaXMuYXBpQ29uc3RhbnRzLkxPQ0FMRTtcclxuXHRjb25zdHJ1Y3RvcigpIHsgfVxyXG5cdC8qKlxyXG5cdCAqIE9idGllbmUgbGFzIGNhdGVnb3JpYXMgZGVsIGJhY2tlbmQuIFkgbG9zIG1hcGVhIHBhcmEgcXVlIHNlYSBtYXMgYW1pZ2FibGUgZWwgbWFuZWpvIGNvbW8gbWVuw7ouXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0cHVibGljIGdldENhdGVnb3JpZXMoKTogT2JzZXJ2YWJsZTxDYXRlZ29yeVtdPiB7XHJcblx0XHRpZiAodGhpcy5jYXRlZ29yaWVzU3ViamVjdC5nZXRWYWx1ZSgpLmxlbmd0aCA9PT0gMCkge1xyXG5cdFx0XHR0aGlzLmNvbm5lY3Rpb24uZ2V0KHRoaXMudGF4b25zQXBpKCkpLnBpcGUoXHJcblx0XHRcdFx0c2hhcmVSZXBsYXkoMSksXHJcblx0XHRcdFx0bWFwKChyZXNwb25zZTogQ2F0ZWdvcnlbXSkgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc3QgY2F0ZWdvcmllcyA9IHRoaXMuYXBwZW5kUGF0aHModHJ1ZSwgcmVzcG9uc2UpXHJcblx0XHRcdFx0XHR0aGlzLmNhdGVnb3JpZXNTdWJqZWN0Lm5leHQoY2F0ZWdvcmllcylcclxuXHRcdFx0XHRcdHJldHVybiBjYXRlZ29yaWVzXHJcblx0XHRcdFx0fSksXHJcblx0XHRcdFx0Y2F0Y2hFcnJvcigoZXJyb3I6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coYEVycm9yOiAke2Vycm9yfWApXHJcblx0XHRcdFx0XHR0aGlzLmNhdGVnb3JpZXNTdWJqZWN0Lm5leHQoW10pXHJcblx0XHRcdFx0XHRyZXR1cm4gb2YoW10pXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0KS5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHRcdHJldHVybiB0aGlzLmNhdGVnb3JpZXMkO1xyXG5cdH1cclxuXHQvKipcclxuXHQgKiBPYnRpZW5lIGxhcyBzZWNjaW9uZXMgZGVsIGJhY2tlbmQuIFkgbG9zIG1hcGVhIHBhcmEgcXVlIHNlYSBtYXMgYW1pZ2FibGUgZWwgbWFuZWpvIGNvbW8gbWVuw7ouXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0cHVibGljIGdldFNlY3Rpb25zKCk6IE9ic2VydmFibGU8U2VjdGlvbltdPiB7XHJcblx0XHRpZiAodGhpcy5zZWN0aW9uc1N1YmplY3QuZ2V0VmFsdWUoKS5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0dGhpcy5jb25uZWN0aW9uLmdldCh0aGlzLnNlY3Rpb25zQXBpKCkpLnBpcGUoXHJcblx0XHRcdFx0c2hhcmVSZXBsYXkoMSksXHJcblx0XHRcdFx0bWFwKChyZXNwb25zZTogU2VjdGlvbltdKSA9PiB7XHJcblx0XHRcdFx0XHRsZXQgc2VjdGlvbnMgPSByZXNwb25zZS5maWx0ZXIoKHNlY3Rpb246IFNlY3Rpb24pID0+IHNlY3Rpb24uY29kZSAhPSAnaG9tZScpXHJcblx0XHRcdFx0XHRzZWN0aW9ucyA9IHNlY3Rpb25zLm1hcCgoc2VjdGlvbjogU2VjdGlvbikgPT4gdGhpcy5hcHBlbmRTZWN0aW9uKHNlY3Rpb24pKVxyXG5cdFx0XHRcdFx0dGhpcy5zZWN0aW9uc1N1YmplY3QubmV4dChzZWN0aW9ucylcclxuXHRcdFx0XHRcdHJldHVybiBzZWN0aW9uc1xyXG5cdFx0XHRcdH0pKS5zdWJzY3JpYmUoKVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHRoaXMuc2VjdGlvbnMkO1xyXG5cdH1cclxuXHQvKipcclxuXHQgKiBPYnRpZW5lIGxvcyBhdHJpYnV0b3MgZGVsIGJhY2tlbmQuIFkgbG9zIG1hcGVhIHBhcmEgcXVlIHNlYSBtYXMgYW1pZ2FibGUgZWwgbWFuZWpvIGNvbW8gbWVuw7ouXHJcblx0ICogQHBhcmFtIHBhcmFtcyBcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRwdWJsaWMgZ2V0QXR0cmlidXRlcyhwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPEF0dHJpYnV0ZVtdPiB7XHJcblx0XHRpZiAodGhpcy5hdHRyaWJ1dGVzU3ViamVjdC5nZXRWYWx1ZSgpLmxlbmd0aCA9PT0gMCkge1xyXG5cdFx0XHR0aGlzLmNvbm5lY3Rpb24uZ2V0KHRoaXMuYXR0cmlidXRlc0FwaShwYXJhbXMpKS5waXBlKFxyXG5cdFx0XHRcdHNoYXJlUmVwbGF5KDEpLFxyXG5cdFx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSB8IEF0dHJpYnV0ZSkgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc3QgYXR0cmlidXRlcyA9IHRoaXMuYXBwZW5kUGF0aHMoZmFsc2UsIChyZXNwb25zZS5hdHRyaWJ1dGVzWzBdIHx8IHJlc3BvbnNlKSlcclxuXHRcdFx0XHRcdHRoaXMuYXR0cmlidXRlc1N1YmplY3QubmV4dChhdHRyaWJ1dGVzKVxyXG5cdFx0XHRcdFx0cmV0dXJuIGF0dHJpYnV0ZXNcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0KSkuc3Vic2NyaWJlKClcclxuXHRcdH1cclxuXHRcdHJldHVybiB0aGlzLmF0dHJpYnV0ZXMkO1xyXG5cdH1cclxuXHJcblxyXG5cdC8vIEhFTFBFUlNcclxuXHRzbHVnaWZ5KHZhbHVlOiBhbnkpOiBzdHJpbmcge1xyXG5cdFx0aWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XHJcblx0XHRcdHJldHVybiAnJzsgLy8gbyBkZXZvbHZlciB1biBzbHVnIHBvciBkZWZlY3RvIHNpIHByZWZlcsOtc1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHZhbHVlLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFxzKy9nLCAnLScpLnJlcGxhY2UoL1teXFx3XFwtXSsvZywgJycpO1xyXG5cdH1cdC8qKlxyXG5cdCAqIEVsaW1pbmEgbG9zIGFjZW50b3NcclxuXHQgKiBAcGFyYW0gc3RyIFxyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdHByaXZhdGUgcmVtb3ZlQWNjZW50cyhzdHI6IHN0cmluZykge1xyXG5cdFx0cmV0dXJuIHN0ci5ub3JtYWxpemUoXCJORkRcIikucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgXCJcIik7XHJcblx0fVxyXG5cdC8qKlxyXG5cdCAqIFJlYWxpemEgdW4gbWFwZW8gZGUgbG9zIGRhdG9zIHBhcmEgZGFybGUgdW4gZm9ybWF0byBtYXMgZW50ZW5kaWJsZSBhIGxhXHJcblx0ICogaG9yYSBkZSB1c2FyIGNvbW8gdW4gbWVuw7ouXHJcblx0ICogQHBhcmFtIGlzQ2F0ZWdvcnkgVXRpbGl6YWRvIHBhcmEgZGlmZXJlbmNpYXIgc2kgZXMgY2F0ZWdvcsOtYSBvIGF0cmlidXRvLlxyXG5cdCAqIEBwYXJhbSByZXNwb25zZSBSZXNwdWVzdGEgcXVlIG9idGllbmUgZGVsIGJhY2tlbmQgY29uIGxvcyBkYXRvcyBhIG1hcGVhci5cclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRwdWJsaWMgYXBwZW5kUGF0aHMoaXNDYXRlZ29yeTogYm9vbGVhbiwgcmVzcG9uc2U6IGFueSkge1xyXG5cdFx0Y29uc3Qgbm9ybWFsaXplZFJlc3BvbnNlID0gQXJyYXkuaXNBcnJheShyZXNwb25zZSkgPyByZXNwb25zZSA6IFtyZXNwb25zZV07XHJcblxyXG5cdFx0Y29uc3QgcmVzdWx0ID0gbm9ybWFsaXplZFJlc3BvbnNlLm1hcCgoc3ViZWxlbWVudDogYW55KSA9PiB7XHJcblx0XHRcdGlmICghc3ViZWxlbWVudC5jaGlsZHJlbiB8fCBzdWJlbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA9PSAwKSB7XHJcblx0XHRcdFx0c3ViZWxlbWVudC5jaGlsZHJlbiA9IFtdO1xyXG5cdFx0XHRcdHN1YmVsZW1lbnQucGF0aCA9IGlzQ2F0ZWdvcnlcclxuXHRcdFx0XHRcdD8gdGhpcy5jb25zdGFudHMuUFJPRFVDVF9MSVNUX1JPVVRFICsgJ2NhdGVnb3JpZXMvJyArIHRoaXMuc2x1Z2lmeShzdWJlbGVtZW50LnNsdWcgPz8gc3ViZWxlbWVudC5uYW1lKVxyXG5cdFx0XHRcdFx0OiB0aGlzLmNvbnN0YW50cy5QUk9EVUNUX0xJU1RfUk9VVEUgKyAnYXR0cmlidXRlcy8nICsgdGhpcy5zbHVnaWZ5KHN1YmVsZW1lbnQuc2x1ZyA/PyBzdWJlbGVtZW50Lm5hbWUpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKHN1YmVsZW1lbnQuY2hpbGRyZW4pIHtcclxuXHRcdFx0XHRzdWJlbGVtZW50LnNsdWcgPSBzdWJlbGVtZW50LnNsdWcgfHwgdGhpcy5zbHVnaWZ5KHN1YmVsZW1lbnQubmFtZSk7XHJcblx0XHRcdFx0c3ViZWxlbWVudC5jaGlsZHJlbiA9IHRoaXMuYXBwZW5kUGF0aHMoaXNDYXRlZ29yeSwgc3ViZWxlbWVudC5jaGlsZHJlbik7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHN1YmVsZW1lbnQucGF0aCA9IGlzQ2F0ZWdvcnlcclxuXHRcdFx0XHQ/IHRoaXMuY29uc3RhbnRzLlBST0RVQ1RfTElTVF9ST1VURSArICdjYXRlZ29yaWVzLycgKyB0aGlzLnNsdWdpZnkoc3ViZWxlbWVudC5zbHVnID8/IHN1YmVsZW1lbnQubmFtZSlcclxuXHRcdFx0XHQ6IHRoaXMuY29uc3RhbnRzLlBST0RVQ1RfTElTVF9ST1VURSArICdhdHRyaWJ1dGVzLycgKyB0aGlzLnNsdWdpZnkoc3ViZWxlbWVudC5zbHVnID8/IHN1YmVsZW1lbnQubmFtZSk7XHJcblxyXG5cdFx0XHRyZXR1cm4gc3ViZWxlbWVudDtcclxuXHRcdH0pO1xyXG5cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fVxyXG5cdC8qKlxyXG5cdCAqIEdlbmVyYSB1biBtYXBlbyBkZSBzZWNjaW9uZXMgcGFyYSBxdWUgcXVlZGVuIG1hcyBhbWlnYWJsZXMgYSBsYSBob3JhIGRlIG1hbmVqYXIgY29tbyBtZW7Dui5cclxuXHQgKiBAcGFyYW0gc2VjdGlvbiBcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRwcml2YXRlIGFwcGVuZFNlY3Rpb24oc2VjdGlvbjogYW55KSB7XHJcblx0XHRsZXQgZGF0YTogYW55ID0ge307XHJcblx0XHRpZiAoc2VjdGlvbi5wYWdlcz8ubGVuZ3RoKSB7XHJcblx0XHRcdGRhdGEudHlwZSA9ICdzdWInO1xyXG5cdFx0XHRkYXRhLmNoaWxkcmVuID0gc2VjdGlvbi5wYWdlcy5tYXAoKHBhZ2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHRjb2RlOiBwYWdlLmNvZGUsXHJcblx0XHRcdFx0XHRuYW1lOiBwYWdlLm5hbWUsXHJcblx0XHRcdFx0XHR0eXBlOiAnbGluaycsXHJcblx0XHRcdFx0XHRwYXRoOiB0aGlzLmNvbnN0YW50cy5TRUNUSU9OU19ST1VURSArIChwYWdlLnNsdWcgPyBwYWdlLnNsdWcgOiBwYWdlLmNvZGUpLFxyXG5cdFx0XHRcdFx0Ly8gcGF0aDogdGhpcy5jb25zdGFudHMuU0VDVElPTlNfUk9VVEUgKyBwYWdlLnNsdWcsXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdFx0Ly9kYXRhLnRpdGxlID0gc2VjdGlvbi5uYW1lO1xyXG5cdFx0XHRkYXRhLm5hbWUgPSBzZWN0aW9uLm5hbWU7XHJcblx0XHRcdGRhdGEucGF0aCA9IHRoaXMuY29uc3RhbnRzLlNFQ1RJT05TX1JPVVRFICsgKHNlY3Rpb24uc2x1ZyA/IHNlY3Rpb24uc2x1ZyA6IHNlY3Rpb24uY29kZSk7XHJcblx0XHRcdGRhdGEuY29kZSA9IHNlY3Rpb24uY29kZTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGRhdGEuY29kZSA9IHNlY3Rpb24uY29kZTtcclxuXHRcdFx0Ly9kYXRhLnRpdGxlID0gc2VjdGlvbi5uYW1lO1xyXG5cdFx0XHRkYXRhLm5hbWUgPSBzZWN0aW9uLm5hbWU7XHJcblx0XHRcdGRhdGEudHlwZSA9ICdsaW5rJztcclxuXHRcdFx0ZGF0YS5jaGlsZHJlbiA9IFtdO1xyXG5cdFx0XHRkYXRhLnBhdGggPSB0aGlzLmNvbnN0YW50cy5TRUNUSU9OU19ST1VURSArIChzZWN0aW9uLnNsdWcgPyBzZWN0aW9uLnNsdWcgOiBzZWN0aW9uLmNvZGUpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIGRhdGE7XHJcblx0fVxyXG5cdC8qKlxyXG5cdCAqIE1hcGVhIGxvcyBlbGVtZW50b3MgcGFyYSBkYXJsZSB1biBmb3JtYXRvIG1hcyBhbWlnYWJsZSBwYXJhIGxvcyBtZW7DumVzIHkgZmlsdHJvcy5cclxuXHQgKiBAcGFyYW0gZWxlbWVudHMgY2F0ZWdvcmlhcyB8IGF0cmlidXRvcyBcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRwdWJsaWMgZ2VuZXJhdGVNZW51ID0gKGVsZW1lbnRzOiBhbnkpID0+IHtcclxuXHRcdHJldHVybiBlbGVtZW50cy5tYXAoKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG5cdFx0XHRpZiAoZWxlbWVudC5jaGlsZHJlbiAmJiBlbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA9PSAwKSB7XHJcblx0XHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRcdC4uLmVsZW1lbnQsXHJcblx0XHRcdFx0XHR0aXRsZTogZWxlbWVudC5uYW1lLFxyXG5cdFx0XHRcdFx0cGF0aDogZWxlbWVudC5wYXRoLFxyXG5cdFx0XHRcdFx0dHlwZTogJ2xpbmsnLFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdFx0Li4uZWxlbWVudCxcclxuXHRcdFx0XHRcdHRpdGxlOiBlbGVtZW50Lm5hbWUsXHJcblx0XHRcdFx0XHR0eXBlOiAnc3ViJyxcclxuXHRcdFx0XHRcdHBhdGg6IGVsZW1lbnQucGF0aCxcclxuXHRcdFx0XHRcdGNoaWxkcmVuOiAoZWxlbWVudC5jaGlsZHJlbiA/IHRoaXMuZ2VuZXJhdGVNZW51KGVsZW1lbnQuY2hpbGRyZW4pIDogW10pXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9KVxyXG5cdH1cclxuXHQvKipcclxuXHQgKiBEZXZ1ZWx2ZSBsb3MgZWxlbWVudG9zIGRlbCBicmVhZGNydW1iLlxyXG5cdCAqIEBwYXJhbSBjb2RlIFxyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdGdldEJyZWFkY3J1bWIgPSAoY29kZTogYW55KSA9PiB7XHJcblx0XHRpZiAoIWNvZGUpIHJldHVybiBudWxsO1xyXG5cdFx0bGV0IGJyZWFkY3J1bWIgPSB0aGlzLmdlbmVyYXRlQnJlYWRjcnVtYihjb2RlLCB0aGlzLmdlbmVyYXRlTWVudSh0aGlzLmNhdGVnb3JpZXNTdWJqZWN0LnZhbHVlKSwgW10pO1xyXG5cdFx0aWYgKCFicmVhZGNydW1iIHx8ICFicmVhZGNydW1iLmxlbmd0aCkgYnJlYWRjcnVtYiA9IHRoaXMuZ2VuZXJhdGVCcmVhZGNydW1iKGNvZGUsIHRoaXMuZ2VuZXJhdGVNZW51KHRoaXMuYXR0cmlidXRlc1N1YmplY3QudmFsdWUpLCBbXSk7XHJcblx0XHRyZXR1cm4gKGJyZWFkY3J1bWIgJiYgYnJlYWRjcnVtYi5sZW5ndGgpICYmIGJyZWFkY3J1bWIucmV2ZXJzZSgpO1xyXG5cdH1cclxuXHQvKipcclxuXHQgKiBHZW5lcmEgbG9zIGJyZWFkY3J1bWJzIGVuIGJhc2UgYSBsb3MgZmlsdHJvcyBhcGxpY2Fkb3MuXHJcblx0ICogQHBhcmFtIGZpbHRlcnMgXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0Z2V0QnJlYWRjcnVtYkJ5RmlsdGVycyA9IChmaWx0ZXJzOiBGaWx0ZXJbXSkgPT4ge1xyXG5cdFx0bGV0IGZpbmFsX3Jlc3VsdDogYW55W10gPSBbXTtcclxuXHRcdGZpbHRlcnMuZm9yRWFjaChmaWx0ZXIgPT4ge1xyXG5cdFx0XHRsZXQgcmVzdWx0ID0gZmlsdGVyLmdldFNlbGVjdGVkTGlzdCgpO1xyXG5cdFx0XHRpZiAoIXJlc3VsdCB8fCAhcmVzdWx0Lmxlbmd0aCkgcmV0dXJuO1xyXG5cclxuXHRcdFx0aWYgKGZpbHRlci50eXBlKCkgPT0gJ2NhdGVnb3JpZXMnKSBmaW5hbF9yZXN1bHQudW5zaGlmdCguLi50aGlzLmdlbmVyYXRlQnJlYWRjcnVtYihyZXN1bHRbMF0sIGZpbHRlci5kYXRhLCBbXSkucmV2ZXJzZSgpKTtcclxuXHRcdFx0ZWxzZSByZXN1bHQuZm9yRWFjaChcclxuXHRcdFx0XHQoY29kZTogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRsZXQgYnJlYWRjcnVtYiA9IHRoaXMuZ2VuZXJhdGVCcmVhZGNydW1iKGNvZGUsIGZpbHRlci5kYXRhLCBbXSlcclxuXHRcdFx0XHRcdGJyZWFkY3J1bWIubGVuZ3RoICYmIGZpbmFsX3Jlc3VsdC5wdXNoKGJyZWFkY3J1bWJbMF0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0KTtcclxuXHRcdH0pO1xyXG5cclxuXHRcdHJldHVybiBmaW5hbF9yZXN1bHQ7XHJcblx0fVxyXG5cdC8qKlxyXG5cdCAqIEdlbmVyYSBlbCBsaXN0YWRvIGRlIGJyZWFkY3J1bWIuXHJcblx0ICogQHBhcmFtIGNvZGUgXHJcblx0ICogQHBhcmFtIGVsZW1lbnRzIGZpbHRyb3MgYWN0dWFsZXMgZW4gZWwgZnJvbnRlbmRcclxuXHQgKiBAcGFyYW0gcmVzdWx0IGRhdG9zIGEgYWN0dWFsaXphciBjb24gZWwgbnVldm8gbGlzdGFkbyBkZSBicmVhZGNydW1iXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0cHJpdmF0ZSBnZW5lcmF0ZUJyZWFkY3J1bWIgPSAoY29kZTogc3RyaW5nLCBlbGVtZW50czogYW55LCByZXN1bHQ6IGFueSkgPT4ge1xyXG5cdFx0bGV0IGVsZW1lbnQgPSBlbGVtZW50cy5maW5kKChlbGVtOiBhbnkpID0+IGVsZW0uY29kZSA9PSBjb2RlKTtcclxuXHRcdGlmIChlbGVtZW50KSB7XHJcblx0XHRcdHJlc3VsdC5wdXNoKGVsZW1lbnQpO1xyXG5cdFx0fVxyXG5cdFx0ZWxzZSB7XHJcblx0XHRcdGVsZW1lbnRzLnNvbWUoKGVsZW06IGFueSkgPT4ge1xyXG5cdFx0XHRcdGlmIChlbGVtLmNoaWxkcmVuICYmIGVsZW0uY2hpbGRyZW4ubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRjb25zdCBsZW5ndGggPSByZXN1bHQubGVuZ3RoO1xyXG5cdFx0XHRcdFx0bGV0IG5ld19yZXN1bHQgPSB0aGlzLmdlbmVyYXRlQnJlYWRjcnVtYihjb2RlLCBlbGVtLmNoaWxkcmVuLCByZXN1bHQpO1xyXG5cdFx0XHRcdFx0aWYgKG5ld19yZXN1bHQubGVuZ3RoID4gbGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRcdHJlc3VsdCA9IG5ld19yZXN1bHQ7XHJcblx0XHRcdFx0XHRcdHJlc3VsdC5wdXNoKGVsZW0pO1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0XHR9KVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHJlc3VsdDtcclxuXHR9XHJcblx0cHVibGljIGdldFNlY3Rpb25Db250ZW50QnlMaW5rID0gKGxpbms6IGFueSkgPT5cclxuXHRcdHRoaXMuY29ubmVjdGlvbi5nZXRIVE1MKHRoaXMucGFnZUNvbnRlbnRCeUNvZGVBcGkobGluaykpLnBpcGUoXHJcblx0XHRcdG1hcChodG1sID0+IGh0bWwuc3BsaXQoJzwvaGVhZD4nKVtodG1sLnNwbGl0KCc8L2hlYWQ+JykubGVuZ3RoIC0gMV0pLFxyXG5cdFx0XHRjYXRjaEVycm9yKGUgPT4gb2YoZmFsc2UpKVxyXG5cdFx0KTtcclxuXHJcblx0XHRcclxuXHJcblx0Z2V0RkFRKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuY29ubmVjdGlvbi5nZXQodGhpcy5mYXFzQXBpKCkpLnBpcGUobWFwKHJlc3BvbnNlID0+IHtcclxuXHRcdFx0bGV0IHJlc3VsdDogRkFRW10gPSBbXTtcclxuXHRcdFx0cmVzcG9uc2UuZm9yRWFjaCgocmVzcG9uc2VfZmFxOiBhbnkpID0+IHtcclxuXHRcdFx0XHRsZXQgZmFxczogRkFRID0ge1xyXG5cdFx0XHRcdFx0Y29kZTogcmVzcG9uc2VfZmFxLmNvZGUsXHJcblx0XHRcdFx0XHRwb3NpdGlvbjogcmVzcG9uc2VfZmFxLnBvc2l0aW9uLFxyXG5cdFx0XHRcdFx0dGl0bGU6IHJlc3BvbnNlX2ZhcS50cmFuc2xhdGlvbnNbdGhpcy5hcGlDb25zdGFudHMuTE9DQUxFXS50b3BpYyxcclxuXHRcdFx0XHRcdHF1ZXN0aW9uczogcmVzcG9uc2VfZmFxLmZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucy5tYXAoKGFza2VkX3F1ZXN0aW9uOiBhbnkpID0+ICh7XHJcblx0XHRcdFx0XHRcdGNvZGU6IGFza2VkX3F1ZXN0aW9uLmNvZGUsXHJcblx0XHRcdFx0XHRcdHBvc2l0aW9uOiBhc2tlZF9xdWVzdGlvbi5wb3NpdGlvbixcclxuXHRcdFx0XHRcdFx0cXVlc3Rpb246IGFza2VkX3F1ZXN0aW9uLnRyYW5zbGF0aW9uc1t0aGlzLmFwaUNvbnN0YW50cy5MT0NBTEVdID8gYXNrZWRfcXVlc3Rpb24udHJhbnNsYXRpb25zW3RoaXMuYXBpQ29uc3RhbnRzLkxPQ0FMRV0ucXVlc3Rpb24gOiAnJyxcclxuXHRcdFx0XHRcdFx0YW5zd2VyOiBhc2tlZF9xdWVzdGlvbi50cmFuc2xhdGlvbnNbdGhpcy5hcGlDb25zdGFudHMuTE9DQUxFXSA/IGFza2VkX3F1ZXN0aW9uLnRyYW5zbGF0aW9uc1t0aGlzLmFwaUNvbnN0YW50cy5MT0NBTEVdLmFuc3dlciA6ICcnLFxyXG5cdFx0XHRcdFx0fSkpXHJcblx0XHRcdFx0fTtcclxuXHRcdFx0XHRyZXN1bHQucHVzaChmYXFzKTtcclxuXHRcdFx0fSlcclxuXHRcdFx0cmV0dXJuIHJlc3VsdDtcclxuXHRcdH0pKTtcclxuXHR9XHJcbn0gXHJcbiJdfQ==
|
|
329
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLXNlcnZpY2VzL29wdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsV0FBVyxFQUFRLE1BQU0sTUFBTSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFHekU7OztHQUdHO0FBSUgsTUFBTSxPQUFPLGNBQWM7SUFDMUI7O09BRUc7SUFDSyxVQUFVLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDL0M7O09BRUc7SUFDSyxVQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pDOztPQUVHO0lBQ0ssU0FBUyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ2pEOztPQUVHO0lBQ0ssWUFBWSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ25EOztPQUVHO0lBQ0ssaUJBQWlCLEdBQUcsSUFBSSxlQUFlLENBQWEsRUFBRSxDQUFDLENBQUM7SUFDeEQsV0FBVyxHQUEyQixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDcEY7O09BRUc7SUFDSyxlQUFlLEdBQUcsSUFBSSxlQUFlLENBQVksRUFBRSxDQUFDLENBQUM7SUFDckQsU0FBUyxHQUEwQixJQUFJ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Q0FBQztnQkFDRixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25CLENBQUMsQ0FBQyxDQUFBO1lBQ0YsT0FBTyxNQUFNLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0FuVVcsY0FBYzs0R0FBZCxjQUFjLGNBRmQsTUFBTTs7NEZBRU4sY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29ubmVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9hcGknO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNhdGNoRXJyb3IsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHNoYXJlUmVwbGF5LCB0YWtlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFwaUNvbnN0YW50c1NlcnZpY2UsIENvcmVDb25zdGFudHNTZXJ2aWNlIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQXR0cmlidXRlLCBDYXRlZ29yeSwgRkFRLCBTZWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEZpbHRlciB9IGZyb20gJy4uL2NsYXNzZXMnO1xyXG4vKipcclxuICogRXN0ZSBzZXJ2aWNpbyBwZXJtaXRlIG1hbmVqYSBsYXMgQ2F0ZWdvcmlhcywgU2VjY2lvbmVzIHkgQXRyaWJ1dG9zIGNvbW8gbWVudWVzIFxyXG4gKiBwYXJhIGxhIGFwbGljYWNpw7NuLiBcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuXHRwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE9wdGlvbnNTZXJ2aWNlIHtcclxuXHQvKipcclxuXHQgKiBNYW5lamEgbGFzIHBldGljaW9uZXMgYSBsYSBBUElcclxuXHQgKi9cclxuXHRwcml2YXRlIGNvbm5lY3Rpb24gPSBpbmplY3QoQ29ubmVjdGlvblNlcnZpY2UpO1xyXG5cdC8qKlxyXG5cdCAqIFBsYXRmb3JtIElEIHBhcmEgdmVyaWZpY2FyIHNpIGVzdGFtb3MgZW4gZWwgbmF2ZWdhZG9yXHJcblx0ICovXHJcblx0cHJpdmF0ZSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcclxuXHQvKipcclxuXHQgKiBDb25zdGFudGVzIGRlbCBjb3JlXHJcblx0ICovXHJcblx0cHJpdmF0ZSBjb25zdGFudHMgPSBpbmplY3QoQ29yZUNvbnN0YW50c1NlcnZpY2UpO1xyXG5cdC8qKlxyXG5cdCAqIENvbnN0YW50ZXMgZGUgbGEgQVBJXHJcblx0ICovXHJcblx0cHJpdmF0ZSBhcGlDb25zdGFudHMgPSBpbmplY3QoQXBpQ29uc3RhbnRzU2VydmljZSk7XHJcblx0LyoqXHJcblx0ICogTWFuZWphIGxvcyBjYW1iaW9zIGVuIGxhcyBjYXRlZ29yaWFzXHJcblx0ICovXHJcblx0cHJpdmF0ZSBjYXRlZ29yaWVzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q2F0ZWdvcnlbXT4oW10pO1xyXG5cdHByaXZhdGUgY2F0ZWdvcmllcyQ6IE9ic2VydmFibGU8Q2F0ZWdvcnlbXT4gPSB0aGlzLmNhdGVnb3JpZXNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cdC8qKlxyXG5cdCAqIE1hbmVqYSBsb3MgY2FtYmlvcyBlbiBsYXMgc2VjY2lvbmVzXHJcblx0ICovXHJcblx0cHJpdmF0ZSBzZWN0aW9uc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNlY3Rpb25bXT4oW10pO1xyXG5cdHByaXZhdGUgc2VjdGlvbnMkOiBPYnNlcnZhYmxlPFNlY3Rpb25bXT4gPSB0aGlzLnNlY3Rpb25zU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHQvKipcclxuXHQgKiBNYW5lamEgbG9zIGNhbWJpb3MgZW4gbG9zIGF0cmlidXRvc1xyXG5cdCAqL1xyXG5cdHByaXZhdGUgYXR0cmlidXRlc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF0dHJpYnV0ZVtdPihbXSk7XHJcblx0cHJpdmF0ZSBhdHRyaWJ1dGVzJDogT2JzZXJ2YWJsZTxBdHRyaWJ1dGVbXT4gPSB0aGlzLmF0dHJpYnV0ZXNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuXHQvL0FQSSBVUkxTXHJcblx0cHJpdmF0ZSByZWFkb25seSBTSE9QX0NIQU5ORUxfQVBJID0gYCR7dGhpcy5hcGlDb25zdGFudHMuU0hPUF9BUElfVVJMfSR7dGhpcy5hcGlDb25zdGFudHMuQ0hBTk5FTH0vYDtcclxuXHRwcml2YXRlIHJlYWRvbmx5IENNU19DSEFOTkVMX0FQSSA9IGAke3RoaXMuYXBpQ29uc3RhbnRzLkNNU19VUkx9JHt0aGlzLmFwaUNvbnN0YW50cy5DSEFOTkVMfS9gO1xyXG5cdC8qKlxyXG5cdCAqIERldnVlbHZlIGxhIFVSTCBwYXJhIG9idGVuZXIgbGFzIGNhdGVnb3JpYXMuXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0cHJpdmF0ZSB0YXhvbnNBcGkoKSB7IHJldHVybiBgJHt0aGlzLlNIT1BfQ0hBTk5FTF9BUEl9dGF4b25zLz9sb2NhbGU9JHt0aGlzLmFwaUNvbnN0YW50cy5MT0NBTEV9YCB9O1xyXG5cdC8qKlxyXG5cdCAqIERldnVlbHZlIGxhIFVSTCBwYXJhIG9idGVuZXIgbGFzIHNlY2Npb25lc1xyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdHByaXZhdGUgc2VjdGlvbnNBcGkoKSB7IHJldHVybiBgJHt0aGlzLkNNU19DSEFOTkVMX0FQSX1zZWN0aW9ucy8/bG9jYWxlPSR7dGhpcy5hcGlDb25zdGFudHMuTE9DQUxFfWAgfTtcclxuXHQvKipcclxuXHQgKiBEZXZ1ZWx2ZSBsYSBVUkwgcGFyYSBvYnRlbmVyIGxvcyBhdHJpYnV0b3MuIFNlIGxlIHB1ZWRlIGFwbGljYXIgZmxpdHJvcy5cclxuXHQgKiBAcGFyYW0gZmlsdGVyIFxyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdHByaXZhdGUgYXR0cmlidXRlc0FwaShmaWx0ZXIgPSAnJykgeyByZXR1cm4gYCR7dGhpcy5TSE9QX0NIQU5ORUxfQVBJfXByb2R1Y3Qtc2VhcmNoL2F0dHJpYnV0ZXMvP2xvY2FsZT0ke3RoaXMuYXBpQ29uc3RhbnRzLkxPQ0FMRX0mbGltaXQ9MSZwYWdlPTEke2ZpbHRlcn1gIH07XHJcblx0cHJpdmF0ZSBmYXFzQXBpKCkgeyByZXR1cm4gJ2Ntcy8nICsgdGhpcy5hcGlDb25zdGFudHMuQ0hBTk5FTCArICcvZmFxJyB9O1xyXG4gICAgcHJpdmF0ZSBwYWdlQ29udGVudEJ5Q29kZUFwaSA9IChjb2RlOiBzdHJpbmcpID0+IHRoaXMuY21zQmFzZSgpICsgJy8nICsgdGhpcy5jb25zdGFudHMuZ2V0Q2hhbm5lbCgpICsgJy9wYWdlLycgKyBjb2RlO1xyXG5cdHByaXZhdGUgY21zQmFzZSA9ICgpID0+ICdjbXMvJyArIHRoaXMuYXBpQ29uc3RhbnRzLkxPQ0FMRTtcclxuXHRjb25zdHJ1Y3RvcigpIHsgfVxyXG5cdC8qKlxyXG5cdCAqIE9idGllbmUgbGFzIGNhdGVnb3JpYXMgZGVsIGJhY2tlbmQuIFkgbG9zIG1hcGVhIHBhcmEgcXVlIHNlYSBtYXMgYW1pZ2FibGUgZWwgbWFuZWpvIGNvbW8gbWVuw7ouXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0cHVibGljIGdldENhdGVnb3JpZXMoKTogT2JzZXJ2YWJsZTxDYXRlZ29yeVtdPiB7XHJcblx0XHRpZiAodGhpcy5jYXRlZ29yaWVzU3ViamVjdC5nZXRWYWx1ZSgpLmxlbmd0aCA9PT0gMCkge1xyXG5cdFx0XHR0aGlzLmNvbm5lY3Rpb24uZ2V0KHRoaXMudGF4b25zQXBpKCkpLnBpcGUoXHJcblx0XHRcdFx0c2hhcmVSZXBsYXkoMSksXHJcblx0XHRcdFx0bWFwKChyZXNwb25zZTogQ2F0ZWdvcnlbXSkgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc3QgY2F0ZWdvcmllcyA9IHRoaXMuYXBwZW5kUGF0aHModHJ1ZSwgcmVzcG9uc2UpXHJcblx0XHRcdFx0XHR0aGlzLmNhdGVnb3JpZXNTdWJqZWN0Lm5leHQoY2F0ZWdvcmllcylcclxuXHRcdFx0XHRcdHJldHVybiBjYXRlZ29yaWVzXHJcblx0XHRcdFx0fSksXHJcblx0XHRcdFx0Y2F0Y2hFcnJvcigoZXJyb3I6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coYEVycm9yOiAke2Vycm9yfWApXHJcblx0XHRcdFx0XHR0aGlzLmNhdGVnb3JpZXNTdWJqZWN0Lm5leHQoW10pXHJcblx0XHRcdFx0XHRyZXR1cm4gb2YoW10pXHJcblx0XHRcdFx0fSlcclxuXHRcdFx0KS5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHRcdHJldHVybiB0aGlzLmNhdGVnb3JpZXMkO1xyXG5cdH1cclxuXHQvKipcclxuXHQgKiBPYnRpZW5lIGxhcyBzZWNjaW9uZXMgZGVsIGJhY2tlbmQuIFkgbG9zIG1hcGVhIHBhcmEgcXVlIHNlYSBtYXMgYW1pZ2FibGUgZWwgbWFuZWpvIGNvbW8gbWVuw7ouXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0cHVibGljIGdldFNlY3Rpb25zKCk6IE9ic2VydmFibGU8U2VjdGlvbltdPiB7XHJcblx0XHRpZiAodGhpcy5zZWN0aW9uc1N1YmplY3QuZ2V0VmFsdWUoKS5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0dGhpcy5jb25uZWN0aW9uLmdldCh0aGlzLnNlY3Rpb25zQXBpKCkpLnBpcGUoXHJcblx0XHRcdFx0c2hhcmVSZXBsYXkoMSksXHJcblx0XHRcdFx0bWFwKChyZXNwb25zZTogU2VjdGlvbltdKSA9PiB7XHJcblx0XHRcdFx0XHRsZXQgc2VjdGlvbnMgPSByZXNwb25zZS5maWx0ZXIoKHNlY3Rpb246IFNlY3Rpb24pID0+IHNlY3Rpb24uY29kZSAhPSAnaG9tZScpXHJcblx0XHRcdFx0XHRzZWN0aW9ucyA9IHNlY3Rpb25zLm1hcCgoc2VjdGlvbjogU2VjdGlvbikgPT4gdGhpcy5hcHBlbmRTZWN0aW9uKHNlY3Rpb24pKVxyXG5cdFx0XHRcdFx0dGhpcy5zZWN0aW9uc1N1YmplY3QubmV4dChzZWN0aW9ucylcclxuXHRcdFx0XHRcdHJldHVybiBzZWN0aW9uc1xyXG5cdFx0XHRcdH0pKS5zdWJzY3JpYmUoKVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHRoaXMuc2VjdGlvbnMkO1xyXG5cdH1cclxuXHQvKipcclxuXHQgKiBPYnRpZW5lIGxvcyBhdHJpYnV0b3MgZGVsIGJhY2tlbmQuIFkgbG9zIG1hcGVhIHBhcmEgcXVlIHNlYSBtYXMgYW1pZ2FibGUgZWwgbWFuZWpvIGNvbW8gbWVuw7ouXHJcblx0ICogQHBhcmFtIHBhcmFtcyBcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRwdWJsaWMgZ2V0QXR0cmlidXRlcyhwYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPEF0dHJpYnV0ZVtdPiB7XHJcblx0XHRpZiAodGhpcy5hdHRyaWJ1dGVzU3ViamVjdC5nZXRWYWx1ZSgpLmxlbmd0aCA9PT0gMCkge1xyXG5cdFx0XHR0aGlzLmNvbm5lY3Rpb24uZ2V0KHRoaXMuYXR0cmlidXRlc0FwaShwYXJhbXMpKS5waXBlKFxyXG5cdFx0XHRcdHNoYXJlUmVwbGF5KDEpLFxyXG5cdFx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSB8IEF0dHJpYnV0ZSkgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc3QgYXR0cmlidXRlcyA9IHRoaXMuYXBwZW5kUGF0aHMoZmFsc2UsIChyZXNwb25zZS5hdHRyaWJ1dGVzWzBdIHx8IHJlc3BvbnNlKSlcclxuXHRcdFx0XHRcdHRoaXMuYXR0cmlidXRlc1N1YmplY3QubmV4dChhdHRyaWJ1dGVzKVxyXG5cdFx0XHRcdFx0cmV0dXJuIGF0dHJpYnV0ZXNcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0KSkuc3Vic2NyaWJlKClcclxuXHRcdH1cclxuXHRcdHJldHVybiB0aGlzLmF0dHJpYnV0ZXMkO1xyXG5cdH1cclxuXHJcblxyXG5cdC8vIEhFTFBFUlNcclxuXHRzbHVnaWZ5KHZhbHVlOiBhbnkpOiBzdHJpbmcge1xyXG5cdFx0aWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XHJcblx0XHRcdHJldHVybiAnJzsgLy8gbyBkZXZvbHZlciB1biBzbHVnIHBvciBkZWZlY3RvIHNpIHByZWZlcsOtc1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHZhbHVlLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFxzKy9nLCAnLScpLnJlcGxhY2UoL1teXFx3XFwtXSsvZywgJycpO1xyXG5cdH1cdC8qKlxyXG5cdCAqIEVsaW1pbmEgbG9zIGFjZW50b3NcclxuXHQgKiBAcGFyYW0gc3RyIFxyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdHByaXZhdGUgcmVtb3ZlQWNjZW50cyhzdHI6IHN0cmluZykge1xyXG5cdFx0aWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgJiYgdHlwZW9mIFN0cmluZy5wcm90b3R5cGUubm9ybWFsaXplID09PSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdHJldHVybiBzdHIubm9ybWFsaXplKFwiTkZEXCIpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csIFwiXCIpO1xyXG5cdFx0fVxyXG5cdFx0Ly8gRmFsbGJhY2sgcGFyYSBTU1IgLSByZW1vdmVyIGFjZW50b3MgbWFudWFsbWVudGVcclxuXHRcdHJldHVybiBzdHIucmVwbGFjZSgvW8Ogw6HDosOjw6TDpV0vZywgJ2EnKVxyXG5cdFx0XHQucmVwbGFjZSgvW8Oow6nDqsOrXS9nLCAnZScpXHJcblx0XHRcdC5yZXBsYWNlKC9bw6zDrcOuw69dL2csICdpJylcclxuXHRcdFx0LnJlcGxhY2UoL1vDssOzw7TDtcO2XS9nLCAnbycpXHJcblx0XHRcdC5yZXBsYWNlKC9bw7nDusO7w7xdL2csICd1JylcclxuXHRcdFx0LnJlcGxhY2UoL1vDvcO/XS9nLCAneScpXHJcblx0XHRcdC5yZXBsYWNlKC9bw7FdL2csICduJylcclxuXHRcdFx0LnJlcGxhY2UoL1vDp10vZywgJ2MnKVxyXG5cdFx0XHQucmVwbGFjZSgvW8OAw4HDgsODw4TDhV0vZywgJ0EnKVxyXG5cdFx0XHQucmVwbGFjZSgvW8OIw4nDisOLXS9nLCAnRScpXHJcblx0XHRcdC5yZXBsYWNlKC9bw4zDjcOOw49dL2csICdJJylcclxuXHRcdFx0LnJlcGxhY2UoL1vDksOTw5TDlcOWXS9nLCAnTycpXHJcblx0XHRcdC5yZXBsYWNlKC9bw5nDmsObw5xdL2csICdVJylcclxuXHRcdFx0LnJlcGxhY2UoL1vDncW4XS9nLCAnWScpXHJcblx0XHRcdC5yZXBsYWNlKC9bw5FdL2csICdOJylcclxuXHRcdFx0LnJlcGxhY2UoL1vDh10vZywgJ0MnKTtcclxuXHR9XHJcblx0LyoqXHJcblx0ICogUmVhbGl6YSB1biBtYXBlbyBkZSBsb3MgZGF0b3MgcGFyYSBkYXJsZSB1biBmb3JtYXRvIG1hcyBlbnRlbmRpYmxlIGEgbGFcclxuXHQgKiBob3JhIGRlIHVzYXIgY29tbyB1biBtZW7Dui5cclxuXHQgKiBAcGFyYW0gaXNDYXRlZ29yeSBVdGlsaXphZG8gcGFyYSBkaWZlcmVuY2lhciBzaSBlcyBjYXRlZ29yw61hIG8gYXRyaWJ1dG8uXHJcblx0ICogQHBhcmFtIHJlc3BvbnNlIFJlc3B1ZXN0YSBxdWUgb2J0aWVuZSBkZWwgYmFja2VuZCBjb24gbG9zIGRhdG9zIGEgbWFwZWFyLlxyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBhcHBlbmRQYXRocyhpc0NhdGVnb3J5OiBib29sZWFuLCByZXNwb25zZTogYW55KSB7XHJcblx0XHRjb25zdCBub3JtYWxpemVkUmVzcG9uc2UgPSBBcnJheS5pc0FycmF5KHJlc3BvbnNlKSA/IHJlc3BvbnNlIDogW3Jlc3BvbnNlXTtcclxuXHJcblx0XHRjb25zdCByZXN1bHQgPSBub3JtYWxpemVkUmVzcG9uc2UubWFwKChzdWJlbGVtZW50OiBhbnkpID0+IHtcclxuXHRcdFx0aWYgKCFzdWJlbGVtZW50LmNoaWxkcmVuIHx8IHN1YmVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID09IDApIHtcclxuXHRcdFx0XHRzdWJlbGVtZW50LmNoaWxkcmVuID0gW107XHJcblx0XHRcdFx0c3ViZWxlbWVudC5wYXRoID0gaXNDYXRlZ29yeVxyXG5cdFx0XHRcdFx0PyB0aGlzLmNvbnN0YW50cy5QUk9EVUNUX0xJU1RfUk9VVEUgKyAnY2F0ZWdvcmllcy8nICsgdGhpcy5zbHVnaWZ5KHN1YmVsZW1lbnQuc2x1ZyA/PyBzdWJlbGVtZW50Lm5hbWUpXHJcblx0XHRcdFx0XHQ6IHRoaXMuY29uc3RhbnRzLlBST0RVQ1RfTElTVF9ST1VURSArICdhdHRyaWJ1dGVzLycgKyB0aGlzLnNsdWdpZnkoc3ViZWxlbWVudC5zbHVnID8/IHN1YmVsZW1lbnQubmFtZSk7XHJcblx0XHRcdH0gZWxzZSBpZiAoc3ViZWxlbWVudC5jaGlsZHJlbikge1xyXG5cdFx0XHRcdHN1YmVsZW1lbnQuc2x1ZyA9IHN1YmVsZW1lbnQuc2x1ZyB8fCB0aGlzLnNsdWdpZnkoc3ViZWxlbWVudC5uYW1lKTtcclxuXHRcdFx0XHRzdWJlbGVtZW50LmNoaWxkcmVuID0gdGhpcy5hcHBlbmRQYXRocyhpc0NhdGVnb3J5LCBzdWJlbGVtZW50LmNoaWxkcmVuKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0c3ViZWxlbWVudC5wYXRoID0gaXNDYXRlZ29yeVxyXG5cdFx0XHRcdD8gdGhpcy5jb25zdGFudHMuUFJPRFVDVF9MSVNUX1JPVVRFICsgJ2NhdGVnb3JpZXMvJyArIHRoaXMuc2x1Z2lmeShzdWJlbGVtZW50LnNsdWcgPz8gc3ViZWxlbWVudC5uYW1lKVxyXG5cdFx0XHRcdDogdGhpcy5jb25zdGFudHMuUFJPRFVDVF9MSVNUX1JPVVRFICsgJ2F0dHJpYnV0ZXMvJyArIHRoaXMuc2x1Z2lmeShzdWJlbGVtZW50LnNsdWcgPz8gc3ViZWxlbWVudC5uYW1lKTtcclxuXHJcblx0XHRcdHJldHVybiBzdWJlbGVtZW50O1xyXG5cdFx0fSk7XHJcblxyXG5cdFx0cmV0dXJuIHJlc3VsdDtcclxuXHR9XHJcblx0LyoqXHJcblx0ICogR2VuZXJhIHVuIG1hcGVvIGRlIHNlY2Npb25lcyBwYXJhIHF1ZSBxdWVkZW4gbWFzIGFtaWdhYmxlcyBhIGxhIGhvcmEgZGUgbWFuZWphciBjb21vIG1lbsO6LlxyXG5cdCAqIEBwYXJhbSBzZWN0aW9uIFxyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdHByaXZhdGUgYXBwZW5kU2VjdGlvbihzZWN0aW9uOiBhbnkpIHtcclxuXHRcdGxldCBkYXRhOiBhbnkgPSB7fTtcclxuXHRcdGlmIChzZWN0aW9uLnBhZ2VzPy5sZW5ndGgpIHtcclxuXHRcdFx0ZGF0YS50eXBlID0gJ3N1Yic7XHJcblx0XHRcdGRhdGEuY2hpbGRyZW4gPSBzZWN0aW9uLnBhZ2VzLm1hcCgocGFnZTogYW55KSA9PiB7XHJcblx0XHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRcdGNvZGU6IHBhZ2UuY29kZSxcclxuXHRcdFx0XHRcdG5hbWU6IHBhZ2UubmFtZSxcclxuXHRcdFx0XHRcdHR5cGU6ICdsaW5rJyxcclxuXHRcdFx0XHRcdHBhdGg6IHRoaXMuY29uc3RhbnRzLlNFQ1RJT05TX1JPVVRFICsgKHBhZ2Uuc2x1ZyA/IHBhZ2Uuc2x1ZyA6IHBhZ2UuY29kZSksXHJcblx0XHRcdFx0XHQvLyBwYXRoOiB0aGlzLmNvbnN0YW50cy5TRUNUSU9OU19ST1VURSArIHBhZ2Uuc2x1ZyxcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0XHQvL2RhdGEudGl0bGUgPSBzZWN0aW9uLm5hbWU7XHJcblx0XHRcdGRhdGEubmFtZSA9IHNlY3Rpb24ubmFtZTtcclxuXHRcdFx0ZGF0YS5wYXRoID0gdGhpcy5jb25zdGFudHMuU0VDVElPTlNfUk9VVEUgKyAoc2VjdGlvbi5zbHVnID8gc2VjdGlvbi5zbHVnIDogc2VjdGlvbi5jb2RlKTtcclxuXHRcdFx0ZGF0YS5jb2RlID0gc2VjdGlvbi5jb2RlO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0ZGF0YS5jb2RlID0gc2VjdGlvbi5jb2RlO1xyXG5cdFx0XHQvL2RhdGEudGl0bGUgPSBzZWN0aW9uLm5hbWU7XHJcblx0XHRcdGRhdGEubmFtZSA9IHNlY3Rpb24ubmFtZTtcclxuXHRcdFx0ZGF0YS50eXBlID0gJ2xpbmsnO1xyXG5cdFx0XHRkYXRhLmNoaWxkcmVuID0gW107XHJcblx0XHRcdGRhdGEucGF0aCA9IHRoaXMuY29uc3RhbnRzLlNFQ1RJT05TX1JPVVRFICsgKHNlY3Rpb24uc2x1ZyA/IHNlY3Rpb24uc2x1ZyA6IHNlY3Rpb24uY29kZSk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gZGF0YTtcclxuXHR9XHJcblx0LyoqXHJcblx0ICogTWFwZWEgbG9zIGVsZW1lbnRvcyBwYXJhIGRhcmxlIHVuIGZvcm1hdG8gbWFzIGFtaWdhYmxlIHBhcmEgbG9zIG1lbsO6ZXMgeSBmaWx0cm9zLlxyXG5cdCAqIEBwYXJhbSBlbGVtZW50cyBjYXRlZ29yaWFzIHwgYXRyaWJ1dG9zIFxyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBnZW5lcmF0ZU1lbnUgPSAoZWxlbWVudHM6IGFueSkgPT4ge1xyXG5cdFx0cmV0dXJuIGVsZW1lbnRzLm1hcCgoZWxlbWVudDogYW55KSA9PiB7XHJcblx0XHRcdGlmIChlbGVtZW50LmNoaWxkcmVuICYmIGVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID09IDApIHtcclxuXHRcdFx0XHRyZXR1cm4ge1xyXG5cdFx0XHRcdFx0Li4uZWxlbWVudCxcclxuXHRcdFx0XHRcdHRpdGxlOiBlbGVtZW50Lm5hbWUsXHJcblx0XHRcdFx0XHRwYXRoOiBlbGVtZW50LnBhdGgsXHJcblx0XHRcdFx0XHR0eXBlOiAnbGluaycsXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHQuLi5lbGVtZW50LFxyXG5cdFx0XHRcdFx0dGl0bGU6IGVsZW1lbnQubmFtZSxcclxuXHRcdFx0XHRcdHR5cGU6ICdzdWInLFxyXG5cdFx0XHRcdFx0cGF0aDogZWxlbWVudC5wYXRoLFxyXG5cdFx0XHRcdFx0Y2hpbGRyZW46IChlbGVtZW50LmNoaWxkcmVuID8gdGhpcy5nZW5lcmF0ZU1lbnUoZWxlbWVudC5jaGlsZHJlbikgOiBbXSlcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0pXHJcblx0fVxyXG5cdC8qKlxyXG5cdCAqIERldnVlbHZlIGxvcyBlbGVtZW50b3MgZGVsIGJyZWFkY3J1bWIuXHJcblx0ICogQHBhcmFtIGNvZGUgXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0Z2V0QnJlYWRjcnVtYiA9IChjb2RlOiBhbnkpID0+IHtcclxuXHRcdGlmICghY29kZSkgcmV0dXJuIG51bGw7XHJcblx0XHRsZXQgYnJlYWRjcnVtYiA9IHRoaXMuZ2VuZXJhdGVCcmVhZGNydW1iKGNvZGUsIHRoaXMuZ2VuZXJhdGVNZW51KHRoaXMuY2F0ZWdvcmllc1N1YmplY3QudmFsdWUpLCBbXSk7XHJcblx0XHRpZiAoIWJyZWFkY3J1bWIgfHwgIWJyZWFkY3J1bWIubGVuZ3RoKSBicmVhZGNydW1iID0gdGhpcy5nZW5lcmF0ZUJyZWFkY3J1bWIoY29kZSwgdGhpcy5nZW5lcmF0ZU1lbnUodGhpcy5hdHRyaWJ1dGVzU3ViamVjdC52YWx1ZSksIFtdKTtcclxuXHRcdHJldHVybiAoYnJlYWRjcnVtYiAmJiBicmVhZGNydW1iLmxlbmd0aCkgJiYgYnJlYWRjcnVtYi5yZXZlcnNlKCk7XHJcblx0fVxyXG5cdC8qKlxyXG5cdCAqIEdlbmVyYSBsb3MgYnJlYWRjcnVtYnMgZW4gYmFzZSBhIGxvcyBmaWx0cm9zIGFwbGljYWRvcy5cclxuXHQgKiBAcGFyYW0gZmlsdGVycyBcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRnZXRCcmVhZGNydW1iQnlGaWx0ZXJzID0gKGZpbHRlcnM6IEZpbHRlcltdKSA9PiB7XHJcblx0XHRsZXQgZmluYWxfcmVzdWx0OiBhbnlbXSA9IFtdO1xyXG5cdFx0ZmlsdGVycy5mb3JFYWNoKGZpbHRlciA9PiB7XHJcblx0XHRcdGxldCByZXN1bHQgPSBmaWx0ZXIuZ2V0U2VsZWN0ZWRMaXN0KCk7XHJcblx0XHRcdGlmICghcmVzdWx0IHx8ICFyZXN1bHQubGVuZ3RoKSByZXR1cm47XHJcblxyXG5cdFx0XHRpZiAoZmlsdGVyLnR5cGUoKSA9PSAnY2F0ZWdvcmllcycpIGZpbmFsX3Jlc3VsdC51bnNoaWZ0KC4uLnRoaXMuZ2VuZXJhdGVCcmVhZGNydW1iKHJlc3VsdFswXSwgZmlsdGVyLmRhdGEsIFtdKS5yZXZlcnNlKCkpO1xyXG5cdFx0XHRlbHNlIHJlc3VsdC5mb3JFYWNoKFxyXG5cdFx0XHRcdChjb2RlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdGxldCBicmVhZGNydW1iID0gdGhpcy5nZW5lcmF0ZUJyZWFkY3J1bWIoY29kZSwgZmlsdGVyLmRhdGEsIFtdKVxyXG5cdFx0XHRcdFx0YnJlYWRjcnVtYi5sZW5ndGggJiYgZmluYWxfcmVzdWx0LnB1c2goYnJlYWRjcnVtYlswXSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHQpO1xyXG5cdFx0fSk7XHJcblxyXG5cdFx0cmV0dXJuIGZpbmFsX3Jlc3VsdDtcclxuXHR9XHJcblx0LyoqXHJcblx0ICogR2VuZXJhIGVsIGxpc3RhZG8gZGUgYnJlYWRjcnVtYi5cclxuXHQgKiBAcGFyYW0gY29kZSBcclxuXHQgKiBAcGFyYW0gZWxlbWVudHMgZmlsdHJvcyBhY3R1YWxlcyBlbiBlbCBmcm9udGVuZFxyXG5cdCAqIEBwYXJhbSByZXN1bHQgZGF0b3MgYSBhY3R1YWxpemFyIGNvbiBlbCBudWV2byBsaXN0YWRvIGRlIGJyZWFkY3J1bWJcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRwcml2YXRlIGdlbmVyYXRlQnJlYWRjcnVtYiA9IChjb2RlOiBzdHJpbmcsIGVsZW1lbnRzOiBhbnksIHJlc3VsdDogYW55KSA9PiB7XHJcblx0XHRsZXQgZWxlbWVudCA9IGVsZW1lbnRzLmZpbmQoKGVsZW06IGFueSkgPT4gZWxlbS5jb2RlID09IGNvZGUpO1xyXG5cdFx0aWYgKGVsZW1lbnQpIHtcclxuXHRcdFx0cmVzdWx0LnB1c2goZWxlbWVudCk7XHJcblx0XHR9XHJcblx0XHRlbHNlIHtcclxuXHRcdFx0ZWxlbWVudHMuc29tZSgoZWxlbTogYW55KSA9PiB7XHJcblx0XHRcdFx0aWYgKGVsZW0uY2hpbGRyZW4gJiYgZWxlbS5jaGlsZHJlbi5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdGNvbnN0IGxlbmd0aCA9IHJlc3VsdC5sZW5ndGg7XHJcblx0XHRcdFx0XHRsZXQgbmV3X3Jlc3VsdCA9IHRoaXMuZ2VuZXJhdGVCcmVhZGNydW1iKGNvZGUsIGVsZW0uY2hpbGRyZW4sIHJlc3VsdCk7XHJcblx0XHRcdFx0XHRpZiAobmV3X3Jlc3VsdC5sZW5ndGggPiBsZW5ndGgpIHtcclxuXHRcdFx0XHRcdFx0cmVzdWx0ID0gbmV3X3Jlc3VsdDtcclxuXHRcdFx0XHRcdFx0cmVzdWx0LnB1c2goZWxlbSk7XHJcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHRcdH0pXHJcblx0XHR9XHJcblx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdH1cclxuXHRwdWJsaWMgZ2V0U2VjdGlvbkNvbnRlbnRCeUxpbmsgPSAobGluazogYW55KSA9PlxyXG5cdFx0dGhpcy5jb25uZWN0aW9uLmdldEhUTUwodGhpcy5wYWdlQ29udGVudEJ5Q29kZUFwaShsaW5rKSkucGlwZShcclxuXHRcdFx0bWFwKGh0bWwgPT4gaHRtbC5zcGxpdCgnPC9oZWFkPicpW2h0bWwuc3BsaXQoJzwvaGVhZD4nKS5sZW5ndGggLSAxXSksXHJcblx0XHRcdGNhdGNoRXJyb3IoZSA9PiBvZihmYWxzZSkpXHJcblx0XHQpO1xyXG5cclxuXHRcdFxyXG5cclxuXHRnZXRGQVEoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5jb25uZWN0aW9uLmdldCh0aGlzLmZhcXNBcGkoKSkucGlwZShtYXAocmVzcG9uc2UgPT4ge1xyXG5cdFx0XHRsZXQgcmVzdWx0OiBGQVFbXSA9IFtdO1xyXG5cdFx0XHRyZXNwb25zZS5mb3JFYWNoKChyZXNwb25zZV9mYXE6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGxldCBmYXFzOiBGQVEgPSB7XHJcblx0XHRcdFx0XHRjb2RlOiByZXNwb25zZV9mYXEuY29kZSxcclxuXHRcdFx0XHRcdHBvc2l0aW9uOiByZXNwb25zZV9mYXEucG9zaXRpb24sXHJcblx0XHRcdFx0XHR0aXRsZTogcmVzcG9uc2VfZmFxLnRyYW5zbGF0aW9uc1t0aGlzLmFwaUNvbnN0YW50cy5MT0NBTEVdLnRvcGljLFxyXG5cdFx0XHRcdFx0cXVlc3Rpb25zOiByZXNwb25zZV9mYXEuZnJlcXVlbnRseUFza2VkUXVlc3Rpb25zLm1hcCgoYXNrZWRfcXVlc3Rpb246IGFueSkgPT4gKHtcclxuXHRcdFx0XHRcdFx0Y29kZTogYXNrZWRfcXVlc3Rpb24uY29kZSxcclxuXHRcdFx0XHRcdFx0cG9zaXRpb246IGFza2VkX3F1ZXN0aW9uLnBvc2l0aW9uLFxyXG5cdFx0XHRcdFx0XHRxdWVzdGlvbjogYXNrZWRfcXVlc3Rpb24udHJhbnNsYXRpb25zW3RoaXMuYXBpQ29uc3RhbnRzLkxPQ0FMRV0gPyBhc2tlZF9xdWVzdGlvbi50cmFuc2xhdGlvbnNbdGhpcy5hcGlDb25zdGFudHMuTE9DQUxFXS5xdWVzdGlvbiA6ICcnLFxyXG5cdFx0XHRcdFx0XHRhbnN3ZXI6IGFza2VkX3F1ZXN0aW9uLnRyYW5zbGF0aW9uc1t0aGlzLmFwaUNvbnN0YW50cy5MT0NBTEVdID8gYXNrZWRfcXVlc3Rpb24udHJhbnNsYXRpb25zW3RoaXMuYXBpQ29uc3RhbnRzLkxPQ0FMRV0uYW5zd2VyIDogJycsXHJcblx0XHRcdFx0XHR9KSlcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHRcdHJlc3VsdC5wdXNoKGZhcXMpO1xyXG5cdFx0XHR9KVxyXG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdFx0fSkpO1xyXG5cdH1cclxufSBcclxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2ludGVyZmFjZXMvZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBGaWx0ZXJUeXBlID0gJ2NhdGVnb3JpZXMnIHwgJ2F0dHJpYnV0ZXMnIHwgJ3NvcnQnIHwgJ2R5bmFtaWNzJyB8ICdwcmljZV9yYW5nZScgfCAnYWxsJztcclxuZXhwb3J0IHR5cGUgRWxlbWVudFR5cGUgPSAnc3ViJyB8ICdjaGlsZCcgfCAncmFuZ2UnO1xyXG5leHBvcnQgdHlwZSBGaWx0ZXJTaGFwZSA9ICdjb2xvcicgfCAndGV4dCcgfCAnc2l6ZSc7XHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb24gSW50ZXJmYXogdXRpbGl6YWRhIHBhcmEgYXBsaWNhciBmaWx0cm9zIHBvciBkZWZlY3RvLlxyXG4gKi9cclxuZXhwb3J0IHR5cGUgRGVmYXVsdEZpbHRlciA9IHtcclxuICAgIC8vIFtrZXkgaW4gRmlsdGVyVHlwZV0gOiBzdHJpbmdbXVxyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpdGlvbiBUaXBvIGRlIGZpbHRybyBxdWUgc2UgYXBsaWNhcmEuXHJcbiAgICAgKiBFamVtcGxvOiAnc29ydCcgfCAnY2F0ZWdvcnknIHwgJ2F0dHJpYnV0ZXMnIHwgJ2R5bmFtaWNzJyAuLi5cclxuICAgICAqL1xyXG4gICAgZmlsdGVyX3R5cGU6IEZpbHRlclR5cGUsXHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvbiBDb250aWVuZSBsb3MgY29kaWdvcyBkZSBsb3MgZmlsdHJvcyBxdWUgc2UgZGVzZWFuIGFwbGljYXIuXHJcbiAgICAgKiBFamVtcGxvOiBzaSBlbCBmaWx0cm8gZXMgJ3NvcnQnIGVsIGFycmVnbG8gcG9kcmlhIGNvbnRlbmVyICdwcmljZSBjaGlwJyB8ICdwcmljZSBleHBlbnNpdmUnIHwgJ2FscGhhIGFzYycgfCAnYWxwaGEgZGVzYycgLi4uXHJcbiAgICAgKi9cclxuICAgIGNvZGVzOiBzdHJpbmdbXVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckVsZW1lbnQge1xyXG5cclxuICAgIC8vIEJPVEhcclxuICAgIHRpdGxlOiBzdHJpbmc7XHJcbiAgICB0eXBlOiBFbGVtZW50VHlwZTtcclxuICAgIGNvZGU6IHN0cmluZztcclxuICAgIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgICBcclxuICAgIC8vIEZBVEhFUlxyXG4gICAgbXVsdGk/OiBib29sZWFuO1xyXG4gICAgY2hpbGRyZW4/OiBGaWx0ZXJFbGVtZW50W107XHJcbiAgICBzaGFwZT86IEZpbHRlclNoYXBlO1xyXG4gICAgcGF0aD86IHN0cmluZzsgXHJcbiAgICBub1VybD86Ym9vbGVhbjsgLy8gcGFyYSBpbmRpY2FyIHNpIHNlIGZpbHRyYSBlbiBsYSB2aXN0YSBvIG5vXHJcbiAgICBcclxuICAgIC8vIENISUxEXHJcbiAgICB2YWx1ZT86IHN0cmluZztcclxuICAgIHNsdWc/OiBzdHJpbmc7XHJcbiAgICBzZWxlY3RlZD86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qIGV4cG9ydCBpbnRlcmZhY2UgSUZpbHRlciB7XHJcblxyXG4gICAgZ2VuZXJhdGVkX3VybDogc3RyaW5nO1xyXG4gICAgZGF0YTogYW55O1xyXG4gICAgdHlwZSgpOiBGaWx0ZXJUeXBlO1xyXG4gICAgc2V0Q29udGVudChvcHRpb25zOmFueSk6IHZvaWQ7XHJcbiAgICBnZXRDb250ZW50KCk6IEZpbHRlckVsZW1lbnRbXTtcclxuICAgIHNldFNlbGVjdGVkKGVsZW1lbnQ6IEZpbHRlckVsZW1lbnQsIHZhbHVlOiBzdHJpbmcpOnZvaWQ7XHJcbiAgICB0b1VybFBhcmFtcygpOiBzdHJpbmc7XHJcbn0gKi9cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUZpbHRlcntcclxuICAgIGRhdGE6IEZpbHRlckVsZW1lbnRbXTtcclxuICAgIG11bHRpOmJvb2xlYW47XHJcbiAgICBcclxuICAgIHR5cGUoKTogRmlsdGVyVHlwZTtcclxuICAgIHNldENvbnRlbnQob3B0aW9uczphbnkpOiB2b2lkO1xyXG4gICAgZ2V0Q29udGVudCgpOiBGaWx0ZXJFbGVtZW50W107XHJcbiAgICB0b1VybFBhcmFtcygpOiBzdHJpbmc7XHJcbiAgICBjcmVhdGVFbGVtZW50KGZpbHRlcjphbnksb3JpZ2luYWw6YW55LGluaXRpYWxWYWx1ZT86YW55KTphbnk7XHJcbn0iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9pbnRlcmZhY2VzL29wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ2F0ZWdvcnl7XHJcbiAgICBjb2RlOiBzdHJpbmc7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBzbHVnOiBzdHJpbmc7XHJcbiAgICBwb3NpdGlvbjogbnVtYmVyO1xyXG4gICAgcGF0aDogc3RyaW5nOyBcclxuICAgIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgICBjaGlsZHJlbj86IENhdGVnb3J5W107XHJcbiAgICBpbWFnZXM/OmFueVtdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlY3Rpb257XHJcbiAgICBjb2RlOiBzdHJpbmc7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBwYWdlcz86YW55W107XHJcbiAgICBwYXRoPzpzdHJpbmc7XHJcbiAgICBjaGlsZHJlbj86U2VjdGlvbltdO1xyXG4gICAgdHlwZT86c3RyaW5nO1xyXG4gICAgYmxvY2tzPzphbnlbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdHRyaWJ1dGV7XHJcbiAgICBjb2RlOiBzdHJpbmc7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBwYXRoOiBzdHJpbmc7XHJcbiAgICBzbHVnOiBzdHJpbmc7XHJcbiAgICB1c2VUb0ZpbHRlcjogYm9vbGVhbjtcclxuICAgIHN0eWxlcz86YW55W107XHJcbiAgICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG59Il19
|