@data-client/rest 0.15.6 → 0.16.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.
Files changed (54) hide show
  1. package/CHANGELOG.md +118 -0
  2. package/dist/index.js +61 -18
  3. package/dist/index.umd.min.js +1 -1
  4. package/legacy/NetworkError.js +16 -1
  5. package/legacy/RestEndpoint.js +17 -4
  6. package/legacy/RestEndpointTypes.js +1 -1
  7. package/legacy/RestHelpers.js +29 -16
  8. package/legacy/pathTypes.js +1 -1
  9. package/legacy/resource.js +3 -1
  10. package/legacy/resourceTypes.js +1 -1
  11. package/lib/NetworkError.d.ts +12 -0
  12. package/lib/NetworkError.d.ts.map +1 -1
  13. package/lib/NetworkError.js +16 -1
  14. package/lib/RestEndpoint.js +17 -4
  15. package/lib/RestEndpointTypes.d.ts +43 -9
  16. package/lib/RestEndpointTypes.d.ts.map +1 -1
  17. package/lib/RestEndpointTypes.js +1 -1
  18. package/lib/RestHelpers.d.ts +2 -2
  19. package/lib/RestHelpers.d.ts.map +1 -1
  20. package/lib/RestHelpers.js +29 -16
  21. package/lib/pathTypes.d.ts +14 -13
  22. package/lib/pathTypes.d.ts.map +1 -1
  23. package/lib/pathTypes.js +1 -1
  24. package/lib/resource.d.ts.map +1 -1
  25. package/lib/resource.js +3 -1
  26. package/lib/resourceTypes.d.ts +5 -1
  27. package/lib/resourceTypes.d.ts.map +1 -1
  28. package/lib/resourceTypes.js +1 -1
  29. package/package.json +5 -5
  30. package/src/NetworkError.ts +15 -0
  31. package/src/RestEndpoint.js +21 -3
  32. package/src/RestEndpointTypes.ts +33 -9
  33. package/src/RestHelpers.ts +34 -26
  34. package/src/__tests__/Resource.test.ts +131 -0
  35. package/src/__tests__/RestEndpoint.ts +212 -4
  36. package/src/__tests__/__snapshots__/RestEndpoint.ts.snap +2 -0
  37. package/src/__tests__/__snapshots__/resource-construction.test.ts.snap +1 -1
  38. package/src/__tests__/hookifyResource.ts +7 -0
  39. package/src/__tests__/resource-construction.test.ts +543 -0
  40. package/src/pathTypes.ts +35 -23
  41. package/src/resource.ts +2 -0
  42. package/src/resourceTypes.ts +3 -1
  43. package/ts4.0/NetworkError.d.ts +12 -0
  44. package/ts4.0/RestEndpointTypes.d.ts +61 -9
  45. package/ts4.0/RestHelpers.d.ts +2 -2
  46. package/ts4.0/pathTypes.d.ts +1 -1
  47. package/ts4.0/resourceExtendable.d.ts +1 -1
  48. package/ts4.0/resourceTypes.d.ts +7 -1
  49. package/ts4.1/NetworkError.d.ts +12 -0
  50. package/ts4.1/RestEndpointTypes.d.ts +61 -9
  51. package/ts4.1/RestHelpers.d.ts +2 -2
  52. package/ts4.1/pathTypes.d.ts +14 -13
  53. package/ts4.1/resourceExtendable.d.ts +1 -1
  54. package/ts4.1/resourceTypes.d.ts +7 -1
@@ -53,14 +53,17 @@ export default class RestEndpoint extends Endpoint {
53
53
 
54
54
  /** Get the url */
55
55
  url(urlParams = {}) {
56
- const urlBase = getUrlBase(this.path)(urlParams);
57
56
  const tokens = getUrlTokens(this.path);
57
+ const pathParams = {};
58
58
  const searchParams = {};
59
59
  Object.keys(urlParams).forEach(k => {
60
- if (!tokens.has(k)) {
60
+ if (tokens.has(k)) {
61
+ if (urlParams[k] !== undefined) pathParams[k] = Array.isArray(urlParams[k]) ? urlParams[k].map(String) : String(urlParams[k]);
62
+ } else {
61
63
  searchParams[k] = urlParams[k];
62
64
  }
63
65
  });
66
+ const urlBase = getUrlBase(this.path)(pathParams);
64
67
  if (Object.keys(searchParams).length) {
65
68
  return `${this.urlPrefix}${urlBase}?${this.searchToString(searchParams)}`;
66
69
  }
@@ -157,7 +160,7 @@ Response (first 300 characters): ${text.substring(0, 300)}`;
157
160
  return error.status >= 500 ? 'soft' : undefined;
158
161
  }
159
162
  get pathRegex() {
160
- return pathToRegexp(this.path);
163
+ return pathToRegexp(this.path).regexp;
161
164
  }
162
165
  testKey(key) {
163
166
  const prefix = this.method + ' ' + this.urlPrefix;
@@ -232,6 +235,16 @@ Response (first 300 characters): ${text.substring(0, 300)}`;
232
235
  name: this.name + '.remove'
233
236
  });
234
237
  }
238
+ get move() {
239
+ const options = {
240
+ method: 'PATCH',
241
+ schema: extractCollection(this.schema, s => s.move),
242
+ searchParams: undefined,
243
+ name: this.name + '.partialUpdate'
244
+ };
245
+ if (this.movePath) options.path = this.movePath;
246
+ return this.extend(options);
247
+ }
235
248
  }
