@piserve-tech/form-submission 1.3.299 → 1.3.301

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.
@@ -216,9 +216,10 @@ export class FormService {
216
216
  return this.http.get(url, { headers, params });
217
217
  }
218
218
  submitForm(moduleName, formData, reCAPTCHAToken) {
219
- const headers = new HttpHeaders({
220
- 'Auth-user': this.header.authUser,
221
- });
219
+ // const headers = new HttpHeaders({
220
+ // 'Auth-user': this.header.authUser,
221
+ // });
222
+ const headers = new HttpHeaders(this.getSafeHeaders());
222
223
  const url = `${this.apiUrl}/api/public/forms/${moduleName}/submissions`;
223
224
  if (reCAPTCHAToken) {
224
225
  formData.append('recaptchaToken', reCAPTCHAToken);
@@ -239,15 +240,17 @@ export class FormService {
239
240
  params = params.append('parentQuestions', q);
240
241
  });
241
242
  }
242
- const headers = new HttpHeaders({
243
- 'Accept-Language': this.header.acceptedLanguage,
244
- });
243
+ // const headers = new HttpHeaders({
244
+ // 'Accept-Language': this.header.acceptedLanguage,
245
+ // });
246
+ const headers = new HttpHeaders(this.getSafeHeaders());
245
247
  return this.http.get(`${this.apiUrl}/api/forms/${moduleName}/submissions/${submissionId}`, { headers, params });
246
248
  }
247
249
  updateForm(moduleName, submissionId, formData, reCAPTCHAToken) {
248
- const headers = new HttpHeaders({
249
- 'Auth-user': this.header.authUser,
250
- });
250
+ // const headers = new HttpHeaders({
251
+ // 'Auth-user': this.header.authUser,
252
+ // });
253
+ const headers = new HttpHeaders(this.getSafeHeaders());
251
254
  const url = `${this.apiUrl}/api/public/forms/${moduleName}/submissions/${submissionId}`;
252
255
  if (reCAPTCHAToken) {
253
256
  formData.append('recaptchaToken', reCAPTCHAToken);
@@ -257,10 +260,13 @@ export class FormService {
257
260
  });
258
261
  }
259
262
  previewFile(url) {
260
- const headers = new HttpHeaders({
261
- 'Content-Type': this.header.contentType,
262
- 'auth-user': this.header.authUser,
263
- });
263
+ // const headers = new HttpHeaders({
264
+ // 'Accept-Language': this.header.acceptedLanguage,
265
+ // 'Content-Type': this.header.contentType,
266
+ // 'auth-user': this.header.authUser,
267
+ // 'Authorization': `Bearer ${this.header.authorization}`,
268
+ // });
269
+ const headers = new HttpHeaders(this.getSafeHeaders());
264
270
  const options = {
265
271
  headers: headers,
266
272
  };
@@ -274,6 +280,7 @@ export class FormService {
274
280
  !subFormData?.duplicateSubmission?.sourceSubmissionIds) {
275
281
  return;
276
282
  }
283
+ const headers = new HttpHeaders(this.getSafeHeaders());
277
284
  // Extract data
278
285
  const moduleName = subFormData.moduleName;
279
286
  const submissionIds = subFormData.duplicateSubmission.sourceSubmissionIds;
@@ -284,7 +291,9 @@ export class FormService {
284
291
  // Final URL
285
292
  const url = `${this.apiUrl}/api/public/${moduleName}/subform-submissions?${queryParams}`;
286
293
  // Now make API call
287
- return this.http.get(url);
294
+ return this.http.get(url, {
295
+ headers
296
+ });
288
297
  }
289
298
  getSafeHeaders() {
290
299
  const safe = {};
@@ -308,4 +317,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
308
317
  providedIn: 'root',
309
318
  }]
