angular-toolbox 0.10.1 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/esm2022/lib/framework/mock/http/xhr/delegate-xhr.mjs +37 -25
- package/esm2022/lib/model/business/navigator/battery-manager.mjs +1 -1
- package/esm2022/lib/model/service/version/angular-toolbox-version.service.mjs +4 -4
- package/fesm2022/angular-toolbox.mjs +39 -27
- package/fesm2022/angular-toolbox.mjs.map +1 -1
- package/lib/framework/mock/http/xhr/delegate-xhr.d.ts +4 -0
- package/lib/model/business/navigator/battery-manager.d.ts +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
A library that provides useful tools for Angular apps development.
|
|
4
4
|
|
|
5
|
-
[]()
|
|
6
6
|
|
|
7
7
|
## License
|
|
8
8
|
|
|
@@ -129,29 +129,35 @@ export class DelegateXhr extends XhrBase {
|
|
|
129
129
|
let timer = httpResponseMock.delay || 0;
|
|
130
130
|
if (timer > MAX_TIMER)
|
|
131
131
|
timer = MAX_TIMER;
|
|
132
|
-
this._loadSubscription = this.loadData(httpResponseMock).subscribe(
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
this.
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
132
|
+
this._loadSubscription = this.loadData(httpResponseMock).subscribe({
|
|
133
|
+
next: (data) => {
|
|
134
|
+
this.setDataStorage(httpResponseMock, data);
|
|
135
|
+
const error = this._dataStorage.httpResponse.error;
|
|
136
|
+
setTimeout(() => {
|
|
137
|
+
this.setReadyState(this.HEADERS_RECEIVED);
|
|
138
|
+
if (error)
|
|
139
|
+
return this.onError(error);
|
|
140
|
+
this.setReadyState(this.LOADING);
|
|
141
|
+
const response = this._dataStorage.httpResponse;
|
|
142
|
+
let headers = response.headers;
|
|
143
|
+
if (headers) {
|
|
144
|
+
this._headers.keys().forEach((key) => {
|
|
145
|
+
headers = headers.set(key, this._headers.get(key));
|
|
146
|
+
});
|
|
147
|
+
this._headers = headers;
|
|
148
|
+
}
|
|
149
|
+
if (!this._progressiveDownload) {
|
|
150
|
+
this._statusText = response.statusText || EMPTY_STRING;
|
|
151
|
+
this._status = response.status || 0;
|
|
152
|
+
return this.onLoadComplete();
|
|
153
|
+
}
|
|
154
|
+
this.doProgressiveDownload();
|
|
155
|
+
}, timer);
|
|
156
|
+
},
|
|
157
|
+
error: (err) => {
|
|
158
|
+
this.setDataStorage(httpResponseMock);
|
|
159
|
+
this.onError(err);
|
|
160
|
+
}
|
|
155
161
|
});
|
|
156
162
|
}
|
|
157
163
|
/**
|
|
@@ -216,7 +222,7 @@ export class DelegateXhr extends XhrBase {
|
|
|
216
222
|
const methodConfig = routeConfig.methodConfig;
|
|
217
223
|
this._routeConfig = routeConfig;
|
|
218
224
|
this._progressiveDownload = methodConfig.progressive || false;
|
|
219
|
-
this.responseType = methodConfig.responseType ||
|
|
225
|
+
this.responseType = methodConfig.responseType || EMPTY_STRING;
|
|
220
226
|
this._headers = new HttpHeaders();
|
|
221
227
|
}
|
|
222
228
|
/**
|
|
@@ -312,5 +318,11 @@ export class DelegateXhr extends XhrBase {
|
|
|
312
318
|
const responseBody = httpResponseMock.body;
|
|
313
319
|
return (responseBody instanceof Observable) ? responseBody : of(responseBody);
|
|
314
320
|
}
|
|
321
|
+
/**
|
|
322
|
+
* @private
|
|
323
|
+
*/
|
|
324
|
+
setDataStorage(responseMock, data = null) {
|
|
325
|
+
this._dataStorage = DataStorageBuilder.buildDataStorage(responseMock, data);
|
|
326
|
+
}
|
|
315
327
|
}
|
|
316
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdhdGUteGhyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvZnJhbWV3b3JrL21vY2svaHR0cC94aHIvZGVsZWdhdGUteGhyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWhGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsVUFBVSxFQUFnQixFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbEU7OztHQUdHO0FBQ0gsTUFBTSxTQUFTLEdBQVcsS0FBSyxDQUFDO0FBRWhDOzs7R0FHRztBQUNILE1BQU0sd0JBQXdCLEdBQVUsSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUV4RTs7R0FFRztBQUNILE1BQU0sZ0JBQWdCLEdBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUVoRTs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLFdBQVksU0FBUSxPQUFPO0lBb0VwQzs7OztPQUlHO0lBQ0gsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksSUFBSSxJQUFJLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLE1BQU07UUFDTixPQUFP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WUFBWSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEYsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSHR0cEhlYWRlcnMsIEh0dHBSZXF1ZXN0LCBIdHRwU3RhdHVzQ29kZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBYaHJQcm94eSwgSHR0cFJlc3BvbnNlTW9jaywgSHR0cE1ldGhvZE1vY2ssIEh0dHBNb2NrRXJyb3IgfSBmcm9tIFwiLi4vLi4vLi4vLi4vbW9kZWxcIjtcclxuaW1wb3J0IHsgUHJvZ3Jlc3NFdmVudE1vY2sgfSBmcm9tIFwiLi4vZXZlbnQvcHJvZ3Jlc3MtZXZlbnQtbW9ja1wiO1xyXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vLi4vLi4vLi4vdXRpbFwiO1xyXG5pbXBvcnQgeyBYaHJCYXNlIH0gZnJvbSBcIi4veGhyLWJhc2VcIjtcclxuaW1wb3J0IHsgSHR0cEhlYWRlcnNVdGlsIH0gZnJvbSBcIi4uL3V0aWwvaHR0cC1oZWFkZXJzLnV0aWxcIjtcclxuaW1wb3J0IHsgUm91dGVNb2NrQ29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9yb3V0ZS1tb2NrLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIG9mIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgRGF0YVN0b3JhZ2UgfSBmcm9tIFwiLi4vY29yZS9kYXRhLXN0b3JhZ2VcIjtcclxuaW1wb3J0IHsgRGF0YVN0b3JhZ2VCdWlsZGVyIH0gZnJvbSBcIi4uL3V0aWwvZGF0YS1zdG9yYWdlLmJ1aWxkZXJcIjtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKiBUaGUgbWF4aW11bSB2YWx1ZSBmb3IgYSBkZWxheWVkIEhUVFAgcmVzcG9uc2UuXHJcbiAqL1xyXG5jb25zdCBNQVhfVElNRVI6IG51bWJlciA9IDEwMDAwO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIEludGVuYWwgXCJvbnJlYWR5c3RhdGVjaGFuZ2VcIiBldmVudC5cclxuICovXHJcbmNvbnN0IFJFQURZX1NUQVRFX0NIQU5HRV9FVkVOVDogRXZlbnQgPSBuZXcgRXZlbnQoXCJvbnJlYWR5c3RhdGVjaGFuZ2VcIik7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICovXHJcbmNvbnN0IEVWVF9QUk9QU19DT05GSUc6IGFueSA9ICB7IHdyaXRhYmxlOiBmYWxzZSwgdmFsdWU6IHRoaXMgfTtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKiBBIHV0aWxpdHkgY2xhc3MgdXNlZCBhcyBkZWxlZ2F0ZSBvZiBgWE1MSHR0cFJlcXVlc3RgIGZ1bmN0aW9uYWxpdGllcyB3aGVuXHJcbiAqIGEgSFRUUCByZXF1ZXN0IGlzIGludGVyY2VwdGVkIGJ5IHRoZSBNb2NraW5nIEZyYW1ld29yayAuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRGVsZWdhdGVYaHIgZXh0ZW5kcyBYaHJCYXNlIGltcGxlbWVudHMgWGhyUHJveHkge1xyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgcHJvZ3Jlc3NpdmUgZG93bmxvYWQgaXMgYWN0aXZhdGVkLCBvciBub3QuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX3Byb2dyZXNzaXZlRG93bmxvYWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBUaGUgY29uZmlnIGZvciB0aGUgaW50ZXJjZXB0ZWQgcm91dGUuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX3JvdXRlQ29uZmlnOiBSb3V0ZU1vY2tDb25maWc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogXHJcbiAgICAgKiBJbnRlcm5hbCBzdG9yYWdlIGZvciBIVFRQIHJlc3BvbnNlIGBkYXRhYC5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfZGF0YVN0b3JhZ2U6IERhdGFTdG9yYWdlID0gbnVsbCBhcyBhbnk7IFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIFxyXG4gICAgICogSW50ZXJuYWwgc3RvcmFnZSBmb3IgdGhlIEhUVFAgcmVxdWVzdCBgbWV0aG9kYC5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfbWV0aG9kOiB1bmtub3duOyBcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBcclxuICAgICAqIEludGVybmFsIHN0b3JhZ2UgZm9yIHRoZSBIVFRQIHJlcXVlc3QgVVJMLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF91cmw6IHVua25vd247IFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIFxyXG4gICAgICogSW50ZXJuYWwgc3RvcmFnZSBmb3IgdGhlIEhUVFAgcmVxdWVzdCBgcmVhZHlTdGF0ZWAuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX3JlYWR5U3RhdGU6IG51bWJlciA9IHRoaXMuVU5TRU5UO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIFxyXG4gICAgICogSW50ZXJuYWwgc3RvcmFnZSBmb3IgdGhlIEhUVFAgcmVxdWVzdCBgaGVhZGVyc2AuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2hlYWRlcnM6IEh0dHBIZWFkZXJzID0gbnVsbCBhcyBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogXHJcbiAgICAgKiBJbnRlcm5hbCBzdG9yYWdlIGZvciB0aGUgSFRUUCByZXF1ZXN0IGBzdGF0dXNgLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9zdGF0dXM6IG51bWJlciA9IDA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogXHJcbiAgICAgKiBJbnRlcm5hbCBzdG9yYWdlIGZvciB0aGUgSFRUUCByZXF1ZXN0IGBzdGF0dXNUZXh0YC5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfc3RhdHVzVGV4dDogc3RyaW5nID0gRU1QVFlfU1RSSU5HO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfbG9hZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSByZXNwb25zZSBib2R5IGNvbnRlbnQuXHJcbiAgICAgKlxyXG4gICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvWE1MSHR0cFJlcXVlc3QvcmVzcG9uc2VcclxuICAgICAqL1xyXG4gICAgZ2V0IHJlc3BvbnNlKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFTdG9yYWdlPy5kYXRhIHx8IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBudW1lcmljYWwgSFRUUCBzdGF0dXMgY29kZSBvZiB0aGUgYFhNTEh0dHBSZXF1ZXN0YCByZXNwb25zZS5cclxuICAgICAqXHJcbiAgICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9YTUxIdHRwUmVxdWVzdC9zdGF0dXNcclxuICAgICAqL1xyXG4gICAgZ2V0IHN0YXR1cygpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIHJlc3BvbnNlIHN0YXR1cyBtZXNzYWdlIGFzIHJldHVybmVkIGJ5IHRoZSBIVFRQIHNlcnZlci5cclxuICAgICAqXHJcbiAgICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9YTUxIdHRwUmVxdWVzdC9zdGF0dXNUZXh0XHJcbiAgICAgKi9cclxuICAgIGdldCBzdGF0dXNUZXh0KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXR1c1RleHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBzdGF0ZSB0aGUgYFhNTEh0dHBSZXF1ZXN0YCBjbGllbnQgaXMgaW4uXHJcbiAgICAgKlxyXG4gICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvWE1MSHR0cFJlcXVlc3QvcmVhZHlTdGF0ZVxyXG4gICAgICovXHJcbiAgICBnZXQgcmVhZHlTdGF0ZSgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9yZWFkeVN0YXRlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgc2VyaWFsaXplZCBVUkwgb2YgdGhlIHJlc3BvbnNlIG9yIHRoZSBlbXB0eSBzdHJpbmcgaWYgdGhlIFVSTCBpcyBgbnVsbGAuIFxyXG4gICAgICpcclxuICAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL1hNTEh0dHBSZXF1ZXN0L3Jlc3BvbnNlVVJMXHJcbiAgICAgKi9cclxuICAgIGdldCByZXNwb25zZVVSTCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl91cmwgYXMgc3RyaW5nO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgdGV4dCByZWNlaXZlZCBmcm9tIGEgc2VydmVyIGZvbGxvd2luZyBhIHJlcXVlc3QgYmVpbmcgc2VudC5cclxuICAgICAqXHJcbiAgICAgKiBUaHJvd3MgYW4gYEludmFsaWRTdGF0ZUVycm9yYCBET01FeGNlcHRpb24gaWYgcmVzcG9uc2VUeXBlIGlzIG5vdCB0aGUgZW1wdHkgc3RyaW5nIG9yIFwidGV4dFwiLlxyXG4gICAgICpcclxuICAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL1hNTEh0dHBSZXF1ZXN0L3Jlc3BvbnNlVGV4dFxyXG4gICAgICovXHJcbiAgICBnZXQgcmVzcG9uc2VUZXh0KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFTdG9yYWdlPy5zdHJpbmdpZmllZERhdGEgfHwgRU1QVFlfU1RSSU5HO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogIFJldHVybnMgYW4gYFhNTEh0dHBSZXF1ZXN0VXBsb2FkYCBvYmplY3QgdGhhdCBjYW4gYmUgb2JzZXJ2ZWQgdG8gbW9uaXRvciBhbiB1cGxvYWQgcHJvZ3Jlc3MuIFxyXG4gICAgICpcclxuICAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1hNTEh0dHBSZXF1ZXN0L3VwbG9hZFxyXG4gICAgICovXHJcbiAgICBnZXQgdXBsb2FkKCk6IFhNTEh0dHBSZXF1ZXN0VXBsb2FkIHtcclxuICAgICAgICByZXR1cm4gbnVsbCBhcyBhbnk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogIFJldHVybnMgYW4gYW4gZW51bWVyYXRlZCBzdHJpbmcgdmFsdWUgc3BlY2lmeWluZyB0aGUgdHlwZSBvZiBkYXRhIGNvbnRhaW5lZCBpbiB0aGUgcmVzcG9uc2UuIFxyXG4gICAgICpcclxuICAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1hNTEh0dHBSZXF1ZXN0L3Jlc3BvbnNlVHlwZVxyXG4gICAgICovXHJcbiAgICByZXNwb25zZVR5cGU6IFhNTEh0dHBSZXF1ZXN0UmVzcG9uc2VUeXBlID0gXCJcIjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIGEgbmV3bHktY3JlYXRlZCByZXF1ZXN0LCBvciByZS1pbml0aWFsaXplcyBhbiBleGlzdGluZyBvbmUuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBtZXRob2QgVGhlIEhUVFAgcmVxdWVzdCBtZXRob2QgdG8gdXNlLCBzdWNoIGFzIGBcIkdFVFwiYCwgYFwiUE9TVFwiYCwgYFwiUFVUXCJgLCBgXCJERUxFVEVcImAsXHJcbiAgICAgKiAgICAgICAgICAgICAgIGV0Yy4gSWdub3JlZCBmb3Igbm9uLUhUVFAoUykgVVJMcy5cclxuICAgICAqIEBwYXJhbSB1cmwgQSBzdHJpbmcgb3IgYW55IG90aGVyIG9iamVjdCB3aXRoIGEgc3RyaW5naWZpZXIg4oCUIGluY2x1ZGluZyBhIFVSTCBvYmplY3Qg4oCUXHJcbiAgICAgKiAgICAgICAgICAgIHRoYXQgcHJvdmlkZXMgdGhlIFVSTCBvZiB0aGUgcmVzb3VyY2UgdG8gc2VuZCB0aGUgcmVxdWVzdCB0by5cclxuICAgICAqL1xyXG4gICAgb3BlbihtZXRob2Q6IHN0cmluZywgdXJsOiBzdHJpbmcgfCBVUkwpOiB2b2lkO1xyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBvcGVuKG1ldGhvZDogc3RyaW5nLCB1cmw6IHN0cmluZyB8IFVSTCwgYXN5bmM6IGJvb2xlYW4sIHVzZXJuYW1lPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFzc3dvcmQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogdm9pZDtcclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgb3BlbihtZXRob2Q6IHVua25vd24sIHVybDogdW5rbm93biwgYXN5bmM/OiB1bmtub3duLCB1c2VybmFtZT86IHVua25vd24sIHBhc3N3b3JkPzogdW5rbm93bik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX21ldGhvZCA9IG1ldGhvZDtcclxuICAgICAgICB0aGlzLl91cmwgPSB1cmw7XHJcbiAgICAgICAgdGhpcy5zZXRSZWFkeVN0YXRlKHRoaXMuT1BFTkVEKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFib3J0cyB0aGUgcmVxdWVzdCBpZiBpdCBoYXMgYWxyZWFkeSBiZWVuIHNlbnQuIFdoZW4gYSByZXF1ZXN0IGlzIGFib3J0ZWQsIGl0cyBgcmVhZHlTdGF0ZWBcclxuICAgICAqIGlzIGNoYW5nZWQgdG8gYFhNTEh0dHBSZXF1ZXN0LlVOU0VOVGAgYW5kIHRoZSByZXF1ZXN0IHN0YXR1cyBjb2RlIGlzIHNldCB0byBgMGAuXHJcbiAgICAgKi9cclxuICAgIGFib3J0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3JlYWR5U3RhdGUgPSB0aGlzLlVOU0VOVDtcclxuICAgICAgICB0aGlzLl9zdGF0dXMgPSAwO1xyXG4gICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaChcImFib3J0XCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhbGwgdGhlIHJlc3BvbnNlIGhlYWRlcnMsIHNlcGFyYXRlZCBieSBDUkxGLCBhcyBhIHN0cmluZywgb3IgcmV0dXJucyBgbnVsbGBcclxuICAgICAqIGlmIG5vIHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyBBbGwgdGhlIHJlc3BvbnNlIGhlYWRlcnMsIHNlcGFyYXRlZCBieSBDUkxGLCBhcyBhIHN0cmluZywgb3IgcmV0dXJucyBgbnVsbGBcclxuICAgICAqICAgICAgICAgIGlmIG5vIHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkLlxyXG4gICAgICovXHJcbiAgICBnZXRBbGxSZXNwb25zZUhlYWRlcnMoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVN0b3JhZ2UgPyBIdHRwSGVhZGVyc1V0aWwuc3RyaW5naWZ5KHRoaXMuX2hlYWRlcnMpIDogRU1QVFlfU1RSSU5HO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2VuZHMgdGhlIHJlcXVlc3QgdG8gdGhlIHNlcnZlci5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGJvZHkgQSBib2R5IG9mIGRhdGEgdG8gYmUgc2VudCBpbiB0aGUgWEhSIHJlcXVlc3QuXHJcbiAgICAgKi9cclxuICAgIHNlbmQoYm9keT86IERvY3VtZW50IHwgWE1MSHR0cFJlcXVlc3RCb2R5SW5pdCB8IG51bGwgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCByZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+ID0gbmV3IEh0dHBSZXF1ZXN0PGFueT4odGhpcy5fbWV0aG9kIGFzIHN0cmluZywgdGhpcy5fdXJsIGFzIGFueSwgYm9keSk7XHJcbiAgICAgICAgY29uc3QgcmM6IFJvdXRlTW9ja0NvbmZpZyA9IHRoaXMuX3JvdXRlQ29uZmlnO1xyXG4gICAgICAgIGNvbnN0IGh0dHBSZXNwb25zZU1vY2s6IEh0dHBSZXNwb25zZU1vY2sgPSAocmMubWV0aG9kQ29uZmlnIGFzIGFueSkuZGF0YShyZXF1ZXN0LCByYy5wYXJhbWV0ZXJzKTtcclxuICAgICAgICBsZXQgdGltZXI6IG51bWJlciA9IGh0dHBSZXNwb25zZU1vY2suZGVsYXkgfHwgMDtcclxuICAgICAgICBpZiAodGltZXIgPiBNQVhfVElNRVIpIHRpbWVyID0gTUFYX1RJTUVSO1xyXG4gICAgICAgIHRoaXMuX2xvYWRTdWJzY3JpcHRpb24gPSB0aGlzLmxvYWREYXRhKGh0dHBSZXNwb25zZU1vY2spLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX2RhdGFTdG9yYWdlID0gRGF0YVN0b3JhZ2VCdWlsZGVyLmJ1aWxkRGF0YVN0b3JhZ2UoaHR0cFJlc3BvbnNlTW9jaywgZGF0YSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGVycm9yOiBIdHRwTW9ja0Vycm9yIHwgbnVsbCA9IHRoaXMuX2RhdGFTdG9yYWdlLmh0dHBSZXNwb25zZS5lcnJvcjtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKT0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0UmVhZHlTdGF0ZSh0aGlzLkhFQURFUlNfUkVDRUlWRUQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycm9yKSByZXR1cm4gdGhpcy5vbkVycm9yKGVycm9yKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0UmVhZHlTdGF0ZSh0aGlzLkxPQURJTkcpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2U6IEh0dHBSZXNwb25zZU1vY2sgPSB0aGlzLl9kYXRhU3RvcmFnZS5odHRwUmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICBsZXQgaGVhZGVyczogYW55ID0gcmVzcG9uc2UuaGVhZGVycztcclxuICAgICAgICAgICAgICAgIGlmIChoZWFkZXJzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faGVhZGVycy5rZXlzKCkuZm9yRWFjaCgoa2V5OiBzdHJpbmcpPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoa2V5LCB0aGlzLl9oZWFkZXJzLmdldChrZXkpIGFzIGFueSlcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9oZWFkZXJzID0gaGVhZGVycztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5fcHJvZ3Jlc3NpdmVEb3dubG9hZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0YXR1c1RleHQgPSByZXNwb25zZS5zdGF0dXNUZXh0IHx8IEVNUFRZX1NUUklORztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdGF0dXMgPSByZXNwb25zZS5zdGF0dXMgfHwgMDtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vbkxvYWRDb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5kb1Byb2dyZXNzaXZlRG93bmxvYWQoKTtcclxuICAgICAgICAgICAgfSwgdGltZXIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgdmFsdWUgb2YgYW4gSFRUUCByZXF1ZXN0IGhlYWRlci5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGhlYWRlciB3aG9zZSB2YWx1ZSBpcyB0byBiZSBzZXQuXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIHNldCBhcyB0aGUgYm9keSBvZiB0aGUgaGVhZGVyLlxyXG4gICAgICovXHJcbiAgICBzZXRSZXF1ZXN0SGVhZGVyKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2hlYWRlcnMgPSB0aGlzLl9oZWFkZXJzLnNldChuYW1lLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZSBcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3Iocm91dGVDb25maWc6IFJvdXRlTW9ja0NvbmZpZykge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgY29uc3QgbWV0aG9kQ29uZmlnOiBIdHRwTWV0aG9kTW9jayA9IHJvdXRlQ29uZmlnLm1ldGhvZENvbmZpZztcclxuICAgICAgICB0aGlzLl9yb3V0ZUNvbmZpZyA9IHJvdXRlQ29uZmlnO1xyXG4gICAgICAgIHRoaXMuX3Byb2dyZXNzaXZlRG93bmxvYWQgPSBtZXRob2RDb25maWcucHJvZ3Jlc3NpdmUgfHwgZmFsc2U7XHJcbiAgICAgICAgdGhpcy5yZXNwb25zZVR5cGUgPSBtZXRob2RDb25maWcucmVzcG9uc2VUeXBlIHx8IFwiXCI7XHJcbiAgICAgICAgdGhpcy5faGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlIFxyXG4gICAgICogSW50ZXJuYWxseSB1c2VkIGJ5IHRoZSBmcmFtZXdvcmsgdG8gZGVsZXRlIGEgYERlbGVnYXRlWGhyYCBpbnN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcm91dGVDb25maWcgPSBudWxsIGFzIGFueTtcclxuICAgICAgICB0aGlzLl9oZWFkZXJzID0gbnVsbCBhcyBhbnk7XHJcbiAgICAgICAgdGhpcy5fZGF0YVN0b3JhZ2UgPSBudWxsIGFzIGFueTtcclxuICAgICAgICBpZiAodGhpcy5fbG9hZFN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLl9sb2FkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2xvYWRTdWJzY3JpcHRpb24gPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlIFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGRvUHJvZ3Jlc3NpdmVEb3dubG9hZCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB0b3RhbDogbnVtYmVyID0gdGhpcy5fZGF0YVN0b3JhZ2UudG90YWw7XHJcbiAgICAgICAgaWYgKHRvdGFsIDw9IDIwMCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXCJbQW5ndWxhciBUb29sYm94XTogQm9keSBjb250ZW50IGlzIHRvbyBzbWFsbCBmb3IgZW11bGF0aW5nIHByb2dyZXNzaXZlIGRvd25sb2FkISBNaW5pbXVtIHNpemUgaXMgMjAwIG9jdGV0cy5cIik7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm9uTG9hZENvbXBsZXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFRPRE86IGFtZWxpb3JhdGUgdGhlIGZvbGxvd2luZyBwcm9jZXNzOlxyXG4gICAgICAgIGNvbnN0IHNlbGY6IERlbGVnYXRlWGhyID0gdGhpcztcclxuICAgICAgICBjb25zdCBjaHVuY2tTaXplOiBudW1iZXIgPSBNYXRoLmZsb29yKHRvdGFsIC8gMTApO1xyXG4gICAgICAgIGxldCBjdXJzb3I6IG51bWJlciA9IDA7XHJcbiAgICAgICAgdGhpcy5fc3RhdHVzVGV4dCA9IFwiUGFydGlhbCBDb250ZW50XCI7XHJcbiAgICAgICAgdGhpcy5fc3RhdHVzID0gSHR0cFN0YXR1c0NvZGUuUGFydGlhbENvbnRlbnQ7XHJcbiAgICAgICAgY29uc3QgaWR4ID0gc2V0SW50ZXJ2YWwoKCk9PiB7XHJcbiAgICAgICAgICAgIGN1cnNvciArPSBjaHVuY2tTaXplO1xyXG4gICAgICAgICAgICBpZiAoY3Vyc29yID4gdG90YWwpIHtcclxuICAgICAgICAgICAgICAgIGN1cnNvciA9IHRvdGFsO1xyXG4gICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpZHgpO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5vbkxvYWRDb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0YVN0b3JhZ2UubG9hZGVkID0gY3Vyc29yO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5kaXNwYXRjaFByb2dyZXNzRXZlbnQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sIDEwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIG9uTG9hZENvbXBsZXRlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2RhdGFTdG9yYWdlLmxvYWRlZCA9IHRoaXMuX2RhdGFTdG9yYWdlLnRvdGFsO1xyXG4gICAgICAgIHRoaXMuc2V0UmVhZHlTdGF0ZSh0aGlzLkRPTkUpO1xyXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KFwibG9hZFwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgb25FcnJvcihlcnJvcjogSHR0cE1vY2tFcnJvcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3N0YXR1cyA9IGVycm9yLnN0YXR1cztcclxuICAgICAgICB0aGlzLl9zdGF0dXNUZXh0ID0gZXJyb3Iuc3RhdHVzVGV4dDtcclxuICAgICAgICB0aGlzLnNldFJlYWR5U3RhdGUodGhpcy5ET05FKTtcclxuICAgICAgICB0aGlzLmRpc3BhdGNoUHJvZ3Jlc3NFdmVudChcImVycm9yXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBldmVudERpc3BhdGNoKHR5cGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGV2ZW50OiBFdmVudCA9IG5ldyBFdmVudCh0eXBlKTtcclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXZlbnQsICd0YXJnZXQnLCBFVlRfUFJPUFNfQ09ORklHKTtcclxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXZlbnQsICdjdXJyZW50VGFyZ2V0JywgRVZUX1BST1BTX0NPTkZJRyk7XHJcbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlIFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGRpc3BhdGNoUHJvZ3Jlc3NFdmVudCh0eXBlOiBzdHJpbmcgPSBcInByb2dyZXNzXCIpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBkOiBhbnkgPSB0aGlzLl9kYXRhU3RvcmFnZTtcclxuICAgICAgICBjb25zdCBldmVudDogUHJvZ3Jlc3NFdmVudE1vY2sgPSBuZXcgUHJvZ3Jlc3NFdmVudE1vY2sodHlwZSk7XHJcbiAgICAgICAgZXZlbnQubG9hZGVkID0gZC5sb2FkZWQ7XHJcbiAgICAgICAgZXZlbnQudG90YWwgPSBkLnRvdGFsO1xyXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChldmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZSBcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzZXRSZWFkeVN0YXRlKHN0YXRlOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9yZWFkeVN0YXRlID0gc3RhdGU7XHJcbiAgICAgICAgY29uc3QgZXZlbnQ6IGFueSA9IHRoaXMub25yZWFkeXN0YXRlY2hhbmdlO1xyXG4gICAgICAgIGlmIChldmVudCkgZXZlbnQuY2FsbCh0aGlzLCBSRUFEWV9TVEFURV9DSEFOR0VfRVZFTlQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGUgXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgbG9hZERhdGEoaHR0cFJlc3BvbnNlTW9jazogSHR0cFJlc3BvbnNlTW9jayk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgY29uc3QgcmVzcG9uc2VCb2R5OiBhbnkgfCBPYnNlcnZhYmxlPGFueT4gPSBodHRwUmVzcG9uc2VNb2NrLmJvZHk7XHJcbiAgICAgICAgcmV0dXJuIChyZXNwb25zZUJvZHkgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSA/IHJlc3BvbnNlQm9keSA6IG9mKHJlc3BvbnNlQm9keSk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
328
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdhdGUteGhyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvZnJhbWV3b3JrL21vY2svaHR0cC94aHIvZGVsZWdhdGUteGhyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWhGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsVUFBVSxFQUFnQixFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbEU7OztHQUdHO0FBQ0gsTUFBTSxTQUFTLEdBQVcsS0FBSyxDQUFDO0FBRWhDOzs7R0FHRztBQUNILE1BQU0sd0JBQXdCLEdBQVUsSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUV4RTs7R0FFRztBQUNILE1BQU0sZ0JBQWdCLEdBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUVoRTs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLFdBQVksU0FBUSxPQUFPO0lBb0VwQzs7OztPQUlHO0lBQ0gsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksSUFBSSxJQUFJLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLE1BQU07UUFDTixPQUFP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QUksRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRDs7T0FFRztJQUNLLFFBQVEsQ0FBQyxnQkFBa0M7UUFDL0MsTUFBTSxZQUFZLEdBQTBCLGdCQUFnQixDQUFDLElBQUksQ0FBQztRQUNsRSxPQUFPLENBQUMsWUFBWSxZQUFZLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBQ0Q7O09BRUc7SUFDSyxjQUFjLENBQUMsWUFBOEIsRUFBRSxPQUFZLElBQUk7UUFDbkUsSUFBSSxDQUFDLFlBQVksR0FBSSxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDakYsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEBsaWNlbnNlXHJcbiAqIENvcHlyaWdodCBQYXNjYWwgRUNIRU1BTk4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqXHJcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgSHR0cEhlYWRlcnMsIEh0dHBSZXF1ZXN0LCBIdHRwU3RhdHVzQ29kZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBYaHJQcm94eSwgSHR0cFJlc3BvbnNlTW9jaywgSHR0cE1ldGhvZE1vY2ssIEh0dHBNb2NrRXJyb3IgfSBmcm9tIFwiLi4vLi4vLi4vLi4vbW9kZWxcIjtcclxuaW1wb3J0IHsgUHJvZ3Jlc3NFdmVudE1vY2sgfSBmcm9tIFwiLi4vZXZlbnQvcHJvZ3Jlc3MtZXZlbnQtbW9ja1wiO1xyXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vLi4vLi4vLi4vdXRpbFwiO1xyXG5pbXBvcnQgeyBYaHJCYXNlIH0gZnJvbSBcIi4veGhyLWJhc2VcIjtcclxuaW1wb3J0IHsgSHR0cEhlYWRlcnNVdGlsIH0gZnJvbSBcIi4uL3V0aWwvaHR0cC1oZWFkZXJzLnV0aWxcIjtcclxuaW1wb3J0IHsgUm91dGVNb2NrQ29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZy9yb3V0ZS1tb2NrLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIG9mIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgRGF0YVN0b3JhZ2UgfSBmcm9tIFwiLi4vY29yZS9kYXRhLXN0b3JhZ2VcIjtcclxuaW1wb3J0IHsgRGF0YVN0b3JhZ2VCdWlsZGVyIH0gZnJvbSBcIi4uL3V0aWwvZGF0YS1zdG9yYWdlLmJ1aWxkZXJcIjtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKiBUaGUgbWF4aW11bSB2YWx1ZSBmb3IgYSBkZWxheWVkIEhUVFAgcmVzcG9uc2UuXHJcbiAqL1xyXG5jb25zdCBNQVhfVElNRVI6IG51bWJlciA9IDEwMDAwO1xyXG5cclxuLyoqXHJcbiAqIEBwcml2YXRlXHJcbiAqIEludGVuYWwgXCJvbnJlYWR5c3RhdGVjaGFuZ2VcIiBldmVudC5cclxuICovXHJcbmNvbnN0IFJFQURZX1NUQVRFX0NIQU5HRV9FVkVOVDogRXZlbnQgPSBuZXcgRXZlbnQoXCJvbnJlYWR5c3RhdGVjaGFuZ2VcIik7XHJcblxyXG4vKipcclxuICogQHByaXZhdGVcclxuICovXHJcbmNvbnN0IEVWVF9QUk9QU19DT05GSUc6IGFueSA9ICB7IHdyaXRhYmxlOiBmYWxzZSwgdmFsdWU6IHRoaXMgfTtcclxuXHJcbi8qKlxyXG4gKiBAcHJpdmF0ZVxyXG4gKiBBIHV0aWxpdHkgY2xhc3MgdXNlZCBhcyBkZWxlZ2F0ZSBvZiBgWE1MSHR0cFJlcXVlc3RgIGZ1bmN0aW9uYWxpdGllcyB3aGVuXHJcbiAqIGEgSFRUUCByZXF1ZXN0IGlzIGludGVyY2VwdGVkIGJ5IHRoZSBNb2NraW5nIEZyYW1ld29yayAuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRGVsZWdhdGVYaHIgZXh0ZW5kcyBYaHJCYXNlIGltcGxlbWVudHMgWGhyUHJveHkge1xyXG4gICAgXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgcHJvZ3Jlc3NpdmUgZG93bmxvYWQgaXMgYWN0aXZhdGVkLCBvciBub3QuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX3Byb2dyZXNzaXZlRG93bmxvYWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBUaGUgY29uZmlnIGZvciB0aGUgaW50ZXJjZXB0ZWQgcm91dGUuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX3JvdXRlQ29uZmlnOiBSb3V0ZU1vY2tDb25maWc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogXHJcbiAgICAgKiBJbnRlcm5hbCBzdG9yYWdlIGZvciBIVFRQIHJlc3BvbnNlIGBkYXRhYC5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfZGF0YVN0b3JhZ2U6IERhdGFTdG9yYWdlID0gbnVsbCBhcyBhbnk7IFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIFxyXG4gICAgICogSW50ZXJuYWwgc3RvcmFnZSBmb3IgdGhlIEhUVFAgcmVxdWVzdCBgbWV0aG9kYC5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfbWV0aG9kOiB1bmtub3duOyBcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKiBcclxuICAgICAqIEludGVybmFsIHN0b3JhZ2UgZm9yIHRoZSBIVFRQIHJlcXVlc3QgVVJMLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF91cmw6IHVua25vd247IFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIFxyXG4gICAgICogSW50ZXJuYWwgc3RvcmFnZSBmb3IgdGhlIEhUVFAgcmVxdWVzdCBgcmVhZHlTdGF0ZWAuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX3JlYWR5U3RhdGU6IG51bWJlciA9IHRoaXMuVU5TRU5UO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqIFxyXG4gICAgICogSW50ZXJuYWwgc3RvcmFnZSBmb3IgdGhlIEhUVFAgcmVxdWVzdCBgaGVhZGVyc2AuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2hlYWRlcnM6IEh0dHBIZWFkZXJzID0gbnVsbCBhcyBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogXHJcbiAgICAgKiBJbnRlcm5hbCBzdG9yYWdlIGZvciB0aGUgSFRUUCByZXF1ZXN0IGBzdGF0dXNgLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9zdGF0dXM6IG51bWJlciA9IDA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICogXHJcbiAgICAgKiBJbnRlcm5hbCBzdG9yYWdlIGZvciB0aGUgSFRUUCByZXF1ZXN0IGBzdGF0dXNUZXh0YC5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfc3RhdHVzVGV4dDogc3RyaW5nID0gRU1QVFlfU1RSSU5HO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfbG9hZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSByZXNwb25zZSBib2R5IGNvbnRlbnQuXHJcbiAgICAgKlxyXG4gICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvWE1MSHR0cFJlcXVlc3QvcmVzcG9uc2VcclxuICAgICAqL1xyXG4gICAgZ2V0IHJlc3BvbnNlKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFTdG9yYWdlPy5kYXRhIHx8IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBudW1lcmljYWwgSFRUUCBzdGF0dXMgY29kZSBvZiB0aGUgYFhNTEh0dHBSZXF1ZXN0YCByZXNwb25zZS5cclxuICAgICAqXHJcbiAgICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9YTUxIdHRwUmVxdWVzdC9zdGF0dXNcclxuICAgICAqL1xyXG4gICAgZ2V0IHN0YXR1cygpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIHJlc3BvbnNlIHN0YXR1cyBtZXNzYWdlIGFzIHJldHVybmVkIGJ5IHRoZSBIVFRQIHNlcnZlci5cclxuICAgICAqXHJcbiAgICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9YTUxIdHRwUmVxdWVzdC9zdGF0dXNUZXh0XHJcbiAgICAgKi9cclxuICAgIGdldCBzdGF0dXNUZXh0KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXR1c1RleHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBzdGF0ZSB0aGUgYFhNTEh0dHBSZXF1ZXN0YCBjbGllbnQgaXMgaW4uXHJcbiAgICAgKlxyXG4gICAgICogQHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvWE1MSHR0cFJlcXVlc3QvcmVhZHlTdGF0ZVxyXG4gICAgICovXHJcbiAgICBnZXQgcmVhZHlTdGF0ZSgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9yZWFkeVN0YXRlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgc2VyaWFsaXplZCBVUkwgb2YgdGhlIHJlc3BvbnNlIG9yIHRoZSBlbXB0eSBzdHJpbmcgaWYgdGhlIFVSTCBpcyBgbnVsbGAuIFxyXG4gICAgICpcclxuICAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL1hNTEh0dHBSZXF1ZXN0L3Jlc3BvbnNlVVJMXHJcbiAgICAgKi9cclxuICAgIGdldCByZXNwb25zZVVSTCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl91cmwgYXMgc3RyaW5nO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgdGV4dCByZWNlaXZlZCBmcm9tIGEgc2VydmVyIGZvbGxvd2luZyBhIHJlcXVlc3QgYmVpbmcgc2VudC5cclxuICAgICAqXHJcbiAgICAgKiBUaHJvd3MgYW4gYEludmFsaWRTdGF0ZUVycm9yYCBET01FeGNlcHRpb24gaWYgcmVzcG9uc2VUeXBlIGlzIG5vdCB0aGUgZW1wdHkgc3RyaW5nIG9yIFwidGV4dFwiLlxyXG4gICAgICpcclxuICAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL1hNTEh0dHBSZXF1ZXN0L3Jlc3BvbnNlVGV4dFxyXG4gICAgICovXHJcbiAgICBnZXQgcmVzcG9uc2VUZXh0KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFTdG9yYWdlPy5zdHJpbmdpZmllZERhdGEgfHwgRU1QVFlfU1RSSU5HO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogIFJldHVybnMgYW4gYFhNTEh0dHBSZXF1ZXN0VXBsb2FkYCBvYmplY3QgdGhhdCBjYW4gYmUgb2JzZXJ2ZWQgdG8gbW9uaXRvciBhbiB1cGxvYWQgcHJvZ3Jlc3MuIFxyXG4gICAgICpcclxuICAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1hNTEh0dHBSZXF1ZXN0L3VwbG9hZFxyXG4gICAgICovXHJcbiAgICBnZXQgdXBsb2FkKCk6IFhNTEh0dHBSZXF1ZXN0VXBsb2FkIHtcclxuICAgICAgICByZXR1cm4gbnVsbCBhcyBhbnk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogIFJldHVybnMgYW4gYW4gZW51bWVyYXRlZCBzdHJpbmcgdmFsdWUgc3BlY2lmeWluZyB0aGUgdHlwZSBvZiBkYXRhIGNvbnRhaW5lZCBpbiB0aGUgcmVzcG9uc2UuIFxyXG4gICAgICpcclxuICAgICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1hNTEh0dHBSZXF1ZXN0L3Jlc3BvbnNlVHlwZVxyXG4gICAgICovXHJcbiAgICByZXNwb25zZVR5cGU6IFhNTEh0dHBSZXF1ZXN0UmVzcG9uc2VUeXBlID0gXCJcIjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIGEgbmV3bHktY3JlYXRlZCByZXF1ZXN0LCBvciByZS1pbml0aWFsaXplcyBhbiBleGlzdGluZyBvbmUuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBtZXRob2QgVGhlIEhUVFAgcmVxdWVzdCBtZXRob2QgdG8gdXNlLCBzdWNoIGFzIGBcIkdFVFwiYCwgYFwiUE9TVFwiYCwgYFwiUFVUXCJgLCBgXCJERUxFVEVcImAsXHJcbiAgICAgKiAgICAgICAgICAgICAgIGV0Yy4gSWdub3JlZCBmb3Igbm9uLUhUVFAoUykgVVJMcy5cclxuICAgICAqIEBwYXJhbSB1cmwgQSBzdHJpbmcgb3IgYW55IG90aGVyIG9iamVjdCB3aXRoIGEgc3RyaW5naWZpZXIg4oCUIGluY2x1ZGluZyBhIFVSTCBvYmplY3Qg4oCUXHJcbiAgICAgKiAgICAgICAgICAgIHRoYXQgcHJvdmlkZXMgdGhlIFVSTCBvZiB0aGUgcmVzb3VyY2UgdG8gc2VuZCB0aGUgcmVxdWVzdCB0by5cclxuICAgICAqL1xyXG4gICAgb3BlbihtZXRob2Q6IHN0cmluZywgdXJsOiBzdHJpbmcgfCBVUkwpOiB2b2lkO1xyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBvcGVuKG1ldGhvZDogc3RyaW5nLCB1cmw6IHN0cmluZyB8IFVSTCwgYXN5bmM6IGJvb2xlYW4sIHVzZXJuYW1lPzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCwgcGFzc3dvcmQ/OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogdm9pZDtcclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgb3BlbihtZXRob2Q6IHVua25vd24sIHVybDogdW5rbm93biwgYXN5bmM/OiB1bmtub3duLCB1c2VybmFtZT86IHVua25vd24sIHBhc3N3b3JkPzogdW5rbm93bik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX21ldGhvZCA9IG1ldGhvZDtcclxuICAgICAgICB0aGlzLl91cmwgPSB1cmw7XHJcbiAgICAgICAgdGhpcy5zZXRSZWFkeVN0YXRlKHRoaXMuT1BFTkVEKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFib3J0cyB0aGUgcmVxdWVzdCBpZiBpdCBoYXMgYWxyZWFkeSBiZWVuIHNlbnQuIFdoZW4gYSByZXF1ZXN0IGlzIGFib3J0ZWQsIGl0cyBgcmVhZHlTdGF0ZWBcclxuICAgICAqIGlzIGNoYW5nZWQgdG8gYFhNTEh0dHBSZXF1ZXN0LlVOU0VOVGAgYW5kIHRoZSByZXF1ZXN0IHN0YXR1cyBjb2RlIGlzIHNldCB0byBgMGAuXHJcbiAgICAgKi9cclxuICAgIGFib3J0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3JlYWR5U3RhdGUgPSB0aGlzLlVOU0VOVDtcclxuICAgICAgICB0aGlzLl9zdGF0dXMgPSAwO1xyXG4gICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaChcImFib3J0XCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhbGwgdGhlIHJlc3BvbnNlIGhlYWRlcnMsIHNlcGFyYXRlZCBieSBDUkxGLCBhcyBhIHN0cmluZywgb3IgcmV0dXJucyBgbnVsbGBcclxuICAgICAqIGlmIG5vIHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkLlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyBBbGwgdGhlIHJlc3BvbnNlIGhlYWRlcnMsIHNlcGFyYXRlZCBieSBDUkxGLCBhcyBhIHN0cmluZywgb3IgcmV0dXJucyBgbnVsbGBcclxuICAgICAqICAgICAgICAgIGlmIG5vIHJlc3BvbnNlIGhhcyBiZWVuIHJlY2VpdmVkLlxyXG4gICAgICovXHJcbiAgICBnZXRBbGxSZXNwb25zZUhlYWRlcnMoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVN0b3JhZ2UgPyBIdHRwSGVhZGVyc1V0aWwuc3RyaW5naWZ5KHRoaXMuX2hlYWRlcnMpIDogRU1QVFlfU1RSSU5HO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2VuZHMgdGhlIHJlcXVlc3QgdG8gdGhlIHNlcnZlci5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGJvZHkgQSBib2R5IG9mIGRhdGEgdG8gYmUgc2VudCBpbiB0aGUgWEhSIHJlcXVlc3QuXHJcbiAgICAgKi9cclxuICAgIHNlbmQoYm9keT86IERvY3VtZW50IHwgWE1MSHR0cFJlcXVlc3RCb2R5SW5pdCB8IG51bGwgfCB1bmRlZmluZWQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCByZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+ID0gbmV3IEh0dHBSZXF1ZXN0PGFueT4odGhpcy5fbWV0aG9kIGFzIHN0cmluZywgdGhpcy5fdXJsIGFzIGFueSwgYm9keSk7XHJcbiAgICAgICAgY29uc3QgcmM6IFJvdXRlTW9ja0NvbmZpZyA9IHRoaXMuX3JvdXRlQ29uZmlnO1xyXG4gICAgICAgIGNvbnN0IGh0dHBSZXNwb25zZU1vY2s6IEh0dHBSZXNwb25zZU1vY2sgPSAocmMubWV0aG9kQ29uZmlnIGFzIGFueSkuZGF0YShyZXF1ZXN0LCByYy5wYXJhbWV0ZXJzKTtcclxuICAgICAgICBsZXQgdGltZXI6IG51bWJlciA9IGh0dHBSZXNwb25zZU1vY2suZGVsYXkgfHwgMDtcclxuICAgICAgICBpZiAodGltZXIgPiBNQVhfVElNRVIpIHRpbWVyID0gTUFYX1RJTUVSO1xyXG4gICAgICAgIHRoaXMuX2xvYWRTdWJzY3JpcHRpb24gPSB0aGlzLmxvYWREYXRhKGh0dHBSZXNwb25zZU1vY2spLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RGF0YVN0b3JhZ2UoaHR0cFJlc3BvbnNlTW9jaywgZGF0YSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBlcnJvcjogSHR0cE1vY2tFcnJvciB8IG51bGwgPSB0aGlzLl9kYXRhU3RvcmFnZS5odHRwUmVzcG9uc2UuZXJyb3I7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0UmVhZHlTdGF0ZSh0aGlzLkhFQURFUlNfUkVDRUlWRUQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvcikgcmV0dXJuIHRoaXMub25FcnJvcihlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRSZWFkeVN0YXRlKHRoaXMuTE9BRElORyk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2U6IEh0dHBSZXNwb25zZU1vY2sgPSB0aGlzLl9kYXRhU3RvcmFnZS5odHRwUmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGhlYWRlcnM6IGFueSA9IHJlc3BvbnNlLmhlYWRlcnM7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhlYWRlcnMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faGVhZGVycy5rZXlzKCkuZm9yRWFjaCgoa2V5OiBzdHJpbmcpPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KGtleSwgdGhpcy5faGVhZGVycy5nZXQoa2V5KSBhcyBhbnkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9oZWFkZXJzID0gaGVhZGVycztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9wcm9ncmVzc2l2ZURvd25sb2FkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3N0YXR1c1RleHQgPSByZXNwb25zZS5zdGF0dXNUZXh0IHx8IEVNUFRZX1NUUklORztcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RhdHVzID0gcmVzcG9uc2Uuc3RhdHVzIHx8IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm9uTG9hZENvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZG9Qcm9ncmVzc2l2ZURvd25sb2FkKCk7XHJcbiAgICAgICAgICAgICAgICB9LCB0aW1lcik7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RGF0YVN0b3JhZ2UoaHR0cFJlc3BvbnNlTW9jayk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uRXJyb3IoZXJyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiBhbiBIVFRQIHJlcXVlc3QgaGVhZGVyLlxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgaGVhZGVyIHdob3NlIHZhbHVlIGlzIHRvIGJlIHNldC5cclxuICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gc2V0IGFzIHRoZSBib2R5IG9mIHRoZSBoZWFkZXIuXHJcbiAgICAgKi9cclxuICAgIHNldFJlcXVlc3RIZWFkZXIobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5faGVhZGVycyA9IHRoaXMuX2hlYWRlcnMuc2V0KG5hbWUsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlIFxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcihyb3V0ZUNvbmZpZzogUm91dGVNb2NrQ29uZmlnKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBjb25zdCBtZXRob2RDb25maWc6IEh0dHBNZXRob2RNb2NrID0gcm91dGVDb25maWcubWV0aG9kQ29uZmlnO1xyXG4gICAgICAgIHRoaXMuX3JvdXRlQ29uZmlnID0gcm91dGVDb25maWc7XHJcbiAgICAgICAgdGhpcy5fcHJvZ3Jlc3NpdmVEb3dubG9hZCA9IG1ldGhvZENvbmZpZy5wcm9ncmVzc2l2ZSB8fCBmYWxzZTtcclxuICAgICAgICB0aGlzLnJlc3BvbnNlVHlwZSA9IG1ldGhvZENvbmZpZy5yZXNwb25zZVR5cGUgfHwgRU1QVFlfU1RSSU5HIGFzIGFueTtcclxuICAgICAgICB0aGlzLl9oZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGUgXHJcbiAgICAgKiBJbnRlcm5hbGx5IHVzZWQgYnkgdGhlIGZyYW1ld29yayB0byBkZWxldGUgYSBgRGVsZWdhdGVYaHJgIGluc3RhbmNlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9yb3V0ZUNvbmZpZyA9IG51bGwgYXMgYW55O1xyXG4gICAgICAgIHRoaXMuX2hlYWRlcnMgPSBudWxsIGFzIGFueTtcclxuICAgICAgICB0aGlzLl9kYXRhU3RvcmFnZSA9IG51bGwgYXMgYW55O1xyXG4gICAgICAgIGlmICh0aGlzLl9sb2FkU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2xvYWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgdGhpcy5fbG9hZFN1YnNjcmlwdGlvbiA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGUgXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZG9Qcm9ncmVzc2l2ZURvd25sb2FkKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHRvdGFsOiBudW1iZXIgPSB0aGlzLl9kYXRhU3RvcmFnZS50b3RhbDtcclxuICAgICAgICBpZiAodG90YWwgPD0gMjAwKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcIltBbmd1bGFyIFRvb2xib3hdOiBCb2R5IGNvbnRlbnQgaXMgdG9vIHNtYWxsIGZvciBlbXVsYXRpbmcgcHJvZ3Jlc3NpdmUgZG93bmxvYWQhIE1pbmltdW0gc2l6ZSBpcyAyMDAgb2N0ZXRzLlwiKTtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMub25Mb2FkQ29tcGxldGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gVE9ETzogYW1lbGlvcmF0ZSB0aGUgZm9sbG93aW5nIHByb2Nlc3M6XHJcbiAgICAgICAgY29uc3Qgc2VsZjogRGVsZWdhdGVYaHIgPSB0aGlzO1xyXG4gICAgICAgIGNvbnN0IGNodW5ja1NpemU6IG51bWJlciA9IE1hdGguZmxvb3IodG90YWwgLyAxMCk7XHJcbiAgICAgICAgbGV0IGN1cnNvcjogbnVtYmVyID0gMDtcclxuICAgICAgICB0aGlzLl9zdGF0dXNUZXh0ID0gXCJQYXJ0aWFsIENvbnRlbnRcIjtcclxuICAgICAgICB0aGlzLl9zdGF0dXMgPSBIdHRwU3RhdHVzQ29kZS5QYXJ0aWFsQ29udGVudDtcclxuICAgICAgICBjb25zdCBpZHggPSBzZXRJbnRlcnZhbCgoKT0+IHtcclxuICAgICAgICAgICAgY3Vyc29yICs9IGNodW5ja1NpemU7XHJcbiAgICAgICAgICAgIGlmIChjdXJzb3IgPiB0b3RhbCkge1xyXG4gICAgICAgICAgICAgICAgY3Vyc29yID0gdG90YWw7XHJcbiAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGlkeCk7XHJcbiAgICAgICAgICAgICAgICBzZWxmLm9uTG9hZENvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kYXRhU3RvcmFnZS5sb2FkZWQgPSBjdXJzb3I7XHJcbiAgICAgICAgICAgICAgICBzZWxmLmRpc3BhdGNoUHJvZ3Jlc3NFdmVudCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgb25Mb2FkQ29tcGxldGUoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZGF0YVN0b3JhZ2UubG9hZGVkID0gdGhpcy5fZGF0YVN0b3JhZ2UudG90YWw7XHJcbiAgICAgICAgdGhpcy5zZXRSZWFkeVN0YXRlKHRoaXMuRE9ORSk7XHJcbiAgICAgICAgdGhpcy5kaXNwYXRjaFByb2dyZXNzRXZlbnQoXCJsb2FkXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBvbkVycm9yKGVycm9yOiBIdHRwTW9ja0Vycm9yKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc3RhdHVzID0gZXJyb3Iuc3RhdHVzO1xyXG4gICAgICAgIHRoaXMuX3N0YXR1c1RleHQgPSBlcnJvci5zdGF0dXNUZXh0O1xyXG4gICAgICAgIHRoaXMuc2V0UmVhZHlTdGF0ZSh0aGlzLkRPTkUpO1xyXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KFwiZXJyb3JcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGV2ZW50RGlzcGF0Y2godHlwZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZXZlbnQ6IEV2ZW50ID0gbmV3IEV2ZW50KHR5cGUpO1xyXG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShldmVudCwgJ3RhcmdldCcsIEVWVF9QUk9QU19DT05GSUcpO1xyXG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShldmVudCwgJ2N1cnJlbnRUYXJnZXQnLCBFVlRfUFJPUFNfQ09ORklHKTtcclxuICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGUgXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KHR5cGU6IHN0cmluZyA9IFwicHJvZ3Jlc3NcIik6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGQ6IGFueSA9IHRoaXMuX2RhdGFTdG9yYWdlO1xyXG4gICAgICAgIGNvbnN0IGV2ZW50OiBQcm9ncmVzc0V2ZW50TW9jayA9IG5ldyBQcm9ncmVzc0V2ZW50TW9jayh0eXBlKTtcclxuICAgICAgICBldmVudC5sb2FkZWQgPSBkLmxvYWRlZDtcclxuICAgICAgICBldmVudC50b3RhbCA9IGQudG90YWw7XHJcbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwcml2YXRlIFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHNldFJlYWR5U3RhdGUoc3RhdGU6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3JlYWR5U3RhdGUgPSBzdGF0ZTtcclxuICAgICAgICBjb25zdCBldmVudDogYW55ID0gdGhpcy5vbnJlYWR5c3RhdGVjaGFuZ2U7XHJcbiAgICAgICAgaWYgKGV2ZW50KSBldmVudC5jYWxsKHRoaXMsIFJFQURZX1NUQVRFX0NIQU5HRV9FVkVOVCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcHJpdmF0ZSBcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBsb2FkRGF0YShodHRwUmVzcG9uc2VNb2NrOiBIdHRwUmVzcG9uc2VNb2NrKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICBjb25zdCByZXNwb25zZUJvZHk6IGFueSB8IE9ic2VydmFibGU8YW55PiA9IGh0dHBSZXNwb25zZU1vY2suYm9keTtcclxuICAgICAgICByZXR1cm4gKHJlc3BvbnNlQm9keSBpbnN0YW5jZW9mIE9ic2VydmFibGUpID8gcmVzcG9uc2VCb2R5IDogb2YocmVzcG9uc2VCb2R5KTtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICogQHByaXZhdGUgXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgc2V0RGF0YVN0b3JhZ2UocmVzcG9uc2VNb2NrOiBIdHRwUmVzcG9uc2VNb2NrLCBkYXRhOiBhbnkgPSBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZGF0YVN0b3JhZ2UgPSAgRGF0YVN0b3JhZ2VCdWlsZGVyLmJ1aWxkRGF0YVN0b3JhZ2UocmVzcG9uc2VNb2NrLCBkYXRhKTtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
* the LICENSE file at https://pascalechemann.com/angular-toolbox/resources/license
|
|
7
7
|
*/
|
|
8
8
|
export {};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0dGVyeS1tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10b29sYm94L3NyYy9saWIvbW9kZWwvYnVzaW5lc3MvbmF2aWdhdG9yL2JhdHRlcnktbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gXHJcbiAqIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9wYXNjYWxlY2hlbWFubi5jb20vYW5ndWxhci10b29sYm94L3Jlc291cmNlcy9saWNlbnNlXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFRoZSBgQmF0dGVyeU1hbmFnZXJgIGludGVyZmFjZSBvZiB0aGUgQmF0dGVyeSBTdGF0dXMgQVBJIHByb3ZpZGVzIGluZm9ybWF0aW9uIGFib3V0XHJcbiAqIHRoZSBzeXN0ZW0gYmF0dGVyeSBjaGFyZ2UgbGV2ZWwuIFRoZSBgbmF2aWdhdG9yLmdldEJhdHRlcnkoKWAgbWV0aG9kIHJldHVybnMgYSBwcm9taXNlXHJcbiAqIHRoYXQgcmVzb2x2ZXMgd2l0aCBhIGBCYXR0ZXJ5TWFuYWdlcmAgaW50ZXJmYWNlLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBCYXR0ZXJ5TWFuYWdlciBleHRlbmRzIEV2ZW50VGFyZ2V0IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEEgYm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGJhdHRlcnkgaXMgY3VycmVudGx5IGJlaW5nIGNoYXJnZWQuXHJcbiAgICAgKi9cclxuICAgIHJlYWRvbmx5IGNoYXJnaW5nOiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQSBudW1iZXIgcmVwcmVzZW50aW5nIHRoZSByZW1haW5pbmcgdGltZSBpbiBzZWNvbmRzIHVudGlsIHRoZSBiYXR0ZXJ5IGlzIGZ1bGx5IGNoYXJnZWQsXHJcbiAgICAgKiBvciAwIGlmIHRoZSBiYXR0ZXJ5IGlzIGFscmVhZHkgZnVsbHkgY2hhcmdlZC5cclxuICAgICAqL1xyXG4gICAgcmVhZG9ubHkgY2hhcmdpbmdUaW1lOiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBIG51bWJlciByZXByZXNlbnRpbmcgdGhlIHJlbWFpbmluZyB0aW1lIGluIHNlY29uZHMgdW50aWwgdGhlIGJhdHRlcnlcclxuICAgICAqIGlzIGNvbXBsZXRlbHkgZGlzY2hhcmdlZCBhbmQgdGhlIHN5c3RlbSBzdXNwZW5kcy5cclxuICAgICAqL1xyXG4gICAgcmVhZG9ubHkgZGlzY2hhcmdpbmdUaW1lOiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBIG51bWJlciByZXByZXNlbnRpbmcgdGhlIHN5c3RlbSdzIGJhdHRlcnkgY2hhcmdlIGxldmVsIHNjYWxlZCB0byBhIHZhbHVlIGJldHdlZW4gMC4wIGFuZCAxLjAuXHJcbiAgICAgKi9cclxuICAgIHJlYWRvbmx5IGxldmVsOiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGaXJlZCB3aGVuIHRoZSBiYXR0ZXJ5IGNoYXJnaW5nIHN0YXRlICh0aGUgYGNoYXJnaW5nYCBwcm9wZXJ0eSkgaXMgdXBkYXRlZC5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGV2ZW50IEEgZ2VuZXJpYyBgRXZlbnRgLlxyXG4gICAgICovXHJcbiAgICBvbmxldmVsY2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGaXJlZCB3aGVuIHRoZSBiYXR0ZXJ5IGNoYXJnaW5nIHRpbWUgKHRoZSBgY2hhcmdpbmdUaW1lYCBwcm9wZXJ0eSkgaXMgdXBkYXRlZC5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGV2ZW50IEEgZ2VuZXJpYyBgRXZlbnRgLlxyXG4gICAgICovXHJcbiAgICBvbmNoYXJnaW5nY2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGaXJlZCB3aGVuIHRoZSBiYXR0ZXJ5IGRpc2NoYXJnaW5nIHRpbWUgKHRoZSBgZGlzY2hhcmdpbmdUaW1lYCBwcm9wZXJ0eSkgaXMgdXBkYXRlZC5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGV2ZW50IEEgZ2VuZXJpYyBgRXZlbnRgLlxyXG4gICAgICovXHJcbiAgICBvbmNoYXJnaW5ndGltZWNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmlyZWQgd2hlbiB0aGUgYmF0dGVyeSBsZXZlbCAodGhlIGBsZXZlbGAgcHJvcGVydHkpIGlzIHVwZGF0ZWQuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBldmVudCBBIGdlbmVyaWMgYEV2ZW50YC5cclxuICAgICAqL1xyXG4gICAgb25kaXNjaGFyZ2luZ3RpbWVjaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZDtcclxufSJdfQ==
|
|
@@ -14,9 +14,9 @@ import * as i0 from "@angular/core";
|
|
|
14
14
|
*/
|
|
15
15
|
const LAYERS_VERSION_CONFIG = {
|
|
16
16
|
major: 0,
|
|
17
|
-
minor:
|
|
18
|
-
patch:
|
|
19
|
-
buildTimestamp:
|
|
17
|
+
minor: 11,
|
|
18
|
+
patch: 0,
|
|
19
|
+
buildTimestamp: 1721903923427,
|
|
20
20
|
metadata: "beta"
|
|
21
21
|
};
|
|
22
22
|
/**
|
|
@@ -35,4 +35,4 @@ export class AngularToolboxVersionService extends AbstractVersionManager {
|
|
|
35
35
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AngularToolboxVersionService, decorators: [{
|
|
36
36
|
type: Injectable
|
|
37
37
|
}], ctorParameters: () => [] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10b29sYm94LXZlcnNpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdG9vbGJveC9zcmMvbGliL21vZGVsL3NlcnZpY2UvdmVyc2lvbi9hbmd1bGFyLXRvb2xib3gtdmVyc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUd2RDs7O0dBR0c7QUFDSCxNQUFNLHFCQUFxQixHQUFrQjtJQUMzQyxLQUFLLEVBQUUsQ0FBQztJQUNSLEtBQUssRUFBRSxFQUFFO0lBQ1QsS0FBSyxFQUFFLENBQUM7SUFDUixjQUFjLEVBQUUsYUFBYTtJQUM3QixRQUFRLEVBQUUsTUFBTTtDQUNqQixDQUFDO0FBRUY7O0dBRUc7QUFFSCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsc0JBQXNCO0lBRXRFOztPQUVHO0lBQ0g7UUFDRSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUMvQixDQUFDOzhHQVBVLDRCQUE0QjtrSEFBNUIsNEJBQTRCOzsyRkFBNUIsNEJBQTRCO2tCQUR4QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IFBhc2NhbCBFQ0hFTUFOTi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpblxuICogdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL3Bhc2NhbGVjaGVtYW5uLmNvbS9hbmd1bGFyLXRvb2xib3gvcmVzb3VyY2VzL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFZlcnNpb25NYW5hZ2VyIH0gZnJvbSAnLi4vLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBWZXJzaW9uQ29uZmlnIH0gZnJvbSAnLi4vLi4vYnVzaW5lc3MnO1xuXG4vKipcbiAqIEBwcml2YXRlXG4gKiBUaGUgY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBBbmd1bGFyIFRvb2xib3ggbGlicmFyeS5cbiAqL1xuY29uc3QgTEFZRVJTX1ZFUlNJT05fQ09ORklHOiBWZXJzaW9uQ29uZmlnID0ge1xuICBtYWpvcjogMCxcbiAgbWlub3I6IDExLFxuICBwYXRjaDogMCxcbiAgYnVpbGRUaW1lc3RhbXA6IDE3MjE5MDM5MjM0MjcsXG4gIG1ldGFkYXRhOiBcImJldGFcIlxufTtcblxuLyoqXG4gKiBUaGUgcHVibGljIHNlcnZpY2UgdGhhdCBleHBvc2VzIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgdGhlIEFuZ3VsYXIgVG9vbGJveCBsaWJyYXJ5LlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQW5ndWxhclRvb2xib3hWZXJzaW9uU2VydmljZSBleHRlbmRzIEFic3RyYWN0VmVyc2lvbk1hbmFnZXIge1xuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoTEFZRVJTX1ZFUlNJT05fQ09ORklHKTtcbiAgfVxufVxuIl19
|
|
@@ -542,9 +542,9 @@ class AbstractVersionManager {
|
|
|
542
542
|
*/
|
|
543
543
|
const LAYERS_VERSION_CONFIG = {
|
|
544
544
|
major: 0,
|
|
545
|
-
minor:
|
|
546
|
-
patch:
|
|
547
|
-
buildTimestamp:
|
|
545
|
+
minor: 11,
|
|
546
|
+
patch: 0,
|
|
547
|
+
buildTimestamp: 1721903923427,
|
|
548
548
|
metadata: "beta"
|
|
549
549
|
};
|
|
550
550
|
/**
|
|
@@ -3640,29 +3640,35 @@ class DelegateXhr extends XhrBase {
|
|
|
3640
3640
|
let timer = httpResponseMock.delay || 0;
|
|
3641
3641
|
if (timer > MAX_TIMER)
|
|
3642
3642
|
timer = MAX_TIMER;
|
|
3643
|
-
this._loadSubscription = this.loadData(httpResponseMock).subscribe(
|
|
3644
|
-
|
|
3645
|
-
|
|
3646
|
-
|
|
3647
|
-
|
|
3648
|
-
|
|
3649
|
-
|
|
3650
|
-
|
|
3651
|
-
|
|
3652
|
-
|
|
3653
|
-
|
|
3654
|
-
|
|
3655
|
-
|
|
3656
|
-
|
|
3657
|
-
|
|
3658
|
-
|
|
3659
|
-
|
|
3660
|
-
this.
|
|
3661
|
-
|
|
3662
|
-
|
|
3663
|
-
|
|
3664
|
-
|
|
3665
|
-
|
|
3643
|
+
this._loadSubscription = this.loadData(httpResponseMock).subscribe({
|
|
3644
|
+
next: (data) => {
|
|
3645
|
+
this.setDataStorage(httpResponseMock, data);
|
|
3646
|
+
const error = this._dataStorage.httpResponse.error;
|
|
3647
|
+
setTimeout(() => {
|
|
3648
|
+
this.setReadyState(this.HEADERS_RECEIVED);
|
|
3649
|
+
if (error)
|
|
3650
|
+
return this.onError(error);
|
|
3651
|
+
this.setReadyState(this.LOADING);
|
|
3652
|
+
const response = this._dataStorage.httpResponse;
|
|
3653
|
+
let headers = response.headers;
|
|
3654
|
+
if (headers) {
|
|
3655
|
+
this._headers.keys().forEach((key) => {
|
|
3656
|
+
headers = headers.set(key, this._headers.get(key));
|
|
3657
|
+
});
|
|
3658
|
+
this._headers = headers;
|
|
3659
|
+
}
|
|
3660
|
+
if (!this._progressiveDownload) {
|
|
3661
|
+
this._statusText = response.statusText || EMPTY_STRING;
|
|
3662
|
+
this._status = response.status || 0;
|
|
3663
|
+
return this.onLoadComplete();
|
|
3664
|
+
}
|
|
3665
|
+
this.doProgressiveDownload();
|
|
3666
|
+
}, timer);
|
|
3667
|
+
},
|
|
3668
|
+
error: (err) => {
|
|
3669
|
+
this.setDataStorage(httpResponseMock);
|
|
3670
|
+
this.onError(err);
|
|
3671
|
+
}
|
|
3666
3672
|
});
|
|
3667
3673
|
}
|
|
3668
3674
|
/**
|
|
@@ -3727,7 +3733,7 @@ class DelegateXhr extends XhrBase {
|
|
|
3727
3733
|
const methodConfig = routeConfig.methodConfig;
|
|
3728
3734
|
this._routeConfig = routeConfig;
|
|
3729
3735
|
this._progressiveDownload = methodConfig.progressive || false;
|
|
3730
|
-
this.responseType = methodConfig.responseType ||
|
|
3736
|
+
this.responseType = methodConfig.responseType || EMPTY_STRING;
|
|
3731
3737
|
this._headers = new HttpHeaders();
|
|
3732
3738
|
}
|
|
3733
3739
|
/**
|
|
@@ -3823,6 +3829,12 @@ class DelegateXhr extends XhrBase {
|
|
|
3823
3829
|
const responseBody = httpResponseMock.body;
|
|
3824
3830
|
return (responseBody instanceof Observable) ? responseBody : of(responseBody);
|
|
3825
3831
|
}
|
|
3832
|
+
/**
|
|
3833
|
+
* @private
|
|
3834
|
+
*/
|
|
3835
|
+
setDataStorage(responseMock, data = null) {
|
|
3836
|
+
this._dataStorage = DataStorageBuilder.buildDataStorage(responseMock, data);
|
|
3837
|
+
}
|
|
3826
3838
|
}
|
|
3827
3839
|
|
|
3828
3840
|
/**
|