236
249
  const tryParse = input => {
237
250
  try {
@@ -240,4 +253,4 @@ const tryParse = input => {
240
253
  return undefined;
241
254
  }
242
255
  };
243
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbmRwb2ludCIsInBhdGhUb1JlZ2V4cCIsImV4dHJhY3RDb2xsZWN0aW9uIiwibWFwQ29sbGVjdGlvbiIsIk5ldHdvcmtFcnJvciIsImNyZWF0ZVBhZ2luYXRpb25TY2hlbWEiLCJwYXJhbXNUb1N0cmluZyIsImdldFVybEJhc2UiLCJnZXRVcmxUb2tlbnMiLCJpc1Bvam8iLCJfaGFzQm9keSIsIl9jbGFzc1ByaXZhdGVGaWVsZExvb3NlS2V5IiwiUmVzdEVuZHBvaW50IiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwiX29wdGlvbnMkZmV0Y2giLCJmZXRjaCIsImFyZ3MiLCJ1cmxQYXJhbXMiLCJfY2xhc3NQcml2YXRlRmllbGRMb29zZUJhc2UiLCJsZW5ndGgiLCJib2R5IiwidW5kZWZpbmVkIiwiZmV0Y2hSZXNwb25zZSIsInVybCIsImdldFJlcXVlc3RJbml0IiwidGhlbiIsInJlc3BvbnNlIiwicGFyc2VSZXNwb25zZSIsInJlcyIsInByb2Nlc3MiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsIndyaXRhYmxlIiwidmFsdWUiLCJzaWRlRWZmZWN0IiwibWV0aG9kIiwidXJsUHJlZml4IiwiaW5jbHVkZXMiLCJnZXQiLCJfX25hbWUiLCJwYXRoIiwia2V5IiwidXJsQmFzZSIsInRva2VucyIsInNlYXJjaFBhcmFtcyIsImtleXMiLCJmb3JFYWNoIiwiayIsImhhcyIsInNlYXJjaFRvU3RyaW5nIiwiZ2V0SGVhZGVycyIsImhlYWRlcnMiLCJib2R5SXNQb2pvIiwiSlNPTiIsInN0cmluZ2lmeSIsImluaXQiLCJfZXh0ZW5kcyIsInJlcXVlc3RJbml0Iiwic2lnbmFsIiwiaW5wdXQiLCJvayIsImNhdGNoIiwiZXJyb3IiLCJUeXBlRXJyb3IiLCJzdGF0dXMiLCJfcmVzcG9uc2UkaGVhZGVycyRnZXQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRleHQiLCJzY2hlbWEiLCJwcm90b3R5cGUiLCJtZXNzYWdlIiwiZW52IiwiTk9ERV9FTlYiLCJfcmVzcG9uc2UkaGVhZGVycyRnZXQyIiwic3RhcnRzV2l0aCIsInRyeVBhcnNlIiwic3Vic3RyaW5nIiwianNvbiIsImVycm9yUG9saWN5IiwicGF0aFJlZ2V4IiwidGVzdEtleSIsInByZWZpeCIsImxhc3RRdWVzdGlvbiIsImxhc3RJbmRleE9mIiwidGVzdCIsImV4dGVuZCIsIkUiLCJhc3NpZ24iLCJwYWdpbmF0ZWQiLCJyZW1vdmVDdXJzb3IiLCJmaWVsZE5hbWUiLCJfcmVmIiwicGFyYW1zIiwiX29iamVjdERlc3RydWN0dXJpbmdFbXB0eSIsImZvdW5kIiwiY3JlYXRlUGFnaW5hdGVkU2NoZW1hIiwiY29sbGVjdGlvbiIsIm5ld1NjaGVtYSIsIkVycm9yIiwic3VwIiwiY2FsbCIsIm5hbWUiLCJnZXRQYWdlIiwicGFnaW5hdGlvbkZpZWxkIiwicHVzaCIsInMiLCJ1bnNoaWZ0IiwicmVtb3ZlIiwicGFyc2UiLCJlIl0sInNvdXJjZXMiOlsiLi4vc3JjL1Jlc3RFbmRwb2ludC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmRwb2ludCB9IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5pbXBvcnQgeyBwYXRoVG9SZWdleHAgfSBmcm9tICdwYXRoLXRvLXJlZ2V4cCc7XG5cbmltcG9ydCBleHRyYWN0Q29sbGVjdGlvbiBmcm9tICcuL2V4dHJhY3RDb2xsZWN0aW9uLmpzJztcbmltcG9ydCBtYXBDb2xsZWN0aW9uIGZyb20gJy4vbWFwQ29sbGVjdGlvbi5qcyc7XG5pbXBvcnQgTmV0d29ya0Vycm9yIGZyb20gJy4vTmV0d29ya0Vycm9yLmpzJztcbmltcG9ydCB7IGNyZWF0ZVBhZ2luYXRpb25TY2hlbWEgfSBmcm9tICcuL3BhZ2luYXRlZENvbGxlY3Rpb25zLmpzJztcbmltcG9ydCBwYXJhbXNUb1N0cmluZyBmcm9tICcuL3BhcmFtc1RvU3RyaW5nLmpzJztcbmltcG9ydCB7IGdldFVybEJhc2UsIGdldFVybFRva2VucywgaXNQb2pvIH0gZnJvbSAnLi9SZXN0SGVscGVycy5qcyc7XG5cbi8qKiBTaW1wbGlmaWVzIGVuZHBvaW50IGRlZmluaXRpb25zIHRoYXQgZm9sbG93IFJFU1QgcGF0dGVybnNcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVzdEVuZHBvaW50IGV4dGVuZHMgRW5kcG9pbnQge1xuICAjaGFzQm9keTtcbiAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgIHN1cGVyKFxuICAgICAgb3B0aW9ucy5mZXRjaCA/P1xuICAgICAgICBhc3luYyBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgICAgIGNvbnN0IHVybFBhcmFtcyA9XG4gICAgICAgICAgICB0aGlzLiNoYXNCb2R5ICYmIGFyZ3MubGVuZ3RoIDwgMiA/IHt9IDogYXJnc1swXSB8fCB7fTtcbiAgICAgICAgICBjb25zdCBib2R5ID0gdGhpcy4jaGFzQm9keSA/IGFyZ3NbYXJncy5sZW5ndGggLSAxXSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICByZXR1cm4gdGhpcy5mZXRjaFJlc3BvbnNlKFxuICAgICAgICAgICAgdGhpcy51cmwodXJsUGFyYW1zKSxcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZ2V0UmVxdWVzdEluaXQoYm9keSksXG4gICAgICAgICAgKVxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gdGhpcy5wYXJzZVJlc3BvbnNlKHJlc3BvbnNlKSlcbiAgICAgICAgICAgIC50aGVuKHJlcyA9PiB0aGlzLnByb2Nlc3MocmVzLCAuLi5hcmdzKSk7XG4gICAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgLy8gd2Ugd2FudCB0byB1c2UgdGhlIHByb3RvdHlwZSBjaGFpbiBoZXJlXG4gICAgaWYgKFxuICAgICAgISgnc2lkZUVmZmVjdCcgaW4gdGhpcykgfHxcbiAgICAgICgnbWV0aG9kJyBpbiBvcHRpb25zICYmICEoJ3NpZGVFZmZlY3QnIGluIG9wdGlvbnMpKVxuICAgICkge1xuICAgICAgdGhpcy5zaWRlRWZmZWN0ID1cbiAgICAgICAgb3B0aW9ucy5tZXRob2QgPT09ICdHRVQnIHx8IG9wdGlvbnMubWV0aG9kID09PSB1bmRlZmluZWQgP1xuICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICA6IHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLm1ldGhvZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLm1ldGhvZCA9IHRoaXMuc2lkZUVmZmVjdCA/ICdQT1NUJyA6ICdHRVQnO1xuICAgIH1cbiAgICBpZiAodGhpcy51cmxQcmVmaXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy51cmxQcmVmaXggPSAnJztcbiAgICB9XG4gICAgdGhpcy4jaGFzQm9keSA9XG4gICAgICAoISgnYm9keScgaW4gdGhpcykgfHwgdGhpcy5ib2R5ICE9PSB1bmRlZmluZWQpICYmXG4gICAgICAhWydHRVQnLCAnREVMRVRFJ10uaW5jbHVkZXModGhpcy5tZXRob2QpO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICduYW1lJywge1xuICAgICAgZ2V0KCkge1xuICAgICAgICAvLyB1c2luZyAnaW4nIHRvIGVuc3VyZSBpbmhlcml0YW5jZSBsb29rdXBcbiAgICAgICAgaWYgKCdfX25hbWUnIGluIHRoaXMpIHJldHVybiB0aGlzLl9fbmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXMudXJsUHJlZml4ICsgdGhpcy5wYXRoO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGtleSguLi5hcmdzKSB7XG4gICAgcmV0dXJuIGAke3RoaXMubWV0aG9kfSAke3RoaXMudXJsKFxuICAgICAgdGhpcy4jaGFzQm9keSAmJiBhcmdzLmxlbmd0aCA8IDIgPyB7fSA6IGFyZ3NbMF0gfHwge30sXG4gICAgKX1gO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgdXJsICovXG4gIHVybCh1cmxQYXJhbXMgPSB7fSkge1xuICAgIGNvbnN0IHVybEJhc2UgPSBnZXRVcmxCYXNlKHRoaXMucGF0aCkodXJsUGFyYW1zKTtcbiAgICBjb25zdCB0b2tlbnMgPSBnZXRVcmxUb2tlbnModGhpcy5wYXRoKTtcbiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSB7fTtcbiAgICBPYmplY3Qua2V5cyh1cmxQYXJhbXMpLmZvckVhY2goayA9PiB7XG4gICAgICBpZiAoIXRva2Vucy5oYXMoaykpIHtcbiAgICAgICAgc2VhcmNoUGFyYW1zW2tdID0gdXJsUGFyYW1zW2tdO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmIChPYmplY3Qua2V5cyhzZWFyY2hQYXJhbXMpLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGAke3RoaXMudXJsUHJlZml4fSR7dXJsQmFzZX0/JHt0aGlzLnNlYXJjaFRvU3RyaW5nKHNlYXJjaFBhcmFtcyl9YDtcbiAgICB9XG4gICAgcmV0dXJuIGAke3RoaXMudXJsUHJlZml4fSR7dXJsQmFzZX1gO1xuICB9XG5cbiAgLyoqIEVuY29kZSB0aGUgdXJsIHNlYXJjaFBhcmFtcyAqL1xuICBzZWFyY2hUb1N0cmluZyhzZWFyY2hQYXJhbXMpIHtcbiAgICByZXR1cm4gcGFyYW1zVG9TdHJpbmcoc2VhcmNoUGFyYW1zKTtcbiAgfVxuXG4gIGdldEhlYWRlcnMoaGVhZGVycykge1xuICAgIHJldHVybiBoZWFkZXJzO1xuICB9XG5cbiAgLyoqIEluaXQgb3B0aW9ucyBmb3IgZmV0Y2ggLSBydW4gYXQgZmV0Y2ggKi9cbiAgYXN5bmMgZ2V0UmVxdWVzdEluaXQoYm9keSkge1xuICAgIGNvbnN0IGJvZHlJc1Bvam8gPSBpc1Bvam8oYm9keSk7XG4gICAgaWYgKGJvZHlJc1Bvam8pIHtcbiAgICAgIGJvZHkgPSBKU09OLnN0cmluZ2lmeShib2R5KTtcbiAgICB9XG4gICAgY29uc3QgaW5pdCA9IHtcbiAgICAgIC4uLnRoaXMucmVxdWVzdEluaXQsXG4gICAgICBtZXRob2Q6IHRoaXMubWV0aG9kLFxuICAgICAgc2lnbmFsOiB0aGlzLnNpZ25hbCxcbiAgICAgIGJvZHksXG4gICAgfTtcbiAgICBpZiAoIWJvZHkgfHwgYm9keUlzUG9qbykge1xuICAgICAgaW5pdC5oZWFkZXJzID0ge1xuICAgICAgICAvLyBkZWZhdWx0IHRvIGFwcGxpY2F0aW9uL2pzb24gYnV0IGFsbG93IHVzZXIgZXhwbGljaXQgb3ZlcnJpZGVzXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIC4uLmluaXQuaGVhZGVycyxcbiAgICAgIH07XG4gICAgfVxuICAgIGluaXQuaGVhZGVycyA9IGF3YWl0IHRoaXMuZ2V0SGVhZGVycyhpbml0LmhlYWRlcnMpO1xuICAgIHJldHVybiBpbml0O1xuICB9XG5cbiAgLyoqIFBlcmZvcm0gbmV0d29yayByZXF1ZXN0IGFuZCByZXNvbHZlIHdpdGggSFRUUCBSZXNwb25zZSAqL1xuICBmZXRjaFJlc3BvbnNlKGlucHV0LCBpbml0KSB7XG4gICAgcmV0dXJuIGZldGNoKGlucHV0LCBpbml0KVxuICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IE5ldHdvcmtFcnJvcihyZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgIC8vIGVuc3VyZSBDT1JTLCBuZXR3b3JrIGRvd24sIGFuZCBwYXJzZSBlcnJvcnMgYXJlIHN0aWxsIGNhdWdodCBieSBOZXR3b3JrRXJyb3JCb3VuZGFyeVxuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBUeXBlRXJyb3IpIHtcbiAgICAgICAgICBlcnJvci5zdGF0dXMgPSA1MDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KTtcbiAgfVxuXG4gIHBhcnNlUmVzcG9uc2UocmVzcG9uc2UpIHtcbiAgICAvLyB0aGlzIHNob3VsZCBub3QgaGF2ZSBhbnkgY29udGVudCB0byByZWFkXG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gMjA0KSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xuICAgIGlmICghcmVzcG9uc2UuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpPy5pbmNsdWRlcygnanNvbicpKSB7XG4gICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpLnRoZW4odGV4dCA9PiB7XG4gICAgICAgIC8vIHN0cmluZyBvciAnbm90IHNldCcgc2NoZW1hLCBhcmUgdmFsaWRcbiAgICAgICAgLy8gd2hlbiBvdmVycmlkaW5nIHByb2Nlc3MgdGhleSBtaWdodCBoYW5kbGUgb3RoZXIgY2FzZXMsIHNvIHdlIGRvbid0IHdhbnQgdG8gYmxvY2sgb24gb3VyIGxvZ2ljXG4gICAgICAgIGlmIChcbiAgICAgICAgICBbJ3N0cmluZycsICd1bmRlZmluZWQnXS5pbmNsdWRlcyh0eXBlb2YgdGhpcy5zY2hlbWEpIHx8XG4gICAgICAgICAgdGhpcy5zY2hlbWEgPT09IG51bGwgfHxcbiAgICAgICAgICB0aGlzLnByb2Nlc3MgIT09IFJlc3RFbmRwb2ludC5wcm90b3R5cGUucHJvY2Vzc1xuICAgICAgICApXG4gICAgICAgICAgcmV0dXJuIHRleHQ7XG5cbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgTmV0d29ya0Vycm9yKHJlc3BvbnNlKTtcbiAgICAgICAgZXJyb3Iuc3RhdHVzID0gNDA0O1xuICAgICAgICBlcnJvci5tZXNzYWdlID0gYFVuZXhwZWN0ZWQgdGV4dCByZXNwb25zZSBmb3Igc2NoZW1hICR7dGhpcy5zY2hlbWF9YDtcbiAgICAgICAgLy8gY3VzdG9tIGRldi1vbmx5IG1lc3NhZ2VzIGZvciBtb3JlIGRldGFpbGVkIGNhdXNlXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIShcbiAgICAgICAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpPy5pbmNsdWRlcygnaHRtbCcpIHx8XG4gICAgICAgICAgICAgIHRleHQuc3RhcnRzV2l0aCgnPCFkb2N0eXBlIGh0bWw+JylcbiAgICAgICAgICAgIClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGlmICh0cnlQYXJzZSh0ZXh0KSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSBgXCJjb250ZW50LXR5cGVcIiBoZWFkZXIgZG9lcyBub3QgaW5jbHVkZSBcImpzb25cIiwgYnV0IEpTT04gcmVzcG9uc2UgZm91bmQuXG5TZWUgaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzQ2MjcgZm9yIGluZm9ybWF0aW9uIG9uIEpTT04gcmVzcG9uc2VzXG5cblVzaW5nIHBhcnNlZCBKU09OLlxuSWYgdGV4dCBjb250ZW50IHdhcyBleHBlY3RlZCBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYXJzZVJlc3BvbnNlYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyb3IubWVzc2FnZSA9IGBVbmV4cGVjdGVkIGh0bWwgcmVzcG9uc2UgZm9yIHNjaGVtYSAke3RoaXMuc2NoZW1hfVxuVGhpcyBsaWtlbHkgbWVhbnMgbm8gQVBJIGVuZHBvaW50IHdhcyBjb25maWd1cmVkIGZvciB0aGlzIHJlcXVlc3QsIHJlc3VsdGluZyBpbiBhbiBIVE1MIGZhbGxiYWNrLlxuXG5SZXNwb25zZSAoZmlyc3QgMzAwIGNoYXJhY3RlcnMpOiAke3RleHQuc3Vic3RyaW5nKDAsIDMwMCl9YDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKS5jYXRjaChlcnJvciA9PiB7XG4gICAgICBlcnJvci5zdGF0dXMgPSA0MDA7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KTtcbiAgfVxuXG4gIHByb2Nlc3ModmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBlcnJvclBvbGljeShlcnJvcikge1xuICAgIHJldHVybiBlcnJvci5zdGF0dXMgPj0gNTAwID8gJ3NvZnQnIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0IHBhdGhSZWdleCgpIHtcbiAgICByZXR1cm4gcGF0aFRvUmVnZXhwKHRoaXMucGF0aCk7XG4gIH1cblxuICB0ZXN0S2V5KGtleSkge1xuICAgIGNvbnN0IHByZWZpeCA9IHRoaXMubWV0aG9kICsgJyAnICsgdGhpcy51cmxQcmVmaXg7XG4gICAgaWYgKCFrZXkuc3RhcnRzV2l0aChwcmVmaXgpKSByZXR1cm4gZmFsc2U7XG4gICAgbGV0IGxhc3RRdWVzdGlvbiA9IGtleS5sYXN0SW5kZXhPZignPycpO1xuICAgIGlmIChsYXN0UXVlc3Rpb24gPT09IC0xKSBsYXN0UXVlc3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMucGF0aFJlZ2V4LnRlc3Qoa2V5LnN1YnN0cmluZyhwcmVmaXgubGVuZ3RoLCBsYXN0UXVlc3Rpb24pKTtcbiAgfVxuXG4gIGV4dGVuZChvcHRpb25zKSB7XG4gICAgLy8gbWFrZSBhIGNvbnN0cnVjdG9yL3Byb3RvdHlwZSBiYXNlZCBvZmYgdGhpc1xuICAgIC8vIGV4dGVuZCBmcm9tIGl0IGFuZCBpbml0IHdpdGggb3B0aW9ucyBzZW50XG4gICAgY2xhc3MgRSBleHRlbmRzIHRoaXMuY29uc3RydWN0b3Ige31cblxuICAgIE9iamVjdC5hc3NpZ24oRS5wcm90b3R5cGUsIHRoaXMpO1xuXG4gICAgcmV0dXJuIG5ldyBFKFxuICAgICAgLy8gIGZldGNoIGdldCBvdmVycmlkZGVuIGJ5IGZ1bmN0aW9uIHByb3RvdHlwZSwgc28gd2UgbXVzdCBzZXQgaXQgZXhwbGljaXRseSBldmVyeSB0aW1lXG4gICAgICB7IGZldGNoOiB0aGlzLmZldGNoLCAuLi5vcHRpb25zIH0sXG4gICAgKTtcbiAgfVxuXG4gIHBhZ2luYXRlZChyZW1vdmVDdXJzb3IpIHtcbiAgICBpZiAodHlwZW9mIHJlbW92ZUN1cnNvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IHJlbW92ZUN1cnNvcjtcbiAgICAgIHJlbW92ZUN1cnNvciA9ICh7IC4uLnBhcmFtcyB9KSA9PiB7XG4gICAgICAgIGRlbGV0ZSBwYXJhbXNbZmllbGROYW1lXTtcbiAgICAgICAgcmV0dXJuIFtwYXJhbXNdO1xuICAgICAgfTtcbiAgICB9XG4gICAgbGV0IGZvdW5kID0gZmFsc2U7XG4gICAgY29uc3QgY3JlYXRlUGFnaW5hdGVkU2NoZW1hID0gY29sbGVjdGlvbiA9PiB7XG4gICAgICBmb3VuZCA9IHRydWU7XG4gICAgICByZXR1cm4gY3JlYXRlUGFnaW5hdGlvblNjaGVtYShyZW1vdmVDdXJzb3IsIGNvbGxlY3Rpb24pO1xuICAgIH07XG4gICAgY29uc3QgbmV3U2NoZW1hID0gbWFwQ29sbGVjdGlvbih0aGlzLnNjaGVtYSwgY3JlYXRlUGFnaW5hdGVkU2NoZW1hKTtcblxuICAgIGlmICghZm91bmQpIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBDb2xsZWN0aW9uJyk7XG4gICAgY29uc3Qgc3VwID0gdGhpcztcblxuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBzY2hlbWE6IG5ld1NjaGVtYSxcbiAgICAgIGtleSguLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiBzdXAua2V5LmNhbGwodGhpcywgLi4ucmVtb3ZlQ3Vyc29yKC4uLmFyZ3MpKTtcbiAgICAgIH0sXG4gICAgICBuYW1lOiB0aGlzLm5hbWUgKyAnLmdldFBhZ2UnLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGdldFBhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFnaW5hdGVkKHRoaXMucGFnaW5hdGlvbkZpZWxkKTtcbiAgfVxuXG4gIGdldCBwdXNoKCkge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHNjaGVtYTogZXh0cmFjdENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIHMgPT4gcy5wdXNoKSxcbiAgICAgIG5hbWU6IHRoaXMubmFtZSArICcuY3JlYXRlJyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCB1bnNoaWZ0KCkge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHNjaGVtYTogZXh0cmFjdENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIHMgPT4gcy51bnNoaWZ0KSxcbiAgICAgIG5hbWU6IHRoaXMubmFtZSArICcuY3JlYXRlJyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBhc3NpZ24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5kKHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgc2NoZW1hOiBleHRyYWN0Q29sbGVjdGlvbih0aGlzLnNjaGVtYSwgcyA9PiBzLmFzc2lnbiksXG4gICAgICBuYW1lOiB0aGlzLm5hbWUgKyAnLmNyZWF0ZScsXG4gICAgfSk7XG4gIH1cblxuICBnZXQgcmVtb3ZlKCkge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICBzY2hlbWE6IGV4dHJhY3RDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBzID0+IHMucmVtb3ZlKSxcbiAgICAgIG5hbWU6IHRoaXMubmFtZSArICcucmVtb3ZlJyxcbiAgICB9KTtcbiAgfVxufVxuXG5jb25zdCB0cnlQYXJzZSA9IGlucHV0ID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShpbnB1dCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUEsU0FBU0EsUUFBUSxRQUFRLHVCQUF1QjtBQUNoRCxTQUFTQyxZQUFZLFFBQVEsZ0JBQWdCO0FBRTdDLE9BQU9DLGlCQUFpQixNQUFNLHdCQUF3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
256
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbmRwb2ludCIsInBhdGhUb1JlZ2V4cCIsImV4dHJhY3RDb2xsZWN0aW9uIiwibWFwQ29sbGVjdGlvbiIsIk5ldHdvcmtFcnJvciIsImNyZWF0ZVBhZ2luYXRpb25TY2hlbWEiLCJwYXJhbXNUb1N0cmluZyIsImdldFVybEJhc2UiLCJnZXRVcmxUb2tlbnMiLCJpc1Bvam8iLCJfaGFzQm9keSIsIl9jbGFzc1ByaXZhdGVGaWVsZExvb3NlS2V5IiwiUmVzdEVuZHBvaW50IiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwiX29wdGlvbnMkZmV0Y2giLCJmZXRjaCIsImFyZ3MiLCJ1cmxQYXJhbXMiLCJfY2xhc3NQcml2YXRlRmllbGRMb29zZUJhc2UiLCJsZW5ndGgiLCJib2R5IiwidW5kZWZpbmVkIiwiZmV0Y2hSZXNwb25zZSIsInVybCIsImdldFJlcXVlc3RJbml0IiwidGhlbiIsInJlc3BvbnNlIiwicGFyc2VSZXNwb25zZSIsInJlcyIsInByb2Nlc3MiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsIndyaXRhYmxlIiwidmFsdWUiLCJzaWRlRWZmZWN0IiwibWV0aG9kIiwidXJsUHJlZml4IiwiaW5jbHVkZXMiLCJnZXQiLCJfX25hbWUiLCJwYXRoIiwia2V5IiwidG9rZW5zIiwicGF0aFBhcmFtcyIsInNlYXJjaFBhcmFtcyIsImtleXMiLCJmb3JFYWNoIiwiayIsImhhcyIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsIlN0cmluZyIsInVybEJhc2UiLCJzZWFyY2hUb1N0cmluZyIsImdldEhlYWRlcnMiLCJoZWFkZXJzIiwiYm9keUlzUG9qbyIsIkpTT04iLCJzdHJpbmdpZnkiLCJpbml0IiwiX2V4dGVuZHMiLCJyZXF1ZXN0SW5pdCIsInNpZ25hbCIsImlucHV0Iiwib2siLCJjYXRjaCIsImVycm9yIiwiVHlwZUVycm9yIiwic3RhdHVzIiwiX3Jlc3BvbnNlJGhlYWRlcnMkZ2V0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0ZXh0Iiwic2NoZW1hIiwicHJvdG90eXBlIiwibWVzc2FnZSIsImVudiIsIk5PREVfRU5WIiwiX3Jlc3BvbnNlJGhlYWRlcnMkZ2V0MiIsInN0YXJ0c1dpdGgiLCJ0cnlQYXJzZSIsInN1YnN0cmluZyIsImpzb24iLCJlcnJvclBvbGljeSIsInBhdGhSZWdleCIsInJlZ2V4cCIsInRlc3RLZXkiLCJwcmVmaXgiLCJsYXN0UXVlc3Rpb24iLCJsYXN0SW5kZXhPZiIsInRlc3QiLCJleHRlbmQiLCJFIiwiYXNzaWduIiwicGFnaW5hdGVkIiwicmVtb3ZlQ3Vyc29yIiwiZmllbGROYW1lIiwiX3JlZiIsInBhcmFtcyIsIl9vYmplY3REZXN0cnVjdHVyaW5nRW1wdHkiLCJmb3VuZCIsImNyZWF0ZVBhZ2luYXRlZFNjaGVtYSIsImNvbGxlY3Rpb24iLCJuZXdTY2hlbWEiLCJFcnJvciIsInN1cCIsImNhbGwiLCJuYW1lIiwiZ2V0UGFnZSIsInBhZ2luYXRpb25GaWVsZCIsInB1c2giLCJzIiwidW5zaGlmdCIsInJlbW92ZSIsIm1vdmUiLCJtb3ZlUGF0aCIsInBhcnNlIiwiZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9SZXN0RW5kcG9pbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW5kcG9pbnQgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuaW1wb3J0IHsgcGF0aFRvUmVnZXhwIH0gZnJvbSAncGF0aC10by1yZWdleHAnO1xuXG5pbXBvcnQgZXh0cmFjdENvbGxlY3Rpb24gZnJvbSAnLi9leHRyYWN0Q29sbGVjdGlvbi5qcyc7XG5pbXBvcnQgbWFwQ29sbGVjdGlvbiBmcm9tICcuL21hcENvbGxlY3Rpb24uanMnO1xuaW1wb3J0IE5ldHdvcmtFcnJvciBmcm9tICcuL05ldHdvcmtFcnJvci5qcyc7XG5pbXBvcnQgeyBjcmVhdGVQYWdpbmF0aW9uU2NoZW1hIH0gZnJvbSAnLi9wYWdpbmF0ZWRDb2xsZWN0aW9ucy5qcyc7XG5pbXBvcnQgcGFyYW1zVG9TdHJpbmcgZnJvbSAnLi9wYXJhbXNUb1N0cmluZy5qcyc7XG5pbXBvcnQgeyBnZXRVcmxCYXNlLCBnZXRVcmxUb2tlbnMsIGlzUG9qbyB9IGZyb20gJy4vUmVzdEhlbHBlcnMuanMnO1xuXG4vKiogU2ltcGxpZmllcyBlbmRwb2ludCBkZWZpbml0aW9ucyB0aGF0IGZvbGxvdyBSRVNUIHBhdHRlcm5zXG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlc3RFbmRwb2ludCBleHRlbmRzIEVuZHBvaW50IHtcbiAgI2hhc0JvZHk7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICBzdXBlcihcbiAgICAgIG9wdGlvbnMuZmV0Y2ggPz9cbiAgICAgICAgYXN5bmMgZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgICAgICBjb25zdCB1cmxQYXJhbXMgPVxuICAgICAgICAgICAgdGhpcy4jaGFzQm9keSAmJiBhcmdzLmxlbmd0aCA8IDIgPyB7fSA6IGFyZ3NbMF0gfHwge307XG4gICAgICAgICAgY29uc3QgYm9keSA9IHRoaXMuI2hhc0JvZHkgPyBhcmdzW2FyZ3MubGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQ7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2hSZXNwb25zZShcbiAgICAgICAgICAgIHRoaXMudXJsKHVybFBhcmFtcyksXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmdldFJlcXVlc3RJbml0KGJvZHkpLFxuICAgICAgICAgIClcbiAgICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHRoaXMucGFyc2VSZXNwb25zZShyZXNwb25zZSkpXG4gICAgICAgICAgICAudGhlbihyZXMgPT4gdGhpcy5wcm9jZXNzKHJlcywgLi4uYXJncykpO1xuICAgICAgICB9LFxuICAgICAgb3B0aW9ucyxcbiAgICApO1xuICAgIC8vIHdlIHdhbnQgdG8gdXNlIHRoZSBwcm90b3R5cGUgY2hhaW4gaGVyZVxuICAgIGlmIChcbiAgICAgICEoJ3NpZGVFZmZlY3QnIGluIHRoaXMpIHx8XG4gICAgICAoJ21ldGhvZCcgaW4gb3B0aW9ucyAmJiAhKCdzaWRlRWZmZWN0JyBpbiBvcHRpb25zKSlcbiAgICApIHtcbiAgICAgIHRoaXMuc2lkZUVmZmVjdCA9XG4gICAgICAgIG9wdGlvbnMubWV0aG9kID09PSAnR0VUJyB8fCBvcHRpb25zLm1ldGhvZCA9PT0gdW5kZWZpbmVkID9cbiAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgOiB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5tZXRob2QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5tZXRob2QgPSB0aGlzLnNpZGVFZmZlY3QgPyAnUE9TVCcgOiAnR0VUJztcbiAgICB9XG4gICAgaWYgKHRoaXMudXJsUHJlZml4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudXJsUHJlZml4ID0gJyc7XG4gICAgfVxuICAgIHRoaXMuI2hhc0JvZHkgPVxuICAgICAgKCEoJ2JvZHknIGluIHRoaXMpIHx8IHRoaXMuYm9keSAhPT0gdW5kZWZpbmVkKSAmJlxuICAgICAgIVsnR0VUJywgJ0RFTEVURSddLmluY2x1ZGVzKHRoaXMubWV0aG9kKTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAnbmFtZScsIHtcbiAgICAgIGdldCgpIHtcbiAgICAgICAgLy8gdXNpbmcgJ2luJyB0byBlbnN1cmUgaW5oZXJpdGFuY2UgbG9va3VwXG4gICAgICAgIGlmICgnX19uYW1lJyBpbiB0aGlzKSByZXR1cm4gdGhpcy5fX25hbWU7XG4gICAgICAgIHJldHVybiB0aGlzLnVybFByZWZpeCArIHRoaXMucGF0aDtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBrZXkoLi4uYXJncykge1xuICAgIHJldHVybiBgJHt0aGlzLm1ldGhvZH0gJHt0aGlzLnVybChcbiAgICAgIHRoaXMuI2hhc0JvZHkgJiYgYXJncy5sZW5ndGggPCAyID8ge30gOiBhcmdzWzBdIHx8IHt9LFxuICAgICl9YDtcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIHVybCAqL1xuICB1cmwodXJsUGFyYW1zID0ge30pIHtcbiAgICBjb25zdCB0b2tlbnMgPSBnZXRVcmxUb2tlbnModGhpcy5wYXRoKTtcbiAgICBjb25zdCBwYXRoUGFyYW1zID0ge307XG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0ge307XG4gICAgT2JqZWN0LmtleXModXJsUGFyYW1zKS5mb3JFYWNoKGsgPT4ge1xuICAgICAgaWYgKHRva2Vucy5oYXMoaykpIHtcbiAgICAgICAgaWYgKHVybFBhcmFtc1trXSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIHBhdGhQYXJhbXNba10gPVxuICAgICAgICAgICAgQXJyYXkuaXNBcnJheSh1cmxQYXJhbXNba10pID9cbiAgICAgICAgICAgICAgdXJsUGFyYW1zW2tdLm1hcChTdHJpbmcpXG4gICAgICAgICAgICA6IFN0cmluZyh1cmxQYXJhbXNba10pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VhcmNoUGFyYW1zW2tdID0gdXJsUGFyYW1zW2tdO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHVybEJhc2UgPSBnZXRVcmxCYXNlKHRoaXMucGF0aCkocGF0aFBhcmFtcyk7XG4gICAgaWYgKE9iamVjdC5rZXlzKHNlYXJjaFBhcmFtcykubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy51cmxQcmVmaXh9JHt1cmxCYXNlfT8ke3RoaXMuc2VhcmNoVG9TdHJpbmcoc2VhcmNoUGFyYW1zKX1gO1xuICAgIH1cbiAgICByZXR1cm4gYCR7dGhpcy51cmxQcmVmaXh9JHt1cmxCYXNlfWA7XG4gIH1cblxuICAvKiogRW5jb2RlIHRoZSB1cmwgc2VhcmNoUGFyYW1zICovXG4gIHNlYXJjaFRvU3RyaW5nKHNlYXJjaFBhcmFtcykge1xuICAgIHJldHVybiBwYXJhbXNUb1N0cmluZyhzZWFyY2hQYXJhbXMpO1xuICB9XG5cbiAgZ2V0SGVhZGVycyhoZWFkZXJzKSB7XG4gICAgcmV0dXJuIGhlYWRlcnM7XG4gIH1cblxuICAvKiogSW5pdCBvcHRpb25zIGZvciBmZXRjaCAtIHJ1biBhdCBmZXRjaCAqL1xuICBhc3luYyBnZXRSZXF1ZXN0SW5pdChib2R5KSB7XG4gICAgY29uc3QgYm9keUlzUG9qbyA9IGlzUG9qbyhib2R5KTtcbiAgICBpZiAoYm9keUlzUG9qbykge1xuICAgICAgYm9keSA9IEpTT04uc3RyaW5naWZ5KGJvZHkpO1xuICAgIH1cbiAgICBjb25zdCBpbml0ID0ge1xuICAgICAgLi4udGhpcy5yZXF1ZXN0SW5pdCxcbiAgICAgIG1ldGhvZDogdGhpcy5tZXRob2QsXG4gICAgICBzaWduYWw6IHRoaXMuc2lnbmFsLFxuICAgICAgYm9keSxcbiAgICB9O1xuICAgIGlmICghYm9keSB8fCBib2R5SXNQb2pvKSB7XG4gICAgICBpbml0LmhlYWRlcnMgPSB7XG4gICAgICAgIC8vIGRlZmF1bHQgdG8gYXBwbGljYXRpb24vanNvbiBidXQgYWxsb3cgdXNlciBleHBsaWNpdCBvdmVycmlkZXNcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgLi4uaW5pdC5oZWFkZXJzLFxuICAgICAgfTtcbiAgICB9XG4gICAgaW5pdC5oZWFkZXJzID0gYXdhaXQgdGhpcy5nZXRIZWFkZXJzKGluaXQuaGVhZGVycyk7XG4gICAgcmV0dXJuIGluaXQ7XG4gIH1cblxuICAvKiogUGVyZm9ybSBuZXR3b3JrIHJlcXVlc3QgYW5kIHJlc29sdmUgd2l0aCBIVFRQIFJlc3BvbnNlICovXG4gIGZldGNoUmVzcG9uc2UoaW5wdXQsIGluaXQpIHtcbiAgICByZXR1cm4gZmV0Y2goaW5wdXQsIGluaXQpXG4gICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgICB0aHJvdyBuZXcgTmV0d29ya0Vycm9yKHJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgLy8gZW5zdXJlIENPUlMsIG5ldHdvcmsgZG93biwgYW5kIHBhcnNlIGVycm9ycyBhcmUgc3RpbGwgY2F1Z2h0IGJ5IE5ldHdvcmtFcnJvckJvdW5kYXJ5XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFR5cGVFcnJvcikge1xuICAgICAgICAgIGVycm9yLnN0YXR1cyA9IDUwMDtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pO1xuICB9XG5cbiAgcGFyc2VSZXNwb25zZShyZXNwb25zZSkge1xuICAgIC8vIHRoaXMgc2hvdWxkIG5vdCBoYXZlIGFueSBjb250ZW50IHRvIHJlYWRcbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAyMDQpIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG4gICAgaWYgKCFyZXNwb25zZS5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJyk/LmluY2x1ZGVzKCdqc29uJykpIHtcbiAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCkudGhlbih0ZXh0ID0+IHtcbiAgICAgICAgLy8gc3RyaW5nIG9yICdub3Qgc2V0JyBzY2hlbWEsIGFyZSB2YWxpZFxuICAgICAgICAvLyB3aGVuIG92ZXJyaWRpbmcgcHJvY2VzcyB0aGV5IG1pZ2h0IGhhbmRsZSBvdGhlciBjYXNlcywgc28gd2UgZG9uJ3Qgd2FudCB0byBibG9jayBvbiBvdXIgbG9naWNcbiAgICAgICAgaWYgKFxuICAgICAgICAgIFsnc3RyaW5nJywgJ3VuZGVmaW5lZCddLmluY2x1ZGVzKHR5cGVvZiB0aGlzLnNjaGVtYSkgfHxcbiAgICAgICAgICB0aGlzLnNjaGVtYSA9PT0gbnVsbCB8fFxuICAgICAgICAgIHRoaXMucHJvY2VzcyAhPT0gUmVzdEVuZHBvaW50LnByb3RvdHlwZS5wcm9jZXNzXG4gICAgICAgIClcbiAgICAgICAgICByZXR1cm4gdGV4dDtcblxuICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBOZXR3b3JrRXJyb3IocmVzcG9uc2UpO1xuICAgICAgICBlcnJvci5zdGF0dXMgPSA0MDQ7XG4gICAgICAgIGVycm9yLm1lc3NhZ2UgPSBgVW5leHBlY3RlZCB0ZXh0IHJlc3BvbnNlIGZvciBzY2hlbWEgJHt0aGlzLnNjaGVtYX1gO1xuICAgICAgICAvLyBjdXN0b20gZGV2LW9ubHkgbWVzc2FnZXMgZm9yIG1vcmUgZGV0YWlsZWQgY2F1c2VcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhKFxuICAgICAgICAgICAgICByZXNwb25zZS5oZWFkZXJzLmdldCgnY29udGVudC10eXBlJyk/LmluY2x1ZGVzKCdodG1sJykgfHxcbiAgICAgICAgICAgICAgdGV4dC5zdGFydHNXaXRoKCc8IWRvY3R5cGUgaHRtbD4nKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgaWYgKHRyeVBhcnNlKHRleHQpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgZXJyb3IubWVzc2FnZSA9IGBcImNvbnRlbnQtdHlwZVwiIGhlYWRlciBkb2VzIG5vdCBpbmNsdWRlIFwianNvblwiLCBidXQgSlNPTiByZXNwb25zZSBmb3VuZC5cblNlZSBodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjNDYyNyBmb3IgaW5mb3JtYXRpb24gb24gSlNPTiByZXNwb25zZXNcblxuVXNpbmcgcGFyc2VkIEpTT04uXG5JZiB0ZXh0IGNvbnRlbnQgd2FzIGV4cGVjdGVkIHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhcnNlUmVzcG9uc2VgO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlcnJvci5tZXNzYWdlID0gYFVuZXhwZWN0ZWQgaHRtbCByZXNwb25zZSBmb3Igc2NoZW1hICR7dGhpcy5zY2hlbWF9XG5UaGlzIGxpa2VseSBtZWFucyBubyBBUEkgZW5kcG9pbnQgd2FzIGNvbmZpZ3VyZWQgZm9yIHRoaXMgcmVxdWVzdCwgcmVzdWx0aW5nIGluIGFuIEhUTUwgZmFsbGJhY2suXG5cblJlc3BvbnNlIChmaXJzdCAzMDAgY2hhcmFjdGVycyk6ICR7dGV4dC5zdWJzdHJpbmcoMCwgMzAwKX1gO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzcG9uc2UuanNvbigpLmNhdGNoKGVycm9yID0+IHtcbiAgICAgIGVycm9yLnN0YXR1cyA9IDQwMDtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvY2Vzcyh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGVycm9yUG9saWN5KGVycm9yKSB7XG4gICAgcmV0dXJuIGVycm9yLnN0YXR1cyA+PSA1MDAgPyAnc29mdCcgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgcGF0aFJlZ2V4KCkge1xuICAgIHJldHVybiBwYXRoVG9SZWdleHAodGhpcy5wYXRoKS5yZWdleHA7XG4gIH1cblxuICB0ZXN0S2V5KGtleSkge1xuICAgIGNvbnN0IHByZWZpeCA9IHRoaXMubWV0aG9kICsgJyAnICsgdGhpcy51cmxQcmVmaXg7XG4gICAgaWYgKCFrZXkuc3RhcnRzV2l0aChwcmVmaXgpKSByZXR1cm4gZmFsc2U7XG4gICAgbGV0IGxhc3RRdWVzdGlvbiA9IGtleS5sYXN0SW5kZXhPZignPycpO1xuICAgIGlmIChsYXN0UXVlc3Rpb24gPT09IC0xKSBsYXN0UXVlc3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMucGF0aFJlZ2V4LnRlc3Qoa2V5LnN1YnN0cmluZyhwcmVmaXgubGVuZ3RoLCBsYXN0UXVlc3Rpb24pKTtcbiAgfVxuXG4gIGV4dGVuZChvcHRpb25zKSB7XG4gICAgLy8gbWFrZSBhIGNvbnN0cnVjdG9yL3Byb3RvdHlwZSBiYXNlZCBvZmYgdGhpc1xuICAgIC8vIGV4dGVuZCBmcm9tIGl0IGFuZCBpbml0IHdpdGggb3B0aW9ucyBzZW50XG4gICAgY2xhc3MgRSBleHRlbmRzIHRoaXMuY29uc3RydWN0b3Ige31cblxuICAgIE9iamVjdC5hc3NpZ24oRS5wcm90b3R5cGUsIHRoaXMpO1xuXG4gICAgcmV0dXJuIG5ldyBFKFxuICAgICAgLy8gIGZldGNoIGdldCBvdmVycmlkZGVuIGJ5IGZ1bmN0aW9uIHByb3RvdHlwZSwgc28gd2UgbXVzdCBzZXQgaXQgZXhwbGljaXRseSBldmVyeSB0aW1lXG4gICAgICB7IGZldGNoOiB0aGlzLmZldGNoLCAuLi5vcHRpb25zIH0sXG4gICAgKTtcbiAgfVxuXG4gIHBhZ2luYXRlZChyZW1vdmVDdXJzb3IpIHtcbiAgICBpZiAodHlwZW9mIHJlbW92ZUN1cnNvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IHJlbW92ZUN1cnNvcjtcbiAgICAgIHJlbW92ZUN1cnNvciA9ICh7IC4uLnBhcmFtcyB9KSA9PiB7XG4gICAgICAgIGRlbGV0ZSBwYXJhbXNbZmllbGROYW1lXTtcbiAgICAgICAgcmV0dXJuIFtwYXJhbXNdO1xuICAgICAgfTtcbiAgICB9XG4gICAgbGV0IGZvdW5kID0gZmFsc2U7XG4gICAgY29uc3QgY3JlYXRlUGFnaW5hdGVkU2NoZW1hID0gY29sbGVjdGlvbiA9PiB7XG4gICAgICBmb3VuZCA9IHRydWU7XG4gICAgICByZXR1cm4gY3JlYXRlUGFnaW5hdGlvblNjaGVtYShyZW1vdmVDdXJzb3IsIGNvbGxlY3Rpb24pO1xuICAgIH07XG4gICAgY29uc3QgbmV3U2NoZW1hID0gbWFwQ29sbGVjdGlvbih0aGlzLnNjaGVtYSwgY3JlYXRlUGFnaW5hdGVkU2NoZW1hKTtcblxuICAgIGlmICghZm91bmQpIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBDb2xsZWN0aW9uJyk7XG4gICAgY29uc3Qgc3VwID0gdGhpcztcblxuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBzY2hlbWE6IG5ld1NjaGVtYSxcbiAgICAgIGtleSguLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiBzdXAua2V5LmNhbGwodGhpcywgLi4ucmVtb3ZlQ3Vyc29yKC4uLmFyZ3MpKTtcbiAgICAgIH0sXG4gICAgICBuYW1lOiB0aGlzLm5hbWUgKyAnLmdldFBhZ2UnLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IGdldFBhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFnaW5hdGVkKHRoaXMucGFnaW5hdGlvbkZpZWxkKTtcbiAgfVxuXG4gIGdldCBwdXNoKCkge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHNjaGVtYTogZXh0cmFjdENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIHMgPT4gcy5wdXNoKSxcbiAgICAgIG5hbWU6IHRoaXMubmFtZSArICcuY3JlYXRlJyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCB1bnNoaWZ0KCkge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHNjaGVtYTogZXh0cmFjdENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIHMgPT4gcy51bnNoaWZ0KSxcbiAgICAgIG5hbWU6IHRoaXMubmFtZSArICcuY3JlYXRlJyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBhc3NpZ24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5kKHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgc2NoZW1hOiBleHRyYWN0Q29sbGVjdGlvbih0aGlzLnNjaGVtYSwgcyA9PiBzLmFzc2lnbiksXG4gICAgICBuYW1lOiB0aGlzLm5hbWUgKyAnLmNyZWF0ZScsXG4gICAgfSk7XG4gIH1cblxuICBnZXQgcmVtb3ZlKCkge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICBzY2hlbWE6IGV4dHJhY3RDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBzID0+IHMucmVtb3ZlKSxcbiAgICAgIG5hbWU6IHRoaXMubmFtZSArICcucmVtb3ZlJyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBtb3ZlKCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICBzY2hlbWE6IGV4dHJhY3RDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBzID0+IHMubW92ZSksXG4gICAgICBzZWFyY2hQYXJhbXM6IHVuZGVmaW5lZCxcbiAgICAgIG5hbWU6IHRoaXMubmFtZSArICcucGFydGlhbFVwZGF0ZScsXG4gICAgfTtcbiAgICBpZiAodGhpcy5tb3ZlUGF0aCkgb3B0aW9ucy5wYXRoID0gdGhpcy5tb3ZlUGF0aDtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQob3B0aW9ucyk7XG4gIH1cbn1cblxuY29uc3QgdHJ5UGFyc2UgPSBpbnB1dCA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoaW5wdXQpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLFNBQVNBLFFBQVEsUUFBUSx1QkFBdUI7QUFDaEQsU0FBU0MsWUFBWSxRQUFRLGdCQUFnQjtBQUU3QyxPQUFPQyxpQkFBaUIsTUFBTSx3QkFBd0I7QUFDdEQsT0FBT0MsYUFBYSxNQUFNLG9CQUFvQjtBQUM5QyxPQUFPQyxZQUFZLE1BQU0sbUJBQW1CO0FBQzVDLFNBQVNDLHNCQUFzQixRQUFRLDJCQUEyQjtBQUNsRSxPQUFPQyxjQUFjLE1BQU0scUJBQXFCO0FBQ2hELFNBQVNDLFVBQVUsRUFBRUMsWUFBWSxFQUFFQyxNQUFNLFFBQVEsa0JBQWtCOztBQUVuRTtBQUNBO0FBQ0E7QUFDQTtBQUhBLElBQUFDLFFBQUEsZ0JBQUFDLDBCQUFBO0FBSUEsZUFBZSxNQUFNQyxZQUFZLFNBQVNaLFFBQVEsQ0FBQztFQUVqRGEsV0FBV0EsQ0FBQ0MsT0FBTyxFQUFF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
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1Jlc3RFbmRwb2ludFR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgRW5kcG9pbnRFeHRyYU9wdGlvbnMsXG4gIEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsXG4gIFNjaGVtYSxcbiAgRmV0Y2hGdW5jdGlvbixcbiAgUmVzb2x2ZVR5cGUsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmltcG9ydCB0eXBlIHsgRXh0cmFjdENvbGxlY3Rpb24gfSBmcm9tICcuL2V4dHJhY3RDb2xsZWN0aW9uLmpzJztcbmltcG9ydCB7XG4gIE9wdGlvbnNUb0JvZHlBcmd1bWVudCxcbiAgT3B0aW9uc1RvRnVuY3Rpb24sXG59IGZyb20gJy4vT3B0aW9uc1RvRnVuY3Rpb24uanMnO1xuaW1wb3J0IHsgUGF0aEFyZ3MgfSBmcm9tICcuL3BhdGhUeXBlcy5qcyc7XG5pbXBvcnQgeyBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uIH0gZnJvbSAnLi9SZXN0RW5kcG9pbnRUeXBlSGVscC5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEluc3RhbmNlQmFzZTxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBNIGV4dGVuZHMgYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIG1ldGhvZD86IHN0cmluZztcbiAgfSA9IHsgcGF0aDogc3RyaW5nIH0sXG4+IGV4dGVuZHMgRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZTxGLCBTLCBNPiB7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjYm9keSAqL1xuICByZWFkb25seSBib2R5PzogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IGFueTtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNzZWFyY2hQYXJhbXMgKi9cbiAgcmVhZG9ubHkgc2VhcmNoUGFyYW1zPzogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2VhcmNoUGFyYW1zJ11cbiAgOiAvLyB1bmtub3duIGlzIGlkZW50aXR5IHdpdGggJyYnIHR5cGUgb3BlcmF0b3JcbiAgICB1bmtub3duO1xuXG4gIC8qKiBQYXR0ZXJuIHRvIGNvbnN0cnVjdCB1cmwgYmFzZWQgb24gVXJsIFBhcmFtZXRlcnNcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhdGhcbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IE9bJ3BhdGgnXTtcbiAgLyoqIFByZXBlbmRlZCB0byBhbGwgdXJsc1xuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjdXJsUHJlZml4XG4gICAqL1xuICByZWFkb25seSB1cmxQcmVmaXg6IHN0cmluZztcbiAgcmVhZG9ubHkgcmVxdWVzdEluaXQ6IFJlcXVlc3RJbml0O1xuICAvKiogSFRUUCByZXF1ZXN0IG1ldGhvZFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjbWV0aG9kXG4gICAqL1xuICByZWFkb25seSBtZXRob2Q6IChPICYgeyBtZXRob2Q6IHN0cmluZyB9KVsnbWV0aG9kJ107XG4gIHJlYWRvbmx5IHNpZ25hbDogQWJvcnRTaWduYWwgfCB1bmRlZmluZWQ7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFnaW5hdGlvbkZpZWxkICovXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcblxuICAvKiBmZXRjaCBsaWZlY3ljbGVzICovXG4gIC8qIGJlZm9yZS1mZXRjaCAqL1xuICAvKiogQnVpbGRzIHRoZSBVUkwgdG8gZmV0Y2hcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3VybFxuICAgKi9cbiAgdXJsKC4uLmFyZ3M6IFBhcmFtZXRlcnM8Rj4pOiBzdHJpbmc7XG4gIC8qKiBFbmNvZGUgdGhlIHNlYXJjaFBhcmFtcyBjb21wb25lbnQgb2YgdGhlIHVybFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjc2VhcmNoVG9TdHJpbmdcbiAgICovXG4gIHNlYXJjaFRvU3RyaW5nKHNlYXJjaFBhcmFtczogUmVjb3JkPHN0cmluZywgYW55Pik6IHN0cmluZztcbiAgLyoqIFByZXBhcmVzIFJlcXVlc3RJbml0IHVzZWQgaW4gZmV0Y2guIFRoaXMgaXMgc2VudCB0byBmZXRjaFJlc3BvbnNlKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2dldFJlcXVlc3RJbml0XG4gICAqL1xuICBnZXRSZXF1ZXN0SW5pdChcbiAgICB0aGlzOiBhbnksXG4gICAgYm9keT86IFJlcXVlc3RJbml0Wydib2R5J10gfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgKTogUHJvbWlzZTxSZXF1ZXN0SW5pdD4gfCBSZXF1ZXN0SW5pdDtcbiAgLyoqIENhbGxlZCBieSBnZXRSZXF1ZXN0SW5pdCB0byBkZXRlcm1pbmUgSFRUUCBIZWFkZXJzXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNnZXRIZWFkZXJzXG4gICAqL1xuICBnZXRIZWFkZXJzKGhlYWRlcnM6IEhlYWRlcnNJbml0KTogUHJvbWlzZTxIZWFkZXJzSW5pdD4gfCBIZWFkZXJzSW5pdDtcbiAgLyogYWZ0ZXItZmV0Y2ggKi9cbiAgLyoqIFBlcmZvcm1zIHRoZSBmZXRjaCBjYWxsXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNmZXRjaFJlc3BvbnNlXG4gICAqL1xuICBmZXRjaFJlc3BvbnNlKGlucHV0OiBSZXF1ZXN0SW5mbywgaW5pdDogUmVxdWVzdEluaXQpOiBQcm9taXNlPFJlc3BvbnNlPjtcbiAgLyoqIFRha2VzIHRoZSBSZXNwb25zZSBhbmQgcGFyc2VzIHZpYSAudGV4dCgpIG9yIC5qc29uKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhcnNlUmVzcG9uc2VcbiAgICovXG4gIHBhcnNlUmVzcG9uc2UocmVzcG9uc2U6IFJlc3BvbnNlKTogUHJvbWlzZTxhbnk+O1xuICAvKiogUGVyZm9ybSBhbnkgdHJhbnNmb3JtcyB3aXRoIHRoZSBwYXJzZWQgcmVzdWx0LlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcHJvY2Vzc1xuICAgKi9cbiAgcHJvY2Vzcyh2YWx1ZTogYW55LCAuLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KTogUmVzb2x2ZVR5cGU8Rj47XG5cbiAgLyogdXRpbGl0aWVzICovXG4gIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIHByb3ZpZGVkIChmZXRjaCkga2V5IG1hdGNoZXMgdGhpcyBlbmRwb2ludC5cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3Rlc3RLZXlcbiAgICovXG4gIHRlc3RLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuO1xuXG4gIC8qIGV4dGVuZGVycyAqL1xuICAvLyBUT0RPOiBmaWd1cmUgb3V0IGJldHRlciB3YXkgdGhhbiB3cmFwcGluZyB3aG9sZSBvcHRpb25zIGluIFJlYWRvbmx5PD4gKyBtYWtpbmcgTyBleHRlbmQgZnJvbSB7fVxuICAvLyAgICAgICB0aGlzIGlzIGp1c3QgYSBoYWNrIHRvIGhhbmRsZSB3aGVuIG5vIG1lbWJlcnMgb2YgUGFydGlhbFJlc3RHZW5lcmljcyBhcmUgcHJlc2VudFxuICAvLyAgICAgICBOb3RlOiBVc2luZyBvdmVybG9hZGluZyAobGlrZSBwYWdpbmF0ZWQgZGlkKSBzdHJ1Z2dsZXMgYmVjYXVzZSB0eXBlc2NyaXB0IGRvZXMgbm90IGhhdmUgYSBjbGVhciB3YXkgb2YgZGlzdGluZ3Vpc2hpbmcgb25lXG4gIC8vICAgICAgIHNob3VsZCBiZSB1c2VkIGZyb20gdGhlIG90aGVyIChkdWUgdG8gc2FtZSBwcm9ibGVtIHdpdGggZXZlcnkgbWVtYmVyIGJlaW5nIHBhcnRpYWwpXG4gIC8qKiBDcmVhdGVzIGEgY2hpbGQgZW5kcG9pbnQgdGhhdCBpbmhlcml0cyBmcm9tIHRoaXMgd2hpbGUgb3ZlcnJpZGluZyBwcm92aWRlZCBgb3B0aW9uc2AuXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNleHRlbmRcbiAgICovXG4gIGV4dGVuZDxcbiAgICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZSxcbiAgICBFeHRlbmRPcHRpb25zIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB8IHt9LFxuICA+KFxuICAgIHRoaXM6IEUsXG4gICAgb3B0aW9uczogUmVhZG9ubHk8XG4gICAgICBSZXN0RW5kcG9pbnRFeHRlbmRPcHRpb25zPEV4dGVuZE9wdGlvbnMsIEUsIEY+ICYgRXh0ZW5kT3B0aW9uc1xuICAgID4sXG4gICk6IFJlc3RFeHRlbmRlZEVuZHBvaW50PEV4dGVuZE9wdGlvbnMsIEU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RJbnN0YW5jZTxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBNIGV4dGVuZHMgYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIG1ldGhvZD86IHN0cmluZztcbiAgICBwYWdpbmF0aW9uRmllbGQ/OiBzdHJpbmc7XG4gIH0gPSB7IHBhdGg6IHN0cmluZyB9LFxuPiBleHRlbmRzIFJlc3RJbnN0YW5jZUJhc2U8RiwgUywgTSwgTz4ge1xuICAvKiogQ3JlYXRlcyBhbiBFbmRwb2ludCB0byBhcHBlbmQgdGhlIG5leHQgcGFnZSBleHRlbmRpbmcgYSBsaXN0IGZvciBwYWdpbmF0aW9uXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYWdpbmF0ZWRcbiAgICovXG4gIHBhZ2luYXRlZDxcbiAgICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZTxGZXRjaEZ1bmN0aW9uLCBhbnksIHVuZGVmaW5lZD4sXG4gICAgQSBleHRlbmRzIGFueVtdLFxuICA+KFxuICAgIHRoaXM6IEUsXG4gICAgcmVtb3ZlQ3Vyc29yOiAoLi4uYXJnczogQSkgPT4gcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dLFxuICApOiBQYWdpbmF0aW9uRW5kcG9pbnQ8RSwgQT47XG4gIHBhZ2luYXRlZDxcbiAgICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZTxGZXRjaEZ1bmN0aW9uLCBhbnksIHVuZGVmaW5lZD4sXG4gICAgQyBleHRlbmRzIHN0cmluZyxcbiAgPihcbiAgICB0aGlzOiBFLFxuICAgIGN1cnNvckZpZWxkOiBDLFxuICApOiBQYWdpbmF0aW9uRmllbGRFbmRwb2ludDxFLCBDPjtcbiAgLyoqIENvbmNhdGluYXRlIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0cyAoR0VUKVxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjZ2V0UGFnZVxuICAgKi9cbiAgZ2V0UGFnZTogJ3BhZ2luYXRpb25GaWVsZCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBPWydwYWdpbmF0aW9uRmllbGQnXSBleHRlbmRzIHN0cmluZyA/XG4gICAgICBQYWdpbmF0aW9uRmllbGRFbmRwb2ludDxcbiAgICAgICAgRiAmIHsgc2NoZW1hOiBTOyBzaWRlRWZmZWN0OiBNIH0gJiBPLFxuICAgICAgICBPWydwYWdpbmF0aW9uRmllbGQnXVxuICAgICAgPlxuICAgIDogdW5kZWZpbmVkXG4gIDogdW5kZWZpbmVkO1xuICAvKiogQ3JlYXRlIGEgbmV3IGl0ZW0gKFBPU1QpIGFuZCBgcHVzaGAgdG8gdGhlIGVuZFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcHVzaFxuICAgKi9cbiAgcHVzaDogQWRkRW5kcG9pbnQ8XG4gICAgRixcbiAgICBFeHRyYWN0Q29sbGVjdGlvbjxTPlsncHVzaCddLFxuICAgIEV4Y2x1ZGU8TywgJ2JvZHknIHwgJ21ldGhvZCc+ICYge1xuICAgICAgYm9keTpcbiAgICAgICAgfCBPcHRpb25zVG9BZGRlckJvZHlBcmd1bWVudDxPPlxuICAgICAgICB8IE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8+W11cbiAgICAgICAgfCBGb3JtRGF0YTtcbiAgICB9XG4gID47XG4gIC8qKiBDcmVhdGUgYSBuZXcgaXRlbSAoUE9TVCkgYW5kIGB1bnNoaWZ0YCB0byB0aGUgYmVnaW5uaW5nXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCN1bnNoaWZ0XG4gICAqL1xuICB1bnNoaWZ0OiBBZGRFbmRwb2ludDxcbiAgICBGLFxuICAgIEV4dHJhY3RDb2xsZWN0aW9uPFM+Wyd1bnNoaWZ0J10sXG4gICAgRXhjbHVkZTxPLCAnYm9keScgfCAnbWV0aG9kJz4gJiB7XG4gICAgICBib2R5OlxuICAgICAgICB8IE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8+XG4gICAgICAgIHwgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8Tz5bXVxuICAgICAgICB8IEZvcm1EYXRhO1xuICAgIH1cbiAgPjtcbiAgLyoqIENyZWF0ZSBuZXcgaXRlbShzKSAoUE9TVCkgYW5kIGBPYmplY3QuYXNzaWduYCBtZXJnZVxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjYXNzaWduXG4gICAqL1xuICBhc3NpZ246IEFkZEVuZHBvaW50PFxuICAgIEYsXG4gICAgRXh0cmFjdENvbGxlY3Rpb248Uz4sXG4gICAgRXhjbHVkZTxPLCAnYm9keScgfCAnbWV0aG9kJz4gJiB7XG4gICAgICBib2R5OiBSZWNvcmQ8c3RyaW5nLCBPcHRpb25zVG9BZGRlckJvZHlBcmd1bWVudDxPPj4gfCBGb3JtRGF0YTtcbiAgICB9XG4gID47XG4gIC8qKiBSZW1vdmUgaXRlbShzKSAoUEFUQ0gpIGZyb20gY29sbGVjdGlvblxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcmVtb3ZlXG4gICAqL1xuICByZW1vdmU6IFJlbW92ZUVuZHBvaW50PFxuICAgIEYsXG4gICAgRXh0cmFjdENvbGxlY3Rpb248Uz5bJ3JlbW92ZSddLFxuICAgIEV4Y2x1ZGU8TywgJ2JvZHknIHwgJ21ldGhvZCc+ICYge1xuICAgICAgYm9keTpcbiAgICAgICAgfCBPcHRpb25zVG9BZGRlckJvZHlBcmd1bWVudDxPPlxuICAgICAgICB8IE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8+W11cbiAgICAgICAgfCBGb3JtRGF0YTtcbiAgICB9XG4gID47XG59XG5cbmV4cG9ydCB0eXBlIFJlc3RFbmRwb2ludEV4dGVuZE9wdGlvbnM8XG4gIE8gZXh0ZW5kcyBQYXJ0aWFsUmVzdEdlbmVyaWNzLFxuICBFIGV4dGVuZHMgeyBib2R5PzogYW55OyBwYXRoPzogc3RyaW5nOyBzY2hlbWE/OiBTY2hlbWE7IG1ldGhvZD86IHN0cmluZyB9LFxuICBGIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbixcbj4gPSBSZXN0RW5kcG9pbnRPcHRpb25zPFxuICBPcHRpb25zVG9GdW5jdGlvbjxPLCBFLCBGPixcbiAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gRXh0cmFjdDxPWydzY2hlbWEnXSwgU2NoZW1hIHwgdW5kZWZpbmVkPlxuICA6IEVbJ3NjaGVtYSddXG4+ICZcbiAgUGFydGlhbDxcbiAgICBPbWl0PFxuICAgICAgRSxcbiAgICAgIEtleW9mUmVzdEVuZHBvaW50IHwga2V5b2YgUGFydGlhbFJlc3RHZW5lcmljcyB8IGtleW9mIFJlc3RFbmRwb2ludE9wdGlvbnNcbiAgICA+XG4gID47XG5cbnR5cGUgT3B0aW9uc1RvUmVzdEVuZHBvaW50PFxuICBPIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyxcbiAgRSBleHRlbmRzIFJlc3RJbnN0YW5jZUJhc2UgJiB7IGJvZHk/OiBhbnk7IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZyB9LFxuICBGIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbixcbj4gPVxuICAncGF0aCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBSZXN0VHlwZTxcbiAgICAgICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgICAgICBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgOiBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgICBPcHRpb25zVG9Cb2R5QXJndW1lbnQ8XG4gICAgICAgICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPIDogRSxcbiAgICAgICAgJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXVxuICAgICAgPixcbiAgICAgICdzY2hlbWEnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NjaGVtYSddIDogRVsnc2NoZW1hJ10sXG4gICAgICAnc2lkZUVmZmVjdCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgRXh0cmFjdDxPWydzaWRlRWZmZWN0J10sIGJvb2xlYW4gfCB1bmRlZmluZWQ+XG4gICAgICA6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT5cbiAgICAgIDogRVsnc2lkZUVmZmVjdCddLFxuICAgICAgT1sncHJvY2VzcyddIGV4dGVuZHMge30gPyBSZXR1cm5UeXBlPE9bJ3Byb2Nlc3MnXT4gOiBSZXNvbHZlVHlwZTxGPixcbiAgICAgIHtcbiAgICAgICAgcGF0aDogRXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD47XG4gICAgICAgIGJvZHk6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J10gOiBFWydib2R5J107XG4gICAgICAgIHNlYXJjaFBhcmFtczogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2VhcmNoUGFyYW1zJ11cbiAgICAgICAgOiBFWydzZWFyY2hQYXJhbXMnXTtcbiAgICAgICAgbWV0aG9kOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddO1xuICAgICAgICBwYWdpbmF0aW9uRmllbGQ6ICdwYWdpbmF0aW9uRmllbGQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgICAgT1sncGFnaW5hdGlvbkZpZWxkJ11cbiAgICAgICAgOiBFWydwYWdpbmF0aW9uRmllbGQnXTtcbiAgICAgIH1cbiAgICA+XG4gIDogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgUmVzdFR5cGU8XG4gICAgICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICBPWydzZWFyY2hQYXJhbXMnXSBleHRlbmRzIHVuZGVmaW5lZCA/XG4gICAgICAgICAgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxFeGNsdWRlPEVbJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgIDogUGF0aEFyZ3M8RXhjbHVkZTxFWydwYXRoJ10sIHVuZGVmaW5lZD4+LFxuICAgICAgT3B0aW9uc1RvQm9keUFyZ3VtZW50PFxuICAgICAgICBPLFxuICAgICAgICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddXG4gICAgICA+LFxuICAgICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAgICdzaWRlRWZmZWN0JyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICBFeHRyYWN0PE9bJ3NpZGVFZmZlY3QnXSwgYm9vbGVhbiB8IHVuZGVmaW5lZD5cbiAgICAgIDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gTWV0aG9kVG9TaWRlPE9bJ21ldGhvZCddPlxuICAgICAgOiBFWydzaWRlRWZmZWN0J10sXG4gICAgICBPWydwcm9jZXNzJ10gZXh0ZW5kcyB7fSA/IFJldHVyblR5cGU8T1sncHJvY2VzcyddPiA6IFJlc29sdmVUeXBlPEY+LFxuICAgICAge1xuICAgICAgICBwYXRoOiBFWydwYXRoJ107XG4gICAgICAgIGJvZHk6IE9bJ2JvZHknXTtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gPyBPWydzZWFyY2hQYXJhbXMnXVxuICAgICAgICA6IEVbJ3NlYXJjaFBhcmFtcyddO1xuICAgICAgICBtZXRob2Q6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ107XG4gICAgICAgIHBhZ2luYXRpb25GaWVsZDogJ3BhZ2luYXRpb25GaWVsZCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgICBPWydwYWdpbmF0aW9uRmllbGQnXVxuICAgICAgICA6IEV4dHJhY3Q8RVsncGFnaW5hdGlvbkZpZWxkJ10sIHN0cmluZz47XG4gICAgICB9XG4gICAgPlxuICA6ICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgUmVzdFR5cGU8XG4gICAgICBPWydzZWFyY2hQYXJhbXMnXSBleHRlbmRzIHVuZGVmaW5lZCA/XG4gICAgICAgIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICAgIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxcbiAgICAgICAgRSxcbiAgICAgICAgJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXVxuICAgICAgPixcbiAgICAgICdzY2hlbWEnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NjaGVtYSddIDogRVsnc2NoZW1hJ10sXG4gICAgICAnc2lkZUVmZmVjdCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgRXh0cmFjdDxPWydzaWRlRWZmZWN0J10sIGJvb2xlYW4gfCB1bmRlZmluZWQ+XG4gICAgICA6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT5cbiAgICAgIDogRVsnc2lkZUVmZmVjdCddLFxuICAgICAgT1sncHJvY2VzcyddIGV4dGVuZHMge30gPyBSZXR1cm5UeXBlPE9bJ3Byb2Nlc3MnXT4gOiBSZXNvbHZlVHlwZTxGPixcbiAgICAgIHtcbiAgICAgICAgcGF0aDogRVsncGF0aCddO1xuICAgICAgICBib2R5OiBFWydib2R5J107XG4gICAgICAgIHNlYXJjaFBhcmFtczogT1snc2VhcmNoUGFyYW1zJ107XG4gICAgICAgIG1ldGhvZDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXTtcbiAgICAgICAgcGFnaW5hdGlvbkZpZWxkOiAncGFnaW5hdGlvbkZpZWxkJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICAgIE9bJ3BhZ2luYXRpb25GaWVsZCddXG4gICAgICAgIDogRXh0cmFjdDxFWydwYWdpbmF0aW9uRmllbGQnXSwgc3RyaW5nPjtcbiAgICAgIH1cbiAgICA+XG4gIDogUmVzdEluc3RhbmNlPFxuICAgICAgRixcbiAgICAgICdzY2hlbWEnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NjaGVtYSddIDogRVsnc2NoZW1hJ10sXG4gICAgICAnc2lkZUVmZmVjdCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgRXh0cmFjdDxPWydzaWRlRWZmZWN0J10sIGJvb2xlYW4gfCB1bmRlZmluZWQ+XG4gICAgICA6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT5cbiAgICAgIDogRVsnc2lkZUVmZmVjdCddLFxuICAgICAge1xuICAgICAgICBwYXRoOiAncGF0aCcgZXh0ZW5kcyBrZXlvZiBPID8gRXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD5cbiAgICAgICAgOiBFWydwYXRoJ107XG4gICAgICAgIGJvZHk6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J10gOiBFWydib2R5J107XG4gICAgICAgIHNlYXJjaFBhcmFtczogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2VhcmNoUGFyYW1zJ11cbiAgICAgICAgOiBFWydzZWFyY2hQYXJhbXMnXTtcbiAgICAgICAgbWV0aG9kOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddO1xuICAgICAgICBwYWdpbmF0aW9uRmllbGQ6ICdwYWdpbmF0aW9uRmllbGQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgICAgT1sncGFnaW5hdGlvbkZpZWxkJ11cbiAgICAgICAgOiBFWydwYWdpbmF0aW9uRmllbGQnXTtcbiAgICAgIH1cbiAgICA+O1xuXG5leHBvcnQgdHlwZSBSZXN0RXh0ZW5kZWRFbmRwb2ludDxcbiAgTyBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIEUgZXh0ZW5kcyBSZXN0SW5zdGFuY2VCYXNlICYgeyBnZXRQYWdlPzogdW5rbm93biB9LFxuPiA9IE9wdGlvbnNUb1Jlc3RFbmRwb2ludDxcbiAgTyxcbiAgRSAmXG4gICAgKEUgZXh0ZW5kcyB7IGdldFBhZ2U6IHsgcGFnaW5hdGlvbkZpZWxkOiBzdHJpbmcgfSB9ID9cbiAgICAgIHsgcGFnaW5hdGlvbkZpZWxkOiBFWydnZXRQYWdlJ11bJ3BhZ2luYXRpb25GaWVsZCddIH1cbiAgICA6IHVua25vd24pLFxuICBSZXN0SW5zdGFuY2U8XG4gICAgKFxuICAgICAgLi4uYXJnczogUGFyYW1ldGVyczxFPlxuICAgICkgPT4gT1sncHJvY2VzcyddIGV4dGVuZHMge30gPyBQcm9taXNlPFJldHVyblR5cGU8T1sncHJvY2VzcyddPj5cbiAgICA6IFJldHVyblR5cGU8RT4sXG4gICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAnc2lkZUVmZmVjdCcgZXh0ZW5kcyBrZXlvZiBPID8gRXh0cmFjdDxPWydzaWRlRWZmZWN0J10sIGJvb2xlYW4gfCB1bmRlZmluZWQ+XG4gICAgOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBNZXRob2RUb1NpZGU8T1snbWV0aG9kJ10+XG4gICAgOiBFWydzaWRlRWZmZWN0J11cbiAgPlxuPiAmXG4gIE9taXQ8TywgS2V5b2ZSZXN0RW5kcG9pbnQ+ICZcbiAgT21pdDxFLCBLZXlvZlJlc3RFbmRwb2ludCB8IGtleW9mIE8+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpYWxSZXN0R2VuZXJpY3Mge1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhdGggKi9cbiAgcmVhZG9ubHkgcGF0aD86IHN0cmluZztcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNzY2hlbWEgKi9cbiAgcmVhZG9ubHkgc2NoZW1hPzogU2NoZW1hIHwgdW5kZWZpbmVkO1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I21ldGhvZCAqL1xuICByZWFkb25seSBtZXRob2Q/OiBzdHJpbmc7XG4gIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjYm9keSAqL1xuICBib2R5PzogYW55O1xuICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3NlYXJjaFBhcmFtcyAqL1xuICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFnaW5hdGlvbmZpZWxkICovXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwcm9jZXNzICovXG4gIHByb2Nlc3M/KHZhbHVlOiBhbnksIC4uLmFyZ3M6IGFueSk6IGFueTtcbn1cbi8qKiBHZW5lcmljIHR5cGVzIHdoZW4gY29uc3RydWN0aW5nIGEgUmVzdEVuZHBvaW50XG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2luaGVyaXRhbmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEdlbmVyaWNzIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUGFnaW5hdGlvbkVuZHBvaW50PFxuICBFIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiAmIFJlc3RHZW5lcmljcyAmIHsgc2lkZUVmZmVjdD86IGJvb2xlYW4gfCB1bmRlZmluZWQgfSxcbiAgQSBleHRlbmRzIGFueVtdLFxuPiA9IFJlc3RJbnN0YW5jZUJhc2U8XG4gIFBhcmFtRmV0Y2hOb0JvZHk8QVswXSwgUmVzb2x2ZVR5cGU8RT4+LFxuICBFWydzY2hlbWEnXSxcbiAgRVsnc2lkZUVmZmVjdCddLFxuICBQaWNrPEUsICdwYXRoJyB8ICdzZWFyY2hQYXJhbXMnIHwgJ2JvZHknPiAmIHtcbiAgICBzZWFyY2hQYXJhbXM6IE9taXQ8QVswXSwga2V5b2YgUGF0aEFyZ3M8RVsncGF0aCddPj47XG4gIH1cbj47XG4vKiogTWVyZ2UgcGFnaW5hdGlvbiBmaWVsZCBDIGludG8gYm9keSwgbWFraW5nIGl0IHJlcXVpcmVkICovXG50eXBlIFBhZ2luYXRpb25JbnRvQm9keTxCb2R5LCBDIGV4dGVuZHMgc3RyaW5nPiA9IEJvZHkgJiB7XG4gIFtLIGluIENdOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuO1xufTtcblxuLyoqIFBhZ2luYXRlZCBzZWFyY2hQYXJhbXMgdHlwZSAqL1xudHlwZSBQYWdpbmF0ZWRTZWFyY2hQYXJhbXM8XG4gIEUgZXh0ZW5kcyB7IHNlYXJjaFBhcmFtcz86IGFueTsgcGF0aD86IHN0cmluZyB9LFxuICBDIGV4dGVuZHMgc3RyaW5nLFxuPiA9IHtcbiAgW0sgaW4gQ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW47XG59ICYgRVsnc2VhcmNoUGFyYW1zJ10gJlxuICBQYXRoQXJnczxFeGNsdWRlPEVbJ3BhdGgnXSwgdW5kZWZpbmVkPj47XG5cbi8qKiBzZWFyY2hQYXJhbXMgdmVyc2lvbjogcGFnaW5hdGlvbiBpbiBzZWFyY2hQYXJhbXMsIG9wdGlvbmFsIGJvZHkgc3VwcG9ydCAqL1xudHlwZSBQYWdpbmF0aW9uRmllbGRJblNlYXJjaFBhcmFtczxcbiAgRSBleHRlbmRzIEZldGNoRnVuY3Rpb24gJiBSZXN0R2VuZXJpY3MgJiB7IHNpZGVFZmZlY3Q/OiBib29sZWFuIHwgdW5kZWZpbmVkIH0sXG4gIEMgZXh0ZW5kcyBzdHJpbmcsXG4+ID0gUmVzdEluc3RhbmNlQmFzZTxcbiAgLy8gVW5pb24gYWxsb3dzIGNhbGxpbmcgd2l0aCBqdXN0IHNlYXJjaFBhcmFtcyBvciB3aXRoIHNlYXJjaFBhcmFtcyArIGJvZHlcbiAgfCBQYXJhbUZldGNoTm9Cb2R5PFBhZ2luYXRlZFNlYXJjaFBhcmFtczxFLCBDPiwgUmVzb2x2ZVR5cGU8RT4+XG4gIHwgUGFyYW1GZXRjaFdpdGhCb2R5PFxuICAgICAgUGFnaW5hdGVkU2VhcmNoUGFyYW1zPEUsIEM+LFxuICAgICAgTm9uTnVsbGFibGU8RVsnYm9keSddPixcbiAgICAgIFJlc29sdmVUeXBlPEU+XG4gICAgPixcbiAgRVsnc2NoZW1hJ10sXG4gIEVbJ3NpZGVFZmZlY3QnXSxcbiAgUGljazxFLCAncGF0aCcgfCAnc2VhcmNoUGFyYW1zJyB8ICdib2R5Jz4gJiB7XG4gICAgc2VhcmNoUGFyYW1zOiB7XG4gICAgICBbSyBpbiBDXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbjtcbiAgICB9ICYgRVsnc2VhcmNoUGFyYW1zJ107XG4gIH1cbj4gJiB7IHBhZ2luYXRpb25GaWVsZDogQyB9O1xuXG4vKiogYm9keSB2ZXJzaW9uOiBwYWdpbmF0aW9uIGZpZWxkIGlzIGluIGJvZHkgKGJvZHkgcmVxdWlyZWQpICovXG50eXBlIFBhZ2luYXRpb25GaWVsZEluQm9keTxcbiAgRSBleHRlbmRzIEZldGNoRnVuY3Rpb24gJiBSZXN0R2VuZXJpY3MgJiB7IHNpZGVFZmZlY3Q/OiBib29sZWFuIHwgdW5kZWZpbmVkIH0sXG4gIEMgZXh0ZW5kcyBzdHJpbmcsXG4+ID0gUmVzdEluc3RhbmNlQmFzZTxcbiAgUGFyYW1GZXRjaFdpdGhCb2R5PFxuICAgIEVbJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxFWydwYXRoJ10sIHVuZGVmaW5lZD4+LFxuICAgIFBhZ2luYXRpb25JbnRvQm9keTxFWydib2R5J10sIEM+LFxuICAgIFJlc29sdmVUeXBlPEU+XG4gID4sXG4gIEVbJ3NjaGVtYSddLFxuICBFWydzaWRlRWZmZWN0J10sXG4gIFBpY2s8RSwgJ3BhdGgnIHwgJ3NlYXJjaFBhcmFtcyc+ICYge1xuICAgIGJvZHk6IFBhZ2luYXRpb25JbnRvQm9keTxFWydib2R5J10sIEM+O1xuICB9XG4+ICYgeyBwYWdpbmF0aW9uRmllbGQ6IEMgfTtcblxuLyoqIFJldHJpZXZlcyB0aGUgbmV4dCBwYWdlIG9mIHJlc3VsdHMgYnkgcGFnaW5hdGlvbiBmaWVsZCAqL1xuZXhwb3J0IHR5cGUgUGFnaW5hdGlvbkZpZWxkRW5kcG9pbnQ8XG4gIEUgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uICYgUmVzdEdlbmVyaWNzICYgeyBzaWRlRWZmZWN0PzogYm9vbGVhbiB8IHVuZGVmaW5lZCB9LFxuICBDIGV4dGVuZHMgc3RyaW5nLFxuPiA9XG4gIC8vIElmIGJvZHkgY2FuIGJlIHVuZGVmaW5lZCBvciBwYWdpbmF0aW9uIGZpZWxkIG5vdCBpbiBib2R5LCB1c2Ugc2VhcmNoUGFyYW1zXG4gIHVuZGVmaW5lZCBleHRlbmRzIEVbJ2JvZHknXSA/IFBhZ2luYXRpb25GaWVsZEluU2VhcmNoUGFyYW1zPEUsIEM+XG4gIDogLy8gSWYgcGFnaW5hdGlvbiBmaWVsZCBDIGlzIGEga2V5IG9mIGJvZHksIG1lcmdlIGludG8gYm9keVxuICBDIGV4dGVuZHMga2V5b2YgRVsnYm9keSddID8gUGFnaW5hdGlvbkZpZWxkSW5Cb2R5PEUsIEM+XG4gIDogLy8gT3RoZXJ3aXNlIHVzZSBzZWFyY2hQYXJhbXNcbiAgICBQYWdpbmF0aW9uRmllbGRJblNlYXJjaFBhcmFtczxFLCBDPjtcblxuZXhwb3J0IHR5cGUgQWRkRW5kcG9pbnQ8XG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uID0gRmV0Y2hGdW5jdGlvbixcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IGFueSxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keTogYW55O1xuICAgIHNlYXJjaFBhcmFtcz86IGFueTtcbiAgfSA9IHsgcGF0aDogc3RyaW5nOyBib2R5OiBhbnkgfSxcbj4gPSBSZXN0SW5zdGFuY2VCYXNlPFxuICBSZXN0RmV0Y2g8XG4gICAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgICAgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgOiBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgT1snYm9keSddLFxuICAgIFJlc29sdmVUeXBlPEY+XG4gID4sXG4gIFMsXG4gIHRydWUsXG4gIE9taXQ8TywgJ21ldGhvZCc+ICYgeyBtZXRob2Q6ICdQT1NUJyB9XG4+O1xuZXhwb3J0IHR5cGUgUmVtb3ZlRW5kcG9pbnQ8XG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uID0gRmV0Y2hGdW5jdGlvbixcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IGFueSxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keTogYW55O1xuICAgIHNlYXJjaFBhcmFtcz86IGFueTtcbiAgfSA9IHsgcGF0aDogc3RyaW5nOyBib2R5OiBhbnkgfSxcbj4gPSBSZXN0SW5zdGFuY2VCYXNlPFxuICBSZXN0RmV0Y2g8XG4gICAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgICAgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgOiBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgT1snYm9keSddLFxuICAgIFJlc29sdmVUeXBlPEY+XG4gID4sXG4gIFMsXG4gIHRydWUsXG4gIE9taXQ8TywgJ21ldGhvZCc+ICYgeyBtZXRob2Q6ICdQQVRDSCcgfVxuPjtcblxudHlwZSBPcHRpb25zQm9keURlZmF1bHQ8TyBleHRlbmRzIFJlc3RHZW5lcmljcz4gPVxuICAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID8gT1xuICA6IE9bJ21ldGhvZCddIGV4dGVuZHMgJ1BPU1QnIHwgJ1BVVCcgfCAnUEFUQ0gnID8gTyAmIHsgYm9keTogYW55IH1cbiAgOiBPICYgeyBib2R5OiB1bmRlZmluZWQgfTtcblxudHlwZSBPcHRpb25zVG9BZGRlckJvZHlBcmd1bWVudDxPIGV4dGVuZHMgeyBib2R5PzogYW55IH0+ID1cbiAgJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IGFueTtcblxuZXhwb3J0IGludGVyZmFjZSBSZXN0RW5kcG9pbnRPcHRpb25zPFxuICBGIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiA9IEZldGNoRnVuY3Rpb24sXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4+IGV4dGVuZHMgRW5kcG9pbnRFeHRyYU9wdGlvbnM8Rj4ge1xuICAvKiogUHJlcGVuZGVkIHRvIGFsbCB1cmxzXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCN1cmxQcmVmaXhcbiAgICovXG4gIHVybFByZWZpeD86IHN0cmluZztcbiAgcmVxdWVzdEluaXQ/OiBSZXF1ZXN0SW5pdDtcbiAgLyoqIENhbGxlZCBieSBnZXRSZXF1ZXN0SW5pdCB0byBkZXRlcm1pbmUgSFRUUCBIZWFkZXJzXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNnZXRIZWFkZXJzXG4gICAqL1xuICBnZXRIZWFkZXJzPyhoZWFkZXJzOiBIZWFkZXJzSW5pdCk6IFByb21pc2U8SGVhZGVyc0luaXQ+IHwgSGVhZGVyc0luaXQ7XG4gIC8qKiBQcmVwYXJlcyBSZXF1ZXN0SW5pdCB1c2VkIGluIGZldGNoLiBUaGlzIGlzIHNlbnQgdG8gZmV0Y2hSZXNwb25zZSgpXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNnZXRSZXF1ZXN0SW5pdFxuICAgKi9cbiAgZ2V0UmVxdWVzdEluaXQ/KGJvZHk6IGFueSk6IFByb21pc2U8UmVxdWVzdEluaXQ+IHwgUmVxdWVzdEluaXQ7XG4gIC8qKiBQZXJmb3JtcyB0aGUgZmV0Y2ggY2FsbFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjZmV0Y2hSZXNwb25zZVxuICAgKi9cbiAgZmV0Y2hSZXNwb25zZT8oaW5wdXQ6IFJlcXVlc3RJbmZvLCBpbml0OiBSZXF1ZXN0SW5pdCk6IFByb21pc2U8YW55PjtcbiAgLyoqIFRha2VzIHRoZSBSZXNwb25zZSBhbmQgcGFyc2VzIHZpYSAudGV4dCgpIG9yIC5qc29uKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhcnNlUmVzcG9uc2VcbiAgICovXG4gIHBhcnNlUmVzcG9uc2U/KHJlc3BvbnNlOiBSZXNwb25zZSk6IFByb21pc2U8YW55PjtcblxuICBzaWRlRWZmZWN0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgbmFtZT86IHN0cmluZztcbiAgc2lnbmFsPzogQWJvcnRTaWduYWw7XG4gIGZldGNoPzogRjtcbiAga2V5PyguLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KTogc3RyaW5nO1xuICB1cmw/KC4uLmFyZ3M6IFBhcmFtZXRlcnM8Rj4pOiBzdHJpbmc7XG4gIHVwZGF0ZT86IEVuZHBvaW50VXBkYXRlRnVuY3Rpb248RiwgUz47XG59XG5cbmV4cG9ydCB0eXBlIFJlc3RFbmRwb2ludENvbnN0cnVjdG9yT3B0aW9uczxPIGV4dGVuZHMgUmVzdEdlbmVyaWNzID0gYW55PiA9XG4gIFJlc3RFbmRwb2ludE9wdGlvbnM8XG4gICAgUmVzdEZldGNoPFxuICAgICAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgT1snc2VhcmNoUGFyYW1zJ10gZXh0ZW5kcyB1bmRlZmluZWQgP1xuICAgICAgICAgIFBhdGhBcmdzPE9bJ3BhdGgnXT5cbiAgICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPE9bJ3BhdGgnXT5cbiAgICAgIDogUGF0aEFyZ3M8T1sncGF0aCddPixcbiAgICAgIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxcbiAgICAgICAgTyxcbiAgICAgICAgJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ11cbiAgICAgICAgOiBPIGV4dGVuZHMgeyBzaWRlRWZmZWN0OiB0cnVlIH0gPyAnUE9TVCdcbiAgICAgICAgOiAnR0VUJ1xuICAgICAgPixcbiAgICAgIE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID8gUmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+XG4gICAgICA6IGFueSAvKkRlbm9ybWFsaXplPE9bJ3NjaGVtYSddPiovXG4gICAgPixcbiAgICBPWydzY2hlbWEnXVxuICA+O1xuXG4vKiogU2ltcGxpZmllcyBlbmRwb2ludCBkZWZpbml0aW9ucyB0aGF0IGZvbGxvdyBSRVNUIHBhdHRlcm5zXG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEVuZHBvaW50PFxuICBPIGV4dGVuZHMgUmVzdEdlbmVyaWNzID0gYW55LFxuPiBleHRlbmRzIFJlc3RJbnN0YW5jZTxcbiAgUmVzdEZldGNoPFxuICAgICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICBPWydzZWFyY2hQYXJhbXMnXSBleHRlbmRzIHVuZGVmaW5lZCA/XG4gICAgICAgIFBhdGhBcmdzPE9bJ3BhdGgnXT5cbiAgICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgOiBQYXRoQXJnczxPWydwYXRoJ10+LFxuICAgIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxcbiAgICAgIE8sXG4gICAgICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXVxuICAgICAgOiBPIGV4dGVuZHMgeyBzaWRlRWZmZWN0OiB0cnVlIH0gPyAnUE9TVCdcbiAgICAgIDogJ0dFVCdcbiAgICA+LFxuICAgIE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID8gUmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+XG4gICAgOiBhbnkgLypEZW5vcm1hbGl6ZTxPWydzY2hlbWEnXT4qL1xuICA+LFxuICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBPWydzY2hlbWEnXSA6IHVuZGVmaW5lZCxcbiAgJ3NpZGVFZmZlY3QnIGV4dGVuZHMga2V5b2YgTyA/IEV4dHJhY3Q8T1snc2lkZUVmZmVjdCddLCBib29sZWFuIHwgdW5kZWZpbmVkPlxuICA6IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT4sXG4gICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9cbiAgOiBPICYge1xuICAgICAgbWV0aG9kOiBPIGV4dGVuZHMgeyBzaWRlRWZmZWN0OiB0cnVlIH0gPyAnUE9TVCcgOiAnR0VUJztcbiAgICB9XG4+IHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEVuZHBvaW50Q29uc3RydWN0b3Ige1xuICAvKiogU2ltcGxpZmllcyBlbmRwb2ludCBkZWZpbml0aW9ucyB0aGF0IGZvbGxvdyBSRVNUIHBhdHRlcm5zXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludFxuICAgKi9cbiAgbmV3IDxPIGV4dGVuZHMgUmVzdEdlbmVyaWNzID0gYW55Pih7XG4gICAgbWV0aG9kLFxuICAgIHNpZGVFZmZlY3QsXG4gICAgbmFtZSxcbiAgICAuLi5vcHRpb25zXG4gIH06IFJlc3RFbmRwb2ludENvbnN0cnVjdG9yT3B0aW9uczxPPiAmIFJlYWRvbmx5PE8+KTogUmVzdEVuZHBvaW50PE8+O1xuICByZWFkb25seSBwcm90b3R5cGU6IFJlc3RJbnN0YW5jZUJhc2U7XG59XG5cbmV4cG9ydCB0eXBlIE1ldGhvZFRvU2lkZTxNPiA9XG4gIE0gZXh0ZW5kcyBzdHJpbmcgP1xuICAgIE0gZXh0ZW5kcyAnR0VUJyA/XG4gICAgICB1bmRlZmluZWRcbiAgICA6IHRydWVcbiAgOiB1bmRlZmluZWQ7XG5cbi8qKiBSZXN0RW5kcG9pbnQgdHlwZXMgc2ltcGxpZmllZCAqL1xuZXhwb3J0IHR5cGUgUmVzdFR5cGU8XG4gIFVybFBhcmFtcyA9IGFueSxcbiAgQm9keSA9IGFueSxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IFNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgTSBleHRlbmRzIGJvb2xlYW4gfCB1bmRlZmluZWQgPSBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBSID0gYW55LFxuICBPIGV4dGVuZHMge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5PzogYW55O1xuICAgIHNlYXJjaFBhcmFtcz86IGFueTtcbiAgICBwYWdpbmF0aW9uRmllbGQ/OiBzdHJpbmc7XG4gIH0gPSB7IHBhdGg6IHN0cmluZzsgcGFnaW5hdGlvbkZpZWxkOiBzdHJpbmcgfSxcbj4gPSBJZlR5cGVTY3JpcHRMb29zZU51bGw8XG4gIFJlc3RJbnN0YW5jZTxSZXN0RmV0Y2g8VXJsUGFyYW1zLCBCb2R5LCBSPiwgUywgTSwgTz4sXG4gIEJvZHkgZXh0ZW5kcyB7fSA/IFJlc3RUeXBlV2l0aEJvZHk8VXJsUGFyYW1zLCBTLCBNLCBCb2R5LCBSLCBPPlxuICA6IFJlc3RUeXBlTm9Cb2R5PFVybFBhcmFtcywgUywgTSwgUiwgTz5cbj47XG5cbmV4cG9ydCB0eXBlIFJlc3RUeXBlV2l0aEJvZHk8XG4gIFVybFBhcmFtcyA9IGFueSxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IFNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgTSBleHRlbmRzIGJvb2xlYW4gfCB1bmRlZmluZWQgPSBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBCb2R5ID0gYW55LFxuICBSID0gYW55IC8qRGVub3JtYWxpemU8Uz4qLyxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keT86IGFueTtcbiAgICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gIH0gPSB7IHBhdGg6IHN0cmluZzsgYm9keTogYW55IH0sXG4+ID0gUmVzdEluc3RhbmNlPFBhcmFtRmV0Y2hXaXRoQm9keTxVcmxQYXJhbXMsIEJvZHksIFI+LCBTLCBNLCBPPjtcblxuZXhwb3J0IHR5cGUgUmVzdFR5cGVOb0JvZHk8XG4gIFVybFBhcmFtcyA9IGFueSxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IFNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgTSBleHRlbmRzIGJvb2xlYW4gfCB1bmRlZmluZWQgPSBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBSID0gYW55IC8qRGVub3JtYWxpemU8Uz4qLyxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keT86IHVuZGVmaW5lZDtcbiAgICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gIH0gPSB7IHBhdGg6IHN0cmluZzsgYm9keTogdW5kZWZpbmVkIH0sXG4+ID0gUmVzdEluc3RhbmNlPFBhcmFtRmV0Y2hOb0JvZHk8VXJsUGFyYW1zLCBSPiwgUywgTSwgTz47XG5cbi8qKiBTaW1wbGUgcGFyYW1ldGVycywgYW5kIGJvZHkgZmV0Y2ggZnVuY3Rpb25zICovXG5leHBvcnQgdHlwZSBSZXN0RmV0Y2g8XG4gIFVybFBhcmFtcyxcbiAgQm9keSA9IHt9LFxuICBSZXNvbHZlID0gYW55LFxuPiA9IElmVHlwZVNjcmlwdExvb3NlTnVsbDxcbiAgfCBQYXJhbUZldGNoTm9Cb2R5PFVybFBhcmFtcywgUmVzb2x2ZT5cbiAgfCBQYXJhbUZldGNoV2l0aEJvZHk8VXJsUGFyYW1zLCBCb2R5LCBSZXNvbHZlPixcbiAgQm9keSBleHRlbmRzIHt9ID8gUGFyYW1GZXRjaFdpdGhCb2R5PFVybFBhcmFtcywgQm9keSwgUmVzb2x2ZT5cbiAgOiBQYXJhbUZldGNoTm9Cb2R5PFVybFBhcmFtcywgUmVzb2x2ZT5cbj47XG5cbmV4cG9ydCB0eXBlIFBhcmFtRmV0Y2hXaXRoQm9keTxQLCBCID0ge30sIFIgPSBhbnk+ID1cbiAgLy8gd2UgbXVzdCBhbHdheXMgYWxsb3cgdW5kZWZpbmVkIGluIGEgdW5pb24gYW5kIGdpdmUgaXQgYSB0eXBlIHdpdGhvdXQgcGFyYW1zXG4gIFAgZXh0ZW5kcyB1bmRlZmluZWQgPyAodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgYm9keTogQikgPT4gUHJvbWlzZTxSPlxuICA6IC8vIGV2ZW4gd2l0aCBsb29zZSBudWxsLCB0aGlzIHdpbGwgb25seSBiZSB0cnVlIHdoZW4gYWxsIG1lbWJlcnMgYXJlIG9wdGlvbmFsXG4gIHt9IGV4dGVuZHMgUCA/XG4gICAgLy8gdGhpcyBzYWZlbHkgaGFuZGxlcyBQYXRoQXJncyB3aXRoIG5vIG1lbWJlcnMgdGhhdCByZXN1bHRzIGluIGEgc2ltcGxlIGB1bmtub3duYCB0eXBlXG4gICAga2V5b2YgUCBleHRlbmRzIG5ldmVyID9cbiAgICAgICh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBib2R5OiBCKSA9PiBQcm9taXNlPFI+XG4gICAgOiB8ICgodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgcGFyYW1zOiBQLCBib2R5OiBCKSA9PiBQcm9taXNlPFI+KVxuICAgICAgfCAoKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIGJvZHk6IEIpID0+IFByb21pc2U8Uj4pXG4gIDogKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIHBhcmFtczogUCwgYm9keTogQikgPT4gUHJvbWlzZTxSPjtcblxuZXhwb3J0IHR5cGUgUGFyYW1GZXRjaE5vQm9keTxQLCBSID0gYW55PiA9XG4gIC8vIHdlIG11c3QgYWx3YXlzIGFsbG93IHVuZGVmaW5lZCBpbiBhIHVuaW9uIGFuZCBnaXZlIGl0IGEgdHlwZSB3aXRob3V0IHBhcmFtc1xuICBQIGV4dGVuZHMgdW5kZWZpbmVkID8gKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UpID0+IFByb21pc2U8Uj5cbiAgOiAvLyBldmVuIHdpdGggbG9vc2UgbnVsbCwgdGhpcyB3aWxsIG9ubHkgYmUgdHJ1ZSB3aGVuIGFsbCBtZW1iZXJzIGFyZSBvcHRpb25hbFxuICB7fSBleHRlbmRzIFAgP1xuICAgIC8vIHRoaXMgc2FmZWx5IGhhbmRsZXMgUGF0aEFyZ3Mgd2l0aCBubyBtZW1iZXJzIHRoYXQgcmVzdWx0cyBpbiBhIHNpbXBsZSBgdW5rbm93bmAgdHlwZVxuICAgIGtleW9mIFAgZXh0ZW5kcyBuZXZlciA/XG4gICAgICAodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSkgPT4gUHJvbWlzZTxSPlxuICAgIDogfCAoKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIHBhcmFtczogUCkgPT4gUHJvbWlzZTxSPilcbiAgICAgIHwgKCh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlKSA9PiBQcm9taXNlPFI+KVxuICA6ICh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBwYXJhbXM6IFApID0+IFByb21pc2U8Uj47XG5cbi8vIHNhbWUgYWxnb3JpdGhtLCBidXQgZm9yIEFyZ3MgKGFrYSByZWFkb25seSBhbnlbXSlcbmV4cG9ydCB0eXBlIFBhcmFtVG9BcmdzPFA+ID1cbiAgUCBleHRlbmRzIHVuZGVmaW5lZCA/IFtdXG4gIDoge30gZXh0ZW5kcyBQID9cbiAgICBrZXlvZiBQIGV4dGVuZHMgbmV2ZXIgP1xuICAgICAgW11cbiAgICA6IFtdIHwgW1BdXG4gIDogW1BdO1xuXG50eXBlIElmVHlwZVNjcmlwdExvb3NlTnVsbDxZLCBOPiA9IDEgfCB1bmRlZmluZWQgZXh0ZW5kcyAxID8gWSA6IE47XG5cbmV4cG9ydCB0eXBlIEtleW9mUmVzdEVuZHBvaW50ID0ga2V5b2YgUmVzdEluc3RhbmNlO1xuXG5leHBvcnQgdHlwZSBGcm9tRmFsbEJhY2s8SyBleHRlbmRzIGtleW9mIEUsIE8sIEU+ID1cbiAgSyBleHRlbmRzIGtleW9mIE8gPyBPW0tdIDogRVtLXTtcblxuZXhwb3J0IHR5cGUgRmV0Y2hNdXRhdGU8XG4gIEEgZXh0ZW5kcyByZWFkb25seSBhbnlbXSA9IFthbnksIHt9XSB8IFt7fV0sXG4gIFIgPSBhbnksXG4+ID0gKHRoaXM6IFJlc3RJbnN0YW5jZSwgLi4uYXJnczogQSkgPT4gUHJvbWlzZTxSPjtcblxuZXhwb3J0IHR5cGUgRmV0Y2hHZXQ8QSBleHRlbmRzIHJlYWRvbmx5IGFueVtdID0gW2FueV0sIFIgPSBhbnk+ID0gKFxuICB0aGlzOiBSZXN0SW5zdGFuY2UsXG4gIC4uLmFyZ3M6IEFcbikgPT4gUHJvbWlzZTxSPjtcblxuZXhwb3J0IHR5cGUgRGVmYXVsdHM8TywgRD4gPSB7XG4gIFtLIGluIGtleW9mIE8gfCBrZXlvZiBEXTogSyBleHRlbmRzIGtleW9mIE8gPyBFeGNsdWRlPE9bS10sIHVuZGVmaW5lZD5cbiAgOiBEW0V4dHJhY3Q8Sywga2V5b2YgRD5dO1xufTtcblxuZXhwb3J0IHR5cGUgR2V0RW5kcG9pbnQ8XG4gIE8gZXh0ZW5kcyB7XG4gICAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHNjaGVtYTogU2NoZW1hO1xuICAgIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gICAgcmVhZG9ubHkgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbiAgfSA9IHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgc2NoZW1hOiBTY2hlbWE7XG4gIH0sXG4+ID0gUmVzdFR5cGVOb0JvZHk8XG4gICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgT1snc2VhcmNoUGFyYW1zJ10gZXh0ZW5kcyB1bmRlZmluZWQgP1xuICAgICAgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxPWydwYXRoJ10+XG4gIDogUGF0aEFyZ3M8T1sncGF0aCddPixcbiAgT1snc2NoZW1hJ10sXG4gIHVuZGVmaW5lZCxcbiAgYW55LFxuICBPICYgeyBtZXRob2Q6ICdHRVQnIH1cbj47XG5cbmV4cG9ydCB0eXBlIE11dGF0ZUVuZHBvaW50PFxuICBPIGV4dGVuZHMge1xuICAgIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbiAgICByZWFkb25seSBzY2hlbWE6IFNjaGVtYTtcbiAgICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAgIHJlYWRvbmx5IHNlYXJjaFBhcmFtcz86IGFueTtcbiAgICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAgIHJlYWRvbmx5IGJvZHk/OiBhbnk7XG4gIH0gPSB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk6IGFueTtcbiAgICBzY2hlbWE6IFNjaGVtYTtcbiAgfSxcbj4gPSBSZXN0VHlwZVdpdGhCb2R5PFxuICAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIE9bJ3NlYXJjaFBhcmFtcyddIGV4dGVuZHMgdW5kZWZpbmVkID9cbiAgICAgIFBhdGhBcmdzPE9bJ3BhdGgnXT5cbiAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8T1sncGF0aCddPlxuICA6IFBhdGhBcmdzPE9bJ3BhdGgnXT4sXG4gIE9bJ3NjaGVtYSddLFxuICB0cnVlLFxuICBPWydib2R5J10sXG4gIGFueSxcbiAgTyAmIHsgYm9keTogYW55OyBtZXRob2Q6ICdQT1NUJyB8ICdQVVQnIHwgJ1BBVENIJyB8ICdERUxFVEUnIH1cbj47XG4iXSwibWFwcGluZ3MiOiIiLCJpZ25vcmVMaXN0IjpbXX0=
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL1Jlc3RFbmRwb2ludFR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgRW5kcG9pbnRFeHRyYU9wdGlvbnMsXG4gIEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsXG4gIFNjaGVtYSxcbiAgRmV0Y2hGdW5jdGlvbixcbiAgUmVzb2x2ZVR5cGUsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmltcG9ydCB0eXBlIHsgRXh0cmFjdENvbGxlY3Rpb24gfSBmcm9tICcuL2V4dHJhY3RDb2xsZWN0aW9uLmpzJztcbmltcG9ydCB7XG4gIE9wdGlvbnNUb0JvZHlBcmd1bWVudCxcbiAgT3B0aW9uc1RvRnVuY3Rpb24sXG59IGZyb20gJy4vT3B0aW9uc1RvRnVuY3Rpb24uanMnO1xuaW1wb3J0IHsgUGF0aEFyZ3MgfSBmcm9tICcuL3BhdGhUeXBlcy5qcyc7XG5pbXBvcnQgeyBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uIH0gZnJvbSAnLi9SZXN0RW5kcG9pbnRUeXBlSGVscC5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEluc3RhbmNlQmFzZTxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBNIGV4dGVuZHMgYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIG1ldGhvZD86IHN0cmluZztcbiAgfSA9IHsgcGF0aDogc3RyaW5nIH0sXG4+IGV4dGVuZHMgRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZTxGLCBTLCBNPiB7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjYm9keSAqL1xuICByZWFkb25seSBib2R5PzogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IGFueTtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNzZWFyY2hQYXJhbXMgKi9cbiAgcmVhZG9ubHkgc2VhcmNoUGFyYW1zPzogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2VhcmNoUGFyYW1zJ11cbiAgOiAvLyB1bmtub3duIGlzIGlkZW50aXR5IHdpdGggJyYnIHR5cGUgb3BlcmF0b3JcbiAgICB1bmtub3duO1xuXG4gIC8qKiBQYXR0ZXJuIHRvIGNvbnN0cnVjdCB1cmwgYmFzZWQgb24gVXJsIFBhcmFtZXRlcnNcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhdGhcbiAgICovXG4gIHJlYWRvbmx5IHBhdGg6IE9bJ3BhdGgnXTtcbiAgLyoqIFByZXBlbmRlZCB0byBhbGwgdXJsc1xuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjdXJsUHJlZml4XG4gICAqL1xuICByZWFkb25seSB1cmxQcmVmaXg6IHN0cmluZztcbiAgcmVhZG9ubHkgcmVxdWVzdEluaXQ6IFJlcXVlc3RJbml0O1xuICAvKiogSFRUUCByZXF1ZXN0IG1ldGhvZFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjbWV0aG9kXG4gICAqL1xuICByZWFkb25seSBtZXRob2Q6IChPICYgeyBtZXRob2Q6IHN0cmluZyB9KVsnbWV0aG9kJ107XG4gIHJlYWRvbmx5IHNpZ25hbDogQWJvcnRTaWduYWwgfCB1bmRlZmluZWQ7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFnaW5hdGlvbkZpZWxkICovXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcblxuICAvKiBmZXRjaCBsaWZlY3ljbGVzICovXG4gIC8qIGJlZm9yZS1mZXRjaCAqL1xuICAvKiogQnVpbGRzIHRoZSBVUkwgdG8gZmV0Y2hcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3VybFxuICAgKi9cbiAgdXJsKC4uLmFyZ3M6IFBhcmFtZXRlcnM8Rj4pOiBzdHJpbmc7XG4gIC8qKiBFbmNvZGUgdGhlIHNlYXJjaFBhcmFtcyBjb21wb25lbnQgb2YgdGhlIHVybFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjc2VhcmNoVG9TdHJpbmdcbiAgICovXG4gIHNlYXJjaFRvU3RyaW5nKHNlYXJjaFBhcmFtczogUmVjb3JkPHN0cmluZywgYW55Pik6IHN0cmluZztcbiAgLyoqIFByZXBhcmVzIFJlcXVlc3RJbml0IHVzZWQgaW4gZmV0Y2guIFRoaXMgaXMgc2VudCB0byBmZXRjaFJlc3BvbnNlKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2dldFJlcXVlc3RJbml0XG4gICAqL1xuICBnZXRSZXF1ZXN0SW5pdChcbiAgICB0aGlzOiBhbnksXG4gICAgYm9keT86IFJlcXVlc3RJbml0Wydib2R5J10gfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgKTogUHJvbWlzZTxSZXF1ZXN0SW5pdD4gfCBSZXF1ZXN0SW5pdDtcbiAgLyoqIENhbGxlZCBieSBnZXRSZXF1ZXN0SW5pdCB0byBkZXRlcm1pbmUgSFRUUCBIZWFkZXJzXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNnZXRIZWFkZXJzXG4gICAqL1xuICBnZXRIZWFkZXJzKGhlYWRlcnM6IEhlYWRlcnNJbml0KTogUHJvbWlzZTxIZWFkZXJzSW5pdD4gfCBIZWFkZXJzSW5pdDtcbiAgLyogYWZ0ZXItZmV0Y2ggKi9cbiAgLyoqIFBlcmZvcm1zIHRoZSBmZXRjaCBjYWxsXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNmZXRjaFJlc3BvbnNlXG4gICAqL1xuICBmZXRjaFJlc3BvbnNlKGlucHV0OiBSZXF1ZXN0SW5mbywgaW5pdDogUmVxdWVzdEluaXQpOiBQcm9taXNlPFJlc3BvbnNlPjtcbiAgLyoqIFRha2VzIHRoZSBSZXNwb25zZSBhbmQgcGFyc2VzIHZpYSAudGV4dCgpIG9yIC5qc29uKClcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhcnNlUmVzcG9uc2VcbiAgICovXG4gIHBhcnNlUmVzcG9uc2UocmVzcG9uc2U6IFJlc3BvbnNlKTogUHJvbWlzZTxhbnk+O1xuICAvKiogUGVyZm9ybSBhbnkgdHJhbnNmb3JtcyB3aXRoIHRoZSBwYXJzZWQgcmVzdWx0LlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcHJvY2Vzc1xuICAgKi9cbiAgcHJvY2Vzcyh2YWx1ZTogYW55LCAuLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KTogUmVzb2x2ZVR5cGU8Rj47XG5cbiAgLyogdXRpbGl0aWVzICovXG4gIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIHByb3ZpZGVkIChmZXRjaCkga2V5IG1hdGNoZXMgdGhpcyBlbmRwb2ludC5cbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3Rlc3RLZXlcbiAgICovXG4gIHRlc3RLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuO1xuXG4gIC8qIGV4dGVuZGVycyAqL1xuICAvLyBUT0RPOiBmaWd1cmUgb3V0IGJldHRlciB3YXkgdGhhbiB3cmFwcGluZyB3aG9sZSBvcHRpb25zIGluIFJlYWRvbmx5PD4gKyBtYWtpbmcgTyBleHRlbmQgZnJvbSB7fVxuICAvLyAgICAgICB0aGlzIGlzIGp1c3QgYSBoYWNrIHRvIGhhbmRsZSB3aGVuIG5vIG1lbWJlcnMgb2YgUGFydGlhbFJlc3RHZW5lcmljcyBhcmUgcHJlc2VudFxuICAvLyAgICAgICBOb3RlOiBVc2luZyBvdmVybG9hZGluZyAobGlrZSBwYWdpbmF0ZWQgZGlkKSBzdHJ1Z2dsZXMgYmVjYXVzZSB0eXBlc2NyaXB0IGRvZXMgbm90IGhhdmUgYSBjbGVhciB3YXkgb2YgZGlzdGluZ3Vpc2hpbmcgb25lXG4gIC8vICAgICAgIHNob3VsZCBiZSB1c2VkIGZyb20gdGhlIG90aGVyIChkdWUgdG8gc2FtZSBwcm9ibGVtIHdpdGggZXZlcnkgbWVtYmVyIGJlaW5nIHBhcnRpYWwpXG4gIC8qKiBDcmVhdGVzIGEgY2hpbGQgZW5kcG9pbnQgdGhhdCBpbmhlcml0cyBmcm9tIHRoaXMgd2hpbGUgb3ZlcnJpZGluZyBwcm92aWRlZCBgb3B0aW9uc2AuXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNleHRlbmRcbiAgICovXG4gIGV4dGVuZDxcbiAgICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZSxcbiAgICBFeHRlbmRPcHRpb25zIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB8IHt9LFxuICA+KFxuICAgIHRoaXM6IEUsXG4gICAgb3B0aW9uczogUmVhZG9ubHk8XG4gICAgICBSZXN0RW5kcG9pbnRFeHRlbmRPcHRpb25zPEV4dGVuZE9wdGlvbnMsIEUsIEY+ICYgRXh0ZW5kT3B0aW9uc1xuICAgID4sXG4gICk6IFJlc3RFeHRlbmRlZEVuZHBvaW50PEV4dGVuZE9wdGlvbnMsIEU+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3RJbnN0YW5jZTxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gYW55LFxuICBNIGV4dGVuZHMgYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk/OiBhbnk7XG4gICAgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIG1ldGhvZD86IHN0cmluZztcbiAgICBwYWdpbmF0aW9uRmllbGQ/OiBzdHJpbmc7XG4gIH0gPSB7IHBhdGg6IHN0cmluZyB9LFxuPiBleHRlbmRzIFJlc3RJbnN0YW5jZUJhc2U8RiwgUywgTSwgTz4ge1xuICAvKiogQ3JlYXRlcyBhbiBFbmRwb2ludCB0byBhcHBlbmQgdGhlIG5leHQgcGFnZSBleHRlbmRpbmcgYSBsaXN0IGZvciBwYWdpbmF0aW9uXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYWdpbmF0ZWRcbiAgICovXG4gIHBhZ2luYXRlZDxcbiAgICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZTxGZXRjaEZ1bmN0aW9uLCBhbnksIHVuZGVmaW5lZD4sXG4gICAgQSBleHRlbmRzIGFueVtdLFxuICA+KFxuICAgIHRoaXM6IEUsXG4gICAgcmVtb3ZlQ3Vyc29yOiAoLi4uYXJnczogQSkgPT4gcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dLFxuICApOiBQYWdpbmF0aW9uRW5kcG9pbnQ8RSwgQT47XG4gIHBhZ2luYXRlZDxcbiAgICBFIGV4dGVuZHMgUmVzdEluc3RhbmNlQmFzZTxGZXRjaEZ1bmN0aW9uLCBhbnksIHVuZGVmaW5lZD4sXG4gICAgQyBleHRlbmRzIHN0cmluZyxcbiAgPihcbiAgICB0aGlzOiBFLFxuICAgIGN1cnNvckZpZWxkOiBDLFxuICApOiBQYWdpbmF0aW9uRmllbGRFbmRwb2ludDxFLCBDPjtcbiAgLyoqIENvbmNhdGluYXRlIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0cyAoR0VUKVxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjZ2V0UGFnZVxuICAgKi9cbiAgZ2V0UGFnZTogJ3BhZ2luYXRpb25GaWVsZCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBPWydwYWdpbmF0aW9uRmllbGQnXSBleHRlbmRzIHN0cmluZyA/XG4gICAgICBQYWdpbmF0aW9uRmllbGRFbmRwb2ludDxcbiAgICAgICAgRiAmIHsgc2NoZW1hOiBTOyBzaWRlRWZmZWN0OiBNIH0gJiBPLFxuICAgICAgICBPWydwYWdpbmF0aW9uRmllbGQnXVxuICAgICAgPlxuICAgIDogdW5kZWZpbmVkXG4gIDogdW5kZWZpbmVkO1xuICAvKiogQ3JlYXRlIGEgbmV3IGl0ZW0gKFBPU1QpIGFuZCBgcHVzaGAgdG8gdGhlIGVuZFxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcHVzaFxuICAgKi9cbiAgcHVzaDogQWRkRW5kcG9pbnQ8XG4gICAgRixcbiAgICBFeHRyYWN0Q29sbGVjdGlvbjxTPlsncHVzaCddLFxuICAgIEV4Y2x1ZGU8TywgJ2JvZHknIHwgJ21ldGhvZCc+ICYge1xuICAgICAgYm9keTpcbiAgICAgICAgfCBPcHRpb25zVG9BZGRlckJvZHlBcmd1bWVudDxPPlxuICAgICAgICB8IE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8+W11cbiAgICAgICAgfCBGb3JtRGF0YTtcbiAgICB9XG4gID47XG4gIC8qKiBDcmVhdGUgYSBuZXcgaXRlbSAoUE9TVCkgYW5kIGB1bnNoaWZ0YCB0byB0aGUgYmVnaW5uaW5nXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCN1bnNoaWZ0XG4gICAqL1xuICB1bnNoaWZ0OiBBZGRFbmRwb2ludDxcbiAgICBGLFxuICAgIEV4dHJhY3RDb2xsZWN0aW9uPFM+Wyd1bnNoaWZ0J10sXG4gICAgRXhjbHVkZTxPLCAnYm9keScgfCAnbWV0aG9kJz4gJiB7XG4gICAgICBib2R5OlxuICAgICAgICB8IE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8+XG4gICAgICAgIHwgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8Tz5bXVxuICAgICAgICB8IEZvcm1EYXRhO1xuICAgIH1cbiAgPjtcbiAgLyoqIENyZWF0ZSBuZXcgaXRlbShzKSAoUE9TVCkgYW5kIGBPYmplY3QuYXNzaWduYCBtZXJnZVxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjYXNzaWduXG4gICAqL1xuICBhc3NpZ246IEFkZEVuZHBvaW50PFxuICAgIEYsXG4gICAgRXh0cmFjdENvbGxlY3Rpb248Uz4sXG4gICAgRXhjbHVkZTxPLCAnYm9keScgfCAnbWV0aG9kJz4gJiB7XG4gICAgICBib2R5OiBSZWNvcmQ8c3RyaW5nLCBPcHRpb25zVG9BZGRlckJvZHlBcmd1bWVudDxPPj4gfCBGb3JtRGF0YTtcbiAgICB9XG4gID47XG4gIC8qKiBSZW1vdmUgaXRlbShzKSAoUEFUQ0gpIGZyb20gY29sbGVjdGlvblxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcmVtb3ZlXG4gICAqL1xuICByZW1vdmU6IFJlbW92ZUVuZHBvaW50PFxuICAgIEYsXG4gICAgRXh0cmFjdENvbGxlY3Rpb248Uz5bJ3JlbW92ZSddLFxuICAgIEV4Y2x1ZGU8TywgJ2JvZHknIHwgJ21ldGhvZCc+ICYge1xuICAgICAgYm9keTpcbiAgICAgICAgfCBPcHRpb25zVG9BZGRlckJvZHlBcmd1bWVudDxPPlxuICAgICAgICB8IE9wdGlvbnNUb0FkZGVyQm9keUFyZ3VtZW50PE8+W11cbiAgICAgICAgfCBGb3JtRGF0YTtcbiAgICB9XG4gID47XG4gIC8qKiBNb3ZlIGl0ZW0gYmV0d2VlbiBjb2xsZWN0aW9ucyAoUEFUQ0gpIC0gcmVtb3ZlcyBmcm9tIG9sZCwgYWRkcyB0byBuZXdcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I21vdmVcbiAgICovXG4gIG1vdmU6IE1vdmVFbmRwb2ludDxcbiAgICBGLFxuICAgIEV4dHJhY3RDb2xsZWN0aW9uPFM+Wydtb3ZlJ10sXG4gICAge1xuICAgICAgcGF0aDogJ21vdmVQYXRoJyBleHRlbmRzIGtleW9mIE8gPyBPWydtb3ZlUGF0aCddICYgc3RyaW5nIDogT1sncGF0aCddO1xuICAgICAgYm9keTogT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8Tz4gfCBGb3JtRGF0YTtcbiAgICB9XG4gID47XG59XG5cbmV4cG9ydCB0eXBlIFJlc3RFbmRwb2ludEV4dGVuZE9wdGlvbnM8XG4gIE8gZXh0ZW5kcyBQYXJ0aWFsUmVzdEdlbmVyaWNzLFxuICBFIGV4dGVuZHMgeyBib2R5PzogYW55OyBwYXRoPzogc3RyaW5nOyBzY2hlbWE/OiBTY2hlbWE7IG1ldGhvZD86IHN0cmluZyB9LFxuICBGIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbixcbj4gPSBSZXN0RW5kcG9pbnRPcHRpb25zPFxuICBPcHRpb25zVG9GdW5jdGlvbjxPLCBFLCBGPixcbiAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gRXh0cmFjdDxPWydzY2hlbWEnXSwgU2NoZW1hIHwgdW5kZWZpbmVkPlxuICA6IEVbJ3NjaGVtYSddXG4+ICZcbiAgUGFydGlhbDxcbiAgICBPbWl0PFxuICAgICAgRSxcbiAgICAgIEtleW9mUmVzdEVuZHBvaW50IHwga2V5b2YgUGFydGlhbFJlc3RHZW5lcmljcyB8IGtleW9mIFJlc3RFbmRwb2ludE9wdGlvbnNcbiAgICA+XG4gID47XG5cbnR5cGUgT3B0aW9uc1RvUmVzdEVuZHBvaW50PFxuICBPIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyxcbiAgRSBleHRlbmRzIFJlc3RJbnN0YW5jZUJhc2UgJiB7IGJvZHk/OiBhbnk7IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZyB9LFxuICBGIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbixcbj4gPVxuICAncGF0aCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBSZXN0VHlwZTxcbiAgICAgICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIFtPWydzZWFyY2hQYXJhbXMnXV0gZXh0ZW5kcyBbdW5kZWZpbmVkXSA/XG4gICAgICAgICAgUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+XG4gICAgICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgIDogUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+LFxuICAgICAgT3B0aW9uc1RvQm9keUFyZ3VtZW50PFxuICAgICAgICAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID8gTyA6IEUsXG4gICAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ11cbiAgICAgID4sXG4gICAgICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBPWydzY2hlbWEnXSA6IEVbJ3NjaGVtYSddLFxuICAgICAgJ3NpZGVFZmZlY3QnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIEV4dHJhY3Q8T1snc2lkZUVmZmVjdCddLCBib29sZWFuIHwgdW5kZWZpbmVkPlxuICAgICAgOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBNZXRob2RUb1NpZGU8T1snbWV0aG9kJ10+XG4gICAgICA6IEVbJ3NpZGVFZmZlY3QnXSxcbiAgICAgIE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID8gUmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+IDogUmVzb2x2ZVR5cGU8Rj4sXG4gICAgICB7XG4gICAgICAgIHBhdGg6IEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+O1xuICAgICAgICBib2R5OiAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID8gT1snYm9keSddIDogRVsnYm9keSddO1xuICAgICAgICBzZWFyY2hQYXJhbXM6ICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NlYXJjaFBhcmFtcyddXG4gICAgICAgIDogRVsnc2VhcmNoUGFyYW1zJ107XG4gICAgICAgIG1ldGhvZDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXTtcbiAgICAgICAgcGFnaW5hdGlvbkZpZWxkOiAncGFnaW5hdGlvbkZpZWxkJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICAgIE9bJ3BhZ2luYXRpb25GaWVsZCddXG4gICAgICAgIDogRVsncGFnaW5hdGlvbkZpZWxkJ107XG4gICAgICB9XG4gICAgPlxuICA6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gP1xuICAgIFJlc3RUeXBlPFxuICAgICAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgW09bJ3NlYXJjaFBhcmFtcyddXSBleHRlbmRzIFt1bmRlZmluZWRdID9cbiAgICAgICAgICBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgOiBQYXRoQXJnczxFeGNsdWRlPEVbJ3BhdGgnXSwgdW5kZWZpbmVkPj4sXG4gICAgICBPcHRpb25zVG9Cb2R5QXJndW1lbnQ8XG4gICAgICAgIE8sXG4gICAgICAgICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ21ldGhvZCddIDogRVsnbWV0aG9kJ11cbiAgICAgID4sXG4gICAgICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBPWydzY2hlbWEnXSA6IEVbJ3NjaGVtYSddLFxuICAgICAgJ3NpZGVFZmZlY3QnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIEV4dHJhY3Q8T1snc2lkZUVmZmVjdCddLCBib29sZWFuIHwgdW5kZWZpbmVkPlxuICAgICAgOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBNZXRob2RUb1NpZGU8T1snbWV0aG9kJ10+XG4gICAgICA6IEVbJ3NpZGVFZmZlY3QnXSxcbiAgICAgIE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID8gUmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+IDogUmVzb2x2ZVR5cGU8Rj4sXG4gICAgICB7XG4gICAgICAgIHBhdGg6IEVbJ3BhdGgnXTtcbiAgICAgICAgYm9keTogT1snYm9keSddO1xuICAgICAgICBzZWFyY2hQYXJhbXM6ICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NlYXJjaFBhcmFtcyddXG4gICAgICAgIDogRVsnc2VhcmNoUGFyYW1zJ107XG4gICAgICAgIG1ldGhvZDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXTtcbiAgICAgICAgcGFnaW5hdGlvbkZpZWxkOiAncGFnaW5hdGlvbkZpZWxkJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICAgIE9bJ3BhZ2luYXRpb25GaWVsZCddXG4gICAgICAgIDogRXh0cmFjdDxFWydwYWdpbmF0aW9uRmllbGQnXSwgc3RyaW5nPjtcbiAgICAgIH1cbiAgICA+XG4gIDogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBSZXN0VHlwZTxcbiAgICAgIFtPWydzZWFyY2hQYXJhbXMnXV0gZXh0ZW5kcyBbdW5kZWZpbmVkXSA/XG4gICAgICAgIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8RVsncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICAgIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxcbiAgICAgICAgRSxcbiAgICAgICAgJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXVxuICAgICAgPixcbiAgICAgICdzY2hlbWEnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NjaGVtYSddIDogRVsnc2NoZW1hJ10sXG4gICAgICAnc2lkZUVmZmVjdCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgRXh0cmFjdDxPWydzaWRlRWZmZWN0J10sIGJvb2xlYW4gfCB1bmRlZmluZWQ+XG4gICAgICA6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT5cbiAgICAgIDogRVsnc2lkZUVmZmVjdCddLFxuICAgICAgT1sncHJvY2VzcyddIGV4dGVuZHMge30gPyBSZXR1cm5UeXBlPE9bJ3Byb2Nlc3MnXT4gOiBSZXNvbHZlVHlwZTxGPixcbiAgICAgIHtcbiAgICAgICAgcGF0aDogRVsncGF0aCddO1xuICAgICAgICBib2R5OiBFWydib2R5J107XG4gICAgICAgIHNlYXJjaFBhcmFtczogT1snc2VhcmNoUGFyYW1zJ107XG4gICAgICAgIG1ldGhvZDogJ21ldGhvZCcgZXh0ZW5kcyBrZXlvZiBPID8gT1snbWV0aG9kJ10gOiBFWydtZXRob2QnXTtcbiAgICAgICAgcGFnaW5hdGlvbkZpZWxkOiAncGFnaW5hdGlvbkZpZWxkJyBleHRlbmRzIGtleW9mIE8gP1xuICAgICAgICAgIE9bJ3BhZ2luYXRpb25GaWVsZCddXG4gICAgICAgIDogRXh0cmFjdDxFWydwYWdpbmF0aW9uRmllbGQnXSwgc3RyaW5nPjtcbiAgICAgIH1cbiAgICA+XG4gIDogUmVzdEluc3RhbmNlPFxuICAgICAgRixcbiAgICAgICdzY2hlbWEnIGV4dGVuZHMga2V5b2YgTyA/IE9bJ3NjaGVtYSddIDogRVsnc2NoZW1hJ10sXG4gICAgICAnc2lkZUVmZmVjdCcgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgICAgRXh0cmFjdDxPWydzaWRlRWZmZWN0J10sIGJvb2xlYW4gfCB1bmRlZmluZWQ+XG4gICAgICA6ICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT5cbiAgICAgIDogRVsnc2lkZUVmZmVjdCddLFxuICAgICAge1xuICAgICAgICBwYXRoOiAncGF0aCcgZXh0ZW5kcyBrZXlvZiBPID8gRXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD5cbiAgICAgICAgOiBFWydwYXRoJ107XG4gICAgICAgIGJvZHk6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J10gOiBFWydib2R5J107XG4gICAgICAgIHNlYXJjaFBhcmFtczogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2VhcmNoUGFyYW1zJ11cbiAgICAgICAgOiBFWydzZWFyY2hQYXJhbXMnXTtcbiAgICAgICAgbWV0aG9kOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXSA6IEVbJ21ldGhvZCddO1xuICAgICAgICBwYWdpbmF0aW9uRmllbGQ6ICdwYWdpbmF0aW9uRmllbGQnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgICAgT1sncGFnaW5hdGlvbkZpZWxkJ11cbiAgICAgICAgOiBFWydwYWdpbmF0aW9uRmllbGQnXTtcbiAgICAgIH1cbiAgICA+O1xuXG5leHBvcnQgdHlwZSBSZXN0RXh0ZW5kZWRFbmRwb2ludDxcbiAgTyBleHRlbmRzIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIEUgZXh0ZW5kcyBSZXN0SW5zdGFuY2VCYXNlICYgeyBnZXRQYWdlPzogdW5rbm93biB9LFxuPiA9IE9wdGlvbnNUb1Jlc3RFbmRwb2ludDxcbiAgTyxcbiAgRSAmXG4gICAgKEUgZXh0ZW5kcyB7IGdldFBhZ2U6IHsgcGFnaW5hdGlvbkZpZWxkOiBzdHJpbmcgfSB9ID9cbiAgICAgIHsgcGFnaW5hdGlvbkZpZWxkOiBFWydnZXRQYWdlJ11bJ3BhZ2luYXRpb25GaWVsZCddIH1cbiAgICA6IHVua25vd24pLFxuICBSZXN0SW5zdGFuY2U8XG4gICAgKFxuICAgICAgLi4uYXJnczogUGFyYW1ldGVyczxFPlxuICAgICkgPT4gT1sncHJvY2VzcyddIGV4dGVuZHMge30gPyBQcm9taXNlPFJldHVyblR5cGU8T1sncHJvY2VzcyddPj5cbiAgICA6IFJldHVyblR5cGU8RT4sXG4gICAgJ3NjaGVtYScgZXh0ZW5kcyBrZXlvZiBPID8gT1snc2NoZW1hJ10gOiBFWydzY2hlbWEnXSxcbiAgICAnc2lkZUVmZmVjdCcgZXh0ZW5kcyBrZXlvZiBPID8gRXh0cmFjdDxPWydzaWRlRWZmZWN0J10sIGJvb2xlYW4gfCB1bmRlZmluZWQ+XG4gICAgOiAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBNZXRob2RUb1NpZGU8T1snbWV0aG9kJ10+XG4gICAgOiBFWydzaWRlRWZmZWN0J11cbiAgPlxuPiAmXG4gIE9taXQ8TywgS2V5b2ZSZXN0RW5kcG9pbnQ+ICZcbiAgT21pdDxFLCBLZXlvZlJlc3RFbmRwb2ludCB8IGtleW9mIE8+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhcnRpYWxSZXN0R2VuZXJpY3Mge1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3BhdGggKi9cbiAgcmVhZG9ubHkgcGF0aD86IHN0cmluZztcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNzY2hlbWEgKi9cbiAgcmVhZG9ubHkgc2NoZW1hPzogU2NoZW1hIHwgdW5kZWZpbmVkO1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I21ldGhvZCAqL1xuICByZWFkb25seSBtZXRob2Q/OiBzdHJpbmc7XG4gIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjYm9keSAqL1xuICBib2R5PzogYW55O1xuICAvKiogT25seSB1c2VkIGZvciB0eXBlcyAqL1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I3NlYXJjaFBhcmFtcyAqL1xuICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjcGFnaW5hdGlvbmZpZWxkICovXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwcm9jZXNzICovXG4gIHByb2Nlc3M/KHZhbHVlOiBhbnksIC4uLmFyZ3M6IGFueSk6IGFueTtcbn1cbi8qKiBHZW5lcmljIHR5cGVzIHdoZW4gY29uc3RydWN0aW5nIGEgUmVzdEVuZHBvaW50XG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2luaGVyaXRhbmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEdlbmVyaWNzIGV4dGVuZHMgUGFydGlhbFJlc3RHZW5lcmljcyB7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUGFnaW5hdGlvbkVuZHBvaW50PFxuICBFIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiAmIFJlc3RHZW5lcmljcyAmIHsgc2lkZUVmZmVjdD86IGJvb2xlYW4gfCB1bmRlZmluZWQgfSxcbiAgQSBleHRlbmRzIGFueVtdLFxuPiA9IFJlc3RJbnN0YW5jZUJhc2U8XG4gIFBhcmFtRmV0Y2hOb0JvZHk8QVswXSwgUmVzb2x2ZVR5cGU8RT4+LFxuICBFWydzY2hlbWEnXSxcbiAgRVsnc2lkZUVmZmVjdCddLFxuICBQaWNrPEUsICdwYXRoJyB8ICdzZWFyY2hQYXJhbXMnIHwgJ2JvZHknPiAmIHtcbiAgICBzZWFyY2hQYXJhbXM6IE9taXQ8QVswXSwga2V5b2YgUGF0aEFyZ3M8RVsncGF0aCddPj47XG4gIH1cbj47XG4vKiogTWVyZ2UgcGFnaW5hdGlvbiBmaWVsZCBDIGludG8gYm9keSwgbWFraW5nIGl0IHJlcXVpcmVkICovXG50eXBlIFBhZ2luYXRpb25JbnRvQm9keTxCb2R5LCBDIGV4dGVuZHMgc3RyaW5nPiA9IEJvZHkgJiB7XG4gIFtLIGluIENdOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuO1xufTtcblxuLyoqIFBhZ2luYXRlZCBzZWFyY2hQYXJhbXMgdHlwZSAqL1xudHlwZSBQYWdpbmF0ZWRTZWFyY2hQYXJhbXM8XG4gIEUgZXh0ZW5kcyB7IHNlYXJjaFBhcmFtcz86IGFueTsgcGF0aD86IHN0cmluZyB9LFxuICBDIGV4dGVuZHMgc3RyaW5nLFxuPiA9IHtcbiAgW0sgaW4gQ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW47XG59ICYgRVsnc2VhcmNoUGFyYW1zJ10gJlxuICBQYXRoQXJnczxFeGNsdWRlPEVbJ3BhdGgnXSwgdW5kZWZpbmVkPj47XG5cbi8qKiBzZWFyY2hQYXJhbXMgdmVyc2lvbjogcGFnaW5hdGlvbiBpbiBzZWFyY2hQYXJhbXMsIG9wdGlvbmFsIGJvZHkgc3VwcG9ydCAqL1xudHlwZSBQYWdpbmF0aW9uRmllbGRJblNlYXJjaFBhcmFtczxcbiAgRSBleHRlbmRzIEZldGNoRnVuY3Rpb24gJiBSZXN0R2VuZXJpY3MgJiB7IHNpZGVFZmZlY3Q/OiBib29sZWFuIHwgdW5kZWZpbmVkIH0sXG4gIEMgZXh0ZW5kcyBzdHJpbmcsXG4+ID0gUmVzdEluc3RhbmNlQmFzZTxcbiAgLy8gVW5pb24gYWxsb3dzIGNhbGxpbmcgd2l0aCBqdXN0IHNlYXJjaFBhcmFtcyBvciB3aXRoIHNlYXJjaFBhcmFtcyArIGJvZHlcbiAgfCBQYXJhbUZldGNoTm9Cb2R5PFBhZ2luYXRlZFNlYXJjaFBhcmFtczxFLCBDPiwgUmVzb2x2ZVR5cGU8RT4+XG4gIHwgUGFyYW1GZXRjaFdpdGhCb2R5PFxuICAgICAgUGFnaW5hdGVkU2VhcmNoUGFyYW1zPEUsIEM+LFxuICAgICAgTm9uTnVsbGFibGU8RVsnYm9keSddPixcbiAgICAgIFJlc29sdmVUeXBlPEU+XG4gICAgPixcbiAgRVsnc2NoZW1hJ10sXG4gIEVbJ3NpZGVFZmZlY3QnXSxcbiAgUGljazxFLCAncGF0aCcgfCAnc2VhcmNoUGFyYW1zJyB8ICdib2R5Jz4gJiB7XG4gICAgc2VhcmNoUGFyYW1zOiB7XG4gICAgICBbSyBpbiBDXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbjtcbiAgICB9ICYgRVsnc2VhcmNoUGFyYW1zJ107XG4gIH1cbj4gJiB7IHBhZ2luYXRpb25GaWVsZDogQyB9O1xuXG4vKiogYm9keSB2ZXJzaW9uOiBwYWdpbmF0aW9uIGZpZWxkIGlzIGluIGJvZHkgKGJvZHkgcmVxdWlyZWQpICovXG50eXBlIFBhZ2luYXRpb25GaWVsZEluQm9keTxcbiAgRSBleHRlbmRzIEZldGNoRnVuY3Rpb24gJiBSZXN0R2VuZXJpY3MgJiB7IHNpZGVFZmZlY3Q/OiBib29sZWFuIHwgdW5kZWZpbmVkIH0sXG4gIEMgZXh0ZW5kcyBzdHJpbmcsXG4+ID0gUmVzdEluc3RhbmNlQmFzZTxcbiAgUGFyYW1GZXRjaFdpdGhCb2R5PFxuICAgIEVbJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8RXhjbHVkZTxFWydwYXRoJ10sIHVuZGVmaW5lZD4+LFxuICAgIFBhZ2luYXRpb25JbnRvQm9keTxFWydib2R5J10sIEM+LFxuICAgIFJlc29sdmVUeXBlPEU+XG4gID4sXG4gIEVbJ3NjaGVtYSddLFxuICBFWydzaWRlRWZmZWN0J10sXG4gIFBpY2s8RSwgJ3BhdGgnIHwgJ3NlYXJjaFBhcmFtcyc+ICYge1xuICAgIGJvZHk6IFBhZ2luYXRpb25JbnRvQm9keTxFWydib2R5J10sIEM+O1xuICB9XG4+ICYgeyBwYWdpbmF0aW9uRmllbGQ6IEMgfTtcblxuLyoqIFJldHJpZXZlcyB0aGUgbmV4dCBwYWdlIG9mIHJlc3VsdHMgYnkgcGFnaW5hdGlvbiBmaWVsZCAqL1xuZXhwb3J0IHR5cGUgUGFnaW5hdGlvbkZpZWxkRW5kcG9pbnQ8XG4gIEUgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uICYgUmVzdEdlbmVyaWNzICYgeyBzaWRlRWZmZWN0PzogYm9vbGVhbiB8IHVuZGVmaW5lZCB9LFxuICBDIGV4dGVuZHMgc3RyaW5nLFxuPiA9XG4gIC8vIElmIGJvZHkgY2FuIGJlIHVuZGVmaW5lZCBvciBwYWdpbmF0aW9uIGZpZWxkIG5vdCBpbiBib2R5LCB1c2Ugc2VhcmNoUGFyYW1zXG4gIHVuZGVmaW5lZCBleHRlbmRzIEVbJ2JvZHknXSA/IFBhZ2luYXRpb25GaWVsZEluU2VhcmNoUGFyYW1zPEUsIEM+XG4gIDogLy8gSWYgcGFnaW5hdGlvbiBmaWVsZCBDIGlzIGEga2V5IG9mIGJvZHksIG1lcmdlIGludG8gYm9keVxuICBDIGV4dGVuZHMga2V5b2YgRVsnYm9keSddID8gUGFnaW5hdGlvbkZpZWxkSW5Cb2R5PEUsIEM+XG4gIDogLy8gT3RoZXJ3aXNlIHVzZSBzZWFyY2hQYXJhbXNcbiAgICBQYWdpbmF0aW9uRmllbGRJblNlYXJjaFBhcmFtczxFLCBDPjtcblxuZXhwb3J0IHR5cGUgQWRkRW5kcG9pbnQ8XG4gIEYgZXh0ZW5kcyBGZXRjaEZ1bmN0aW9uID0gRmV0Y2hGdW5jdGlvbixcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IGFueSxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keTogYW55O1xuICAgIHNlYXJjaFBhcmFtcz86IGFueTtcbiAgfSA9IHsgcGF0aDogc3RyaW5nOyBib2R5OiBhbnkgfSxcbj4gPSBSZXN0SW5zdGFuY2VCYXNlPFxuICBSZXN0RmV0Y2g8XG4gICAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgIFtPWydzZWFyY2hQYXJhbXMnXV0gZXh0ZW5kcyBbdW5kZWZpbmVkXSA/XG4gICAgICAgIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PlxuICAgIDogUGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+LFxuICAgIE9bJ2JvZHknXSxcbiAgICBSZXNvbHZlVHlwZTxGPlxuICA+LFxuICBTLFxuICB0cnVlLFxuICBPbWl0PE8sICdtZXRob2QnPiAmIHsgbWV0aG9kOiAnUE9TVCcgfVxuPjtcbmV4cG9ydCB0eXBlIFJlbW92ZUVuZHBvaW50PFxuICBGIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiA9IEZldGNoRnVuY3Rpb24sXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSBhbnksXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk6IGFueTtcbiAgICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gIH0gPSB7IHBhdGg6IHN0cmluZzsgYm9keTogYW55IH0sXG4+ID0gUmVzdEluc3RhbmNlQmFzZTxcbiAgUmVzdEZldGNoPFxuICAgICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICBbT1snc2VhcmNoUGFyYW1zJ11dIGV4dGVuZHMgW3VuZGVmaW5lZF0gP1xuICAgICAgICBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxFeGNsdWRlPE9bJ3BhdGgnXSwgdW5kZWZpbmVkPj5cbiAgICA6IFBhdGhBcmdzPEV4Y2x1ZGU8T1sncGF0aCddLCB1bmRlZmluZWQ+PixcbiAgICBPWydib2R5J10sXG4gICAgUmVzb2x2ZVR5cGU8Rj5cbiAgPixcbiAgUyxcbiAgdHJ1ZSxcbiAgT21pdDxPLCAnbWV0aG9kJz4gJiB7IG1ldGhvZDogJ1BBVENIJyB9XG4+O1xuZXhwb3J0IHR5cGUgTW92ZUVuZHBvaW50PFxuICBGIGV4dGVuZHMgRmV0Y2hGdW5jdGlvbiA9IEZldGNoRnVuY3Rpb24sXG4gIFMgZXh0ZW5kcyBTY2hlbWEgfCB1bmRlZmluZWQgPSBhbnksXG4gIE8gZXh0ZW5kcyB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIGJvZHk6IGFueTtcbiAgfSA9IHsgcGF0aDogc3RyaW5nOyBib2R5OiBhbnkgfSxcbj4gPSBSZXN0SW5zdGFuY2VCYXNlPFxuICBSZXN0RmV0Y2g8UGF0aEFyZ3M8RXhjbHVkZTxPWydwYXRoJ10sIHVuZGVmaW5lZD4+LCBPWydib2R5J10sIFJlc29sdmVUeXBlPEY+PixcbiAgUyxcbiAgdHJ1ZSxcbiAgT21pdDxPLCAnbWV0aG9kJyB8ICdzZWFyY2hQYXJhbXMnPiAmIHsgbWV0aG9kOiAnUEFUQ0gnIH1cbj47XG5cbnR5cGUgT3B0aW9uc0JvZHlEZWZhdWx0PE8gZXh0ZW5kcyBSZXN0R2VuZXJpY3M+ID1cbiAgJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9cbiAgOiBPWydtZXRob2QnXSBleHRlbmRzICdQT1NUJyB8ICdQVVQnIHwgJ1BBVENIJyA/IE8gJiB7IGJvZHk6IGFueSB9XG4gIDogTyAmIHsgYm9keTogdW5kZWZpbmVkIH07XG5cbnR5cGUgT3B0aW9uc1RvQWRkZXJCb2R5QXJndW1lbnQ8TyBleHRlbmRzIHsgYm9keT86IGFueSB9PiA9XG4gICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J10gOiBhbnk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEVuZHBvaW50T3B0aW9uczxcbiAgRiBleHRlbmRzIEZldGNoRnVuY3Rpb24gPSBGZXRjaEZ1bmN0aW9uLFxuICBTIGV4dGVuZHMgU2NoZW1hIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuPiBleHRlbmRzIEVuZHBvaW50RXh0cmFPcHRpb25zPEY+IHtcbiAgLyoqIFByZXBlbmRlZCB0byBhbGwgdXJsc1xuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjdXJsUHJlZml4XG4gICAqL1xuICB1cmxQcmVmaXg/OiBzdHJpbmc7XG4gIHJlcXVlc3RJbml0PzogUmVxdWVzdEluaXQ7XG4gIC8qKiBDYWxsZWQgYnkgZ2V0UmVxdWVzdEluaXQgdG8gZGV0ZXJtaW5lIEhUVFAgSGVhZGVyc1xuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjZ2V0SGVhZGVyc1xuICAgKi9cbiAgZ2V0SGVhZGVycz8oaGVhZGVyczogSGVhZGVyc0luaXQpOiBQcm9taXNlPEhlYWRlcnNJbml0PiB8IEhlYWRlcnNJbml0O1xuICAvKiogUHJlcGFyZXMgUmVxdWVzdEluaXQgdXNlZCBpbiBmZXRjaC4gVGhpcyBpcyBzZW50IHRvIGZldGNoUmVzcG9uc2UoKVxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnQjZ2V0UmVxdWVzdEluaXRcbiAgICovXG4gIGdldFJlcXVlc3RJbml0Pyhib2R5OiBhbnkpOiBQcm9taXNlPFJlcXVlc3RJbml0PiB8IFJlcXVlc3RJbml0O1xuICAvKiogUGVyZm9ybXMgdGhlIGZldGNoIGNhbGxcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvUmVzdEVuZHBvaW50I2ZldGNoUmVzcG9uc2VcbiAgICovXG4gIGZldGNoUmVzcG9uc2U/KGlucHV0OiBSZXF1ZXN0SW5mbywgaW5pdDogUmVxdWVzdEluaXQpOiBQcm9taXNlPGFueT47XG4gIC8qKiBUYWtlcyB0aGUgUmVzcG9uc2UgYW5kIHBhcnNlcyB2aWEgLnRleHQoKSBvciAuanNvbigpXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYXJzZVJlc3BvbnNlXG4gICAqL1xuICBwYXJzZVJlc3BvbnNlPyhyZXNwb25zZTogUmVzcG9uc2UpOiBQcm9taXNlPGFueT47XG5cbiAgc2lkZUVmZmVjdD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHNpZ25hbD86IEFib3J0U2lnbmFsO1xuICBmZXRjaD86IEY7XG4gIGtleT8oLi4uYXJnczogUGFyYW1ldGVyczxGPik6IHN0cmluZztcbiAgdXJsPyguLi5hcmdzOiBQYXJhbWV0ZXJzPEY+KTogc3RyaW5nO1xuICB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEYsIFM+O1xufVxuXG5leHBvcnQgdHlwZSBSZXN0RW5kcG9pbnRDb25zdHJ1Y3Rvck9wdGlvbnM8TyBleHRlbmRzIFJlc3RHZW5lcmljcyA9IGFueT4gPVxuICBSZXN0RW5kcG9pbnRPcHRpb25zPFxuICAgIFJlc3RGZXRjaDxcbiAgICAgICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgICAgIFtPWydzZWFyY2hQYXJhbXMnXV0gZXh0ZW5kcyBbdW5kZWZpbmVkXSA/XG4gICAgICAgICAgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgICAgOiBQYXRoQXJnczxPWydwYXRoJ10+LFxuICAgICAgT3B0aW9uc1RvQm9keUFyZ3VtZW50PFxuICAgICAgICBPLFxuICAgICAgICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXVxuICAgICAgICA6IE8gZXh0ZW5kcyB7IHNpZGVFZmZlY3Q6IHRydWUgfSA/ICdQT1NUJ1xuICAgICAgICA6ICdHRVQnXG4gICAgICA+LFxuICAgICAgT1sncHJvY2VzcyddIGV4dGVuZHMge30gPyBSZXR1cm5UeXBlPE9bJ3Byb2Nlc3MnXT5cbiAgICAgIDogYW55IC8qRGVub3JtYWxpemU8T1snc2NoZW1hJ10+Ki9cbiAgICA+LFxuICAgIE9bJ3NjaGVtYSddXG4gID47XG5cbi8qKiBTaW1wbGlmaWVzIGVuZHBvaW50IGRlZmluaXRpb25zIHRoYXQgZm9sbG93IFJFU1QgcGF0dGVybnNcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXN0RW5kcG9pbnQ8XG4gIE8gZXh0ZW5kcyBSZXN0R2VuZXJpY3MgPSBhbnksXG4+IGV4dGVuZHMgUmVzdEluc3RhbmNlPFxuICBSZXN0RmV0Y2g8XG4gICAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICAgIFtPWydzZWFyY2hQYXJhbXMnXV0gZXh0ZW5kcyBbdW5kZWZpbmVkXSA/XG4gICAgICAgIFBhdGhBcmdzPE9bJ3BhdGgnXT5cbiAgICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxPWydwYXRoJ10+XG4gICAgOiBQYXRoQXJnczxPWydwYXRoJ10+LFxuICAgIE9wdGlvbnNUb0JvZHlBcmd1bWVudDxcbiAgICAgIE8sXG4gICAgICAnbWV0aG9kJyBleHRlbmRzIGtleW9mIE8gPyBPWydtZXRob2QnXVxuICAgICAgOiBPIGV4dGVuZHMgeyBzaWRlRWZmZWN0OiB0cnVlIH0gPyAnUE9TVCdcbiAgICAgIDogJ0dFVCdcbiAgICA+LFxuICAgIE9bJ3Byb2Nlc3MnXSBleHRlbmRzIHt9ID8gUmV0dXJuVHlwZTxPWydwcm9jZXNzJ10+XG4gICAgOiBhbnkgLypEZW5vcm1hbGl6ZTxPWydzY2hlbWEnXT4qL1xuICA+LFxuICAnc2NoZW1hJyBleHRlbmRzIGtleW9mIE8gPyBPWydzY2hlbWEnXSA6IHVuZGVmaW5lZCxcbiAgJ3NpZGVFZmZlY3QnIGV4dGVuZHMga2V5b2YgTyA/IEV4dHJhY3Q8T1snc2lkZUVmZmVjdCddLCBib29sZWFuIHwgdW5kZWZpbmVkPlxuICA6IE1ldGhvZFRvU2lkZTxPWydtZXRob2QnXT4sXG4gICdtZXRob2QnIGV4dGVuZHMga2V5b2YgTyA/IE9cbiAgOiBPICYge1xuICAgICAgbWV0aG9kOiBPIGV4dGVuZHMgeyBzaWRlRWZmZWN0OiB0cnVlIH0gPyAnUE9TVCcgOiAnR0VUJztcbiAgICB9XG4+IHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEVuZHBvaW50Q29uc3RydWN0b3Ige1xuICAvKiogU2ltcGxpZmllcyBlbmRwb2ludCBkZWZpbml0aW9ucyB0aGF0IGZvbGxvdyBSRVNUIHBhdHRlcm5zXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludFxuICAgKi9cbiAgbmV3IDxPIGV4dGVuZHMgUmVzdEdlbmVyaWNzID0gYW55Pih7XG4gICAgbWV0aG9kLFxuICAgIHNpZGVFZmZlY3QsXG4gICAgbmFtZSxcbiAgICAuLi5vcHRpb25zXG4gIH06IFJlc3RFbmRwb2ludENvbnN0cnVjdG9yT3B0aW9uczxPPiAmIFJlYWRvbmx5PE8+KTogUmVzdEVuZHBvaW50PE8+O1xuICByZWFkb25seSBwcm90b3R5cGU6IFJlc3RJbnN0YW5jZUJhc2U7XG59XG5cbmV4cG9ydCB0eXBlIE1ldGhvZFRvU2lkZTxNPiA9XG4gIE0gZXh0ZW5kcyBzdHJpbmcgP1xuICAgIE0gZXh0ZW5kcyAnR0VUJyA/XG4gICAgICB1bmRlZmluZWRcbiAgICA6IHRydWVcbiAgOiB1bmRlZmluZWQ7XG5cbi8qKiBSZXN0RW5kcG9pbnQgdHlwZXMgc2ltcGxpZmllZCAqL1xuZXhwb3J0IHR5cGUgUmVzdFR5cGU8XG4gIFVybFBhcmFtcyA9IGFueSxcbiAgQm9keSA9IGFueSxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IFNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgTSBleHRlbmRzIGJvb2xlYW4gfCB1bmRlZmluZWQgPSBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBSID0gYW55LFxuICBPIGV4dGVuZHMge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5PzogYW55O1xuICAgIHNlYXJjaFBhcmFtcz86IGFueTtcbiAgICBwYWdpbmF0aW9uRmllbGQ/OiBzdHJpbmc7XG4gIH0gPSB7IHBhdGg6IHN0cmluZzsgcGFnaW5hdGlvbkZpZWxkOiBzdHJpbmcgfSxcbj4gPSBJZlR5cGVTY3JpcHRMb29zZU51bGw8XG4gIFJlc3RJbnN0YW5jZTxSZXN0RmV0Y2g8VXJsUGFyYW1zLCBCb2R5LCBSPiwgUywgTSwgTz4sXG4gIEJvZHkgZXh0ZW5kcyB7fSA/IFJlc3RUeXBlV2l0aEJvZHk8VXJsUGFyYW1zLCBTLCBNLCBCb2R5LCBSLCBPPlxuICA6IFJlc3RUeXBlTm9Cb2R5PFVybFBhcmFtcywgUywgTSwgUiwgTz5cbj47XG5cbmV4cG9ydCB0eXBlIFJlc3RUeXBlV2l0aEJvZHk8XG4gIFVybFBhcmFtcyA9IGFueSxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IFNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgTSBleHRlbmRzIGJvb2xlYW4gfCB1bmRlZmluZWQgPSBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBCb2R5ID0gYW55LFxuICBSID0gYW55IC8qRGVub3JtYWxpemU8Uz4qLyxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keT86IGFueTtcbiAgICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gIH0gPSB7IHBhdGg6IHN0cmluZzsgYm9keTogYW55IH0sXG4+ID0gUmVzdEluc3RhbmNlPFBhcmFtRmV0Y2hXaXRoQm9keTxVcmxQYXJhbXMsIEJvZHksIFI+LCBTLCBNLCBPPjtcblxuZXhwb3J0IHR5cGUgUmVzdFR5cGVOb0JvZHk8XG4gIFVybFBhcmFtcyA9IGFueSxcbiAgUyBleHRlbmRzIFNjaGVtYSB8IHVuZGVmaW5lZCA9IFNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgTSBleHRlbmRzIGJvb2xlYW4gfCB1bmRlZmluZWQgPSBib29sZWFuIHwgdW5kZWZpbmVkLFxuICBSID0gYW55IC8qRGVub3JtYWxpemU8Uz4qLyxcbiAgTyBleHRlbmRzIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgYm9keT86IHVuZGVmaW5lZDtcbiAgICBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gIH0gPSB7IHBhdGg6IHN0cmluZzsgYm9keTogdW5kZWZpbmVkIH0sXG4+ID0gUmVzdEluc3RhbmNlPFBhcmFtRmV0Y2hOb0JvZHk8VXJsUGFyYW1zLCBSPiwgUywgTSwgTz47XG5cbi8qKiBTaW1wbGUgcGFyYW1ldGVycywgYW5kIGJvZHkgZmV0Y2ggZnVuY3Rpb25zICovXG5leHBvcnQgdHlwZSBSZXN0RmV0Y2g8XG4gIFVybFBhcmFtcyxcbiAgQm9keSA9IHt9LFxuICBSZXNvbHZlID0gYW55LFxuPiA9IElmVHlwZVNjcmlwdExvb3NlTnVsbDxcbiAgfCBQYXJhbUZldGNoTm9Cb2R5PFVybFBhcmFtcywgUmVzb2x2ZT5cbiAgfCBQYXJhbUZldGNoV2l0aEJvZHk8VXJsUGFyYW1zLCBCb2R5LCBSZXNvbHZlPixcbiAgQm9keSBleHRlbmRzIHt9ID8gUGFyYW1GZXRjaFdpdGhCb2R5PFVybFBhcmFtcywgQm9keSwgUmVzb2x2ZT5cbiAgOiBQYXJhbUZldGNoTm9Cb2R5PFVybFBhcmFtcywgUmVzb2x2ZT5cbj47XG5cbmV4cG9ydCB0eXBlIFBhcmFtRmV0Y2hXaXRoQm9keTxQLCBCID0ge30sIFIgPSBhbnk+ID1cbiAgLy8gd2UgbXVzdCBhbHdheXMgYWxsb3cgdW5kZWZpbmVkIGluIGEgdW5pb24gYW5kIGdpdmUgaXQgYSB0eXBlIHdpdGhvdXQgcGFyYW1zXG4gIFAgZXh0ZW5kcyB1bmRlZmluZWQgPyAodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgYm9keTogQikgPT4gUHJvbWlzZTxSPlxuICA6IC8vIGV2ZW4gd2l0aCBsb29zZSBudWxsLCB0aGlzIHdpbGwgb25seSBiZSB0cnVlIHdoZW4gYWxsIG1lbWJlcnMgYXJlIG9wdGlvbmFsXG4gIHt9IGV4dGVuZHMgUCA/XG4gICAgLy8gdGhpcyBzYWZlbHkgaGFuZGxlcyBQYXRoQXJncyB3aXRoIG5vIG1lbWJlcnMgdGhhdCByZXN1bHRzIGluIGEgc2ltcGxlIGB1bmtub3duYCB0eXBlXG4gICAga2V5b2YgUCBleHRlbmRzIG5ldmVyID9cbiAgICAgICh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBib2R5OiBCKSA9PiBQcm9taXNlPFI+XG4gICAgOiB8ICgodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSwgcGFyYW1zOiBQLCBib2R5OiBCKSA9PiBQcm9taXNlPFI+KVxuICAgICAgfCAoKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIGJvZHk6IEIpID0+IFByb21pc2U8Uj4pXG4gIDogKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIHBhcmFtczogUCwgYm9keTogQikgPT4gUHJvbWlzZTxSPjtcblxuZXhwb3J0IHR5cGUgUGFyYW1GZXRjaE5vQm9keTxQLCBSID0gYW55PiA9XG4gIC8vIHdlIG11c3QgYWx3YXlzIGFsbG93IHVuZGVmaW5lZCBpbiBhIHVuaW9uIGFuZCBnaXZlIGl0IGEgdHlwZSB3aXRob3V0IHBhcmFtc1xuICBQIGV4dGVuZHMgdW5kZWZpbmVkID8gKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UpID0+IFByb21pc2U8Uj5cbiAgOiAvLyBldmVuIHdpdGggbG9vc2UgbnVsbCwgdGhpcyB3aWxsIG9ubHkgYmUgdHJ1ZSB3aGVuIGFsbCBtZW1iZXJzIGFyZSBvcHRpb25hbFxuICB7fSBleHRlbmRzIFAgP1xuICAgIC8vIHRoaXMgc2FmZWx5IGhhbmRsZXMgUGF0aEFyZ3Mgd2l0aCBubyBtZW1iZXJzIHRoYXQgcmVzdWx0cyBpbiBhIHNpbXBsZSBgdW5rbm93bmAgdHlwZVxuICAgIGtleW9mIFAgZXh0ZW5kcyBuZXZlciA/XG4gICAgICAodGhpczogRW5kcG9pbnRJbnN0YW5jZUludGVyZmFjZSkgPT4gUHJvbWlzZTxSPlxuICAgIDogfCAoKHRoaXM6IEVuZHBvaW50SW5zdGFuY2VJbnRlcmZhY2UsIHBhcmFtczogUCkgPT4gUHJvbWlzZTxSPilcbiAgICAgIHwgKCh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlKSA9PiBQcm9taXNlPFI+KVxuICA6ICh0aGlzOiBFbmRwb2ludEluc3RhbmNlSW50ZXJmYWNlLCBwYXJhbXM6IFApID0+IFByb21pc2U8Uj47XG5cbi8vIHNhbWUgYWxnb3JpdGhtLCBidXQgZm9yIEFyZ3MgKGFrYSByZWFkb25seSBhbnlbXSlcbmV4cG9ydCB0eXBlIFBhcmFtVG9BcmdzPFA+ID1cbiAgUCBleHRlbmRzIHVuZGVmaW5lZCA/IFtdXG4gIDoge30gZXh0ZW5kcyBQID9cbiAgICBrZXlvZiBQIGV4dGVuZHMgbmV2ZXIgP1xuICAgICAgW11cbiAgICA6IFtdIHwgW1BdXG4gIDogW1BdO1xuXG50eXBlIElmVHlwZVNjcmlwdExvb3NlTnVsbDxZLCBOPiA9IDEgfCB1bmRlZmluZWQgZXh0ZW5kcyAxID8gWSA6IE47XG5cbmV4cG9ydCB0eXBlIEtleW9mUmVzdEVuZHBvaW50ID0ga2V5b2YgUmVzdEluc3RhbmNlO1xuXG5leHBvcnQgdHlwZSBGcm9tRmFsbEJhY2s8SyBleHRlbmRzIGtleW9mIEUsIE8sIEU+ID1cbiAgSyBleHRlbmRzIGtleW9mIE8gPyBPW0tdIDogRVtLXTtcblxuZXhwb3J0IHR5cGUgRmV0Y2hNdXRhdGU8XG4gIEEgZXh0ZW5kcyByZWFkb25seSBhbnlbXSA9IFthbnksIHt9XSB8IFt7fV0sXG4gIFIgPSBhbnksXG4+ID0gKHRoaXM6IFJlc3RJbnN0YW5jZSwgLi4uYXJnczogQSkgPT4gUHJvbWlzZTxSPjtcblxuZXhwb3J0IHR5cGUgRmV0Y2hHZXQ8QSBleHRlbmRzIHJlYWRvbmx5IGFueVtdID0gW2FueV0sIFIgPSBhbnk+ID0gKFxuICB0aGlzOiBSZXN0SW5zdGFuY2UsXG4gIC4uLmFyZ3M6IEFcbikgPT4gUHJvbWlzZTxSPjtcblxuZXhwb3J0IHR5cGUgRGVmYXVsdHM8TywgRD4gPSB7XG4gIFtLIGluIGtleW9mIE8gfCBrZXlvZiBEXTogSyBleHRlbmRzIGtleW9mIE8gPyBFeGNsdWRlPE9bS10sIHVuZGVmaW5lZD5cbiAgOiBEW0V4dHJhY3Q8Sywga2V5b2YgRD5dO1xufTtcblxuZXhwb3J0IHR5cGUgR2V0RW5kcG9pbnQ8XG4gIE8gZXh0ZW5kcyB7XG4gICAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHNjaGVtYTogU2NoZW1hO1xuICAgIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gICAgcmVhZG9ubHkgc2VhcmNoUGFyYW1zPzogYW55O1xuICAgIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbiAgfSA9IHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgc2NoZW1hOiBTY2hlbWE7XG4gIH0sXG4+ID0gUmVzdFR5cGVOb0JvZHk8XG4gICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgW09bJ3NlYXJjaFBhcmFtcyddXSBleHRlbmRzIFt1bmRlZmluZWRdID9cbiAgICAgIFBhdGhBcmdzPE9bJ3BhdGgnXT5cbiAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8T1sncGF0aCddPlxuICA6IFBhdGhBcmdzPE9bJ3BhdGgnXT4sXG4gIE9bJ3NjaGVtYSddLFxuICB1bmRlZmluZWQsXG4gIGFueSxcbiAgTyAmIHsgbWV0aG9kOiAnR0VUJyB9XG4+O1xuXG5leHBvcnQgdHlwZSBNdXRhdGVFbmRwb2ludDxcbiAgTyBleHRlbmRzIHtcbiAgICByZWFkb25seSBwYXRoOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgc2NoZW1hOiBTY2hlbWE7XG4gICAgLyoqIE9ubHkgdXNlZCBmb3IgdHlwZXMgKi9cbiAgICByZWFkb25seSBzZWFyY2hQYXJhbXM/OiBhbnk7XG4gICAgLyoqIE9ubHkgdXNlZCBmb3IgdHlwZXMgKi9cbiAgICByZWFkb25seSBib2R5PzogYW55O1xuICB9ID0ge1xuICAgIHBhdGg6IHN0cmluZztcbiAgICBib2R5OiBhbnk7XG4gICAgc2NoZW1hOiBTY2hlbWE7XG4gIH0sXG4+ID0gUmVzdFR5cGVXaXRoQm9keTxcbiAgJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBbT1snc2VhcmNoUGFyYW1zJ11dIGV4dGVuZHMgW3VuZGVmaW5lZF0gP1xuICAgICAgUGF0aEFyZ3M8T1sncGF0aCddPlxuICAgIDogT1snc2VhcmNoUGFyYW1zJ10gJiBQYXRoQXJnczxPWydwYXRoJ10+XG4gIDogUGF0aEFyZ3M8T1sncGF0aCddPixcbiAgT1snc2NoZW1hJ10sXG4gIHRydWUsXG4gIE9bJ2JvZHknXSxcbiAgYW55LFxuICBPICYgeyBib2R5OiBhbnk7IG1ldGhvZDogJ1BPU1QnIHwgJ1BVVCcgfCAnUEFUQ0gnIHwgJ0RFTEVURScgfVxuPjtcbiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -1,20 +1,34 @@
1
1
  import { compile, parse } from 'path-to-regexp';
2
- const urlBaseCache = new Map();
2
+ const urlBaseCache = Object.create(null);
3
3
  export function getUrlBase(path) {
4
- if (!urlBaseCache.has(path)) {
5
- urlBaseCache.set(path, compile(path, {
6
- encode: encodeURIComponent,
7
- validate: false
8
- }));
4
+ if (!(path in urlBaseCache)) {
5
+ urlBaseCache[path] = compile(path);
9
6
  }
10
- return urlBaseCache.get(path);
7
+ return urlBaseCache[path];
11
8
  }
12
- const urlTokensCache = new Map();
9
+ const urlTokensCache = Object.create(null);
13
10
  export function getUrlTokens(path) {
14
- if (!urlTokensCache.has(path)) {
15
- urlTokensCache.set(path, new Set(parse(path).map(t => typeof t === 'string' ? t : `${t['name']}`)));
11
+ if (!(path in urlTokensCache)) {
12
+ urlTokensCache[path] = tokenMap(parse(path).tokens);
16
13
  }
17
- return urlTokensCache.get(path);
14
+ return urlTokensCache[path];
15
+ }
16
+ function tokenMap(tokens) {
17
+ const tokenNames = new Set();
18
+ for (const token of tokens) {
19
+ switch (token.type) {
20
+ case 'param':
21
+ case 'wildcard':
22
+ tokenNames.add(token.name);
23
+ break;
24
+ case 'group':
25
+ for (const name of tokenMap(token.tokens)) {
26
+ tokenNames.add(name);
27
+ }
28
+ break;
29
+ }
30
+ }
31
+ return tokenNames;
18
32
  }
19
33
  const proto = Object.prototype;
20
34
  const gpo = Object.getPrototypeOf;
@@ -25,11 +39,10 @@ export function isPojo(obj) {
25
39
  return gpo(obj) === proto;
26
40
  }
27
41
  export function shortenPath(path) {
28
- const lastColonIndex = path.lastIndexOf(':');
29
- if (lastColonIndex === -1) throw new Error('Resource path requires at least one :parameter');
30
- // this is for when not specifying a specific item like create/list
31
- let shortUrlRoot = path.substring(0, lastColonIndex);
42
+ const lastTokenIndex = Math.max(path.lastIndexOf(':'), path.lastIndexOf('*'));
43
+ if (lastTokenIndex === -1) throw new Error('Resource path requires at least one :parameter or *wildcard');
44
+ let shortUrlRoot = path.substring(0, lastTokenIndex);
32
45
  if (shortUrlRoot[shortUrlRoot.length - 1] === '/') shortUrlRoot = shortUrlRoot.substring(0, shortUrlRoot.length - 1);
33
46
  return shortUrlRoot;
34
47
  }
35
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21waWxlIiwicGFyc2UiLCJ1cmxCYXNlQ2FjaGUiLCJNYXAiLCJnZXRVcmxCYXNlIiwicGF0aCIsImhhcyIsInNldCIsImVuY29kZSIsImVuY29kZVVSSUNvbXBvbmVudCIsInZhbGlkYXRlIiwiZ2V0IiwidXJsVG9rZW5zQ2FjaGUiLCJnZXRVcmxUb2tlbnMiLCJTZXQiLCJtYXAiLCJ0IiwicHJvdG8iLCJPYmplY3QiLCJwcm90b3R5cGUiLCJncG8iLCJnZXRQcm90b3R5cGVPZiIsImlzUG9qbyIsIm9iaiIsInNob3J0ZW5QYXRoIiwibGFzdENvbG9uSW5kZXgiLCJsYXN0SW5kZXhPZiIsIkVycm9yIiwic2hvcnRVcmxSb290Iiwic3Vic3RyaW5nIiwibGVuZ3RoIl0sInNvdXJjZXMiOlsiLi4vc3JjL1Jlc3RIZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXBpbGUsIFBhdGhGdW5jdGlvbiwgcGFyc2UgfSBmcm9tICdwYXRoLXRvLXJlZ2V4cCc7XG5cbmltcG9ydCB7IFNob3J0ZW5QYXRoIH0gZnJvbSAnLi9wYXRoVHlwZXMuanMnO1xuXG5jb25zdCB1cmxCYXNlQ2FjaGU6IE1hcDxzdHJpbmcsIFBhdGhGdW5jdGlvbjxvYmplY3Q+PiA9IG5ldyBNYXAoKTtcbmV4cG9ydCBmdW5jdGlvbiBnZXRVcmxCYXNlKHBhdGg6IHN0cmluZyk6IFBhdGhGdW5jdGlvbiB7XG4gIGlmICghdXJsQmFzZUNhY2hlLmhhcyhwYXRoKSkge1xuICAgIHVybEJhc2VDYWNoZS5zZXQoXG4gICAgICBwYXRoLFxuICAgICAgY29tcGlsZShwYXRoLCB7XG4gICAgICAgIGVuY29kZTogZW5jb2RlVVJJQ29tcG9uZW50LFxuICAgICAgICB2YWxpZGF0ZTogZmFsc2UsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG4gIHJldHVybiB1cmxCYXNlQ2FjaGUuZ2V0KHBhdGgpIGFzIFBhdGhGdW5jdGlvbjtcbn1cblxuY29uc3QgdXJsVG9rZW5zQ2FjaGU6IE1hcDxzdHJpbmcsIFNldDxzdHJpbmc+PiA9IG5ldyBNYXAoKTtcbmV4cG9ydCBmdW5jdGlvbiBnZXRVcmxUb2tlbnMocGF0aDogc3RyaW5nKTogU2V0PHN0cmluZz4ge1xuICBpZiAoIXVybFRva2Vuc0NhY2hlLmhhcyhwYXRoKSkge1xuICAgIHVybFRva2Vuc0NhY2hlLnNldChcbiAgICAgIHBhdGgsXG4gICAgICBuZXcgU2V0KFxuICAgICAgICBwYXJzZShwYXRoKS5tYXAodCA9PiAodHlwZW9mIHQgPT09ICdzdHJpbmcnID8gdCA6IGAke3RbJ25hbWUnXX1gKSksXG4gICAgICApLFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHVybFRva2Vuc0NhY2hlLmdldChwYXRoKSBhcyBTZXQ8c3RyaW5nPjtcbn1cblxuY29uc3QgcHJvdG8gPSBPYmplY3QucHJvdG90eXBlO1xuY29uc3QgZ3BvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNQb2pvKG9iajogdW5rbm93bik6IG9iaiBpcyBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgaWYgKG9iaiA9PT0gbnVsbCB8fCB0eXBlb2Ygb2JqICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gZ3BvKG9iaikgPT09IHByb3RvO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvcnRlblBhdGg8UyBleHRlbmRzIHN0cmluZz4ocGF0aDogUyk6IFNob3J0ZW5QYXRoPFM+IHtcbiAgY29uc3QgbGFzdENvbG9uSW5kZXggPSBwYXRoLmxhc3RJbmRleE9mKCc6Jyk7XG4gIGlmIChsYXN0Q29sb25JbmRleCA9PT0gLTEpXG4gICAgdGhyb3cgbmV3IEVycm9yKCdSZXNvdXJjZSBwYXRoIHJlcXVpcmVzIGF0IGxlYXN0IG9uZSA6cGFyYW1ldGVyJyk7XG4gIC8vIHRoaXMgaXMgZm9yIHdoZW4gbm90IHNwZWNpZnlpbmcgYSBzcGVjaWZpYyBpdGVtIGxpa2UgY3JlYXRlL2xpc3RcbiAgbGV0IHNob3J0VXJsUm9vdDogU2hvcnRlblBhdGg8Uz4gPSBwYXRoLnN1YnN0cmluZygwLCBsYXN0Q29sb25JbmRleCkgYXMgYW55O1xuICBpZiAoc2hvcnRVcmxSb290W3Nob3J0VXJsUm9vdC5sZW5ndGggLSAxXSA9PT0gJy8nKVxuICAgIHNob3J0VXJsUm9vdCA9IHNob3J0VXJsUm9vdC5zdWJzdHJpbmcoXG4gICAgICAwLFxuICAgICAgc2hvcnRVcmxSb290Lmxlbmd0aCAtIDEsXG4gICAgKSBhcyBTaG9ydGVuUGF0aDxTPjtcbiAgcmV0dXJuIHNob3J0VXJsUm9vdDtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsT0FBTyxFQUFnQkMsS0FBSyxRQUFRLGdCQUFnQjtBQUk3RCxNQUFNQyxZQUErQyxHQUFHLElBQUlDLEdBQUcsQ0FBQyxDQUFDO0FBQ2pFLE9BQU8sU0FBU0MsVUFBVUEsQ0FBQ0MsSUFBWSxFQUFnQjtFQUNyRCxJQUFJLENBQUNILFlBQVksQ0FBQ0ksR0FBRyxDQUFDRCxJQUFJLENBQUMsRUFBRTtJQUMzQkgsWUFBWSxDQUFDSyxHQUFHLENBQ2RGLElBQUksRUFDSkwsT0FBTyxDQUFDSyxJQUFJLEVBQUU7TUFDWkcsTUFBTSxFQUFFQyxrQkFBa0I7TUFDMUJDLFFBQVEsRUFBRTtJQUNaLENBQUMsQ0FDSCxDQUFDO0VBQ0g7RUFDQSxPQUFPUixZQUFZLENBQUNTLEdBQUcsQ0FBQ04sSUFBSSxDQUFDO0FBQy9CO0FBRUEsTUFBTU8sY0FBd0MsR0FBRyxJQUFJVCxHQUFHLENBQUMsQ0FBQztBQUMxRCxPQUFPLFNBQVNVLFlBQVlBLENBQUNSLElBQVksRUFBZTtFQUN0RCxJQUFJLENBQUNPLGNBQWMsQ0FBQ04sR0FBRyxDQUFDRCxJQUFJLENBQUMsRUFBRTtJQUM3Qk8sY0FBYyxDQUFDTCxHQUFHLENBQ2hCRixJQUFJLEVBQ0osSUFBSVMsR0FBRyxDQUNMYixLQUFLLENBQUNJLElBQUksQ0FBQyxDQUFDVSxHQUFHLENBQUNDLENBQUMsSUFBSyxPQUFPQSxDQUFDLEtBQUssUUFBUSxHQUFHQSxDQUFDLEdBQUcsR0FBR0EsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFHLENBQ25FLENBQ0YsQ0FBQztFQUNIO0VBQ0EsT0FBT0osY0FBYyxDQUFDRCxHQUFHLENBQUNOLElBQUksQ0FBQztBQUNqQztBQUVBLE1BQU1ZLEtBQUssR0FBR0MsTUFBTSxDQUFDQyxTQUFTO0FBQzlCLE1BQU1DLEdBQUcsR0FBR0YsTUFBTSxDQUFDRyxjQUFjO0FBRWpDLE9BQU8sU0FBU0MsTUFBTUEsQ0FBQ0MsR0FBWSxFQUE4QjtFQUMvRCxJQUFJQSxHQUFHLEtBQUssSUFBSSxJQUFJLE9BQU9BLEdBQUcsS0FBSyxRQUFRLEVBQUU7SUFDM0MsT0FBTyxLQUFLO0VBQ2Q7RUFDQSxPQUFPSCxHQUFHLENBQUNHLEdBQUcsQ0FBQyxLQUFLTixLQUFLO0FBQzNCO0FBRUEsT0FBTyxTQUFTTyxXQUFXQSxDQUFtQm5CLElBQU8sRUFBa0I7RUFDckUsTUFBTW9CLGNBQWMsR0FBR3BCLElBQUksQ0FBQ3FCLFdBQVcsQ0FBQyxHQUFHLENBQUM7RUFDNUMsSUFBSUQsY0FBYyxLQUFLLENBQUMsQ0FBQyxFQUN2QixNQUFNLElBQUlFLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQztFQUNuRTtFQUNBLElBQUlDLFlBQTRCLEdBQUd2QixJQUFJLENBQUN3QixTQUFTLENBQUMsQ0FBQyxFQUFFSixjQUFjLENBQVE7RUFDM0UsSUFBSUcsWUFBWSxDQUFDQSxZQUFZLENBQUNFLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQy9DRixZQUFZLEdBQUdBLFlBQVksQ0FBQ0MsU0FBUyxDQUNuQyxDQUFDLEVBQ0RELFlBQVksQ0FBQ0UsTUFBTSxHQUFHLENBQ3hCLENBQW1CO0VBQ3JCLE9BQU9GLFlBQVk7QUFDckIiLCJpZ25vcmVMaXN0IjpbXX0=
48
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb21waWxlIiwicGFyc2UiLCJ1cmxCYXNlQ2FjaGUiLCJPYmplY3QiLCJjcmVhdGUiLCJnZXRVcmxCYXNlIiwicGF0aCIsInVybFRva2Vuc0NhY2hlIiwiZ2V0VXJsVG9rZW5zIiwidG9rZW5NYXAiLCJ0b2tlbnMiLCJ0b2tlbk5hbWVzIiwiU2V0IiwidG9rZW4iLCJ0eXBlIiwiYWRkIiwibmFtZSIsInByb3RvIiwicHJvdG90eXBlIiwiZ3BvIiwiZ2V0UHJvdG90eXBlT2YiLCJpc1Bvam8iLCJvYmoiLCJzaG9ydGVuUGF0aCIsImxhc3RUb2tlbkluZGV4IiwiTWF0aCIsIm1heCIsImxhc3RJbmRleE9mIiwiRXJyb3IiLCJzaG9ydFVybFJvb3QiLCJzdWJzdHJpbmciLCJsZW5ndGgiXSwic291cmNlcyI6WyIuLi9zcmMvUmVzdEhlbHBlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcGlsZSwgUGF0aEZ1bmN0aW9uLCBwYXJzZSwgVG9rZW4sIFBhcmFtRGF0YSB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcblxuaW1wb3J0IHsgU2hvcnRlblBhdGggfSBmcm9tICcuL3BhdGhUeXBlcy5qcyc7XG5cbmNvbnN0IHVybEJhc2VDYWNoZTogUmVjb3JkPHN0cmluZywgUGF0aEZ1bmN0aW9uPG9iamVjdD4+ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbmV4cG9ydCBmdW5jdGlvbiBnZXRVcmxCYXNlKHBhdGg6IHN0cmluZyk6IFBhdGhGdW5jdGlvbjxQYXJhbURhdGE+IHtcbiAgaWYgKCEocGF0aCBpbiB1cmxCYXNlQ2FjaGUpKSB7XG4gICAgdXJsQmFzZUNhY2hlW3BhdGhdID0gY29tcGlsZShwYXRoKTtcbiAgfVxuICByZXR1cm4gdXJsQmFzZUNhY2hlW3BhdGhdO1xufVxuXG5jb25zdCB1cmxUb2tlbnNDYWNoZTogUmVjb3JkPHN0cmluZywgU2V0PHN0cmluZz4+ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbmV4cG9ydCBmdW5jdGlvbiBnZXRVcmxUb2tlbnMocGF0aDogc3RyaW5nKTogU2V0PHN0cmluZz4ge1xuICBpZiAoIShwYXRoIGluIHVybFRva2Vuc0NhY2hlKSkge1xuICAgIHVybFRva2Vuc0NhY2hlW3BhdGhdID0gdG9rZW5NYXAocGFyc2UocGF0aCkudG9rZW5zKTtcbiAgfVxuICByZXR1cm4gdXJsVG9rZW5zQ2FjaGVbcGF0aF07XG59XG5cbmZ1bmN0aW9uIHRva2VuTWFwKHRva2VuczogVG9rZW5bXSk6IFNldDxzdHJpbmc+IHtcbiAgY29uc3QgdG9rZW5OYW1lcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBmb3IgKGNvbnN0IHRva2VuIG9mIHRva2Vucykge1xuICAgIHN3aXRjaCAodG9rZW4udHlwZSkge1xuICAgICAgY2FzZSAncGFyYW0nOlxuICAgICAgY2FzZSAnd2lsZGNhcmQnOlxuICAgICAgICB0b2tlbk5hbWVzLmFkZCh0b2tlbi5uYW1lKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdncm91cCc6XG4gICAgICAgIGZvciAoY29uc3QgbmFtZSBvZiB0b2tlbk1hcCh0b2tlbi50b2tlbnMpKSB7XG4gICAgICAgICAgdG9rZW5OYW1lcy5hZGQobmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiB0b2tlbk5hbWVzO1xufVxuXG5jb25zdCBwcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG5jb25zdCBncG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Y7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Bvam8ob2JqOiB1bmtub3duKTogb2JqIGlzIFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBncG8ob2JqKSA9PT0gcHJvdG87XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG9ydGVuUGF0aDxTIGV4dGVuZHMgc3RyaW5nPihwYXRoOiBTKTogU2hvcnRlblBhdGg8Uz4ge1xuICBjb25zdCBsYXN0VG9rZW5JbmRleCA9IE1hdGgubWF4KHBhdGgubGFzdEluZGV4T2YoJzonKSwgcGF0aC5sYXN0SW5kZXhPZignKicpKTtcbiAgaWYgKGxhc3RUb2tlbkluZGV4ID09PSAtMSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnUmVzb3VyY2UgcGF0aCByZXF1aXJlcyBhdCBsZWFzdCBvbmUgOnBhcmFtZXRlciBvciAqd2lsZGNhcmQnLFxuICAgICk7XG4gIGxldCBzaG9ydFVybFJvb3Q6IFNob3J0ZW5QYXRoPFM+ID0gcGF0aC5zdWJzdHJpbmcoMCwgbGFzdFRva2VuSW5kZXgpIGFzIGFueTtcbiAgaWYgKHNob3J0VXJsUm9vdFtzaG9ydFVybFJvb3QubGVuZ3RoIC0gMV0gPT09ICcvJylcbiAgICBzaG9ydFVybFJvb3QgPSBzaG9ydFVybFJvb3Quc3Vic3RyaW5nKFxuICAgICAgMCxcbiAgICAgIHNob3J0VXJsUm9vdC5sZW5ndGggLSAxLFxuICAgICkgYXMgU2hvcnRlblBhdGg8Uz47XG4gIHJldHVybiBzaG9ydFVybFJvb3Q7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE9BQU8sRUFBZ0JDLEtBQUssUUFBMEIsZ0JBQWdCO0FBSS9FLE1BQU1DLFlBQWtELEdBQUdDLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLElBQUksQ0FBQztBQUM5RSxPQUFPLFNBQVNDLFVBQVVBLENBQUNDLElBQVksRUFBMkI7RUFDaEUsSUFBSSxFQUFFQSxJQUFJLElBQUlKLFlBQVksQ0FBQyxFQUFFO0lBQzNCQSxZQUFZLENBQUNJLElBQUksQ0FBQyxHQUFHTixPQUFPLENBQUNNLElBQUksQ0FBQztFQUNwQztFQUNBLE9BQU9KLFlBQVksQ0FBQ0ksSUFBSSxDQUFDO0FBQzNCO0FBRUEsTUFBTUMsY0FBMkMsR0FBR0osTUFBTSxDQUFDQyxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ3ZFLE9BQU8sU0FBU0ksWUFBWUEsQ0FBQ0YsSUFBWSxFQUFlO0VBQ3RELElBQUksRUFBRUEsSUFBSSxJQUFJQyxjQUFjLENBQUMsRUFBRTtJQUM3QkEsY0FBYyxDQUFDRCxJQUFJLENBQUMsR0FBR0csUUFBUSxDQUFDUixLQUFLLENBQUNLLElBQUksQ0FBQyxDQUFDSSxNQUFNLENBQUM7RUFDckQ7RUFDQSxPQUFPSCxjQUFjLENBQUNELElBQUksQ0FBQztBQUM3QjtBQUVBLFNBQVNHLFFBQVFBLENBQUNDLE1BQWUsRUFBZTtFQUM5QyxNQUFNQyxVQUFVLEdBQUcsSUFBSUMsR0FBRyxDQUFTLENBQUM7RUFDcEMsS0FBSyxNQUFNQyxLQUFLLElBQUlILE1BQU0sRUFBRTtJQUMxQixRQUFRRyxLQUFLLENBQUNDLElBQUk7TUFDaEIsS0FBSyxPQUFPO01BQ1osS0FBSyxVQUFVO1FBQ2JILFVBQVUsQ0FBQ0ksR0FBRyxDQUFDRixLQUFLLENBQUNHLElBQUksQ0FBQztRQUMxQjtNQUNGLEtBQUssT0FBTztRQUNWLEtBQUssTUFBTUEsSUFBSSxJQUFJUCxRQUFRLENBQUNJLEtBQUssQ0FBQ0gsTUFBTSxDQUFDLEVBQUU7VUFDekNDLFVBQVUsQ0FBQ0ksR0FBRyxDQUFDQyxJQUFJLENBQUM7UUFDdEI7UUFDQTtJQUNKO0VBQ0Y7RUFDQSxPQUFPTCxVQUFVO0FBQ25CO0FBRUEsTUFBTU0sS0FBSyxHQUFHZCxNQUFNLENBQUNlLFNBQVM7QUFDOUIsTUFBTUMsR0FBRyxHQUFHaEIsTUFBTSxDQUFDaUIsY0FBYztBQUVqQyxPQUFPLFNBQVNDLE1BQU1BLENBQUNDLEdBQVksRUFBOEI7RUFDL0QsSUFBSUEsR0FBRyxLQUFLLElBQUksSUFBSSxPQUFPQSxHQUFHLEtBQUssUUFBUSxFQUFFO0lBQzNDLE9BQU8sS0FBSztFQUNkO0VBQ0EsT0FBT0gsR0FBRyxDQUFDRyxHQUFHLENBQUMsS0FBS0wsS0FBSztBQUMzQjtBQUVBLE9BQU8sU0FBU00sV0FBV0EsQ0FBbUJqQixJQUFPLEVBQWtCO0VBQ3JFLE1BQU1rQixjQUFjLEdBQUdDLElBQUksQ0FBQ0MsR0FBRyxDQUFDcEIsSUFBSSxDQUFDcUIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFckIsSUFBSSxDQUFDcUIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQzdFLElBQUlILGNBQWMsS0FBSyxDQUFDLENBQUMsRUFDdkIsTUFBTSxJQUFJSSxLQUFLLENBQ2IsNkRBQ0YsQ0FBQztFQUNILElBQUlDLFlBQTRCLEdBQUd2QixJQUFJLENBQUN3QixTQUFTLENBQUMsQ0FBQyxFQUFFTixjQUFjLENBQVE7RUFDM0UsSUFBSUssWUFBWSxDQUFDQSxZQUFZLENBQUNFLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQy9DRixZQUFZLEdBQUdBLFlBQVksQ0FBQ0MsU0FBUyxDQUNuQyxDQUFDLEVBQ0RELFlBQVksQ0FBQ0UsTUFBTSxHQUFHLENBQ3hCLENBQW1CO0VBQ3JCLE9BQU9GLFlBQVk7QUFDckIiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3BhdGhUeXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIE9ubHlPcHRpb25hbDxTIGV4dGVuZHMgc3RyaW5nPiA9XG4gIFMgZXh0ZW5kcyBgJHtpbmZlciBLfX0/YCA/IEtcbiAgOiBTIGV4dGVuZHMgYCR7aW5mZXIgS30/YCA/IEtcbiAgOiBuZXZlcjtcbnR5cGUgT25seVJlcXVpcmVkPFMgZXh0ZW5kcyBzdHJpbmc+ID0gUyBleHRlbmRzIGAke3N0cmluZ30/YCA/IG5ldmVyIDogUztcblxuLyoqIFBhcmFtZXRlcnMgZm9yIGEgZ2l2ZW4gcGF0aCAqL1xuZXhwb3J0IHR5cGUgUGF0aEFyZ3M8UyBleHRlbmRzIHN0cmluZz4gPVxuICBQYXRoS2V5czxTPiBleHRlbmRzIG5ldmVyID9cbiAgICAvLyB1bmtub3duIGlzIGlkZW50aXR5IGZvciBpbnRlcnNlY3Rpb24gKCcmJylcbiAgICB1bmtub3duXG4gIDogS2V5c1RvQXJnczxQYXRoS2V5czxTPj47XG5cbi8qKiBDb21wdXRlcyB0aGUgdW5pb24gb2Yga2V5cyBmb3IgYSBwYXRoIHN0cmluZyAqL1xuZXhwb3J0IHR5cGUgUGF0aEtleXM8UyBleHRlbmRzIHN0cmluZz4gPVxuICBzdHJpbmcgZXh0ZW5kcyBTID8gc3RyaW5nXG4gIDogUyBleHRlbmRzIGAke2luZmVyIEF9XFxcXCR7JzonIHwgJz8nIHwgJysnIHwgJyonIHwgJ3snIHwgJ30nfSR7aW5mZXIgQn1gID9cbiAgICBQYXRoS2V5czxBPiB8IFBhdGhLZXlzPEI+XG4gIDogUGF0aFNwbGl0czxTPjtcblxudHlwZSBQYXRoU3BsaXRzPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgUyBleHRlbmRzIChcbiAgICBgJHtzdHJpbmd9OiR7aW5mZXIgS30keycvJyB8ICcsJyB8ICclJyB8ICcmJyB8ICcrJyB8ICcqJyB8ICd7J30ke2luZmVyIFJ9YFxuICApID9cbiAgICBQYXRoU3BsaXRzPGA6JHtLfWA+IHwgUGF0aFNwbGl0czxSPlxuICA6IFMgZXh0ZW5kcyBgJHtzdHJpbmd9OiR7aW5mZXIgS306JHtpbmZlciBSfWAgP1xuICAgIFBhdGhTcGxpdHM8YDoke0t9YD4gfCBQYXRoU3BsaXRzPGA6JHtSfWA+XG4gIDogUyBleHRlbmRzIGAke3N0cmluZ306JHtpbmZlciBLfWAgPyBLXG4gIDogbmV2ZXI7XG5cbmV4cG9ydCB0eXBlIEtleXNUb0FyZ3M8S2V5IGV4dGVuZHMgc3RyaW5nPiA9IHtcbiAgW0sgaW4gS2V5IGFzIE9ubHlPcHRpb25hbDxLPl0/OiBzdHJpbmcgfCBudW1iZXI7XG59ICYgKE9ubHlSZXF1aXJlZDxLZXk+IGV4dGVuZHMgbmV2ZXIgPyB1bmtub3duXG46IHtcbiAgICBbSyBpbiBLZXkgYXMgT25seVJlcXVpcmVkPEs+XTogc3RyaW5nIHwgbnVtYmVyO1xuICB9KTtcblxuZXhwb3J0IHR5cGUgUGF0aEFyZ3NBbmRTZWFyY2g8UyBleHRlbmRzIHN0cmluZz4gPVxuICBPbmx5UmVxdWlyZWQ8UGF0aEtleXM8Uz4+IGV4dGVuZHMgbmV2ZXIgP1xuICAgIFJlY29yZDxzdHJpbmcsIG51bWJlciB8IHN0cmluZyB8IGJvb2xlYW4+IHwgdW5kZWZpbmVkXG4gIDoge1xuICAgICAgW0sgaW4gUGF0aEtleXM8Uz4gYXMgT25seVJlcXVpcmVkPEs+XTogc3RyaW5nIHwgbnVtYmVyO1xuICAgIH0gJiBSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmc+O1xuXG4vKiogUmVtb3ZlcyB0aGUgbGFzdCA6dG9rZW4gKi9cbmV4cG9ydCB0eXBlIFNob3J0ZW5QYXRoPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgc3RyaW5nIGV4dGVuZHMgUyA/IHN0cmluZ1xuICA6IFMgZXh0ZW5kcyBgJHtpbmZlciBCfToke2luZmVyIFJ9YCA/IFRyaW1Db2xvbjxgJHtCfToke1Nob3J0ZW5QYXRoPFI+fWA+XG4gIDogJyc7XG5cbnR5cGUgVHJpbUNvbG9uPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgc3RyaW5nIGV4dGVuZHMgUyA/IHN0cmluZ1xuICA6IFMgZXh0ZW5kcyBgJHtpbmZlciBSfTpgID8gUlxuICA6IFM7XG5cbmV4cG9ydCB0eXBlIFJlc291cmNlUGF0aCA9IHN0cmluZzsgLy8gYCR7c3RyaW5nfToke3N0cmluZ31gOyBUT0RPOiBNYXliZSBkbyB0aGlzIGluIHRoZSBmdXR1cmU/IFNlZW1zIHRvIGhhcmQgdG8gdW5kZXJzdGFuZCBmb3Igbm93XG4iXSwibWFwcGluZ3MiOiIiLCJpZ25vcmVMaXN0IjpbXX0=
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3BhdGhUeXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIENsZWFuS2V5PFMgZXh0ZW5kcyBzdHJpbmc+ID0gUyBleHRlbmRzIGBcIiR7aW5mZXIgS31cImAgPyBLIDogUztcblxudHlwZSBLZXlOYW1lPEsgZXh0ZW5kcyBzdHJpbmc+ID0gQ2xlYW5LZXk8XG4gIEsgZXh0ZW5kcyBgKiR7aW5mZXIgTn19YCA/IE5cbiAgOiBLIGV4dGVuZHMgYCoke2luZmVyIE59YCA/IE5cbiAgOiBLIGV4dGVuZHMgYCR7aW5mZXIgTn19YCA/IE5cbiAgOiBLXG4+O1xuXG50eXBlIEtleVZhbDxLIGV4dGVuZHMgc3RyaW5nPiA9XG4gIEsgZXh0ZW5kcyBgKiR7c3RyaW5nfWAgPyBzdHJpbmdbXSA6IHN0cmluZyB8IG51bWJlcjtcblxuLyoqIFBhcmFtZXRlcnMgZm9yIGEgZ2l2ZW4gcGF0aCAqL1xuZXhwb3J0IHR5cGUgUGF0aEFyZ3M8UyBleHRlbmRzIHN0cmluZz4gPVxuICBQYXRoS2V5czxTPiBleHRlbmRzIG5ldmVyID9cbiAgICAvLyB1bmtub3duIGlzIGlkZW50aXR5IGZvciBpbnRlcnNlY3Rpb24gKCcmJylcbiAgICB1bmtub3duXG4gIDogS2V5c1RvQXJnczxQYXRoS2V5czxTPj47XG5cbi8qKiBDb21wdXRlcyB0aGUgdW5pb24gb2Yga2V5cyBmb3IgYSBwYXRoIHN0cmluZyAqL1xuZXhwb3J0IHR5cGUgUGF0aEtleXM8UyBleHRlbmRzIHN0cmluZz4gPVxuICBzdHJpbmcgZXh0ZW5kcyBTID8gc3RyaW5nXG4gIDogUyBleHRlbmRzIGAke2luZmVyIEF9XFxcXCR7JzonIHwgJyonIHwgJ30nfSR7aW5mZXIgQn1gID9cbiAgICBQYXRoS2V5czxBPiB8IFBhdGhLZXlzPEI+XG4gIDogU3BsaXRzPFMsICc6Jz4gfCBTcGxpdHM8UywgJyonPjtcblxudHlwZSBTcGxpdHM8UyBleHRlbmRzIHN0cmluZywgTSBleHRlbmRzICc6JyB8ICcqJz4gPVxuICBTIGV4dGVuZHMgYCR7c3RyaW5nfSR7TX0ke2luZmVyIEt9JHtNfSR7aW5mZXIgUn1gID9cbiAgICBTcGxpdHM8YCR7TX0ke0t9YCwgTT4gfCBTcGxpdHM8YCR7TX0ke1J9YCwgTT5cbiAgOiBTIGV4dGVuZHMgKFxuICAgIGAke3N0cmluZ30ke019JHtpbmZlciBLfSR7Jy8nIHwgJ1xcXFwnIHwgJyUnIHwgJyYnIHwgJyonIHwgJzonIHwgJ3snIHwgJzsnIHwgJywnIHwgJyEnIHwgJ0AnfSR7aW5mZXIgUn1gXG4gICkgP1xuICAgIFNwbGl0czxgJHtNfSR7S31gLCBNPiB8IFNwbGl0czxSLCBNPlxuICA6IFMgZXh0ZW5kcyBgJHtzdHJpbmd9JHtNfSR7aW5mZXIgS31gID9cbiAgICBNIGV4dGVuZHMgJyonID9cbiAgICAgIGAqJHtLfWBcbiAgICA6IEtcbiAgOiBuZXZlcjtcblxuZXhwb3J0IHR5cGUgS2V5c1RvQXJnczxLZXkgZXh0ZW5kcyBzdHJpbmc+ID0ge1xuICBbSyBpbiBLZXkgYXMgSyBleHRlbmRzIGAke3N0cmluZ319YCA/IEtleU5hbWU8Sz4gOiBuZXZlcl0/OiBLZXlWYWw8Sz47XG59ICYgKEV4Y2x1ZGU8S2V5LCBgJHtzdHJpbmd9fWA+IGV4dGVuZHMgbmV2ZXIgPyB1bmtub3duXG46IHtcbiAgICBbSyBpbiBLZXkgYXMgSyBleHRlbmRzIGAke3N0cmluZ319YCA/IG5ldmVyIDogS2V5TmFtZTxLPl06IEtleVZhbDxLPjtcbiAgfSk7XG5cbmV4cG9ydCB0eXBlIFBhdGhBcmdzQW5kU2VhcmNoPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgRXhjbHVkZTxQYXRoS2V5czxTPiwgYCR7c3RyaW5nfX1gPiBleHRlbmRzIG5ldmVyID9cbiAgICBSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmcgfCBib29sZWFuPiB8IHVuZGVmaW5lZFxuICA6IHtcbiAgICAgIFtLIGluIFBhdGhLZXlzPFM+IGFzIEsgZXh0ZW5kcyBgJHtzdHJpbmd9fWAgPyBuZXZlclxuICAgICAgOiBLZXlOYW1lPEs+XTogS2V5VmFsPEs+O1xuICAgIH0gJiBSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmcgfCBzdHJpbmdbXT47XG5cbi8qKiBSZW1vdmVzIHRoZSBsYXN0IDpwYXJhbSBvciAqd2lsZGNhcmQgdG9rZW4gKi9cbmV4cG9ydCB0eXBlIFNob3J0ZW5QYXRoPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgc3RyaW5nIGV4dGVuZHMgUyA/IHN0cmluZ1xuICA6IFMgZXh0ZW5kcyBgJHtpbmZlciBCfToke2luZmVyIFJ9YCA/IFRyaW1Ub2tlbjxgJHtCfToke1Nob3J0ZW5QYXRoPFI+fWA+XG4gIDogUyBleHRlbmRzIGAke2luZmVyIEJ9KiR7aW5mZXIgUn1gID8gVHJpbVRva2VuPGAke0J9KiR7U2hvcnRlblBhdGg8Uj59YD5cbiAgOiAnJztcblxudHlwZSBUcmltVG9rZW48UyBleHRlbmRzIHN0cmluZz4gPVxuICBzdHJpbmcgZXh0ZW5kcyBTID8gc3RyaW5nXG4gIDogUyBleHRlbmRzIGAke2luZmVyIFJ9OmAgPyBSXG4gIDogUyBleHRlbmRzIGAke2luZmVyIFJ9KmAgPyBSXG4gIDogUztcblxuZXhwb3J0IHR5cGUgUmVzb3VyY2VQYXRoID0gc3RyaW5nOyAvLyBgJHtzdHJpbmd9OiR7c3RyaW5nfWA7IFRPRE86IE1heWJlIGRvIHRoaXMgaW4gdGhlIGZ1dHVyZT8gU2VlbXMgdG8gaGFyZCB0byB1bmRlcnN0YW5kIGZvciBub3dcbiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -61,6 +61,7 @@ This warning will not show in production.`);
61
61
  }
62
62
  const getList = new Endpoint(_extends({}, extraMutateOptions, {
63
63
  paginationField: paginationField,
64
+ movePath: path,
64
65
  path: shortenedPath,
65
66
  schema: new Collection([schema]),
66
67
  name: getName('getList')
@@ -78,6 +79,7 @@ This warning will not show in production.`);
78
79
  method: 'PUT',
79
80
  name: getName('update')
80
81
  })),