310
319
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.DataService }]; } });
311
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9zZXJ2aWNlcy9mb3JtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBTzNFLE1BQU0sT0FBTyxXQUFXO0lBTXRCLFlBQW9CLElBQWdCLEVBQVUsV0FBd0I7UUFBbEQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBTDlELFdBQU0sR0FBVyxFQUFFLENBQUM7UUFDNUIsV0FBTSxHQUFRLEVBQUUsQ0FBQztRQUtmLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3hELElBQUksU0FBUyxFQUFFO2dCQUNiLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO2FBQ2xDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMzQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FB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LElBQUksQ0FBQztJQUNkLENBQUM7K0dBdFhVLFdBQVc7bUhBQVgsV0FBVyxjQUZWLE1BQU07OzRGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4vZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBhcGlVcmw6IHN0cmluZyA9ICcnO1xuICBoZWFkZXI6IGFueSA9IHt9O1xuICBwYXJlbnRRdWVzdGlvbnM6IGFueTtcbiAgc3ViZm9ybURhdGE6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlKSB7XG4gICAgdGhpcy5kYXRhU2VydmljZS5hcGlVcmwkLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5hcGlVcmwgPSBkYXRhO1xuICAgIH0pO1xuXG4gICAgdGhpcy5kYXRhU2VydmljZS5oZWFkZXIkLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5oZWFkZXIgPSBkYXRhO1xuICAgIH0pO1xuXG4gICAgdGhpcy5kYXRhU2VydmljZS5wYXJlbnRRdWVzdGlvbnMkLnN1YnNjcmliZSgocXVlc3Rpb25zKSA9PiB7XG4gICAgICBpZiAocXVlc3Rpb25zKSB7XG4gICAgICAgIHRoaXMucGFyZW50UXVlc3Rpb25zID0gcXVlc3Rpb25zO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5kYXRhU2VydmljZS5zdWJmb3JtJC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuc3ViZm9ybURhdGEgPSBkYXRhO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0UXVlc3Rpb25zKFxuICAgIG1vZHVsZU5hbWU6IHN0cmluZyxcbiAgICBwYWdlTnVtYmVyOiBudW1iZXIgPSAxLFxuICAgIHJvd1NldDogbnVtYmVyID0gMCxcbiAgICBwcm9ncmVzc2l2ZUxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlLFxuICAgIGNvdW50cnk6IHN0cmluZyA9ICcnXG4gICkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnModGhpcy5nZXRTYWZlSGVhZGVycygpKTtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgICAuc2V0KCdwYWdlTnVtYmVyJywgcGFnZU51bWJlci50b1N0cmluZygpKVxuICAgICAgLnNldCgncm93U2V0Jywgcm93U2V0LnRvU3RyaW5nKCkpXG4gICAgICAuc2V0KCdjb3VudHJ5JywgY291bnRyeSlcbiAgICAgIC5zZXQoJ3Byb2dyZXNzaXZlTG9hZGluZycsIHByb2dyZXNzaXZlTG9hZGluZyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYXBpVXJsfS9hcGkvcHVibGljL2Zvcm1zLyR7bW9kdWxlTmFtZX1gLCB7XG4gICAgICBoZWFkZXJzLFxuICAgICAgcGFyYW1zLFxuICAgIH0pO1xuICB9XG5cbiAgZmV0Y2hEYXRhRnJvbURhdGFiYXNlKGRhdGFiYXNlOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFwaVVybH0vYXBpL2xvYWQtZnJvbS1kYmAsIGRhdGFiYXNlLCB7XG4gICAgICBoZWFkZXJzLFxuICAgIH0pO1xuICB9XG5cbiAgZmV0Y2hEYXRhRnJvbUxvb2t1cCh0YWJsZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hcGlVcmx9L2FwaS9wdWJsaWMvbG9va3VwLyR7dGFibGVOYW1lfWApO1xuICB9XG5cbiAgZmV0Y2hEYXRhRnJvbUV4dGVybmFsQVBJKFxuICAgIGFwaUNvbmZpZzogYW55LFxuICAgIHNlbGVjdGVkVmFsdWVzOiBhbnlbXSA9IFtdXG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgLy8g4pyFIENoZWNrIGlmIHBhZ2luYXRpb24gZXhpc3RzXG4gICAgY29uc3QgaGFzUGFnaW5hdGlvbiA9XG4gICAgICBhcGlDb25maWcucGFyYW1zPy5zb21lKChwOiBhbnkpID0+IHAudmFsdWVTb3VyY2UgPT09ICdQQUdFX0lOREVYJykgJiZcbiAgICAgIGFwaUNvbmZpZy5wYXJhbXM/LnNvbWUoKHA6IGFueSkgPT4gcC52YWx1ZVNvdXJjZSA9PT0gJ1BBR0VfU0laRScpO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBIRUFERVJTIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgIC8vIGhlbHBlcjogcmVzb2x2ZSBhIHZhbHVlIChvciB2YWx1ZXMpIGJhc2VkIG9uIHZhbHVlU291cmNlXG5cbiAgICAvLyBBcHBseSB0byBoZWFkZXJzIChhc3N1bWluZyBgaGVhZGVyc2AgaXMgYW4gSHR0cEhlYWRlcnMgaW5zdGFuY2UpXG4gICAgaWYgKGFwaUNvbmZpZy5oZWFkZXJzKSB7XG4gICAgICBhcGlDb25maWcuaGVhZGVycy5mb3JFYWNoKChoZWFkZXI6IGFueSkgPT4ge1xuICAgICAgICBpZiAoIWhlYWRlci5rZXlOYW1lKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgcmF3VmFsdWUgPSByZXNvbHZlVmFsdWVGcm9tU291cmNlKFxuICAgICAgICAgIGhlYWRlci52YWx1ZVNvdXJjZSxcbiAgICAgICAgICBoZWFkZXIuaW5wdXRWYWx1ZSxcbiAgICAgICAgICBzZWxlY3RlZFZhbHVlc1xuICAgICAgICApO1xuXG4gICAgICAgIGlmIChoZWFkZXIudmFsdWVTb3VyY2UgPT09ICdTRUxFQ1RFRF9WQUxVRVMnKSB7XG4gICAgICAgICAgLy8gT25seSBhZGQgaGVhZGVyIGlmIHdlIGhhdmUgc2VsZWN0ZWQgdmFsdWVzXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmF3VmFsdWUpICYmIHJhd1ZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGlmIChoZWFkZXIuaW5wdXRWYWx1ZSA9PT0gJ1NJTkdMRV9WQUxVRScpIHtcbiAgICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KGhlYWRlci5rZXlOYW1lLCBTdHJpbmcocmF3VmFsdWVbMF0pKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaGVhZGVyLmlucHV0VmFsdWUgPT09ICdBUlJBWV9PRl9WQUxVRVMnKSB7XG4gICAgICAgICAgICAgIC8vIGpvaW4gYnkgY29tbWEgZm9yIGhlYWRlcnMgKGNvbW1vbiBwYXR0ZXJuKVxuICAgICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoaGVhZGVyLmtleU5hbWUsIHJhd1ZhbHVlLmpvaW4oJywnKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBmYWxsYmFjazogam9pblxuICAgICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoaGVhZGVyLmtleU5hbWUsIHJhd1ZhbHVlLmpvaW4oJywnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIG5vIHNlbGVjdGVkIHZhbHVlcyAtPiBza2lwIGhlYWRlclxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZvciBub24tc2VsZWN0ZWQgc291cmNlczogc2tpcCB3aGVuIHVucmVzb2x2ZWRcbiAgICAgICAgaWYgKHJhd1ZhbHVlID09PSBudWxsIHx8IHJhd1ZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybjtcblxuICAgICAgICAvLyBJZiByYXdWYWx1ZSBpcyBhcnJheSAtPiBqb2luIGJ5IGNvbW1hIChoZWFkZXJzIGV4cGVjdCBzaW5nbGUgc3RyaW5nKVxuICAgICAgICBjb25zdCBoZWFkZXJWYWx1ZSA9IEFycmF5LmlzQXJyYXkocmF3VmFsdWUpXG4gICAgICAgICAgPyByYXdWYWx1ZS5qb2luKCcsJylcbiAgICAgICAgICA6IFN0cmluZyhyYXdWYWx1ZSk7XG5cbiAgICAgICAgaWYgKGhlYWRlci5rZXlOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdhdXRob3JpemF0aW9uJykge1xuICAgICAgICAgIC8vIGFkZCBCZWFyZXIgb25seSB3aGVuIGhlYWRlclZhbHVlIGlzIHRydXRoeSAoYW5kIG5vdCBhbHJlYWR5IHByZWZpeGVkKVxuICAgICAgICAgIGNvbnN0IHRva2VuID0gaGVhZGVyVmFsdWUuc3RhcnRzV2l0aCgnQmVhcmVyICcpXG4gICAgICAgICAgICA/IGhlYWRlclZhbHVlXG4gICAgICAgICAgICA6IGBCZWFyZXIgJHtoZWFkZXJWYWx1ZX1gO1xuICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldChoZWFkZXIua2V5TmFtZSwgdG9rZW4pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldChoZWFkZXIua2V5TmFtZSwgaGVhZGVyVmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFBBUkFNUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgLy8gaGVscGVyOiByZXNvbHZlIGEgdmFsdWUgKG9yIHZhbHVlcykgYmFzZWQgb24gdmFsdWVTb3VyY2VcbiAgICBmdW5jdGlvbiByZXNvbHZlVmFsdWVGcm9tU291cmNlKFxuICAgICAgdmFsdWVTb3VyY2U6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgIGlucHV0VmFsdWU6IGFueSxcbiAgICAgIHNlbGVjdGVkVmFsdWVzOiBhbnlbXSA9IFtdXG4gICAgKSB7XG4gICAgICBpZiAoIXZhbHVlU291cmNlKSByZXR1cm4gbnVsbDtcblxuICAgICAgc3dpdGNoICh2YWx1ZVNvdXJjZSkge1xuICAgICAgICBjYXNlICdMT0NBTF9TVE9SQUdFJzpcbiAgICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oaW5wdXRWYWx1ZSk7IC8vIHN0cmluZyBvciBudWxsXG5cbiAgICAgICAgY2FzZSAnU0VTU0lPTl9TVE9SQUdFJzpcbiAgICAgICAgICByZXR1cm4gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShpbnB1dFZhbHVlKTsgLy8gc3RyaW5nIG9yIG51bGxcblxuICAgICAgICBjYXNlICdDVVNUT01fSU5QVVQnOlxuICAgICAgICBjYXNlICdRVUVTVElPTic6XG4gICAgICAgIGNhc2UgJ1BBR0VfSU5ERVgnIDpcbiAgICAgICAgY2FzZSAnUEFHRV9TSVpFJyA6XG4gICAgICAgIGNhc2UgJ1NFQVJDSF9TVFJJTkcnIDpcbiAgICAgICAgICAvLyBpbnB1dFZhbHVlIG1heSBiZSBhIHNpbmdsZSB2YWx1ZSBvciBhbiBhcnJheS9DU1YgZGVwZW5kaW5nIG9uIHVzYWdlXG4gICAgICAgICAgcmV0dXJuIGlucHV0VmFsdWU7XG5cbiAgICAgICAgY2FzZSAnU0VMRUNURURfVkFMVUVTJzpcbiAgICAgICAgICAvLyBGb3IgU0VMRUNURURfVkFMVUVTLCByZXR1cm4gdGhlIHNlbGVjdGVkVmFsdWVzIGFycmF5IChjYWxsZXIgZGVjaWRlcyBTSU5HTEUvQVJSQVkgYmVoYXZpb3IpXG4gICAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoc2VsZWN0ZWRWYWx1ZXMpID8gc2VsZWN0ZWRWYWx1ZXMgOiBbXTtcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGNvbnNvbGUud2FybihgVW5zdXBwb3J0ZWQgdmFsdWVTb3VyY2UgZm9yIHBhcmFtczogJHt2YWx1ZVNvdXJjZX1gKTtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBVc2FnZTogYnVpbGQgcGFyYW1zIChhc3N1bWluZyBgcGFyYW1zYCBpcyBhbiBIdHRwUGFyYW1zIGluc3RhbmNlKVxuICAgIGlmIChhcGlDb25maWcucGFyYW1zKSB7XG4gICAgICBhcGlDb25maWcucGFyYW1zLmZvckVhY2goKHBhcmFtOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKCFwYXJhbS5rZXlOYW1lKSByZXR1cm47XG5cbiAgICAgICAgLy8gUmVzb2x2ZSByYXcgdmFsdWUgYmFzZWQgb24gc291cmNlXG4gICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gcmVzb2x2ZVZhbHVlRnJvbVNvdXJjZShcbiAgICAgICAgICBwYXJhbS52YWx1ZVNvdXJjZSxcbiAgICAgICAgICBwYXJhbS5pbnB1dFZhbHVlLFxuICAgICAgICAgIHNlbGVjdGVkVmFsdWVzXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gSWYgcGFyYW0gZXhwZWN0cyBzZWxlY3RlZCB2YWx1ZXMsIGhhbmRsZSBTSU5HTEVfVkFMVUUgdnMgQVJSQVlfT0ZfVkFMVUVTXG4gICAgICAgIGlmIChwYXJhbS52YWx1ZVNvdXJjZSA9PT0gJ1NFTEVDVEVEX1ZBTFVFUycpIHtcbiAgICAgICAgICAvLyBPbmx5IGFkZCBpZiB0aGVyZSBhcmUgYWN0dWFsIHNlbGVjdGVkIHZhbHVlc1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJhd1ZhbHVlKSAmJiByYXdWYWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpZiAocGFyYW0uaW5wdXRWYWx1ZSA9PT0gJ1NJTkdMRV9WQUxVRScpIHtcbiAgICAgICAgICAgICAgLy8gc2V0IHRvIGZpcnN0IHNlbGVjdGVkIHZhbHVlXG4gICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQocGFyYW0ua2V5TmFtZSwgcmF3VmFsdWVbMF0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJhbS5pbnB1dFZhbHVlID09PSAnQVJSQVlfT0ZfVkFMVUVTJykge1xuICAgICAgICAgICAgICAvLyBhcHBlbmQgZWFjaCBzZWxlY3RlZCB2YWx1ZSBhcyByZXBlYXRlZCBwYXJhbVxuICAgICAgICAgICAgICByYXdWYWx1ZS5mb3JFYWNoKCh2YWw6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQocGFyYW0ua2V5TmFtZSwgdmFsKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBpZiBpbnB1dFZhbHVlIG5vdCBwcm92aWRlZCwgZGVmYXVsdCB0byBhcnJheSBiZWhhdmlvclxuICAgICAgICAgICAgICByYXdWYWx1ZS5mb3JFYWNoKCh2YWw6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQocGFyYW0ua2V5TmFtZSwgdmFsKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIGlmIG5vIHNlbGVjdGVkIHZhbHVlcywgc2tpcCBhZGRpbmcgdGhpcyBwYXJhbVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZvciBub24tc2VsZWN0ZWQgdmFsdWVTb3VyY2VzOiByYXdWYWx1ZSBjb3VsZCBiZSBudWxsL3VuZGVmaW5lZC9zdHJpbmcvYXJyYXlcbiAgICAgICAgaWYgKHJhd1ZhbHVlID09PSBudWxsIHx8IHJhd1ZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAvLyBza2lwIGFkZGluZyBwYXJhbSB3aGVuIHZhbHVlIG5vdCBmb3VuZFxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIGlucHV0VmFsdWUgaW5kaWNhdGVzIGFycmF5LW9mLXZhbHVlcyAoZS5nLiwgcGFyYW0uaW5wdXRWYWx1ZSA9PT0gJ0FSUkFZX09GX1ZBTFVFUycpLFxuICAgICAgICAvLyBhY2NlcHQgZWl0aGVyIGFuIGFycmF5IG9yIGEgY29tbWEtc2VwYXJhdGVkIHN0cmluZ1xuICAgICAgICBpZiAocGFyYW0uaW5wdXRWYWx1ZSA9PT0gJ0FSUkFZX09GX1ZBTFVFUycpIHtcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyYXdWYWx1ZSkpIHtcbiAgICAgICAgICAgIHJhd1ZhbHVlLmZvckVhY2goKHZhbDogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQocGFyYW0ua2V5TmFtZSwgdmFsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHJhd1ZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgLy8gc3VwcG9ydCBjb21tYSBzZXBhcmF0ZWQgc3RyaW5nXG4gICAgICAgICAgICByYXdWYWx1ZVxuICAgICAgICAgICAgICAuc3BsaXQoJywnKVxuICAgICAgICAgICAgICAubWFwKChzKSA9PiBzLnRyaW0oKSlcbiAgICAgICAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAgICAgICAuZm9yRWFjaCgodmFsOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKHBhcmFtLmtleU5hbWUsIHZhbCk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBmYWxsYmFjazogY29udmVydCB0byBzdHJpbmcgYW5kIGFwcGVuZFxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZChwYXJhbS5rZXlOYW1lLCBTdHJpbmcocmF3VmFsdWUpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gZGVmYXVsdDogc2V0IHNpbmdsZSB2YWx1ZVxuICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQocGFyYW0ua2V5TmFtZSwgU3RyaW5nKHJhd1ZhbHVlKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUEFUSCBWQVJJQUJMRVMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIGxldCB1cmwgPSBhcGlDb25maWcudXJsO1xuICAgIGlmIChhcGlDb25maWcucGF0aFZhcmlhYmxlcykge1xuICAgICAgYXBpQ29uZmlnLnBhdGhWYXJpYWJsZXMuZm9yRWFjaCgocGF0aFZhcjogYW55KSA9PiB7XG4gICAgICAgIGlmIChwYXRoVmFyLmtleU5hbWUpIHtcbiAgICAgICAgICBsZXQgdmFsdWVUb0JpbmQ6IGFueSA9IG51bGw7XG5cbiAgICAgICAgICBzd2l0Y2ggKHBhdGhWYXIudmFsdWVTb3VyY2UpIHtcbiAgICAgICAgICAgIGNhc2UgJ0xPQ0FMX1NUT1JBR0UnOlxuICAgICAgICAgICAgICB2YWx1ZVRvQmluZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHBhdGhWYXIuaW5wdXRWYWx1ZSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdTRVNTSU9OX1NUT1JBR0UnOlxuICAgICAgICAgICAgICB2YWx1ZVRvQmluZCA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0ocGF0aFZhci5pbnB1dFZhbHVlKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0NVU1RPTV9JTlBVVCc6XG4gICAgICAgICAgICBjYXNlICdRVUVTVElPTic6XG4gICAgICAgICAgICAgIHZhbHVlVG9CaW5kID0gcGF0aFZhci5pbnB1dFZhbHVlO1xuICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBVbnN1cHBvcnRlZCB2YWx1ZVNvdXJjZTogJHtwYXRoVmFyLnZhbHVlU291cmNlfWApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh2YWx1ZVRvQmluZCAhPT0gbnVsbCAmJiB2YWx1ZVRvQmluZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB1cmwgPSB1cmwucmVwbGFjZShgeyR7cGF0aFZhci5rZXlOYW1lfX1gLCB2YWx1ZVRvQmluZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZJTkFMIENBTEwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4odXJsLCB7IGhlYWRlcnMsIHBhcmFtcyB9KTtcbiAgfVxuXG4gIHN1Ym1pdEZvcm0oXG4gICAgbW9kdWxlTmFtZTogc3RyaW5nLFxuICAgIGZvcm1EYXRhOiBGb3JtRGF0YSxcbiAgICByZUNBUFRDSEFUb2tlbj86IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgJ0F1dGgtdXNlcic6IHRoaXMuaGVhZGVyLmF1dGhVc2VyLFxuICAgIH0pO1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYXBpVXJsfS9hcGkvcHVibGljL2Zvcm1zLyR7bW9kdWxlTmFtZX0vc3VibWlzc2lvbnNgO1xuICAgIGlmIChyZUNBUFRDSEFUb2tlbikge1xuICAgICAgZm9ybURhdGEuYXBwZW5kKCdyZWNhcHRjaGFUb2tlbicsIHJlQ0FQVENIQVRva2VuKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHVybCwgZm9ybURhdGEsIHtcbiAgICAgIGhlYWRlcnMsXG4gICAgfSk7XG4gIH1cblxuICBnZXRTdWJtaXR0ZWRGb3JtKFxuICAgIG1vZHVsZU5hbWU6IHN0cmluZyxcbiAgICBzdWJtaXNzaW9uSWQ6IHN0cmluZyxcbiAgICBwYWdlTnVtYmVyOiBudW1iZXIgPSAxLFxuICAgIHJvd1NldDogbnVtYmVyID0gMCxcbiAgICBuYXZpZ2F0ZVRvPzogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKClcbiAgICAgIC5zZXQoJ3BhZ2VOdW1iZXInLCBwYWdlTnVtYmVyLnRvU3RyaW5nKCkpXG4gICAgICAuc2V0KCdyb3dTZXQnLCByb3dTZXQudG9TdHJpbmcoKSk7XG4gICAgaWYgKG5hdmlnYXRlVG8pIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ25hdmlnYXRlSWQnLCBuYXZpZ2F0ZVRvKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wYXJlbnRRdWVzdGlvbnMpIHtcbiAgICAgIHRoaXMucGFyZW50UXVlc3Rpb25zLmZvckVhY2goKHE6IGFueSkgPT4ge1xuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdwYXJlbnRRdWVzdGlvbnMnLCBxKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiB0aGlzLmhlYWRlci5hY2NlcHRlZExhbmd1YWdlLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oXG4gICAgICBgJHt0aGlzLmFwaVVybH0vYXBpL2Zvcm1zLyR7bW9kdWxlTmFtZX0vc3VibWlzc2lvbnMvJHtzdWJtaXNzaW9uSWR9YCxcbiAgICAgIHsgaGVhZGVycywgcGFyYW1zIH1cbiAgICApO1xuICB9XG5cbiAgdXBkYXRlRm9ybShcbiAgICBtb2R1bGVOYW1lOiBzdHJpbmcsXG4gICAgc3VibWlzc2lvbklkOiBzdHJpbmcsXG4gICAgZm9ybURhdGE6IEZvcm1EYXRhLFxuICAgIHJlQ0FQVENIQVRva2VuPzogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAnQXV0aC11c2VyJzogdGhpcy5oZWFkZXIuYXV0aFVzZXIsXG4gICAgfSk7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5hcGlVcmx9L2FwaS9wdWJsaWMvZm9ybXMvJHttb2R1bGVOYW1lfS9zdWJtaXNzaW9ucy8ke3N1Ym1pc3Npb25JZH1gO1xuICAgIGlmIChyZUNBUFRDSEFUb2tlbikge1xuICAgICAgZm9ybURhdGEuYXBwZW5kKCdyZWNhcHRjaGFUb2tlbicsIHJlQ0FQVENIQVRva2VuKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55Pih1cmwsIGZvcm1EYXRhLCB7XG4gICAgICBoZWFkZXJzLFxuICAgIH0pO1xuICB9XG5cbiAgcHJldmlld0ZpbGUodXJsOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgJ0NvbnRlbnQtVHlwZSc6IHRoaXMuaGVhZGVyLmNvbnRlbnRUeXBlLFxuICAgICAgJ2F1dGgtdXNlcic6IHRoaXMuaGVhZGVyLmF1dGhVc2VyLFxuICAgIH0pO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgIH07XG4gICAgY29uc3QgZmlsZVVybCA9IHVybDtcbiAgICBjb25zdCBlbmNvZGVkRmlsZVVybCA9IGVuY29kZVVSSUNvbXBvbmVudChmaWxlVXJsKTtcbiAgICBjb25zdCBmdWxsVXJsID0gYD91cmw9JHtlbmNvZGVkRmlsZVVybH1gO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oXG4gICAgICB0aGlzLmFwaVVybCArIGAvYXBpL2Nkbi9wcmV2aWV3JHtmdWxsVXJsfWAsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuXG4gIGdldFN1YmZvcm1TdWJtaXNzaW9ucyhzdWJGb3JtRGF0YTogYW55KSB7XG4gICAgaWYgKFxuICAgICAgIXN1YkZvcm1EYXRhPy5tb2R1bGVOYW1lIHx8XG4gICAgICAhc3ViRm9ybURhdGE/LmR1cGxpY2F0ZVN1Ym1pc3Npb24/LnNvdXJjZVN1Ym1pc3Npb25JZHNcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBFeHRyYWN0IGRhdGFcbiAgICBjb25zdCBtb2R1bGVOYW1lID0gc3ViRm9ybURhdGEubW9kdWxlTmFtZTtcbiAgICBjb25zdCBzdWJtaXNzaW9uSWRzOiBzdHJpbmdbXSA9XG4gICAgICBzdWJGb3JtRGF0YS5kdXBsaWNhdGVTdWJtaXNzaW9uLnNvdXJjZVN1Ym1pc3Npb25JZHM7XG5cbiAgICAvLyBCdWlsZCBxdWVyeSBzdHJpbmdcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHN1Ym1pc3Npb25JZHNcbiAgICAgIC5tYXAoKGlkKSA9PiBgc3VibWlzc2lvbklkcz0ke2VuY29kZVVSSUNvbXBvbmVudChpZCl9YClcbiAgICAgIC5qb2luKCcmJyk7XG5cbiAgICAvLyBGaW5hbCBVUkxcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmFwaVVybH0vYXBpL3B1YmxpYy8ke21vZHVsZU5hbWV9L3N1YmZvcm0tc3VibWlzc2lvbnM/JHtxdWVyeVBhcmFtc31gO1xuXG4gICAgLy8gTm93IG1ha2UgQVBJIGNhbGxcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwpO1xuICB9XG5cbiAgZ2V0U2FmZUhlYWRlcnMoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgY29uc3Qgc2FmZTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgIGlmICh0aGlzLmhlYWRlciAmJiB0eXBlb2YgdGhpcy5oZWFkZXIgPT09ICdvYmplY3QnKSB7XG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmhlYWRlcikpIHtcbiAgICAgICAgY29uc3QgdmFsID0gdGhpcy5oZWFkZXJba2V5XTtcbiAgICAgICAgaWYgKHZhbCAhPT0gdW5kZWZpbmVkICYmIHZhbCAhPT0gbnVsbCkge1xuICAgICAgICAgIHNhZmVba2V5XSA9IFN0cmluZyh2YWwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnNvbGUubG9nKCdbRm9ybVNlcnZpY2VdIGdldFNhZmVIZWFkZXJzLCBpbnB1dCBoZWFkZXI6JywgdGhpcy5oZWFkZXIsICdvdXRwdXQgc2FmZTonLCBzYWZlKTtcbiAgICByZXR1cm4gc2FmZTtcbiAgfVxufVxuIl19
320
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9zZXJ2aWNlcy9mb3JtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBTzNFLE1BQU0sT0FBTyxXQUFXO0lBTXRCLFlBQW9CLElBQWdCLEVBQVUsV0FBd0I7UUFBbEQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBTDlELFdBQU0sR0FBVyxFQUFFLENBQUM7UUFDNUIsV0FBTSxHQUFRLEVBQUUsQ0FBQztRQUtmLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3hELElBQUksU0FBUyxFQUFFO2dCQUNiLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO2FBQ2xDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMzQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FB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LENBQUMsQ0FBQztpQkFDekI7YUFDRjtTQUNGO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2Q0FBNkMsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5RixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7K0dBallVLFdBQVc7bUhBQVgsV0FBVyxjQUZWLE1BQU07OzRGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4vZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBhcGlVcmw6IHN0cmluZyA9ICcnO1xuICBoZWFkZXI6IGFueSA9IHt9O1xuICBwYXJlbnRRdWVzdGlvbnM6IGFueTtcbiAgc3ViZm9ybURhdGE6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlKSB7XG4gICAgdGhpcy5kYXRhU2VydmljZS5hcGlVcmwkLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5hcGlVcmwgPSBkYXRhO1xuICAgIH0pO1xuXG4gICAgdGhpcy5kYXRhU2VydmljZS5oZWFkZXIkLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5oZWFkZXIgPSBkYXRhO1xuICAgIH0pO1xuXG4gICAgdGhpcy5kYXRhU2VydmljZS5wYXJlbnRRdWVzdGlvbnMkLnN1YnNjcmliZSgocXVlc3Rpb25zKSA9PiB7XG4gICAgICBpZiAocXVlc3Rpb25zKSB7XG4gICAgICAgIHRoaXMucGFyZW50UXVlc3Rpb25zID0gcXVlc3Rpb25zO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5kYXRhU2VydmljZS5zdWJmb3JtJC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuc3ViZm9ybURhdGEgPSBkYXRhO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0UXVlc3Rpb25zKFxuICAgIG1vZHVsZU5hbWU6IHN0cmluZyxcbiAgICBwYWdlTnVtYmVyOiBudW1iZXIgPSAxLFxuICAgIHJvd1NldDogbnVtYmVyID0gMCxcbiAgICBwcm9ncmVzc2l2ZUxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlLFxuICAgIGNvdW50cnk6IHN0cmluZyA9ICcnXG4gICkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnModGhpcy5nZXRTYWZlSGVhZGVycygpKTtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgICAuc2V0KCdwYWdlTnVtYmVyJywgcGFnZU51bWJlci50b1N0cmluZygpKVxuICAgICAgLnNldCgncm93U2V0Jywgcm93U2V0LnRvU3RyaW5nKCkpXG4gICAgICAuc2V0KCdjb3VudHJ5JywgY291bnRyeSlcbiAgICAgIC5zZXQoJ3Byb2dyZXNzaXZlTG9hZGluZycsIHByb2dyZXNzaXZlTG9hZGluZyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMuYXBpVXJsfS9hcGkvcHVibGljL2Zvcm1zLyR7bW9kdWxlTmFtZX1gLCB7XG4gICAgICBoZWFkZXJzLFxuICAgICAgcGFyYW1zLFxuICAgIH0pO1xuICB9XG5cbiAgZmV0Y2hEYXRhRnJvbURhdGFiYXNlKGRhdGFiYXNlOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KTtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLmFwaVVybH0vYXBpL2xvYWQtZnJvbS1kYmAsIGRhdGFiYXNlLCB7XG4gICAgICBoZWFkZXJzLFxuICAgIH0pO1xuICB9XG5cbiAgZmV0Y2hEYXRhRnJvbUxvb2t1cCh0YWJsZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5hcGlVcmx9L2FwaS9wdWJsaWMvbG9va3VwLyR7dGFibGVOYW1lfWApO1xuICB9XG5cbiAgZmV0Y2hEYXRhRnJvbUV4dGVybmFsQVBJKFxuICAgIGFwaUNvbmZpZzogYW55LFxuICAgIHNlbGVjdGVkVmFsdWVzOiBhbnlbXSA9IFtdXG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgLy8g4pyFIENoZWNrIGlmIHBhZ2luYXRpb24gZXhpc3RzXG4gICAgY29uc3QgaGFzUGFnaW5hdGlvbiA9XG4gICAgICBhcGlDb25maWcucGFyYW1zPy5zb21lKChwOiBhbnkpID0+IHAudmFsdWVTb3VyY2UgPT09ICdQQUdFX0lOREVYJykgJiZcbiAgICAgIGFwaUNvbmZpZy5wYXJhbXM/LnNvbWUoKHA6IGFueSkgPT4gcC52YWx1ZVNvdXJjZSA9PT0gJ1BBR0VfU0laRScpO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBIRUFERVJTIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgIC8vIGhlbHBlcjogcmVzb2x2ZSBhIHZhbHVlIChvciB2YWx1ZXMpIGJhc2VkIG9uIHZhbHVlU291cmNlXG5cbiAgICAvLyBBcHBseSB0byBoZWFkZXJzIChhc3N1bWluZyBgaGVhZGVyc2AgaXMgYW4gSHR0cEhlYWRlcnMgaW5zdGFuY2UpXG4gICAgaWYgKGFwaUNvbmZpZy5oZWFkZXJzKSB7XG4gICAgICBhcGlDb25maWcuaGVhZGVycy5mb3JFYWNoKChoZWFkZXI6IGFueSkgPT4ge1xuICAgICAgICBpZiAoIWhlYWRlci5rZXlOYW1lKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgcmF3VmFsdWUgPSByZXNvbHZlVmFsdWVGcm9tU291cmNlKFxuICAgICAgICAgIGhlYWRlci52YWx1ZVNvdXJjZSxcbiAgICAgICAgICBoZWFkZXIuaW5wdXRWYWx1ZSxcbiAgICAgICAgICBzZWxlY3RlZFZhbHVlc1xuICAgICAgICApO1xuXG4gICAgICAgIGlmIChoZWFkZXIudmFsdWVTb3VyY2UgPT09ICdTRUxFQ1RFRF9WQUxVRVMnKSB7XG4gICAgICAgICAgLy8gT25seSBhZGQgaGVhZGVyIGlmIHdlIGhhdmUgc2VsZWN0ZWQgdmFsdWVzXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmF3VmFsdWUpICYmIHJhd1ZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGlmIChoZWFkZXIuaW5wdXRWYWx1ZSA9PT0gJ1NJTkdMRV9WQUxVRScpIHtcbiAgICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KGhlYWRlci5rZXlOYW1lLCBTdHJpbmcocmF3VmFsdWVbMF0pKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaGVhZGVyLmlucHV0VmFsdWUgPT09ICdBUlJBWV9PRl9WQUxVRVMnKSB7XG4gICAgICAgICAgICAgIC8vIGpvaW4gYnkgY29tbWEgZm9yIGhlYWRlcnMgKGNvbW1vbiBwYXR0ZXJuKVxuICAgICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoaGVhZGVyLmtleU5hbWUsIHJhd1ZhbHVlLmpvaW4oJywnKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBmYWxsYmFjazogam9pblxuICAgICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoaGVhZGVyLmtleU5hbWUsIHJhd1ZhbHVlLmpvaW4oJywnKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIG5vIHNlbGVjdGVkIHZhbHVlcyAtPiBza2lwIGhlYWRlclxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZvciBub24tc2VsZWN0ZWQgc291cmNlczogc2tpcCB3aGVuIHVucmVzb2x2ZWRcbiAgICAgICAgaWYgKHJhd1ZhbHVlID09PSBudWxsIHx8IHJhd1ZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybjtcblxuICAgICAgICAvLyBJZiByYXdWYWx1ZSBpcyBhcnJheSAtPiBqb2luIGJ5IGNvbW1hIChoZWFkZXJzIGV4cGVjdCBzaW5nbGUgc3RyaW5nKVxuICAgICAgICBjb25zdCBoZWFkZXJWYWx1ZSA9IEFycmF5LmlzQXJyYXkocmF3VmFsdWUpXG4gICAgICAgICAgPyByYXdWYWx1ZS5qb2luKCcsJylcbiAgICAgICAgICA6IFN0cmluZyhyYXdWYWx1ZSk7XG5cbiAgICAgICAgaWYgKGhlYWRlci5rZXlOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdhdXRob3JpemF0aW9uJykge1xuICAgICAgICAgIC8vIGFkZCBCZWFyZXIgb25seSB3aGVuIGhlYWRlclZhbHVlIGlzIHRydXRoeSAoYW5kIG5vdCBhbHJlYWR5IHByZWZpeGVkKVxuICAgICAgICAgIGNvbnN0IHRva2VuID0gaGVhZGVyVmFsdWUuc3RhcnRzV2l0aCgnQmVhcmVyICcpXG4gICAgICAgICAgICA/IGhlYWRlclZhbHVlXG4gICAgICAgICAgICA6IGBCZWFyZXIgJHtoZWFkZXJWYWx1ZX1gO1xuICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldChoZWFkZXIua2V5TmFtZSwgdG9rZW4pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldChoZWFkZXIua2V5TmFtZSwgaGVhZGVyVmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFBBUkFNUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgLy8gaGVscGVyOiByZXNvbHZlIGEgdmFsdWUgKG9yIHZhbHVlcykgYmFzZWQgb24gdmFsdWVTb3VyY2VcbiAgICBmdW5jdGlvbiByZXNvbHZlVmFsdWVGcm9tU291cmNlKFxuICAgICAgdmFsdWVTb3VyY2U6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgIGlucHV0VmFsdWU6IGFueSxcbiAgICAgIHNlbGVjdGVkVmFsdWVzOiBhbnlbXSA9IFtdXG4gICAgKSB7XG4gICAgICBpZiAoIXZhbHVlU291cmNlKSByZXR1cm4gbnVsbDtcblxuICAgICAgc3dpdGNoICh2YWx1ZVNvdXJjZSkge1xuICAgICAgICBjYXNlICdMT0NBTF9TVE9SQUdFJzpcbiAgICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oaW5wdXRWYWx1ZSk7IC8vIHN0cmluZyBvciBudWxsXG5cbiAgICAgICAgY2FzZSAnU0VTU0lPTl9TVE9SQUdFJzpcbiAgICAgICAgICByZXR1cm4gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShpbnB1dFZhbHVlKTsgLy8gc3RyaW5nIG9yIG51bGxcblxuICAgICAgICBjYXNlICdDVVNUT01fSU5QVVQnOlxuICAgICAgICBjYXNlICdRVUVTVElPTic6XG4gICAgICAgIGNhc2UgJ1BBR0VfSU5ERVgnIDpcbiAgICAgICAgY2FzZSAnUEFHRV9TSVpFJyA6XG4gICAgICAgIGNhc2UgJ1NFQVJDSF9TVFJJTkcnIDpcbiAgICAgICAgICAvLyBpbnB1dFZhbHVlIG1heSBiZSBhIHNpbmdsZSB2YWx1ZSBvciBhbiBhcnJheS9DU1YgZGVwZW5kaW5nIG9uIHVzYWdlXG4gICAgICAgICAgcmV0dXJuIGlucHV0VmFsdWU7XG5cbiAgICAgICAgY2FzZSAnU0VMRUNURURfVkFMVUVTJzpcbiAgICAgICAgICAvLyBGb3IgU0VMRUNURURfVkFMVUVTLCByZXR1cm4gdGhlIHNlbGVjdGVkVmFsdWVzIGFycmF5IChjYWxsZXIgZGVjaWRlcyBTSU5HTEUvQVJSQVkgYmVoYXZpb3IpXG4gICAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoc2VsZWN0ZWRWYWx1ZXMpID8gc2VsZWN0ZWRWYWx1ZXMgOiBbXTtcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGNvbnNvbGUud2FybihgVW5zdXBwb3J0ZWQgdmFsdWVTb3VyY2UgZm9yIHBhcmFtczogJHt2YWx1ZVNvdXJjZX1gKTtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBVc2FnZTogYnVpbGQgcGFyYW1zIChhc3N1bWluZyBgcGFyYW1zYCBpcyBhbiBIdHRwUGFyYW1zIGluc3RhbmNlKVxuICAgIGlmIChhcGlDb25maWcucGFyYW1zKSB7XG4gICAgICBhcGlDb25maWcucGFyYW1zLmZvckVhY2goKHBhcmFtOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKCFwYXJhbS5rZXlOYW1lKSByZXR1cm47XG5cbiAgICAgICAgLy8gUmVzb2x2ZSByYXcgdmFsdWUgYmFzZWQgb24gc291cmNlXG4gICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gcmVzb2x2ZVZhbHVlRnJvbVNvdXJjZShcbiAgICAgICAgICBwYXJhbS52YWx1ZVNvdXJjZSxcbiAgICAgICAgICBwYXJhbS5pbnB1dFZhbHVlLFxuICAgICAgICAgIHNlbGVjdGVkVmFsdWVzXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gSWYgcGFyYW0gZXhwZWN0cyBzZWxlY3RlZCB2YWx1ZXMsIGhhbmRsZSBTSU5HTEVfVkFMVUUgdnMgQVJSQVlfT0ZfVkFMVUVTXG4gICAgICAgIGlmIChwYXJhbS52YWx1ZVNvdXJjZSA9PT0gJ1NFTEVDVEVEX1ZBTFVFUycpIHtcbiAgICAgICAgICAvLyBPbmx5IGFkZCBpZiB0aGVyZSBhcmUgYWN0dWFsIHNlbGVjdGVkIHZhbHVlc1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJhd1ZhbHVlKSAmJiByYXdWYWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpZiAocGFyYW0uaW5wdXRWYWx1ZSA9PT0gJ1NJTkdMRV9WQUxVRScpIHtcbiAgICAgICAgICAgICAgLy8gc2V0IHRvIGZpcnN0IHNlbGVjdGVkIHZhbHVlXG4gICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQocGFyYW0ua2V5TmFtZSwgcmF3VmFsdWVbMF0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJhbS5pbnB1dFZhbHVlID09PSAnQVJSQVlfT0ZfVkFMVUVTJykge1xuICAgICAgICAgICAgICAvLyBhcHBlbmQgZWFjaCBzZWxlY3RlZCB2YWx1ZSBhcyByZXBlYXRlZCBwYXJhbVxuICAgICAgICAgICAgICByYXdWYWx1ZS5mb3JFYWNoKCh2YWw6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQocGFyYW0ua2V5TmFtZSwgdmFsKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBpZiBpbnB1dFZhbHVlIG5vdCBwcm92aWRlZCwgZGVmYXVsdCB0byBhcnJheSBiZWhhdmlvclxuICAgICAgICAgICAgICByYXdWYWx1ZS5mb3JFYWNoKCh2YWw6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQocGFyYW0ua2V5TmFtZSwgdmFsKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIGlmIG5vIHNlbGVjdGVkIHZhbHVlcywgc2tpcCBhZGRpbmcgdGhpcyBwYXJhbVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZvciBub24tc2VsZWN0ZWQgdmFsdWVTb3VyY2VzOiByYXdWYWx1ZSBjb3VsZCBiZSBudWxsL3VuZGVmaW5lZC9zdHJpbmcvYXJyYXlcbiAgICAgICAgaWYgKHJhd1ZhbHVlID09PSBudWxsIHx8IHJhd1ZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAvLyBza2lwIGFkZGluZyBwYXJhbSB3aGVuIHZhbHVlIG5vdCBmb3VuZFxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIGlucHV0VmFsdWUgaW5kaWNhdGVzIGFycmF5LW9mLXZhbHVlcyAoZS5nLiwgcGFyYW0uaW5wdXRWYWx1ZSA9PT0gJ0FSUkFZX09GX1ZBTFVFUycpLFxuICAgICAgICAvLyBhY2NlcHQgZWl0aGVyIGFuIGFycmF5IG9yIGEgY29tbWEtc2VwYXJhdGVkIHN0cmluZ1xuICAgICAgICBpZiAocGFyYW0uaW5wdXRWYWx1ZSA9PT0gJ0FSUkFZX09GX1ZBTFVFUycpIHtcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyYXdWYWx1ZSkpIHtcbiAgICAgICAgICAgIHJhd1ZhbHVlLmZvckVhY2goKHZhbDogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQocGFyYW0ua2V5TmFtZSwgdmFsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHJhd1ZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgLy8gc3VwcG9ydCBjb21tYSBzZXBhcmF0ZWQgc3RyaW5nXG4gICAgICAgICAgICByYXdWYWx1ZVxuICAgICAgICAgICAgICAuc3BsaXQoJywnKVxuICAgICAgICAgICAgICAubWFwKChzKSA9PiBzLnRyaW0oKSlcbiAgICAgICAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAgICAgICAuZm9yRWFjaCgodmFsOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKHBhcmFtLmtleU5hbWUsIHZhbCk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBmYWxsYmFjazogY29udmVydCB0byBzdHJpbmcgYW5kIGFwcGVuZFxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZChwYXJhbS5rZXlOYW1lLCBTdHJpbmcocmF3VmFsdWUpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gZGVmYXVsdDogc2V0IHNpbmdsZSB2YWx1ZVxuICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQocGFyYW0ua2V5TmFtZSwgU3RyaW5nKHJhd1ZhbHVlKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUEFUSCBWQVJJQUJMRVMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIGxldCB1cmwgPSBhcGlDb25maWcudXJsO1xuICAgIGlmIChhcGlDb25maWcucGF0aFZhcmlhYmxlcykge1xuICAgICAgYXBpQ29uZmlnLnBhdGhWYXJpYWJsZXMuZm9yRWFjaCgocGF0aFZhcjogYW55KSA9PiB7XG4gICAgICAgIGlmIChwYXRoVmFyLmtleU5hbWUpIHtcbiAgICAgICAgICBsZXQgdmFsdWVUb0JpbmQ6IGFueSA9IG51bGw7XG5cbiAgICAgICAgICBzd2l0Y2ggKHBhdGhWYXIudmFsdWVTb3VyY2UpIHtcbiAgICAgICAgICAgIGNhc2UgJ0xPQ0FMX1NUT1JBR0UnOlxuICAgICAgICAgICAgICB2YWx1ZVRvQmluZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHBhdGhWYXIuaW5wdXRWYWx1ZSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdTRVNTSU9OX1NUT1JBR0UnOlxuICAgICAgICAgICAgICB2YWx1ZVRvQmluZCA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0ocGF0aFZhci5pbnB1dFZhbHVlKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ0NVU1RPTV9JTlBVVCc6XG4gICAgICAgICAgICBjYXNlICdRVUVTVElPTic6XG4gICAgICAgICAgICAgIHZhbHVlVG9CaW5kID0gcGF0aFZhci5pbnB1dFZhbHVlO1xuICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBVbnN1cHBvcnRlZCB2YWx1ZVNvdXJjZTogJHtwYXRoVmFyLnZhbHVlU291cmNlfWApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh2YWx1ZVRvQmluZCAhPT0gbnVsbCAmJiB2YWx1ZVRvQmluZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB1cmwgPSB1cmwucmVwbGFjZShgeyR7cGF0aFZhci5rZXlOYW1lfX1gLCB2YWx1ZVRvQmluZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZJTkFMIENBTEwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4odXJsLCB7IGhlYWRlcnMsIHBhcmFtcyB9KTtcbiAgfVxuXG4gIHN1Ym1pdEZvcm0oXG4gICAgbW9kdWxlTmFtZTogc3RyaW5nLFxuICAgIGZvcm1EYXRhOiBGb3JtRGF0YSxcbiAgICByZUNBUFRDSEFUb2tlbj86IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIC8vIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xuICAgIC8vICAgJ0F1dGgtdXNlcic6IHRoaXMuaGVhZGVyLmF1dGhVc2VyLFxuICAgIC8vIH0pO1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnModGhpcy5nZXRTYWZlSGVhZGVycygpKTtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmFwaVVybH0vYXBpL3B1YmxpYy9mb3Jtcy8ke21vZHVsZU5hbWV9L3N1Ym1pc3Npb25zYDtcbiAgICBpZiAocmVDQVBUQ0hBVG9rZW4pIHtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgncmVjYXB0Y2hhVG9rZW4nLCByZUNBUFRDSEFUb2tlbik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIGZvcm1EYXRhLCB7XG4gICAgICBoZWFkZXJzLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0U3VibWl0dGVkRm9ybShcbiAgICBtb2R1bGVOYW1lOiBzdHJpbmcsXG4gICAgc3VibWlzc2lvbklkOiBzdHJpbmcsXG4gICAgcGFnZU51bWJlcjogbnVtYmVyID0gMSxcbiAgICByb3dTZXQ6IG51bWJlciA9IDAsXG4gICAgbmF2aWdhdGVUbz86IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgICAuc2V0KCdwYWdlTnVtYmVyJywgcGFnZU51bWJlci50b1N0cmluZygpKVxuICAgICAgLnNldCgncm93U2V0Jywgcm93U2V0LnRvU3RyaW5nKCkpO1xuICAgIGlmIChuYXZpZ2F0ZVRvKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCduYXZpZ2F0ZUlkJywgbmF2aWdhdGVUbyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGFyZW50UXVlc3Rpb25zKSB7XG4gICAgICB0aGlzLnBhcmVudFF1ZXN0aW9ucy5mb3JFYWNoKChxOiBhbnkpID0+IHtcbiAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgncGFyZW50UXVlc3Rpb25zJywgcSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgLy8gY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgLy8gICAnQWNjZXB0LUxhbmd1YWdlJzogdGhpcy5oZWFkZXIuYWNjZXB0ZWRMYW5ndWFnZSxcbiAgICAvLyB9KTtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHRoaXMuZ2V0U2FmZUhlYWRlcnMoKSk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihcbiAgICAgIGAke3RoaXMuYXBpVXJsfS9hcGkvZm9ybXMvJHttb2R1bGVOYW1lfS9zdWJtaXNzaW9ucy8ke3N1Ym1pc3Npb25JZH1gLFxuICAgICAgeyBoZWFkZXJzLCBwYXJhbXMgfVxuICAgICk7XG4gIH1cblxuICB1cGRhdGVGb3JtKFxuICAgIG1vZHVsZU5hbWU6IHN0cmluZyxcbiAgICBzdWJtaXNzaW9uSWQ6IHN0cmluZyxcbiAgICBmb3JtRGF0YTogRm9ybURhdGEsXG4gICAgcmVDQVBUQ0hBVG9rZW4/OiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAvLyBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAvLyAgICdBdXRoLXVzZXInOiB0aGlzLmhlYWRlci5hdXRoVXNlcixcbiAgICAvLyB9KTtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHRoaXMuZ2V0U2FmZUhlYWRlcnMoKSk7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5hcGlVcmx9L2FwaS9wdWJsaWMvZm9ybXMvJHttb2R1bGVOYW1lfS9zdWJtaXNzaW9ucy8ke3N1Ym1pc3Npb25JZH1gO1xuICAgIGlmIChyZUNBUFRDSEFUb2tlbikge1xuICAgICAgZm9ybURhdGEuYXBwZW5kKCdyZWNhcHRjaGFUb2tlbicsIHJlQ0FQVENIQVRva2VuKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8YW55Pih1cmwsIGZvcm1EYXRhLCB7XG4gICAgICBoZWFkZXJzLFxuICAgIH0pO1xuICB9XG5cbiAgcHJldmlld0ZpbGUodXJsOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIC8vIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xuICAgIC8vICAgJ0FjY2VwdC1MYW5ndWFnZSc6IHRoaXMuaGVhZGVyLmFjY2VwdGVkTGFuZ3VhZ2UsXG4gICAgLy8gICAnQ29udGVudC1UeXBlJzogdGhpcy5oZWFkZXIuY29udGVudFR5cGUsXG4gICAgLy8gICAnYXV0aC11c2VyJzogdGhpcy5oZWFkZXIuYXV0aFVzZXIsXG4gICAgLy8gICAnQXV0aG9yaXphdGlvbic6IGBCZWFyZXIgJHt0aGlzLmhlYWRlci5hdXRob3JpemF0aW9ufWAsXG4gICAgLy8gfSk7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh0aGlzLmdldFNhZmVIZWFkZXJzKCkpO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgIH07XG4gICAgY29uc3QgZmlsZVVybCA9IHVybDtcbiAgICBjb25zdCBlbmNvZGVkRmlsZVVybCA9IGVuY29kZVVSSUNvbXBvbmVudChmaWxlVXJsKTtcbiAgICBjb25zdCBmdWxsVXJsID0gYD91cmw9JHtlbmNvZGVkRmlsZVVybH1gO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oXG4gICAgICB0aGlzLmFwaVVybCArIGAvYXBpL2Nkbi9wcmV2aWV3JHtmdWxsVXJsfWAsXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgfVxuXG4gIGdldFN1YmZvcm1TdWJtaXNzaW9ucyhzdWJGb3JtRGF0YTogYW55KSB7XG4gICAgaWYgKFxuICAgICAgIXN1YkZvcm1EYXRhPy5tb2R1bGVOYW1lIHx8XG4gICAgICAhc3ViRm9ybURhdGE/LmR1cGxpY2F0ZVN1Ym1pc3Npb24/LnNvdXJjZVN1Ym1pc3Npb25JZHNcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHRoaXMuZ2V0U2FmZUhlYWRlcnMoKSk7XG5cbiAgICAvLyBFeHRyYWN0IGRhdGFcbiAgICBjb25zdCBtb2R1bGVOYW1lID0gc3ViRm9ybURhdGEubW9kdWxlTmFtZTtcbiAgICBjb25zdCBzdWJtaXNzaW9uSWRzOiBzdHJpbmdbXSA9XG4gICAgICBzdWJGb3JtRGF0YS5kdXBsaWNhdGVTdWJtaXNzaW9uLnNvdXJjZVN1Ym1pc3Npb25JZHM7XG5cbiAgICAvLyBCdWlsZCBxdWVyeSBzdHJpbmdcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHN1Ym1pc3Npb25JZHNcbiAgICAgIC5tYXAoKGlkKSA9PiBgc3VibWlzc2lvbklkcz0ke2VuY29kZVVSSUNvbXBvbmVudChpZCl9YClcbiAgICAgIC5qb2luKCcmJyk7XG5cbiAgICAvLyBGaW5hbCBVUkxcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmFwaVVybH0vYXBpL3B1YmxpYy8ke21vZHVsZU5hbWV9L3N1YmZvcm0tc3VibWlzc2lvbnM/JHtxdWVyeVBhcmFtc31gO1xuXG4gICAgLy8gTm93IG1ha2UgQVBJIGNhbGxcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwse1xuICAgICAgaGVhZGVyc1xuICAgIH0pO1xuXG4gIH1cblxuICBnZXRTYWZlSGVhZGVycygpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICBjb25zdCBzYWZlOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgaWYgKHRoaXMuaGVhZGVyICYmIHR5cGVvZiB0aGlzLmhlYWRlciA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMuaGVhZGVyKSkge1xuICAgICAgICBjb25zdCB2YWwgPSB0aGlzLmhlYWRlcltrZXldO1xuICAgICAgICBpZiAodmFsICE9PSB1bmRlZmluZWQgJiYgdmFsICE9PSBudWxsKSB7XG4gICAgICAgICAgc2FmZVtrZXldID0gU3RyaW5nKHZhbCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgY29uc29sZS5sb2coJ1tGb3JtU2VydmljZV0gZ2V0U2FmZUhlYWRlcnMsIGlucHV0IGhlYWRlcjonLCB0aGlzLmhlYWRlciwgJ291dHB1dCBzYWZlOicsIHNhZmUpO1xuICAgIHJldHVybiBzYWZlO1xuICB9XG59XG4iXX0=
@@ -1432,9 +1432,10 @@ class FormService {
1432
1432
  return this.http.get(url, { headers, params });
1433
1433
  }
