@pipeline-builder/api-core 4.1.22 → 5.0.1

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 (56) hide show
  1. package/lib/errors/app-errors.d.ts +4 -2
  2. package/lib/errors/app-errors.js +6 -4
  3. package/lib/helpers/content-disposition.d.ts +14 -0
  4. package/lib/helpers/content-disposition.js +22 -0
  5. package/lib/helpers/index.d.ts +1 -0
  6. package/lib/helpers/index.js +2 -1
  7. package/lib/middleware/assurance.js +2 -2
  8. package/lib/middleware/auth.js +7 -7
  9. package/lib/middleware/ecosystem-guard.js +3 -3
  10. package/lib/middleware/permission-gates.js +3 -3
  11. package/lib/middleware/service-tokens.js +2 -2
  12. package/lib/middleware/step-up.js +2 -2
  13. package/lib/services/api-key-exchange.js +2 -2
  14. package/lib/services/compliance-client.js +2 -2
  15. package/lib/services/durable-event-bus.js +3 -1
  16. package/lib/services/index.d.ts +1 -1
  17. package/lib/services/index.js +2 -2
  18. package/lib/services/jwks-cache.js +2 -2
  19. package/lib/services/leader-lock.d.ts +56 -3
  20. package/lib/services/leader-lock.js +60 -4
  21. package/lib/services/quota.js +2 -2
  22. package/lib/services/scheduler.d.ts +20 -4
  23. package/lib/services/scheduler.js +36 -6
  24. package/lib/services/service-keys.d.ts +0 -4
  25. package/lib/services/service-keys.js +1 -14
  26. package/lib/types/catalog-metadata.d.ts +0 -6
  27. package/lib/types/catalog-metadata.js +1 -1
  28. package/lib/types/ecosystem.d.ts +0 -1
  29. package/lib/types/ecosystem.js +1 -1
  30. package/lib/types/feature-flags.d.ts +1 -1
  31. package/lib/types/feature-flags.js +6 -1
  32. package/lib/types/index.d.ts +3 -2
  33. package/lib/types/index.js +3 -2
  34. package/lib/types/permissions.d.ts +16 -1
  35. package/lib/types/permissions.js +23 -2
  36. package/lib/types/plugin-scan.d.ts +26 -0
  37. package/lib/types/plugin-scan.js +1 -1
  38. package/lib/types/remote-audit-actions.d.ts +1 -1
  39. package/lib/types/remote-audit-actions.js +35 -1
  40. package/lib/types/reserved-tags.d.ts +28 -0
  41. package/lib/types/reserved-tags.js +37 -0
  42. package/lib/utils/index.d.ts +1 -1
  43. package/lib/utils/index.js +2 -2
  44. package/lib/utils/params.d.ts +33 -1
  45. package/lib/utils/params.js +54 -2
  46. package/lib/utils/response.js +2 -2
  47. package/lib/utils/secret-encryption.d.ts +0 -2
  48. package/lib/utils/secret-encryption.js +1 -5
  49. package/lib/validation/message-schemas.d.ts +0 -7
  50. package/lib/validation/message-schemas.js +3 -2
  51. package/lib/validation/pipeline-schemas.d.ts +6 -0
  52. package/lib/validation/pipeline-schemas.js +32 -2
  53. package/lib/validation/plugin-catalog-detect.d.ts +1 -1
  54. package/lib/validation/plugin-catalog-detect.js +2 -2
  55. package/lib/validation/plugin-spec-schema.js +2 -2
  56. package/package.json +2 -4
@@ -28,8 +28,8 @@
28
28
  * detection, so the CLI reports exactly what the server will detect.
29
29
  */
30
30
  import { OCI_LABELS, parseDockerfile } from './dockerfile-static.js';
31
- import { PLUGIN_CATALOG_FIELDS, PLUGIN_SUMMARY_MAX, } from '../types/plugin-catalog.js';
32
31
  import { PluginCatalogEditsSchema, contractKeysMessage, findContractKeys, validateCatalogField, } from './plugin-catalog-metadata.js';
32
+ import { PLUGIN_CATALOG_FIELDS, PLUGIN_SUMMARY_MAX, } from '../types/plugin-catalog.js';
33
33
  // -----------------------------------------------------------------------------
34
34
  // README reading
35
35
  // -----------------------------------------------------------------------------
@@ -234,4 +234,4 @@ export function parseCatalogEditsPart(text) {
234
234
  }
235
235
  return parseCatalogEdits(raw);
