@pipeline-builder/api-core 5.2.2 → 5.2.4

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 (91) hide show
  1. package/lib/constants/ai-providers.d.ts +3 -22
  2. package/lib/constants/ai-providers.js +6 -56
  3. package/lib/errors/app-errors.d.ts +14 -0
  4. package/lib/errors/app-errors.js +21 -1
  5. package/lib/helpers/index.d.ts +1 -0
  6. package/lib/helpers/index.js +2 -1
  7. package/lib/helpers/sse-helpers.d.ts +33 -3
  8. package/lib/helpers/sse-helpers.js +91 -19
  9. package/lib/helpers/support-calendar.d.ts +69 -0
  10. package/lib/helpers/support-calendar.js +179 -0
  11. package/lib/middleware/auth.js +6 -3
  12. package/lib/middleware/deferred-quota-check.d.ts +5 -0
  13. package/lib/middleware/deferred-quota-check.js +33 -0
  14. package/lib/middleware/ecosystem-guard.d.ts +3 -3
  15. package/lib/middleware/ecosystem-guard.js +5 -5
  16. package/lib/middleware/index.d.ts +5 -2
  17. package/lib/middleware/index.js +6 -3
  18. package/lib/middleware/on-behalf.d.ts +37 -0
  19. package/lib/middleware/on-behalf.js +143 -0
  20. package/lib/middleware/permission-gates.d.ts +11 -0
  21. package/lib/middleware/permission-gates.js +7 -1
  22. package/lib/middleware/quota-exempt-routes.d.ts +36 -0
  23. package/lib/middleware/quota-exempt-routes.js +47 -0
  24. package/lib/middleware/route-table.d.ts +104 -0
  25. package/lib/middleware/route-table.js +72 -2
  26. package/lib/middleware/service-tokens.d.ts +8 -0
  27. package/lib/middleware/service-tokens.js +5 -3
  28. package/lib/middleware/step-up.js +11 -1
  29. package/lib/services/ai-call-weight.d.ts +24 -0
  30. package/lib/services/ai-call-weight.js +77 -0
  31. package/lib/services/alert-delivery.d.ts +99 -0
  32. package/lib/services/alert-delivery.js +132 -0
  33. package/lib/services/audit-context.d.ts +105 -0
  34. package/lib/services/audit-context.js +134 -0
  35. package/lib/services/index.d.ts +10 -2
  36. package/lib/services/index.js +10 -2
  37. package/lib/services/org-ai-client.d.ts +61 -0
  38. package/lib/services/org-ai-client.js +112 -0
  39. package/lib/services/pagerduty-inbound.d.ts +101 -0
  40. package/lib/services/pagerduty-inbound.js +195 -0
  41. package/lib/services/pagerduty.d.ts +109 -0
  42. package/lib/services/pagerduty.js +186 -0
  43. package/lib/services/quota-increment-batcher.d.ts +81 -0
  44. package/lib/services/quota-increment-batcher.js +166 -0
  45. package/lib/services/quota.d.ts +158 -14
  46. package/lib/services/quota.js +252 -22
  47. package/lib/services/remote-audit-client.d.ts +44 -1
  48. package/lib/services/remote-audit-client.js +106 -20
  49. package/lib/services/version-vuln-policy.d.ts +174 -0
  50. package/lib/services/version-vuln-policy.js +242 -0
  51. package/lib/types/ai-catalog.d.ts +63 -0
  52. package/lib/types/ai-catalog.js +82 -0
  53. package/lib/types/ask-proposals.js +6 -6
  54. package/lib/types/build-catalog.d.ts +154 -0
  55. package/lib/types/build-catalog.js +158 -0
  56. package/lib/types/common.d.ts +37 -3
  57. package/lib/types/common.js +20 -2
  58. package/lib/types/ecosystem-notifications.d.ts +5 -5
  59. package/lib/types/ecosystem-notifications.js +9 -3
  60. package/lib/types/error-codes.d.ts +13 -6
  61. package/lib/types/error-codes.js +18 -8
  62. package/lib/types/feature-flags.d.ts +71 -1
  63. package/lib/types/feature-flags.js +131 -11
  64. package/lib/types/index.d.ts +6 -4
  65. package/lib/types/index.js +12 -5
  66. package/lib/types/metadata-keys.d.ts +6 -0
  67. package/lib/types/metadata-keys.js +4 -1
  68. package/lib/types/permissions.d.ts +351 -3
  69. package/lib/types/permissions.js +610 -21
  70. package/lib/types/pipeline.d.ts +39 -0
  71. package/lib/types/pipeline.js +57 -1
  72. package/lib/types/plugin-health.d.ts +0 -2
  73. package/lib/types/plugin-health.js +1 -11
  74. package/lib/types/plugin-scan.d.ts +192 -42
  75. package/lib/types/plugin-scan.js +159 -43
  76. package/lib/types/quota-catalog.d.ts +247 -0
  77. package/lib/types/quota-catalog.js +122 -0
  78. package/lib/types/quota-tiers.d.ts +150 -0
  79. package/lib/types/quota-tiers.js +167 -2
  80. package/lib/types/remote-audit-actions.d.ts +1 -1
  81. package/lib/types/remote-audit-actions.js +217 -4
  82. package/lib/types/wire-vocabulary.js +8 -1
  83. package/lib/utils/index.d.ts +1 -1
  84. package/lib/utils/index.js +2 -2
  85. package/lib/utils/response.d.ts +35 -2
  86. package/lib/utils/response.js +42 -3
  87. package/lib/validation/ai-schemas.d.ts +27 -0
  88. package/lib/validation/ai-schemas.js +31 -5
  89. package/lib/validation/plugin-schemas.d.ts +15 -0
  90. package/lib/validation/plugin-schemas.js +28 -1
  91. package/package.json +31 -2
@@ -1,19 +1,26 @@
1
1
  // Copyright 2026 Pipeline Builder Contributors
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  export { ErrorCode, getStatusForErrorCode } from './error-codes.js';
4
- export { isValidQuotaType, TOKEN_SCOPES, VALID_QUOTA_TYPES, } from './common.js';
4
+ export { isValidQuotaType, TOKEN_SCOPES, PRINCIPAL_TYPES, VALID_QUOTA_TYPES, QUOTA_TYPE_LABELS, QUOTA_UPGRADE_PATH, } from './common.js';
5
5
  export * from './pipeline.js';
6
6
  export {} from './catalog-metadata.js';
7
7
  export {} from './pipeline-template.js';
8
8
  export * from './visibility.js';
9
9
  export * from './reserved-tags.js';
10
+ // What each quota type is called and how its number renders — the one source the
11
+ // browser also imports directly via `@pipeline-builder/api-core/quota-catalog`.
12
+ export * from './quota-catalog.js';
10
13
  export * from './wire-vocabulary.js';
11
14
  export {} from './compliance-exemption.js';
12
15
  export { PLUGIN_SUMMARY_MAX, PLUGIN_README_MAX_BYTES, PLUGIN_CHANGELOG_MAX_BYTES, PLUGIN_CATEGORIES, PLUGIN_CATALOG_FIELDS, PLUGIN_CATALOG_LINK_FIELDS, METADATA_SOURCES, } from './plugin-catalog.js';
13
16
  export {} from './http.js';
14
- export { tierAllowsTeams, isBillingEnabled, isValidTier, getTierLimits, QUOTA_TIERS, VALID_TIERS, STANDARD_TIERS, TEAM_CAPABLE_TIERS, SEAT_PACK_TIERS, seatRemedy, DEFAULT_TIER, QUOTA_RESET_DAYS, nextQuotaResetDate, } from './quota-tiers.js';
17
+ export { tierAllowsTeams, isBillingEnabled, isValidTier, getTierLimits, QUOTA_TIERS, VALID_TIERS, STANDARD_TIERS, TEAM_CAPABLE_TIERS, SEAT_PACK_TIERS, seatRemedy, DEFAULT_TIER, QUOTA_RESET_DAYS, CPU_CREDITS_PERIOD_DAYS, quotaPeriodDays, nextQuotaResetDate, AUTOMATION_CALLS_SIZING, automationCallsFor, quotaGracePct, enforcedQuotaLimit, } from './quota-tiers.js';
18
+ // The build class/size catalog: ids, labels, credit multipliers, tier floors
19
+ // and per-class slot defaults. Dependency-free, so the browser imports it
20
+ // through the `./build-catalog` subpath instead of mirroring it.
21
+ export * from './build-catalog.js';
15
22
  export * from './feature-flags.js';
16
- export { permissionLabel, isValidPermission, isSystemOrgOnlyPermission, isOrgAssignablePermission, normalizePermissionSubset, intersectPermissions, resolveUserPermissions, confinePermissionsToOrg, hasPermission, ALL_PERMISSIONS, PERMISSION_GATES, PERMISSION_CATALOG, SUPERADMIN_ONLY_PERMISSIONS, SYSTEM_ORG_ONLY_PERMISSIONS, ORG_ASSIGNABLE_PERMISSIONS, ORG_ASSIGNABLE_CATEGORIES, READ_ONLY_PERMISSIONS, ROLE_PERMISSIONS, ECOSYSTEM_MANAGER_PERMISSIONS, TEAM_LEAD_PERMISSIONS, } from './permissions.js';
23
+ export { permissionLabel, isValidPermission, isSystemOrgOnlyPermission, isOrgAssignablePermission, normalizePermissionSubset, intersectPermissions, resolveUserPermissions, confinePermissionsToOrg, hasPermission, ALL_PERMISSIONS, ROLE_TEMPLATES, PERMISSION_ACTIONS, PERMISSION_ID_SHAPE, PERMISSION_GATES, PERMISSION_CATALOG, SUPERADMIN_ONLY_PERMISSIONS, SYSTEM_ORG_ONLY_PERMISSIONS, ORG_ASSIGNABLE_PERMISSIONS, ORG_ASSIGNABLE_CATEGORIES, READ_ONLY_PERMISSIONS, ROLE_PERMISSIONS, ECOSYSTEM_MANAGER_PERMISSIONS, PLATFORM_OPERATOR_PERMISSIONS, ACCOUNT_MANAGER_PERMISSIONS, CONSOLE_ADMIN_PERMISSIONS, PLATFORM_OBSERVER_PERMISSIONS, SUPPORT_AGENT_PERMISSIONS, SUPPORT_LEAD_PERMISSIONS, SEED_BUNDLES, SEED_BUNDLE_IDS, SYSTEM_ORG_JOB_BUNDLES, ORG_AUTOMATION_BUNDLES, AUTOMATION_ACCOUNT_BUNDLES, REGISTRY_OPERATOR_PERMISSIONS, TEAM_LEAD_PERMISSIONS, PIPELINE_AUTOMATION_PERMISSIONS, PIPELINE_REGISTRATION_PERMISSIONS, } from './permissions.js';
17
24
  export { METADATA_KEY_CATALOG, MetadataKeys, METADATA_KEY_GROUPS, } from './metadata-keys.js';
18
25
  export {} from './audit-events.js';
19
26
  export { REMOTE_AUDIT_ACTIONS, isRemoteAuditAction, } from './remote-audit-actions.js';