1434
1434
  submitForm(moduleName, formData, reCAPTCHAToken) {
1435
- const headers = new HttpHeaders({
1436
- 'Auth-user': this.header.authUser,
1437
- });
1435
+ // const headers = new HttpHeaders({
1436
+ // 'Auth-user': this.header.authUser,
1437
+ // });
1438
+ const headers = new HttpHeaders(this.getSafeHeaders());
1438
1439
  const url = `${this.apiUrl}/api/public/forms/${moduleName}/submissions`;
1439
1440
  if (reCAPTCHAToken) {
1440
1441
  formData.append('recaptchaToken', reCAPTCHAToken);
@@ -1455,15 +1456,17 @@ class FormService {
1455
1456
  params = params.append('parentQuestions', q);
1456
1457
  });
1457
1458
  }
1458
- const headers = new HttpHeaders({
1459
- 'Accept-Language': this.header.acceptedLanguage,
1460
- });
1459
+ // const headers = new HttpHeaders({
1460
+ // 'Accept-Language': this.header.acceptedLanguage,
1461
+ // });
1462
+ const headers = new HttpHeaders(this.getSafeHeaders());
1461
1463
  return this.http.get(`${this.apiUrl}/api/forms/${moduleName}/submissions/${submissionId}`, { headers, params });