236
236
  }
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWNhdGFsb2ctZGV0ZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb24vcGx1Z2luLWNhdGFsb2ctZGV0ZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRSxPQUFPLEVBQ0wscUJBQXFCLEVBQUUsa0JBQWtCLEdBRTFDLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUNMLHdCQUF3QixFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixHQUN0RixNQUFNLDhCQUE4QixDQUFDO0FBMEN0QyxnRkFBZ0Y7QUFDaEYsaUJBQWlCO0FBQ2pCLGdGQUFnRjtBQUVoRixzR0FBc0c7QUFDdEcsTUFBTSxVQUFVLG1CQUFtQixDQUFDLElBQVk7SUFDOUMsT0FBTyxJQUFJO1NBQ1IsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQjtTQUN2RCxPQUFPLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLENBQUMsZUFBZTtTQUN2RCxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGNBQWM7U0FDdEMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQztTQUNoQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztTQUNwQixJQUFJLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCwyREFBMkQ7QUFDM0QsU0FBUyxVQUFVLENBQUMsRUFBVTtJQUM1QixNQUFNLEdBQUcsR0FBYSxFQUFFLENBQUM7SUFDekIsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ25CLEtBQUssTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFR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QU0sTUFBTSxHQUFHLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLE9BQU87WUFDTCxFQUFFLEVBQUUsS0FBSztZQUNULEtBQUssRUFBRSxxQkFBcUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFFBQVEsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7U0FDekgsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0FBQzFDLENBQUM7QUFFRCxpR0FBaUc7QUFDakcsTUFBTSxVQUFVLHFCQUFxQixDQUFDLElBQXdCO0lBQzVELElBQUksSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtRQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUM3RSxJQUFJLEdBQVksQ0FBQztJQUNqQixJQUFJLENBQUM7UUFDSCxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLDZCQUE2QixFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUNELE9BQU8saUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIENhdGFsb2cgbWV0YWRhdGE6IERFVEVDVEVEIGZyb20gdGhlIHBhY2thZ2UsIHRoZW4gQUNDRVBURUQgT1IgRURJVEVEXG4gKiAoZG9jcy9wbHVnaW4tcHVibGlzaGluZy5tZCkuXG4gKlxuICogU291cmNlcywgaGlnaGVzdCBwcmlvcml0eSBmaXJzdCDigJQgdGhlIGZpcnN0IG5vbi1lbXB0eSB2YWx1ZSB3aW5zLCBwZXIgZmllbGQ6XG4gKlxuICogfCBGaWVsZCAgICAgICAgICAgICAgfCAxLiBzcGVjICAgICAgICAgICAgfCAyLiBSRUFETUUubWQgICAgICAgfCAzLiBvd24gRG9ja2VyZmlsZSBMQUJFTCAgICAgICAgICAgICAgICAgfFxuICogfC0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICogfCBzdW1tYXJ5ICAgICAgICAgICAgfCBgc3VtbWFyeWAgICAgICAgICAgfCDigJQgICAgICAgICAgICAgICAgICB8IOKAlCAodGhlbiBmaXJzdCBzZW50ZW5jZSBvZiBkZXNjcmlwdGlvbikgIHxcbiAqIHwgZGVzY3JpcHRpb24gICAgICAgIHwgYGRlc2NyaXB0aW9uYCAgICAgIHwgZmlyc3QgcGFyYWdyYXBoICAgIHwgYG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5kZXNjcmlwdGlvbmAgIHxcbiAqIHwgZGlzcGxheU5hbWUgICAgICAgIHwg4oCUICAgICAgICAgICAgICAgICAgfCBmaXJzdCBgIyBoZWFkaW5nYCAgfCBgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnRpdGxlYCAgICAgICAgfFxuICogfCBsaWNlbnNlICAgICAgICAgICAgfCBgbGljZW5zZWAgICAgICAgICAgfCDigJQgICAgICAgICAgICAgICAgICB8IGBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UubGljZW5zZXNgICAgICB8XG4gKiB8IGhvbWVwYWdlVXJsICAgICAgICB8IGBob21lcGFnZVVybGAgICAgICB8IOKAlCAgICAgICAgICAgICAgICAgIHwgYG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS51cmxgICAgICAgICAgIHxcbiAqIHwgc291cmNlVXJsICAgICAgICAgIHwgYHNvdXJjZVVybGAgICAgICAgIHwg4oCUICAgICAgICAgICAgICAgICAgfCBgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnNvdXJjZWAgICAgICAgfFxuICogfCBkb2N1bWVudGF0aW9uVXJsICAgfCBgZG9jdW1lbnRhdGlvblVybGAgfCDigJQgICAgICAgICAgICAgICAgICB8IGBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuZG9jdW1lbnRhdGlvbmB8XG4gKiB8IGNhdGVnb3J5LCBrZXl3b3JkcywgaWNvbiwgY2hhbmdlbG9nIHwgc3BlYyB8IOKAlCAgICAgICAgICAgICAgfCDigJQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IHJlYWRtZSAgICAgICAgICAgICB8IOKAlCAgICAgICAgICAgICAgICAgIHwgYFJFQURNRS5tZGAgICAgICAgIHwg4oCUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICpcbiAqIEV2ZXJ5IHZhbHVlIOKAlCBkZXRlY3RlZCBvciB0eXBlZCDigJQgcGFzc2VzIHRoZSBPTkUgc2hhcmVkIHZhbGlkYXRvclxuICogKGFwaS1jb3JlIGB2YWxpZGF0ZUNhdGFsb2dGaWVsZGApLiBBIGRldGVjdGVkIHZhbHVlIHRoYXQgZmFpbHMgaXMgcmV0dXJuZWRcbiAqIEJMQU5LIFdJVEggVEhFIFJFQVNPTiwgbmV2ZXIgc2lsZW50bHkgZHJvcHBlZCwgYW5kIGlzIG5vdCBzdG9yZWQgdW5sZXNzIHRoZVxuICogdXNlciBzdXBwbGllcyBhIHZhbGlkIHJlcGxhY2VtZW50LlxuICpcbiAqIFB1cmUgYW5kIHNoYXJlZCBmcm9tIGFwaS1jb3JlOiB0aGUgcGx1Z2luIHNlcnZpY2UncyB1cGxvYWQgYW5kIGluc3BlY3RcbiAqIHJvdXRlcyBhbmQgdGhlIENMSSdzIGBwbHVnaW4gdmFsaWRhdGVgIC8gYHBsdWdpbiBwdWJsaXNoYCBydW4gdGhpcyBvbmVcbiAqIGRldGVjdGlvbiwgc28gdGhlIENMSSByZXBvcnRzIGV4YWN0bHkgd2hhdCB0aGUgc2VydmVyIHdpbGwgZGV0ZWN0LlxuICovXG5cbmltcG9ydCB7IE9DSV9MQUJFTFMsIHBhcnNlRG9ja2VyZmlsZSB9IGZyb20gJy4vZG9ja2VyZmlsZS1zdGF0aWMuanMnO1xuaW1wb3J0IHtcbiAgUExVR0lOX0NBVEFMT0dfRklFTERTLCBQTFVHSU5fU1VNTUFSWV9NQVgsXG4gIHR5cGUgTWV0YWRhdGFTb3VyY2UsIHR5cGUgTWV0YWRhdGFTb3VyY2VzLCB0eXBlIFBsdWdpbkNhdGFsb2dGaWVsZCxcbn0gZnJvbSAnLi4vdHlwZXMvcGx1Z2luLWNhdGFsb2cuanMnO1xuaW1wb3J0IHtcbiAgUGx1Z2luQ2F0YWxvZ0VkaXRzU2NoZW1hLCBjb250cmFjdEtleXNNZXNzYWdlLCBmaW5kQ29udHJhY3RLZXlzLCB2YWxpZGF0ZUNhdGFsb2dGaWVsZCwgdHlwZSBQbHVnaW5DYXRhbG9nRWRpdHMsXG59IGZyb20gJy4vcGx1Z2luLWNhdGFsb2ctbWV0YWRhdGEuanMnO1xuXG4vKiogQSBzb3VyY2UgYSB2YWx1ZSBjYW4gYmUgREVURUNURUQgZnJvbSAoYHVzZXJgIGlzIG9ubHkgZXZlciBhbiBlZGl0KS4gKi9cbmV4cG9ydCB0eXBlIERldGVjdGVkU291cmNlID0gRXhjbHVkZTxNZXRhZGF0YVNvdXJjZSwgJ3VzZXInPjtcblxuLyoqIE9uZSBkZXNjcmlwdGl2ZSBmaWVsZCBhcyBkZXRlY3RlZCBmcm9tIHRoZSBwYWNrYWdlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXRlY3RlZEZpZWxkIHtcbiAgZmllbGQ6IFBsdWdpbkNhdGFsb2dGaWVsZDtcbiAgLyoqIFRoZSB2YWxpZGF0ZWQgKG5vcm1hbGl6ZWQpIHZhbHVlLCBvciBudWxsIHdoZW4gbm9uZSB3YXMgZm91bmQgb3IgaXQgZmFpbGVkIHZhbGlkYXRpb24uICovXG4gIHZhbHVlOiB1bmtub3duO1xuICAvKiogV2hlcmUgdGhlIHdpbm5pbmcgY2FuZGlkYXRlIGNhbWUgZnJvbSwgb3IgbnVsbCB3aGVuIG5vIHNvdXJjZSBoYWQgb25lLiAqL1xuICBzb3VyY2U6IERldGVjdGVkU291cmNlIHwgbnVsbDtcbiAgLyoqIFdoeSB0aGUgd2lubmluZyBjYW5kaWRhdGUgd2FzIHJlZnVzZWQsIG9yIG51bGwuICovXG4gIGVycm9yOiBzdHJpbmcgfCBudWxsO1xufVxuXG4vKiogVGhlIHNwZWMgZmllbGRzIGRldGVjdGlvbiByZWFkcyAoYSBzdHJ1Y3R1cmFsIHN1YnNldCBvZiB0aGUgcGx1Z2luIHNwZWMpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXRhbG9nU3BlY0ZpZWxkcyB7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICByZWFkb25seSBzdW1tYXJ5Pzogc3RyaW5nO1xuICByZWFkb25seSBjYXRlZ29yeT86IHN0cmluZztcbiAgcmVhZG9ubHkga2V5d29yZHM/OiByZWFkb25seSBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgbGljZW5zZT86IHN0cmluZztcbiAgcmVhZG9ubHkgaG9tZXBhZ2VVcmw/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNvdXJjZVVybD86IHN0cmluZztcbiAgcmVhZG9ubHkgZG9jdW1lbnRhdGlvblVybD86IHN0cmluZztcbiAgcmVhZG9ubHkgaWNvbj86IHN0cmluZyB8IHsga2V5OiBzdHJpbmc7IGJhZGdlPzogc3RyaW5nIH07XG4gIHJlYWRvbmx5IGNoYW5nZWxvZz86IHN0cmluZztcbn1cblxuLyoqIFdoYXQgZGV0ZWN0aW9uIHJlYWRzOiB0aGUgc3BlYywgdGhlIHppcC1yb290IFJFQURNRSBhbmQgdGhlIHBsdWdpbidzIG93biBEb2NrZXJmaWxlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXRhbG9nSW5wdXRzIHtcbiAgc3BlYzogQ2F0YWxvZ1NwZWNGaWVsZHM7XG4gIHJlYWRtZU1kOiBzdHJpbmcgfCBudWxsO1xuICBkb2NrZXJmaWxlQ29udGVudDogc3RyaW5nIHwgbnVsbDtcbn1cblxuLyoqIFRoZSBhY2NlcHRlZC9lZGl0ZWQgdmFsdWVzIG9mIGV2ZXJ5IGRlc2NyaXB0aXZlIGZpZWxkLCBwbHVzIHRoZWlyIHByb3ZlbmFuY2UuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVkQ2F0YWxvZyB7XG4gIHZhbHVlczogUmVjb3JkPFBsdWdpbkNhdGFsb2dGaWVsZCwgdW5rbm93bj47XG4gIHNvdXJjZXM6IE1ldGFkYXRhU291cmNlcztcbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSRUFETUUgcmVhZGluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqIFN0cmlwIGlubGluZSBtYXJrZG93biBkb3duIHRvIHJlYWRhYmxlIHRleHQgKGxpbmtzIOKGkiB0ZXh0LCBpbWFnZXMvZW1waGFzaXMvY29kZSBtYXJrcyByZW1vdmVkKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpcElubGluZU1hcmtkb3duKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB0ZXh0XG4gICAgLnJlcGxhY2UoLyFcXFtbXlxcXV0qXFxdXFwoW14pXSpcXCkvZywgJycpIC8vIGltYWdlcyAvIGJhZGdlc1xuICAgIC5yZXBsYWNlKC9cXFsoW15cXF1dKilcXF1cXChbXildKlxcKS9nLCAnJDEnKSAvLyBsaW5rcyDihpIgdGV4dFxuICAgIC5yZXBsYWNlKC88W14+XSs+L2csICcnKSAvLyBpbmxpbmUgSFRNTFxuICAgIC5yZXBsYWNlKC8oXFwqXFwqfF9ffFxcKnxffGApL2csICcnKVxuICAgIC5yZXBsYWNlKC9cXHMrL2csICcgJylcbiAgICAudHJpbSgpO1xufVxuXG4vKiogTWFya2Rvd24gbGluZXMgb3V0c2lkZSBmZW5jZWQgY29kZSBibG9ja3MsIGluIG9yZGVyLiAqL1xuZnVuY3Rpb24gcHJvc2VMaW5lcyhtZDogc3RyaW5nKTogc3RyaW5nW10ge1xuICBjb25zdCBvdXQ6IHN0cmluZ1tdID0gW107XG4gIGxldCBmZW5jZWQgPSBmYWxzZTtcbiAgZm9yIChjb25zdCBsaW5lIG9mIG1kLnJlcGxhY2UoL1xcclxcbj8vZywgJ1xcbicpLnNwbGl0KCdcXG4nKSkge1xuICAgIGlmICgvXlxccyooYGBgfH5+fikvLnRlc3QobGluZSkpIHtcbiAgICAgIGZlbmNlZCA9ICFmZW5jZWQ7XG4gICAgICBvdXQucHVzaCgnJyk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgb3V0LnB1c2goZmVuY2VkID8gJycgOiBsaW5lKTtcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuXG4vKiogVGhlIFJFQURNRSdzIGZpcnN0IGxldmVsLTEgQVRYIGhlYWRpbmcgKGAjIFRpdGxlYCksIGFzIHBsYWluIHRleHQuICovXG5leHBvcnQgZnVuY3Rpb24gcmVhZG1lVGl0bGUobWQ6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICBmb3IgKGNvbnN0IGxpbmUgb2YgcHJvc2VMaW5lcyhtZCkpIHtcbiAgICBjb25zdCBtID0gL14jXFxzKyguKz8pXFxzKiMqXFxzKiQvLmV4ZWMobGluZSk7XG4gICAgaWYgKG0pIHtcbiAgICAgIGNvbnN0IHRpdGxlID0gc3RyaXBJbmxpbmVNYXJrZG93bihtWzFdISk7XG4gICAgICByZXR1cm4gdGl0bGUgfHwgbnVsbDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogVGhlIFJFQURNRSdzIGZpcnN0IHByb3NlIHBhcmFncmFwaDogdGhlIGZpcnN0IGJsb2NrIG9mIGNvbnNlY3V0aXZlIHRleHRcbiAqIGxpbmVzIHRoYXQgaXMgbm90IGEgaGVhZGluZywgYmFkZ2Ugcm93LCBsaXN0LCB0YWJsZSwgcXVvdGUsIHJ1bGUgb3IgSFRNTC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRtZUZpcnN0UGFyYWdyYXBoKG1kOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgaXNTdHJ1Y3R1cmFsID0gKGw6IHN0cmluZyk6IGJvb2xlYW4gPT5cbiAgICAvXlxccyooI3w+fFstKitdXFxzfFxcZCtbLildXFxzfFxcfHw8fC0tLXxcXCpcXCpcXCp8PT09KS8udGVzdChsKTtcbiAgbGV0IHBhcmE6IHN0cmluZ1tdID0gW107XG4gIGZvciAoY29uc3QgbGluZSBvZiBbLi4ucHJvc2VMaW5lcyhtZCksICcnXSkge1xuICAgIGlmIChsaW5lLnRyaW0oKSA9PT0gJycgfHwgaXNTdHJ1Y3R1cmFsKGxpbmUpKSB7XG4gICAgICBpZiAocGFyYS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHRleHQgPSBzdHJpcElubGluZU1hcmtkb3duKHBhcmEuam9pbignICcpKTtcbiAgICAgICAgaWYgKHRleHQpIHJldHVybiB0ZXh0O1xuICAgICAgfVxuICAgICAgcGFyYSA9IFtdO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIHBhcmEucHVzaChsaW5lLnRyaW0oKSk7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogVGhlIGZpcnN0IHNlbnRlbmNlIG9mIGB0ZXh0YCwgY2FwcGVkIGF0IHtAbGluayBQTFVHSU5fU1VNTUFSWV9NQVh9OiBjdXQgYXRcbiAqIHRoZSBmaXJzdCBgLmAvYCFgL2A/YCBmb2xsb3dlZCBieSB3aGl0ZXNwYWNlIChvciB0aGUgZW5kKSwgZWxzZSB0aGUgZmlyc3RcbiAqIGxpbmU7IGFuIG92ZXItbG9uZyBzZW50ZW5jZSBpcyBzaG9ydGVuZWQgb24gYSB3b3JkIGJvdW5kYXJ5IHdpdGggYOKApmAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaXJzdFNlbnRlbmNlKHRleHQ6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCBmbGF0ID0gdGV4dC5yZXBsYWNlKC9cXHMrL2csICcgJykudHJpbSgpO1xuICBpZiAoIWZsYXQpIHJldHVybiBudWxsO1xuICBjb25zdCBtID0gL14oLis/Wy4hP10pKFxcc3wkKS8uZXhlYyhmbGF0KTtcbiAgY29uc3Qgc2VudGVuY2UgPSAobSA/IG1bMV0hIDogZmxhdCkudHJpbSgpO1xuICBpZiAoc2VudGVuY2UubGVuZ3RoIDw9IFBMVUdJTl9TVU1NQVJZX01BWCkgcmV0dXJuIHNlbnRlbmNlO1xuICBjb25zdCBjdXQgPSBzZW50ZW5jZS5zbGljZSgwLCBQTFVHSU5fU1VNTUFSWV9NQVggLSAxKTtcbiAgY29uc3QgYXRXb3JkID0gY3V0LmluY2x1ZGVzKCcgJykgPyBjdXQuc2xpY2UoMCwgY3V0Lmxhc3RJbmRleE9mKCcgJykpIDogY3V0O1xuICByZXR1cm4gYCR7YXRXb3JkLnJlcGxhY2UoL1tcXHMsOzpdKyQvLCAnJyl94oCmYDtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIERldGVjdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxudHlwZSBDYW5kaWRhdGUgPSBbRGV0ZWN0ZWRTb3VyY2UsIHVua25vd25dO1xuXG5jb25zdCBub25FbXB0eSA9ICh2OiB1bmtub3duKTogYm9vbGVhbiA9PlxuICB2ICE9PSB1bmRlZmluZWQgJiYgdiAhPT0gbnVsbCAmJiAhKHR5cGVvZiB2ID09PSAnc3RyaW5nJyAmJiB2LnRyaW0oKSA9PT0gJycpICYmICEoQXJyYXkuaXNBcnJheSh2KSAmJiB2Lmxlbmd0aCA9PT0gMCk7XG5cbi8qKiBQaWNrIHRoZSBmaXJzdCBub24tZW1wdHkgY2FuZGlkYXRlIGFuZCB2YWxpZGF0ZSBpdCAoYmxhbmsgKyByZWFzb24gb24gZmFpbHVyZSkuICovXG5mdW5jdGlvbiBwaWNrKGZpZWxkOiBQbHVnaW5DYXRhbG9nRmllbGQsIGNhbmRpZGF0ZXM6IENhbmRpZGF0ZVtdKTogRGV0ZWN0ZWRGaWVsZCB7XG4gIGNvbnN0IHdpbm5lciA9IGNhbmRpZGF0ZXMuZmluZCgoWywgdl0pID0+IG5vbkVtcHR5KHYpKTtcbiAgaWYgKCF3aW5uZXIpIHJldHVybiB7IGZpZWxkLCB2YWx1ZTogbnVsbCwgc291cmNlOiBudWxsLCBlcnJvcjogbnVsbCB9O1xuICBjb25zdCBbc291cmNlLCByYXddID0gd2lubmVyO1xuICBjb25zdCBjaGVja2VkID0gdmFsaWRhdGVDYXRhbG9nRmllbGQoZmllbGQsIHJhdyk7XG4gIHJldHVybiBjaGVja2VkLm9rXG4gICAgPyB7IGZpZWxkLCB2YWx1ZTogY2hlY2tlZC52YWx1ZSwgc291cmNlLCBlcnJvcjogbnVsbCB9XG4gICAgOiB7IGZpZWxkLCB2YWx1ZTogbnVsbCwgc291cmNlLCBlcnJvcjogY2hlY2tlZC5lcnJvciB9O1xufVxuXG4vKiogVGhlIHN1bW1hcnkgZGVyaXZlZCBmcm9tIGEgZGVzY3JpcHRpb24sIGFzIGEgZGV0ZWN0ZWQgZmllbGQuICovXG5mdW5jdGlvbiBkZXJpdmVkU3VtbWFyeShkZXNjcmlwdGlvbjogdW5rbm93bik6IERldGVjdGVkRmllbGQge1xuICBjb25zdCBzZW50ZW5jZSA9IHR5cGVvZiBkZXNjcmlwdGlvbiA9PT0gJ3N0cmluZycgPyBmaXJzdFNlbnRlbmNlKGRlc2NyaXB0aW9uKSA6IG51bGw7XG4gIHJldHVybiBwaWNrKCdzdW1tYXJ5JywgW1snZGVyaXZlZCcsIHNlbnRlbmNlXV0pO1xufVxuXG4vKipcbiAqIERldGVjdCBldmVyeSBkZXNjcmlwdGl2ZSBmaWVsZCBmcm9tIHRoZSBwYWNrYWdlLCBpblxuICogYFBMVUdJTl9DQVRBTE9HX0ZJRUxEU2Agb3JkZXIuIFB1cmU7IG5ldmVyIHRocm93cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRldGVjdENhdGFsb2dNZXRhZGF0YShpbnB1dHM6IENhdGFsb2dJbnB1dHMpOiBEZXRlY3RlZEZpZWxkW10ge1xuICBjb25zdCB7IHNwZWMgfSA9IGlucHV0cztcbiAgY29uc3QgcmVhZG1lID0gaW5wdXRzLnJlYWRtZU1kO1xuICBjb25zdCBsYWJlbHMgPSBwYXJzZURvY2tlcmZpbGUoaW5wdXRzLmRvY2tlcmZpbGVDb250ZW50KS5sYWJlbHM7XG4gIGNvbnN0IGxhYmVsID0gKGtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IGxhYmVsc1trZXldO1xuXG4gIGNvbnN0IGRlc2NyaXB0aW9uID0gcGljaygnZGVzY3JpcHRpb24nLCBbXG4gICAgWydzcGVjJywgc3BlYy5kZXNjcmlwdGlvbl0sXG4gICAgWydyZWFkbWUnLCByZWFkbWUgIT09IG51bGwgPyByZWFkbWVGaXJzdFBhcmFncmFwaChyZWFkbWUpIDogbnVsbF0sXG4gICAgWydkb2NrZXJmaWxlJywgbGFiZWwoT0NJX0xBQkVMUy5kZXNjcmlwdGlvbildLFxuICBdKTtcbiAgY29uc3Qgc3BlY1N1bW1hcnkgPSBwaWNrKCdzdW1tYXJ5JywgW1snc3BlYycsIHNwZWMuc3VtbWFyeV1dKTtcblxuICBjb25zdCBieUZpZWxkOiBSZWNvcmQ8UGx1Z2luQ2F0YWxvZ0ZpZWxkLCBEZXRlY3RlZEZpZWxkPiA9IHtcbiAgICBkaXNwbGF5TmFtZTogcGljaygnZGlzcGxheU5hbWUnLCBbXG4gICAgICBbJ3JlYWRtZScsIHJlYWRtZSAhPT0gbnVsbCA/IHJlYWRtZVRpdGxlKHJlYWRtZSkgOiBudWxsXSxcbiAgICAgIFsnZG9ja2VyZmlsZScsIGxhYmVsKE9DSV9MQUJFTFMudGl0bGUpXSxcbiAgICBdKSxcbiAgICBzdW1tYXJ5OiBzcGVjU3VtbWFyeS5zb3VyY2UgIT09IG51bGwgPyBzcGVjU3VtbWFyeSA6IGRlcml2ZWRTdW1tYXJ5KGRlc2NyaXB0aW9uLnZhbHVlKSxcbiAgICBkZXNjcmlwdGlvbixcbiAgICBjYXRlZ29yeTogcGljaygnY2F0ZWdvcnknLCBbWydzcGVjJywgc3BlYy5jYXRlZ29yeV1dKSxcbiAgICBrZXl3b3JkczogcGljaygna2V5d29yZHMnLCBbWydzcGVjJywgc3BlYy5rZXl3b3Jkc11dKSxcbiAgICBsaWNlbnNlOiBwaWNrKCdsaWNlbnNlJywgW1snc3BlYycsIHNwZWMubGljZW5zZV0sIFsnZG9ja2VyZmlsZScsIGxhYmVsKE9DSV9MQUJFTFMubGljZW5zZXMpXV0pLFxuICAgIGhvbWVwYWdlVXJsOiBwaWNrKCdob21lcGFnZVVybCcsIFtbJ3NwZWMnLCBzcGVjLmhvbWVwYWdlVXJsXSwgWydkb2NrZXJmaWxlJywgbGFiZWwoT0NJX0xBQkVMUy51cmwpXV0pLFxuICAgIHNvdXJjZVVybDogcGljaygnc291cmNlVXJsJywgW1snc3BlYycsIHNwZWMuc291cmNlVXJsXSwgWydkb2NrZXJmaWxlJywgbGFiZWwoT0NJX0xBQkVMUy5zb3VyY2UpXV0pLFxuICAgIGRvY3VtZW50YXRpb25Vcmw6IHBpY2soJ2RvY3VtZW50YXRpb25VcmwnLCBbWydzcGVjJywgc3BlYy5kb2N1bWVudGF0aW9uVXJsXSwgWydkb2NrZXJmaWxlJywgbGFiZWwoT0NJX0xBQkVMUy5kb2N1bWVudGF0aW9uKV1dKSxcbiAgICBpY29uOiBwaWNrKCdpY29uJywgW1snc3BlYycsIHNwZWMuaWNvbl1dKSxcbiAgICBjaGFuZ2Vsb2c6IHBpY2soJ2NoYW5nZWxvZycsIFtbJ3NwZWMnLCBzcGVjLmNoYW5nZWxvZ11dKSxcbiAgICByZWFkbWU6IHBpY2soJ3JlYWRtZScsIFtbJ3JlYWRtZScsIHJlYWRtZV1dKSxcbiAgfTtcbiAgcmV0dXJuIFBMVUdJTl9DQVRBTE9HX0ZJRUxEUy5tYXAoKGYpID0+IGJ5RmllbGRbZl0pO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQWNjZXB0IG9yIGVkaXRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogQXBwbHkgdGhlIHVzZXIncyBlZGl0cyBvdmVyIHRoZSBkZXRlY3RlZCB2YWx1ZXMuIEEga2V5IHByZXNlbnQgaW4gYGVkaXRzYFxuICogaXMgdGhlIHVzZXIncyAoYG51bGxgIGNsZWFycyBpdCkgYW5kIGlzIHJlY29yZGVkIGFzIGB1c2VyYDsgZXZlcnkgb3RoZXIgZmllbGRcbiAqIGtlZXBzIGl0cyBkZXRlY3RlZCB2YWx1ZSAobm9uZSB3aGVuIGl0IGZhaWxlZCB2YWxpZGF0aW9uKS4gYGVkaXRzYCBtdXN0XG4gKiBhbHJlYWR5IGhhdmUgcGFzc2VkIGBQbHVnaW5DYXRhbG9nRWRpdHNTY2hlbWFgLiBBIHN1bW1hcnkgdGhhdCB3YXMgREVSSVZFRFxuICogZnJvbSB0aGUgZGVzY3JpcHRpb24gaXMgcmUtZGVyaXZlZCB3aGVuIHRoZSB1c2VyIGVkaXRlZCB0aGUgZGVzY3JpcHRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ2F0YWxvZ01ldGFkYXRhKGRldGVjdGVkOiBEZXRlY3RlZEZpZWxkW10sIGVkaXRzOiBQbHVnaW5DYXRhbG9nRWRpdHMgPSB7fSk6IFJlc29sdmVkQ2F0YWxvZyB7XG4gIGNvbnN0IHZhbHVlcyA9IHt9IGFzIFJlY29yZDxQbHVnaW5DYXRhbG9nRmllbGQsIHVua25vd24+O1xuICBjb25zdCBzb3VyY2VzOiBNZXRhZGF0YVNvdXJjZXMgPSB7fTtcbiAgY29uc3Qgc2V0ID0gKGZpZWxkOiBQbHVnaW5DYXRhbG9nRmllbGQsIHZhbHVlOiB1bmtub3duLCBzb3VyY2U6IE1ldGFkYXRhU291cmNlIHwgbnVsbCk6IHZvaWQgPT4ge1xuICAgIHZhbHVlc1tmaWVsZF0gPSB2YWx1ZSA/PyBudWxsO1xuICAgIGlmIChzb3VyY2UgJiYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQgfHwgc291cmNlID09PSAndXNlcicpKSBzb3VyY2VzW2ZpZWxkXSA9IHNvdXJjZTtcbiAgfTtcblxuICBmb3IgKGNvbnN0IGQgb2YgZGV0ZWN0ZWQpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGVkaXRzLCBkLmZpZWxkKSkge1xuICAgICAgc2V0KGQuZmllbGQsIChlZGl0cyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbZC5maWVsZF0sICd1c2VyJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldChkLmZpZWxkLCBkLmVycm9yID8gbnVsbCA6IGQudmFsdWUsIGQuZXJyb3IgPyBudWxsIDogZC5zb3VyY2UpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHN1bW1hcnlEZXRlY3RlZCA9IGRldGVjdGVkLmZpbmQoKGQpID0+IGQuZmllbGQgPT09ICdzdW1tYXJ5Jyk7XG4gIGNvbnN0IHN1bW1hcnlFZGl0ZWQgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZWRpdHMsICdzdW1tYXJ5Jyk7XG4gIGNvbnN0IGRlc2NyaXB0aW9uRWRpdGVkID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGVkaXRzLCAnZGVzY3JpcHRpb24nKTtcbiAgaWYgKCFzdW1tYXJ5RWRpdGVkICYmIGRlc2NyaXB0aW9uRWRpdGVkICYmIChzdW1tYXJ5RGV0ZWN0ZWQ/LnNvdXJjZSA9PT0gJ2Rlcml2ZWQnIHx8IHN1bW1hcnlEZXRlY3RlZD8uc291cmNlID09PSBudWxsKSkge1xuICAgIGNvbnN0IHJlZGVyaXZlZCA9IGRlcml2ZWRTdW1tYXJ5KHZhbHVlcy5kZXNjcmlwdGlvbik7XG4gICAgZGVsZXRlIHNvdXJjZXMuc3VtbWFyeTtcbiAgICBzZXQoJ3N1bW1hcnknLCByZWRlcml2ZWQuZXJyb3IgPyBudWxsIDogcmVkZXJpdmVkLnZhbHVlLCByZWRlcml2ZWQuZXJyb3IgPyBudWxsIDogcmVkZXJpdmVkLnNvdXJjZSk7XG4gIH1cbiAgcmV0dXJuIHsgdmFsdWVzLCBzb3VyY2VzIH07XG59XG5cbi8qKiBBIGRldGVjdGlvbiB3aXRoIGV2ZXJ5IHZhbHVlIGFjY2VwdGVkIChubyBlZGl0cykg4oCUIHNjcmlwdHMsIHRoZSBPZmZpY2lhbCBsb2FkZXIuICovXG5leHBvcnQgZnVuY3Rpb24gYWNjZXB0QWxsQ2F0YWxvZ01ldGFkYXRhKGRldGVjdGVkOiBEZXRlY3RlZEZpZWxkW10pOiBSZXNvbHZlZENhdGFsb2cge1xuICByZXR1cm4gcmVzb2x2ZUNhdGFsb2dNZXRhZGF0YShkZXRlY3RlZCwge30pO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRWRpdCBwYXlsb2Fkc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBWYWxpZGF0ZSBhIGNhdGFsb2ctZWRpdCBwYXlsb2FkICh0aGUgdXBsb2FkJ3MgYG1ldGFkYXRhYCBwYXJ0LCBhbHJlYWR5XG4gKiBKU09OLWRlY29kZWQpLiBFeGVjdXRpb24tY29udHJhY3Qga2V5cyBhcmUgcmVmdXNlZCBieSBuYW1lIGJlZm9yZSB0aGVcbiAqIHN0cmljdCBzY2hlbWEgcnVucywgc28gdGhlIGNhbGxlciBsZWFybnMgZXhhY3RseSB3aGljaCBrZXlzIGNhbid0IGJlIGVkaXRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ2F0YWxvZ0VkaXRzKHJhdzogdW5rbm93bik6IHsgb2s6IHRydWU7IHZhbHVlOiBQbHVnaW5DYXRhbG9nRWRpdHMgfSB8IHsgb2s6IGZhbHNlOyBlcnJvcjogc3RyaW5nOyBjb250cmFjdEtleXM/OiBzdHJpbmdbXSB9IHtcbiAgaWYgKCFyYXcgfHwgdHlwZW9mIHJhdyAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheShyYXcpKSB7XG4gICAgcmV0dXJuIHsgb2s6IGZhbHNlLCBlcnJvcjogJ21ldGFkYXRhIG11c3QgYmUgYSBKU09OIG9iamVjdCcgfTtcbiAgfVxuICBjb25zdCBjb250cmFjdEtleXMgPSBmaW5kQ29udHJhY3RLZXlzKHJhdyk7XG4gIGlmIChjb250cmFjdEtleXMubGVuZ3RoID4gMCkgcmV0dXJuIHsgb2s6IGZhbHNlLCBlcnJvcjogY29udHJhY3RLZXlzTWVzc2FnZShjb250cmFjdEtleXMpLCBjb250cmFjdEtleXMgfTtcbiAgY29uc3QgcGFyc2VkID0gUGx1Z2luQ2F0YWxvZ0VkaXRzU2NoZW1hLnNhZmVQYXJzZShyYXcpO1xuICBpZiAoIXBhcnNlZC5zdWNjZXNzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9rOiBmYWxzZSxcbiAgICAgIGVycm9yOiBgSW52YWxpZCBtZXRhZGF0YTogJHtwYXJzZWQuZXJyb3IuaXNzdWVzLm1hcCgoaSkgPT4gYCR7aS5wYXRoLmpvaW4oJy4nKSB8fCAnKHJvb3QpJ306ICR7aS5tZXNzYWdlfWApLmpvaW4oJzsgJyl9YCxcbiAgICB9O1xuICB9XG4gIHJldHVybiB7IG9rOiB0cnVlLCB2YWx1ZTogcGFyc2VkLmRhdGEgfTtcbn1cblxuLyoqIERlY29kZSB0aGUgdXBsb2FkJ3MgbXVsdGlwYXJ0IGBtZXRhZGF0YWAgcGFydCAoSlNPTiB0ZXh0KSwgdGhlbiB7QGxpbmsgcGFyc2VDYXRhbG9nRWRpdHN9LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ2F0YWxvZ0VkaXRzUGFydCh0ZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQpOiBSZXR1cm5UeXBlPHR5cGVvZiBwYXJzZUNhdGFsb2dFZGl0cz4ge1xuICBpZiAodGV4dCA9PT0gdW5kZWZpbmVkIHx8IHRleHQudHJpbSgpID09PSAnJykgcmV0dXJuIHsgb2s6IHRydWUsIHZhbHVlOiB7fSB9O1xuICBsZXQgcmF3OiB1bmtub3duO1xuICB0cnkge1xuICAgIHJhdyA9IEpTT04ucGFyc2UodGV4dCk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB7IG9rOiBmYWxzZSwgZXJyb3I6ICdtZXRhZGF0YSBtdXN0IGJlIHZhbGlkIEpTT04nIH07XG4gIH1cbiAgcmV0dXJuIHBhcnNlQ2F0YWxvZ0VkaXRzKHJhdyk7XG59XG4iXX0=
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWNhdGFsb2ctZGV0ZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb24vcGx1Z2luLWNhdGFsb2ctZGV0ZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRSxPQUFPLEVBQ0wsd0JBQXdCLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEdBQ3RGLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUNMLHFCQUFxQixFQUFFLGtCQUFrQixHQUUxQyxNQUFNLDRCQUE0QixDQUFDO0FBMENwQyxnRkFBZ0Y7QUFDaEYsaUJBQWlCO0FBQ2pCLGdGQUFnRjtBQUVoRixzR0FBc0c7QUFDdEcsTUFBTSxVQUFVLG1CQUFtQixDQUFDLElBQVk7SUFDOUMsT0FBTyxJQUFJO1NBQ1IsT0FBTyxDQUFDLHVCQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQjtTQUN2RCxPQUFPLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLENBQUMsZUFBZTtTQUN2RCxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGNBQWM7U0FDdEMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQztTQUNoQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztTQUNwQixJQUFJLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCwyREFBMkQ7QUFDM0QsU0FBUyxVQUFVLENBQUMsRUFBVTtJQUM1QixNQUFNLEdBQUcsR0FBYSxFQUFFLENBQUM7SUFDekIsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ25CLEtBQUssTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFR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QU0sTUFBTSxHQUFHLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLE9BQU87WUFDTCxFQUFFLEVBQUUsS0FBSztZQUNULEtBQUssRUFBRSxxQkFBcUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFFBQVEsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7U0FDekgsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0FBQzFDLENBQUM7QUFFRCxpR0FBaUc7QUFDakcsTUFBTSxVQUFVLHFCQUFxQixDQUFDLElBQXdCO0lBQzVELElBQUksSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtRQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUM3RSxJQUFJLEdBQVksQ0FBQztJQUNqQixJQUFJLENBQUM7UUFDSCxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLDZCQUE2QixFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUNELE9BQU8saUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIENhdGFsb2cgbWV0YWRhdGE6IERFVEVDVEVEIGZyb20gdGhlIHBhY2thZ2UsIHRoZW4gQUNDRVBURUQgT1IgRURJVEVEXG4gKiAoZG9jcy9wbHVnaW4tcHVibGlzaGluZy5tZCkuXG4gKlxuICogU291cmNlcywgaGlnaGVzdCBwcmlvcml0eSBmaXJzdCDigJQgdGhlIGZpcnN0IG5vbi1lbXB0eSB2YWx1ZSB3aW5zLCBwZXIgZmllbGQ6XG4gKlxuICogfCBGaWVsZCAgICAgICAgICAgICAgfCAxLiBzcGVjICAgICAgICAgICAgfCAyLiBSRUFETUUubWQgICAgICAgfCAzLiBvd24gRG9ja2VyZmlsZSBMQUJFTCAgICAgICAgICAgICAgICAgfFxuICogfC0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICogfCBzdW1tYXJ5ICAgICAgICAgICAgfCBgc3VtbWFyeWAgICAgICAgICAgfCDigJQgICAgICAgICAgICAgICAgICB8IOKAlCAodGhlbiBmaXJzdCBzZW50ZW5jZSBvZiBkZXNjcmlwdGlvbikgIHxcbiAqIHwgZGVzY3JpcHRpb24gICAgICAgIHwgYGRlc2NyaXB0aW9uYCAgICAgIHwgZmlyc3QgcGFyYWdyYXBoICAgIHwgYG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS5kZXNjcmlwdGlvbmAgIHxcbiAqIHwgZGlzcGxheU5hbWUgICAgICAgIHwg4oCUICAgICAgICAgICAgICAgICAgfCBmaXJzdCBgIyBoZWFkaW5nYCAgfCBgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnRpdGxlYCAgICAgICAgfFxuICogfCBsaWNlbnNlICAgICAgICAgICAgfCBgbGljZW5zZWAgICAgICAgICAgfCDigJQgICAgICAgICAgICAgICAgICB8IGBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UubGljZW5zZXNgICAgICB8XG4gKiB8IGhvbWVwYWdlVXJsICAgICAgICB8IGBob21lcGFnZVVybGAgICAgICB8IOKAlCAgICAgICAgICAgICAgICAgIHwgYG9yZy5vcGVuY29udGFpbmVycy5pbWFnZS51cmxgICAgICAgICAgIHxcbiAqIHwgc291cmNlVXJsICAgICAgICAgIHwgYHNvdXJjZVVybGAgICAgICAgIHwg4oCUICAgICAgICAgICAgICAgICAgfCBgb3JnLm9wZW5jb250YWluZXJzLmltYWdlLnNvdXJjZWAgICAgICAgfFxuICogfCBkb2N1bWVudGF0aW9uVXJsICAgfCBgZG9jdW1lbnRhdGlvblVybGAgfCDigJQgICAgICAgICAgICAgICAgICB8IGBvcmcub3BlbmNvbnRhaW5lcnMuaW1hZ2UuZG9jdW1lbnRhdGlvbmB8XG4gKiB8IGNhdGVnb3J5LCBrZXl3b3JkcywgaWNvbiwgY2hhbmdlbG9nIHwgc3BlYyB8IOKAlCAgICAgICAgICAgICAgfCDigJQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IHJlYWRtZSAgICAgICAgICAgICB8IOKAlCAgICAgICAgICAgICAgICAgIHwgYFJFQURNRS5tZGAgICAgICAgIHwg4oCUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICpcbiAqIEV2ZXJ5IHZhbHVlIOKAlCBkZXRlY3RlZCBvciB0eXBlZCDigJQgcGFzc2VzIHRoZSBPTkUgc2hhcmVkIHZhbGlkYXRvclxuICogKGFwaS1jb3JlIGB2YWxpZGF0ZUNhdGFsb2dGaWVsZGApLiBBIGRldGVjdGVkIHZhbHVlIHRoYXQgZmFpbHMgaXMgcmV0dXJuZWRcbiAqIEJMQU5LIFdJVEggVEhFIFJFQVNPTiwgbmV2ZXIgc2lsZW50bHkgZHJvcHBlZCwgYW5kIGlzIG5vdCBzdG9yZWQgdW5sZXNzIHRoZVxuICogdXNlciBzdXBwbGllcyBhIHZhbGlkIHJlcGxhY2VtZW50LlxuICpcbiAqIFB1cmUgYW5kIHNoYXJlZCBmcm9tIGFwaS1jb3JlOiB0aGUgcGx1Z2luIHNlcnZpY2UncyB1cGxvYWQgYW5kIGluc3BlY3RcbiAqIHJvdXRlcyBhbmQgdGhlIENMSSdzIGBwbHVnaW4gdmFsaWRhdGVgIC8gYHBsdWdpbiBwdWJsaXNoYCBydW4gdGhpcyBvbmVcbiAqIGRldGVjdGlvbiwgc28gdGhlIENMSSByZXBvcnRzIGV4YWN0bHkgd2hhdCB0aGUgc2VydmVyIHdpbGwgZGV0ZWN0LlxuICovXG5cbmltcG9ydCB7IE9DSV9MQUJFTFMsIHBhcnNlRG9ja2VyZmlsZSB9IGZyb20gJy4vZG9ja2VyZmlsZS1zdGF0aWMuanMnO1xuaW1wb3J0IHtcbiAgUGx1Z2luQ2F0YWxvZ0VkaXRzU2NoZW1hLCBjb250cmFjdEtleXNNZXNzYWdlLCBmaW5kQ29udHJhY3RLZXlzLCB2YWxpZGF0ZUNhdGFsb2dGaWVsZCwgdHlwZSBQbHVnaW5DYXRhbG9nRWRpdHMsXG59IGZyb20gJy4vcGx1Z2luLWNhdGFsb2ctbWV0YWRhdGEuanMnO1xuaW1wb3J0IHtcbiAgUExVR0lOX0NBVEFMT0dfRklFTERTLCBQTFVHSU5fU1VNTUFSWV9NQVgsXG4gIHR5cGUgTWV0YWRhdGFTb3VyY2UsIHR5cGUgTWV0YWRhdGFTb3VyY2VzLCB0eXBlIFBsdWdpbkNhdGFsb2dGaWVsZCxcbn0gZnJvbSAnLi4vdHlwZXMvcGx1Z2luLWNhdGFsb2cuanMnO1xuXG4vKiogQSBzb3VyY2UgYSB2YWx1ZSBjYW4gYmUgREVURUNURUQgZnJvbSAoYHVzZXJgIGlzIG9ubHkgZXZlciBhbiBlZGl0KS4gKi9cbmV4cG9ydCB0eXBlIERldGVjdGVkU291cmNlID0gRXhjbHVkZTxNZXRhZGF0YVNvdXJjZSwgJ3VzZXInPjtcblxuLyoqIE9uZSBkZXNjcmlwdGl2ZSBmaWVsZCBhcyBkZXRlY3RlZCBmcm9tIHRoZSBwYWNrYWdlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXRlY3RlZEZpZWxkIHtcbiAgZmllbGQ6IFBsdWdpbkNhdGFsb2dGaWVsZDtcbiAgLyoqIFRoZSB2YWxpZGF0ZWQgKG5vcm1hbGl6ZWQpIHZhbHVlLCBvciBudWxsIHdoZW4gbm9uZSB3YXMgZm91bmQgb3IgaXQgZmFpbGVkIHZhbGlkYXRpb24uICovXG4gIHZhbHVlOiB1bmtub3duO1xuICAvKiogV2hlcmUgdGhlIHdpbm5pbmcgY2FuZGlkYXRlIGNhbWUgZnJvbSwgb3IgbnVsbCB3aGVuIG5vIHNvdXJjZSBoYWQgb25lLiAqL1xuICBzb3VyY2U6IERldGVjdGVkU291cmNlIHwgbnVsbDtcbiAgLyoqIFdoeSB0aGUgd2lubmluZyBjYW5kaWRhdGUgd2FzIHJlZnVzZWQsIG9yIG51bGwuICovXG4gIGVycm9yOiBzdHJpbmcgfCBudWxsO1xufVxuXG4vKiogVGhlIHNwZWMgZmllbGRzIGRldGVjdGlvbiByZWFkcyAoYSBzdHJ1Y3R1cmFsIHN1YnNldCBvZiB0aGUgcGx1Z2luIHNwZWMpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXRhbG9nU3BlY0ZpZWxkcyB7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICByZWFkb25seSBzdW1tYXJ5Pzogc3RyaW5nO1xuICByZWFkb25seSBjYXRlZ29yeT86IHN0cmluZztcbiAgcmVhZG9ubHkga2V5d29yZHM/OiByZWFkb25seSBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgbGljZW5zZT86IHN0cmluZztcbiAgcmVhZG9ubHkgaG9tZXBhZ2VVcmw/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNvdXJjZVVybD86IHN0cmluZztcbiAgcmVhZG9ubHkgZG9jdW1lbnRhdGlvblVybD86IHN0cmluZztcbiAgcmVhZG9ubHkgaWNvbj86IHN0cmluZyB8IHsga2V5OiBzdHJpbmc7IGJhZGdlPzogc3RyaW5nIH07XG4gIHJlYWRvbmx5IGNoYW5nZWxvZz86IHN0cmluZztcbn1cblxuLyoqIFdoYXQgZGV0ZWN0aW9uIHJlYWRzOiB0aGUgc3BlYywgdGhlIHppcC1yb290IFJFQURNRSBhbmQgdGhlIHBsdWdpbidzIG93biBEb2NrZXJmaWxlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXRhbG9nSW5wdXRzIHtcbiAgc3BlYzogQ2F0YWxvZ1NwZWNGaWVsZHM7XG4gIHJlYWRtZU1kOiBzdHJpbmcgfCBudWxsO1xuICBkb2NrZXJmaWxlQ29udGVudDogc3RyaW5nIHwgbnVsbDtcbn1cblxuLyoqIFRoZSBhY2NlcHRlZC9lZGl0ZWQgdmFsdWVzIG9mIGV2ZXJ5IGRlc2NyaXB0aXZlIGZpZWxkLCBwbHVzIHRoZWlyIHByb3ZlbmFuY2UuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc29sdmVkQ2F0YWxvZyB7XG4gIHZhbHVlczogUmVjb3JkPFBsdWdpbkNhdGFsb2dGaWVsZCwgdW5rbm93bj47XG4gIHNvdXJjZXM6IE1ldGFkYXRhU291cmNlcztcbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBSRUFETUUgcmVhZGluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqIFN0cmlwIGlubGluZSBtYXJrZG93biBkb3duIHRvIHJlYWRhYmxlIHRleHQgKGxpbmtzIOKGkiB0ZXh0LCBpbWFnZXMvZW1waGFzaXMvY29kZSBtYXJrcyByZW1vdmVkKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpcElubGluZU1hcmtkb3duKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB0ZXh0XG4gICAgLnJlcGxhY2UoLyFcXFtbXlxcXV0qXFxdXFwoW14pXSpcXCkvZywgJycpIC8vIGltYWdlcyAvIGJhZGdlc1xuICAgIC5yZXBsYWNlKC9cXFsoW15cXF1dKilcXF1cXChbXildKlxcKS9nLCAnJDEnKSAvLyBsaW5rcyDihpIgdGV4dFxuICAgIC5yZXBsYWNlKC88W14+XSs+L2csICcnKSAvLyBpbmxpbmUgSFRNTFxuICAgIC5yZXBsYWNlKC8oXFwqXFwqfF9ffFxcKnxffGApL2csICcnKVxuICAgIC5yZXBsYWNlKC9cXHMrL2csICcgJylcbiAgICAudHJpbSgpO1xufVxuXG4vKiogTWFya2Rvd24gbGluZXMgb3V0c2lkZSBmZW5jZWQgY29kZSBibG9ja3MsIGluIG9yZGVyLiAqL1xuZnVuY3Rpb24gcHJvc2VMaW5lcyhtZDogc3RyaW5nKTogc3RyaW5nW10ge1xuICBjb25zdCBvdXQ6IHN0cmluZ1tdID0gW107XG4gIGxldCBmZW5jZWQgPSBmYWxzZTtcbiAgZm9yIChjb25zdCBsaW5lIG9mIG1kLnJlcGxhY2UoL1xcclxcbj8vZywgJ1xcbicpLnNwbGl0KCdcXG4nKSkge1xuICAgIGlmICgvXlxccyooYGBgfH5+fikvLnRlc3QobGluZSkpIHtcbiAgICAgIGZlbmNlZCA9ICFmZW5jZWQ7XG4gICAgICBvdXQucHVzaCgnJyk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgb3V0LnB1c2goZmVuY2VkID8gJycgOiBsaW5lKTtcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuXG4vKiogVGhlIFJFQURNRSdzIGZpcnN0IGxldmVsLTEgQVRYIGhlYWRpbmcgKGAjIFRpdGxlYCksIGFzIHBsYWluIHRleHQuICovXG5leHBvcnQgZnVuY3Rpb24gcmVhZG1lVGl0bGUobWQ6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICBmb3IgKGNvbnN0IGxpbmUgb2YgcHJvc2VMaW5lcyhtZCkpIHtcbiAgICBjb25zdCBtID0gL14jXFxzKyguKz8pXFxzKiMqXFxzKiQvLmV4ZWMobGluZSk7XG4gICAgaWYgKG0pIHtcbiAgICAgIGNvbnN0IHRpdGxlID0gc3RyaXBJbmxpbmVNYXJrZG93bihtWzFdISk7XG4gICAgICByZXR1cm4gdGl0bGUgfHwgbnVsbDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogVGhlIFJFQURNRSdzIGZpcnN0IHByb3NlIHBhcmFncmFwaDogdGhlIGZpcnN0IGJsb2NrIG9mIGNvbnNlY3V0aXZlIHRleHRcbiAqIGxpbmVzIHRoYXQgaXMgbm90IGEgaGVhZGluZywgYmFkZ2Ugcm93LCBsaXN0LCB0YWJsZSwgcXVvdGUsIHJ1bGUgb3IgSFRNTC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlYWRtZUZpcnN0UGFyYWdyYXBoKG1kOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgaXNTdHJ1Y3R1cmFsID0gKGw6IHN0cmluZyk6IGJvb2xlYW4gPT5cbiAgICAvXlxccyooI3w+fFstKitdXFxzfFxcZCtbLildXFxzfFxcfHw8fC0tLXxcXCpcXCpcXCp8PT09KS8udGVzdChsKTtcbiAgbGV0IHBhcmE6IHN0cmluZ1tdID0gW107XG4gIGZvciAoY29uc3QgbGluZSBvZiBbLi4ucHJvc2VMaW5lcyhtZCksICcnXSkge1xuICAgIGlmIChsaW5lLnRyaW0oKSA9PT0gJycgfHwgaXNTdHJ1Y3R1cmFsKGxpbmUpKSB7XG4gICAgICBpZiAocGFyYS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHRleHQgPSBzdHJpcElubGluZU1hcmtkb3duKHBhcmEuam9pbignICcpKTtcbiAgICAgICAgaWYgKHRleHQpIHJldHVybiB0ZXh0O1xuICAgICAgfVxuICAgICAgcGFyYSA9IFtdO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIHBhcmEucHVzaChsaW5lLnRyaW0oKSk7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogVGhlIGZpcnN0IHNlbnRlbmNlIG9mIGB0ZXh0YCwgY2FwcGVkIGF0IHtAbGluayBQTFVHSU5fU1VNTUFSWV9NQVh9OiBjdXQgYXRcbiAqIHRoZSBmaXJzdCBgLmAvYCFgL2A/YCBmb2xsb3dlZCBieSB3aGl0ZXNwYWNlIChvciB0aGUgZW5kKSwgZWxzZSB0aGUgZmlyc3RcbiAqIGxpbmU7IGFuIG92ZXItbG9uZyBzZW50ZW5jZSBpcyBzaG9ydGVuZWQgb24gYSB3b3JkIGJvdW5kYXJ5IHdpdGggYOKApmAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaXJzdFNlbnRlbmNlKHRleHQ6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCBmbGF0ID0gdGV4dC5yZXBsYWNlKC9cXHMrL2csICcgJykudHJpbSgpO1xuICBpZiAoIWZsYXQpIHJldHVybiBudWxsO1xuICBjb25zdCBtID0gL14oLis/Wy4hP10pKFxcc3wkKS8uZXhlYyhmbGF0KTtcbiAgY29uc3Qgc2VudGVuY2UgPSAobSA/IG1bMV0hIDogZmxhdCkudHJpbSgpO1xuICBpZiAoc2VudGVuY2UubGVuZ3RoIDw9IFBMVUdJTl9TVU1NQVJZX01BWCkgcmV0dXJuIHNlbnRlbmNlO1xuICBjb25zdCBjdXQgPSBzZW50ZW5jZS5zbGljZSgwLCBQTFVHSU5fU1VNTUFSWV9NQVggLSAxKTtcbiAgY29uc3QgYXRXb3JkID0gY3V0LmluY2x1ZGVzKCcgJykgPyBjdXQuc2xpY2UoMCwgY3V0Lmxhc3RJbmRleE9mKCcgJykpIDogY3V0O1xuICByZXR1cm4gYCR7YXRXb3JkLnJlcGxhY2UoL1tcXHMsOzpdKyQvLCAnJyl94oCmYDtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIERldGVjdGlvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxudHlwZSBDYW5kaWRhdGUgPSBbRGV0ZWN0ZWRTb3VyY2UsIHVua25vd25dO1xuXG5jb25zdCBub25FbXB0eSA9ICh2OiB1bmtub3duKTogYm9vbGVhbiA9PlxuICB2ICE9PSB1bmRlZmluZWQgJiYgdiAhPT0gbnVsbCAmJiAhKHR5cGVvZiB2ID09PSAnc3RyaW5nJyAmJiB2LnRyaW0oKSA9PT0gJycpICYmICEoQXJyYXkuaXNBcnJheSh2KSAmJiB2Lmxlbmd0aCA9PT0gMCk7XG5cbi8qKiBQaWNrIHRoZSBmaXJzdCBub24tZW1wdHkgY2FuZGlkYXRlIGFuZCB2YWxpZGF0ZSBpdCAoYmxhbmsgKyByZWFzb24gb24gZmFpbHVyZSkuICovXG5mdW5jdGlvbiBwaWNrKGZpZWxkOiBQbHVnaW5DYXRhbG9nRmllbGQsIGNhbmRpZGF0ZXM6IENhbmRpZGF0ZVtdKTogRGV0ZWN0ZWRGaWVsZCB7XG4gIGNvbnN0IHdpbm5lciA9IGNhbmRpZGF0ZXMuZmluZCgoWywgdl0pID0+IG5vbkVtcHR5KHYpKTtcbiAgaWYgKCF3aW5uZXIpIHJldHVybiB7IGZpZWxkLCB2YWx1ZTogbnVsbCwgc291cmNlOiBudWxsLCBlcnJvcjogbnVsbCB9O1xuICBjb25zdCBbc291cmNlLCByYXddID0gd2lubmVyO1xuICBjb25zdCBjaGVja2VkID0gdmFsaWRhdGVDYXRhbG9nRmllbGQoZmllbGQsIHJhdyk7XG4gIHJldHVybiBjaGVja2VkLm9rXG4gICAgPyB7IGZpZWxkLCB2YWx1ZTogY2hlY2tlZC52YWx1ZSwgc291cmNlLCBlcnJvcjogbnVsbCB9XG4gICAgOiB7IGZpZWxkLCB2YWx1ZTogbnVsbCwgc291cmNlLCBlcnJvcjogY2hlY2tlZC5lcnJvciB9O1xufVxuXG4vKiogVGhlIHN1bW1hcnkgZGVyaXZlZCBmcm9tIGEgZGVzY3JpcHRpb24sIGFzIGEgZGV0ZWN0ZWQgZmllbGQuICovXG5mdW5jdGlvbiBkZXJpdmVkU3VtbWFyeShkZXNjcmlwdGlvbjogdW5rbm93bik6IERldGVjdGVkRmllbGQge1xuICBjb25zdCBzZW50ZW5jZSA9IHR5cGVvZiBkZXNjcmlwdGlvbiA9PT0gJ3N0cmluZycgPyBmaXJzdFNlbnRlbmNlKGRlc2NyaXB0aW9uKSA6IG51bGw7XG4gIHJldHVybiBwaWNrKCdzdW1tYXJ5JywgW1snZGVyaXZlZCcsIHNlbnRlbmNlXV0pO1xufVxuXG4vKipcbiAqIERldGVjdCBldmVyeSBkZXNjcmlwdGl2ZSBmaWVsZCBmcm9tIHRoZSBwYWNrYWdlLCBpblxuICogYFBMVUdJTl9DQVRBTE9HX0ZJRUxEU2Agb3JkZXIuIFB1cmU7IG5ldmVyIHRocm93cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRldGVjdENhdGFsb2dNZXRhZGF0YShpbnB1dHM6IENhdGFsb2dJbnB1dHMpOiBEZXRlY3RlZEZpZWxkW10ge1xuICBjb25zdCB7IHNwZWMgfSA9IGlucHV0cztcbiAgY29uc3QgcmVhZG1lID0gaW5wdXRzLnJlYWRtZU1kO1xuICBjb25zdCBsYWJlbHMgPSBwYXJzZURvY2tlcmZpbGUoaW5wdXRzLmRvY2tlcmZpbGVDb250ZW50KS5sYWJlbHM7XG4gIGNvbnN0IGxhYmVsID0gKGtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IGxhYmVsc1trZXldO1xuXG4gIGNvbnN0IGRlc2NyaXB0aW9uID0gcGljaygnZGVzY3JpcHRpb24nLCBbXG4gICAgWydzcGVjJywgc3BlYy5kZXNjcmlwdGlvbl0sXG4gICAgWydyZWFkbWUnLCByZWFkbWUgIT09IG51bGwgPyByZWFkbWVGaXJzdFBhcmFncmFwaChyZWFkbWUpIDogbnVsbF0sXG4gICAgWydkb2NrZXJmaWxlJywgbGFiZWwoT0NJX0xBQkVMUy5kZXNjcmlwdGlvbildLFxuICBdKTtcbiAgY29uc3Qgc3BlY1N1bW1hcnkgPSBwaWNrKCdzdW1tYXJ5JywgW1snc3BlYycsIHNwZWMuc3VtbWFyeV1dKTtcblxuICBjb25zdCBieUZpZWxkOiBSZWNvcmQ8UGx1Z2luQ2F0YWxvZ0ZpZWxkLCBEZXRlY3RlZEZpZWxkPiA9IHtcbiAgICBkaXNwbGF5TmFtZTogcGljaygnZGlzcGxheU5hbWUnLCBbXG4gICAgICBbJ3JlYWRtZScsIHJlYWRtZSAhPT0gbnVsbCA/IHJlYWRtZVRpdGxlKHJlYWRtZSkgOiBudWxsXSxcbiAgICAgIFsnZG9ja2VyZmlsZScsIGxhYmVsKE9DSV9MQUJFTFMudGl0bGUpXSxcbiAgICBdKSxcbiAgICBzdW1tYXJ5OiBzcGVjU3VtbWFyeS5zb3VyY2UgIT09IG51bGwgPyBzcGVjU3VtbWFyeSA6IGRlcml2ZWRTdW1tYXJ5KGRlc2NyaXB0aW9uLnZhbHVlKSxcbiAgICBkZXNjcmlwdGlvbixcbiAgICBjYXRlZ29yeTogcGljaygnY2F0ZWdvcnknLCBbWydzcGVjJywgc3BlYy5jYXRlZ29yeV1dKSxcbiAgICBrZXl3b3JkczogcGljaygna2V5d29yZHMnLCBbWydzcGVjJywgc3BlYy5rZXl3b3Jkc11dKSxcbiAgICBsaWNlbnNlOiBwaWNrKCdsaWNlbnNlJywgW1snc3BlYycsIHNwZWMubGljZW5zZV0sIFsnZG9ja2VyZmlsZScsIGxhYmVsKE9DSV9MQUJFTFMubGljZW5zZXMpXV0pLFxuICAgIGhvbWVwYWdlVXJsOiBwaWNrKCdob21lcGFnZVVybCcsIFtbJ3NwZWMnLCBzcGVjLmhvbWVwYWdlVXJsXSwgWydkb2NrZXJmaWxlJywgbGFiZWwoT0NJX0xBQkVMUy51cmwpXV0pLFxuICAgIHNvdXJjZVVybDogcGljaygnc291cmNlVXJsJywgW1snc3BlYycsIHNwZWMuc291cmNlVXJsXSwgWydkb2NrZXJmaWxlJywgbGFiZWwoT0NJX0xBQkVMUy5zb3VyY2UpXV0pLFxuICAgIGRvY3VtZW50YXRpb25Vcmw6IHBpY2soJ2RvY3VtZW50YXRpb25VcmwnLCBbWydzcGVjJywgc3BlYy5kb2N1bWVudGF0aW9uVXJsXSwgWydkb2NrZXJmaWxlJywgbGFiZWwoT0NJX0xBQkVMUy5kb2N1bWVudGF0aW9uKV1dKSxcbiAgICBpY29uOiBwaWNrKCdpY29uJywgW1snc3BlYycsIHNwZWMuaWNvbl1dKSxcbiAgICBjaGFuZ2Vsb2c6IHBpY2soJ2NoYW5nZWxvZycsIFtbJ3NwZWMnLCBzcGVjLmNoYW5nZWxvZ11dKSxcbiAgICByZWFkbWU6IHBpY2soJ3JlYWRtZScsIFtbJ3JlYWRtZScsIHJlYWRtZV1dKSxcbiAgfTtcbiAgcmV0dXJuIFBMVUdJTl9DQVRBTE9HX0ZJRUxEUy5tYXAoKGYpID0+IGJ5RmllbGRbZl0pO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gQWNjZXB0IG9yIGVkaXRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogQXBwbHkgdGhlIHVzZXIncyBlZGl0cyBvdmVyIHRoZSBkZXRlY3RlZCB2YWx1ZXMuIEEga2V5IHByZXNlbnQgaW4gYGVkaXRzYFxuICogaXMgdGhlIHVzZXIncyAoYG51bGxgIGNsZWFycyBpdCkgYW5kIGlzIHJlY29yZGVkIGFzIGB1c2VyYDsgZXZlcnkgb3RoZXIgZmllbGRcbiAqIGtlZXBzIGl0cyBkZXRlY3RlZCB2YWx1ZSAobm9uZSB3aGVuIGl0IGZhaWxlZCB2YWxpZGF0aW9uKS4gYGVkaXRzYCBtdXN0XG4gKiBhbHJlYWR5IGhhdmUgcGFzc2VkIGBQbHVnaW5DYXRhbG9nRWRpdHNTY2hlbWFgLiBBIHN1bW1hcnkgdGhhdCB3YXMgREVSSVZFRFxuICogZnJvbSB0aGUgZGVzY3JpcHRpb24gaXMgcmUtZGVyaXZlZCB3aGVuIHRoZSB1c2VyIGVkaXRlZCB0aGUgZGVzY3JpcHRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQ2F0YWxvZ01ldGFkYXRhKGRldGVjdGVkOiBEZXRlY3RlZEZpZWxkW10sIGVkaXRzOiBQbHVnaW5DYXRhbG9nRWRpdHMgPSB7fSk6IFJlc29sdmVkQ2F0YWxvZyB7XG4gIGNvbnN0IHZhbHVlcyA9IHt9IGFzIFJlY29yZDxQbHVnaW5DYXRhbG9nRmllbGQsIHVua25vd24+O1xuICBjb25zdCBzb3VyY2VzOiBNZXRhZGF0YVNvdXJjZXMgPSB7fTtcbiAgY29uc3Qgc2V0ID0gKGZpZWxkOiBQbHVnaW5DYXRhbG9nRmllbGQsIHZhbHVlOiB1bmtub3duLCBzb3VyY2U6IE1ldGFkYXRhU291cmNlIHwgbnVsbCk6IHZvaWQgPT4ge1xuICAgIHZhbHVlc1tmaWVsZF0gPSB2YWx1ZSA/PyBudWxsO1xuICAgIGlmIChzb3VyY2UgJiYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQgfHwgc291cmNlID09PSAndXNlcicpKSBzb3VyY2VzW2ZpZWxkXSA9IHNvdXJjZTtcbiAgfTtcblxuICBmb3IgKGNvbnN0IGQgb2YgZGV0ZWN0ZWQpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGVkaXRzLCBkLmZpZWxkKSkge1xuICAgICAgc2V0KGQuZmllbGQsIChlZGl0cyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbZC5maWVsZF0sICd1c2VyJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldChkLmZpZWxkLCBkLmVycm9yID8gbnVsbCA6IGQudmFsdWUsIGQuZXJyb3IgPyBudWxsIDogZC5zb3VyY2UpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHN1bW1hcnlEZXRlY3RlZCA9IGRldGVjdGVkLmZpbmQoKGQpID0+IGQuZmllbGQgPT09ICdzdW1tYXJ5Jyk7XG4gIGNvbnN0IHN1bW1hcnlFZGl0ZWQgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZWRpdHMsICdzdW1tYXJ5Jyk7XG4gIGNvbnN0IGRlc2NyaXB0aW9uRWRpdGVkID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGVkaXRzLCAnZGVzY3JpcHRpb24nKTtcbiAgaWYgKCFzdW1tYXJ5RWRpdGVkICYmIGRlc2NyaXB0aW9uRWRpdGVkICYmIChzdW1tYXJ5RGV0ZWN0ZWQ/LnNvdXJjZSA9PT0gJ2Rlcml2ZWQnIHx8IHN1bW1hcnlEZXRlY3RlZD8uc291cmNlID09PSBudWxsKSkge1xuICAgIGNvbnN0IHJlZGVyaXZlZCA9IGRlcml2ZWRTdW1tYXJ5KHZhbHVlcy5kZXNjcmlwdGlvbik7XG4gICAgZGVsZXRlIHNvdXJjZXMuc3VtbWFyeTtcbiAgICBzZXQoJ3N1bW1hcnknLCByZWRlcml2ZWQuZXJyb3IgPyBudWxsIDogcmVkZXJpdmVkLnZhbHVlLCByZWRlcml2ZWQuZXJyb3IgPyBudWxsIDogcmVkZXJpdmVkLnNvdXJjZSk7XG4gIH1cbiAgcmV0dXJuIHsgdmFsdWVzLCBzb3VyY2VzIH07XG59XG5cbi8qKiBBIGRldGVjdGlvbiB3aXRoIGV2ZXJ5IHZhbHVlIGFjY2VwdGVkIChubyBlZGl0cykg4oCUIHNjcmlwdHMsIHRoZSBPZmZpY2lhbCBsb2FkZXIuICovXG5leHBvcnQgZnVuY3Rpb24gYWNjZXB0QWxsQ2F0YWxvZ01ldGFkYXRhKGRldGVjdGVkOiBEZXRlY3RlZEZpZWxkW10pOiBSZXNvbHZlZENhdGFsb2cge1xuICByZXR1cm4gcmVzb2x2ZUNhdGFsb2dNZXRhZGF0YShkZXRlY3RlZCwge30pO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRWRpdCBwYXlsb2Fkc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBWYWxpZGF0ZSBhIGNhdGFsb2ctZWRpdCBwYXlsb2FkICh0aGUgdXBsb2FkJ3MgYG1ldGFkYXRhYCBwYXJ0LCBhbHJlYWR5XG4gKiBKU09OLWRlY29kZWQpLiBFeGVjdXRpb24tY29udHJhY3Qga2V5cyBhcmUgcmVmdXNlZCBieSBuYW1lIGJlZm9yZSB0aGVcbiAqIHN0cmljdCBzY2hlbWEgcnVucywgc28gdGhlIGNhbGxlciBsZWFybnMgZXhhY3RseSB3aGljaCBrZXlzIGNhbid0IGJlIGVkaXRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ2F0YWxvZ0VkaXRzKHJhdzogdW5rbm93bik6IHsgb2s6IHRydWU7IHZhbHVlOiBQbHVnaW5DYXRhbG9nRWRpdHMgfSB8IHsgb2s6IGZhbHNlOyBlcnJvcjogc3RyaW5nOyBjb250cmFjdEtleXM/OiBzdHJpbmdbXSB9IHtcbiAgaWYgKCFyYXcgfHwgdHlwZW9mIHJhdyAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheShyYXcpKSB7XG4gICAgcmV0dXJuIHsgb2s6IGZhbHNlLCBlcnJvcjogJ21ldGFkYXRhIG11c3QgYmUgYSBKU09OIG9iamVjdCcgfTtcbiAgfVxuICBjb25zdCBjb250cmFjdEtleXMgPSBmaW5kQ29udHJhY3RLZXlzKHJhdyk7XG4gIGlmIChjb250cmFjdEtleXMubGVuZ3RoID4gMCkgcmV0dXJuIHsgb2s6IGZhbHNlLCBlcnJvcjogY29udHJhY3RLZXlzTWVzc2FnZShjb250cmFjdEtleXMpLCBjb250cmFjdEtleXMgfTtcbiAgY29uc3QgcGFyc2VkID0gUGx1Z2luQ2F0YWxvZ0VkaXRzU2NoZW1hLnNhZmVQYXJzZShyYXcpO1xuICBpZiAoIXBhcnNlZC5zdWNjZXNzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9rOiBmYWxzZSxcbiAgICAgIGVycm9yOiBgSW52YWxpZCBtZXRhZGF0YTogJHtwYXJzZWQuZXJyb3IuaXNzdWVzLm1hcCgoaSkgPT4gYCR7aS5wYXRoLmpvaW4oJy4nKSB8fCAnKHJvb3QpJ306ICR7aS5tZXNzYWdlfWApLmpvaW4oJzsgJyl9YCxcbiAgICB9O1xuICB9XG4gIHJldHVybiB7IG9rOiB0cnVlLCB2YWx1ZTogcGFyc2VkLmRhdGEgfTtcbn1cblxuLyoqIERlY29kZSB0aGUgdXBsb2FkJ3MgbXVsdGlwYXJ0IGBtZXRhZGF0YWAgcGFydCAoSlNPTiB0ZXh0KSwgdGhlbiB7QGxpbmsgcGFyc2VDYXRhbG9nRWRpdHN9LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ2F0YWxvZ0VkaXRzUGFydCh0ZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQpOiBSZXR1cm5UeXBlPHR5cGVvZiBwYXJzZUNhdGFsb2dFZGl0cz4ge1xuICBpZiAodGV4dCA9PT0gdW5kZWZpbmVkIHx8IHRleHQudHJpbSgpID09PSAnJykgcmV0dXJuIHsgb2s6IHRydWUsIHZhbHVlOiB7fSB9O1xuICBsZXQgcmF3OiB1bmtub3duO1xuICB0cnkge1xuICAgIHJhdyA9IEpTT04ucGFyc2UodGV4dCk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB7IG9rOiBmYWxzZSwgZXJyb3I6ICdtZXRhZGF0YSBtdXN0IGJlIHZhbGlkIEpTT04nIH07XG4gIH1cbiAgcmV0dXJuIHBhcnNlQ2F0YWxvZ0VkaXRzKHJhdyk7XG59XG4iXX0=
@@ -11,8 +11,8 @@
11
11
  * {@link checkPluginConfig}.
