ets-fe-ng-sdk 1.0.83 → 1.0.84

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.
@@ -217,19 +217,35 @@ class ApiService {
217
217
  .pipe(catchError(this.handleRequestError));
218
218
  }
219
219
  postFile(route, body, extras) {
220
- return this.post(route, body, {
221
- options: {
222
- responseType: 'json',
223
- ...extras?.options,
224
- headers: this.concatenateHeaders(new HttpHeaders(this.fileHeaders), extras?.options?.headers),
225
- },
226
- });
220
+ // return this.post<T>(route, body, {
221
+ // options: {
222
+ // responseType: 'json',
223
+ // ...extras?.options,
224
+ // headers: this.concatenateHeaders(
225
+ // new HttpHeaders({
226
+ // enctype: 'multipart/form-data',
227
+ // }),
228
+ // extras?.options?.headers
229
+ // ),
230
+ // },
231
+ // });
232
+ return this.http
233
+ .post(encodeURI(route), body, {
234
+ // responseType: 'json',
235
+ ...extras?.options,
236
+ // headers: this.concatenateHeaders(
237
+ // new HttpHeaders({
238
+ // enctype: 'multipart/form-data',
239
+ // }),
240
+ // extras?.options?.headers
241
+ // ),
242
+ })
243
+ .pipe(catchError(this.handleRequestError));
227
244
  }
228
245
  postFileWithEndorsement(route, body) {
229
246
  return this.post(route, body, {
230
247
  options: {
231
- headers: new HttpHeaders(this.fileHeaders).set('useEndorsement', 'true'),
232
- responseType: 'json',
248
+ headers: new HttpHeaders().set('useEndorsement', 'true'),
233
249
  },
234
250
  });
235
251
  }
@@ -307,4 +323,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImpor
307
323
  providedIn: 'root',
308
324
  }]