1462
1464
  }
1463
1465
  updateForm(moduleName, submissionId, formData, reCAPTCHAToken) {
1464
- const headers = new HttpHeaders({
1465
- 'Auth-user': this.header.authUser,
1466
- });
1466
+ // const headers = new HttpHeaders({
1467
+ // 'Auth-user': this.header.authUser,
1468
+ // });
1469
+ const headers = new HttpHeaders(this.getSafeHeaders());
1467
1470
  const url = `${this.apiUrl}/api/public/forms/${moduleName}/submissions/${submissionId}`;
1468
1471
  if (reCAPTCHAToken) {
1469
1472
  formData.append('recaptchaToken', reCAPTCHAToken);
@@ -1473,10 +1476,13 @@ class FormService {
1473
1476
  });
1474
1477
  }
1475
1478
  previewFile(url) {
1476
- const headers = new HttpHeaders({
1477
- 'Content-Type': this.header.contentType,
1478
- 'auth-user': this.header.authUser,
1479
- });
1479
+ // const headers = new HttpHeaders({
1480
+ // 'Accept-Language': this.header.acceptedLanguage,
1481
+ // 'Content-Type': this.header.contentType,
1482
+ // 'auth-user': this.header.authUser,
1483
+ // 'Authorization': `Bearer ${this.header.authorization}`,
1484
+ // });
1485
+ const headers = new HttpHeaders(this.getSafeHeaders());
1480
1486
  const options = {
1481
1487
  headers: headers,
1482
1488
  };
@@ -1490,6 +1496,7 @@ class FormService {
1490
1496
  !subFormData?.duplicateSubmission?.sourceSubmissionIds) {
1491
1497
  return;
1492
1498
  }
1499
+ const headers = new HttpHeaders(this.getSafeHeaders());
1493
1500
  // Extract data
1494
1501
  const moduleName = subFormData.moduleName;
1495
1502
  const submissionIds = subFormData.duplicateSubmission.sourceSubmissionIds;
@@ -1500,7 +1507,9 @@ class FormService {
1500
1507
  // Final URL
1501
1508
  const url = `${this.apiUrl}/api/public/${moduleName}/subform-submissions?${queryParams}`;
1502
1509
  // Now make API call
1503
- return this.http.get(url);
1510
+ return this.http.get(url, {
1511
+ headers
1512
+ });
1504
1513
  }
1505
1514
  getSafeHeaders() {
1506
1515
  const safe = {};