12
12
  */
13
13
  import { z } from 'zod';
14
- import { PLUGIN_CHANGELOG_MAX_BYTES } from '../types/plugin-catalog.js';
15
14
  import { IconKeySchema, PLUGIN_CATALOG_FIELD_SCHEMAS, ProjectUrlSchema, isAllowedSpdxId, } from './plugin-catalog-metadata.js';
15
+ import { PLUGIN_CHANGELOG_MAX_BYTES } from '../types/plugin-catalog.js';
16
16
  // -----------------------------------------------------------------------------
17
17
  // Vocabularies
18
18
  // -----------------------------------------------------------------------------
@@ -160,4 +160,4 @@ export function pluginSpecRequiredFieldsProblem(spec) {
160
160
  }
161
161
  return null;
162
162
  }
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXNwZWMtc2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb24vcGx1Z2luLXNwZWMtc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7OztHQVNHO0FBRUgsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RSxPQUFPLEVBQ0wsYUFBYSxFQUFFLDRCQUE0QixFQUFFLGdCQUFnQixFQUFFLGVBQWUsR0FDL0UsTUFBTSw4QkFBOEIsQ0FBQztBQUV0QyxnRkFBZ0Y7QUFDaEYsZUFBZTtBQUNmLGdGQUFnRjtBQUVoRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixDQUFVLENBQUM7QUFDMUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQVUsQ0FBQztBQUN0RixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFVLENBQUM7QUFDNUUsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLGVBQWUsQ0FBVSxDQUFDO0FBR3hGLDBEQUEwRDtBQUMxRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxjQUFjLENBQUM7QUFDbEQsaUZBQWlGO0FBQ2pGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLHNEQUFzRCxDQUFDO0FBRTdGLGdGQUFnRjtBQUNoRiw0Q0FBNEM7QUFDNUMsZ0ZBQWdGO0FBRWhGLCtDQUErQztBQUMvQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7QUFFbkM7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QUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogVGhlIHBsdWdpbiBQQUNLQUdFIHNjaGVtYXM6IGBwbHVnaW4tc3BlYy55YW1sYCBhbmQgYGNvbmZpZy55YW1sYCwgZXhhY3RseSBhc1xuICogdGhlIHBsdWdpbiBzZXJ2aWNlIHZhbGlkYXRlcyBhbiB1cGxvYWQuIFNoYXJlZCBmcm9tIGFwaS1jb3JlIHNvIHRoZSB1cGxvYWRcbiAqIHBhdGggKGFwaS9wbHVnaW4pIGFuZCB0aGUgQ0xJIChgcGlwZWxpbmUtbWFuYWdlciBwbHVnaW4gdmFsaWRhdGVgIC9cbiAqIGBwbHVnaW4gcHVibGlzaGApIGFwcGx5IE9ORSBzY2hlbWEgYW5kIGNhbid0IGRyaWZ0LlxuICpcbiAqIFB1cmU6IG5vIFlBTUwgcGFyc2luZywgbm8gZmlsZXN5c3RlbS4gQ2FsbGVycyBwYXJzZSAod2l0aCB0aGVpciBvd24gc2l6ZSBhbmRcbiAqIGFsaWFzIGJvdW5kcykgYW5kIGhhbmQgdGhlIHJlc3VsdGluZyBvYmplY3QgdG8ge0BsaW5rIGNoZWNrUGx1Z2luU3BlY30gL1xuICoge0BsaW5rIGNoZWNrUGx1Z2luQ29uZmlnfS5cbiAqL1xuXG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcblxuaW1wb3J0IHsgUExVR0lOX0NIQU5HRUxPR19NQVhfQllURVMgfSBmcm9tICcuLi90eXBlcy9wbHVnaW4tY2F0YWxvZy5qcyc7XG5pbXBvcnQge1xuICBJY29uS2V5U2NoZW1hLCBQTFVHSU5fQ0FUQUxPR19GSUVMRF9TQ0hFTUFTLCBQcm9qZWN0VXJsU2NoZW1hLCBpc0FsbG93ZWRTcGR4SWQsXG59IGZyb20gJy4vcGx1Z2luLWNhdGFsb2ctbWV0YWRhdGEuanMnO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVm9jYWJ1bGFyaWVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgY29uc3QgUExVR0lOX1RZUEVTID0gWydDb2RlQnVpbGRTdGVwJywgJ1NoZWxsU3RlcCcsICdNYW51YWxBcHByb3ZhbFN0ZXAnXSBhcyBjb25zdDtcbmV4cG9ydCBjb25zdCBQTFVHSU5fQ09NUFVURV9UWVBFUyA9IFsnU01BTEwnLCAnTUVESVVNJywgJ0xBUkdFJywgJ1gyX0xBUkdFJ10gYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgUExVR0lOX0ZBSUxVUkVfQkVIQVZJT1JTID0gWydmYWlsJywgJ3dhcm4nLCAnaWdub3JlJ10gYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgUExVR0lOX0JVSUxEX1RZUEVTID0gWydidWlsZF9pbWFnZScsICdwcmVidWlsdCcsICdtZXRhZGF0YV9vbmx5J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBQbHVnaW5CdWlsZFR5cGUgPSB0eXBlb2YgUExVR0lOX0JVSUxEX1RZUEVTW251bWJlcl07XG5cbi8qKiBQbHVnaW4gbmFtZTogbG93ZXJjYXNlIGxldHRlcnMsIGRpZ2l0cyBhbmQgaHlwaGVucy4gKi9cbmV4cG9ydCBjb25zdCBQTFVHSU5fTkFNRV9QQVRURVJOID0gL15bYS16MC05LV0rJC87XG4vKiogUGx1Z2luIHZlcnNpb246IHNlbXZlciwgd2l0aCBvcHRpb25hbCBgLXByZXJlbGVhc2VgIGFuZCBgK2J1aWxkYCBtZXRhZGF0YS4gKi9cbmV4cG9ydCBjb25zdCBQTFVHSU5fVkVSU0lPTl9QQVRURVJOID0gL15cXGQrXFwuXFxkK1xcLlxcZCsoLVthLXpBLVowLTkuLV0rKT8oXFwrW2EtekEtWjAtOS4tXSspPyQvO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gbmV0d29yay5lZ3Jlc3MgKHNwZWMtb25seSB0cnVzdCBtZXRhZGF0YSlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKiBNYXggZGVjbGFyZWQgYG5ldHdvcmsuZWdyZXNzYCBob3N0bmFtZXMuICovXG5leHBvcnQgY29uc3QgRUdSRVNTX01BWF9IT1NUUyA9IDUwO1xuXG4vKipcbiAqIEEgYmFyZSBETlMgaG9zdG5hbWUsIG9wdGlvbmFsbHkgd2l0aCBPTkUgbGVhZGluZyBgKi5gIHdpbGRjYXJkIGxhYmVsLiBOb1xuICogc2NoZW1lLCBwb3J0LCBwYXRoLCB1c2VyaW5mbyBvciBJUCBsaXRlcmFsIOKAlCBhIGRlY2xhcmVkIGVncmVzcyB0YXJnZXQgaXMgYVxuICogbmFtZSB0aGUgcmV2aWV3ZXIgY2FuIHJlYWQuXG4gKi9cbmNvbnN0IEVHUkVTU19IT1NUX1BBVFRFUk4gPSAvXig/OlxcKlxcLik/KD86W2EtejAtOV0oPzpbYS16MC05LV17MCw2MX1bYS16MC05XSk/XFwuKStbYS16XVthLXowLTktXXswLDYxfVthLXowLTldJC87XG5cbi8qKiBUcnVlIHdoZW4gYGhvc3RgIGlzIGFuIGFjY2VwdGFibGUgYG5ldHdvcmsuZWdyZXNzYCBlbnRyeS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkRWdyZXNzSG9zdChob3N0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGhvc3QubGVuZ3RoIDw9IDI1MyAmJiBFR1JFU1NfSE9TVF9QQVRURVJOLnRlc3QoaG9zdCk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBjb25maWcueWFtbFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IGNvbnN0IFBsdWdpbkNvbmZpZ1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgcGx1Z2luU3BlYzogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBkb2NrZXJmaWxlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGJ1aWxkVHlwZTogei5lbnVtKFBMVUdJTl9CVUlMRF9UWVBFUykub3B0aW9uYWwoKSxcbiAgLy8gRGV0ZXJtaW5pc3RpYyBidWlsZCB0YWcgd3JpdHRlbiBieSBidWlsZC1wbHVnaW4taW1hZ2VzLnNoXG4gIC8vIChgcC08bmFtZT4tPHNoYTI1NjoxMj5gKS4gSW5mb3JtYXRpb25hbCBvbmx5IG9uIHRoZSB1cGxvYWQgcGF0aCDigJRcbiAgLy8gdGhlIHBsYXRmb3JtIGRvZXNuJ3QgYWN0IG9uIGl0LCBidXQgaXQgbGl2ZXMgaW4gdGhlIHNhbWUgY29uZmlnXG4gIC8vIGZpbGUgYXMgdGhlIHJlc3Qgb2YgdGhlIGJ1aWxkIG1ldGFkYXRhIHNvIHJlLXJ1bnMgY2FuIHNob3J0LWNpcmN1aXRcbiAgLy8gdW5jaGFuZ2VkIHBsdWdpbnMgd2l0aG91dCBuZWVkaW5nIGEgc2VwYXJhdGUgLmltYWdlLWhhc2ggc2lkZWNhci5cbiAgaW1hZ2VUYWc6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pLnN0cmljdCgpXG4gIC5yZWZpbmUoZCA9PiAhKGQuYnVpbGRUeXBlID09PSAncHJlYnVpbHQnICYmIGQuZG9ja2VyZmlsZSksIHtcbiAgICBtZXNzYWdlOiAnZG9ja2VyZmlsZSBpcyBub3QgYWxsb3dlZCB3aGVuIGJ1aWxkVHlwZSBpcyBwcmVidWlsdCcsXG4gIH0pXG4gIC5yZWZpbmUoZCA9PiAhKGQuYnVpbGRUeXBlID09PSAnbWV0YWRhdGFfb25seScgJiYgZC5kb2NrZXJmaWxlKSwge1xuICAgIG1lc3NhZ2U6ICdkb2NrZXJmaWxlIGlzIG5vdCBhbGxvd2VkIHdoZW4gYnVpbGRUeXBlIGlzIG1ldGFkYXRhX29ubHknLFxuICB9KTtcbmV4cG9ydCB0eXBlIFBsdWdpbkNvbmZpZ0lucHV0ID0gei5pbmZlcjx0eXBlb2YgUGx1Z2luQ29uZmlnU2NoZW1hPjtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHBsdWdpbi1zcGVjLnlhbWxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIG5hbWUvdmVyc2lvbi9jb21tYW5kcyBhcmUgdGhlIHJlcXVpcmVkLWZpZWxkIGNvbnRyYWN0LCBidXQgdGhleSdyZSBjaGVja2VkIGJ5XG4vLyB7QGxpbmsgcGx1Z2luU3BlY1JlcXVpcmVkRmllbGRzUHJvYmxlbX0gKHRoZSBzdGFibGUgXCJuYW1lLCB2ZXJzaW9uLCBhbmRcbi8vIGNvbW1hbmRzIGFyZSByZXF1aXJlZFwiIG1lc3NhZ2UgYW5kIHRoZSBNYW51YWxBcHByb3ZhbFN0ZXAgY2FydmUtb3V0KS4gSGVyZVxuLy8gdGhleSdyZSBvcHRpb25hbCBzdHJpbmdzOyB0aGUgc2NoZW1hJ3Mgam9iIGlzIHRvIHJlamVjdCBtYWxmb3JtZWQgKnR5cGVzKiBvblxuLy8gdGhlIGZpZWxkcyB0aGF0IGZsb3cgZG93bnN0cmVhbSB1bmNoZWNrZWQuXG5leHBvcnQgY29uc3QgUGx1Z2luU3BlY1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgbmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBrZXl3b3Jkczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICBjYXRlZ29yeTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB2ZXJzaW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHBsdWdpblR5cGU6IHouZW51bShQTFVHSU5fVFlQRVMpLm9wdGlvbmFsKCksXG4gIGNvbXB1dGVUeXBlOiB6LmVudW0oUExVR0lOX0NPTVBVVEVfVFlQRVMpLm9wdGlvbmFsKCksXG4gIC8vID49IDAgbWludXRlczogTWFudWFsQXBwcm92YWxTdGVwIHNwZWNzIGxlZ2l0aW1hdGVseSBkZWNsYXJlIGB0aW1lb3V0OiAwYC5cbiAgdGltZW91dDogei5udW1iZXIoKS5pbnQoKS5ub25uZWdhdGl2ZSgpLm9wdGlvbmFsKCksXG4gIGZhaWx1cmVCZWhhdmlvcjogei5lbnVtKFBMVUdJTl9GQUlMVVJFX0JFSEFWSU9SUykub3B0aW9uYWwoKSxcbiAgc2VjcmV0czogei5hcnJheSh6Lm9iamVjdCh7XG4gICAgbmFtZTogei5zdHJpbmcoKS5taW4oMSksXG4gICAgcmVxdWlyZWQ6IHouYm9vbGVhbigpLFxuICAgIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIH0pKS5vcHRpb25hbCgpLFxuICAvLyBBY2NlcHQgYW4gZXhwbGljaXQgYHByaW1hcnlPdXRwdXREaXJlY3Rvcnk6IG51bGxgIChhIE1hbnVhbEFwcHJvdmFsU3RlcCAvXG4gIC8vIG91dHB1dC1sZXNzIHN0ZXAgbGVnaXRpbWF0ZWx5IGRlY2xhcmVzIGl0KSBhbmQgbm9ybWFsaXplIGl0IHRvIGB1bmRlZmluZWRgLlxuICAvLyBXaXRob3V0IGAubnVsbGlzaCgpYCBhIHByZXNlbnQgWUFNTCBgbnVsbGAgZmFpbHMgdGhlIGJhcmUgc3RyaW5nIGNoZWNrIGFuZFxuICAvLyA0MDBzIHRoZSB3aG9sZSB1cGxvYWQuXG4gIHByaW1hcnlPdXRwdXREaXJlY3Rvcnk6IHouc3RyaW5nKCkubnVsbGlzaCgpLnRyYW5zZm9ybSgodikgPT4gdiA/PyB1bmRlZmluZWQpLFxuICBtZXRhZGF0YTogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmlvbihbei5zdHJpbmcoKSwgei5udW1iZXIoKSwgei5ib29sZWFuKCldKSkub3B0aW9uYWwoKSxcbiAgZG9ja2VyZmlsZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBpbnN0YWxsQ29tbWFuZHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgY29tbWFuZHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgZW52OiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICBidWlsZEFyZ3M6IHoucmVjb3JkKHouc3RyaW5nKCksIHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIHJlcXVpcmVkTWV0YWRhdGE6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgcmVxdWlyZWRWYXJzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIC8vIEtlcHQgYXMgZnJlZS1zdHJpbmcgbWFwcyByYXRoZXIgdGhhbiBhIHZhbHVlIGVudW06IHNoaXBwZWQgc3BlY3MgdXNlIGJvdGhcbiAgLy8gYGJvb2xgIGFuZCBgYm9vbGVhbmAsIGFuZCB0aGUgY29lcmNpb24tdnMtZGVjbGFyZWQtdHlwZSBjb25zaXN0ZW5jeSBpc1xuICAvLyBlbmZvcmNlZCBzZXBhcmF0ZWx5IGJ5IHRoZSB0ZW1wbGF0ZSBjb250cmFjdCBjaGVjay4gVGhlIHNjaGVtYSBvbmx5XG4gIC8vIGd1YXJhbnRlZXMgdGhleSdyZSBzdHJpbmctdmFsdWVkIHJlY29yZHMgaGVyZS5cbiAgbWV0YWRhdGFUeXBlczogei5yZWNvcmQoei5zdHJpbmcoKSwgei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgdmFyc1R5cGVzOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICAvLyBBIGNvbW1hbmQgdGhlIGJ1aWxkIHRvb2xpbmcgcnVucyBhZ2FpbnN0IHRoZSBidWlsdCBpbWFnZVxuICAvLyAoYnVpbGQtcGx1Z2luLWltYWdlcy5zaCwgdGVzdC1wbHVnaW5zLnNoIC0tYnVpbGQsIGBwbHVnaW4gdGVzdGApLlxuICBzbW9rZVRlc3Q6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgLy8gRG9jdW1lbnRhdGlvbiArIHRydXN0IG1ldGFkYXRhLiBUaGUgUkVBRE1FIGlzIE5PVCBhIHNwZWMgZmllbGQg4oCUIGl0XG4gIC8vIGlzIFJFQURNRS5tZCBhdCB0aGUgemlwIHJvb3QuXG4gIGxpY2Vuc2U6IHouc3RyaW5nKCkucmVmaW5lKGlzQWxsb3dlZFNwZHhJZCwge1xuICAgIG1lc3NhZ2U6ICdtdXN0IGJlIGEgc3VwcG9ydGVkIFNQRFggbGljZW5zZSBpZGVudGlmaWVyIChlLmcuIEFwYWNoZS0yLjAsIE1JVCknLFxuICB9KS5vcHRpb25hbCgpLFxuICBjaGFuZ2Vsb2c6IHouc3RyaW5nKCkucmVmaW5lKCh2KSA9PiBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodikubGVuZ3RoIDw9IFBMVUdJTl9DSEFOR0VMT0dfTUFYX0JZVEVTLCB7XG4gICAgbWVzc2FnZTogYG11c3QgYmUgYXQgbW9zdCAke1BMVUdJTl9DSEFOR0VMT0dfTUFYX0JZVEVTfSBieXRlc2AsXG4gIH0pLm9wdGlvbmFsKCksXG4gIGhvbWVwYWdlVXJsOiBQcm9qZWN0VXJsU2NoZW1hLm9wdGlvbmFsKCksXG4gIHNvdXJjZVVybDogUHJvamVjdFVybFNjaGVtYS5vcHRpb25hbCgpLFxuICAvLyBDYXRhbG9nIG1ldGFkYXRhOiB0aGUgY2FyZCBvbmUtbGluZXIgYW5kIHRoZSBkb2NzIGxpbmsuIFNhbWVcbiAgLy8gdmFsaWRhdG9ycyBhcyBhIHZhbHVlIHR5cGVkIGludG8gdGhlIHVwbG9hZCBmb3JtLlxuICBzdW1tYXJ5OiBQTFVHSU5fQ0FUQUxPR19GSUVMRF9TQ0hFTUFTLnN1bW1hcnkub3B0aW9uYWwoKSxcbiAgZG9jdW1lbnRhdGlvblVybDogUHJvamVjdFVybFNjaGVtYS5vcHRpb25hbCgpLFxuICBpY29uOiB6LnVuaW9uKFtcbiAgICBJY29uS2V5U2NoZW1hLFxuICAgIHoub2JqZWN0KHsga2V5OiBJY29uS2V5U2NoZW1hLCBiYWRnZTogSWNvbktleVNjaGVtYS5vcHRpb25hbCgpIH0pLnN0cmljdCgpLFxuICBdKS5vcHRpb25hbCgpLFxuICBuZXR3b3JrOiB6Lm9iamVjdCh7XG4gICAgZWdyZXNzOiB6LmFycmF5KHouc3RyaW5nKCkucmVmaW5lKGlzVmFsaWRFZ3Jlc3NIb3N0LCB7XG4gICAgICBtZXNzYWdlOiAnbXVzdCBiZSBhIGJhcmUgaG9zdG5hbWUgKG5vIHNjaGVtZSwgcG9ydCBvciBwYXRoOyBvbmUgbGVhZGluZyAqLiBhbGxvd2VkKScsXG4gICAgfSkpLm1heChFR1JFU1NfTUFYX0hPU1RTKS5vcHRpb25hbCgpLFxuICB9KS5zdHJpY3QoKS5vcHRpb25hbCgpLFxufSkuc3RyaWN0KCk7XG5leHBvcnQgdHlwZSBQbHVnaW5TcGVjSW5wdXQgPSB6LmluZmVyPHR5cGVvZiBQbHVnaW5TcGVjU2NoZW1hPjtcblxuLyoqXG4gKiBSZXN1bHQgb2YgY2hlY2tpbmcgYSBwYXJzZWQgWUFNTCBkb2N1bWVudCBhZ2FpbnN0IGEgcGFja2FnZSBzY2hlbWE6XG4gKiBgaXNzdWVzYCBhcmUgdGhlIGluZGl2aWR1YWwgcHJvYmxlbXMsIGBtZXNzYWdlYCB0aGUgb25lLWxpbmUgZm9ybSB0aGUgdXBsb2FkXG4gKiBBUEkgcmVwb3J0cyAoYHBsdWdpbi1zcGVjLnlhbWw6IDxwYXRoPjogPHByb2JsZW0+OyDigKZgKS5cbiAqL1xuZXhwb3J0IHR5cGUgUGFja2FnZUNoZWNrPFQ+ID0geyBvazogdHJ1ZTsgdmFsdWU6IFQgfSB8IHsgb2s6IGZhbHNlOyBpc3N1ZXM6IHN0cmluZ1tdOyBtZXNzYWdlOiBzdHJpbmcgfTtcblxuY29uc3QgaXNNYXBwaW5nID0gKHJhdzogdW5rbm93bik6IHJhdyBpcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9PlxuICB0eXBlb2YgcmF3ID09PSAnb2JqZWN0JyAmJiByYXcgIT09IG51bGwgJiYgIUFycmF5LmlzQXJyYXkocmF3KTtcblxuZnVuY3Rpb24gY2hlY2tBZ2FpbnN0PFQ+KGZpbGU6IHN0cmluZywgcmF3OiB1bmtub3duLCBzY2hlbWE6IHouWm9kVHlwZTxUPiwgd2l0aFBhdGg6IGJvb2xlYW4pOiBQYWNrYWdlQ2hlY2s8VD4ge1xuICBpZiAoIWlzTWFwcGluZyhyYXcpKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGAke2ZpbGV9IG11c3QgYmUgYSBZQU1MIG1hcHBpbmdgO1xuICAgIHJldHVybiB7IG9rOiBmYWxzZSwgaXNzdWVzOiBbbWVzc2FnZV0sIG1lc3NhZ2UgfTtcbiAgfVxuICBjb25zdCByZXN1bHQgPSBzY2hlbWEuc2FmZVBhcnNlKHJhdyk7XG4gIGlmIChyZXN1bHQuc3VjY2VzcykgcmV0dXJuIHsgb2s6IHRydWUsIHZhbHVlOiByZXN1bHQuZGF0YSB9O1xuICBjb25zdCBpc3N1ZXMgPSByZXN1bHQuZXJyb3IuaXNzdWVzLm1hcChpID0+ICh3aXRoUGF0aCA/IGAke2kucGF0aC5qb2luKCcuJykgfHwgJyhyb290KSd9OiAke2kubWVzc2FnZX1gIDogaS5tZXNzYWdlKSk7XG4gIHJldHVybiB7IG9rOiBmYWxzZSwgaXNzdWVzLCBtZXNzYWdlOiBgJHtmaWxlfTogJHtpc3N1ZXMuam9pbignOyAnKX1gIH07XG59XG5cbi8qKiBDaGVjayBhIHBhcnNlZCBgcGx1Z2luLXNwZWMueWFtbGAgZG9jdW1lbnQgYWdhaW5zdCB7QGxpbmsgUGx1Z2luU3BlY1NjaGVtYX0uICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tQbHVnaW5TcGVjKHJhdzogdW5rbm93bik6IFBhY2thZ2VDaGVjazxQbHVnaW5TcGVjSW5wdXQ+IHtcbiAgcmV0dXJuIGNoZWNrQWdhaW5zdCgncGx1Z2luLXNwZWMueWFtbCcsIHJhdywgUGx1Z2luU3BlY1NjaGVtYSwgdHJ1ZSk7XG59XG5cbi8qKiBDaGVjayBhIHBhcnNlZCBgY29uZmlnLnlhbWxgIGRvY3VtZW50IGFnYWluc3Qge0BsaW5rIFBsdWdpbkNvbmZpZ1NjaGVtYX0uICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tQbHVnaW5Db25maWcocmF3OiB1bmtub3duKTogUGFja2FnZUNoZWNrPFBsdWdpbkNvbmZpZ0lucHV0PiB7XG4gIHJldHVybiBjaGVja0FnYWluc3QoJ2NvbmZpZy55YW1sJywgcmF3LCBQbHVnaW5Db25maWdTY2hlbWEsIGZhbHNlKTtcbn1cblxuLyoqXG4gKiBUaGUgcmVxdWlyZWQtZmllbGQgY29udHJhY3Q6IGBuYW1lYCBhbmQgYHZlcnNpb25gIGFsd2F5cywgYGNvbW1hbmRzYCBmb3JcbiAqIGV2ZXJ5IHR5cGUgZXhjZXB0IGBNYW51YWxBcHByb3ZhbFN0ZXBgLiBSZXR1cm5zIHRoZSB1cGxvYWQncyBtZXNzYWdlLCBvciBudWxsLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGx1Z2luU3BlY1JlcXVpcmVkRmllbGRzUHJvYmxlbShzcGVjOiBQaWNrPFBsdWdpblNwZWNJbnB1dCwgJ25hbWUnIHwgJ3ZlcnNpb24nIHwgJ2NvbW1hbmRzJyB8ICdwbHVnaW5UeXBlJz4pOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgaXNBcHByb3ZhbFN0ZXAgPSBzcGVjLnBsdWdpblR5cGUgPT09ICdNYW51YWxBcHByb3ZhbFN0ZXAnO1xuICBpZiAoIXNwZWMubmFtZSB8fCAhc3BlYy52ZXJzaW9uIHx8ICghaXNBcHByb3ZhbFN0ZXAgJiYgIXNwZWMuY29tbWFuZHMpKSB7XG4gICAgcmV0dXJuICdJbnZhbGlkIHNwZWM6IG5hbWUsIHZlcnNpb24sIGFuZCBjb21tYW5kcyBhcmUgcmVxdWlyZWQnO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuIl19
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXNwZWMtc2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb24vcGx1Z2luLXNwZWMtc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7OztHQVNHO0FBRUgsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQ0wsYUFBYSxFQUFFLDRCQUE0QixFQUFFLGdCQUFnQixFQUFFLGVBQWUsR0FDL0UsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV4RSxnRkFBZ0Y7QUFDaEYsZUFBZTtBQUNmLGdGQUFnRjtBQUVoRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixDQUFVLENBQUM7QUFDMUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQVUsQ0FBQztBQUN0RixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFVLENBQUM7QUFDNUUsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLGVBQWUsQ0FBVSxDQUFDO0FBR3hGLDBEQUEwRDtBQUMxRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxjQUFjLENBQUM7QUFDbEQsaUZBQWlGO0FBQ2pGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLHNEQUFzRCxDQUFDO0FBRTdGLGdGQUFnRjtBQUNoRiw0Q0FBNEM7QUFDNUMsZ0ZBQWdGO0FBRWhGLCtDQUErQztBQUMvQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7QUFFbkM7Ozs7R0FJRztBQUNILE1BQU0sbUJBQW1CLEdBQUcsb0ZBQW9GLENBQUM7QUFFakgsZ0VBQWdFO0FBQ2hFLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxJQUFZO0lBQzVDLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFFRCxnRkFBZ0Y7QUFDaEYsY0FBYztBQUNkLGdGQUFnRjtBQUVoRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3pDLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2pDLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2pDLFNBQVMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ2hELDREQUE0RDtJQUM1RCxvRUFBb0U7SUFDcEUsa0VBQWtFO0lBQ2xFLHNFQUFzRTtJQUN0RSxvRUFBb0U7SUFDcEUsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDaEMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtLQUNSLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFVBQVUsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUU7SUFDMUQsT0FBTyxFQUFFLHNEQUFzRDtDQUNoRSxDQUFDO0tBQ0QsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssZUFBZSxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRTtJQUMvRCxPQUFPLEVBQUUsMkRBQTJEO0NBQ3JFLENBQUMsQ0FBQztBQUdMLGdGQUFnRjtBQUNoRixtQkFBbUI7QUFDbkIsZ0ZBQWdGO0FBRWhGLGdGQUFnRjtBQUNoRiwwRUFBMEU7QUFDMUUsNkVBQTZFO0FBQzdFLCtFQUErRTtBQUMvRSw2Q0FBNkM7QUFDN0MsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN2QyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQixXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNsQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDeEMsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDL0IsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDOUIsVUFBVSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzNDLFdBQVcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3BELDRFQUE0RTtJQUM1RSxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNsRCxlQUFlLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUM1RCxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3hCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2QixRQUFRLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRTtRQUNyQixXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtLQUNuQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDZCw0RUFBNEU7SUFDNUUsOEVBQThFO0lBQzlFLDZFQUE2RTtJQUM3RSx5QkFBeUI7SUFDekIsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQztJQUM3RSxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN6RixVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNqQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDL0MsUUFBUSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3hDLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDaEQsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN0RCxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNoRCxZQUFZLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDNUMsNEVBQTRFO0lBQzVFLHlFQUF5RTtJQUN6RSxzRUFBc0U7SUFDdEUsaURBQWlEO0lBQ2pELGFBQWEsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDMUQsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUN0RCwyREFBMkQ7SUFDM0Qsb0VBQW9FO0lBQ3BFLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2hDLHNFQUFzRTtJQUN0RSxnQ0FBZ0M7SUFDaEMsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFO1FBQzFDLE9BQU8sRUFBRSxvRUFBb0U7S0FDOUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNiLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksMEJBQTBCLEVBQUU7UUFDcEcsT0FBTyxFQUFFLG1CQUFtQiwwQkFBMEIsUUFBUTtLQUMvRCxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ2IsV0FBVyxFQUFFLGdCQUFnQixDQUFDLFFBQVEsRUFBRTtJQUN4QyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxFQUFFO0lBQ3RDLCtEQUErRDtJQUMvRCxvREFBb0Q7SUFDcEQsT0FBTyxFQUFFLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7SUFDeEQsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsUUFBUSxFQUFFO0lBQzdDLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ1osYUFBYTtRQUNiLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtLQUMzRSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ2IsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDaEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRTtZQUNuRCxPQUFPLEVBQUUsMkVBQTJFO1NBQ3JGLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFFBQVEsRUFBRTtLQUNyQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ3ZCLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQVVaLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBWSxFQUFrQyxFQUFFLENBQ2pFLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUVqRSxTQUFTLFlBQVksQ0FBSSxJQUFZLEVBQUUsR0FBWSxFQUFFLE1BQW9CLEVBQUUsUUFBaUI7SUFDMUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sT0FBTyxHQUFHLEdBQUcsSUFBSSx5QkFBeUIsQ0FBQztRQUNqRCxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxJQUFJLE1BQU0sQ0FBQyxPQUFPO1FBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1RCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxRQUFRLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN0SCxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO0FBQ3pFLENBQUM7QUFFRCxtRkFBbUY7QUFDbkYsTUFBTSxVQUFVLGVBQWUsQ0FBQyxHQUFZO0lBQzFDLE9BQU8sWUFBWSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBRUQsZ0ZBQWdGO0FBQ2hGLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxHQUFZO0lBQzVDLE9BQU8sWUFBWSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDckUsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSwrQkFBK0IsQ0FBQyxJQUEyRTtJQUN6SCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxLQUFLLG9CQUFvQixDQUFDO0lBQ2hFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDdkUsT0FBTyx3REFBd0QsQ0FBQztJQUNsRSxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogVGhlIHBsdWdpbiBQQUNLQUdFIHNjaGVtYXM6IGBwbHVnaW4tc3BlYy55YW1sYCBhbmQgYGNvbmZpZy55YW1sYCwgZXhhY3RseSBhc1xuICogdGhlIHBsdWdpbiBzZXJ2aWNlIHZhbGlkYXRlcyBhbiB1cGxvYWQuIFNoYXJlZCBmcm9tIGFwaS1jb3JlIHNvIHRoZSB1cGxvYWRcbiAqIHBhdGggKGFwaS9wbHVnaW4pIGFuZCB0aGUgQ0xJIChgcGlwZWxpbmUtbWFuYWdlciBwbHVnaW4gdmFsaWRhdGVgIC9cbiAqIGBwbHVnaW4gcHVibGlzaGApIGFwcGx5IE9ORSBzY2hlbWEgYW5kIGNhbid0IGRyaWZ0LlxuICpcbiAqIFB1cmU6IG5vIFlBTUwgcGFyc2luZywgbm8gZmlsZXN5c3RlbS4gQ2FsbGVycyBwYXJzZSAod2l0aCB0aGVpciBvd24gc2l6ZSBhbmRcbiAqIGFsaWFzIGJvdW5kcykgYW5kIGhhbmQgdGhlIHJlc3VsdGluZyBvYmplY3QgdG8ge0BsaW5rIGNoZWNrUGx1Z2luU3BlY30gL1xuICoge0BsaW5rIGNoZWNrUGx1Z2luQ29uZmlnfS5cbiAqL1xuXG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcblxuaW1wb3J0IHtcbiAgSWNvbktleVNjaGVtYSwgUExVR0lOX0NBVEFMT0dfRklFTERfU0NIRU1BUywgUHJvamVjdFVybFNjaGVtYSwgaXNBbGxvd2VkU3BkeElkLFxufSBmcm9tICcuL3BsdWdpbi1jYXRhbG9nLW1ldGFkYXRhLmpzJztcbmltcG9ydCB7IFBMVUdJTl9DSEFOR0VMT0dfTUFYX0JZVEVTIH0gZnJvbSAnLi4vdHlwZXMvcGx1Z2luLWNhdGFsb2cuanMnO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVm9jYWJ1bGFyaWVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgY29uc3QgUExVR0lOX1RZUEVTID0gWydDb2RlQnVpbGRTdGVwJywgJ1NoZWxsU3RlcCcsICdNYW51YWxBcHByb3ZhbFN0ZXAnXSBhcyBjb25zdDtcbmV4cG9ydCBjb25zdCBQTFVHSU5fQ09NUFVURV9UWVBFUyA9IFsnU01BTEwnLCAnTUVESVVNJywgJ0xBUkdFJywgJ1gyX0xBUkdFJ10gYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgUExVR0lOX0ZBSUxVUkVfQkVIQVZJT1JTID0gWydmYWlsJywgJ3dhcm4nLCAnaWdub3JlJ10gYXMgY29uc3Q7XG5leHBvcnQgY29uc3QgUExVR0lOX0JVSUxEX1RZUEVTID0gWydidWlsZF9pbWFnZScsICdwcmVidWlsdCcsICdtZXRhZGF0YV9vbmx5J10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBQbHVnaW5CdWlsZFR5cGUgPSB0eXBlb2YgUExVR0lOX0JVSUxEX1RZUEVTW251bWJlcl07XG5cbi8qKiBQbHVnaW4gbmFtZTogbG93ZXJjYXNlIGxldHRlcnMsIGRpZ2l0cyBhbmQgaHlwaGVucy4gKi9cbmV4cG9ydCBjb25zdCBQTFVHSU5fTkFNRV9QQVRURVJOID0gL15bYS16MC05LV0rJC87XG4vKiogUGx1Z2luIHZlcnNpb246IHNlbXZlciwgd2l0aCBvcHRpb25hbCBgLXByZXJlbGVhc2VgIGFuZCBgK2J1aWxkYCBtZXRhZGF0YS4gKi9cbmV4cG9ydCBjb25zdCBQTFVHSU5fVkVSU0lPTl9QQVRURVJOID0gL15cXGQrXFwuXFxkK1xcLlxcZCsoLVthLXpBLVowLTkuLV0rKT8oXFwrW2EtekEtWjAtOS4tXSspPyQvO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gbmV0d29yay5lZ3Jlc3MgKHNwZWMtb25seSB0cnVzdCBtZXRhZGF0YSlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKiBNYXggZGVjbGFyZWQgYG5ldHdvcmsuZWdyZXNzYCBob3N0bmFtZXMuICovXG5leHBvcnQgY29uc3QgRUdSRVNTX01BWF9IT1NUUyA9IDUwO1xuXG4vKipcbiAqIEEgYmFyZSBETlMgaG9zdG5hbWUsIG9wdGlvbmFsbHkgd2l0aCBPTkUgbGVhZGluZyBgKi5gIHdpbGRjYXJkIGxhYmVsLiBOb1xuICogc2NoZW1lLCBwb3J0LCBwYXRoLCB1c2VyaW5mbyBvciBJUCBsaXRlcmFsIOKAlCBhIGRlY2xhcmVkIGVncmVzcyB0YXJnZXQgaXMgYVxuICogbmFtZSB0aGUgcmV2aWV3ZXIgY2FuIHJlYWQuXG4gKi9cbmNvbnN0IEVHUkVTU19IT1NUX1BBVFRFUk4gPSAvXig/OlxcKlxcLik/KD86W2EtejAtOV0oPzpbYS16MC05LV17MCw2MX1bYS16MC05XSk/XFwuKStbYS16XVthLXowLTktXXswLDYxfVthLXowLTldJC87XG5cbi8qKiBUcnVlIHdoZW4gYGhvc3RgIGlzIGFuIGFjY2VwdGFibGUgYG5ldHdvcmsuZWdyZXNzYCBlbnRyeS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkRWdyZXNzSG9zdChob3N0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGhvc3QubGVuZ3RoIDw9IDI1MyAmJiBFR1JFU1NfSE9TVF9QQVRURVJOLnRlc3QoaG9zdCk7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBjb25maWcueWFtbFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IGNvbnN0IFBsdWdpbkNvbmZpZ1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgcGx1Z2luU3BlYzogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBkb2NrZXJmaWxlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGJ1aWxkVHlwZTogei5lbnVtKFBMVUdJTl9CVUlMRF9UWVBFUykub3B0aW9uYWwoKSxcbiAgLy8gRGV0ZXJtaW5pc3RpYyBidWlsZCB0YWcgd3JpdHRlbiBieSBidWlsZC1wbHVnaW4taW1hZ2VzLnNoXG4gIC8vIChgcC08bmFtZT4tPHNoYTI1NjoxMj5gKS4gSW5mb3JtYXRpb25hbCBvbmx5IG9uIHRoZSB1cGxvYWQgcGF0aCDigJRcbiAgLy8gdGhlIHBsYXRmb3JtIGRvZXNuJ3QgYWN0IG9uIGl0LCBidXQgaXQgbGl2ZXMgaW4gdGhlIHNhbWUgY29uZmlnXG4gIC8vIGZpbGUgYXMgdGhlIHJlc3Qgb2YgdGhlIGJ1aWxkIG1ldGFkYXRhIHNvIHJlLXJ1bnMgY2FuIHNob3J0LWNpcmN1aXRcbiAgLy8gdW5jaGFuZ2VkIHBsdWdpbnMgd2l0aG91dCBuZWVkaW5nIGEgc2VwYXJhdGUgLmltYWdlLWhhc2ggc2lkZWNhci5cbiAgaW1hZ2VUYWc6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pLnN0cmljdCgpXG4gIC5yZWZpbmUoZCA9PiAhKGQuYnVpbGRUeXBlID09PSAncHJlYnVpbHQnICYmIGQuZG9ja2VyZmlsZSksIHtcbiAgICBtZXNzYWdlOiAnZG9ja2VyZmlsZSBpcyBub3QgYWxsb3dlZCB3aGVuIGJ1aWxkVHlwZSBpcyBwcmVidWlsdCcsXG4gIH0pXG4gIC5yZWZpbmUoZCA9PiAhKGQuYnVpbGRUeXBlID09PSAnbWV0YWRhdGFfb25seScgJiYgZC5kb2NrZXJmaWxlKSwge1xuICAgIG1lc3NhZ2U6ICdkb2NrZXJmaWxlIGlzIG5vdCBhbGxvd2VkIHdoZW4gYnVpbGRUeXBlIGlzIG1ldGFkYXRhX29ubHknLFxuICB9KTtcbmV4cG9ydCB0eXBlIFBsdWdpbkNvbmZpZ0lucHV0ID0gei5pbmZlcjx0eXBlb2YgUGx1Z2luQ29uZmlnU2NoZW1hPjtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHBsdWdpbi1zcGVjLnlhbWxcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIG5hbWUvdmVyc2lvbi9jb21tYW5kcyBhcmUgdGhlIHJlcXVpcmVkLWZpZWxkIGNvbnRyYWN0LCBidXQgdGhleSdyZSBjaGVja2VkIGJ5XG4vLyB7QGxpbmsgcGx1Z2luU3BlY1JlcXVpcmVkRmllbGRzUHJvYmxlbX0gKHRoZSBzdGFibGUgXCJuYW1lLCB2ZXJzaW9uLCBhbmRcbi8vIGNvbW1hbmRzIGFyZSByZXF1aXJlZFwiIG1lc3NhZ2UgYW5kIHRoZSBNYW51YWxBcHByb3ZhbFN0ZXAgY2FydmUtb3V0KS4gSGVyZVxuLy8gdGhleSdyZSBvcHRpb25hbCBzdHJpbmdzOyB0aGUgc2NoZW1hJ3Mgam9iIGlzIHRvIHJlamVjdCBtYWxmb3JtZWQgKnR5cGVzKiBvblxuLy8gdGhlIGZpZWxkcyB0aGF0IGZsb3cgZG93bnN0cmVhbSB1bmNoZWNrZWQuXG5leHBvcnQgY29uc3QgUGx1Z2luU3BlY1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgbmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBrZXl3b3Jkczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICBjYXRlZ29yeTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB2ZXJzaW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHBsdWdpblR5cGU6IHouZW51bShQTFVHSU5fVFlQRVMpLm9wdGlvbmFsKCksXG4gIGNvbXB1dGVUeXBlOiB6LmVudW0oUExVR0lOX0NPTVBVVEVfVFlQRVMpLm9wdGlvbmFsKCksXG4gIC8vID49IDAgbWludXRlczogTWFudWFsQXBwcm92YWxTdGVwIHNwZWNzIGxlZ2l0aW1hdGVseSBkZWNsYXJlIGB0aW1lb3V0OiAwYC5cbiAgdGltZW91dDogei5udW1iZXIoKS5pbnQoKS5ub25uZWdhdGl2ZSgpLm9wdGlvbmFsKCksXG4gIGZhaWx1cmVCZWhhdmlvcjogei5lbnVtKFBMVUdJTl9GQUlMVVJFX0JFSEFWSU9SUykub3B0aW9uYWwoKSxcbiAgc2VjcmV0czogei5hcnJheSh6Lm9iamVjdCh7XG4gICAgbmFtZTogei5zdHJpbmcoKS5taW4oMSksXG4gICAgcmVxdWlyZWQ6IHouYm9vbGVhbigpLFxuICAgIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIH0pKS5vcHRpb25hbCgpLFxuICAvLyBBY2NlcHQgYW4gZXhwbGljaXQgYHByaW1hcnlPdXRwdXREaXJlY3Rvcnk6IG51bGxgIChhIE1hbnVhbEFwcHJvdmFsU3RlcCAvXG4gIC8vIG91dHB1dC1sZXNzIHN0ZXAgbGVnaXRpbWF0ZWx5IGRlY2xhcmVzIGl0KSBhbmQgbm9ybWFsaXplIGl0IHRvIGB1bmRlZmluZWRgLlxuICAvLyBXaXRob3V0IGAubnVsbGlzaCgpYCBhIHByZXNlbnQgWUFNTCBgbnVsbGAgZmFpbHMgdGhlIGJhcmUgc3RyaW5nIGNoZWNrIGFuZFxuICAvLyA0MDBzIHRoZSB3aG9sZSB1cGxvYWQuXG4gIHByaW1hcnlPdXRwdXREaXJlY3Rvcnk6IHouc3RyaW5nKCkubnVsbGlzaCgpLnRyYW5zZm9ybSgodikgPT4gdiA/PyB1bmRlZmluZWQpLFxuICBtZXRhZGF0YTogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmlvbihbei5zdHJpbmcoKSwgei5udW1iZXIoKSwgei5ib29sZWFuKCldKSkub3B0aW9uYWwoKSxcbiAgZG9ja2VyZmlsZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBpbnN0YWxsQ29tbWFuZHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgY29tbWFuZHM6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgZW52OiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICBidWlsZEFyZ3M6IHoucmVjb3JkKHouc3RyaW5nKCksIHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIHJlcXVpcmVkTWV0YWRhdGE6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgcmVxdWlyZWRWYXJzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIC8vIEtlcHQgYXMgZnJlZS1zdHJpbmcgbWFwcyByYXRoZXIgdGhhbiBhIHZhbHVlIGVudW06IHNoaXBwZWQgc3BlY3MgdXNlIGJvdGhcbiAgLy8gYGJvb2xgIGFuZCBgYm9vbGVhbmAsIGFuZCB0aGUgY29lcmNpb24tdnMtZGVjbGFyZWQtdHlwZSBjb25zaXN0ZW5jeSBpc1xuICAvLyBlbmZvcmNlZCBzZXBhcmF0ZWx5IGJ5IHRoZSB0ZW1wbGF0ZSBjb250cmFjdCBjaGVjay4gVGhlIHNjaGVtYSBvbmx5XG4gIC8vIGd1YXJhbnRlZXMgdGhleSdyZSBzdHJpbmctdmFsdWVkIHJlY29yZHMgaGVyZS5cbiAgbWV0YWRhdGFUeXBlczogei5yZWNvcmQoei5zdHJpbmcoKSwgei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgdmFyc1R5cGVzOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICAvLyBBIGNvbW1hbmQgdGhlIGJ1aWxkIHRvb2xpbmcgcnVucyBhZ2FpbnN0IHRoZSBidWlsdCBpbWFnZVxuICAvLyAoYnVpbGQtcGx1Z2luLWltYWdlcy5zaCwgdGVzdC1wbHVnaW5zLnNoIC0tYnVpbGQsIGBwbHVnaW4gdGVzdGApLlxuICBzbW9rZVRlc3Q6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgLy8gRG9jdW1lbnRhdGlvbiArIHRydXN0IG1ldGFkYXRhLiBUaGUgUkVBRE1FIGlzIE5PVCBhIHNwZWMgZmllbGQg4oCUIGl0XG4gIC8vIGlzIFJFQURNRS5tZCBhdCB0aGUgemlwIHJvb3QuXG4gIGxpY2Vuc2U6IHouc3RyaW5nKCkucmVmaW5lKGlzQWxsb3dlZFNwZHhJZCwge1xuICAgIG1lc3NhZ2U6ICdtdXN0IGJlIGEgc3VwcG9ydGVkIFNQRFggbGljZW5zZSBpZGVudGlmaWVyIChlLmcuIEFwYWNoZS0yLjAsIE1JVCknLFxuICB9KS5vcHRpb25hbCgpLFxuICBjaGFuZ2Vsb2c6IHouc3RyaW5nKCkucmVmaW5lKCh2KSA9PiBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodikubGVuZ3RoIDw9IFBMVUdJTl9DSEFOR0VMT0dfTUFYX0JZVEVTLCB7XG4gICAgbWVzc2FnZTogYG11c3QgYmUgYXQgbW9zdCAke1BMVUdJTl9DSEFOR0VMT0dfTUFYX0JZVEVTfSBieXRlc2AsXG4gIH0pLm9wdGlvbmFsKCksXG4gIGhvbWVwYWdlVXJsOiBQcm9qZWN0VXJsU2NoZW1hLm9wdGlvbmFsKCksXG4gIHNvdXJjZVVybDogUHJvamVjdFVybFNjaGVtYS5vcHRpb25hbCgpLFxuICAvLyBDYXRhbG9nIG1ldGFkYXRhOiB0aGUgY2FyZCBvbmUtbGluZXIgYW5kIHRoZSBkb2NzIGxpbmsuIFNhbWVcbiAgLy8gdmFsaWRhdG9ycyBhcyBhIHZhbHVlIHR5cGVkIGludG8gdGhlIHVwbG9hZCBmb3JtLlxuICBzdW1tYXJ5OiBQTFVHSU5fQ0FUQUxPR19GSUVMRF9TQ0hFTUFTLnN1bW1hcnkub3B0aW9uYWwoKSxcbiAgZG9jdW1lbnRhdGlvblVybDogUHJvamVjdFVybFNjaGVtYS5vcHRpb25hbCgpLFxuICBpY29uOiB6LnVuaW9uKFtcbiAgICBJY29uS2V5U2NoZW1hLFxuICAgIHoub2JqZWN0KHsga2V5OiBJY29uS2V5U2NoZW1hLCBiYWRnZTogSWNvbktleVNjaGVtYS5vcHRpb25hbCgpIH0pLnN0cmljdCgpLFxuICBdKS5vcHRpb25hbCgpLFxuICBuZXR3b3JrOiB6Lm9iamVjdCh7XG4gICAgZWdyZXNzOiB6LmFycmF5KHouc3RyaW5nKCkucmVmaW5lKGlzVmFsaWRFZ3Jlc3NIb3N0LCB7XG4gICAgICBtZXNzYWdlOiAnbXVzdCBiZSBhIGJhcmUgaG9zdG5hbWUgKG5vIHNjaGVtZSwgcG9ydCBvciBwYXRoOyBvbmUgbGVhZGluZyAqLiBhbGxvd2VkKScsXG4gICAgfSkpLm1heChFR1JFU1NfTUFYX0hPU1RTKS5vcHRpb25hbCgpLFxuICB9KS5zdHJpY3QoKS5vcHRpb25hbCgpLFxufSkuc3RyaWN0KCk7XG5leHBvcnQgdHlwZSBQbHVnaW5TcGVjSW5wdXQgPSB6LmluZmVyPHR5cGVvZiBQbHVnaW5TcGVjU2NoZW1hPjtcblxuLyoqXG4gKiBSZXN1bHQgb2YgY2hlY2tpbmcgYSBwYXJzZWQgWUFNTCBkb2N1bWVudCBhZ2FpbnN0IGEgcGFja2FnZSBzY2hlbWE6XG4gKiBgaXNzdWVzYCBhcmUgdGhlIGluZGl2aWR1YWwgcHJvYmxlbXMsIGBtZXNzYWdlYCB0aGUgb25lLWxpbmUgZm9ybSB0aGUgdXBsb2FkXG4gKiBBUEkgcmVwb3J0cyAoYHBsdWdpbi1zcGVjLnlhbWw6IDxwYXRoPjogPHByb2JsZW0+OyDigKZgKS5cbiAqL1xuZXhwb3J0IHR5cGUgUGFja2FnZUNoZWNrPFQ+ID0geyBvazogdHJ1ZTsgdmFsdWU6IFQgfSB8IHsgb2s6IGZhbHNlOyBpc3N1ZXM6IHN0cmluZ1tdOyBtZXNzYWdlOiBzdHJpbmcgfTtcblxuY29uc3QgaXNNYXBwaW5nID0gKHJhdzogdW5rbm93bik6IHJhdyBpcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9PlxuICB0eXBlb2YgcmF3ID09PSAnb2JqZWN0JyAmJiByYXcgIT09IG51bGwgJiYgIUFycmF5LmlzQXJyYXkocmF3KTtcblxuZnVuY3Rpb24gY2hlY2tBZ2FpbnN0PFQ+KGZpbGU6IHN0cmluZywgcmF3OiB1bmtub3duLCBzY2hlbWE6IHouWm9kVHlwZTxUPiwgd2l0aFBhdGg6IGJvb2xlYW4pOiBQYWNrYWdlQ2hlY2s8VD4ge1xuICBpZiAoIWlzTWFwcGluZyhyYXcpKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGAke2ZpbGV9IG11c3QgYmUgYSBZQU1MIG1hcHBpbmdgO1xuICAgIHJldHVybiB7IG9rOiBmYWxzZSwgaXNzdWVzOiBbbWVzc2FnZV0sIG1lc3NhZ2UgfTtcbiAgfVxuICBjb25zdCByZXN1bHQgPSBzY2hlbWEuc2FmZVBhcnNlKHJhdyk7XG4gIGlmIChyZXN1bHQuc3VjY2VzcykgcmV0dXJuIHsgb2s6IHRydWUsIHZhbHVlOiByZXN1bHQuZGF0YSB9O1xuICBjb25zdCBpc3N1ZXMgPSByZXN1bHQuZXJyb3IuaXNzdWVzLm1hcChpID0+ICh3aXRoUGF0aCA/IGAke2kucGF0aC5qb2luKCcuJykgfHwgJyhyb290KSd9OiAke2kubWVzc2FnZX1gIDogaS5tZXNzYWdlKSk7XG4gIHJldHVybiB7IG9rOiBmYWxzZSwgaXNzdWVzLCBtZXNzYWdlOiBgJHtmaWxlfTogJHtpc3N1ZXMuam9pbignOyAnKX1gIH07XG59XG5cbi8qKiBDaGVjayBhIHBhcnNlZCBgcGx1Z2luLXNwZWMueWFtbGAgZG9jdW1lbnQgYWdhaW5zdCB7QGxpbmsgUGx1Z2luU3BlY1NjaGVtYX0uICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tQbHVnaW5TcGVjKHJhdzogdW5rbm93bik6IFBhY2thZ2VDaGVjazxQbHVnaW5TcGVjSW5wdXQ+IHtcbiAgcmV0dXJuIGNoZWNrQWdhaW5zdCgncGx1Z2luLXNwZWMueWFtbCcsIHJhdywgUGx1Z2luU3BlY1NjaGVtYSwgdHJ1ZSk7XG59XG5cbi8qKiBDaGVjayBhIHBhcnNlZCBgY29uZmlnLnlhbWxgIGRvY3VtZW50IGFnYWluc3Qge0BsaW5rIFBsdWdpbkNvbmZpZ1NjaGVtYX0uICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tQbHVnaW5Db25maWcocmF3OiB1bmtub3duKTogUGFja2FnZUNoZWNrPFBsdWdpbkNvbmZpZ0lucHV0PiB7XG4gIHJldHVybiBjaGVja0FnYWluc3QoJ2NvbmZpZy55YW1sJywgcmF3LCBQbHVnaW5Db25maWdTY2hlbWEsIGZhbHNlKTtcbn1cblxuLyoqXG4gKiBUaGUgcmVxdWlyZWQtZmllbGQgY29udHJhY3Q6IGBuYW1lYCBhbmQgYHZlcnNpb25gIGFsd2F5cywgYGNvbW1hbmRzYCBmb3JcbiAqIGV2ZXJ5IHR5cGUgZXhjZXB0IGBNYW51YWxBcHByb3ZhbFN0ZXBgLiBSZXR1cm5zIHRoZSB1cGxvYWQncyBtZXNzYWdlLCBvciBudWxsLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGx1Z2luU3BlY1JlcXVpcmVkRmllbGRzUHJvYmxlbShzcGVjOiBQaWNrPFBsdWdpblNwZWNJbnB1dCwgJ25hbWUnIHwgJ3ZlcnNpb24nIHwgJ2NvbW1hbmRzJyB8ICdwbHVnaW5UeXBlJz4pOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgaXNBcHByb3ZhbFN0ZXAgPSBzcGVjLnBsdWdpblR5cGUgPT09ICdNYW51YWxBcHByb3ZhbFN0ZXAnO1xuICBpZiAoIXNwZWMubmFtZSB8fCAhc3BlYy52ZXJzaW9uIHx8ICghaXNBcHByb3ZhbFN0ZXAgJiYgIXNwZWMuY29tbWFuZHMpKSB7XG4gICAgcmV0dXJuICdJbnZhbGlkIHNwZWM6IG5hbWUsIHZlcnNpb24sIGFuZCBjb21tYW5kcyBhcmUgcmVxdWlyZWQnO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuIl19
package/package.json CHANGED
@@ -26,8 +26,6 @@
26
26
  "@asteasolutions/zod-to-openapi": "9.1.0",
27
27
  "@aws-sdk/client-kms": "3.1136.0",
28
28
  "@aws-sdk/client-s3": "3.1136.0",
29
- "@aws-sdk/client-sts": "3.1136.0",
30
- "@aws-sdk/credential-providers": "3.1136.0",
31
29
  "express": "5.2.1",
32
30
  "ioredis": "6.0.0",
33
31
  "jsonwebtoken": "9.0.3",
@@ -72,7 +70,7 @@
72
70
  "cli"
73
71
  ],
74
72
  "engines": {
75
- "node": ">= 24.14.0"
73
+ "node": ">= 24.21.0"
76
74
  },
77
75
  "devEngines": {
78
76
  "packageManager": {
@@ -107,7 +105,7 @@
107
105
  ]
108
106
  }
109
107
  },
110
- "version": "4.1.22",
108
+ "version": "5.0.1",
111
109
  "bugs": {
112
110
  "url": "https://github.com/mwashburn160/pipeline-builder/issues"
113
111
  },