@@ -21,5 +28,5 @@ export { ASK_AGENT_PROPOSER, ASK_PROPOSED_BY_HEADER, PROPOSED_BY_DETAIL_KEY, ask
21
28
  export { isEcosystemNotificationEvent, parseEcosystemNotifyRequest, nextEcosystemDigestTime, renderEcosystemManagerChange, renderEcosystemDigest, ECOSYSTEM_EMAIL_PREFERENCE_FIELDS, ECOSYSTEM_EMAIL_PREFERENCE_FIELD_NAMES, ECOSYSTEM_NOTIFICATION_EVENTS, } from './ecosystem-notifications.js';
22
29
  export { publisherTermsVersion, publisherHandleProblem, isOfficialAutoApprovalEnabled, isPluginPublishingEnabled, isAnonymousSubmissionsEnabled, isPluginReviewsEnabled, OFFICIAL_CATALOG_LOADER_ACCOUNT, DEFAULT_PUBLISHER_TERMS_VERSION, BUILTIN_RESERVED_HANDLES, TENANT_REQUEST_KINDS, PUBLISH_PERMISSION_REQUEST_KINDS, VERIFY_REQUEST_KINDS, STEP_UP_REQUEST_KINDS, REQUEST_SLA_HOURS, } from './ecosystem.js';
23
30
  export { ageScore, vulnScore, computeHealthScore, publisherHealthScore, publisherSuccessRate, healthBand, HEALTH_COMPONENTS, HEALTH_WEIGHTS, } from './plugin-health.js';
24
- export { applyVulnWaivers, asScanFlag, blockOnNewCritical, describeFindings, describeFix, exceedsVulnFloor, parseVulnWaivers, parseVulnWaiversVerbose, pluginVulnMaxCritical, SCAN_FLAG_TOP_FINDINGS, vulnBlockedMessage, vulnFlaggedMessage, vulnFlaggedWarning, } from './plugin-scan.js';
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEUsT0FBTyxFQUNMLGdCQUFnQixFQUVoQixZQUFZLEVBTVosaUJBQWlCLEdBTWxCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLE9BQU8sRUFNTixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFFTixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLE9BQU8sRUFBbUMsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RSxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN2QiwwQkFBMEIsRUFDMUIsaUJBQWlCLEVBRWpCLHFCQUFxQixFQUVyQiwwQkFBMEIsRUFDMUIsZ0JBQWdCLEdBR2pCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUVOLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxhQUFhLEVBR2IsV0FBVyxFQUNYLFdBQVcsRUFDWCxjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixVQUFVLEVBRVYsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixrQkFBa0IsR0FDbkIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLE9BQU8sRUFDTCxlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIseUJBQXlCLEVBQ3pCLG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLGFBQWEsRUFFYixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQiwyQkFBMkIsRUFDM0IsMkJBQTJCLEVBQzNCLDBCQUEwQixFQUMxQix5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNoQiw2QkFBNkIsRUFDN0IscUJBQXFCLEdBQ3RCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixZQUFZLEVBR1osbUJBQW1CLEdBQ3BCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUVOLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixtQkFBbUIsR0FFcEIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixzQkFBc0IsRUFDdEIsOEJBQThCLEVBQzlCLCtCQUErQixFQUMvQix5QkFBeUIsRUFDekIsc0JBQXNCLEVBQ3RCLHNCQUFzQixFQUN0QixjQUFjLEVBQ2QsV0FBVyxFQUNYLGVBQWUsRUFDZixrQkFBa0IsR0FZbkIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLDJCQUEyQixFQUMzQix1QkFBdUIsRUFDdkIsNEJBQTRCLEVBQzVCLHFCQUFxQixFQUdyQixpQ0FBaUMsRUFFakMsc0NBQXNDLEVBQ3RDLDZCQUE2QixHQUc5QixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLDZCQUE2QixFQUM3Qix5QkFBeUIsRUFDekIsNkJBQTZCLEVBQzdCLHNCQUFzQixFQUN0QiwrQkFBK0IsRUFDL0IsK0JBQStCLEVBQy9CLHdCQUF3QixFQUN4QixvQkFBb0IsRUFDcEIsZ0NBQWdDLEVBQ2hDLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsaUJBQWlCLEdBQ2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLFFBQVEsRUFDUixTQUFTLEVBQ1Qsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixjQUFjLEdBTWYsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsa0JBQWtCLEdBU25CLE1BQU0sa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuZXhwb3J0IHsgRXJyb3JDb2RlLCBnZXRTdGF0dXNGb3JFcnJvckNvZGUgfSBmcm9tICcuL2Vycm9yLWNvZGVzLmpzJztcbmV4cG9ydCB7XG4gIGlzVmFsaWRRdW90YVR5cGUsXG4gIHR5cGUgVG9rZW5TY29wZSxcbiAgVE9LRU5fU0NPUEVTLFxuICB0eXBlIFByaW5jaXBhbFR5cGUsXG4gIHR5cGUgVG9rZW5Vc2UsXG4gIHR5cGUgQXV0aE1ldGhvZCxcbiAgdHlwZSBBc3N1cmFuY2VMZXZlbCxcbiAgdHlwZSBRdW90YVR5cGUsXG4gIFZBTElEX1FVT1RBX1RZUEVTLFxuICB0eXBlIFF1b3RhQ2hlY2tSZXN1bHQsXG4gIHR5cGUgUXVvdGFJbmZvLFxuICB0eXBlIEFwaVJlc3BvbnNlLFxuICB0eXBlIEp3dFBheWxvYWQsXG4gIHR5cGUgSGVhbHRoQ2hlY2tSZXNwb25zZSxcbn0gZnJvbSAnLi9jb21tb24uanMnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlbGluZS5qcyc7XG5leHBvcnQge1xuICB0eXBlIExpZmVjeWNsZSxcbiAgdHlwZSBDcml0aWNhbGl0eSxcbiAgdHlwZSBPd25lclR5cGUsXG4gIHR5cGUgRW50aXR5TGluayxcbiAgdHlwZSBFbnRpdHlMYWJlbHMsXG59IGZyb20gJy4vY2F0YWxvZy1tZXRhZGF0YS5qcyc7XG5leHBvcnQge1xuICB0eXBlIFRlbXBsYXRlSW5wdXQsXG59IGZyb20gJy4vcGlwZWxpbmUtdGVtcGxhdGUuanMnO1xuZXhwb3J0ICogZnJvbSAnLi92aXNpYmlsaXR5LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzZXJ2ZWQtdGFncy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3dpcmUtdm9jYWJ1bGFyeS5qcyc7XG5leHBvcnQgeyB0eXBlIENvbXBsaWFuY2VFeGVtcHRpb25SZXF1ZXN0IH0gZnJvbSAnLi9jb21wbGlhbmNlLWV4ZW1wdGlvbi5qcyc7XG5leHBvcnQge1xuICBQTFVHSU5fU1VNTUFSWV9NQVgsXG4gIFBMVUdJTl9SRUFETUVfTUFYX0JZVEVTLFxuICBQTFVHSU5fQ0hBTkdFTE9HX01BWF9CWVRFUyxcbiAgUExVR0lOX0NBVEVHT1JJRVMsXG4gIHR5cGUgUGx1Z2luQ2F0YWxvZ0NhdGVnb3J5LFxuICBQTFVHSU5fQ0FUQUxPR19GSUVMRFMsXG4gIHR5cGUgUGx1Z2luQ2F0YWxvZ0ZpZWxkLFxuICBQTFVHSU5fQ0FUQUxPR19MSU5LX0ZJRUxEUyxcbiAgTUVUQURBVEFfU09VUkNFUyxcbiAgdHlwZSBNZXRhZGF0YVNvdXJjZSxcbiAgdHlwZSBNZXRhZGF0YVNvdXJjZXMsXG59IGZyb20gJy4vcGx1Z2luLWNhdGFsb2cuanMnO1xuZXhwb3J0IHtcbiAgdHlwZSBIdHRwUmVxdWVzdCxcbn0gZnJvbSAnLi9odHRwLmpzJztcbmV4cG9ydCB7XG4gIHRpZXJBbGxvd3NUZWFtcyxcbiAgaXNCaWxsaW5nRW5hYmxlZCxcbiAgaXNWYWxpZFRpZXIsXG4gIGdldFRpZXJMaW1pdHMsXG4gIHR5cGUgUXVvdGFUaWVyLFxuICB0eXBlIFF1b3RhVGllckxpbWl0cyxcbiAgUVVPVEFfVElFUlMsXG4gIFZBTElEX1RJRVJTLFxuICBTVEFOREFSRF9USUVSUyxcbiAgVEVBTV9DQVBBQkxFX1RJRVJTLFxuICBTRUFUX1BBQ0tfVElFUlMsXG4gIHNlYXRSZW1lZHksXG4gIHR5cGUgU2VhdFJlbWVkeSxcbiAgREVGQVVMVF9USUVSLFxuICBRVU9UQV9SRVNFVF9EQVlTLFxuICBuZXh0UXVvdGFSZXNldERhdGUsXG59IGZyb20gJy4vcXVvdGEtdGllcnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9mZWF0dXJlLWZsYWdzLmpzJztcbmV4cG9ydCB7XG4gIHBlcm1pc3Npb25MYWJlbCxcbiAgaXNWYWxpZFBlcm1pc3Npb24sXG4gIGlzU3lzdGVtT3JnT25seVBlcm1pc3Npb24sXG4gIGlzT3JnQXNzaWduYWJsZVBlcm1pc3Npb24sXG4gIG5vcm1hbGl6ZVBlcm1pc3Npb25TdWJzZXQsXG4gIGludGVyc2VjdFBlcm1pc3Npb25zLFxuICByZXNvbHZlVXNlclBlcm1pc3Npb25zLFxuICBjb25maW5lUGVybWlzc2lvbnNUb09yZyxcbiAgaGFzUGVybWlzc2lvbixcbiAgdHlwZSBQZXJtaXNzaW9uLFxuICBBTExfUEVSTUlTU0lPTlMsXG4gIFBFUk1JU1NJT05fR0FURVMsXG4gIFBFUk1JU1NJT05fQ0FUQUxPRyxcbiAgU1VQRVJBRE1JTl9PTkxZX1BFUk1JU1NJT05TLFxuICBTWVNURU1fT1JHX09OTFlfUEVSTUlTU0lPTlMsXG4gIE9SR19BU1NJR05BQkxFX1BFUk1JU1NJT05TLFxuICBPUkdfQVNTSUdOQUJMRV9DQVRFR09SSUVTLFxuICBSRUFEX09OTFlfUEVSTUlTU0lPTlMsXG4gIFJPTEVfUEVSTUlTU0lPTlMsXG4gIEVDT1NZU1RFTV9NQU5BR0VSX1BFUk1JU1NJT05TLFxuICBURUFNX0xFQURfUEVSTUlTU0lPTlMsXG59IGZyb20gJy4vcGVybWlzc2lvbnMuanMnO1xuZXhwb3J0IHtcbiAgTUVUQURBVEFfS0VZX0NBVEFMT0csXG4gIE1ldGFkYXRhS2V5cyxcbiAgdHlwZSBNZXRhZGF0YUtleSxcbiAgdHlwZSBNZXRhZGF0YUtleU9wdGlvbixcbiAgTUVUQURBVEFfS0VZX0dST1VQUyxcbn0gZnJvbSAnLi9tZXRhZGF0YS1rZXlzLmpzJztcbmV4cG9ydCB7XG4gIHR5cGUgQXVkaXRFdmVudCxcbn0gZnJvbSAnLi9hdWRpdC1ldmVudHMuanMnO1xuZXhwb3J0IHtcbiAgUkVNT1RFX0FVRElUX0FDVElPTlMsXG4gIGlzUmVtb3RlQXVkaXRBY3Rpb24sXG4gIHR5cGUgUmVtb3RlQXVkaXRBY3Rpb24sXG59IGZyb20gJy4vcmVtb3RlLWF1ZGl0LWFjdGlvbnMuanMnO1xuZXhwb3J0IHtcbiAgQVNLX0FHRU5UX1BST1BPU0VSLFxuICBBU0tfUFJPUE9TRURfQllfSEVBREVSLFxuICBQUk9QT1NFRF9CWV9ERVRBSUxfS0VZLFxuICBhc2tQcm9wb3NhbEF1ZGl0RGV0YWlscyxcbiAgcmVhZFByb3Bvc2VyQ2xhaW0sXG4gIHdpdGhQcm9wb3NhbFByb3ZlbmFuY2UsXG4gIE9SR19TRVRUSU5HX1BST1BPU0FMX0FMTE9XTElTVCxcbiAgT1JHX1NFVFRJTkdfUFJPUE9TQUxfRVhDTFVTSU9OUyxcbiAgT1JHX1NFVFRJTkdfUFJPUE9TQUxfS0VZUyxcbiAgaXNQcm9wb3NhYmxlT3JnU2V0dGluZyxcbiAgaXNWYWxpZE9yZ1NldHRpbmdWYWx1ZSxcbiAgb3JnU2V0dGluZ1NwZWMsXG4gIHBpY2tBbGxvd2VkLFxuICBkaWZmT3JnU2V0dGluZ3MsXG4gIG9yZ1NldHRpbmdSZXF1ZXN0cyxcbiAgdHlwZSBBc2tQcm9wb3NhbFByb3ZlbmFuY2UsXG4gIHR5cGUgUHJvcG9zZXJDbGFpbSxcbiAgdHlwZSBPcmdTZXR0aW5nQ2hhbmdlLFxuICB0eXBlIE9yZ1NldHRpbmdLZXksXG4gIHR5cGUgT3JnU2V0dGluZ1BhdGNoLFxuICB0eXBlIE9yZ1NldHRpbmdSZXF1ZXN0LFxuICB0eXBlIE9yZ1NldHRpbmdTaGFwZSxcbiAgdHlwZSBPcmdTZXR0aW5nU3BlYyxcbiAgdHlwZSBPcmdTZXR0aW5nU3VyZmFjZSxcbiAgdHlwZSBPcmdTZXR0aW5nVmFsdWUsXG4gIHR5cGUgUGlja0FsbG93ZWRSZXN1bHQsXG59IGZyb20gJy4vYXNrLXByb3Bvc2Fscy5qcyc7XG5leHBvcnQge1xuICBpc0Vjb3N5c3RlbU5vdGlmaWNhdGlvbkV2ZW50LFxuICBwYXJzZUVjb3N5c3RlbU5vdGlmeVJlcXVlc3QsXG4gIG5leHRFY29zeXN0ZW1EaWdlc3RUaW1lLFxuICByZW5kZXJFY29zeXN0ZW1NYW5hZ2VyQ2hhbmdlLFxuICByZW5kZXJFY29zeXN0ZW1EaWdlc3QsXG4gIHR5cGUgRWNvc3lzdGVtTm90aWZpY2F0aW9uRXZlbnRJZCxcbiAgdHlwZSBFY29zeXN0ZW1Ob3RpZmljYXRpb25DaGFubmVsLFxuICBFQ09TWVNURU1fRU1BSUxfUFJFRkVSRU5DRV9GSUVMRFMsXG4gIHR5cGUgRWNvc3lzdGVtRW1haWxQcmVmZXJlbmNlRmllbGQsXG4gIEVDT1NZU1RFTV9FTUFJTF9QUkVGRVJFTkNFX0ZJRUxEX05BTUVTLFxuICBFQ09TWVNURU1fTk9USUZJQ0FUSU9OX0VWRU5UUyxcbiAgdHlwZSBFY29zeXN0ZW1SZWNpcGllbnRTcGVjLFxuICB0eXBlIEVjb3N5c3RlbU5vdGlmeVJlcXVlc3QsXG59IGZyb20gJy4vZWNvc3lzdGVtLW5vdGlmaWNhdGlvbnMuanMnO1xuZXhwb3J0IHtcbiAgcHVibGlzaGVyVGVybXNWZXJzaW9uLFxuICBwdWJsaXNoZXJIYW5kbGVQcm9ibGVtLFxuICBpc09mZmljaWFsQXV0b0FwcHJvdmFsRW5hYmxlZCxcbiAgaXNQbHVnaW5QdWJsaXNoaW5nRW5hYmxlZCxcbiAgaXNBbm9ueW1vdXNTdWJtaXNzaW9uc0VuYWJsZWQsXG4gIGlzUGx1Z2luUmV2aWV3c0VuYWJsZWQsXG4gIE9GRklDSUFMX0NBVEFMT0dfTE9BREVSX0FDQ09VTlQsXG4gIERFRkFVTFRfUFVCTElTSEVSX1RFUk1TX1ZFUlNJT04sXG4gIEJVSUxUSU5fUkVTRVJWRURfSEFORExFUyxcbiAgVEVOQU5UX1JFUVVFU1RfS0lORFMsXG4gIFBVQkxJU0hfUEVSTUlTU0lPTl9SRVFVRVNUX0tJTkRTLFxuICBWRVJJRllfUkVRVUVTVF9LSU5EUyxcbiAgU1RFUF9VUF9SRVFVRVNUX0tJTkRTLFxuICBSRVFVRVNUX1NMQV9IT1VSUyxcbn0gZnJvbSAnLi9lY29zeXN0ZW0uanMnO1xuZXhwb3J0IHtcbiAgYWdlU2NvcmUsXG4gIHZ1bG5TY29yZSxcbiAgY29tcHV0ZUhlYWx0aFNjb3JlLFxuICBwdWJsaXNoZXJIZWFsdGhTY29yZSxcbiAgcHVibGlzaGVyU3VjY2Vzc1JhdGUsXG4gIGhlYWx0aEJhbmQsXG4gIEhFQUxUSF9DT01QT05FTlRTLFxuICBIRUFMVEhfV0VJR0hUUyxcbiAgdHlwZSBIZWFsdGhCcmVha2Rvd24sXG4gIHR5cGUgSGVhbHRoQ29tcG9uZW50U2NvcmUsXG4gIHR5cGUgSGVhbHRoUmVzdWx0LFxuICB0eXBlIEhlYWx0aElucHV0cyxcbiAgdHlwZSBIZWFsdGhCYW5kLFxufSBmcm9tICcuL3BsdWdpbi1oZWFsdGguanMnO1xuZXhwb3J0IHtcbiAgYXBwbHlWdWxuV2FpdmVycyxcbiAgYXNTY2FuRmxhZyxcbiAgYmxvY2tPbk5ld0NyaXRpY2FsLFxuICBkZXNjcmliZUZpbmRpbmdzLFxuICBkZXNjcmliZUZpeCxcbiAgZXhjZWVkc1Z1bG5GbG9vcixcbiAgcGFyc2VWdWxuV2FpdmVycyxcbiAgcGFyc2VWdWxuV2FpdmVyc1ZlcmJvc2UsXG4gIHBsdWdpblZ1bG5NYXhDcml0aWNhbCxcbiAgU0NBTl9GTEFHX1RPUF9GSU5ESU5HUyxcbiAgdnVsbkJsb2NrZWRNZXNzYWdlLFxuICB2dWxuRmxhZ2dlZE1lc3NhZ2UsXG4gIHZ1bG5GbGFnZ2VkV2FybmluZyxcbiAgdHlwZSBQbHVnaW5TY2FuRmluZGluZyxcbiAgdHlwZSBQbHVnaW5TY2FuRmxhZyxcbiAgdHlwZSBQbHVnaW5TY2FuU3VtbWFyeSxcbiAgdHlwZSBWdWxuRmxhZ2dlZFdhcm5pbmcsXG4gIHR5cGUgVnVsbldhaXZlcixcbiAgdHlwZSBWdWxuV2FpdmVyUGFyc2UsXG4gIHR5cGUgVnVsbldhaXZlclByb2JsZW0sXG4gIHR5cGUgV2FpdmVyT3V0Y29tZSxcbn0gZnJvbSAnLi9wbHVnaW4tc2Nhbi5qcyc7XG4iXX0=
31
+ export { applyVulnWaivers, asScanFlag, describeFindings, describeFix, atOrAboveFailOn, exceedsVulnFloor, failOnLabel, gatedFixableCount, isGatedFinding, newScanFindings, parseVulnWaivers, parseVulnWaiversVerbose, pluginVulnFailOn, pluginVulnGateKev, pluginVulnMaxFindings, SCAN_FLAG_TOP_FINDINGS, SCAN_SUMMARY_MAX_BINARIES, SCAN_SUMMARY_MAX_FINDINGS, scanFindingKey, vulnFlaggedMessage, vulnFlaggedWarning, vulnWaiverLabels, } from './plugin-scan.js';
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEUsT0FBTyxFQUNMLGdCQUFnQixFQUVoQixZQUFZLEVBRVosZUFBZSxFQUtmLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsa0JBQWtCLEdBTW5CLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLE9BQU8sRUFNTixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFFTixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxpRkFBaUY7QUFDakYsZ0ZBQWdGO0FBQ2hGLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxPQUFPLEVBQW1DLE1BQU0sMkJBQTJCLENBQUM7QUFDNUUsT0FBTyxFQUNMLGtCQUFrQixFQUNsQix1QkFBdUIsRUFDdkIsMEJBQTBCLEVBQzFCLGlCQUFpQixFQUVqQixxQkFBcUIsRUFFckIsMEJBQTBCLEVBQzFCLGdCQUFnQixHQUdqQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFFTixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQ0wsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsYUFBYSxFQUdiLFdBQVcsRUFDWCxXQUFXLEVBQ1gsY0FBYyxFQUNkLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsVUFBVSxFQUVWLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNsQixhQUFhLEVB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dCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5leHBvcnQgeyBFcnJvckNvZGUsIGdldFN0YXR1c0ZvckVycm9yQ29kZSB9IGZyb20gJy4vZXJyb3ItY29kZXMuanMnO1xuZXhwb3J0IHtcbiAgaXNWYWxpZFF1b3RhVHlwZSxcbiAgdHlwZSBUb2tlblNjb3BlLFxuICBUT0tFTl9TQ09QRVMsXG4gIHR5cGUgUHJpbmNpcGFsVHlwZSxcbiAgUFJJTkNJUEFMX1RZUEVTLFxuICB0eXBlIFRva2VuVXNlLFxuICB0eXBlIEF1dGhNZXRob2QsXG4gIHR5cGUgQXNzdXJhbmNlTGV2ZWwsXG4gIHR5cGUgUXVvdGFUeXBlLFxuICBWQUxJRF9RVU9UQV9UWVBFUyxcbiAgUVVPVEFfVFlQRV9MQUJFTFMsXG4gIFFVT1RBX1VQR1JBREVfUEFUSCxcbiAgdHlwZSBRdW90YUNoZWNrUmVzdWx0LFxuICB0eXBlIFF1b3RhSW5mbyxcbiAgdHlwZSBBcGlSZXNwb25zZSxcbiAgdHlwZSBKd3RQYXlsb2FkLFxuICB0eXBlIEhlYWx0aENoZWNrUmVzcG9uc2UsXG59IGZyb20gJy4vY29tbW9uLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZWxpbmUuanMnO1xuZXhwb3J0IHtcbiAgdHlwZSBMaWZlY3ljbGUsXG4gIHR5cGUgQ3JpdGljYWxpdHksXG4gIHR5cGUgT3duZXJUeXBlLFxuICB0eXBlIEVudGl0eUxpbmssXG4gIHR5cGUgRW50aXR5TGFiZWxzLFxufSBmcm9tICcuL2NhdGFsb2ctbWV0YWRhdGEuanMnO1xuZXhwb3J0IHtcbiAgdHlwZSBUZW1wbGF0ZUlucHV0LFxufSBmcm9tICcuL3BpcGVsaW5lLXRlbXBsYXRlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vdmlzaWJpbGl0eS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc2VydmVkLXRhZ3MuanMnO1xuLy8gV2hhdCBlYWNoIHF1b3RhIHR5cGUgaXMgY2FsbGVkIGFuZCBob3cgaXRzIG51bWJlciByZW5kZXJzIOKAlCB0aGUgb25lIHNvdXJjZSB0aGVcbi8vIGJyb3dzZXIgYWxzbyBpbXBvcnRzIGRpcmVjdGx5IHZpYSBgQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUvcXVvdGEtY2F0YWxvZ2AuXG5leHBvcnQgKiBmcm9tICcuL3F1b3RhLWNhdGFsb2cuanMnO1xuZXhwb3J0ICogZnJvbSAnLi93aXJlLXZvY2FidWxhcnkuanMnO1xuZXhwb3J0IHsgdHlwZSBDb21wbGlhbmNlRXhlbXB0aW9uUmVxdWVzdCB9IGZyb20gJy4vY29tcGxpYW5jZS1leGVtcHRpb24uanMnO1xuZXhwb3J0IHtcbiAgUExVR0lOX1NVTU1BUllfTUFYLFxuICBQTFVHSU5fUkVBRE1FX01BWF9CWVRFUyxcbiAgUExVR0lOX0NIQU5HRUxPR19NQVhfQllURVMsXG4gIFBMVUdJTl9DQVRFR09SSUVTLFxuICB0eXBlIFBsdWdpbkNhdGFsb2dDYXRlZ29yeSxcbiAgUExVR0lOX0NBVEFMT0dfRklFTERTLFxuICB0eXBlIFBsdWdpbkNhdGFsb2dGaWVsZCxcbiAgUExVR0lOX0NBVEFMT0dfTElOS19GSUVMRFMsXG4gIE1FVEFEQVRBX1NPVVJDRVMsXG4gIHR5cGUgTWV0YWRhdGFTb3VyY2UsXG4gIHR5cGUgTWV0YWRhdGFTb3VyY2VzLFxufSBmcm9tICcuL3BsdWdpbi1jYXRhbG9nLmpzJztcbmV4cG9ydCB7XG4gIHR5cGUgSHR0cFJlcXVlc3QsXG59IGZyb20gJy4vaHR0cC5qcyc7XG5leHBvcnQge1xuICB0aWVyQWxsb3dzVGVhbXMsXG4gIGlzQmlsbGluZ0VuYWJsZWQsXG4gIGlzVmFsaWRUaWVyLFxuICBnZXRUaWVyTGltaXRzLFxuICB0eXBlIFF1b3RhVGllcixcbiAgdHlwZSBRdW90YVRpZXJMaW1pdHMsXG4gIFFVT1RBX1RJRVJTLFxuICBWQUxJRF9USUVSUyxcbiAgU1RBTkRBUkRfVElFUlMsXG4gIFRFQU1fQ0FQQUJMRV9USUVSUyxcbiAgU0VBVF9QQUNLX1RJRVJTLFxuICBzZWF0UmVtZWR5LFxuICB0eXBlIFNlYXRSZW1lZHksXG4gIERFRkFVTFRfVElFUixcbiAgUVVPVEFfUkVTRVRfREFZUyxcbiAgQ1BVX0NSRURJVFNfUEVSSU9EX0RBWVMsXG4gIHF1b3RhUGVyaW9kRGF5cyxcbiAgbmV4dFF1b3RhUmVzZXREYXRlLFxuICBBVVRPTUFUSU9OX0NBTExTX1NJWklORyxcbiAgYXV0b21hdGlvbkNhbGxzRm9yLFxuICBxdW90YUdyYWNlUGN0LFxuICBlbmZvcmNlZFF1b3RhTGltaXQsXG59IGZyb20gJy4vcXVvdGEtdGllcnMuanMnO1xuLy8gVGhlIGJ1aWxkIGNsYXNzL3NpemUgY2F0YWxvZzogaWRzLCBsYWJlbHMsIGNyZWRpdCBtdWx0aXBsaWVycywgdGllciBmbG9vcnNcbi8vIGFuZCBwZXItY2xhc3Mgc2xvdCBkZWZhdWx0cy4gRGVwZW5kZW5jeS1mcmVlLCBzbyB0aGUgYnJvd3NlciBpbXBvcnRzIGl0XG4vLyB0aHJvdWdoIHRoZSBgLi9idWlsZC1jYXRhbG9nYCBzdWJwYXRoIGluc3RlYWQgb2YgbWlycm9yaW5nIGl0LlxuZXhwb3J0ICogZnJvbSAnLi9idWlsZC1jYXRhbG9nLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZmVhdHVyZS1mbGFncy5qcyc7XG5leHBvcnQge1xuICBwZXJtaXNzaW9uTGFiZWwsXG4gIGlzVmFsaWRQZXJtaXNzaW9uLFxuICBpc1N5c3RlbU9yZ09ubHlQZXJtaXNzaW9uLFxuICBpc09yZ0Fzc2lnbmFibGVQZXJtaXNzaW9uLFxuICBub3JtYWxpemVQZXJtaXNzaW9uU3Vic2V0LFxuICBpbnRlcnNlY3RQZXJtaXNzaW9ucyxcbiAgcmVzb2x2ZVVzZXJQZXJtaXNzaW9ucyxcbiAgY29uZmluZVBlcm1pc3Npb25zVG9PcmcsXG4gIGhhc1Blcm1pc3Npb24sXG4gIHR5cGUgUGVybWlzc2lvbixcbiAgQUxMX1BFUk1JU1NJT05TLFxuICBST0xFX1RFTVBMQVRFUyxcbiAgdHlwZSBSb2xlVGVtcGxhdGUsXG4gIFBFUk1JU1NJT05fQUNUSU9OUyxcbiAgUEVSTUlTU0lPTl9JRF9TSEFQRSxcbiAgUEVSTUlTU0lPTl9HQVRFUyxcbiAgUEVSTUlTU0lPTl9DQVRBTE9HLFxuICBTVVBFUkFETUlOX09OTFlfUEVSTUlTU0lPTlMsXG4gIFNZU1RFTV9PUkdfT05MWV9QRVJNSVNTSU9OUyxcbiAgT1JHX0FTU0lHTkFCTEVfUEVSTUlTU0lPTlMsXG4gIE9SR19BU1NJR05BQkxFX0NBVEVHT1JJRVMsXG4gIFJFQURfT05MWV9QRVJNSVNTSU9OUyxcbiAgUk9MRV9QRVJNSVNTSU9OUyxcbiAgRUNPU1lTVEVNX01BTkFHRVJfUEVSTUlTU0lPTlMsXG4gIFBMQVRGT1JNX09QRVJBVE9SX1BFUk1JU1NJT05TLFxuICBBQ0NPVU5UX01BTkFHRVJfUEVSTUlTU0lPTlMsXG4gIENPTlNPTEVfQURNSU5fUEVSTUlTU0lPTlMsXG4gIFBMQVRGT1JNX09CU0VSVkVSX1BFUk1JU1NJT05TLFxuICBTVVBQT1JUX0FHRU5UX1BFUk1JU1NJT05TLFxuICBTVVBQT1JUX0xFQURfUEVSTUlTU0lPTlMsXG4gIFNFRURfQlVORExFUyxcbiAgU0VFRF9CVU5ETEVfSURTLFxuICBTWVNURU1fT1JHX0pPQl9CVU5ETEVTLFxuICBPUkdfQVVUT01BVElPTl9CVU5ETEVTLFxuICBBVVRPTUFUSU9OX0FDQ09VTlRfQlVORExFUyxcbiAgdHlwZSBTZWVkQnVuZGxlSWQsXG4gIFJFR0lTVFJZX09QRVJBVE9SX1BFUk1JU1NJT05TLFxuICBURUFNX0xFQURfUEVSTUlTU0lPTlMsXG4gIFBJUEVMSU5FX0FVVE9NQVRJT05fUEVSTUlTU0lPTlMsXG4gIFBJUEVMSU5FX1JFR0lTVFJBVElPTl9QRVJNSVNTSU9OUyxcbn0gZnJvbSAnLi9wZXJtaXNzaW9ucy5qcyc7XG5leHBvcnQge1xuICBNRVRBREFUQV9LRVlfQ0FUQUxPRyxcbiAgTWV0YWRhdGFLZXlzLFxuICB0eXBlIE1ldGFkYXRhS2V5LFxuICB0eXBlIE1ldGFkYXRhS2V5T3B0aW9uLFxuICBNRVRBREFUQV9LRVlfR1JPVVBTLFxufSBmcm9tICcuL21ldGFkYXRhLWtleXMuanMnO1xuZXhwb3J0IHtcbiAgdHlwZSBBdWRpdEV2ZW50LFxufSBmcm9tICcuL2F1ZGl0LWV2ZW50cy5qcyc7XG5leHBvcnQge1xuICBSRU1PVEVfQVVESVRfQUNUSU9OUyxcbiAgaXNSZW1vdGVBdWRpdEFjdGlvbixcbiAgdHlwZSBSZW1vdGVBdWRpdEFjdGlvbixcbn0gZnJvbSAnLi9yZW1vdGUtYXVkaXQtYWN0aW9ucy5qcyc7XG5leHBvcnQge1xuICBBU0tfQUdFTlRfUFJPUE9TRVIsXG4gIEFTS19QUk9QT1NFRF9CWV9IRUFERVIsXG4gIFBST1BPU0VEX0JZX0RFVEFJTF9LRVksXG4gIGFza1Byb3Bvc2FsQXVkaXREZXRhaWxzLFxuICByZWFkUHJvcG9zZXJDbGFpbSxcbiAgd2l0aFByb3Bvc2FsUHJvdmVuYW5jZSxcbiAgT1JHX1NFVFRJTkdfUFJPUE9TQUxfQUxMT1dMSVNULFxuICBPUkdfU0VUVElOR19QUk9QT1NBTF9FWENMVVNJT05TLFxuICBPUkdfU0VUVElOR19QUk9QT1NBTF9LRVlTLFxuICBpc1Byb3Bvc2FibGVPcmdTZXR0aW5nLFxuICBpc1ZhbGlkT3JnU2V0dGluZ1ZhbHVlLFxuICBvcmdTZXR0aW5nU3BlYyxcbiAgcGlja0FsbG93ZWQsXG4gIGRpZmZPcmdTZXR0aW5ncyxcbiAgb3JnU2V0dGluZ1JlcXVlc3RzLFxuICB0eXBlIEFza1Byb3Bvc2FsUHJvdmVuYW5jZSxcbiAgdHlwZSBQcm9wb3NlckNsYWltLFxuICB0eXBlIE9yZ1NldHRpbmdDaGFuZ2UsXG4gIHR5cGUgT3JnU2V0dGluZ0tleSxcbiAgdHlwZSBPcmdTZXR0aW5nUGF0Y2gsXG4gIHR5cGUgT3JnU2V0dGluZ1JlcXVlc3QsXG4gIHR5cGUgT3JnU2V0dGluZ1NoYXBlLFxuICB0eXBlIE9yZ1NldHRpbmdTcGVjLFxuICB0eXBlIE9yZ1NldHRpbmdTdXJmYWNlLFxuICB0eXBlIE9yZ1NldHRpbmdWYWx1ZSxcbiAgdHlwZSBQaWNrQWxsb3dlZFJlc3VsdCxcbn0gZnJvbSAnLi9hc2stcHJvcG9zYWxzLmpzJztcbmV4cG9ydCB7XG4gIGlzRWNvc3lzdGVtTm90aWZpY2F0aW9uRXZlbnQsXG4gIHBhcnNlRWNvc3lzdGVtTm90aWZ5UmVxdWVzdCxcbiAgbmV4dEVjb3N5c3RlbURpZ2VzdFRpbWUsXG4gIHJlbmRlckVjb3N5c3RlbU1hbmFnZXJDaGFuZ2UsXG4gIHJlbmRlckVjb3N5c3RlbURpZ2VzdCxcbiAgdHlwZSBFY29zeXN0ZW1Ob3RpZmljYXRpb25FdmVudElkLFxuICB0eXBlIEVjb3N5c3RlbU5vdGlmaWNhdGlvbkNoYW5uZWwsXG4gIEVDT1NZU1RFTV9FTUFJTF9QUkVGRVJFTkNFX0ZJRUxEUyxcbiAgdHlwZSBFY29zeXN0ZW1FbWFpbFByZWZlcmVuY2VGaWVsZCxcbiAgRUNPU1lTVEVNX0VNQUlMX1BSRUZFUkVOQ0VfRklFTERfTkFNRVMsXG4gIEVDT1NZU1RFTV9OT1RJRklDQVRJT05fRVZFTlRTLFxuICB0eXBlIEVjb3N5c3RlbVJlY2lwaWVudFNwZWMsXG4gIHR5cGUgRWNvc3lzdGVtTm90aWZ5UmVxdWVzdCxcbn0gZnJvbSAnLi9lY29zeXN0ZW0tbm90aWZpY2F0aW9ucy5qcyc7XG5leHBvcnQge1xuICBwdWJsaXNoZXJUZXJtc1ZlcnNpb24sXG4gIHB1Ymxpc2hlckhhbmRsZVByb2JsZW0sXG4gIGlzT2ZmaWNpYWxBdXRvQXBwcm92YWxFbmFibGVkLFxuICBpc1BsdWdpblB1Ymxpc2hpbmdFbmFibGVkLFxuICBpc0Fub255bW91c1N1Ym1pc3Npb25zRW5hYmxlZCxcbiAgaXNQbHVnaW5SZXZpZXdzRW5hYmxlZCxcbiAgT0ZGSUNJQUxfQ0FUQUxPR19MT0FERVJfQUNDT1VOVCxcbiAgREVGQVVMVF9QVUJMSVNIRVJfVEVSTVNfVkVSU0lPTixcbiAgQlVJTFRJTl9SRVNFUlZFRF9IQU5ETEVTLFxuICBURU5BTlRfUkVRVUVTVF9LSU5EUyxcbiAgUFVCTElTSF9QRVJNSVNTSU9OX1JFUVVFU1RfS0lORFMsXG4gIFZFUklGWV9SRVFVRVNUX0tJTkRTLFxuICBTVEVQX1VQX1JFUVVFU1RfS0lORFMsXG4gIFJFUVVFU1RfU0xBX0hPVVJTLFxufSBmcm9tICcuL2Vjb3N5c3RlbS5qcyc7XG5leHBvcnQge1xuICBhZ2VTY29yZSxcbiAgdnVsblNjb3JlLFxuICBjb21wdXRlSGVhbHRoU2NvcmUsXG4gIHB1Ymxpc2hlckhlYWx0aFNjb3JlLFxuICBwdWJsaXNoZXJTdWNjZXNzUmF0ZSxcbiAgaGVhbHRoQmFuZCxcbiAgSEVBTFRIX0NPTVBPTkVOVFMsXG4gIEhFQUxUSF9XRUlHSFRTLFxuICB0eXBlIEhlYWx0aEJyZWFrZG93bixcbiAgdHlwZSBIZWFsdGhDb21wb25lbnRTY29yZSxcbiAgdHlwZSBIZWFsdGhSZXN1bHQsXG4gIHR5cGUgSGVhbHRoSW5wdXRzLFxuICB0eXBlIEhlYWx0aEJhbmQsXG59IGZyb20gJy4vcGx1Z2luLWhlYWx0aC5qcyc7XG5leHBvcnQge1xuICBhcHBseVZ1bG5XYWl2ZXJzLFxuICBhc1NjYW5GbGFnLFxuICBkZXNjcmliZUZpbmRpbmdzLFxuICBkZXNjcmliZUZpeCxcbiAgYXRPckFib3ZlRmFpbE9uLFxuICBleGNlZWRzVnVsbkZsb29yLFxuICBmYWlsT25MYWJlbCxcbiAgZ2F0ZWRGaXhhYmxlQ291bnQsXG4gIGlzR2F0ZWRGaW5kaW5nLFxuICBuZXdTY2FuRmluZGluZ3MsXG4gIHBhcnNlVnVsbldhaXZlcnMsXG4gIHBhcnNlVnVsbldhaXZlcnNWZXJib3NlLFxuICBwbHVnaW5WdWxuRmFpbE9uLFxuICBwbHVnaW5WdWxuR2F0ZUtldixcbiAgcGx1Z2luVnVsbk1heEZpbmRpbmdzLFxuICBTQ0FOX0ZMQUdfVE9QX0ZJTkRJTkdTLFxuICBTQ0FOX1NVTU1BUllfTUFYX0JJTkFSSUVTLFxuICBTQ0FOX1NVTU1BUllfTUFYX0ZJTkRJTkdTLFxuICBzY2FuRmluZGluZ0tleSxcbiAgdnVsbkZsYWdnZWRNZXNzYWdlLFxuICB2dWxuRmxhZ2dlZFdhcm5pbmcsXG4gIHZ1bG5XYWl2ZXJMYWJlbHMsXG4gIHR5cGUgUGx1Z2luU2NhbkZpbmRpbmcsXG4gIHR5cGUgUGx1Z2luU2NhbkZsYWcsXG4gIHR5cGUgUGx1Z2luVnVsbkZhaWxPbixcbiAgdHlwZSBQbHVnaW5TY2FuU3VtbWFyeSxcbiAgdHlwZSBWdWxuRmxhZ2dlZFdhcm5pbmcsXG4gIHR5cGUgVnVsbldhaXZlcixcbiAgdHlwZSBWdWxuV2FpdmVyUGFyc2UsXG4gIHR5cGUgVnVsbldhaXZlclByb2JsZW0sXG4gIHR5cGUgV2FpdmVyT3V0Y29tZSxcbn0gZnJvbSAnLi9wbHVnaW4tc2Nhbi5qcyc7XG4iXX0=
@@ -514,6 +514,12 @@ export declare const METADATA_KEY_CATALOG: {
514
514
  readonly label: 'Pipeline runtime variables (JSON)';
515
515
  readonly type: 'string';
516
516
  };
517
+ readonly RUNTIME_VULN_CHECK: {
518
+ readonly key: 'aws:cdk:operations:runtimevulncheck';
519
+ readonly category: 'Operations';
520
+ readonly label: 'Grade plugin images before each stage runs (report-only)';
521
+ readonly type: 'boolean';
522
+ };
517
523
  readonly KMS_KEY_ARN: {
518
524
  readonly key: 'aws:cdk:encryption:kmskeyarn';
519
525
  readonly category: 'Encryption';
@@ -93,6 +93,9 @@ export const METADATA_KEY_CATALOG = {
93
93
  ENABLE_METRICS: { key: 'aws:cdk:operations:metrics', category: 'Operations', label: 'Enable CloudWatch failure alarms', type: 'boolean' },
94
94
  ARTIFACT_RETENTION_DAYS: { key: 'aws:cdk:operations:artifactretentiondays', category: 'Operations', label: 'Artifact retention in days', type: 'string' },
95
95
  PIPELINE_VARIABLES: { key: 'aws:cdk:operations:variables', category: 'Operations', label: 'Pipeline runtime variables (JSON)', type: 'string' },
96
+ // Adds a report-only verify step per stage that grades the plugin images the
97
+ // pipeline is about to run (POST /plugins/runtime-check) — never a block.
98
+ RUNTIME_VULN_CHECK: { key: 'aws:cdk:operations:runtimevulncheck', category: 'Operations', label: 'Grade plugin images before each stage runs (report-only)', type: 'boolean' },
96
99
  // ── Encryption (namespace: encryption — custom synth in PipelineBuilder) ──
97
100
  KMS_KEY_ARN: { key: 'aws:cdk:encryption:kmskeyarn', category: 'Encryption', label: 'Custom KMS key ARN for artifacts', type: 'string' },
98
101
  };
@@ -114,4 +117,4 @@ export const METADATA_KEY_GROUPS = (() => {
114
117
  }
115
118
  return groups;
116
119
  })();
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEta2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9tZXRhZGF0YS1rZXlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUEwQ3RDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2xDLHlEQUF5RDtJQUN6RCxhQUFhLEVBQUUsRUFBRSxHQUFHLEVBQUUsNkNBQTZDLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7SUFDeEksa0JBQWtCLEVBQUUsRUFBRSxHQUFHLEVBQUUsaURBQWlELEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtJQUN0SixnQ0FBZ0MsRUFBRSxFQUFFLEdBQUcsRUFBRSw2REFBNkQsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxrQ0FBa0MsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0lBQzlMLHdCQUF3QixFQUFFLEVBQUUsR0FBRyxFQUFFLHNEQUFzRCxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLDBCQUEwQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7SUFDdkssbUJBQW1CLEVBQUUsRUFBRSxHQUFHLEVBQUUsa0RBQWtELEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtJQUN6SiwwQkFBMEIsRUFBRSxFQUFFLEdBQUcsRUFBRSx3REFBd0QsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSw0QkFBNEIsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0lBQzdLLGlDQUFpQyxFQUFFLEVBQUUsR0FBRyxFQUFFLDhEQUE4RCxFQUFFLFFBQVEsRUFB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LENBQUM7QUFrQnBHOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFnQyxDQUFDLEdBQUcsRUFBRTtJQUNwRSxNQUFNLE1BQU0sR0FBdUIsRUFBRSxDQUFDO0lBQ3RDLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBZ0MsRUFBRSxDQUFDO1FBQ3ZGLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLEtBQUssR0FBRyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUMvQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFRoZSBwaXBlbGluZSBNRVRBREFUQSBLRVkgY2F0YWxvZyDigJQgdGhlIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIGJvdGhcbiAqIHNpZGVzIG9mIHRoZSBwcm9kdWN0LlxuICpcbiAqIEtleSBmb3JtYXQ6IGBhd3M6Y2RrOntuYW1lc3BhY2V9Ontwcm9wZXJ0eX1gIChhbGwgbG93ZXJjYXNlKS4gVGhlc2UgbWF0Y2ggdGhlXG4gKiBrZXlzIHByb2R1Y2VkIGJ5IGBnZXRDdXN0b21LZXkobmFtZXNwYWNlLCBwcm9wZXJ0eSlgIGFuZCBsb29rZWQgdXAgYnlcbiAqIGBidWlsZENvbmZpZ0Zyb21NZXRhZGF0YWAgaW4gcGlwZWxpbmUtY29yZS5cbiAqXG4gKiBPbmUgdGFibGUgZHJpdmVzIGV2ZXJ5dGhpbmc6IGBNZXRhZGF0YUtleXNgICh0aGUgc3ludGgtdGltZSBjb25zdGFudHNcbiAqIHJlLWV4cG9ydGVkIGJ5IGBAcGlwZWxpbmUtYnVpbGRlci9waXBlbGluZS1jb3JlYCkgYW5kIGBNRVRBREFUQV9LRVlfR1JPVVBTYFxuICogKHRoZSBncm91cGVkIHBpY2tlciB0aGUgcGlwZWxpbmUgZm9ybSBidWlsZGVyIHJlbmRlcnMpIGFyZSBCT1RIIGRlcml2ZWQgZnJvbVxuICogYE1FVEFEQVRBX0tFWV9DQVRBTE9HYCwgc28gYSBrZXkgY2FuIG5ldmVyIGV4aXN0IG9uIG9uZSBzaWRlIG9ubHkuXG4gKlxuICogVGhpcyBtb2R1bGUgaXMgZGVwZW5kZW5jeS1mcmVlIHNvIHRoZSBicm93c2VyIGNhbiBpbXBvcnQgaXQgdGhyb3VnaCB0aGVcbiAqIGBAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZS9tZXRhZGF0YS1rZXlzYCBzdWJwYXRoLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBtZXRhZGF0YSA9IHtcbiAqICAgW01ldGFkYXRhS2V5cy5TRUxGX01VVEFUSU9OXTogdHJ1ZSxcbiAqICAgW01ldGFkYXRhS2V5cy5QVUJMSVNIX0FTU0VUU19JTl9QQVJBTExFTF06IHRydWVcbiAqIH07XG4gKiBgYGBcbiAqL1xuXG4vKiogVGhlIHZhbHVlIHNoYXBlIGEgbWV0YWRhdGEga2V5IGFjY2VwdHMgaW4gdGhlIGZvcm0gYnVpbGRlci4gKi9cbmV4cG9ydCB0eXBlIE1ldGFkYXRhS2V5VHlwZSA9ICdib29sZWFuJyB8ICdzdHJpbmcnO1xuXG4vKiogT25lIGNhdGFsb2cgZW50cnk6IHRoZSB3aXJlIGtleSBwbHVzIGV2ZXJ5dGhpbmcgdGhlIHBpY2tlciBuZWVkcyB0byByZW5kZXIgaXQuICovXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhS2V5RW50cnkge1xuICAvKiogVGhlIGBhd3M6Y2RrOuKApmAga2V5IHdyaXR0ZW4gaW50byBhIHBpcGVsaW5lJ3MgbWV0YWRhdGEuICovXG4gIHJlYWRvbmx5IGtleTogc3RyaW5nO1xuICAvKiogUGlja2VyIGdyb3VwIGhlYWRpbmcuICovXG4gIHJlYWRvbmx5IGNhdGVnb3J5OiBzdHJpbmc7XG4gIC8qKiBIdW1hbiBsYWJlbCBzaG93biBpbiB0aGUgcGlja2VyLiAqL1xuICByZWFkb25seSBsYWJlbDogc3RyaW5nO1xuICAvKiogVmFsdWUgZWRpdG9yIHRvIHJlbmRlci4gKi9cbiAgcmVhZG9ubHkgdHlwZTogTWV0YWRhdGFLZXlUeXBlO1xufVxuXG4vKipcbiAqIEV2ZXJ5IHN1cHBvcnRlZCBtZXRhZGF0YSBrZXksIGtleWVkIGJ5IGl0cyBgTWV0YWRhdGFLZXlzYCBjb25zdGFudCBuYW1lIGFuZFxuICogbGlzdGVkIGluIHBpY2tlciBvcmRlci5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FVEFEQVRBX0tFWV9DQVRBTE9HID0ge1xuICAvLyDilIDilIAgQ29kZVBpcGVsaW5lIChuYW1lc3BhY2U6IHBpcGVsaW5lczpjb2RlcGlwZWxpbmUpIOKUgOKUgFxuICBTRUxGX01VVEFUSU9OOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTpzZWxmbXV0YXRpb24nLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnU2VsZiBNdXRhdGlvbicsIHR5cGU6ICdib29sZWFuJyB9LFxuICBDUk9TU19BQ0NPVU5UX0tFWVM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOmNyb3NzYWNjb3VudGtleXMnLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnQ3Jvc3MgQWNjb3VudCBLZXlzJywgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gIERPQ0tFUl9FTkFCTEVEX0ZPUl9TRUxGX01VVEFUSU9OOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTpkb2NrZXJlbmFibGVkZm9yc2VsZm11dGF0aW9uJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ0RvY2tlciBFbmFibGVkIGZvciBTZWxmIE11dGF0aW9uJywgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gIERPQ0tFUl9FTkFCTEVEX0ZPUl9TWU5USDogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6ZG9ja2VyZW5hYmxlZGZvcnN5bnRoJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ0RvY2tlciBFbmFibGVkIGZvciBTeW50aCcsIHR5cGU6ICdib29sZWFuJyB9LFxuICBFTkFCTEVfS0VZX1JPVEFUSU9OOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTplbmFibGVrZXlyb3RhdGlvbicsIGNhdGVnb3J5OiAnQ29kZVBpcGVsaW5lJywgbGFiZWw6ICdFbmFibGUgS2V5IFJvdGF0aW9uJywgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gIFBVQkxJU0hfQVNTRVRTX0lOX1BBUkFMTEVMOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTpwdWJsaXNoYXNzZXRzaW5wYXJhbGxlbCcsIGNhdGVnb3J5OiAnQ29kZVBpcGVsaW5lJywgbGFiZWw6ICdQdWJsaXNoIEFzc2V0cyBpbiBQYXJhbGxlbCcsIHR5cGU6ICdib29sZWFuJyB9LFxuICBSRVVTRV9DUk9TU19SRUdJT05fU1VQUE9SVF9TVEFDS1M6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOnJldXNlY3Jvc3NyZWdpb25zdXBwb3J0c3RhY2tzJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ1JldXNlIENyb3NzIFJlZ2lvbiBTdXBwb3J0IFN0YWNrcycsIHR5cGU6ICdib29sZWFuJyB9LFxuICBVU0VfQ0hBTkdFX1NFVFM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOnVzZWNoYW5nZXNldHMnLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnVXNlIENoYW5nZSBTZXRzJywgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gIFVTRV9QSVBFTElORV9ST0xFX0ZPUl9BQ1RJT05TOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTp1c2VwaXBlbGluZXJvbGVmb3JhY3Rpb25zJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ1VzZSBQaXBlbGluZSBSb2xlIGZvciBBY3Rpb25zJywgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gIEFSVElGQUNUX0JVQ0tFVDogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6YXJ0aWZhY3RidWNrZXQnLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnQXJ0aWZhY3QgQnVja2V0JywgdHlwZTogJ3N0cmluZycgfSxcbiAgQVNTRVRfUFVCTElTSElOR19DT0RFX0JVSUxEX0RFRkFVTFRTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTphc3NldHB1Ymxpc2hpbmdjb2RlYnVpbGRkZWZhdWx0cycsIGNhdGVnb3J5OiAnQ29kZVBpcGVsaW5lJywgbGFiZWw6ICdBc3NldCBQdWJsaXNoaW5nIENvZGVCdWlsZCBEZWZhdWx0cycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIENES19BU1NFVFNfQ0xJX1ZFUlNJT046IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOmNka2Fzc2V0c2NsaXZlcnNpb24nLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnQ0RLIEFzc2V0cyBDTEkgVmVyc2lvbicsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIENMSV9WRVJTSU9OOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTpjbGl2ZXJzaW9uJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ0NMSSBWZXJzaW9uJywgdHlwZTogJ3N0cmluZycgfSxcbiAgQ09ERV9CVUlMRF9ERUZBVUxUUzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6Y29kZWJ1aWxkZGVmYXVsdHMnLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnQ29kZUJ1aWxkIERlZmF1bHRzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgQ09ERV9QSVBFTElORTogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6Y29kZXBpcGVsaW5lJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ0NvZGVQaXBlbGluZScsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIENST1NTX1JFR0lPTl9SRVBMSUNBVElPTl9CVUNLRVRTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTpjcm9zc3JlZ2lvbnJlcGxpY2F0aW9uYnVja2V0cycsIGNhdGVnb3J5OiAnQ29kZVBpcGVsaW5lJywgbGFiZWw6ICdDcm9zcyBSZWdpb24gUmVwbGljYXRpb24gQnVja2V0cycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIERPQ0tFUl9DUkVERU5USUFMUzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6ZG9ja2VyY3JlZGVudGlhbHMnLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnRG9ja2VyIENyZWRlbnRpYWxzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgUElQRUxJTkVfTkFNRTogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6cGlwZWxpbmVuYW1lJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ1BpcGVsaW5lIE5hbWUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBQSVBFTElORV9UWVBFOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTpwaXBlbGluZXR5cGUnLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnUGlwZWxpbmUgVHlwZScsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFBJUEVMSU5FX1JPTEU6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOnJvbGUnLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnUGlwZWxpbmUgUm9sZScsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFNFTEZfTVVUQVRJT05fQ09ERV9CVUlMRF9ERUZBVUxUUzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6c2VsZm11dGF0aW9uY29kZWJ1aWxkZGVmYXVsdHMnLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnU2VsZiBNdXRhdGlvbiBDb2RlQnVpbGQgRGVmYXVsdHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBTWU5USDogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6c3ludGgnLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnU3ludGgnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBTWU5USF9DT0RFX0JVSUxEX0RFRkFVTFRTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTpzeW50aGNvZGVidWlsZGRlZmF1bHRzJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ1N5bnRoIENvZGVCdWlsZCBEZWZhdWx0cycsIHR5cGU6ICdzdHJpbmcnIH0sXG5cbiAgLy8g4pSA4pSAIENvZGVCdWlsZFN0ZXAgKG5hbWVzcGFjZTogcGlwZWxpbmVzOmNvZGVidWlsZHN0ZXApIOKUgOKUgFxuICBBQ1RJT05fUk9MRTogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOmFjdGlvbnJvbGUnLCBjYXRlZ29yeTogJ0NvZGVCdWlsZFN0ZXAnLCBsYWJlbDogJ0FjdGlvbiBSb2xlJywgdHlwZTogJ3N0cmluZycgfSxcbiAgQURESVRJT05BTF9JTlBVVFM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDphZGRpdGlvbmFsaW5wdXRzJywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdBZGRpdGlvbmFsIElucHV0cycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIEJVSUxEX0VOVklST05NRU5UOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVidWlsZHN0ZXA6YnVpbGRlbnZpcm9ubWVudCcsIGNhdGVnb3J5OiAnQ29kZUJ1aWxkU3RlcCcsIGxhYmVsOiAnQnVpbGQgRW52aXJvbm1lbnQnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBDQUNIRTogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOmNhY2hlJywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdDYWNoZScsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIENPTU1BTkRTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVidWlsZHN0ZXA6Y29tbWFuZHMnLCBjYXRlZ29yeTogJ0NvZGVCdWlsZFN0ZXAnLCBsYWJlbDogJ0NvbW1hbmRzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgQ09ERV9CVUlMRF9FTlY6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDplbnYnLCBjYXRlZ29yeTogJ0NvZGVCdWlsZFN0ZXAnLCBsYWJlbDogJ0Vudmlyb25tZW50JywgdHlwZTogJ3N0cmluZycgfSxcbiAgRU5WX0ZST01fQ0ZOX09VVFBVVFM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDplbnZmcm9tY2Zub3V0cHV0cycsIGNhdGVnb3J5OiAnQ29kZUJ1aWxkU3RlcCcsIGxhYmVsOiAnRW52IGZyb20gQ0ZOIE91dHB1dHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBGSUxFX1NZU1RFTV9MT0NBVElPTlM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDpmaWxlc3lzdGVtbG9jYXRpb25zJywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdGaWxlIFN5c3RlbSBMb2NhdGlvbnMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBJTlBVVDogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOmlucHV0JywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdJbnB1dCcsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIElOU1RBTExfQ09NTUFORFM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDppbnN0YWxsY29tbWFuZHMnLCBjYXRlZ29yeTogJ0NvZGVCdWlsZFN0ZXAnLCBsYWJlbDogJ0luc3RhbGwgQ29tbWFuZHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBMT0dHSU5HOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVidWlsZHN0ZXA6bG9nZ2luZycsIGNhdGVnb3J5OiAnQ29kZUJ1aWxkU3RlcCcsIGxhYmVsOiAnTG9nZ2luZycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFBBUlRJQUxfQlVJTERfU1BFQzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOnBhcnRpYWxidWlsZHNwZWMnLCBjYXRlZ29yeTogJ0NvZGVCdWlsZFN0ZXAnLCBsYWJlbDogJ1BhcnRpYWwgQnVpbGQgU3BlYycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFBSSU1BUllfT1VUUFVUX0RJUkVDVE9SWTogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOnByaW1hcnlvdXRwdXRkaXJlY3RvcnknLCBjYXRlZ29yeTogJ0NvZGVCdWlsZFN0ZXAnLCBsYWJlbDogJ1ByaW1hcnkgT3V0cHV0IERpcmVjdG9yeScsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFBST0pFQ1RfTkFNRTogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOnByb2plY3RuYW1lJywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdQcm9qZWN0IE5hbWUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBTVEVQX1JPTEU6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDpyb2xlJywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdTdGVwIFJvbGUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBST0xFX1BPTElDWV9TVEFURU1FTlRTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVidWlsZHN0ZXA6cm9sZXBvbGljeXN0YXRlbWVudHMnLCBjYXRlZ29yeTogJ0NvZGVCdWlsZFN0ZXAnLCBsYWJlbDogJ1JvbGUgUG9saWN5IFN0YXRlbWVudHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBUSU1FT1VUOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVidWlsZHN0ZXA6dGltZW91dCcsIGNhdGVnb3J5OiAnQ29kZUJ1aWxkU3RlcCcsIGxhYmVsOiAnVGltZW91dCcsIHR5cGU6ICdzdHJpbmcnIH0sXG5cbiAgLy8g4pSA4pSAIFNoZWxsU3RlcCAobmFtZXNwYWNlOiBwaXBlbGluZXM6c2hlbGxzdGVwKSDilIDilIBcbiAgU0hFTExfQURESVRJT05BTF9JTlBVVFM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6c2hlbGxzdGVwOmFkZGl0aW9uYWxpbnB1dHMnLCBjYXRlZ29yeTogJ1NoZWxsU3RlcCcsIGxhYmVsOiAnQWRkaXRpb25hbCBJbnB1dHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBTSEVMTF9DT01NQU5EUzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpzaGVsbHN0ZXA6Y29tbWFuZHMnLCBjYXRlZ29yeTogJ1NoZWxsU3RlcCcsIGxhYmVsOiAnQ29tbWFuZHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBTSEVMTF9FTlY6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6c2hlbGxzdGVwOmVudicsIGNhdGVnb3J5OiAnU2hlbGxTdGVwJywgbGFiZWw6ICdFbnZpcm9ubWVudCcsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFNIRUxMX0VOVl9GUk9NX0NGTl9PVVRQVVRTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOnNoZWxsc3RlcDplbnZmcm9tY2Zub3V0cHV0cycsIGNhdGVnb3J5OiAnU2hlbGxTdGVwJywgbGFiZWw6ICdFbnYgZnJvbSBDRk4gT3V0cHV0cycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFNIRUxMX0lOUFVUOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOnNoZWxsc3RlcDppbnB1dCcsIGNhdGVnb3J5OiAnU2hlbGxTdGVwJywgbGFiZWw6ICdJbnB1dCcsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFNIRUxMX0lOU1RBTExfQ09NTUFORFM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6c2hlbGxzdGVwOmluc3RhbGxjb21tYW5kcycsIGNhdGVnb3J5OiAnU2hlbGxTdGVwJywgbGFiZWw6ICdJbnN0YWxsIENvbW1hbmRzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgU0hFTExfUFJJTUFSWV9PVVRQVVRfRElSRUNUT1JZOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOnNoZWxsc3RlcDpwcmltYXJ5b3V0cHV0ZGlyZWN0b3J5JywgY2F0ZWdvcnk6ICdTaGVsbFN0ZXAnLCBsYWJlbDogJ1ByaW1hcnkgT3V0cHV0IERpcmVjdG9yeScsIHR5cGU6ICdzdHJpbmcnIH0sXG5cbiAgLy8g4pSA4pSAIEJ1aWxkRW52aXJvbm1lbnQgKG5hbWVzcGFjZTogY29kZWJ1aWxkOmJ1aWxkZW52aXJvbm1lbnQpIOKUgOKUgFxuICBQUklWSUxFR0VEOiB7IGtleTogJ2F3czpjZGs6Y29kZWJ1aWxkOmJ1aWxkZW52aXJvbm1lbnQ6cHJpdmlsZWdlZCcsIGNhdGVnb3J5OiAnQnVpbGQgRW52aXJvbm1lbnQnLCBsYWJlbDogJ1ByaXZpbGVnZWQnLCB0eXBlOiAnYm9vbGVhbicgfSxcbiAgQlVJTERfSU1BR0U6IHsga2V5OiAnYXdzOmNkazpjb2RlYnVpbGQ6YnVpbGRlbnZpcm9ubWVudDpidWlsZGltYWdlJywgY2F0ZWdvcnk6ICdCdWlsZCBFbnZpcm9ubWVudCcsIGxhYmVsOiAnQnVpbGQgSW1hZ2UnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBDRVJUSUZJQ0FURTogeyBrZXk6ICdhd3M6Y2RrOmNvZGVidWlsZDpidWlsZGVudmlyb25tZW50OmNlcnRpZmljYXRlJywgY2F0ZWdvcnk6ICdCdWlsZCBFbnZpcm9ubWVudCcsIGxhYmVsOiAnQ2VydGlmaWNhdGUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBDT01QVVRFX1RZUEU6IHsga2V5OiAnYXdzOmNkazpjb2RlYnVpbGQ6YnVpbGRlbnZpcm9ubWVudDpjb21wdXRldHlwZScsIGNhdGVnb3J5OiAnQnVpbGQgRW52aXJvbm1lbnQnLCBsYWJlbDogJ0NvbXB1dGUgVHlwZScsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIERPQ0tFUl9TRVJWRVI6IHsga2V5OiAnYXdzOmNkazpjb2RlYnVpbGQ6YnVpbGRlbnZpcm9ubWVudDpkb2NrZXJzZXJ2ZXInLCBjYXRlZ29yeTogJ0J1aWxkIEVudmlyb25tZW50JywgbGFiZWw6ICdEb2NrZXIgU2VydmVyJywgdHlwZTogJ3N0cmluZycgfSxcbiAgRU5WSVJPTk1FTlRfVkFSSUFCTEVTOiB7IGtleTogJ2F3czpjZGs6Y29kZWJ1aWxkOmJ1aWxkZW52aXJvbm1lbnQ6ZW52aXJvbm1lbnR2YXJpYWJsZXMnLCBjYXRlZ29yeTogJ0J1aWxkIEVudmlyb25tZW50JywgbGFiZWw6ICdFbnZpcm9ubWVudCBWYXJpYWJsZXMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBGTEVFVDogeyBrZXk6ICdhd3M6Y2RrOmNvZGVidWlsZDpidWlsZGVudmlyb25tZW50OmZsZWV0JywgY2F0ZWdvcnk6ICdCdWlsZCBFbnZpcm9ubWVudCcsIGxhYmVsOiAnRmxlZXQnLCB0eXBlOiAnc3RyaW5nJyB9LFxuXG4gIC8vIOKUgOKUgCBOZXR3b3JrIGNvbmZpZ3VyYXRpb24gKG5hbWVzcGFjZTogZWMyOm5ldHdvcmspIOKUgOKUgFxuICBORVRXT1JLX1RZUEU6IHsga2V5OiAnYXdzOmNkazplYzI6bmV0d29yazp0eXBlJywgY2F0ZWdvcnk6ICdOZXR3b3JrJywgbGFiZWw6ICdOZXR3b3JrIFR5cGUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBORVRXT1JLX1ZQQ19JRDogeyBrZXk6ICdhd3M6Y2RrOmVjMjpuZXR3b3JrOnZwY2lkJywgY2F0ZWdvcnk6ICdOZXR3b3JrJywgbGFiZWw6ICdWUEMgSUQnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBORVRXT1JLX1NVQk5FVF9JRFM6IHsga2V5OiAnYXdzOmNkazplYzI6bmV0d29yazpzdWJuZXRpZHMnLCBjYXRlZ29yeTogJ05ldHdvcmsnLCBsYWJlbDogJ1N1Ym5ldCBJRHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBORVRXT1JLX1NVQk5FVF9UWVBFOiB7IGtleTogJ2F3czpjZGs6ZWMyOm5ldHdvcms6c3VibmV0dHlwZScsIGNhdGVnb3J5OiAnTmV0d29yaycsIGxhYmVsOiAnU3VibmV0IFR5cGUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBORVRXT1JLX0FWQUlMQUJJTElUWV9aT05FUzogeyBrZXk6ICdhd3M6Y2RrOmVjMjpuZXR3b3JrOmF2YWlsYWJpbGl0eXpvbmVzJywgY2F0ZWdvcnk6ICdOZXR3b3JrJywgbGFiZWw6ICdBdmFpbGFiaWxpdHkgWm9uZXMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBORVRXT1JLX1NVQk5FVF9HUk9VUF9OQU1FOiB7IGtleTogJ2F3czpjZGs6ZWMyOm5ldHdvcms6c3VibmV0Z3JvdXBuYW1lJywgY2F0ZWdvcnk6ICdOZXR3b3JrJywgbGFiZWw6ICdTdWJuZXQgR3JvdXAgTmFtZScsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIE5FVFdPUktfU0VDVVJJVFlfR1JPVVBfSURTOiB7IGtleTogJ2F3czpjZGs6ZWMyOm5ldHdvcms6c2VjdXJpdHlncm91cGlkcycsIGNhdGVnb3J5OiAnTmV0d29yaycsIGxhYmVsOiAnU2VjdXJpdHkgR3JvdXAgSURzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgTkVUV09SS19UQUdTOiB7IGtleTogJ2F3czpjZGs6ZWMyOm5ldHdvcms6dGFncycsIGNhdGVnb3J5OiAnTmV0d29yaycsIGxhYmVsOiAnVlBDIExvb2t1cCBUYWdzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgTkVUV09SS19WUENfTkFNRTogeyBrZXk6ICdhd3M6Y2RrOmVjMjpuZXR3b3JrOnZwY25hbWUnLCBjYXRlZ29yeTogJ05ldHdvcmsnLCBsYWJlbDogJ1ZQQyBOYW1lJywgdHlwZTogJ3N0cmluZycgfSxcbiAgTkVUV09SS19SRUdJT046IHsga2V5OiAnYXdzOmNkazplYzI6bmV0d29yazpyZWdpb24nLCBjYXRlZ29yeTogJ05ldHdvcmsnLCBsYWJlbDogJ1JlZ2lvbicsIHR5cGU6ICdzdHJpbmcnIH0sXG5cbiAgLy8g4pSA4pSAIElBTSByb2xlIGNvbmZpZ3VyYXRpb24gKG5hbWVzcGFjZTogaWFtOnJvbGUpIOKUgOKUgFxuICBST0xFX1RZUEU6IHsga2V5OiAnYXdzOmNkazppYW06cm9sZTp0eXBlJywgY2F0ZWdvcnk6ICdJQU0gUm9sZScsIGxhYmVsOiAnUm9sZSBUeXBlJywgdHlwZTogJ3N0cmluZycgfSxcbiAgUk9MRV9BUk46IHsga2V5OiAnYXdzOmNkazppYW06cm9sZTpyb2xlYXJuJywgY2F0ZWdvcnk6ICdJQU0gUm9sZScsIGxhYmVsOiAnUm9sZSBBUk4nLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBST0xFX05BTUU6IHsga2V5OiAnYXdzOmNkazppYW06cm9sZTpyb2xlbmFtZScsIGNhdGVnb3J5OiAnSUFNIFJvbGUnLCBsYWJlbDogJ1JvbGUgTmFtZScsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFJPTEVfTVVUQUJMRTogeyBrZXk6ICdhd3M6Y2RrOmlhbTpyb2xlOm11dGFibGUnLCBjYXRlZ29yeTogJ0lBTSBSb2xlJywgbGFiZWw6ICdNdXRhYmxlJywgdHlwZTogJ2Jvb2xlYW4nIH0sXG5cbiAgLy8g4pSA4pSAIFNlY3VyaXR5IGdyb3VwIGNvbmZpZ3VyYXRpb24gKG5hbWVzcGFjZTogZWMyOnNlY3VyaXR5Z3JvdXApIOKUgOKUgFxuICBTRUNVUklUWV9HUk9VUF9UWVBFOiB7IGtleTogJ2F3czpjZGs6ZWMyOnNlY3VyaXR5Z3JvdXA6dHlwZScsIGNhdGVnb3J5OiAnU2VjdXJpdHkgR3JvdXAnLCBsYWJlbDogJ1NlY3VyaXR5IEdyb3VwIFR5cGUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBTRUNVUklUWV9HUk9VUF9JRFM6IHsga2V5OiAnYXdzOmNkazplYzI6c2VjdXJpdHlncm91cDpzZWN1cml0eWdyb3VwaWRzJywgY2F0ZWdvcnk6ICdTZWN1cml0eSBHcm91cCcsIGxhYmVsOiAnU2VjdXJpdHkgR3JvdXAgSURzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgU0VDVVJJVFlfR1JPVVBfTVVUQUJMRTogeyBrZXk6ICdhd3M6Y2RrOmVjMjpzZWN1cml0eWdyb3VwOm11dGFibGUnLCBjYXRlZ29yeTogJ1NlY3VyaXR5IEdyb3VwJywgbGFiZWw6ICdNdXRhYmxlJywgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gIFNFQ1VSSVRZX0dST1VQX05BTUU6IHsga2V5OiAnYXdzOmNkazplYzI6c2VjdXJpdHlncm91cDpzZWN1cml0eWdyb3VwbmFtZScsIGNhdGVnb3J5OiAnU2VjdXJpdHkgR3JvdXAnLCBsYWJlbDogJ1NlY3VyaXR5IEdyb3VwIE5hbWUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBTRUNVUklUWV9HUk9VUF9WUENfSUQ6IHsga2V5OiAnYXdzOmNkazplYzI6c2VjdXJpdHlncm91cDp2cGNpZCcsIGNhdGVnb3J5OiAnU2VjdXJpdHkgR3JvdXAnLCBsYWJlbDogJ1ZQQyBJRCcsIHR5cGU6ICdzdHJpbmcnIH0sXG5cbiAgLy8g4pSA4pSAIE5vdGlmaWNhdGlvbnMgKG5hbWVzcGFjZTogbm90aWZpY2F0aW9ucykg4pSA4pSAXG4gIE5PVElGSUNBVElPTl9UT1BJQ19BUk46IHsga2V5OiAnYXdzOmNkazpub3RpZmljYXRpb25zOnRvcGljOmFybicsIGNhdGVnb3J5OiAnTm90aWZpY2F0aW9ucycsIGxhYmVsOiAnU05TIFRvcGljIEFSTicsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIE5PVElGSUNBVElPTl9FVkVOVFM6IHsga2V5OiAnYXdzOmNkazpub3RpZmljYXRpb25zOmV2ZW50cycsIGNhdGVnb3J5OiAnTm90aWZpY2F0aW9ucycsIGxhYmVsOiAnTm90aWZpY2F0aW9uIEV2ZW50cycsIHR5cGU6ICdzdHJpbmcnIH0sXG5cbiAgLy8g4pSA4pSAIFBpcGVsaW5lIG9wZXJhdGlvbnMgKG5hbWVzcGFjZTogb3BlcmF0aW9ucyDigJQgY3VzdG9tIHN5bnRoIGluIFBpcGVsaW5lQnVpbGRlcikg4pSA4pSAXG4gIEVOQUJMRV9FWEVDVVRJT05fRVZFTlRTOiB7IGtleTogJ2F3czpjZGs6b3BlcmF0aW9uczpleGVjdXRpb25ldmVudHMnLCBjYXRlZ29yeTogJ09wZXJhdGlvbnMnLCBsYWJlbDogJ0VuYWJsZSBleGVjdXRpb24gZXZlbnQgdHJhY2tpbmcnLCB0eXBlOiAnYm9vbGVhbicgfSxcbiAgRU5BQkxFX01FVFJJQ1M6IHsga2V5OiAnYXdzOmNkazpvcGVyYXRpb25zOm1ldHJpY3MnLCBjYXRlZ29yeTogJ09wZXJhdGlvbnMnLCBsYWJlbDogJ0VuYWJsZSBDbG91ZFdhdGNoIGZhaWx1cmUgYWxhcm1zJywgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gIEFSVElGQUNUX1JFVEVOVElPTl9EQVlTOiB7IGtleTogJ2F3czpjZGs6b3BlcmF0aW9uczphcnRpZmFjdHJldGVudGlvbmRheXMnLCBjYXRlZ29yeTogJ09wZXJhdGlvbnMnLCBsYWJlbDogJ0FydGlmYWN0IHJldGVudGlvbiBpbiBkYXlzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgUElQRUxJTkVfVkFSSUFCTEVTOiB7IGtleTogJ2F3czpjZGs6b3BlcmF0aW9uczp2YXJpYWJsZXMnLCBjYXRlZ29yeTogJ09wZXJhdGlvbnMnLCBsYWJlbDogJ1BpcGVsaW5lIHJ1bnRpbWUgdmFyaWFibGVzIChKU09OKScsIHR5cGU6ICdzdHJpbmcnIH0sXG5cbiAgLy8g4pSA4pSAIEVuY3J5cHRpb24gKG5hbWVzcGFjZTogZW5jcnlwdGlvbiDigJQgY3VzdG9tIHN5bnRoIGluIFBpcGVsaW5lQnVpbGRlcikg4pSA4pSAXG4gIEtNU19LRVlfQVJOOiB7IGtleTogJ2F3czpjZGs6ZW5jcnlwdGlvbjprbXNrZXlhcm4nLCBjYXRlZ29yeTogJ0VuY3J5cHRpb24nLCBsYWJlbDogJ0N1c3RvbSBLTVMga2V5IEFSTiBmb3IgYXJ0aWZhY3RzJywgdHlwZTogJ3N0cmluZycgfSxcbn0gYXMgY29uc3Qgc2F0aXNmaWVzIFJlY29yZDxzdHJpbmcsIE1ldGFkYXRhS2V5RW50cnk+O1xuXG4vKiogQ29uc3RhbnQgbmFtZSDihpIgYGF3czpjZGs64oCmYCBrZXksIGZvciB0eXBvLWZyZWUgc3ludGgtdGltZSBhdXRob3JpbmcuICovXG5leHBvcnQgY29uc3QgTWV0YWRhdGFLZXlzID0gT2JqZWN0LmZyZWV6ZShcbiAgT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIE9iamVjdC5lbnRyaWVzKE1FVEFEQVRBX0tFWV9DQVRBTE9HKS5tYXAoKFtuYW1lLCBlbnRyeV0pID0+IFtuYW1lLCBlbnRyeS5rZXldKSxcbiAgKSxcbikgYXMgeyByZWFkb25seSBbSyBpbiBrZXlvZiB0eXBlb2YgTUVUQURBVEFfS0VZX0NBVEFMT0ddOiAodHlwZW9mIE1FVEFEQVRBX0tFWV9DQVRBTE9HKVtLXVsna2V5J10gfTtcblxuLyoqIEFueSBzdXBwb3J0ZWQgbWV0YWRhdGEga2V5LiAqL1xuZXhwb3J0IHR5cGUgTWV0YWRhdGFLZXkgPSAodHlwZW9mIE1ldGFkYXRhS2V5cylba2V5b2YgdHlwZW9mIE1ldGFkYXRhS2V5c107XG5cbi8qKiBPbmUgcGlja2VyIG9wdGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWV0YWRhdGFLZXlPcHRpb24ge1xuICBrZXk6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgdHlwZTogTWV0YWRhdGFLZXlUeXBlO1xufVxuXG4vKiogT25lIHBpY2tlciBncm91cC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWV0YWRhdGFLZXlHcm91cCB7XG4gIGNhdGVnb3J5OiBzdHJpbmc7XG4gIGtleXM6IE1ldGFkYXRhS2V5T3B0aW9uW107XG59XG5cbi8qKlxuICogVGhlIGNhdGFsb2cgZ3JvdXBlZCBieSBjYXRlZ29yeSwgaW4gZGVjbGFyYXRpb24gb3JkZXIg4oCUIHdoYXQgdGhlIHBpcGVsaW5lXG4gKiBmb3JtIGJ1aWxkZXIncyBtZXRhZGF0YSBwaWNrZXIgcmVuZGVycy5cbiAqL1xuZXhwb3J0IGNvbnN0IE1FVEFEQVRBX0tFWV9HUk9VUFM6IHJlYWRvbmx5IE1ldGFkYXRhS2V5R3JvdXBbXSA9ICgoKSA9PiB7XG4gIGNvbnN0IGdyb3VwczogTWV0YWRhdGFLZXlHcm91cFtdID0gW107XG4gIGZvciAoY29uc3QgZW50cnkgb2YgT2JqZWN0LnZhbHVlcyhNRVRBREFUQV9LRVlfQ0FUQUxPRykgYXMgcmVhZG9ubHkgTWV0YWRhdGFLZXlFbnRyeVtdKSB7XG4gICAgbGV0IGdyb3VwID0gZ3JvdXBzLmZpbmQoKGcpID0+IGcuY2F0ZWdvcnkgPT09IGVudHJ5LmNhdGVnb3J5KTtcbiAgICBpZiAoIWdyb3VwKSB7XG4gICAgICBncm91cCA9IHsgY2F0ZWdvcnk6IGVudHJ5LmNhdGVnb3J5LCBrZXlzOiBbXSB9O1xuICAgICAgZ3JvdXBzLnB1c2goZ3JvdXApO1xuICAgIH1cbiAgICBncm91cC5rZXlzLnB1c2goeyBrZXk6IGVudHJ5LmtleSwgbGFiZWw6IGVudHJ5LmxhYmVsLCB0eXBlOiBlbnRyeS50eXBlIH0pO1xuICB9XG4gIHJldHVybiBncm91cHM7XG59KSgpO1xuIl19
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEta2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9tZXRhZGF0YS1rZXlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUEwQ3RDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2xDLHlEQUF5RDtJQUN6RCxhQUFhLEVBQUUsRUFBRSxHQUFHLEVBQUUsNkNBQTZDLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7SUFDeEksa0JBQWtCLEVBQUUsRUFBRSxHQUFHLEVBQUUsaURBQWlELEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtJQUN0SixnQ0FBZ0MsRUFBRSxFQUFFLEdBQUcsRUFBRSw2REFBNkQsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxrQ0FBa0MsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0lBQzlMLHdCQUF3QixFQUFFLEVBQUUsR0FBRyxFQUFFLHNEQUFzRCxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLDBCQUEwQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7SUFDdkssbUJBQW1CLEVBQUUsRUFBRSxHQUFHLEVBQUUsa0RBQWtELEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtJQUN6SiwwQkFBMEIsRUFBRSxFQUFFLEdBQUcsRUFBRSx3REFBd0QsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSw0QkFBNEIsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0lBQzdLLGlDQUFpQyxFQUFFLEVBQUUsR0FBRyxFQUFFLDhEQUE4RCxFQUFFLFFBQVEsRUFB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T0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUMvRSxDQUNnRyxDQUFDO0FBa0JwRzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBZ0MsQ0FBQyxHQUFHLEVBQUU7SUFDcEUsTUFBTSxNQUFNLEdBQXVCLEVBQUUsQ0FBQztJQUN0QyxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQWdDLEVBQUUsQ0FBQztRQUN2RixJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxLQUFLLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDL0MsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixDQUFDO1FBQ0QsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBUaGUgcGlwZWxpbmUgTUVUQURBVEEgS0VZIGNhdGFsb2cg4oCUIHRoZSBzaW5nbGUgc291cmNlIG9mIHRydXRoIGZvciBib3RoXG4gKiBzaWRlcyBvZiB0aGUgcHJvZHVjdC5cbiAqXG4gKiBLZXkgZm9ybWF0OiBgYXdzOmNkazp7bmFtZXNwYWNlfTp7cHJvcGVydHl9YCAoYWxsIGxvd2VyY2FzZSkuIFRoZXNlIG1hdGNoIHRoZVxuICoga2V5cyBwcm9kdWNlZCBieSBgZ2V0Q3VzdG9tS2V5KG5hbWVzcGFjZSwgcHJvcGVydHkpYCBhbmQgbG9va2VkIHVwIGJ5XG4gKiBgYnVpbGRDb25maWdGcm9tTWV0YWRhdGFgIGluIHBpcGVsaW5lLWNvcmUuXG4gKlxuICogT25lIHRhYmxlIGRyaXZlcyBldmVyeXRoaW5nOiBgTWV0YWRhdGFLZXlzYCAodGhlIHN5bnRoLXRpbWUgY29uc3RhbnRzXG4gKiByZS1leHBvcnRlZCBieSBgQHBpcGVsaW5lLWJ1aWxkZXIvcGlwZWxpbmUtY29yZWApIGFuZCBgTUVUQURBVEFfS0VZX0dST1VQU2BcbiAqICh0aGUgZ3JvdXBlZCBwaWNrZXIgdGhlIHBpcGVsaW5lIGZvcm0gYnVpbGRlciByZW5kZXJzKSBhcmUgQk9USCBkZXJpdmVkIGZyb21cbiAqIGBNRVRBREFUQV9LRVlfQ0FUQUxPR2AsIHNvIGEga2V5IGNhbiBuZXZlciBleGlzdCBvbiBvbmUgc2lkZSBvbmx5LlxuICpcbiAqIFRoaXMgbW9kdWxlIGlzIGRlcGVuZGVuY3ktZnJlZSBzbyB0aGUgYnJvd3NlciBjYW4gaW1wb3J0IGl0IHRocm91Z2ggdGhlXG4gKiBgQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUvbWV0YWRhdGEta2V5c2Agc3VicGF0aC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbWV0YWRhdGEgPSB7XG4gKiAgIFtNZXRhZGF0YUtleXMuU0VMRl9NVVRBVElPTl06IHRydWUsXG4gKiAgIFtNZXRhZGF0YUtleXMuUFVCTElTSF9BU1NFVFNfSU5fUEFSQUxMRUxdOiB0cnVlXG4gKiB9O1xuICogYGBgXG4gKi9cblxuLyoqIFRoZSB2YWx1ZSBzaGFwZSBhIG1ldGFkYXRhIGtleSBhY2NlcHRzIGluIHRoZSBmb3JtIGJ1aWxkZXIuICovXG5leHBvcnQgdHlwZSBNZXRhZGF0YUtleVR5cGUgPSAnYm9vbGVhbicgfCAnc3RyaW5nJztcblxuLyoqIE9uZSBjYXRhbG9nIGVudHJ5OiB0aGUgd2lyZSBrZXkgcGx1cyBldmVyeXRoaW5nIHRoZSBwaWNrZXIgbmVlZHMgdG8gcmVuZGVyIGl0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXRhZGF0YUtleUVudHJ5IHtcbiAgLyoqIFRoZSBgYXdzOmNkazrigKZgIGtleSB3cml0dGVuIGludG8gYSBwaXBlbGluZSdzIG1ldGFkYXRhLiAqL1xuICByZWFkb25seSBrZXk6IHN0cmluZztcbiAgLyoqIFBpY2tlciBncm91cCBoZWFkaW5nLiAqL1xuICByZWFkb25seSBjYXRlZ29yeTogc3RyaW5nO1xuICAvKiogSHVtYW4gbGFiZWwgc2hvd24gaW4gdGhlIHBpY2tlci4gKi9cbiAgcmVhZG9ubHkgbGFiZWw6IHN0cmluZztcbiAgLyoqIFZhbHVlIGVkaXRvciB0byByZW5kZXIuICovXG4gIHJlYWRvbmx5IHR5cGU6IE1ldGFkYXRhS2V5VHlwZTtcbn1cblxuLyoqXG4gKiBFdmVyeSBzdXBwb3J0ZWQgbWV0YWRhdGEga2V5LCBrZXllZCBieSBpdHMgYE1ldGFkYXRhS2V5c2AgY29uc3RhbnQgbmFtZSBhbmRcbiAqIGxpc3RlZCBpbiBwaWNrZXIgb3JkZXIuXG4gKi9cbmV4cG9ydCBjb25zdCBNRVRBREFUQV9LRVlfQ0FUQUxPRyA9IHtcbiAgLy8g4pSA4pSAIENvZGVQaXBlbGluZSAobmFtZXNwYWNlOiBwaXBlbGluZXM6Y29kZXBpcGVsaW5lKSDilIDilIBcbiAgU0VMRl9NVVRBVElPTjogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6c2VsZm11dGF0aW9uJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ1NlbGYgTXV0YXRpb24nLCB0eXBlOiAnYm9vbGVhbicgfSxcbiAgQ1JPU1NfQUNDT1VOVF9LRVlTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTpjcm9zc2FjY291bnRrZXlzJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ0Nyb3NzIEFjY291bnQgS2V5cycsIHR5cGU6ICdib29sZWFuJyB9LFxuICBET0NLRVJfRU5BQkxFRF9GT1JfU0VMRl9NVVRBVElPTjogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6ZG9ja2VyZW5hYmxlZGZvcnNlbGZtdXRhdGlvbicsIGNhdGVnb3J5OiAnQ29kZVBpcGVsaW5lJywgbGFiZWw6ICdEb2NrZXIgRW5hYmxlZCBmb3IgU2VsZiBNdXRhdGlvbicsIHR5cGU6ICdib29sZWFuJyB9LFxuICBET0NLRVJfRU5BQkxFRF9GT1JfU1lOVEg6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOmRvY2tlcmVuYWJsZWRmb3JzeW50aCcsIGNhdGVnb3J5OiAnQ29kZVBpcGVsaW5lJywgbGFiZWw6ICdEb2NrZXIgRW5hYmxlZCBmb3IgU3ludGgnLCB0eXBlOiAnYm9vbGVhbicgfSxcbiAgRU5BQkxFX0tFWV9ST1RBVElPTjogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6ZW5hYmxla2V5cm90YXRpb24nLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnRW5hYmxlIEtleSBSb3RhdGlvbicsIHR5cGU6ICdib29sZWFuJyB9LFxuICBQVUJMSVNIX0FTU0VUU19JTl9QQVJBTExFTDogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6cHVibGlzaGFzc2V0c2lucGFyYWxsZWwnLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnUHVibGlzaCBBc3NldHMgaW4gUGFyYWxsZWwnLCB0eXBlOiAnYm9vbGVhbicgfSxcbiAgUkVVU0VfQ1JPU1NfUkVHSU9OX1NVUFBPUlRfU1RBQ0tTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTpyZXVzZWNyb3NzcmVnaW9uc3VwcG9ydHN0YWNrcycsIGNhdGVnb3J5OiAnQ29kZVBpcGVsaW5lJywgbGFiZWw6ICdSZXVzZSBDcm9zcyBSZWdpb24gU3VwcG9ydCBTdGFja3MnLCB0eXBlOiAnYm9vbGVhbicgfSxcbiAgVVNFX0NIQU5HRV9TRVRTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTp1c2VjaGFuZ2VzZXRzJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ1VzZSBDaGFuZ2UgU2V0cycsIHR5cGU6ICdib29sZWFuJyB9LFxuICBVU0VfUElQRUxJTkVfUk9MRV9GT1JfQUNUSU9OUzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6dXNlcGlwZWxpbmVyb2xlZm9yYWN0aW9ucycsIGNhdGVnb3J5OiAnQ29kZVBpcGVsaW5lJywgbGFiZWw6ICdVc2UgUGlwZWxpbmUgUm9sZSBmb3IgQWN0aW9ucycsIHR5cGU6ICdib29sZWFuJyB9LFxuICBBUlRJRkFDVF9CVUNLRVQ6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOmFydGlmYWN0YnVja2V0JywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ0FydGlmYWN0IEJ1Y2tldCcsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIEFTU0VUX1BVQkxJU0hJTkdfQ09ERV9CVUlMRF9ERUZBVUxUUzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6YXNzZXRwdWJsaXNoaW5nY29kZWJ1aWxkZGVmYXVsdHMnLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnQXNzZXQgUHVibGlzaGluZyBDb2RlQnVpbGQgRGVmYXVsdHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBDREtfQVNTRVRTX0NMSV9WRVJTSU9OOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTpjZGthc3NldHNjbGl2ZXJzaW9uJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ0NESyBBc3NldHMgQ0xJIFZlcnNpb24nLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBDTElfVkVSU0lPTjogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6Y2xpdmVyc2lvbicsIGNhdGVnb3J5OiAnQ29kZVBpcGVsaW5lJywgbGFiZWw6ICdDTEkgVmVyc2lvbicsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIENPREVfQlVJTERfREVGQVVMVFM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOmNvZGVidWlsZGRlZmF1bHRzJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ0NvZGVCdWlsZCBEZWZhdWx0cycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIENPREVfUElQRUxJTkU6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOmNvZGVwaXBlbGluZScsIGNhdGVnb3J5OiAnQ29kZVBpcGVsaW5lJywgbGFiZWw6ICdDb2RlUGlwZWxpbmUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBDUk9TU19SRUdJT05fUkVQTElDQVRJT05fQlVDS0VUUzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6Y3Jvc3NyZWdpb25yZXBsaWNhdGlvbmJ1Y2tldHMnLCBjYXRlZ29yeTogJ0NvZGVQaXBlbGluZScsIGxhYmVsOiAnQ3Jvc3MgUmVnaW9uIFJlcGxpY2F0aW9uIEJ1Y2tldHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBET0NLRVJfQ1JFREVOVElBTFM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOmRvY2tlcmNyZWRlbnRpYWxzJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ0RvY2tlciBDcmVkZW50aWFscycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFBJUEVMSU5FX05BTUU6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOnBpcGVsaW5lbmFtZScsIGNhdGVnb3J5OiAnQ29kZVBpcGVsaW5lJywgbGFiZWw6ICdQaXBlbGluZSBOYW1lJywgdHlwZTogJ3N0cmluZycgfSxcbiAgUElQRUxJTkVfVFlQRTogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6cGlwZWxpbmV0eXBlJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ1BpcGVsaW5lIFR5cGUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBQSVBFTElORV9ST0xFOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVwaXBlbGluZTpyb2xlJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ1BpcGVsaW5lIFJvbGUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBTRUxGX01VVEFUSU9OX0NPREVfQlVJTERfREVGQVVMVFM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOnNlbGZtdXRhdGlvbmNvZGVidWlsZGRlZmF1bHRzJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ1NlbGYgTXV0YXRpb24gQ29kZUJ1aWxkIERlZmF1bHRzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgU1lOVEg6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZXBpcGVsaW5lOnN5bnRoJywgY2F0ZWdvcnk6ICdDb2RlUGlwZWxpbmUnLCBsYWJlbDogJ1N5bnRoJywgdHlwZTogJ3N0cmluZycgfSxcbiAgU1lOVEhfQ09ERV9CVUlMRF9ERUZBVUxUUzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlcGlwZWxpbmU6c3ludGhjb2RlYnVpbGRkZWZhdWx0cycsIGNhdGVnb3J5OiAnQ29kZVBpcGVsaW5lJywgbGFiZWw6ICdTeW50aCBDb2RlQnVpbGQgRGVmYXVsdHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuXG4gIC8vIOKUgOKUgCBDb2RlQnVpbGRTdGVwIChuYW1lc3BhY2U6IHBpcGVsaW5lczpjb2RlYnVpbGRzdGVwKSDilIDilIBcbiAgQUNUSU9OX1JPTEU6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDphY3Rpb25yb2xlJywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdBY3Rpb24gUm9sZScsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIEFERElUSU9OQUxfSU5QVVRTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVidWlsZHN0ZXA6YWRkaXRpb25hbGlucHV0cycsIGNhdGVnb3J5OiAnQ29kZUJ1aWxkU3RlcCcsIGxhYmVsOiAnQWRkaXRpb25hbCBJbnB1dHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBCVUlMRF9FTlZJUk9OTUVOVDogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOmJ1aWxkZW52aXJvbm1lbnQnLCBjYXRlZ29yeTogJ0NvZGVCdWlsZFN0ZXAnLCBsYWJlbDogJ0J1aWxkIEVudmlyb25tZW50JywgdHlwZTogJ3N0cmluZycgfSxcbiAgQ0FDSEU6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDpjYWNoZScsIGNhdGVnb3J5OiAnQ29kZUJ1aWxkU3RlcCcsIGxhYmVsOiAnQ2FjaGUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBDT01NQU5EUzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOmNvbW1hbmRzJywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdDb21tYW5kcycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIENPREVfQlVJTERfRU5WOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVidWlsZHN0ZXA6ZW52JywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdFbnZpcm9ubWVudCcsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIEVOVl9GUk9NX0NGTl9PVVRQVVRTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVidWlsZHN0ZXA6ZW52ZnJvbWNmbm91dHB1dHMnLCBjYXRlZ29yeTogJ0NvZGVCdWlsZFN0ZXAnLCBsYWJlbDogJ0VudiBmcm9tIENGTiBPdXRwdXRzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgRklMRV9TWVNURU1fTE9DQVRJT05TOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVidWlsZHN0ZXA6ZmlsZXN5c3RlbWxvY2F0aW9ucycsIGNhdGVnb3J5OiAnQ29kZUJ1aWxkU3RlcCcsIGxhYmVsOiAnRmlsZSBTeXN0ZW0gTG9jYXRpb25zJywgdHlwZTogJ3N0cmluZycgfSxcbiAgSU5QVVQ6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDppbnB1dCcsIGNhdGVnb3J5OiAnQ29kZUJ1aWxkU3RlcCcsIGxhYmVsOiAnSW5wdXQnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBJTlNUQUxMX0NPTU1BTkRTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVidWlsZHN0ZXA6aW5zdGFsbGNvbW1hbmRzJywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdJbnN0YWxsIENvbW1hbmRzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgTE9HR0lORzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOmxvZ2dpbmcnLCBjYXRlZ29yeTogJ0NvZGVCdWlsZFN0ZXAnLCBsYWJlbDogJ0xvZ2dpbmcnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBQQVJUSUFMX0JVSUxEX1NQRUM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDpwYXJ0aWFsYnVpbGRzcGVjJywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdQYXJ0aWFsIEJ1aWxkIFNwZWMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBQUklNQVJZX09VVFBVVF9ESVJFQ1RPUlk6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDpwcmltYXJ5b3V0cHV0ZGlyZWN0b3J5JywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdQcmltYXJ5IE91dHB1dCBEaXJlY3RvcnknLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBQUk9KRUNUX05BTUU6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6Y29kZWJ1aWxkc3RlcDpwcm9qZWN0bmFtZScsIGNhdGVnb3J5OiAnQ29kZUJ1aWxkU3RlcCcsIGxhYmVsOiAnUHJvamVjdCBOYW1lJywgdHlwZTogJ3N0cmluZycgfSxcbiAgU1RFUF9ST0xFOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOmNvZGVidWlsZHN0ZXA6cm9sZScsIGNhdGVnb3J5OiAnQ29kZUJ1aWxkU3RlcCcsIGxhYmVsOiAnU3RlcCBSb2xlJywgdHlwZTogJ3N0cmluZycgfSxcbiAgUk9MRV9QT0xJQ1lfU1RBVEVNRU5UUzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOnJvbGVwb2xpY3lzdGF0ZW1lbnRzJywgY2F0ZWdvcnk6ICdDb2RlQnVpbGRTdGVwJywgbGFiZWw6ICdSb2xlIFBvbGljeSBTdGF0ZW1lbnRzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgVElNRU9VVDogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpjb2RlYnVpbGRzdGVwOnRpbWVvdXQnLCBjYXRlZ29yeTogJ0NvZGVCdWlsZFN0ZXAnLCBsYWJlbDogJ1RpbWVvdXQnLCB0eXBlOiAnc3RyaW5nJyB9LFxuXG4gIC8vIOKUgOKUgCBTaGVsbFN0ZXAgKG5hbWVzcGFjZTogcGlwZWxpbmVzOnNoZWxsc3RlcCkg4pSA4pSAXG4gIFNIRUxMX0FERElUSU9OQUxfSU5QVVRTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOnNoZWxsc3RlcDphZGRpdGlvbmFsaW5wdXRzJywgY2F0ZWdvcnk6ICdTaGVsbFN0ZXAnLCBsYWJlbDogJ0FkZGl0aW9uYWwgSW5wdXRzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgU0hFTExfQ09NTUFORFM6IHsga2V5OiAnYXdzOmNkazpwaXBlbGluZXM6c2hlbGxzdGVwOmNvbW1hbmRzJywgY2F0ZWdvcnk6ICdTaGVsbFN0ZXAnLCBsYWJlbDogJ0NvbW1hbmRzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgU0hFTExfRU5WOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOnNoZWxsc3RlcDplbnYnLCBjYXRlZ29yeTogJ1NoZWxsU3RlcCcsIGxhYmVsOiAnRW52aXJvbm1lbnQnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBTSEVMTF9FTlZfRlJPTV9DRk5fT1VUUFVUUzogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpzaGVsbHN0ZXA6ZW52ZnJvbWNmbm91dHB1dHMnLCBjYXRlZ29yeTogJ1NoZWxsU3RlcCcsIGxhYmVsOiAnRW52IGZyb20gQ0ZOIE91dHB1dHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBTSEVMTF9JTlBVVDogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpzaGVsbHN0ZXA6aW5wdXQnLCBjYXRlZ29yeTogJ1NoZWxsU3RlcCcsIGxhYmVsOiAnSW5wdXQnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBTSEVMTF9JTlNUQUxMX0NPTU1BTkRTOiB7IGtleTogJ2F3czpjZGs6cGlwZWxpbmVzOnNoZWxsc3RlcDppbnN0YWxsY29tbWFuZHMnLCBjYXRlZ29yeTogJ1NoZWxsU3RlcCcsIGxhYmVsOiAnSW5zdGFsbCBDb21tYW5kcycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFNIRUxMX1BSSU1BUllfT1VUUFVUX0RJUkVDVE9SWTogeyBrZXk6ICdhd3M6Y2RrOnBpcGVsaW5lczpzaGVsbHN0ZXA6cHJpbWFyeW91dHB1dGRpcmVjdG9yeScsIGNhdGVnb3J5OiAnU2hlbGxTdGVwJywgbGFiZWw6ICdQcmltYXJ5IE91dHB1dCBEaXJlY3RvcnknLCB0eXBlOiAnc3RyaW5nJyB9LFxuXG4gIC8vIOKUgOKUgCBCdWlsZEVudmlyb25tZW50IChuYW1lc3BhY2U6IGNvZGVidWlsZDpidWlsZGVudmlyb25tZW50KSDilIDilIBcbiAgUFJJVklMRUdFRDogeyBrZXk6ICdhd3M6Y2RrOmNvZGVidWlsZDpidWlsZGVudmlyb25tZW50OnByaXZpbGVnZWQnLCBjYXRlZ29yeTogJ0J1aWxkIEVudmlyb25tZW50JywgbGFiZWw6ICdQcml2aWxlZ2VkJywgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gIEJVSUxEX0lNQUdFOiB7IGtleTogJ2F3czpjZGs6Y29kZWJ1aWxkOmJ1aWxkZW52aXJvbm1lbnQ6YnVpbGRpbWFnZScsIGNhdGVnb3J5OiAnQnVpbGQgRW52aXJvbm1lbnQnLCBsYWJlbDogJ0J1aWxkIEltYWdlJywgdHlwZTogJ3N0cmluZycgfSxcbiAgQ0VSVElGSUNBVEU6IHsga2V5OiAnYXdzOmNkazpjb2RlYnVpbGQ6YnVpbGRlbnZpcm9ubWVudDpjZXJ0aWZpY2F0ZScsIGNhdGVnb3J5OiAnQnVpbGQgRW52aXJvbm1lbnQnLCBsYWJlbDogJ0NlcnRpZmljYXRlJywgdHlwZTogJ3N0cmluZycgfSxcbiAgQ09NUFVURV9UWVBFOiB7IGtleTogJ2F3czpjZGs6Y29kZWJ1aWxkOmJ1aWxkZW52aXJvbm1lbnQ6Y29tcHV0ZXR5cGUnLCBjYXRlZ29yeTogJ0J1aWxkIEVudmlyb25tZW50JywgbGFiZWw6ICdDb21wdXRlIFR5cGUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBET0NLRVJfU0VSVkVSOiB7IGtleTogJ2F3czpjZGs6Y29kZWJ1aWxkOmJ1aWxkZW52aXJvbm1lbnQ6ZG9ja2Vyc2VydmVyJywgY2F0ZWdvcnk6ICdCdWlsZCBFbnZpcm9ubWVudCcsIGxhYmVsOiAnRG9ja2VyIFNlcnZlcicsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIEVOVklST05NRU5UX1ZBUklBQkxFUzogeyBrZXk6ICdhd3M6Y2RrOmNvZGVidWlsZDpidWlsZGVudmlyb25tZW50OmVudmlyb25tZW50dmFyaWFibGVzJywgY2F0ZWdvcnk6ICdCdWlsZCBFbnZpcm9ubWVudCcsIGxhYmVsOiAnRW52aXJvbm1lbnQgVmFyaWFibGVzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgRkxFRVQ6IHsga2V5OiAnYXdzOmNkazpjb2RlYnVpbGQ6YnVpbGRlbnZpcm9ubWVudDpmbGVldCcsIGNhdGVnb3J5OiAnQnVpbGQgRW52aXJvbm1lbnQnLCBsYWJlbDogJ0ZsZWV0JywgdHlwZTogJ3N0cmluZycgfSxcblxuICAvLyDilIDilIAgTmV0d29yayBjb25maWd1cmF0aW9uIChuYW1lc3BhY2U6IGVjMjpuZXR3b3JrKSDilIDilIBcbiAgTkVUV09SS19UWVBFOiB7IGtleTogJ2F3czpjZGs6ZWMyOm5ldHdvcms6dHlwZScsIGNhdGVnb3J5OiAnTmV0d29yaycsIGxhYmVsOiAnTmV0d29yayBUeXBlJywgdHlwZTogJ3N0cmluZycgfSxcbiAgTkVUV09SS19WUENfSUQ6IHsga2V5OiAnYXdzOmNkazplYzI6bmV0d29yazp2cGNpZCcsIGNhdGVnb3J5OiAnTmV0d29yaycsIGxhYmVsOiAnVlBDIElEJywgdHlwZTogJ3N0cmluZycgfSxcbiAgTkVUV09SS19TVUJORVRfSURTOiB7IGtleTogJ2F3czpjZGs6ZWMyOm5ldHdvcms6c3VibmV0aWRzJywgY2F0ZWdvcnk6ICdOZXR3b3JrJywgbGFiZWw6ICdTdWJuZXQgSURzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgTkVUV09SS19TVUJORVRfVFlQRTogeyBrZXk6ICdhd3M6Y2RrOmVjMjpuZXR3b3JrOnN1Ym5ldHR5cGUnLCBjYXRlZ29yeTogJ05ldHdvcmsnLCBsYWJlbDogJ1N1Ym5ldCBUeXBlJywgdHlwZTogJ3N0cmluZycgfSxcbiAgTkVUV09SS19BVkFJTEFCSUxJVFlfWk9ORVM6IHsga2V5OiAnYXdzOmNkazplYzI6bmV0d29yazphdmFpbGFiaWxpdHl6b25lcycsIGNhdGVnb3J5OiAnTmV0d29yaycsIGxhYmVsOiAnQXZhaWxhYmlsaXR5IFpvbmVzJywgdHlwZTogJ3N0cmluZycgfSxcbiAgTkVUV09SS19TVUJORVRfR1JPVVBfTkFNRTogeyBrZXk6ICdhd3M6Y2RrOmVjMjpuZXR3b3JrOnN1Ym5ldGdyb3VwbmFtZScsIGNhdGVnb3J5OiAnTmV0d29yaycsIGxhYmVsOiAnU3VibmV0IEdyb3VwIE5hbWUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBORVRXT1JLX1NFQ1VSSVRZX0dST1VQX0lEUzogeyBrZXk6ICdhd3M6Y2RrOmVjMjpuZXR3b3JrOnNlY3VyaXR5Z3JvdXBpZHMnLCBjYXRlZ29yeTogJ05ldHdvcmsnLCBsYWJlbDogJ1NlY3VyaXR5IEdyb3VwIElEcycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIE5FVFdPUktfVEFHUzogeyBrZXk6ICdhd3M6Y2RrOmVjMjpuZXR3b3JrOnRhZ3MnLCBjYXRlZ29yeTogJ05ldHdvcmsnLCBsYWJlbDogJ1ZQQyBMb29rdXAgVGFncycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIE5FVFdPUktfVlBDX05BTUU6IHsga2V5OiAnYXdzOmNkazplYzI6bmV0d29yazp2cGNuYW1lJywgY2F0ZWdvcnk6ICdOZXR3b3JrJywgbGFiZWw6ICdWUEMgTmFtZScsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIE5FVFdPUktfUkVHSU9OOiB7IGtleTogJ2F3czpjZGs6ZWMyOm5ldHdvcms6cmVnaW9uJywgY2F0ZWdvcnk6ICdOZXR3b3JrJywgbGFiZWw6ICdSZWdpb24nLCB0eXBlOiAnc3RyaW5nJyB9LFxuXG4gIC8vIOKUgOKUgCBJQU0gcm9sZSBjb25maWd1cmF0aW9uIChuYW1lc3BhY2U6IGlhbTpyb2xlKSDilIDilIBcbiAgUk9MRV9UWVBFOiB7IGtleTogJ2F3czpjZGs6aWFtOnJvbGU6dHlwZScsIGNhdGVnb3J5OiAnSUFNIFJvbGUnLCBsYWJlbDogJ1JvbGUgVHlwZScsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFJPTEVfQVJOOiB7IGtleTogJ2F3czpjZGs6aWFtOnJvbGU6cm9sZWFybicsIGNhdGVnb3J5OiAnSUFNIFJvbGUnLCBsYWJlbDogJ1JvbGUgQVJOJywgdHlwZTogJ3N0cmluZycgfSxcbiAgUk9MRV9OQU1FOiB7IGtleTogJ2F3czpjZGs6aWFtOnJvbGU6cm9sZW5hbWUnLCBjYXRlZ29yeTogJ0lBTSBSb2xlJywgbGFiZWw6ICdSb2xlIE5hbWUnLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBST0xFX01VVEFCTEU6IHsga2V5OiAnYXdzOmNkazppYW06cm9sZTptdXRhYmxlJywgY2F0ZWdvcnk6ICdJQU0gUm9sZScsIGxhYmVsOiAnTXV0YWJsZScsIHR5cGU6ICdib29sZWFuJyB9LFxuXG4gIC8vIOKUgOKUgCBTZWN1cml0eSBncm91cCBjb25maWd1cmF0aW9uIChuYW1lc3BhY2U6IGVjMjpzZWN1cml0eWdyb3VwKSDilIDilIBcbiAgU0VDVVJJVFlfR1JPVVBfVFlQRTogeyBrZXk6ICdhd3M6Y2RrOmVjMjpzZWN1cml0eWdyb3VwOnR5cGUnLCBjYXRlZ29yeTogJ1NlY3VyaXR5IEdyb3VwJywgbGFiZWw6ICdTZWN1cml0eSBHcm91cCBUeXBlJywgdHlwZTogJ3N0cmluZycgfSxcbiAgU0VDVVJJVFlfR1JPVVBfSURTOiB7IGtleTogJ2F3czpjZGs6ZWMyOnNlY3VyaXR5Z3JvdXA6c2VjdXJpdHlncm91cGlkcycsIGNhdGVnb3J5OiAnU2VjdXJpdHkgR3JvdXAnLCBsYWJlbDogJ1NlY3VyaXR5IEdyb3VwIElEcycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFNFQ1VSSVRZX0dST1VQX01VVEFCTEU6IHsga2V5OiAnYXdzOmNkazplYzI6c2VjdXJpdHlncm91cDptdXRhYmxlJywgY2F0ZWdvcnk6ICdTZWN1cml0eSBHcm91cCcsIGxhYmVsOiAnTXV0YWJsZScsIHR5cGU6ICdib29sZWFuJyB9LFxuICBTRUNVUklUWV9HUk9VUF9OQU1FOiB7IGtleTogJ2F3czpjZGs6ZWMyOnNlY3VyaXR5Z3JvdXA6c2VjdXJpdHlncm91cG5hbWUnLCBjYXRlZ29yeTogJ1NlY3VyaXR5IEdyb3VwJywgbGFiZWw6ICdTZWN1cml0eSBHcm91cCBOYW1lJywgdHlwZTogJ3N0cmluZycgfSxcbiAgU0VDVVJJVFlfR1JPVVBfVlBDX0lEOiB7IGtleTogJ2F3czpjZGs6ZWMyOnNlY3VyaXR5Z3JvdXA6dnBjaWQnLCBjYXRlZ29yeTogJ1NlY3VyaXR5IEdyb3VwJywgbGFiZWw6ICdWUEMgSUQnLCB0eXBlOiAnc3RyaW5nJyB9LFxuXG4gIC8vIOKUgOKUgCBOb3RpZmljYXRpb25zIChuYW1lc3BhY2U6IG5vdGlmaWNhdGlvbnMpIOKUgOKUgFxuICBOT1RJRklDQVRJT05fVE9QSUNfQVJOOiB7IGtleTogJ2F3czpjZGs6bm90aWZpY2F0aW9uczp0b3BpYzphcm4nLCBjYXRlZ29yeTogJ05vdGlmaWNhdGlvbnMnLCBsYWJlbDogJ1NOUyBUb3BpYyBBUk4nLCB0eXBlOiAnc3RyaW5nJyB9LFxuICBOT1RJRklDQVRJT05fRVZFTlRTOiB7IGtleTogJ2F3czpjZGs6bm90aWZpY2F0aW9uczpldmVudHMnLCBjYXRlZ29yeTogJ05vdGlmaWNhdGlvbnMnLCBsYWJlbDogJ05vdGlmaWNhdGlvbiBFdmVudHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxuXG4gIC8vIOKUgOKUgCBQaXBlbGluZSBvcGVyYXRpb25zIChuYW1lc3BhY2U6IG9wZXJhdGlvbnMg4oCUIGN1c3RvbSBzeW50aCBpbiBQaXBlbGluZUJ1aWxkZXIpIOKUgOKUgFxuICBFTkFCTEVfRVhFQ1VUSU9OX0VWRU5UUzogeyBrZXk6ICdhd3M6Y2RrOm9wZXJhdGlvbnM6ZXhlY3V0aW9uZXZlbnRzJywgY2F0ZWdvcnk6ICdPcGVyYXRpb25zJywgbGFiZWw6ICdFbmFibGUgZXhlY3V0aW9uIGV2ZW50IHRyYWNraW5nJywgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gIEVOQUJMRV9NRVRSSUNTOiB7IGtleTogJ2F3czpjZGs6b3BlcmF0aW9uczptZXRyaWNzJywgY2F0ZWdvcnk6ICdPcGVyYXRpb25zJywgbGFiZWw6ICdFbmFibGUgQ2xvdWRXYXRjaCBmYWlsdXJlIGFsYXJtcycsIHR5cGU6ICdib29sZWFuJyB9LFxuICBBUlRJRkFDVF9SRVRFTlRJT05fREFZUzogeyBrZXk6ICdhd3M6Y2RrOm9wZXJhdGlvbnM6YXJ0aWZhY3RyZXRlbnRpb25kYXlzJywgY2F0ZWdvcnk6ICdPcGVyYXRpb25zJywgbGFiZWw6ICdBcnRpZmFjdCByZXRlbnRpb24gaW4gZGF5cycsIHR5cGU6ICdzdHJpbmcnIH0sXG4gIFBJUEVMSU5FX1ZBUklBQkxFUzogeyBrZXk6ICdhd3M6Y2RrOm9wZXJhdGlvbnM6dmFyaWFibGVzJywgY2F0ZWdvcnk6ICdPcGVyYXRpb25zJywgbGFiZWw6ICdQaXBlbGluZSBydW50aW1lIHZhcmlhYmxlcyAoSlNPTiknLCB0eXBlOiAnc3RyaW5nJyB9LFxuICAvLyBBZGRzIGEgcmVwb3J0LW9ubHkgdmVyaWZ5IHN0ZXAgcGVyIHN0YWdlIHRoYXQgZ3JhZGVzIHRoZSBwbHVnaW4gaW1hZ2VzIHRoZVxuICAvLyBwaXBlbGluZSBpcyBhYm91dCB0byBydW4gKFBPU1QgL3BsdWdpbnMvcnVudGltZS1jaGVjaykg4oCUIG5ldmVyIGEgYmxvY2suXG4gIFJVTlRJTUVfVlVMTl9DSEVDSzogeyBrZXk6ICdhd3M6Y2RrOm9wZXJhdGlvbnM6cnVudGltZXZ1bG5jaGVjaycsIGNhdGVnb3J5OiAnT3BlcmF0aW9ucycsIGxhYmVsOiAnR3JhZGUgcGx1Z2luIGltYWdlcyBiZWZvcmUgZWFjaCBzdGFnZSBydW5zIChyZXBvcnQtb25seSknLCB0eXBlOiAnYm9vbGVhbicgfSxcblxuICAvLyDilIDilIAgRW5jcnlwdGlvbiAobmFtZXNwYWNlOiBlbmNyeXB0aW9uIOKAlCBjdXN0b20gc3ludGggaW4gUGlwZWxpbmVCdWlsZGVyKSDilIDilIBcbiAgS01TX0tFWV9BUk46IHsga2V5OiAnYXdzOmNkazplbmNyeXB0aW9uOmttc2tleWFybicsIGNhdGVnb3J5OiAnRW5jcnlwdGlvbicsIGxhYmVsOiAnQ3VzdG9tIEtNUyBrZXkgQVJOIGZvciBhcnRpZmFjdHMnLCB0eXBlOiAnc3RyaW5nJyB9LFxufSBhcyBjb25zdCBzYXRpc2ZpZXMgUmVjb3JkPHN0cmluZywgTWV0YWRhdGFLZXlFbnRyeT47XG5cbi8qKiBDb25zdGFudCBuYW1lIOKGkiBgYXdzOmNkazrigKZgIGtleSwgZm9yIHR5cG8tZnJlZSBzeW50aC10aW1lIGF1dGhvcmluZy4gKi9cbmV4cG9ydCBjb25zdCBNZXRhZGF0YUtleXMgPSBPYmplY3QuZnJlZXplKFxuICBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgT2JqZWN0LmVudHJpZXMoTUVUQURBVEFfS0VZX0NBVEFMT0cpLm1hcCgoW25hbWUsIGVudHJ5XSkgPT4gW25hbWUsIGVudHJ5LmtleV0pLFxuICApLFxuKSBhcyB7IHJlYWRvbmx5IFtLIGluIGtleW9mIHR5cGVvZiBNRVRBREFUQV9LRVlfQ0FUQUxPR106ICh0eXBlb2YgTUVUQURBVEFfS0VZX0NBVEFMT0cpW0tdWydrZXknXSB9O1xuXG4vKiogQW55IHN1cHBvcnRlZCBtZXRhZGF0YSBrZXkuICovXG5leHBvcnQgdHlwZSBNZXRhZGF0YUtleSA9ICh0eXBlb2YgTWV0YWRhdGFLZXlzKVtrZXlvZiB0eXBlb2YgTWV0YWRhdGFLZXlzXTtcblxuLyoqIE9uZSBwaWNrZXIgb3B0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXRhZGF0YUtleU9wdGlvbiB7XG4gIGtleTogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICB0eXBlOiBNZXRhZGF0YUtleVR5cGU7XG59XG5cbi8qKiBPbmUgcGlja2VyIGdyb3VwLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXRhZGF0YUtleUdyb3VwIHtcbiAgY2F0ZWdvcnk6IHN0cmluZztcbiAga2V5czogTWV0YWRhdGFLZXlPcHRpb25bXTtcbn1cblxuLyoqXG4gKiBUaGUgY2F0YWxvZyBncm91cGVkIGJ5IGNhdGVnb3J5LCBpbiBkZWNsYXJhdGlvbiBvcmRlciDigJQgd2hhdCB0aGUgcGlwZWxpbmVcbiAqIGZvcm0gYnVpbGRlcidzIG1ldGFkYXRhIHBpY2tlciByZW5kZXJzLlxuICovXG5leHBvcnQgY29uc3QgTUVUQURBVEFfS0VZX0dST1VQUzogcmVhZG9ubHkgTWV0YWRhdGFLZXlHcm91cFtdID0gKCgpID0+IHtcbiAgY29uc3QgZ3JvdXBzOiBNZXRhZGF0YUtleUdyb3VwW10gPSBbXTtcbiAgZm9yIChjb25zdCBlbnRyeSBvZiBPYmplY3QudmFsdWVzKE1FVEFEQVRBX0tFWV9DQVRBTE9HKSBhcyByZWFkb25seSBNZXRhZGF0YUtleUVudHJ5W10pIHtcbiAgICBsZXQgZ3JvdXAgPSBncm91cHMuZmluZCgoZykgPT4gZy5jYXRlZ29yeSA9PT0gZW50cnkuY2F0ZWdvcnkpO1xuICAgIGlmICghZ3JvdXApIHtcbiAgICAgIGdyb3VwID0geyBjYXRlZ29yeTogZW50cnkuY2F0ZWdvcnksIGtleXM6IFtdIH07XG4gICAgICBncm91cHMucHVzaChncm91cCk7XG4gICAgfVxuICAgIGdyb3VwLmtleXMucHVzaCh7IGtleTogZW50cnkua2V5LCBsYWJlbDogZW50cnkubGFiZWwsIHR5cGU6IGVudHJ5LnR5cGUgfSk7XG4gIH1cbiAgcmV0dXJuIGdyb3Vwcztcbn0pKCk7XG4iXX0=