309
325
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.CacheService }, { type: i3.LocalCacheService }]; } });
310
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2VydmljZXMvYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBR0wsV0FBVyxFQUNYLFdBQVcsR0FDWixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBTyxhQUFhLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBVzdELE1BR2EsVUFBVTtJQUVyQixJQUFZLE9BQU87UUFDakIsT0FBTztZQUNMLGNBQWMsRUFBRSxrQkFBa0I7U0FDbkMsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFZLFdBQVc7UUFDckIsT0FBTztZQUNMLE9BQU8sRUFBRSxxQkFBcUI7U0FDL0IsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUNTLElBQWdCLEVBQ2hCLE1BQW9CLEVBQ3BCLE9BQTBCO1FBRjFCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUNwQixZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQWYzQixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBV2YsZUFBVSxHQUFHLENBQUMsQ0FBQztRQWdCYix1QkFBa0IsR0FBRyxDQUFDLEdBQXNCLEVBQUUsRUFBRTtZQUN4RCxJQUFJLE9BQU8sQ0FBQztZQUNaLElBQUksR0FBRyxFQUFFLEtBQUssWUFBWSxXQUFXO2dCQUNuQyxPQUFPLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLENB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QUFXLElBQUksYUFBYSxFQUFFO1lBQ3hDLEtBQUssSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLEtBQUssR0FBRyxJQUFJLENBQUM7U0FDZDtRQUNELElBQUksT0FBTyxHQUFHLE1BQU0sRUFBRSxjQUFjO1lBQ2xDLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQztZQUM3RCxDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUNqQixZQUFZLEVBQUUsTUFBTTtZQUNwQixHQUFHLE1BQU0sRUFBRSxPQUFPO1lBQ2xCLE9BQU8sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQzlCLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFDN0IsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQ3pCO1NBQ0YsQ0FBQzthQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQW9CLENBQUM7SUFDbEUsQ0FBQzs4R0E1VFUsVUFBVTtrSEFBVixVQUFVLGNBRlQsTUFBTTs7U0FFUCxVQUFVOzJGQUFWLFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSHR0cENsaWVudCxcbiAgSHR0cEVycm9yUmVzcG9uc2UsXG4gIEh0dHBIZWFkZXJzLFxuICBIdHRwUmVxdWVzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgaWlmLCBsYXN0VmFsdWVGcm9tLCBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHJldHJ5LCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJQ29kZURlc2NyaXB0aW9uLCBJQ29kZVRpdGxlIH0gZnJvbSAnLi4vU2hhcmVkL21vZGVscy9pbmRleC5tb2RlbCc7XG5pbXBvcnQgeyBFVFNlbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBDYWNoZVNlcnZpY2UgfSBmcm9tICcuL2NhY2hlL2NhY2hlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYWxDYWNoZVNlcnZpY2UgfSBmcm9tICcuL2NhY2hlL2xvY2FsLWNhY2hlLnNlcnZpY2UnO1xuZXhwb3J0IGludGVyZmFjZSBJUmVzcG9uc2Uge1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHJlc3VsdDogYW55O1xuICBzdGF0dXM6ICdzdWNjZXNzJyB8ICdlcnJvcicgfCAnZmFpbHVyZSc7XG4gIHN0YXR1c0NvZGU6ICdTTTAwMCcgfCAnU00wMDEnIHwgJ1NNMDAyJyB8ICdTTTAwMyc7XG59XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXBpU2VydmljZSB7XG4gIHByaXZhdGUgc2hvd1JvdXRlcyA9IDA7XG4gIHByaXZhdGUgZ2V0IGhlYWRlcnMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgfTtcbiAgfVxuICBwcml2YXRlIGdldCBmaWxlSGVhZGVycygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZW5jdHlwZTogJ211bHRpcGFydC9mb3JtLWRhdGEnLFxuICAgIH07XG4gIH1cbiAgcHJpdmF0ZSByZXRyeUNvdW50ID0gMDtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHVibGljIGNhY2hlUzogQ2FjaGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBsQ2FjaGVTOiBMb2NhbENhY2hlU2VydmljZVxuICApIHt9XG5cbiAgcHJpdmF0ZSBsb2dSb3V0ZXMoXG4gICAgbWV0aG9kOiAnZ2V0JyB8ICdwb3N0JyB8ICdwdXQnIHwgJ2RlbGV0ZScsXG4gICAgcm91dGUsXG4gICAgLi4uZXh0cmFzXG4gICkge1xuICAgIGlmICh0aGlzLnNob3dSb3V0ZXMpIHtcbiAgICAgIGNvbnNvbGUubG9nKG1ldGhvZCwgcm91dGUsIC4uLmV4dHJhcyk7XG4gICAgfVxuICB9XG4gIHByb3RlY3RlZCBoYW5kbGVSZXF1ZXN0RXJyb3IgPSAoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgIGxldCBtZXNzYWdlO1xuICAgIGlmIChlcnI/LmVycm9yIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpXG4gICAgICBtZXNzYWdlID0gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLCBuZXcgVWludDhBcnJheShlcnI/LmVycm9yKSk7XG4gICAgcmV0dXJuIHRocm93RXJyb3IobWVzc2FnZSB8fCBlcnI/LmVycm9yPy5tZXNzYWdlKTtcbiAgfTtcbiAgcHJvdGVjdGVkIGNvbmNhdGVuYXRlSGVhZGVycyA9IChcbiAgICBoZWFkZXJzMTogSHR0cEhlYWRlcnMsXG4gICAgaGVhZGVyczI6IEh0dHBIZWFkZXJzXG4gICk6IEh0dHBIZWFkZXJzID0+IHtcbiAgICBpZiAoIWhlYWRlcnMxKSByZXR1cm4gaGVhZGVyczI7XG4gICAgZWxzZSBpZiAoIWhlYWRlcnMyKSByZXR1cm4gaGVhZGVyczE7XG5cbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBoZWFkZXJzMS5rZXlzKCkpXG4gICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoaXRlbSwgaGVhZGVyczEuZ2V0KGl0ZW0pKTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaGVhZGVyczIua2V5cygpKSB7XG4gICAgICBpZiAoaGVhZGVycy5oYXMoaXRlbSkpIGhlYWRlcnMuZGVsZXRlKGl0ZW0pO1xuICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KGl0ZW0sIGhlYWRlcnMyLmdldChpdGVtKSk7XG4gICAgfVxuICAgIHJldHVybiBoZWFkZXJzO1xuICB9O1xuXG4gIC8vI3JlZ2lvbiBQQVRDSFxuICBwYXRjaDxUID0gYW55Pihyb3V0ZTogc3RyaW5nLCBib2R5PywgZXh0cmFzPzogSUV4dHJhcyk6IE9ic2VydmFibGU8VD4ge1xuICAgIHRoaXMubG9nUm91dGVzKCdwb3N0Jywgcm91dGUsIGJvZHkpO1xuICAgIGNvbnNvbGUubG9nKGJvZHkpO1xuICAgIGxldCBoZWFkZXJzID0gZXh0cmFzPy51c2VFbmRvcnNlbWVudFxuICAgICAgPyBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKS5zZXQoJ3VzZUVuZG9yc2VtZW50JywgJ3RydWUnKVxuICAgICAgOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucGF0Y2goZW5jb2RlVVJJKHJvdXRlKSwgYm9keSwge1xuICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgLi4uZXh0cmFzPy5vcHRpb25zLFxuICAgICAgICBoZWFkZXJzOiB0aGlzLmNvbmNhdGVuYXRlSGVhZGVycyhoZWFkZXJzLCBleHRyYXM/Lm9wdGlvbnM/LmhlYWRlcnMpLFxuICAgICAgfSlcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVSZXF1ZXN0RXJyb3IpKSBhcyBPYnNlcnZhYmxlPGFueT47XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG4gIC8vI3JlZ2lvbiBQT1NUXG4gIHBvc3Q8VCA9IGFueT4ocm91dGU6IHN0cmluZywgYm9keT8sIGV4dHJhcz86IElFeHRyYXMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICB0aGlzLmxvZ1JvdXRlcygncG9zdCcsIHJvdXRlLCBib2R5KTtcbiAgICBjb25zb2xlLmxvZyhib2R5KTtcbiAgICBsZXQgaGVhZGVycyA9IGV4dHJhcz8udXNlRW5kb3JzZW1lbnRcbiAgICAgID8gbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycykuc2V0KCd1c2VFbmRvcnNlbWVudCcsICd0cnVlJylcbiAgICAgIDogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucG9zdChlbmNvZGVVUkkocm91dGUpLCBib2R5LCB7XG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuICAgICAgICAuLi5leHRyYXM/Lm9wdGlvbnMsXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuY29uY2F0ZW5hdGVIZWFkZXJzKGhlYWRlcnMsIGV4dHJhcz8ub3B0aW9ucz8uaGVhZGVycyksXG4gICAgICB9KVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZVJlcXVlc3RFcnJvcikpIGFzIE9ic2VydmFibGU8YW55PjtcbiAgfVxuICBwb3N0RmlsZTxUID0gYW55Pihyb3V0ZTogc3RyaW5nLCBib2R5OiBGb3JtRGF0YSwgZXh0cmFzPzogSUV4dHJhcykge1xuICAgIHJldHVybiB0aGlzLnBvc3Q8VD4ocm91dGUsIGJvZHksIHtcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgIC4uLmV4dHJhcz8ub3B0aW9ucyxcbiAgICAgICAgaGVhZGVyczogdGhpcy5jb25jYXRlbmF0ZUhlYWRlcnMoXG4gICAgICAgICAgbmV3IEh0dHBIZWFkZXJzKHRoaXMuZmlsZUhlYWRlcnMpLFxuICAgICAgICAgIGV4dHJhcz8ub3B0aW9ucz8uaGVhZGVyc1xuICAgICAgICApLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBwb3N0RmlsZVdpdGhFbmRvcnNlbWVudDxUID0gYW55Pihyb3V0ZTogc3RyaW5nLCBib2R5OiBGb3JtRGF0YSkge1xuICAgIHJldHVybiB0aGlzLnBvc3Q8VD4ocm91dGUsIGJvZHksIHtcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuZmlsZUhlYWRlcnMpLnNldChcbiAgICAgICAgICAndXNlRW5kb3JzZW1lbnQnLFxuICAgICAgICAgICd0cnVlJ1xuICAgICAgICApLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgcG9zdFN0cmluZyhyb3V0ZTogc3RyaW5nLCBib2R5PywgZXh0cmFzPzogSUV4dHJhcykge1xuICAgIC8vIGNvbnNvbGUubG9nKCdyZXF1ZXN0Q291bnQnLCArK0VUU2Vudmlyb25tZW50LnJlcXVlc3RDb3VudCk7XG4gICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgJ0NvbnRlbnQtVHlwZSc6ICd0ZXh0L3BsYWluJyxcbiAgICB9KTtcbiAgICBoZWFkZXJzID0gZXh0cmFzPy51c2VFbmRvcnNlbWVudFxuICAgICAgPyBoZWFkZXJzLnNldCgndXNlRW5kb3JzZW1lbnQnLCAndHJ1ZScpXG4gICAgICA6IGhlYWRlcnM7XG4gICAgcmV0dXJuIHRoaXMucG9zdDxzdHJpbmc+KHJvdXRlLCBib2R5LCB7XG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIC4uLmV4dHJhcz8ub3B0aW9ucyxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcsXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuY29uY2F0ZW5hdGVIZWFkZXJzKGhlYWRlcnMsIGV4dHJhcz8ub3B0aW9ucz8uaGVhZGVycyksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIHBvc3RTdHJpbmdXaXRoTG9jYWxDYWNoZShyb3V0ZTogc3RyaW5nLCBib2R5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8c3RyaW5nPigocmVzKSA9PiB7XG4gICAgICBjb25zdCBiZHkgPSBib2R5Py50cmltKCk7XG4gICAgICAvLyBkZWJ1Z2dlclxuICAgICAgaWYgKHRoaXMubENhY2hlUy5oYXMocm91dGUgKyAnXycgKyBiZHkpKSB7XG4gICAgICAgIHJlcy5uZXh0KHRoaXMubENhY2hlUy5nZXRJdGVtPHN0cmluZz4ocm91dGUgKyAnXycgKyBiZHkpKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5wb3N0U3RyaW5nKHJvdXRlLCBiZHkpXG4gICAgICAgIC50b1Byb21pc2UoKVxuICAgICAgICAudGhlbigocikgPT4ge1xuICAgICAgICAgIHJlcy5uZXh0KHIpO1xuICAgICAgICAgIHRoaXMubENhY2hlUy5zZXRJdGVtKHJvdXRlICsgJ18nICsgYmR5LCByKTtcbiAgICAgICAgICByZXMuY29tcGxldGUoKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgcmVzLmVycm9yKGUpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gR0VUXG4gIC8qKlxuICAgKiBQZXJmb3JtIGEgR0VUIHJlcXVlc3RcbiAgICogQHBhcmFtIHJvdXRlIEFQSSBlbmRwb2ludFxuICAgKiBAcGFyYW0gcGFyYW1ldGVycyBPYmplY3QgdG8gY29udmVydCBpbnRvIHF1ZXJ5cGFyYW1zXG4gICAqIEBwYXJhbSBleHRyYXMgRXh0cmEgY29uZmlndXJhdGlvbnMgZm9yIHRoZSByZXF1ZXN0XG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBnZXQgPSA8VCA9IGFueT4oXG4gICAgcm91dGU6IHN0cmluZyxcbiAgICBwYXJhbWV0ZXJzPzogeyBbZmllbGQ6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfSxcbiAgICBleHRyYXM/OiBJRXh0cmFzXG4gICk6IE9ic2VydmFibGU8VD4gPT4ge1xuICAgIHRoaXMubG9nUm91dGVzKCdnZXQnLCByb3V0ZSwgcGFyYW1ldGVycyk7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPFQ+KChyZXMpID0+IHtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0gcm91dGUgKyB0aGlzLmdldFJlcXVlc3RQYXJzZShwYXJhbWV0ZXJzKTtcbiAgICAgIHRoaXMuaHR0cFxuICAgICAgICAuZ2V0KHF1ZXJ5LCB7XG4gICAgICAgICAgaGVhZGVyczogdGhpcy5jb25jYXRlbmF0ZUhlYWRlcnMoXG4gICAgICAgICAgICBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKSxcbiAgICAgICAgICAgIGV4dHJhcz8ub3B0aW9ucz8uaGVhZGVyc1xuICAgICAgICAgICksXG4gICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgICAgLi4uZXh0cmFzPy5vcHRpb25zLFxuICAgICAgICB9KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICByZXRyeSh0aGlzLnJldHJ5Q291bnQpLFxuICAgICAgICAgIHRhcCgoeCkgPT4gKHRoaXMuc2hvd1JvdXRlcyA/IGNvbnNvbGUubG9nKHgpIDogbnVsbCkpLFxuICAgICAgICAgIG1hcCgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlcykpXG4gICAgICAgICAgICAgIGlmIChyZXNbMF0/LmNvZGUpIHJldHVybiByZXMuc29ydCgpLnNvcnQyKCdjb2RlJywgdHJ1ZSk7XG4gICAgICAgICAgICAgIGVsc2UgaWYgKHJlc1swXT8uY29sdW1uTmFtZSlcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzLnNvcnQoKS5zb3J0MignY29sdW1uTmFtZScsIHRydWUpO1xuICAgICAgICAgICAgICBlbHNlIHJldHVybiByZXMuc29ydCgpO1xuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlUmVxdWVzdEVycm9yKVxuICAgICAgICApXG4gICAgICAgIC50b1Byb21pc2UoKVxuICAgICAgICAudGhlbigocikgPT4ge1xuICAgICAgICAgIHJlcy5uZXh0KHIpO1xuICAgICAgICAgIHRoaXMuY2FjaGVTLnNldEl0ZW0ocXVlcnksIHIpO1xuICAgICAgICAgIHJlcy5jb21wbGV0ZSgpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycikgPT4gcmVzLmVycm9yKGVycikpO1xuICAgIH0pO1xuICB9O1xuXG4gIGdldENvZGVzID0gPFQgPSBJQ29kZVRpdGxlICYgSUNvZGVEZXNjcmlwdGlvbj4ocm91dGU6IHN0cmluZykgPT5cbiAgICB0aGlzLmdldDxUW10+KHJvdXRlKS5waXBlKG1hcCgocmVzKSA9PiB0aGlzLnNvcnRDb2RlcyhyZXMpKSk7XG5cbiAgZ2V0VGV4dCA9IDxUID0gc3RyaW5nPihcbiAgICByb3V0ZTogc3RyaW5nLFxuICAgIHBhcmFtZXRlcnM/OiB7IFtmaWVsZDogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB9LFxuICAgIGV4dHJhcz86IElFeHRyYXNcbiAgKSA9PlxuICAgIHRoaXMuZ2V0PFQ+KHJvdXRlLCBwYXJhbWV0ZXJzLCB7XG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGhlYWRlcnM6IHRoaXMuY29uY2F0ZW5hdGVIZWFkZXJzKFxuICAgICAgICAgIG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICAgIGV4dHJhcz8ub3B0aW9ucz8uaGVhZGVyc1xuICAgICAgICApLFxuICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0JyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgZ2V0RmlsZSA9IDxUID0gc3RyaW5nPihcbiAgICByb3V0ZTogc3RyaW5nLFxuICAgIHBhcmFtZXRlcnM/OiB7IFtmaWVsZDogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB9LFxuICAgIGV4dHJhcz86IElFeHRyYXNcbiAgKSA9PlxuICAgIHRoaXMuZ2V0PFQ+KHJvdXRlLCBwYXJhbWV0ZXJzLCB7XG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGhlYWRlcnM6IHRoaXMuY29uY2F0ZW5hdGVIZWFkZXJzKFxuICAgICAgICAgIG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICAgIGV4dHJhcz8ub3B0aW9ucz8uaGVhZGVyc1xuICAgICAgICApLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdhcnJheUJ1ZmZlcicsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gIGdldFdpdGhCb2R5ID0gPFQgPSBhbnk+KHJvdXRlOiBzdHJpbmcsIGJvZHk/OiBhbnksIGV4dHJhcz86IElFeHRyYXMpID0+IHtcbiAgICB0aGlzLmxvZ1JvdXRlcygnZ2V0Jywgcm91dGUpO1xuICAgIC8vIGRlYnVnZ2VyXG4gICAgY29uc3QgcmVxID0gbmV3IEh0dHBSZXF1ZXN0KCdHRVQnLCByb3V0ZSwgYm9keSwge1xuICAgICAgLi4uZXh0cmFzPy5vcHRpb25zLFxuICAgICAgaGVhZGVyczogdGhpcy5jb25jYXRlbmF0ZUhlYWRlcnMoXG4gICAgICAgIG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICBleHRyYXM/Lm9wdGlvbnM/LmhlYWRlcnNcbiAgICAgICksXG4gICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucmVxdWVzdDxUPihyZXEpXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlUmVxdWVzdEVycm9yKSkgYXMgT2JzZXJ2YWJsZTxUPjtcbiAgfTtcblxuICBnZXRGcm9tbG9jYWwgPSA8VCA9IGFueT4oXG4gICAgcm91dGU6IHN0cmluZyxcbiAgICBwYXJhbWV0ZXJzPzogT2JqZWN0LFxuICAgIGV4dHJhcz86IElFeHRyYXNcbiAgKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPFQ+KChyZXMpID0+IHtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0gcm91dGUgKyB0aGlzLmdldFJlcXVlc3RQYXJzZShwYXJhbWV0ZXJzKTtcbiAgICAgIGlmICh0aGlzLmxDYWNoZVMuaGFzKHF1ZXJ5KSkge1xuICAgICAgICByZXMubmV4dCh0aGlzLmxDYWNoZVMuZ2V0SXRlbTxUPihxdWVyeSkpO1xuICAgICAgICByZXMuY29tcGxldGUoKTtcbiAgICAgIH0gZWxzZVxuICAgICAgICBsYXN0VmFsdWVGcm9tKHRoaXMuZ2V0KHF1ZXJ5LCBudWxsLCBleHRyYXMpKS50aGVuKChyKSA9PiB7XG4gICAgICAgICAgLy8gaWYgKCF0aGlzLmNTLmhhcyhyb3V0ZSkpXG4gICAgICAgICAgcmVzLm5leHQocik7XG4gICAgICAgICAgdGhpcy5sQ2FjaGVTLnNldEl0ZW0ocXVlcnksIHIpO1xuICAgICAgICAgIHJlcy5jb21wbGV0ZSgpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfTtcbiAgZ2V0V2l0aExvY2FsQ2FjaGUgPSA8VCA9IGFueT4oXG4gICAgcm91dGU6IHN0cmluZyxcbiAgICBwYXJhbWV0ZXJzPzogT2JqZWN0LFxuICAgIGV4dHJhcz86IElFeHRyYXNcbiAgKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPFQ+KChyZXMpID0+IHtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0gcm91dGUgKyB0aGlzLmdldFJlcXVlc3RQYXJzZShwYXJhbWV0ZXJzKTtcbiAgICAgIGlmICh0aGlzLmxDYWNoZVMuaGFzKHF1ZXJ5KSkge1xuICAgICAgICByZXMubmV4dCh0aGlzLmxDYWNoZVMuZ2V0SXRlbTxUPihxdWVyeSkpO1xuICAgICAgfVxuICAgICAgbGFzdFZhbHVlRnJvbSh0aGlzLmdldChxdWVyeSwgbnVsbCwgZXh0cmFzKSlcbiAgICAgICAgLnRoZW4oKHIpID0+IHtcbiAgICAgICAgICAvLyBpZiAoIXRoaXMuY1MuaGFzKHJvdXRlKSlcbiAgICAgICAgICByZXMubmV4dChyKTtcbiAgICAgICAgICB0aGlzLmxDYWNoZVMuc2V0SXRlbShxdWVyeSwgcik7XG4gICAgICAgICAgcmVzLmNvbXBsZXRlKCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgIHJlcy5lcnJvcihlKTtcbiAgICAgICAgICByZXMuY29tcGxldGUoKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH07XG4gIGdldFJlcXVlc3RQYXJzZShwYXJhbWV0ZXJzPzogT2JqZWN0KSB7XG4gICAgcmV0dXJuICFwYXJhbWV0ZXJzXG4gICAgICA/ICcnXG4gICAgICA6ICc/JyArXG4gICAgICAgICAgT2JqZWN0LmtleXMocGFyYW1ldGVycylcbiAgICAgICAgICAgIC5maWx0ZXIoKGtleSkgPT4gcGFyYW1ldGVyc1trZXldPy50b1N0cmluZygpPy50cmltKCkgIT0gbnVsbClcbiAgICAgICAgICAgIC5tYXAoKGtleSkgPT4gYCR7a2V5fT0ke3BhcmFtZXRlcnNba2V5XT8udG9TdHJpbmcoKT8udHJpbSgpfWApXG4gICAgICAgICAgICAuam9pbignJicpO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBQVVRcbiAgcHV0PFQgPSBhbnk+KHJvdXRlOiBzdHJpbmcsIGJvZHk/LCBleHRyYXM/OiBJRXh0cmFzKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgdGhpcy5sb2dSb3V0ZXMoJ3B1dCcsIHJvdXRlLCBib2R5KTtcbiAgICBsZXQgcXVlcnkgPSByb3V0ZSArICcnLFxuICAgICAgbmJvZHkgPSBib2R5O1xuICAgIGlmIChleHRyYXM/LnJlcXVlc3RUeXBlID09ICdxdWVyeVBhcmFtcycpIHtcbiAgICAgIHF1ZXJ5ICs9IHRoaXMuZ2V0UmVxdWVzdFBhcnNlKGJvZHkpO1xuICAgICAgbmJvZHkgPSBudWxsO1xuICAgIH1cbiAgICBsZXQgaGVhZGVycyA9IGV4dHJhcz8udXNlRW5kb3JzZW1lbnRcbiAgICAgID8gbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycykuc2V0KCd1c2VFbmRvcnNlbWVudCcsICd0cnVlJylcbiAgICAgIDogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnB1dChxdWVyeSwgbmJvZHksIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgIC4uLmV4dHJhcz8ub3B0aW9ucyxcbiAgICAgICAgaGVhZGVyczogdGhpcy5jb25jYXRlbmF0ZUhlYWRlcnMoXG4gICAgICAgICAgbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyksXG4gICAgICAgICAgZXh0cmFzPy5vcHRpb25zPy5oZWFkZXJzXG4gICAgICAgICksXG4gICAgICB9KVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZVJlcXVlc3RFcnJvcikpIGFzIE9ic2VydmFibGU8YW55PjtcbiAgfVxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gREVMRVRFXG4gIGRlbGV0ZSA9IDxUID0gYW55Pihyb3V0ZTogc3RyaW5nLCBleHRyYXM/OiBJRXh0cmFzKSA9PiB7XG4gICAgdGhpcy5sb2dSb3V0ZXMoJ2RlbGV0ZScsIHJvdXRlKTtcblxuICAgIGxldCBoZWFkZXJzID0gZXh0cmFzPy51c2VFbmRvcnNlbWVudFxuICAgICAgPyBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKS5zZXQoJ3VzZUVuZG9yc2VtZW50JywgJ3RydWUnKVxuICAgICAgOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZGVsZXRlPFQ+KHJvdXRlLCB7XG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuICAgICAgICAuLi5leHRyYXM/Lm9wdGlvbnMsXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuY29uY2F0ZW5hdGVIZWFkZXJzKFxuICAgICAgICAgIG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICAgIGV4dHJhcz8ub3B0aW9ucz8uaGVhZGVyc1xuICAgICAgICApLFxuICAgICAgfSlcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVSZXF1ZXN0RXJyb3IpKSBhcyBPYnNlcnZhYmxlPGFueT47XG4gIH07XG4gIGRlbGV0ZVdpdGhCb2R5ID0gPFQgPSBhbnk+KHJvdXRlOiBzdHJpbmcsIGJvZHk/OiBhbnksIGV4dHJhcz86IElFeHRyYXMpID0+IHtcbiAgICB0aGlzLmxvZ1JvdXRlcygnZGVsZXRlJywgcm91dGUpO1xuICAgIGNvbnN0IHJlcSA9IG5ldyBIdHRwUmVxdWVzdCgnREVMRVRFJywgcm91dGUsIGJvZHksIHtcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuICAgICAgLi4uZXh0cmFzPy5vcHRpb25zLFxuICAgICAgaGVhZGVyczogdGhpcy5jb25jYXRlbmF0ZUhlYWRlcnMoXG4gICAgICAgIG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICBleHRyYXM/Lm9wdGlvbnM/LmhlYWRlcnNcbiAgICAgICksXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnJlcXVlc3Q8VD4ocmVxKVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZVJlcXVlc3RFcnJvcikpIGFzIE9ic2VydmFibGU8YW55PjtcbiAgfTtcbiAgZGVsZXRlVGV4dCA9IChyb3V0ZTogc3RyaW5nLCBleHRyYXM/OiBJRXh0cmFzKSA9PlxuICAgIHRoaXMuZGVsZXRlPHN0cmluZz4ocm91dGUsIHtcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcsXG4gICAgICAgIC4uLmV4dHJhcz8ub3B0aW9ucyxcbiAgICAgICAgaGVhZGVyczogdGhpcy5jb25jYXRlbmF0ZUhlYWRlcnMoXG4gICAgICAgICAgbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyksXG4gICAgICAgICAgZXh0cmFzPy5vcHRpb25zPy5oZWFkZXJzXG4gICAgICAgICksXG4gICAgICB9LFxuICAgIH0pO1xuICAvLyNlbmRyZWdpb25cblxuICBzb3J0Q29kZXMgPSA8VD4oZGF0YTogVFtdKSA9PiB7XG4gICAgcmV0dXJuIGRhdGE/LnNvcnQyKCdjb2RlJywgdHJ1ZSk/LnNvcnQyKCdjb2RlJykgYXMgYW55IGFzIFRbXTtcbiAgfTtcbn1cblxuaW50ZXJmYWNlIElFeHRyYXMge1xuICAvKipcbiAgICogU3BlY2lmeSB3aGV0aGVyIHRvIHVzZSB0aGUgZW5kb3JzZW1lbnQgaGVhZGVyXG4gICAqL1xuICB1c2VFbmRvcnNlbWVudD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTcGVjaWZ5IHRoZSByZXF1ZXN0IG9wdGlvbnMuIFRoZSBhZGRlZCBvcHRpb25zIHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlIGRlZmF1bHQgb3B0aW9uc1xuICAgKi9cbiAgb3B0aW9ucz86IHtcbiAgICBoZWFkZXJzPzogSHR0cEhlYWRlcnM7XG4gICAgW3g6IHN0cmluZ106IGFueTtcbiAgfTtcbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIHJlcXVlc3QgdHlwZS4gSWYgdGhlIHJlcXVlc3QgdHlwZSBpcyBxdWVyeVBhcmFtcywgdGhlIGJvZHkgd2lsbCBiZSBzZW50IGFzIHF1ZXJ5IHBhcmFtZXRlcnNcbiAgICovXG4gIHJlcXVlc3RUeXBlPzogJ3F1ZXJ5UGFyYW1zJztcbn1cbiJdfQ==
326
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2VydmljZXMvYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBR0wsV0FBVyxFQUNYLFdBQVcsR0FDWixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBTyxhQUFhLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBVzdELE1BR2EsVUFBVTtJQUVyQixJQUFZLE9BQU87UUFDakIsT0FBTztZQUNMLGNBQWMsRUFBRSxrQkFBa0I7U0FDbkMsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFjLFdBQVc7UUFDdkIsT0FBTztZQUNMLE9BQU8sRUFBRSxxQkFBcUI7U0FDL0IsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUNTLElBQWdCLEVBQ2hCLE1BQW9CLEVBQ3BCLE9BQTBCO1FBRjFCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUNwQixZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQWYzQixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBV2YsZUFBVSxHQUFHLENBQUMsQ0FBQztRQWdCYix1QkFBa0IsR0FBRyxDQUFDLEdBQXNCLEVBQUUsRUFBRTtZQUN4RCxJQUFJLE9BQU8sQ0FBQztZQUNaLElBQUksR0FBRyxFQUFFLEtBQUssWUFBWSxXQUFXO2dCQUNuQyxPQUFPLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLENB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S0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksS0FBSyxHQUFHLEtBQUssR0FBRyxFQUFFLEVBQ3BCLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDZixJQUFJLE1BQU0sRUFBRSxXQUFXLElBQUksYUFBYSxFQUFFO1lBQ3hDLEtBQUssSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLEtBQUssR0FBRyxJQUFJLENBQUM7U0FDZDtRQUNELElBQUksT0FBTyxHQUFHLE1BQU0sRUFBRSxjQUFjO1lBQ2xDLENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQztZQUM3RCxDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUNqQixZQUFZLEVBQUUsTUFBTTtZQUNwQixHQUFHLE1BQU0sRUFBRSxPQUFPO1lBQ2xCLE9BQU8sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQzlCLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFDN0IsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQ3pCO1NBQ0YsQ0FBQzthQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQW9CLENBQUM7SUFDbEUsQ0FBQzs4R0ExVVUsVUFBVTtrSEFBVixVQUFVLGNBRlQsTUFBTTs7U0FFUCxVQUFVOzJGQUFWLFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSHR0cENsaWVudCxcbiAgSHR0cEVycm9yUmVzcG9uc2UsXG4gIEh0dHBIZWFkZXJzLFxuICBIdHRwUmVxdWVzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgaWlmLCBsYXN0VmFsdWVGcm9tLCBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHJldHJ5LCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJQ29kZURlc2NyaXB0aW9uLCBJQ29kZVRpdGxlIH0gZnJvbSAnLi4vU2hhcmVkL21vZGVscy9pbmRleC5tb2RlbCc7XG5pbXBvcnQgeyBFVFNlbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBDYWNoZVNlcnZpY2UgfSBmcm9tICcuL2NhY2hlL2NhY2hlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYWxDYWNoZVNlcnZpY2UgfSBmcm9tICcuL2NhY2hlL2xvY2FsLWNhY2hlLnNlcnZpY2UnO1xuZXhwb3J0IGludGVyZmFjZSBJUmVzcG9uc2Uge1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHJlc3VsdDogYW55O1xuICBzdGF0dXM6ICdzdWNjZXNzJyB8ICdlcnJvcicgfCAnZmFpbHVyZSc7XG4gIHN0YXR1c0NvZGU6ICdTTTAwMCcgfCAnU00wMDEnIHwgJ1NNMDAyJyB8ICdTTTAwMyc7XG59XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXBpU2VydmljZSB7XG4gIHByaXZhdGUgc2hvd1JvdXRlcyA9IDA7XG4gIHByaXZhdGUgZ2V0IGhlYWRlcnMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgfTtcbiAgfVxuICBwcm90ZWN0ZWQgZ2V0IGZpbGVIZWFkZXJzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBlbmN0eXBlOiAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsXG4gICAgfTtcbiAgfVxuICBwcml2YXRlIHJldHJ5Q291bnQgPSAwO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgaHR0cDogSHR0cENsaWVudCxcbiAgICBwdWJsaWMgY2FjaGVTOiBDYWNoZVNlcnZpY2UsXG4gICAgcHVibGljIGxDYWNoZVM6IExvY2FsQ2FjaGVTZXJ2aWNlXG4gICkge31cblxuICBwcml2YXRlIGxvZ1JvdXRlcyhcbiAgICBtZXRob2Q6ICdnZXQnIHwgJ3Bvc3QnIHwgJ3B1dCcgfCAnZGVsZXRlJyxcbiAgICByb3V0ZSxcbiAgICAuLi5leHRyYXNcbiAgKSB7XG4gICAgaWYgKHRoaXMuc2hvd1JvdXRlcykge1xuICAgICAgY29uc29sZS5sb2cobWV0aG9kLCByb3V0ZSwgLi4uZXh0cmFzKTtcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIGhhbmRsZVJlcXVlc3RFcnJvciA9IChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XG4gICAgbGV0IG1lc3NhZ2U7XG4gICAgaWYgKGVycj8uZXJyb3IgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcilcbiAgICAgIG1lc3NhZ2UgPSBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIG5ldyBVaW50OEFycmF5KGVycj8uZXJyb3IpKTtcbiAgICByZXR1cm4gdGhyb3dFcnJvcihtZXNzYWdlIHx8IGVycj8uZXJyb3I/Lm1lc3NhZ2UpO1xuICB9O1xuICBwcm90ZWN0ZWQgY29uY2F0ZW5hdGVIZWFkZXJzID0gKFxuICAgIGhlYWRlcnMxOiBIdHRwSGVhZGVycyxcbiAgICBoZWFkZXJzMjogSHR0cEhlYWRlcnNcbiAgKTogSHR0cEhlYWRlcnMgPT4ge1xuICAgIGlmICghaGVhZGVyczEpIHJldHVybiBoZWFkZXJzMjtcbiAgICBlbHNlIGlmICghaGVhZGVyczIpIHJldHVybiBoZWFkZXJzMTtcblxuICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGhlYWRlcnMxLmtleXMoKSlcbiAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldChpdGVtLCBoZWFkZXJzMS5nZXQoaXRlbSkpO1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBoZWFkZXJzMi5rZXlzKCkpIHtcbiAgICAgIGlmIChoZWFkZXJzLmhhcyhpdGVtKSkgaGVhZGVycy5kZWxldGUoaXRlbSk7XG4gICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoaXRlbSwgaGVhZGVyczIuZ2V0KGl0ZW0pKTtcbiAgICB9XG4gICAgcmV0dXJuIGhlYWRlcnM7XG4gIH07XG5cbiAgLy8jcmVnaW9uIFBBVENIXG4gIHBhdGNoPFQgPSBhbnk+KHJvdXRlOiBzdHJpbmcsIGJvZHk/LCBleHRyYXM/OiBJRXh0cmFzKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgdGhpcy5sb2dSb3V0ZXMoJ3Bvc3QnLCByb3V0ZSwgYm9keSk7XG4gICAgY29uc29sZS5sb2coYm9keSk7XG4gICAgbGV0IGhlYWRlcnMgPSBleHRyYXM/LnVzZUVuZG9yc2VtZW50XG4gICAgICA/IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpLnNldCgndXNlRW5kb3JzZW1lbnQnLCAndHJ1ZScpXG4gICAgICA6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wYXRjaChlbmNvZGVVUkkocm91dGUpLCBib2R5LCB7XG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuICAgICAgICAuLi5leHRyYXM/Lm9wdGlvbnMsXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuY29uY2F0ZW5hdGVIZWFkZXJzKGhlYWRlcnMsIGV4dHJhcz8ub3B0aW9ucz8uaGVhZGVycyksXG4gICAgICB9KVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZVJlcXVlc3RFcnJvcikpIGFzIE9ic2VydmFibGU8YW55PjtcbiAgfVxuICAvLyNlbmRyZWdpb25cbiAgLy8jcmVnaW9uIFBPU1RcbiAgcG9zdDxUID0gYW55Pihyb3V0ZTogc3RyaW5nLCBib2R5PywgZXh0cmFzPzogSUV4dHJhcyk6IE9ic2VydmFibGU8VD4ge1xuICAgIHRoaXMubG9nUm91dGVzKCdwb3N0Jywgcm91dGUsIGJvZHkpO1xuICAgIGNvbnNvbGUubG9nKGJvZHkpO1xuICAgIGxldCBoZWFkZXJzID0gZXh0cmFzPy51c2VFbmRvcnNlbWVudFxuICAgICAgPyBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKS5zZXQoJ3VzZUVuZG9yc2VtZW50JywgJ3RydWUnKVxuICAgICAgOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0KGVuY29kZVVSSShyb3V0ZSksIGJvZHksIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgIC4uLmV4dHJhcz8ub3B0aW9ucyxcbiAgICAgICAgaGVhZGVyczogdGhpcy5jb25jYXRlbmF0ZUhlYWRlcnMoaGVhZGVycywgZXh0cmFzPy5vcHRpb25zPy5oZWFkZXJzKSxcbiAgICAgIH0pXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlUmVxdWVzdEVycm9yKSkgYXMgT2JzZXJ2YWJsZTxhbnk+O1xuICB9XG4gIHBvc3RGaWxlPFQgPSBhbnk+KHJvdXRlOiBzdHJpbmcsIGJvZHk6IEZvcm1EYXRhLCBleHRyYXM/OiBhbnkpIHtcbiAgICAvLyByZXR1cm4gdGhpcy5wb3N0PFQ+KHJvdXRlLCBib2R5LCB7XG4gICAgLy8gICBvcHRpb25zOiB7XG4gICAgLy8gICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuICAgIC8vICAgICAuLi5leHRyYXM/Lm9wdGlvbnMsXG4gICAgLy8gICAgIGhlYWRlcnM6IHRoaXMuY29uY2F0ZW5hdGVIZWFkZXJzKFxuICAgIC8vICAgICAgIG5ldyBIdHRwSGVhZGVycyh7XG4gICAgLy8gICAgICAgICBlbmN0eXBlOiAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScsXG4gICAgLy8gICAgICAgfSksXG4gICAgLy8gICAgICAgZXh0cmFzPy5vcHRpb25zPy5oZWFkZXJzXG4gICAgLy8gICAgICksXG4gICAgLy8gICB9LFxuICAgIC8vIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3QoZW5jb2RlVVJJKHJvdXRlKSwgYm9keSwge1xuICAgICAgICAvLyByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgLi4uZXh0cmFzPy5vcHRpb25zLFxuICAgICAgICAvLyBoZWFkZXJzOiB0aGlzLmNvbmNhdGVuYXRlSGVhZGVycyhcbiAgICAgICAgLy8gICBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAvLyAgICAgZW5jdHlwZTogJ211bHRpcGFydC9mb3JtLWRhdGEnLFxuICAgICAgICAvLyAgIH0pLFxuICAgICAgICAvLyAgIGV4dHJhcz8ub3B0aW9ucz8uaGVhZGVyc1xuICAgICAgICAvLyApLFxuICAgICAgfSlcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVSZXF1ZXN0RXJyb3IpKSBhcyBPYnNlcnZhYmxlPGFueT47XG4gIH1cbiAgcG9zdEZpbGVXaXRoRW5kb3JzZW1lbnQ8VCA9IGFueT4ocm91dGU6IHN0cmluZywgYm9keTogRm9ybURhdGEpIHtcbiAgICByZXR1cm4gdGhpcy5wb3N0PFQ+KHJvdXRlLCBib2R5LCB7XG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICAgICAndXNlRW5kb3JzZW1lbnQnLFxuICAgICAgICAgICd0cnVlJ1xuICAgICAgICApLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBwb3N0U3RyaW5nKHJvdXRlOiBzdHJpbmcsIGJvZHk/LCBleHRyYXM/OiBJRXh0cmFzKSB7XG4gICAgLy8gY29uc29sZS5sb2coJ3JlcXVlc3RDb3VudCcsICsrRVRTZW52aXJvbm1lbnQucmVxdWVzdENvdW50KTtcbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAnQ29udGVudC1UeXBlJzogJ3RleHQvcGxhaW4nLFxuICAgIH0pO1xuICAgIGhlYWRlcnMgPSBleHRyYXM/LnVzZUVuZG9yc2VtZW50XG4gICAgICA/IGhlYWRlcnMuc2V0KCd1c2VFbmRvcnNlbWVudCcsICd0cnVlJylcbiAgICAgIDogaGVhZGVycztcbiAgICByZXR1cm4gdGhpcy5wb3N0PHN0cmluZz4ocm91dGUsIGJvZHksIHtcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgLi4uZXh0cmFzPy5vcHRpb25zLFxuICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0JyxcbiAgICAgICAgaGVhZGVyczogdGhpcy5jb25jYXRlbmF0ZUhlYWRlcnMoaGVhZGVycywgZXh0cmFzPy5vcHRpb25zPy5oZWFkZXJzKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgcG9zdFN0cmluZ1dpdGhMb2NhbENhY2hlKHJvdXRlOiBzdHJpbmcsIGJvZHk6IHN0cmluZykge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxzdHJpbmc+KChyZXMpID0+IHtcbiAgICAgIGNvbnN0IGJkeSA9IGJvZHk/LnRyaW0oKTtcbiAgICAgIC8vIGRlYnVnZ2VyXG4gICAgICBpZiAodGhpcy5sQ2FjaGVTLmhhcyhyb3V0ZSArICdfJyArIGJkeSkpIHtcbiAgICAgICAgcmVzLm5leHQodGhpcy5sQ2FjaGVTLmdldEl0ZW08c3RyaW5nPihyb3V0ZSArICdfJyArIGJkeSkpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnBvc3RTdHJpbmcocm91dGUsIGJkeSlcbiAgICAgICAgLnRvUHJvbWlzZSgpXG4gICAgICAgIC50aGVuKChyKSA9PiB7XG4gICAgICAgICAgcmVzLm5leHQocik7XG4gICAgICAgICAgdGhpcy5sQ2FjaGVTLnNldEl0ZW0ocm91dGUgKyAnXycgKyBiZHksIHIpO1xuICAgICAgICAgIHJlcy5jb21wbGV0ZSgpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICByZXMuZXJyb3IoZSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBHRVRcbiAgLyoqXG4gICAqIFBlcmZvcm0gYSBHRVQgcmVxdWVzdFxuICAgKiBAcGFyYW0gcm91dGUgQVBJIGVuZHBvaW50XG4gICAqIEBwYXJhbSBwYXJhbWV0ZXJzIE9iamVjdCB0byBjb252ZXJ0IGludG8gcXVlcnlwYXJhbXNcbiAgICogQHBhcmFtIGV4dHJhcyBFeHRyYSBjb25maWd1cmF0aW9ucyBmb3IgdGhlIHJlcXVlc3RcbiAgICogQHJldHVybnNcbiAgICovXG4gIGdldCA9IDxUID0gYW55PihcbiAgICByb3V0ZTogc3RyaW5nLFxuICAgIHBhcmFtZXRlcnM/OiB7IFtmaWVsZDogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB9LFxuICAgIGV4dHJhcz86IElFeHRyYXNcbiAgKTogT2JzZXJ2YWJsZTxUPiA9PiB7XG4gICAgdGhpcy5sb2dSb3V0ZXMoJ2dldCcsIHJvdXRlLCBwYXJhbWV0ZXJzKTtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8VD4oKHJlcykgPT4ge1xuICAgICAgY29uc3QgcXVlcnkgPSByb3V0ZSArIHRoaXMuZ2V0UmVxdWVzdFBhcnNlKHBhcmFtZXRlcnMpO1xuICAgICAgdGhpcy5odHRwXG4gICAgICAgIC5nZXQocXVlcnksIHtcbiAgICAgICAgICBoZWFkZXJzOiB0aGlzLmNvbmNhdGVuYXRlSGVhZGVycyhcbiAgICAgICAgICAgIG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpLFxuICAgICAgICAgICAgZXh0cmFzPy5vcHRpb25zPy5oZWFkZXJzXG4gICAgICAgICAgKSxcbiAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgICAuLi5leHRyYXM/Lm9wdGlvbnMsXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHJldHJ5KHRoaXMucmV0cnlDb3VudCksXG4gICAgICAgICAgdGFwKCh4KSA9PiAodGhpcy5zaG93Um91dGVzID8gY29uc29sZS5sb2coeCkgOiBudWxsKSksXG4gICAgICAgICAgbWFwKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzKSlcbiAgICAgICAgICAgICAgaWYgKHJlc1swXT8uY29kZSkgcmV0dXJuIHJlcy5zb3J0KCkuc29ydDIoJ2NvZGUnLCB0cnVlKTtcbiAgICAgICAgICAgICAgZWxzZSBpZiAocmVzWzBdPy5jb2x1bW5OYW1lKVxuICAgICAgICAgICAgICAgIHJldHVybiByZXMuc29ydCgpLnNvcnQyKCdjb2x1bW5OYW1lJywgdHJ1ZSk7XG4gICAgICAgICAgICAgIGVsc2UgcmV0dXJuIHJlcy5zb3J0KCk7XG4gICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVSZXF1ZXN0RXJyb3IpXG4gICAgICAgIClcbiAgICAgICAgLnRvUHJvbWlzZSgpXG4gICAgICAgIC50aGVuKChyKSA9PiB7XG4gICAgICAgICAgcmVzLm5leHQocik7XG4gICAgICAgICAgdGhpcy5jYWNoZVMuc2V0SXRlbShxdWVyeSwgcik7XG4gICAgICAgICAgcmVzLmNvbXBsZXRlKCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiByZXMuZXJyb3IoZXJyKSk7XG4gICAgfSk7XG4gIH07XG5cbiAgZ2V0Q29kZXMgPSA8VCA9IElDb2RlVGl0bGUgJiBJQ29kZURlc2NyaXB0aW9uPihyb3V0ZTogc3RyaW5nKSA9PlxuICAgIHRoaXMuZ2V0PFRbXT4ocm91dGUpLnBpcGUobWFwKChyZXMpID0+IHRoaXMuc29ydENvZGVzKHJlcykpKTtcblxuICBnZXRUZXh0ID0gPFQgPSBzdHJpbmc+KFxuICAgIHJvdXRlOiBzdHJpbmcsXG4gICAgcGFyYW1ldGVycz86IHsgW2ZpZWxkOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIH0sXG4gICAgZXh0cmFzPzogSUV4dHJhc1xuICApID0+XG4gICAgdGhpcy5nZXQ8VD4ocm91dGUsIHBhcmFtZXRlcnMsIHtcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgaGVhZGVyczogdGhpcy5jb25jYXRlbmF0ZUhlYWRlcnMoXG4gICAgICAgICAgbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyksXG4gICAgICAgICAgZXh0cmFzPy5vcHRpb25zPy5oZWFkZXJzXG4gICAgICAgICksXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgICAgfSxcbiAgICB9KTtcblxuICBnZXRGaWxlID0gPFQgPSBzdHJpbmc+KFxuICAgIHJvdXRlOiBzdHJpbmcsXG4gICAgcGFyYW1ldGVycz86IHsgW2ZpZWxkOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIH0sXG4gICAgZXh0cmFzPzogSUV4dHJhc1xuICApID0+XG4gICAgdGhpcy5nZXQ8VD4ocm91dGUsIHBhcmFtZXRlcnMsIHtcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgaGVhZGVyczogdGhpcy5jb25jYXRlbmF0ZUhlYWRlcnMoXG4gICAgICAgICAgbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyksXG4gICAgICAgICAgZXh0cmFzPy5vcHRpb25zPy5oZWFkZXJzXG4gICAgICAgICksXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ2FycmF5QnVmZmVyJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgZ2V0V2l0aEJvZHkgPSA8VCA9IGFueT4ocm91dGU6IHN0cmluZywgYm9keT86IGFueSwgZXh0cmFzPzogSUV4dHJhcykgPT4ge1xuICAgIHRoaXMubG9nUm91dGVzKCdnZXQnLCByb3V0ZSk7XG4gICAgLy8gZGVidWdnZXJcbiAgICBjb25zdCByZXEgPSBuZXcgSHR0cFJlcXVlc3QoJ0dFVCcsIHJvdXRlLCBib2R5LCB7XG4gICAgICAuLi5leHRyYXM/Lm9wdGlvbnMsXG4gICAgICBoZWFkZXJzOiB0aGlzLmNvbmNhdGVuYXRlSGVhZGVycyhcbiAgICAgICAgbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyksXG4gICAgICAgIGV4dHJhcz8ub3B0aW9ucz8uaGVhZGVyc1xuICAgICAgKSxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5yZXF1ZXN0PFQ+KHJlcSlcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVSZXF1ZXN0RXJyb3IpKSBhcyBPYnNlcnZhYmxlPFQ+O1xuICB9O1xuXG4gIGdldEZyb21sb2NhbCA9IDxUID0gYW55PihcbiAgICByb3V0ZTogc3RyaW5nLFxuICAgIHBhcmFtZXRlcnM/OiBPYmplY3QsXG4gICAgZXh0cmFzPzogSUV4dHJhc1xuICApID0+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8VD4oKHJlcykgPT4ge1xuICAgICAgY29uc3QgcXVlcnkgPSByb3V0ZSArIHRoaXMuZ2V0UmVxdWVzdFBhcnNlKHBhcmFtZXRlcnMpO1xuICAgICAgaWYgKHRoaXMubENhY2hlUy5oYXMocXVlcnkpKSB7XG4gICAgICAgIHJlcy5uZXh0KHRoaXMubENhY2hlUy5nZXRJdGVtPFQ+KHF1ZXJ5KSk7XG4gICAgICAgIHJlcy5jb21wbGV0ZSgpO1xuICAgICAgfSBlbHNlXG4gICAgICAgIGxhc3RWYWx1ZUZyb20odGhpcy5nZXQocXVlcnksIG51bGwsIGV4dHJhcykpLnRoZW4oKHIpID0+IHtcbiAgICAgICAgICAvLyBpZiAoIXRoaXMuY1MuaGFzKHJvdXRlKSlcbiAgICAgICAgICByZXMubmV4dChyKTtcbiAgICAgICAgICB0aGlzLmxDYWNoZVMuc2V0SXRlbShxdWVyeSwgcik7XG4gICAgICAgICAgcmVzLmNvbXBsZXRlKCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xuICBnZXRXaXRoTG9jYWxDYWNoZSA9IDxUID0gYW55PihcbiAgICByb3V0ZTogc3RyaW5nLFxuICAgIHBhcmFtZXRlcnM/OiBPYmplY3QsXG4gICAgZXh0cmFzPzogSUV4dHJhc1xuICApID0+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8VD4oKHJlcykgPT4ge1xuICAgICAgY29uc3QgcXVlcnkgPSByb3V0ZSArIHRoaXMuZ2V0UmVxdWVzdFBhcnNlKHBhcmFtZXRlcnMpO1xuICAgICAgaWYgKHRoaXMubENhY2hlUy5oYXMocXVlcnkpKSB7XG4gICAgICAgIHJlcy5uZXh0KHRoaXMubENhY2hlUy5nZXRJdGVtPFQ+KHF1ZXJ5KSk7XG4gICAgICB9XG4gICAgICBsYXN0VmFsdWVGcm9tKHRoaXMuZ2V0KHF1ZXJ5LCBudWxsLCBleHRyYXMpKVxuICAgICAgICAudGhlbigocikgPT4ge1xuICAgICAgICAgIC8vIGlmICghdGhpcy5jUy5oYXMocm91dGUpKVxuICAgICAgICAgIHJlcy5uZXh0KHIpO1xuICAgICAgICAgIHRoaXMubENhY2hlUy5zZXRJdGVtKHF1ZXJ5LCByKTtcbiAgICAgICAgICByZXMuY29tcGxldGUoKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgcmVzLmVycm9yKGUpO1xuICAgICAgICAgIHJlcy5jb21wbGV0ZSgpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfTtcbiAgZ2V0UmVxdWVzdFBhcnNlKHBhcmFtZXRlcnM/OiBPYmplY3QpIHtcbiAgICByZXR1cm4gIXBhcmFtZXRlcnNcbiAgICAgID8gJydcbiAgICAgIDogJz8nICtcbiAgICAgICAgICBPYmplY3Qua2V5cyhwYXJhbWV0ZXJzKVxuICAgICAgICAgICAgLmZpbHRlcigoa2V5KSA9PiBwYXJhbWV0ZXJzW2tleV0/LnRvU3RyaW5nKCk/LnRyaW0oKSAhPSBudWxsKVxuICAgICAgICAgICAgLm1hcCgoa2V5KSA9PiBgJHtrZXl9PSR7cGFyYW1ldGVyc1trZXldPy50b1N0cmluZygpPy50cmltKCl9YClcbiAgICAgICAgICAgIC5qb2luKCcmJyk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIFBVVFxuICBwdXQ8VCA9IGFueT4ocm91dGU6IHN0cmluZywgYm9keT8sIGV4dHJhcz86IElFeHRyYXMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICB0aGlzLmxvZ1JvdXRlcygncHV0Jywgcm91dGUsIGJvZHkpO1xuICAgIGxldCBxdWVyeSA9IHJvdXRlICsgJycsXG4gICAgICBuYm9keSA9IGJvZHk7XG4gICAgaWYgKGV4dHJhcz8ucmVxdWVzdFR5cGUgPT0gJ3F1ZXJ5UGFyYW1zJykge1xuICAgICAgcXVlcnkgKz0gdGhpcy5nZXRSZXF1ZXN0UGFyc2UoYm9keSk7XG4gICAgICBuYm9keSA9IG51bGw7XG4gICAgfVxuICAgIGxldCBoZWFkZXJzID0gZXh0cmFzPy51c2VFbmRvcnNlbWVudFxuICAgICAgPyBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKS5zZXQoJ3VzZUVuZG9yc2VtZW50JywgJ3RydWUnKVxuICAgICAgOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucHV0KHF1ZXJ5LCBuYm9keSwge1xuICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcbiAgICAgICAgLi4uZXh0cmFzPy5vcHRpb25zLFxuICAgICAgICBoZWFkZXJzOiB0aGlzLmNvbmNhdGVuYXRlSGVhZGVycyhcbiAgICAgICAgICBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKSxcbiAgICAgICAgICBleHRyYXM/Lm9wdGlvbnM/LmhlYWRlcnNcbiAgICAgICAgKSxcbiAgICAgIH0pXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlUmVxdWVzdEVycm9yKSkgYXMgT2JzZXJ2YWJsZTxhbnk+O1xuICB9XG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiBERUxFVEVcbiAgZGVsZXRlID0gPFQgPSBhbnk+KHJvdXRlOiBzdHJpbmcsIGV4dHJhcz86IElFeHRyYXMpID0+IHtcbiAgICB0aGlzLmxvZ1JvdXRlcygnZGVsZXRlJywgcm91dGUpO1xuXG4gICAgbGV0IGhlYWRlcnMgPSBleHRyYXM/LnVzZUVuZG9yc2VtZW50XG4gICAgICA/IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpLnNldCgndXNlRW5kb3JzZW1lbnQnLCAndHJ1ZScpXG4gICAgICA6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcnMpO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5kZWxldGU8VD4ocm91dGUsIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAgIC4uLmV4dHJhcz8ub3B0aW9ucyxcbiAgICAgICAgaGVhZGVyczogdGhpcy5jb25jYXRlbmF0ZUhlYWRlcnMoXG4gICAgICAgICAgbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyksXG4gICAgICAgICAgZXh0cmFzPy5vcHRpb25zPy5oZWFkZXJzXG4gICAgICAgICksXG4gICAgICB9KVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZVJlcXVlc3RFcnJvcikpIGFzIE9ic2VydmFibGU8YW55PjtcbiAgfTtcbiAgZGVsZXRlV2l0aEJvZHkgPSA8VCA9IGFueT4ocm91dGU6IHN0cmluZywgYm9keT86IGFueSwgZXh0cmFzPzogSUV4dHJhcykgPT4ge1xuICAgIHRoaXMubG9nUm91dGVzKCdkZWxldGUnLCByb3V0ZSk7XG4gICAgY29uc3QgcmVxID0gbmV3IEh0dHBSZXF1ZXN0KCdERUxFVEUnLCByb3V0ZSwgYm9keSwge1xuICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXG4gICAgICAuLi5leHRyYXM/Lm9wdGlvbnMsXG4gICAgICBoZWFkZXJzOiB0aGlzLmNvbmNhdGVuYXRlSGVhZGVycyhcbiAgICAgICAgbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVycyksXG4gICAgICAgIGV4dHJhcz8ub3B0aW9ucz8uaGVhZGVyc1xuICAgICAgKSxcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucmVxdWVzdDxUPihyZXEpXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlUmVxdWVzdEVycm9yKSkgYXMgT2JzZXJ2YWJsZTxhbnk+O1xuICB9O1xuICBkZWxldGVUZXh0ID0gKHJvdXRlOiBzdHJpbmcsIGV4dHJhcz86IElFeHRyYXMpID0+XG4gICAgdGhpcy5kZWxldGU8c3RyaW5nPihyb3V0ZSwge1xuICAgICAgb3B0aW9uczoge1xuICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0JyxcbiAgICAgICAgLi4uZXh0cmFzPy5vcHRpb25zLFxuICAgICAgICBoZWFkZXJzOiB0aGlzLmNvbmNhdGVuYXRlSGVhZGVycyhcbiAgICAgICAgICBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXJzKSxcbiAgICAgICAgICBleHRyYXM/Lm9wdGlvbnM/LmhlYWRlcnNcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIC8vI2VuZHJlZ2lvblxuXG4gIHNvcnRDb2RlcyA9IDxUPihkYXRhOiBUW10pID0+IHtcbiAgICByZXR1cm4gZGF0YT8uc29ydDIoJ2NvZGUnLCB0cnVlKT8uc29ydDIoJ2NvZGUnKSBhcyBhbnkgYXMgVFtdO1xuICB9O1xufVxuXG5pbnRlcmZhY2UgSUV4dHJhcyB7XG4gIC8qKlxuICAgKiBTcGVjaWZ5IHdoZXRoZXIgdG8gdXNlIHRoZSBlbmRvcnNlbWVudCBoZWFkZXJcbiAgICovXG4gIHVzZUVuZG9yc2VtZW50PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIHJlcXVlc3Qgb3B0aW9ucy4gVGhlIGFkZGVkIG9wdGlvbnMgd2lsbCBiZSBhcHBlbmRlZCB0byB0aGUgZGVmYXVsdCBvcHRpb25zXG4gICAqL1xuICBvcHRpb25zPzoge1xuICAgIGhlYWRlcnM/OiBIdHRwSGVhZGVycztcbiAgICBbeDogc3RyaW5nXTogYW55O1xuICB9O1xuICAvKipcbiAgICogU3BlY2lmeSB0aGUgcmVxdWVzdCB0eXBlLiBJZiB0aGUgcmVxdWVzdCB0eXBlIGlzIHF1ZXJ5UGFyYW1zLCB0aGUgYm9keSB3aWxsIGJlIHNlbnQgYXMgcXVlcnkgcGFyYW1ldGVyc1xuICAgKi9cbiAgcmVxdWVzdFR5cGU/OiAncXVlcnlQYXJhbXMnO1xufVxuIl19
@@ -4002,19 +4002,35 @@ class ApiService {
4002
4002
  .pipe(catchError(this.handleRequestError));
4003
4003
  }