82
+ // TODO(breaking): Move to getList.move
81
83
  partialUpdate: new Endpoint(_extends({}, extraPartialOptions, {
82
84
  path,
83
85
  schema,
@@ -140,4 +142,4 @@ function optimisticDelete(snap, params) {
140
142
  function ensurePojo(body) {
141
143
  return body instanceof FormData ? Object.fromEntries(body.entries()) : body;
142
144
  }
143
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzY2hlbWEiLCJSZXN0RW5kcG9pbnQiLCJzaG9ydGVuUGF0aCIsIkludmFsaWRhdGUiLCJDb2xsZWN0aW9uIiwiQmFzZUNvbGxlY3Rpb24iLCJyZXNvdXJjZSIsIl9yZWYiLCJwYXRoIiwiRW5kcG9pbnQiLCJvcHRpbWlzdGljIiwicGFnaW5hdGlvbkZpZWxkIiwiZXh0cmFPcHRpb25zIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UiLCJfZXhjbHVkZWQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJpc1Byb3RvdHlwZU9mIiwiY2FsbCIsImNvbnNvbGUiLCJ3YXJuIiwic2hvcnRlbmVkUGF0aCIsImdldE5hbWUiLCJuYW1lIiwiZXh0ZW5kTWVtYmVyIiwiZXh0ZW5kZWQiLCJrZXkiLCJvcHRpb25zIiwiZXh0ZW5kIiwiZXh0cmFNdXRhdGVPcHRpb25zIiwiX2V4dGVuZHMiLCJleHRyYVBhcnRpYWxPcHRpb25zIiwiZ2V0IiwiZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlIiwib3B0aW1pc3RpY1VwZGF0ZSIsIm9wdGltaXN0aWNQYXJ0aWFsIiwiZ2V0TGlzdCIsInJldCIsImNyZWF0ZSIsInB1c2giLCJ1cGRhdGUiLCJtZXRob2QiLCJwYXJ0aWFsVXBkYXRlIiwiZGVsZXRlIiwiX2hvaXN0YWJsZSIsInJlcyIsInBhcmFtcyIsImtleXMiLCJsZW5ndGgiLCJvcHRpbWlzdGljRGVsZXRlIiwidW5kZWZpbmVkIiwiYXJncyIsIm92ZXJyaWRlcyIsInNuYXAiLCJib2R5IiwiZW5zdXJlUG9qbyIsImRhdGEiLCJhYm9ydCIsIkZvcm1EYXRhIiwiZnJvbUVudHJpZXMiLCJlbnRyaWVzIl0sInNvdXJjZXMiOlsiLi4vc3JjL3Jlc291cmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNjaGVtYSB9IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5pbXBvcnQgdHlwZSB7IFNuYXBzaG90SW50ZXJmYWNlLCBRdWVyeWFibGUgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5pbXBvcnQge1xuICBSZXNvdXJjZUdlbmVyaWNzLFxuICBSZXNvdXJjZU9wdGlvbnMsXG4gIFJlc291cmNlLFxuICBSZXNvdXJjZUludGVyZmFjZSxcbn0gZnJvbSAnLi9yZXNvdXJjZVR5cGVzLmpzJztcbmltcG9ydCBSZXN0RW5kcG9pbnQsIHtcbiAgR2V0RW5kcG9pbnQsXG4gIFBhcnRpYWxSZXN0R2VuZXJpY3MsXG4gIFJlc3RFbmRwb2ludE9wdGlvbnMsXG4gIFJlc3RJbnN0YW5jZUJhc2UsXG59IGZyb20gJy4vUmVzdEVuZHBvaW50LmpzJztcbmltcG9ydCB7IHNob3J0ZW5QYXRoIH0gZnJvbSAnLi9SZXN0SGVscGVycy5qcyc7XG5cbmNvbnN0IHsgSW52YWxpZGF0ZSwgQ29sbGVjdGlvbjogQmFzZUNvbGxlY3Rpb24gfSA9IHNjaGVtYTtcblxuLyoqIENyZWF0ZXMgY29sbGVjdGlvbiBvZiBFbmRwb2ludHMgZm9yIGNvbW1vbiBvcGVyYXRpb25zIG9uIGEgZ2l2ZW4gZGF0YS9zY2hlbWEuXG4gKlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2VcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVzb3VyY2U8TyBleHRlbmRzIFJlc291cmNlR2VuZXJpY3M+KHtcbiAgcGF0aCxcbiAgc2NoZW1hLFxuICBFbmRwb2ludCA9IFJlc3RFbmRwb2ludCxcbiAgQ29sbGVjdGlvbiA9IEJhc2VDb2xsZWN0aW9uLFxuICBvcHRpbWlzdGljLFxuICBwYWdpbmF0aW9uRmllbGQsXG4gIC4uLmV4dHJhT3B0aW9uc1xufTogUmVhZG9ubHk8Tz4gJiBSZXNvdXJjZU9wdGlvbnMpOiBSZXNvdXJjZTxPPiB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgLy8gaWYgdGhleSBsb3dlcmNhc2UgYW5kIGl0IGxvb2tzIGxpa2UgdGhleSBtZWFudCB0byB1c2UgdXBwZXItY2FzZSB2ZXJzaW9uXG4gICAgaWYgKFxuICAgICAgJ2VuZHBvaW50JyBpbiBleHRyYU9wdGlvbnMgJiZcbiAgICAgIEVuZHBvaW50ID09PSBSZXN0RW5kcG9pbnQgJiZcbiAgICAgIHR5cGVvZiBleHRyYU9wdGlvbnNbJ2VuZHBvaW50J10gPT09ICdmdW5jdGlvbicgJiZcbiAgICAgIGV4dHJhT3B0aW9uc1snZW5kcG9pbnQnXSAmJlxuICAgICAgT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mLmNhbGwoXG4gICAgICAgIFJlc3RFbmRwb2ludC5wcm90b3R5cGUsXG4gICAgICAgIChleHRyYU9wdGlvbnNbJ2VuZHBvaW50J10gYXMgYW55KS5wcm90b3R5cGUsXG4gICAgICApXG4gICAgKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBZb3UgcGFzc2VkICdlbmRwb2ludCcgb3B0aW9uOyBkaWQgeW91IG1lYW4gdG8gdXNlIEVuZHBvaW50P1xuaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL3Jlc291cmNlI2VuZHBvaW50XG5UaGlzIHBhcmFtZXRlciBtdXN0IGJlIGNhcGl0YWxpemVkLlxuXG5UaGlzIHdhcm5pbmcgd2lsbCBub3Qgc2hvdyBpbiBwcm9kdWN0aW9uLmAsXG4gICAgICApO1xuICAgIH1cbiAgICAvLyBpZiB0aGV5IGxvd2VyY2FzZSBhbmQgaXQgbG9va3MgbGlrZSB0aGV5IG1lYW50IHRvIHVzZSB1cHBlci1jYXNlIHZlcnNpb25cbiAgICBpZiAoXG4gICAgICAnY29sbGVjdGlvbicgaW4gZXh0cmFPcHRpb25zICYmXG4gICAgICBDb2xsZWN0aW9uID09PSBCYXNlQ29sbGVjdGlvbiAmJlxuICAgICAgdHlwZW9mIGV4dHJhT3B0aW9uc1snY29sbGVjdGlvbiddID09PSAnZnVuY3Rpb24nICYmXG4gICAgICBleHRyYU9wdGlvbnNbJ2NvbGxlY3Rpb24nXSAmJlxuICAgICAgT2JqZWN0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mLmNhbGwoXG4gICAgICAgIEJhc2VDb2xsZWN0aW9uLnByb3RvdHlwZSxcbiAgICAgICAgKGV4dHJhT3B0aW9uc1snY29sbGVjdGlvbiddIGFzIGFueSkucHJvdG90eXBlLFxuICAgICAgKVxuICAgICkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgWW91IHBhc3NlZCAnY29sbGVjdGlvbicgb3B0aW9uOyBkaWQgeW91IG1lYW4gdG8gdXNlIENvbGxlY3Rpb24/XG5odHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2UjY29sbGVjdGlvblxuVGhpcyBwYXJhbWV0ZXIgbXVzdCBiZSBjYXBpdGFsaXplZC5cblxuVGhpcyB3YXJuaW5nIHdpbGwgbm90IHNob3cgaW4gcHJvZHVjdGlvbi5gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgY29uc3Qgc2hvcnRlbmVkUGF0aCA9IHNob3J0ZW5QYXRoKHBhdGgpO1xuICBjb25zdCBnZXROYW1lID0gKG5hbWU6IHN0cmluZykgPT4gYCR7KHNjaGVtYSBhcyBhbnkpPy5uYW1lfS4ke25hbWV9YDtcbiAgLy8gdGhpcyBhY2NvdW50cyBmb3IgZGVyaXZhdGl2ZSBlbmRwb2ludHNcbiAgZnVuY3Rpb24gZXh0ZW5kTWVtYmVyKGV4dGVuZGVkOiBhbnksIGtleTogc3RyaW5nLCBvcHRpb25zOiBhbnkpIHtcbiAgICBleHRlbmRlZFtrZXldID0gZXh0ZW5kZWRba2V5XS5leHRlbmQob3B0aW9ucyk7XG4gIH1cblxuICBjb25zdCBleHRyYU11dGF0ZU9wdGlvbnMgPSB7IC4uLmV4dHJhT3B0aW9ucyB9O1xuICBjb25zdCBleHRyYVBhcnRpYWxPcHRpb25zID0geyAuLi5leHRyYU9wdGlvbnMgfTtcbiAgY29uc3QgZ2V0OiBHZXRFbmRwb2ludDx7IHBhdGg6IE9bJ3BhdGgnXTsgc2NoZW1hOiBPWydzY2hlbWEnXSB9PiA9XG4gICAgbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWEsXG4gICAgICBuYW1lOiBnZXROYW1lKCdnZXQnKSxcbiAgICB9KSBhcyBhbnk7XG4gIGlmIChvcHRpbWlzdGljKSB7XG4gICAgKGV4dHJhTXV0YXRlT3B0aW9ucyBhcyBhbnkpLmdldE9wdGltaXN0aWNSZXNwb25zZSA9IG9wdGltaXN0aWNVcGRhdGU7XG4gICAgLy8gVE9ETzogQ2hlY2sgdGhhdCBzY2hlbWEgaXMgYSBxdWVyeWFibGUsIG90aGVyd2lzZSB0aGlzIGRvZXNuJ3QgbWFrZSBzZW5zZVxuICAgIChleHRyYVBhcnRpYWxPcHRpb25zIGFzIGFueSkuZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlID0gb3B0aW1pc3RpY1BhcnRpYWwoXG4gICAgICBzY2hlbWEgYXMgYW55LFxuICAgICk7XG4gIH1cbiAgY29uc3QgZ2V0TGlzdCA9IG5ldyBFbmRwb2ludCh7XG4gICAgLi4uZXh0cmFNdXRhdGVPcHRpb25zLFxuICAgIHBhZ2luYXRpb25GaWVsZDogcGFnaW5hdGlvbkZpZWxkIGFzIHN0cmluZyxcbiAgICBwYXRoOiBzaG9ydGVuZWRQYXRoLFxuICAgIHNjaGVtYTogbmV3IENvbGxlY3Rpb24oW3NjaGVtYSBhcyBhbnldKSxcbiAgICBuYW1lOiBnZXROYW1lKCdnZXRMaXN0JyksXG4gIH0pO1xuICBjb25zdCByZXQgPSB7XG4gICAgZ2V0LFxuICAgIGdldExpc3QsXG4gICAgLy8gVE9ETyhkZXByZWNhdGVkKTogcmVtb3ZlIHRoaXMgb25jZSB3ZSByZW1vdmUgY3JlYXRlc1xuICAgIGNyZWF0ZTogZ2V0TGlzdC5wdXNoLmV4dGVuZCh7IG5hbWU6IGdldE5hbWUoJ2NyZWF0ZScpIH0pLFxuICAgIHVwZGF0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWEsXG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgndXBkYXRlJyksXG4gICAgfSksXG4gICAgcGFydGlhbFVwZGF0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhUGFydGlhbE9wdGlvbnMsXG4gICAgICBwYXRoLFxuICAgICAgc2NoZW1hLFxuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgncGFydGlhbFVwZGF0ZScpLFxuICAgIH0pLFxuICAgIGRlbGV0ZTogbmV3IEVuZHBvaW50KHtcbiAgICAgIC4uLmV4dHJhTXV0YXRlT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWE6XG4gICAgICAgIC8vIEVudGl0eSB8fCBVbmlvblxuICAgICAgICAoc2NoZW1hIGFzIGFueSkucHJvY2VzcyB8fCAoc2NoZW1hIGFzIGFueSkuX2hvaXN0YWJsZSA/XG4gICAgICAgICAgbmV3IEludmFsaWRhdGUoc2NoZW1hIGFzIGFueSlcbiAgICAgICAgOiBzY2hlbWEsXG4gICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgICAgbmFtZTogZ2V0TmFtZSgnZGVsZXRlJyksXG4gICAgICBwcm9jZXNzKHJlczogYW55LCBwYXJhbXM6IGFueSkge1xuICAgICAgICByZXR1cm4gcmVzICYmIE9iamVjdC5rZXlzKHJlcykubGVuZ3RoID8gcmVzIDogcGFyYW1zO1xuICAgICAgfSxcbiAgICAgIGdldE9wdGltaXN0aWNSZXNwb25zZTogb3B0aW1pc3RpYyA/IChvcHRpbWlzdGljRGVsZXRlIGFzIGFueSkgOiB1bmRlZmluZWQsXG4gICAgfSksXG4gICAgZXh0ZW5kKFxuICAgICAgLi4uYXJnczpcbiAgICAgICAgfCBbc3RyaW5nLCBSZXN0RW5kcG9pbnRPcHRpb25zICYgUGFydGlhbFJlc3RHZW5lcmljc11cbiAgICAgICAgfCBbUmVzdEVuZHBvaW50T3B0aW9ucyAmIFBhcnRpYWxSZXN0R2VuZXJpY3NdXG4gICAgICAgIHwgW1xuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICBiYXNlUmVzb3VyY2U6IFJlc291cmNlSW50ZXJmYWNlLFxuICAgICAgICAgICAgKSA9PiBSZWNvcmQ8c3RyaW5nLCBSZXN0SW5zdGFuY2VCYXNlPixcbiAgICAgICAgICBdXG4gICAgKSB7XG4gICAgICBpZiAodHlwZW9mIGFyZ3NbMF0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IFtrZXksIG9wdGlvbnNdID0gYXJncztcbiAgICAgICAgaWYgKGtleSBpbiB0aGlzKSB7XG4gICAgICAgICAgY29uc3QgZXh0ZW5kZWQgPSB7IC4uLnRoaXMgfTtcbiAgICAgICAgICBleHRlbmRNZW1iZXIoZXh0ZW5kZWQsIGtleSwgb3B0aW9ucyk7XG4gICAgICAgICAgcmV0dXJuIGV4dGVuZGVkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi50aGlzLFxuICAgICAgICAgICAgW2tleV06IHRoaXMuZ2V0LmV4dGVuZChvcHRpb25zKSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBhcmdzWzBdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IGV4dGVuZGVkID0gYXJnc1swXSh0aGlzKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi50aGlzLFxuICAgICAgICAgIC4uLmV4dGVuZGVkLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3Qgb3ZlcnJpZGVzID0gYXJnc1swXTtcbiAgICAgIGNvbnN0IGV4dGVuZGVkID0geyAuLi50aGlzIH07XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBvdmVycmlkZXMpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGV4dGVuZE1lbWJlcihleHRlbmRlZCwga2V5LCBvdmVycmlkZXNba2V5XSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZXh0ZW5kZWQ7XG4gICAgfSxcbiAgfSBhcyBhbnk7XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIG9wdGltaXN0aWNVcGRhdGUoc25hcDogU25hcHNob3RJbnRlcmZhY2UsIHBhcmFtczogYW55LCBib2R5OiBhbnkpIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5wYXJhbXMsXG4gICAgLi4uZW5zdXJlUG9qbyhib2R5KSxcbiAgfTtcbn1cbmZ1bmN0aW9uIG9wdGltaXN0aWNQYXJ0aWFsKHNjaGVtYTogUXVlcnlhYmxlKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoc25hcDogU25hcHNob3RJbnRlcmZhY2UsIHBhcmFtczogYW55LCBib2R5OiBhbnkpIHtcbiAgICBjb25zdCBkYXRhID0gc25hcC5nZXQoc2NoZW1hLCBwYXJhbXMpO1xuICAgIGlmICghZGF0YSkgdGhyb3cgc25hcC5hYm9ydDtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucGFyYW1zLFxuICAgICAgLi4uZGF0YSxcbiAgICAgIC8vIGV2ZW4gdGhvIHdlIGRvbid0IGFsd2F5cyBoYXZlIHR3byBhcmd1bWVudHMsIHRoZSBleHRyYSBvbmUgd2lsbCBzaW1wbHkgYmUgdW5kZWZpbmVkIHdoaWNoIHNwcmVhZHMgZmluZVxuICAgICAgLi4uZW5zdXJlUG9qbyhib2R5KSxcbiAgICB9O1xuICB9O1xufVxuZnVuY3Rpb24gb3B0aW1pc3RpY0RlbGV0ZShzbmFwOiBTbmFwc2hvdEludGVyZmFjZSwgcGFyYW1zOiBhbnkpIHtcbiAgcmV0dXJuIHBhcmFtcztcbn1cbmZ1bmN0aW9uIGVuc3VyZVBvam8oYm9keTogYW55KSB7XG4gIHJldHVybiBib2R5IGluc3RhbmNlb2YgRm9ybURhdGEgP1xuICAgICAgT2JqZWN0LmZyb21FbnRyaWVzKChib2R5IGFzIGFueSkuZW50cmllcygpKVxuICAgIDogYm9keTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsU0FBU0EsTUFBTSxRQUFRLHVCQUF1QjtBQVM5QyxPQUFPQyxZQUFZLE1BS1osbUJBQW1CO0FBQzFCLFNBQVNDLFdBQVcsUUFBUSxrQkFBa0I7QUFFOUMsTUFBTTtFQUFFQyxVQUFV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
145
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzY2hlbWEiLCJSZXN0RW5kcG9pbnQiLCJzaG9ydGVuUGF0aCIsIkludmFsaWRhdGUiLCJDb2xsZWN0aW9uIiwiQmFzZUNvbGxlY3Rpb24iLCJyZXNvdXJjZSIsIl9yZWYiLCJwYXRoIiwiRW5kcG9pbnQiLCJvcHRpbWlzdGljIiwicGFnaW5hdGlvbkZpZWxkIiwiZXh0cmFPcHRpb25zIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UiLCJfZXhjbHVkZWQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJpc1Byb3RvdHlwZU9mIiwiY2FsbCIsImNvbnNvbGUiLCJ3YXJuIiwic2hvcnRlbmVkUGF0aCIsImdldE5hbWUiLCJuYW1lIiwiZXh0ZW5kTWVtYmVyIiwiZXh0ZW5kZWQiLCJrZXkiLCJvcHRpb25zIiwiZXh0ZW5kIiwiZXh0cmFNdXRhdGVPcHRpb25zIiwiX2V4dGVuZHMiLCJleHRyYVBhcnRpYWxPcHRpb25zIiwiZ2V0IiwiZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlIiwib3B0aW1pc3RpY1VwZGF0ZSIsIm9wdGltaXN0aWNQYXJ0aWFsIiwiZ2V0TGlzdCIsIm1vdmVQYXRoIiwicmV0IiwiY3JlYXRlIiwicHVzaCIsInVwZGF0ZSIsIm1ldGhvZCIsInBhcnRpYWxVcGRhdGUiLCJkZWxldGUiLCJfaG9pc3RhYmxlIiwicmVzIiwicGFyYW1zIiwia2V5cyIsImxlbmd0aCIsIm9wdGltaXN0aWNEZWxldGUiLCJ1bmRlZmluZWQiLCJhcmdzIiwib3ZlcnJpZGVzIiwic25hcCIsImJvZHkiLCJlbnN1cmVQb2pvIiwiZGF0YSIsImFib3J0IiwiRm9ybURhdGEiLCJmcm9tRW50cmllcyIsImVudHJpZXMiXSwic291cmNlcyI6WyIuLi9zcmMvcmVzb3VyY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2NoZW1hIH0gZnJvbSAnQGRhdGEtY2xpZW50L2VuZHBvaW50JztcbmltcG9ydCB0eXBlIHsgU25hcHNob3RJbnRlcmZhY2UsIFF1ZXJ5YWJsZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmltcG9ydCB7XG4gIFJlc291cmNlR2VuZXJpY3MsXG4gIFJlc291cmNlT3B0aW9ucyxcbiAgUmVzb3VyY2UsXG4gIFJlc291cmNlSW50ZXJmYWNlLFxufSBmcm9tICcuL3Jlc291cmNlVHlwZXMuanMnO1xuaW1wb3J0IFJlc3RFbmRwb2ludCwge1xuICBHZXRFbmRwb2ludCxcbiAgUGFydGlhbFJlc3RHZW5lcmljcyxcbiAgUmVzdEVuZHBvaW50T3B0aW9ucyxcbiAgUmVzdEluc3RhbmNlQmFzZSxcbn0gZnJvbSAnLi9SZXN0RW5kcG9pbnQuanMnO1xuaW1wb3J0IHsgc2hvcnRlblBhdGggfSBmcm9tICcuL1Jlc3RIZWxwZXJzLmpzJztcblxuY29uc3QgeyBJbnZhbGlkYXRlLCBDb2xsZWN0aW9uOiBCYXNlQ29sbGVjdGlvbiB9ID0gc2NoZW1hO1xuXG4vKiogQ3JlYXRlcyBjb2xsZWN0aW9uIG9mIEVuZHBvaW50cyBmb3IgY29tbW9uIG9wZXJhdGlvbnMgb24gYSBnaXZlbiBkYXRhL3NjaGVtYS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXNvdXJjZTxPIGV4dGVuZHMgUmVzb3VyY2VHZW5lcmljcz4oe1xuICBwYXRoLFxuICBzY2hlbWEsXG4gIEVuZHBvaW50ID0gUmVzdEVuZHBvaW50LFxuICBDb2xsZWN0aW9uID0gQmFzZUNvbGxlY3Rpb24sXG4gIG9wdGltaXN0aWMsXG4gIHBhZ2luYXRpb25GaWVsZCxcbiAgLi4uZXh0cmFPcHRpb25zXG59OiBSZWFkb25seTxPPiAmIFJlc291cmNlT3B0aW9ucyk6IFJlc291cmNlPE8+IHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAvLyBpZiB0aGV5IGxvd2VyY2FzZSBhbmQgaXQgbG9va3MgbGlrZSB0aGV5IG1lYW50IHRvIHVzZSB1cHBlci1jYXNlIHZlcnNpb25cbiAgICBpZiAoXG4gICAgICAnZW5kcG9pbnQnIGluIGV4dHJhT3B0aW9ucyAmJlxuICAgICAgRW5kcG9pbnQgPT09IFJlc3RFbmRwb2ludCAmJlxuICAgICAgdHlwZW9mIGV4dHJhT3B0aW9uc1snZW5kcG9pbnQnXSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgZXh0cmFPcHRpb25zWydlbmRwb2ludCddICYmXG4gICAgICBPYmplY3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2YuY2FsbChcbiAgICAgICAgUmVzdEVuZHBvaW50LnByb3RvdHlwZSxcbiAgICAgICAgKGV4dHJhT3B0aW9uc1snZW5kcG9pbnQnXSBhcyBhbnkpLnByb3RvdHlwZSxcbiAgICAgIClcbiAgICApIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYFlvdSBwYXNzZWQgJ2VuZHBvaW50JyBvcHRpb247IGRpZCB5b3UgbWVhbiB0byB1c2UgRW5kcG9pbnQ/XG5odHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2UjZW5kcG9pbnRcblRoaXMgcGFyYW1ldGVyIG11c3QgYmUgY2FwaXRhbGl6ZWQuXG5cblRoaXMgd2FybmluZyB3aWxsIG5vdCBzaG93IGluIHByb2R1Y3Rpb24uYCxcbiAgICAgICk7XG4gICAgfVxuICAgIC8vIGlmIHRoZXkgbG93ZXJjYXNlIGFuZCBpdCBsb29rcyBsaWtlIHRoZXkgbWVhbnQgdG8gdXNlIHVwcGVyLWNhc2UgdmVyc2lvblxuICAgIGlmIChcbiAgICAgICdjb2xsZWN0aW9uJyBpbiBleHRyYU9wdGlvbnMgJiZcbiAgICAgIENvbGxlY3Rpb24gPT09IEJhc2VDb2xsZWN0aW9uICYmXG4gICAgICB0eXBlb2YgZXh0cmFPcHRpb25zWydjb2xsZWN0aW9uJ10gPT09ICdmdW5jdGlvbicgJiZcbiAgICAgIGV4dHJhT3B0aW9uc1snY29sbGVjdGlvbiddICYmXG4gICAgICBPYmplY3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2YuY2FsbChcbiAgICAgICAgQmFzZUNvbGxlY3Rpb24ucHJvdG90eXBlLFxuICAgICAgICAoZXh0cmFPcHRpb25zWydjb2xsZWN0aW9uJ10gYXMgYW55KS5wcm90b3R5cGUsXG4gICAgICApXG4gICAgKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBZb3UgcGFzc2VkICdjb2xsZWN0aW9uJyBvcHRpb247IGRpZCB5b3UgbWVhbiB0byB1c2UgQ29sbGVjdGlvbj9cbmh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNjb2xsZWN0aW9uXG5UaGlzIHBhcmFtZXRlciBtdXN0IGJlIGNhcGl0YWxpemVkLlxuXG5UaGlzIHdhcm5pbmcgd2lsbCBub3Qgc2hvdyBpbiBwcm9kdWN0aW9uLmAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuICBjb25zdCBzaG9ydGVuZWRQYXRoID0gc2hvcnRlblBhdGgocGF0aCk7XG4gIGNvbnN0IGdldE5hbWUgPSAobmFtZTogc3RyaW5nKSA9PiBgJHsoc2NoZW1hIGFzIGFueSk/Lm5hbWV9LiR7bmFtZX1gO1xuICAvLyB0aGlzIGFjY291bnRzIGZvciBkZXJpdmF0aXZlIGVuZHBvaW50c1xuICBmdW5jdGlvbiBleHRlbmRNZW1iZXIoZXh0ZW5kZWQ6IGFueSwga2V5OiBzdHJpbmcsIG9wdGlvbnM6IGFueSkge1xuICAgIGV4dGVuZGVkW2tleV0gPSBleHRlbmRlZFtrZXldLmV4dGVuZChvcHRpb25zKTtcbiAgfVxuXG4gIGNvbnN0IGV4dHJhTXV0YXRlT3B0aW9ucyA9IHsgLi4uZXh0cmFPcHRpb25zIH07XG4gIGNvbnN0IGV4dHJhUGFydGlhbE9wdGlvbnMgPSB7IC4uLmV4dHJhT3B0aW9ucyB9O1xuICBjb25zdCBnZXQ6IEdldEVuZHBvaW50PHsgcGF0aDogT1sncGF0aCddOyBzY2hlbWE6IE9bJ3NjaGVtYSddIH0+ID1cbiAgICBuZXcgRW5kcG9pbnQoe1xuICAgICAgLi4uZXh0cmFPcHRpb25zLFxuICAgICAgcGF0aCxcbiAgICAgIHNjaGVtYSxcbiAgICAgIG5hbWU6IGdldE5hbWUoJ2dldCcpLFxuICAgIH0pIGFzIGFueTtcbiAgaWYgKG9wdGltaXN0aWMpIHtcbiAgICAoZXh0cmFNdXRhdGVPcHRpb25zIGFzIGFueSkuZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlID0gb3B0aW1pc3RpY1VwZGF0ZTtcbiAgICAvLyBUT0RPOiBDaGVjayB0aGF0IHNjaGVtYSBpcyBhIHF1ZXJ5YWJsZSwgb3RoZXJ3aXNlIHRoaXMgZG9lc24ndCBtYWtlIHNlbnNlXG4gICAgKGV4dHJhUGFydGlhbE9wdGlvbnMgYXMgYW55KS5nZXRPcHRpbWlzdGljUmVzcG9uc2UgPSBvcHRpbWlzdGljUGFydGlhbChcbiAgICAgIHNjaGVtYSBhcyBhbnksXG4gICAgKTtcbiAgfVxuICBjb25zdCBnZXRMaXN0ID0gbmV3IEVuZHBvaW50KHtcbiAgICAuLi5leHRyYU11dGF0ZU9wdGlvbnMsXG4gICAgcGFnaW5hdGlvbkZpZWxkOiBwYWdpbmF0aW9uRmllbGQgYXMgc3RyaW5nLFxuICAgIG1vdmVQYXRoOiBwYXRoLFxuICAgIHBhdGg6IHNob3J0ZW5lZFBhdGgsXG4gICAgc2NoZW1hOiBuZXcgQ29sbGVjdGlvbihbc2NoZW1hIGFzIGFueV0pLFxuICAgIG5hbWU6IGdldE5hbWUoJ2dldExpc3QnKSxcbiAgfSk7XG4gIGNvbnN0IHJldCA9IHtcbiAgICBnZXQsXG4gICAgZ2V0TGlzdCxcbiAgICAvLyBUT0RPKGRlcHJlY2F0ZWQpOiByZW1vdmUgdGhpcyBvbmNlIHdlIHJlbW92ZSBjcmVhdGVzXG4gICAgY3JlYXRlOiBnZXRMaXN0LnB1c2guZXh0ZW5kKHsgbmFtZTogZ2V0TmFtZSgnY3JlYXRlJykgfSksXG4gICAgdXBkYXRlOiBuZXcgRW5kcG9pbnQoe1xuICAgICAgLi4uZXh0cmFNdXRhdGVPcHRpb25zLFxuICAgICAgcGF0aCxcbiAgICAgIHNjaGVtYSxcbiAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgICBuYW1lOiBnZXROYW1lKCd1cGRhdGUnKSxcbiAgICB9KSxcbiAgICAvLyBUT0RPKGJyZWFraW5nKTogTW92ZSB0byBnZXRMaXN0Lm1vdmVcbiAgICBwYXJ0aWFsVXBkYXRlOiBuZXcgRW5kcG9pbnQoe1xuICAgICAgLi4uZXh0cmFQYXJ0aWFsT3B0aW9ucyxcbiAgICAgIHBhdGgsXG4gICAgICBzY2hlbWEsXG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICBuYW1lOiBnZXROYW1lKCdwYXJ0aWFsVXBkYXRlJyksXG4gICAgfSksXG4gICAgZGVsZXRlOiBuZXcgRW5kcG9pbnQoe1xuICAgICAgLi4uZXh0cmFNdXRhdGVPcHRpb25zLFxuICAgICAgcGF0aCxcbiAgICAgIHNjaGVtYTpcbiAgICAgICAgLy8gRW50aXR5IHx8IFVuaW9uXG4gICAgICAgIChzY2hlbWEgYXMgYW55KS5wcm9jZXNzIHx8IChzY2hlbWEgYXMgYW55KS5faG9pc3RhYmxlID9cbiAgICAgICAgICBuZXcgSW52YWxpZGF0ZShzY2hlbWEgYXMgYW55KVxuICAgICAgICA6IHNjaGVtYSxcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICBuYW1lOiBnZXROYW1lKCdkZWxldGUnKSxcbiAgICAgIHByb2Nlc3MocmVzOiBhbnksIHBhcmFtczogYW55KSB7XG4gICAgICAgIHJldHVybiByZXMgJiYgT2JqZWN0LmtleXMocmVzKS5sZW5ndGggPyByZXMgOiBwYXJhbXM7XG4gICAgICB9LFxuICAgICAgZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlOiBvcHRpbWlzdGljID8gKG9wdGltaXN0aWNEZWxldGUgYXMgYW55KSA6IHVuZGVmaW5lZCxcbiAgICB9KSxcbiAgICBleHRlbmQoXG4gICAgICAuLi5hcmdzOlxuICAgICAgICB8IFtzdHJpbmcsIFJlc3RFbmRwb2ludE9wdGlvbnMgJiBQYXJ0aWFsUmVzdEdlbmVyaWNzXVxuICAgICAgICB8IFtSZXN0RW5kcG9pbnRPcHRpb25zICYgUGFydGlhbFJlc3RHZW5lcmljc11cbiAgICAgICAgfCBbXG4gICAgICAgICAgICAoXG4gICAgICAgICAgICAgIGJhc2VSZXNvdXJjZTogUmVzb3VyY2VJbnRlcmZhY2UsXG4gICAgICAgICAgICApID0+IFJlY29yZDxzdHJpbmcsIFJlc3RJbnN0YW5jZUJhc2U+LFxuICAgICAgICAgIF1cbiAgICApIHtcbiAgICAgIGlmICh0eXBlb2YgYXJnc1swXSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc3QgW2tleSwgb3B0aW9uc10gPSBhcmdzO1xuICAgICAgICBpZiAoa2V5IGluIHRoaXMpIHtcbiAgICAgICAgICBjb25zdCBleHRlbmRlZCA9IHsgLi4udGhpcyB9O1xuICAgICAgICAgIGV4dGVuZE1lbWJlcihleHRlbmRlZCwga2V5LCBvcHRpb25zKTtcbiAgICAgICAgICByZXR1cm4gZXh0ZW5kZWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnRoaXMsXG4gICAgICAgICAgICBba2V5XTogdGhpcy5nZXQuZXh0ZW5kKG9wdGlvbnMpLFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGFyZ3NbMF0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgY29uc3QgZXh0ZW5kZWQgPSBhcmdzWzBdKHRoaXMpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnRoaXMsXG4gICAgICAgICAgLi4uZXh0ZW5kZWQsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBjb25zdCBvdmVycmlkZXMgPSBhcmdzWzBdO1xuICAgICAgY29uc3QgZXh0ZW5kZWQgPSB7IC4uLnRoaXMgfTtcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIG92ZXJyaWRlcykge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgZXh0ZW5kTWVtYmVyKGV4dGVuZGVkLCBrZXksIG92ZXJyaWRlc1trZXldKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBleHRlbmRlZDtcbiAgICB9LFxuICB9IGFzIGFueTtcbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gb3B0aW1pc3RpY1VwZGF0ZShzbmFwOiBTbmFwc2hvdEludGVyZmFjZSwgcGFyYW1zOiBhbnksIGJvZHk6IGFueSkge1xuICByZXR1cm4ge1xuICAgIC4uLnBhcmFtcyxcbiAgICAuLi5lbnN1cmVQb2pvKGJvZHkpLFxuICB9O1xufVxuZnVuY3Rpb24gb3B0aW1pc3RpY1BhcnRpYWwoc2NoZW1hOiBRdWVyeWFibGUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChzbmFwOiBTbmFwc2hvdEludGVyZmFjZSwgcGFyYW1zOiBhbnksIGJvZHk6IGFueSkge1xuICAgIGNvbnN0IGRhdGEgPSBzbmFwLmdldChzY2hlbWEsIHBhcmFtcyk7XG4gICAgaWYgKCFkYXRhKSB0aHJvdyBzbmFwLmFib3J0O1xuICAgIHJldHVybiB7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICAuLi5kYXRhLFxuICAgICAgLy8gZXZlbiB0aG8gd2UgZG9uJ3QgYWx3YXlzIGhhdmUgdHdvIGFyZ3VtZW50cywgdGhlIGV4dHJhIG9uZSB3aWxsIHNpbXBseSBiZSB1bmRlZmluZWQgd2hpY2ggc3ByZWFkcyBmaW5lXG4gICAgICAuLi5lbnN1cmVQb2pvKGJvZHkpLFxuICAgIH07XG4gIH07XG59XG5mdW5jdGlvbiBvcHRpbWlzdGljRGVsZXRlKHNuYXA6IFNuYXBzaG90SW50ZXJmYWNlLCBwYXJhbXM6IGFueSkge1xuICByZXR1cm4gcGFyYW1zO1xufVxuZnVuY3Rpb24gZW5zdXJlUG9qbyhib2R5OiBhbnkpIHtcbiAgcmV0dXJuIGJvZHkgaW5zdGFuY2VvZiBGb3JtRGF0YSA/XG4gICAgICBPYmplY3QuZnJvbUVudHJpZXMoKGJvZHkgYXMgYW55KS5lbnRyaWVzKCkpXG4gICAgOiBib2R5O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFTQSxNQUFNLFFBQVEsdUJBQXVCO0FB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
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3Jlc291cmNlVHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uLCBzY2hlbWEgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuaW1wb3J0IHR5cGUgeyBTY2hlbWEgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuaW1wb3J0IHR5cGUgeyBEZW5vcm1hbGl6ZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmltcG9ydCB0eXBlIHtcbiAgS2V5c1RvQXJncyxcbiAgUGF0aEFyZ3MsXG4gIFJlc291cmNlUGF0aCxcbiAgU2hvcnRlblBhdGgsXG59IGZyb20gJy4vcGF0aFR5cGVzLmpzJztcbmltcG9ydCB7IEV4dGVuZGFibGUgfSBmcm9tICcuL3Jlc291cmNlRXh0ZW5kYWJsZS5qcyc7XG5pbXBvcnQgUmVzdEVuZHBvaW50LCB7XG4gIEdldEVuZHBvaW50LFxuICBNdXRhdGVFbmRwb2ludCxcbiAgUGFyYW1Ub0FyZ3MsXG4gIFJlc3RJbnN0YW5jZUJhc2UsXG4gIFJlc3RUeXBlTm9Cb2R5LFxufSBmcm9tICcuL1Jlc3RFbmRwb2ludC5qcyc7XG5cbi8qKiBUaGUgdHlwZWQgKGdlbmVyaWMpIG9wdGlvbnMgZm9yIGEgUmVzb3VyY2VcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNmdW5jdGlvbi1pbmhlcml0YW5jZS1wYXR0ZXJuc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlR2VuZXJpY3Mge1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2UjcGF0aCAqL1xuICByZWFkb25seSBwYXRoOiBSZXNvdXJjZVBhdGg7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNzY2hlbWEgKi9cbiAgcmVhZG9ubHkgc2NoZW1hOiBTY2hlbWE7XG4gIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNib2R5ICovXG4gIHJlYWRvbmx5IGJvZHk/OiBhbnk7XG4gIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNzZWFyY2hQYXJhbXMgKi9cbiAgcmVhZG9ubHkgc2VhcmNoUGFyYW1zPzogYW55O1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2UjcGFnaW5hdGlvbmZpZWxkICovXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbn1cbi8qKiBUaGUgdW50eXBlZCBvcHRpb25zIGZvciByZXNvdXJjZSgpICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlT3B0aW9ucyB7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNlbmRwb2ludCAqL1xuICBFbmRwb2ludD86IHR5cGVvZiBSZXN0RW5kcG9pbnQ7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNjb2xsZWN0aW9uICovXG4gIENvbGxlY3Rpb24/OiB0eXBlb2YgQ29sbGVjdGlvbjtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL3Jlc291cmNlI29wdGltaXN0aWMgKi9cbiAgb3B0aW1pc3RpYz86IGJvb2xlYW47XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSN1cmxwcmVmaXggKi9cbiAgdXJsUHJlZml4Pzogc3RyaW5nO1xuICByZXF1ZXN0SW5pdD86IFJlcXVlc3RJbml0O1xuICBnZXRIZWFkZXJzPyhoZWFkZXJzOiBIZWFkZXJzSW5pdCk6IFByb21pc2U8SGVhZGVyc0luaXQ+IHwgSGVhZGVyc0luaXQ7XG4gIGdldFJlcXVlc3RJbml0Pyhib2R5OiBhbnkpOiBQcm9taXNlPFJlcXVlc3RJbml0PiB8IFJlcXVlc3RJbml0O1xuICBmZXRjaFJlc3BvbnNlPyhpbnB1dDogUmVxdWVzdEluZm8sIGluaXQ6IFJlcXVlc3RJbml0KTogUHJvbWlzZTxhbnk+O1xuICBwYXJzZVJlc3BvbnNlPyhyZXNwb25zZTogUmVzcG9uc2UpOiBQcm9taXNlPGFueT47XG4gIC8qKiBEZWZhdWx0IGRhdGEgZXhwaXJ5IGxlbmd0aCwgd2lsbCBmYWxsIGJhY2sgdG8gTmV0d29ya01hbmFnZXIgZGVmYXVsdCBpZiBub3QgZGVmaW5lZCAqL1xuICByZWFkb25seSBkYXRhRXhwaXJ5TGVuZ3RoPzogbnVtYmVyO1xuICAvKiogRGVmYXVsdCBlcnJvciBleHBpcnkgbGVuZ3RoLCB3aWxsIGZhbGwgYmFjayB0byBOZXR3b3JrTWFuYWdlciBkZWZhdWx0IGlmIG5vdCBkZWZpbmVkICovXG4gIHJlYWRvbmx5IGVycm9yRXhwaXJ5TGVuZ3RoPzogbnVtYmVyO1xuICAvKiogUG9sbCB3aXRoIGF0IGxlYXN0IHRoaXMgZnJlcXVlbmN5IGluIG1pbGlzZWNvbmRzICovXG4gIHJlYWRvbmx5IHBvbGxGcmVxdWVuY3k/OiBudW1iZXI7XG4gIC8qKiBNYXJrcyBjYWNoZWQgcmVzb3VyY2VzIGFzIGludmFsaWQgaWYgdGhleSBhcmUgc3RhbGUgKi9cbiAgcmVhZG9ubHkgaW52YWxpZElmU3RhbGU/OiBib29sZWFuO1xuICAvKiogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHRocm93IG9yIGZhbGxiYWNrIHRvICovXG4gIGVycm9yUG9saWN5PyhlcnJvcjogYW55KTogJ2hhcmQnIHwgJ3NvZnQnIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogUmVzb3VyY2VzIGFyZSBhIGNvbGxlY3Rpb24gb2YgbWV0aG9kcyBmb3IgYSBnaXZlbiBkYXRhIG1vZGVsLlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZTxcbiAgTyBleHRlbmRzIFJlc291cmNlR2VuZXJpY3MgPSB7IHBhdGg6IFJlc291cmNlUGF0aDsgc2NoZW1hOiBhbnkgfSxcbj4gZXh0ZW5kcyBFeHRlbmRhYmxlPE8+IHtcbiAgLyoqIEdldCBvbmUgaXRlbSAoR0VUKVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNnZXRcbiAgICovXG4gIGdldDogR2V0RW5kcG9pbnQ8eyBwYXRoOiBPWydwYXRoJ107IHNjaGVtYTogT1snc2NoZW1hJ10gfT47XG4gIC8qKiBHZXQgYW4gQXJyYXkgb2YgaXRlbXMgKEdFVClcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2UjZ2V0bGlzdFxuICAgKi9cbiAgZ2V0TGlzdDogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBHZXRFbmRwb2ludDxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogU2hvcnRlblBhdGg8T1sncGF0aCddPjtcbiAgICAgICAgc2NoZW1hOiBzY2hlbWEuQ29sbGVjdGlvbjxcbiAgICAgICAgICBbT1snc2NoZW1hJ11dLFxuICAgICAgICAgIFBhcmFtVG9BcmdzPFxuICAgICAgICAgICAgT1snc2VhcmNoUGFyYW1zJ10gZXh0ZW5kcyB1bmRlZmluZWQgP1xuICAgICAgICAgICAgICBLZXlzVG9BcmdzPFNob3J0ZW5QYXRoPE9bJ3BhdGgnXT4+XG4gICAgICAgICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8U2hvcnRlblBhdGg8T1sncGF0aCddPj5cbiAgICAgICAgICA+XG4gICAgICAgID47XG4gICAgICAgIGJvZHk6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J11cbiAgICAgICAgOiBQYXJ0aWFsPERlbm9ybWFsaXplPE9bJ3NjaGVtYSddPj47XG4gICAgICAgIHNlYXJjaFBhcmFtczogT1snc2VhcmNoUGFyYW1zJ107XG4gICAgICB9ICYgUGljazxPLCAncGFnaW5hdGlvbkZpZWxkJz5cbiAgICA+XG4gIDogR2V0RW5kcG9pbnQ8XG4gICAgICB7XG4gICAgICAgIHBhdGg6IFNob3J0ZW5QYXRoPE9bJ3BhdGgnXT47XG4gICAgICAgIHNjaGVtYTogc2NoZW1hLkNvbGxlY3Rpb248XG4gICAgICAgICAgW09bJ3NjaGVtYSddXSxcbiAgICAgICAgICBQYXJhbVRvQXJnczxcbiAgICAgICAgICAgIChSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmcgfCBib29sZWFuPiB8IHVuZGVmaW5lZCkgJlxuICAgICAgICAgICAgICBQYXRoQXJnczxTaG9ydGVuUGF0aDxPWydwYXRoJ10+PlxuICAgICAgICAgID5cbiAgICAgICAgPjtcbiAgICAgICAgYm9keTogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXVxuICAgICAgICA6IFBhcnRpYWw8RGVub3JtYWxpemU8T1snc2NoZW1hJ10+PjtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmcgfCBib29sZWFuPiB8IHVuZGVmaW5lZDtcbiAgICAgIH0gJiBQaWNrPE8sICdwYWdpbmF0aW9uRmllbGQnPlxuICAgID47XG4gIC8qKiBDcmVhdGUgYSBuZXcgaXRlbSAoUE9TVClcbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgdXNlIFJlc291cmNlLmdldExpc3QucHVzaCBpbnN0ZWFkXG4gICAqL1xuICBjcmVhdGU6ICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgTXV0YXRlRW5kcG9pbnQ8e1xuICAgICAgcGF0aDogU2hvcnRlblBhdGg8T1sncGF0aCddPjtcbiAgICAgIHNjaGVtYTogc2NoZW1hLkNvbGxlY3Rpb248W09bJ3NjaGVtYSddXT5bJ3B1c2gnXTtcbiAgICAgIGJvZHk6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J11cbiAgICAgIDogUGFydGlhbDxEZW5vcm1hbGl6ZTxPWydzY2hlbWEnXT4+O1xuICAgICAgc2VhcmNoUGFyYW1zOiBPWydzZWFyY2hQYXJhbXMnXTtcbiAgICB9PlxuICA6IE11dGF0ZUVuZHBvaW50PHtcbiAgICAgIHBhdGg6IFNob3J0ZW5QYXRoPE9bJ3BhdGgnXT47XG4gICAgICBzY2hlbWE6IHNjaGVtYS5Db2xsZWN0aW9uPFtPWydzY2hlbWEnXV0+WydwdXNoJ107XG4gICAgICBib2R5OiAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID8gT1snYm9keSddXG4gICAgICA6IFBhcnRpYWw8RGVub3JtYWxpemU8T1snc2NoZW1hJ10+PjtcbiAgICB9PjtcbiAgLyoqIFVwZGF0ZSBhbiBpdGVtIChQVVQpXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL3Jlc291cmNlI3VwZGF0ZVxuICAgKi9cbiAgdXBkYXRlOiAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBNdXRhdGVFbmRwb2ludDx7XG4gICAgICBwYXRoOiBPWydwYXRoJ107XG4gICAgICBib2R5OiBPWydib2R5J107XG4gICAgICBzY2hlbWE6IE9bJ3NjaGVtYSddO1xuICAgIH0+XG4gIDogTXV0YXRlRW5kcG9pbnQ8e1xuICAgICAgcGF0aDogT1sncGF0aCddO1xuICAgICAgYm9keTogUGFydGlhbDxEZW5vcm1hbGl6ZTxPWydzY2hlbWEnXT4+IHwgRm9ybURhdGE7XG4gICAgICBzY2hlbWE6IE9bJ3NjaGVtYSddO1xuICAgIH0+O1xuICAvKiogVXBkYXRlIGFuIGl0ZW0gKFBBVENIKVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNwYXJ0aWFsdXBkYXRlXG4gICAqL1xuICBwYXJ0aWFsVXBkYXRlOiAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBNdXRhdGVFbmRwb2ludDx7XG4gICAgICBwYXRoOiBPWydwYXRoJ107XG4gICAgICBib2R5OiBQYXJ0aWFsPE9bJ2JvZHknXT47XG4gICAgICBzY2hlbWE6IE9bJ3NjaGVtYSddO1xuICAgIH0+XG4gIDogTXV0YXRlRW5kcG9pbnQ8e1xuICAgICAgcGF0aDogT1sncGF0aCddO1xuICAgICAgYm9keTogUGFydGlhbDxEZW5vcm1hbGl6ZTxPWydzY2hlbWEnXT4+IHwgRm9ybURhdGE7XG4gICAgICBzY2hlbWE6IE9bJ3NjaGVtYSddO1xuICAgIH0+O1xuICAvKiogRGVsZXRlIGFuIGl0ZW0gKERFTEVURSlcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2UjZGVsZXRlXG4gICAqL1xuICBkZWxldGU6IFJlc3RUeXBlTm9Cb2R5PFxuICAgIFBhdGhBcmdzPE9bJ3BhdGgnXT4sXG4gICAgT1snc2NoZW1hJ10gZXh0ZW5kcyBzY2hlbWEuRW50aXR5SW50ZXJmYWNlICYgeyBwcm9jZXNzOiBhbnkgfSA/XG4gICAgICBzY2hlbWEuSW52YWxpZGF0ZTxPWydzY2hlbWEnXT5cbiAgICA6IE9bJ3NjaGVtYSddLFxuICAgIHVuZGVmaW5lZCxcbiAgICBQYXJ0aWFsPFBhdGhBcmdzPE9bJ3BhdGgnXT4+LFxuICAgIHtcbiAgICAgIHBhdGg6IE9bJ3BhdGgnXTtcbiAgICB9XG4gID47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VJbnRlcmZhY2Uge1xuICBnZXQ6IFJlc3RJbnN0YW5jZUJhc2U7XG4gIGdldExpc3Q6IFJlc3RJbnN0YW5jZUJhc2U7XG4gIHVwZGF0ZTogUmVzdEluc3RhbmNlQmFzZTtcbiAgcGFydGlhbFVwZGF0ZTogUmVzdEluc3RhbmNlQmFzZTtcbiAgZGVsZXRlOiBSZXN0SW5zdGFuY2VCYXNlO1xufVxuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3Jlc291cmNlVHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uLCBzY2hlbWEgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuaW1wb3J0IHR5cGUgeyBTY2hlbWEgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuaW1wb3J0IHR5cGUgeyBEZW5vcm1hbGl6ZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmltcG9ydCB0eXBlIHtcbiAgS2V5c1RvQXJncyxcbiAgUGF0aEFyZ3MsXG4gIFJlc291cmNlUGF0aCxcbiAgU2hvcnRlblBhdGgsXG59IGZyb20gJy4vcGF0aFR5cGVzLmpzJztcbmltcG9ydCB7IEV4dGVuZGFibGUgfSBmcm9tICcuL3Jlc291cmNlRXh0ZW5kYWJsZS5qcyc7XG5pbXBvcnQgUmVzdEVuZHBvaW50LCB7XG4gIEdldEVuZHBvaW50LFxuICBNdXRhdGVFbmRwb2ludCxcbiAgUGFyYW1Ub0FyZ3MsXG4gIFJlc3RJbnN0YW5jZUJhc2UsXG4gIFJlc3RUeXBlTm9Cb2R5LFxufSBmcm9tICcuL1Jlc3RFbmRwb2ludC5qcyc7XG5cbi8qKiBUaGUgdHlwZWQgKGdlbmVyaWMpIG9wdGlvbnMgZm9yIGEgUmVzb3VyY2VcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNmdW5jdGlvbi1pbmhlcml0YW5jZS1wYXR0ZXJuc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlR2VuZXJpY3Mge1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2UjcGF0aCAqL1xuICByZWFkb25seSBwYXRoOiBSZXNvdXJjZVBhdGg7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNzY2hlbWEgKi9cbiAgcmVhZG9ubHkgc2NoZW1hOiBTY2hlbWE7XG4gIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNib2R5ICovXG4gIHJlYWRvbmx5IGJvZHk/OiBhbnk7XG4gIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNzZWFyY2hQYXJhbXMgKi9cbiAgcmVhZG9ubHkgc2VhcmNoUGFyYW1zPzogYW55O1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2UjcGFnaW5hdGlvbmZpZWxkICovXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbn1cbi8qKiBUaGUgdW50eXBlZCBvcHRpb25zIGZvciByZXNvdXJjZSgpICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlT3B0aW9ucyB7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNlbmRwb2ludCAqL1xuICBFbmRwb2ludD86IHR5cGVvZiBSZXN0RW5kcG9pbnQ7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNjb2xsZWN0aW9uICovXG4gIENvbGxlY3Rpb24/OiB0eXBlb2YgQ29sbGVjdGlvbjtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL3Jlc291cmNlI29wdGltaXN0aWMgKi9cbiAgb3B0aW1pc3RpYz86IGJvb2xlYW47XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSN1cmxwcmVmaXggKi9cbiAgdXJsUHJlZml4Pzogc3RyaW5nO1xuICByZXF1ZXN0SW5pdD86IFJlcXVlc3RJbml0O1xuICBnZXRIZWFkZXJzPyhoZWFkZXJzOiBIZWFkZXJzSW5pdCk6IFByb21pc2U8SGVhZGVyc0luaXQ+IHwgSGVhZGVyc0luaXQ7XG4gIGdldFJlcXVlc3RJbml0Pyhib2R5OiBhbnkpOiBQcm9taXNlPFJlcXVlc3RJbml0PiB8IFJlcXVlc3RJbml0O1xuICBmZXRjaFJlc3BvbnNlPyhpbnB1dDogUmVxdWVzdEluZm8sIGluaXQ6IFJlcXVlc3RJbml0KTogUHJvbWlzZTxhbnk+O1xuICBwYXJzZVJlc3BvbnNlPyhyZXNwb25zZTogUmVzcG9uc2UpOiBQcm9taXNlPGFueT47XG4gIC8qKiBEZWZhdWx0IGRhdGEgZXhwaXJ5IGxlbmd0aCwgd2lsbCBmYWxsIGJhY2sgdG8gTmV0d29ya01hbmFnZXIgZGVmYXVsdCBpZiBub3QgZGVmaW5lZCAqL1xuICByZWFkb25seSBkYXRhRXhwaXJ5TGVuZ3RoPzogbnVtYmVyO1xuICAvKiogRGVmYXVsdCBlcnJvciBleHBpcnkgbGVuZ3RoLCB3aWxsIGZhbGwgYmFjayB0byBOZXR3b3JrTWFuYWdlciBkZWZhdWx0IGlmIG5vdCBkZWZpbmVkICovXG4gIHJlYWRvbmx5IGVycm9yRXhwaXJ5TGVuZ3RoPzogbnVtYmVyO1xuICAvKiogUG9sbCB3aXRoIGF0IGxlYXN0IHRoaXMgZnJlcXVlbmN5IGluIG1pbGlzZWNvbmRzICovXG4gIHJlYWRvbmx5IHBvbGxGcmVxdWVuY3k/OiBudW1iZXI7XG4gIC8qKiBNYXJrcyBjYWNoZWQgcmVzb3VyY2VzIGFzIGludmFsaWQgaWYgdGhleSBhcmUgc3RhbGUgKi9cbiAgcmVhZG9ubHkgaW52YWxpZElmU3RhbGU/OiBib29sZWFuO1xuICAvKiogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHRocm93IG9yIGZhbGxiYWNrIHRvICovXG4gIGVycm9yUG9saWN5PyhlcnJvcjogYW55KTogJ2hhcmQnIHwgJ3NvZnQnIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogUmVzb3VyY2VzIGFyZSBhIGNvbGxlY3Rpb24gb2YgbWV0aG9kcyBmb3IgYSBnaXZlbiBkYXRhIG1vZGVsLlxuICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZTxcbiAgTyBleHRlbmRzIFJlc291cmNlR2VuZXJpY3MgPSB7IHBhdGg6IFJlc291cmNlUGF0aDsgc2NoZW1hOiBhbnkgfSxcbj4gZXh0ZW5kcyBFeHRlbmRhYmxlPE8+IHtcbiAgLyoqIEdldCBvbmUgaXRlbSAoR0VUKVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNnZXRcbiAgICovXG4gIGdldDogR2V0RW5kcG9pbnQ8eyBwYXRoOiBPWydwYXRoJ107IHNjaGVtYTogT1snc2NoZW1hJ10gfT47XG4gIC8qKiBHZXQgYW4gQXJyYXkgb2YgaXRlbXMgKEdFVClcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2UjZ2V0bGlzdFxuICAgKi9cbiAgZ2V0TGlzdDogJ3NlYXJjaFBhcmFtcycgZXh0ZW5kcyBrZXlvZiBPID9cbiAgICBHZXRFbmRwb2ludDxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogU2hvcnRlblBhdGg8T1sncGF0aCddPjtcbiAgICAgICAgc2NoZW1hOiBzY2hlbWEuQ29sbGVjdGlvbjxcbiAgICAgICAgICBbT1snc2NoZW1hJ11dLFxuICAgICAgICAgIFBhcmFtVG9BcmdzPFxuICAgICAgICAgICAgW09bJ3NlYXJjaFBhcmFtcyddXSBleHRlbmRzIFt1bmRlZmluZWRdID9cbiAgICAgICAgICAgICAgS2V5c1RvQXJnczxTaG9ydGVuUGF0aDxPWydwYXRoJ10+PlxuICAgICAgICAgICAgOiBPWydzZWFyY2hQYXJhbXMnXSAmIFBhdGhBcmdzPFNob3J0ZW5QYXRoPE9bJ3BhdGgnXT4+XG4gICAgICAgICAgPlxuICAgICAgICA+O1xuICAgICAgICBib2R5OiAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID8gT1snYm9keSddXG4gICAgICAgIDogUGFydGlhbDxEZW5vcm1hbGl6ZTxPWydzY2hlbWEnXT4+O1xuICAgICAgICBzZWFyY2hQYXJhbXM6IE9bJ3NlYXJjaFBhcmFtcyddO1xuICAgICAgICBtb3ZlUGF0aDogT1sncGF0aCddO1xuICAgICAgfSAmIFBpY2s8TywgJ3BhZ2luYXRpb25GaWVsZCc+XG4gICAgPlxuICA6IEdldEVuZHBvaW50PFxuICAgICAge1xuICAgICAgICBwYXRoOiBTaG9ydGVuUGF0aDxPWydwYXRoJ10+O1xuICAgICAgICBzY2hlbWE6IHNjaGVtYS5Db2xsZWN0aW9uPFxuICAgICAgICAgIFtPWydzY2hlbWEnXV0sXG4gICAgICAgICAgUGFyYW1Ub0FyZ3M8XG4gICAgICAgICAgICAoUmVjb3JkPHN0cmluZywgbnVtYmVyIHwgc3RyaW5nIHwgYm9vbGVhbj4gfCB1bmRlZmluZWQpICZcbiAgICAgICAgICAgICAgUGF0aEFyZ3M8U2hvcnRlblBhdGg8T1sncGF0aCddPj5cbiAgICAgICAgICA+XG4gICAgICAgID47XG4gICAgICAgIGJvZHk6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J11cbiAgICAgICAgOiBQYXJ0aWFsPERlbm9ybWFsaXplPE9bJ3NjaGVtYSddPj47XG4gICAgICAgIHNlYXJjaFBhcmFtczogUmVjb3JkPHN0cmluZywgbnVtYmVyIHwgc3RyaW5nIHwgYm9vbGVhbj4gfCB1bmRlZmluZWQ7XG4gICAgICAgIG1vdmVQYXRoOiBPWydwYXRoJ107XG4gICAgICB9ICYgUGljazxPLCAncGFnaW5hdGlvbkZpZWxkJz5cbiAgICA+O1xuICAvKiogQ3JlYXRlIGEgbmV3IGl0ZW0gKFBPU1QpXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBSZXNvdXJjZS5nZXRMaXN0LnB1c2ggaW5zdGVhZFxuICAgKi9cbiAgY3JlYXRlOiAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIE11dGF0ZUVuZHBvaW50PHtcbiAgICAgIHBhdGg6IFNob3J0ZW5QYXRoPE9bJ3BhdGgnXT47XG4gICAgICBzY2hlbWE6IHNjaGVtYS5Db2xsZWN0aW9uPFtPWydzY2hlbWEnXV0+WydwdXNoJ107XG4gICAgICBib2R5OiAnYm9keScgZXh0ZW5kcyBrZXlvZiBPID8gT1snYm9keSddXG4gICAgICA6IFBhcnRpYWw8RGVub3JtYWxpemU8T1snc2NoZW1hJ10+PjtcbiAgICAgIHNlYXJjaFBhcmFtczogT1snc2VhcmNoUGFyYW1zJ107XG4gICAgfT5cbiAgOiBNdXRhdGVFbmRwb2ludDx7XG4gICAgICBwYXRoOiBTaG9ydGVuUGF0aDxPWydwYXRoJ10+O1xuICAgICAgc2NoZW1hOiBzY2hlbWEuQ29sbGVjdGlvbjxbT1snc2NoZW1hJ11dPlsncHVzaCddO1xuICAgICAgYm9keTogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXVxuICAgICAgOiBQYXJ0aWFsPERlbm9ybWFsaXplPE9bJ3NjaGVtYSddPj47XG4gICAgfT47XG4gIC8qKiBVcGRhdGUgYW4gaXRlbSAoUFVUKVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSN1cGRhdGVcbiAgICovXG4gIHVwZGF0ZTogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgTXV0YXRlRW5kcG9pbnQ8e1xuICAgICAgcGF0aDogT1sncGF0aCddO1xuICAgICAgYm9keTogT1snYm9keSddO1xuICAgICAgc2NoZW1hOiBPWydzY2hlbWEnXTtcbiAgICB9PlxuICA6IE11dGF0ZUVuZHBvaW50PHtcbiAgICAgIHBhdGg6IE9bJ3BhdGgnXTtcbiAgICAgIGJvZHk6IFBhcnRpYWw8RGVub3JtYWxpemU8T1snc2NoZW1hJ10+PiB8IEZvcm1EYXRhO1xuICAgICAgc2NoZW1hOiBPWydzY2hlbWEnXTtcbiAgICB9PjtcbiAgLyoqIFVwZGF0ZSBhbiBpdGVtIChQQVRDSClcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2UjcGFydGlhbHVwZGF0ZVxuICAgKi9cbiAgcGFydGlhbFVwZGF0ZTogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgTXV0YXRlRW5kcG9pbnQ8e1xuICAgICAgcGF0aDogT1sncGF0aCddO1xuICAgICAgYm9keTogUGFydGlhbDxPWydib2R5J10+O1xuICAgICAgc2NoZW1hOiBPWydzY2hlbWEnXTtcbiAgICB9PlxuICA6IE11dGF0ZUVuZHBvaW50PHtcbiAgICAgIHBhdGg6IE9bJ3BhdGgnXTtcbiAgICAgIGJvZHk6IFBhcnRpYWw8RGVub3JtYWxpemU8T1snc2NoZW1hJ10+PiB8IEZvcm1EYXRhO1xuICAgICAgc2NoZW1hOiBPWydzY2hlbWEnXTtcbiAgICB9PjtcbiAgLyoqIERlbGV0ZSBhbiBpdGVtIChERUxFVEUpXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL3Jlc291cmNlI2RlbGV0ZVxuICAgKi9cbiAgZGVsZXRlOiBSZXN0VHlwZU5vQm9keTxcbiAgICBQYXRoQXJnczxPWydwYXRoJ10+LFxuICAgIE9bJ3NjaGVtYSddIGV4dGVuZHMgc2NoZW1hLkVudGl0eUludGVyZmFjZSAmIHsgcHJvY2VzczogYW55IH0gP1xuICAgICAgc2NoZW1hLkludmFsaWRhdGU8T1snc2NoZW1hJ10+XG4gICAgOiBPWydzY2hlbWEnXSxcbiAgICB1bmRlZmluZWQsXG4gICAgUGFydGlhbDxQYXRoQXJnczxPWydwYXRoJ10+PixcbiAgICB7XG4gICAgICBwYXRoOiBPWydwYXRoJ107XG4gICAgfVxuICA+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlSW50ZXJmYWNlIHtcbiAgZ2V0OiBSZXN0SW5zdGFuY2VCYXNlO1xuICBnZXRMaXN0OiBSZXN0SW5zdGFuY2VCYXNlO1xuICB1cGRhdGU6IFJlc3RJbnN0YW5jZUJhc2U7XG4gIHBhcnRpYWxVcGRhdGU6IFJlc3RJbnN0YW5jZUJhc2U7XG4gIGRlbGV0ZTogUmVzdEluc3RhbmNlQmFzZTtcbn1cbiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -7,5 +7,17 @@ export default class NetworkError extends Error {
7
7
  response: Response;
8
8
  name: string;
9
9
  constructor(response: Response);
10
+ /** Serialize the error for logging and debugging.
11
+ *
12
+ * Error properties are non-enumerable by default, so `JSON.stringify()`
13
+ * on a plain Error produces `{}`. This ensures status, message, and the
14
+ * request URL are always included in serialized output.
15
+ */
16
+ toJSON(): {
17
+ name: string;
18
+ status: number;
19
+ message: string;
20
+ url: string;
21
+ };
10
22
  }
11
23
  //# sourceMappingURL=NetworkError.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkError.d.ts","sourceRoot":"","sources":["../src/NetworkError.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,KAAK;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IAC3B,IAAI,SAAkB;gBAEV,QAAQ,EAAE,QAAQ;CAO/B"}
1
+ {"version":3,"file":"NetworkError.d.ts","sourceRoot":"","sources":["../src/NetworkError.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,KAAK;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IAC3B,IAAI,SAAkB;gBAEV,QAAQ,EAAE,QAAQ;IAQ9B;;;;;OAKG;IACH,MAAM;;;;;;CAQP"}