4004
4004
  postFile(route, body, extras) {
4005
- return this.post(route, body, {
4006
- options: {
4007
- responseType: 'json',
4008
- ...extras?.options,
4009
- headers: this.concatenateHeaders(new HttpHeaders(this.fileHeaders), extras?.options?.headers),
4010
- },
4011
- });
4005
+ // return this.post<T>(route, body, {
4006
+ // options: {
4007
+ // responseType: 'json',
4008
+ // ...extras?.options,
4009
+ // headers: this.concatenateHeaders(
4010
+ // new HttpHeaders({
4011
+ // enctype: 'multipart/form-data',
4012
+ // }),
4013
+ // extras?.options?.headers
4014
+ // ),
4015
+ // },
4016
+ // });
4017
+ return this.http
4018
+ .post(encodeURI(route), body, {
4019
+ // responseType: 'json',
4020
+ ...extras?.options,
4021
+ // headers: this.concatenateHeaders(
4022
+ // new HttpHeaders({
4023
+ // enctype: 'multipart/form-data',
4024
+ // }),
4025
+ // extras?.options?.headers
4026
+ // ),
4027
+ })
4028
+ .pipe(catchError(this.handleRequestError));
4012
4029
  }
4013
4030
  postFileWithEndorsement(route, body) {
4014
4031
  return this.post(route, body, {
4015
4032
  options: {
4016
- headers: new HttpHeaders(this.fileHeaders).set('useEndorsement', 'true'),
4017
- responseType: 'json',
4033
+ headers: new HttpHeaders().set('useEndorsement', 'true'),
4018
4034
  },
4019
4035
  });
4020
4036
  }