@pipeline-builder/api-core 5.2.6 → 5.2.7
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.
- package/lib/constants/ai-providers.js +1 -1
- package/lib/constants/http-status.js +1 -1
- package/lib/constants/index.js +1 -1
- package/lib/constants/time.js +1 -1
- package/lib/errors/app-errors.js +1 -1
- package/lib/errors/index.js +1 -1
- package/lib/helpers/access-helpers.d.ts +19 -0
- package/lib/helpers/access-helpers.js +24 -4
- package/lib/helpers/content-disposition.js +1 -1
- package/lib/helpers/crud-helpers.js +1 -1
- package/lib/helpers/index.d.ts +1 -1
- package/lib/helpers/index.js +2 -2
- package/lib/helpers/org-hierarchy-http.js +1 -1
- package/lib/helpers/org-hierarchy.js +1 -1
- package/lib/helpers/restore-helpers.js +1 -1
- package/lib/helpers/sse-helpers.js +13 -2
- package/lib/helpers/support-calendar.js +1 -1
- package/lib/index.js +1 -1
- package/lib/middleware/ask-provenance.js +1 -1
- package/lib/middleware/assurance.js +1 -1
- package/lib/middleware/auth.js +1 -1
- package/lib/middleware/deferred-quota-check.js +1 -1
- package/lib/middleware/ecosystem-guard.js +1 -1
- package/lib/middleware/index.js +1 -1
- package/lib/middleware/jwt-verify.js +1 -1
- package/lib/middleware/mongo-sanitize.js +1 -1
- package/lib/middleware/on-behalf.js +1 -1
- package/lib/middleware/permission-gates.js +1 -1
- package/lib/middleware/quota-exempt-routes.js +1 -1
- package/lib/middleware/revocation.js +1 -1
- package/lib/middleware/route-table.js +16 -1
- package/lib/middleware/service-tokens.js +1 -1
- package/lib/middleware/step-up.js +1 -1
- package/lib/middleware/system-org.d.ts +18 -5
- package/lib/middleware/system-org.js +19 -6
- package/lib/openapi/extend-zod.js +1 -1
- package/lib/openapi/index.js +1 -1
- package/lib/openapi/registry.js +1 -1
- package/lib/openapi/routes/ask-routes.js +1 -1
- package/lib/openapi/routes/billing-routes.js +1 -1
- package/lib/openapi/routes/image-registry-routes.js +1 -1
- package/lib/openapi/routes/index.js +1 -1
- package/lib/openapi/routes/message-routes.js +1 -1
- package/lib/openapi/routes/pipeline-routes.js +1 -1
- package/lib/openapi/routes/pipeline-template-routes.js +1 -1
- package/lib/openapi/routes/plugin-routes.js +1 -1
- package/lib/openapi/routes/quota-routes.js +1 -1
- package/lib/openapi/schema-registry.js +1 -1
- package/lib/routes/health.js +1 -1
- package/lib/routes/index.js +1 -1
- package/lib/services/ai-call-weight.js +1 -1
- package/lib/services/alert-delivery.js +1 -1
- package/lib/services/api-key-exchange.js +1 -1
- package/lib/services/audit-context.js +1 -1
- package/lib/services/audit-spool.js +1 -1
- package/lib/services/cache-service.js +1 -1
- package/lib/services/circuit-breaker.js +1 -1
- package/lib/services/compliance-client.js +1 -1
- package/lib/services/compliance-event-subscriber.js +1 -1
- package/lib/services/durable-event-bus.js +1 -1
- package/lib/services/ecosystem-notify-client.d.ts +7 -1
- package/lib/services/ecosystem-notify-client.js +9 -3
- package/lib/services/entity-events.js +1 -1
- package/lib/services/env-redis.js +1 -1
- package/lib/services/http-client.js +19 -3
- package/lib/services/index.d.ts +1 -1
- package/lib/services/index.js +2 -2
- package/lib/services/jwks-cache.js +1 -1
- package/lib/services/leader-lock.js +1 -1
- package/lib/services/notification-channels.js +1 -1
- package/lib/services/org-ai-client.js +1 -1
- package/lib/services/pagerduty-inbound.js +1 -1
- package/lib/services/pagerduty.js +1 -1
- package/lib/services/quota-increment-batcher.js +1 -1
- package/lib/services/quota.js +1 -1
- package/lib/services/remote-audit-client.js +1 -1
- package/lib/services/retry-forever.js +1 -1
- package/lib/services/retry-strategy.js +1 -1
- package/lib/services/s3-client.js +1 -1
- package/lib/services/scheduler.js +1 -1
- package/lib/services/service-boot.js +1 -1
- package/lib/services/service-keys.js +2 -2
- package/lib/services/sse-ticket-store.js +1 -1
- package/lib/services/system-notification.js +1 -1
- package/lib/services/token-revocation.js +1 -1
- package/lib/services/version-vuln-policy.d.ts +11 -0
- package/lib/services/version-vuln-policy.js +33 -7
- package/lib/types/ai-catalog.js +1 -1
- package/lib/types/ask-proposals.d.ts +23 -0
- package/lib/types/ask-proposals.js +29 -1
- package/lib/types/audit-events.js +1 -1
- package/lib/types/build-catalog.d.ts +65 -0
- package/lib/types/build-catalog.js +95 -1
- package/lib/types/catalog-metadata.js +1 -1
- package/lib/types/common.js +1 -1
- package/lib/types/compliance-exemption.js +1 -1
- package/lib/types/ecosystem-notifications.d.ts +9 -0
- package/lib/types/ecosystem-notifications.js +15 -6
- package/lib/types/ecosystem.d.ts +1 -6
- package/lib/types/ecosystem.js +18 -5
- package/lib/types/error-codes.js +1 -1
- package/lib/types/feature-flags.d.ts +17 -1
- package/lib/types/feature-flags.js +1 -1
- package/lib/types/http.js +1 -1
- package/lib/types/index.d.ts +3 -3
- package/lib/types/index.js +4 -4
- package/lib/types/metadata-keys.js +1 -1
- package/lib/types/permissions.d.ts +60 -13
- package/lib/types/permissions.js +63 -14
- package/lib/types/pipeline-template.js +1 -1
- package/lib/types/pipeline.js +1 -1
- package/lib/types/plugin-catalog.js +1 -1
- package/lib/types/plugin-health.js +1 -1
- package/lib/types/plugin-scan.d.ts +69 -0
- package/lib/types/plugin-scan.js +77 -1
- package/lib/types/quota-catalog.js +15 -2
- package/lib/types/quota-tiers.d.ts +27 -160
- package/lib/types/quota-tiers.js +47 -255
- package/lib/types/remote-audit-actions.d.ts +1 -1
- package/lib/types/remote-audit-actions.js +9 -1
- package/lib/types/reserved-tags.js +1 -1
- package/lib/types/tier-limits.d.ts +210 -0
- package/lib/types/tier-limits.js +254 -0
- package/lib/types/usage-projection.js +1 -1
- package/lib/types/visibility.js +1 -1
- package/lib/types/wire-vocabulary.d.ts +7 -0
- package/lib/types/wire-vocabulary.js +7 -1
- package/lib/utils/alias-resolver.js +1 -1
- package/lib/utils/api-key.js +1 -1
- package/lib/utils/audit.js +1 -1
- package/lib/utils/aws-scrub.js +1 -1
- package/lib/utils/compliance-attributes.js +1 -1
- package/lib/utils/concurrency-gate.d.ts +98 -0
- package/lib/utils/concurrency-gate.js +110 -0
- package/lib/utils/concurrency.js +1 -1
- package/lib/utils/crash-handlers.js +1 -1
- package/lib/utils/date.js +1 -1
- package/lib/utils/dsse.js +1 -1
- package/lib/utils/env.d.ts +11 -0
- package/lib/utils/env.js +14 -1
- package/lib/utils/headers.js +1 -1
- package/lib/utils/identity.js +1 -1
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.js +2 -1
- package/lib/utils/jwk.js +2 -2
- package/lib/utils/logger.js +1 -1
- package/lib/utils/metric-emitter.js +1 -1
- package/lib/utils/object.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/plugin-compliance.d.ts +9 -1
- package/lib/utils/plugin-compliance.js +1 -1
- package/lib/utils/proof-of-work.js +1 -1
- package/lib/utils/response.js +1 -1
- package/lib/utils/retention.js +1 -1
- package/lib/utils/safe-require.js +1 -1
- package/lib/utils/secret-encryption.js +1 -1
- package/lib/utils/secret-rotation.js +1 -1
- package/lib/utils/secure-compare.js +1 -1
- package/lib/utils/sensitive-patterns.js +1 -1
- package/lib/utils/service-registry.js +1 -1
- package/lib/utils/ssrf.js +1 -1
- package/lib/validation/ai-schemas.js +1 -1
- package/lib/validation/common-schemas.js +1 -1
- package/lib/validation/dockerfile-static.js +1 -1
- package/lib/validation/index.d.ts +1 -1
- package/lib/validation/index.js +2 -2
- package/lib/validation/message-schemas.d.ts +73 -0
- package/lib/validation/message-schemas.js +63 -2
- package/lib/validation/middleware.js +1 -1
- package/lib/validation/pipeline-schemas.js +1 -1
- package/lib/validation/pipeline-template-schemas.js +1 -1
- package/lib/validation/plugin-base-images.js +1 -1
- package/lib/validation/plugin-catalog-detect.js +1 -1
- package/lib/validation/plugin-catalog-metadata.js +1 -1
- package/lib/validation/plugin-heuristics.js +1 -1
- package/lib/validation/plugin-lint.js +1 -1
- package/lib/validation/plugin-name-confusable.js +1 -1
- package/lib/validation/plugin-schemas.js +1 -1
- package/lib/validation/plugin-spec-schema.js +1 -1
- package/lib/validation/plugin-template-contract.js +1 -1
- package/package.json +11 -4
|
@@ -358,4 +358,4 @@ export function recordAudit(event) {
|
|
|
358
358
|
const { client, serviceName } = boundAudit();
|
|
359
359
|
client.record(event, serviceName);
|
|
360
360
|
}
|
|
361
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWF1ZGl0LWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9yZW1vdGUtYXVkaXQtY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSx3QkFBd0IsRUFBeUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNsSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQXVCLE1BQU0sa0JBQWtCLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUF3QixNQUFNLG1DQUFtQyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU1RCxPQUFPLEVBQTBCLE1BQU0sa0NBQWtDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRS9ELE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUU1Qzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0scUJBQXFCLEdBQStEO0lBQ3hGLG1CQUFtQixFQUFFLENBQUM7SUFDdEIsVUFBVSxFQUFFLENBQUM7Q0FDZCxDQUFDO0FBNkVGLHVGQUF1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SyxFQUFFLHdCQUF3QixDQUFDLEVBQUUsR0FBRyxFQUFFLGFBQWEsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLFNBQVM7S0FDL0YsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxZQUE0RCxDQUFDO0FBQ3RFLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsT0FBTyxVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUM7QUFDN0IsQ0FBQztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUF1QjtJQUNqRCxNQUFNLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLFVBQVUsRUFBRSxDQUFDO0lBQzdDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ3BDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgcmFuZG9tVVVJRCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBhdWRpdEF1dGhCbG9jaywgY3VycmVudEF1ZGl0Q29udGV4dCB9IGZyb20gJy4vYXVkaXQtY29udGV4dC5qcyc7XG5pbXBvcnQgeyBhdWRpdFNwb29sS2V5LCBjcmVhdGVFbnZSZWRpc0F1ZGl0U3Bvb2wsIHR5cGUgQXVkaXRTcG9vbCwgdHlwZSBBdWRpdFNwb29sRW50cnkgfSBmcm9tICcuL2F1ZGl0LXNwb29sLmpzJztcbmltcG9ydCB7IGNyZWF0ZVNhZmVDbGllbnQsIHR5cGUgUmVxdWVzdE9wdGlvbnMgfSBmcm9tICcuL2h0dHAtY2xpZW50LmpzJztcbmltcG9ydCB7IHNldEF1dGh6RGVuaWFsQXVkaXRvciwgdHlwZSBBdXRoekRlbmlhbEluZm8gfSBmcm9tICcuLi9taWRkbGV3YXJlL3Blcm1pc3Npb24tZ2F0ZXMuanMnO1xuaW1wb3J0IHsgZ2V0U2VydmljZUF1dGhIZWFkZXIgfSBmcm9tICcuLi9taWRkbGV3YXJlL3NlcnZpY2UtdG9rZW5zLmpzJztcbmltcG9ydCB7IFNZU1RFTV9PUkdfSUQgfSBmcm9tICcuLi9taWRkbGV3YXJlL3N5c3RlbS1vcmcuanMnO1xuaW1wb3J0IHR5cGUgeyBTZXJ2aWNlQ29uZmlnIH0gZnJvbSAnLi4vdHlwZXMvY29tbW9uLmpzJztcbmltcG9ydCB7IHR5cGUgUmVtb3RlQXVkaXRBY3Rpb24gfSBmcm9tICcuLi90eXBlcy9yZW1vdGUtYXVkaXQtYWN0aW9ucy5qcyc7XG5pbXBvcnQgeyBBTk9OWU1PVVNfQUNUT1JfSUQgfSBmcm9tICcuLi91dGlscy9pZGVudGl0eS5qcyc7XG5pbXBvcnQgeyBjcmVhdGVMb2dnZXIgfSBmcm9tICcuLi91dGlscy9sb2dnZXIuanMnO1xuaW1wb3J0IHsgZW1pdENvdW50ZXIgfSBmcm9tICcuLi91dGlscy9tZXRyaWMtZW1pdHRlci5qcyc7XG5pbXBvcnQgeyBlcnJvck1lc3NhZ2UgfSBmcm9tICcuLi91dGlscy9yZXNwb25zZS5qcyc7XG5pbXBvcnQgeyBzZXJ2aWNlRW5kcG9pbnQgfSBmcm9tICcuLi91dGlscy9zZXJ2aWNlLXJlZ2lzdHJ5LmpzJztcblxuY29uc3QgbG9nZ2VyID0gY3JlYXRlTG9nZ2VyKCdyZW1vdGUtYXVkaXQnKTtcblxuLyoqXG4gKiBBdWRpdCBpbmdlc3QgaXMgYmVzdC1lZmZvcnQgYW5kIE1VU1QgTk9UIGJsb2NrIHRoZSBjYWxsZXIsIGJ1dCBhIHRyYW5zaWVudFxuICogZmFpbHVyZSAoNDI5IC8gNXh4IC8gY29ubmVjdGlvbiByZXNldCAvIHRpbWVvdXQpIHNob3VsZCBub3Qgc2lsZW50bHkgZHJvcCB0aGVcbiAqIHJvdyBvbiB0aGUgZmlyc3QgYXR0ZW1wdC4gRWFjaCBlbWlzc2lvbiBjYXJyaWVzIGEgc3RhYmxlIHBlci1ldmVudFxuICogYElkZW1wb3RlbmN5LUtleWAgKHNlZSBgcmVjb3JkYCksIHNvIHRoZSBodHRwLWNsaWVudCB0cmVhdHMgdGhlIFBPU1QgYXNcbiAqIHJldHJ5LXNhZmUgYW5kIHRoZSBwbGF0Zm9ybSBjYW4gZGVkdXAgYSByZXRyaWVkIGRlbGl2ZXJ5IGluc3RlYWQgb2Ygd3JpdGluZyBhXG4gKiBkdXBsaWNhdGUgcm93LiBCdWRnZXQgaXMga2VwdCBzbWFsbCBzbyBhIGhhcmQtZG93biBwbGF0Zm9ybSBjYW4ndCBiYWNrIHRoZVxuICogd29ya2VyIHVwIGZvciBsb25nOiBiYXNlIGRlbGF5IMOXKDIgcmV0cmllcykgKyBhIGNvdXBsZSBvZiA0MjkgYmFja29mZnMuXG4gKi9cbmNvbnN0IEFVRElUX1JFUVVFU1RfT1BUSU9OUzogUGljazxSZXF1ZXN0T3B0aW9ucywgJ21heFJhdGVMaW1pdFJldHJpZXMnIHwgJ21heFJldHJpZXMnPiA9IHtcbiAgbWF4UmF0ZUxpbWl0UmV0cmllczogMixcbiAgbWF4UmV0cmllczogMixcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVtb3RlQXVkaXRFdmVudCB7XG4gIGFjdGlvbjogUmVtb3RlQXVkaXRBY3Rpb247XG4gIGFjdG9ySWQ6IHN0cmluZztcbiAgYWN0b3JFbWFpbD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBvcmcgdGhlIGV2ZW50IGlzIHJlY29yZGVkIEZPUiDigJQgUkVRVUlSRUQuIFRoZSBwbGF0Zm9ybSBpbmdlc3QgYmluZHMgZXZlcnlcbiAgICogZXZlbnQgdG8gdGhlIHNlcnZpY2UgdG9rZW4ncyBvcmcsIGFuZCB0aGUgY2xpZW50IG1pbnRzIHRoYXQgdG9rZW4gd2l0aCB0aGlzXG4gICAqIHZhbHVlLCBzbyBhbiBvcmctbGVzcyBldmVudCBjYW4gbmV2ZXIgYmUgc3RvcmVkIChpdCB1c2VkIHRvIGJlIHJlZnVzZWQgNDAzXG4gICAqIFwibm8gb3JnIGNsYWltXCIgYW5kIHRoZW4gd2VkZ2UgdGhlIHNwb29sKS4gU3lzdGVtIHdvcmsgd2l0aCBubyB0ZW5hbnQgcGFzc2VzXG4gICAqIGBTWVNURU1fT1JHX0lEYCBleHBsaWNpdGx5IOKAlCBlLmcuIGEgcmVnaXN0cnkgR0Mgc3dlZXAuXG4gICAqL1xuICBvcmdJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG9yZyB0aGUgYWN0aW9uIHRvdWNoZWQsIHdoZW4gaXQgaXMgTk9UIGBvcmdJZGAgKHRoZSBzeXN0ZW0gb3JnIGFjdGluZyBvblxuICAgKiBhIHB1Ymxpc2hlcidzIHBsdWdpbiwgYSBzdXBlcmFkbWluIHB1cmdpbmcgYSB0ZW5hbnQncyBwaXBlbGluZSkuIEFjY2VwdGVkXG4gICAqIGNyb3NzLW9yZyBvbmx5IGZyb20gYSBzeXN0ZW0tb3JnIHRva2VuLCBvciB3aGVuIHRoZSBpbmJvdW5kIHByaW5jaXBhbCB3YXMgYVxuICAgKiBzdXBlcmFkbWluIC8gc3lzdGVtLW9yZyBtZW1iZXIgKHNlZSBgYXVkaXRDcm9zc09yZ2AgaW4gdGhlIGluZ2VzdCkuXG4gICAqL1xuICBhZmZlY3RlZE9yZ0lkPzogc3RyaW5nO1xuICB0YXJnZXRUeXBlPzogc3RyaW5nO1xuICB0YXJnZXRJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIERpZCB0aGUgYXVkaXRlZCBhY3Rpb24gc3VjY2VlZCBvciBmYWlsPyBEZWZhdWx0cyB0byAnc3VjY2Vzcycgd2hlbiBvbWl0dGVkXG4gICAqICh0aGUgcGxhdGZvcm0gaW5nZXN0IGFwcGxpZXMgdGhlIHNhbWUgZGVmYXVsdCkuIERlbmllZC1hdXRoeiBldmVudHMgc2V0XG4gICAqICdmYWlsdXJlJyBzbyBhIHJldmlld2VyIGNhbiBmaWx0ZXIgYXR0ZW1wdHMgZnJvbSBjb21wbGV0ZWQgYWN0aW9ucy5cbiAgICovXG4gIG91dGNvbWU/OiAnc3VjY2VzcycgfCAnZmFpbHVyZSc7XG4gIC8qKlxuICAgKiBXaGVuIHRoZSBhdWRpdGVkIGFjdGlvbiBhY3R1YWxseSBPQ0NVUlJFRCAoSVNPLTg2MDEpLCBzdGFtcGVkIGF0IGVtaXNzaW9uLlxuICAgKiBUaGUgcGxhdGZvcm0gc3RvcmVzIHRoaXMgZm9yIHJldmlld2VyczsgaXQgaXMgTk9UIHRoZSBjaGFpbi1vcmRlcmluZyBmaWVsZFxuICAgKiAodGhlIHRhbXBlci1ldmlkZW50IGNoYWluIG9yZGVycyBieSBpbmdlc3QvYGNyZWF0ZWRBdGApLiBJdCBtYXR0ZXJzIGZvclxuICAgKiBTUE9PTEVEIGV2ZW50czogb25lIGJ1ZmZlcmVkIGR1cmluZyBhIHBsYXRmb3JtIG91dGFnZSBpcyByZS1kZWxpdmVyZWQg4oCUIGFuZFxuICAgKiBzbyBjaGFpbmVkIOKAlCBsYXRlciwgYnV0IGBvY2N1cnJlZEF0YCBwcmVzZXJ2ZXMgd2hlbiBpdCByZWFsbHkgaGFwcGVuZWQuXG4gICAqL1xuICBvY2N1cnJlZEF0Pzogc3RyaW5nO1xuICAvKipcbiAgICogU3RhYmxlIHBlci1lbWlzc2lvbiBkZWR1cCBrZXkgKGFsc28gc2VudCBhcyB0aGUgYElkZW1wb3RlbmN5LUtleWAgaGVhZGVyIHRoZVxuICAgKiBwbGF0Zm9ybSBpbmdlc3QgZGVkdXBzIG9uKS4gU3RhbXBlZCBieSBgcmVjb3JkKClgIGFuZCBjYXJyaWVkIG9uIHRoZSBzcG9vbGVkXG4gICAqIGNvcHkgc28gYSBsaXZlIGF0dGVtcHQgYW5kIGl0cyBsYXRlciByZS1kZWxpdmVyeSBjb2xsYXBzZSB0byBPTkUgc3RvcmVkIHJvdy5cbiAgICovXG4gIGlkZW1wb3RlbmN5S2V5Pzogc3RyaW5nO1xuICAvKipcbiAgICogQ29ycmVsYXRpb24gY29udGV4dC4gTm9ybWFsbHkgbGVmdCB1bnNldDogYHJlY29yZCgpYCBmaWxscyBlYWNoIGZyb20gdGhlXG4gICAqIGFtYmllbnQgYXVkaXQgY29udGV4dCAoc2VlIGBydW5XaXRoQXVkaXRDb250ZXh0YCkg4oCUIHRoZSBpbmJvdW5kIHJlcXVlc3QncyBpZCxcbiAgICogdHJhY2UgaWQsIGNsaWVudCBpcCBhbmQgdXNlciBhZ2VudC4gU2V0IG9uZSBvbmx5IHRvIG92ZXJyaWRlIGl0LlxuICAgKlxuICAgKiBBbiBBTk9OWU1PVVMgYWN0b3IgbmV2ZXIgaW5oZXJpdHMgdGhlIGNsaWVudCBpcCAvIHVzZXIgYWdlbnQgZnJvbSBjb250ZXh0OlxuICAgKiB0aG9zZSByb3dzIGFyZSB0aGUgcHVibGljLCB1bmF1dGhlbnRpY2F0ZWQgc3VyZmFjZXMgKHBsdWdpbiBzdWJtaXNzaW9ucyxcbiAgICogcmVwb3J0IHZlcmlmeS91bnN1YnNjcmliZSkgd2hvc2UgY2FsbGVycyBkZWxpYmVyYXRlbHkgcmVjb3JkIG9ubHkgYSBIQVNIRURcbiAgICogaXAvYWRkcmVzcyDigJQgc3RhbXBpbmcgdGhlIHJhdyBpcCBiZXNpZGUgaXQgd291bGQgdW5kbyB0aGF0LiBQYXNzIGBpcGAgL1xuICAgKiBgdXNlckFnZW50YCBleHBsaWNpdGx5IGlmIGFuIGFub255bW91cyByb3cgZ2VudWluZWx5IG5lZWRzIHRoZW0uXG4gICAqL1xuICByZXF1ZXN0SWQ/OiBzdHJpbmc7XG4gIHRyYWNlSWQ/OiBzdHJpbmc7XG4gIGlwPzogc3RyaW5nO1xuICB1c2VyQWdlbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBGcmVlLWZvcm0gZXZlbnQgZGV0YWlsLiBLZWVwIGl0IGZyZWUgb2Ygc2VjcmV0cy90b2tlbnMsIFBJSSBhbmQgQVdTIGFjY291bnRcbiAgICogaWRzLiBUaGUga2V5cyBgX2F1dGhgIGFuZCBgX2NvbnRleHRgIGFyZSBSRVNFUlZFRDogYHJlY29yZCgpYCByZXBsYWNlcyB0aGVtXG4gICAqIHdpdGggdGhlIHZlcmlmaWVkIGNyZWRlbnRpYWwgYmxvY2sgYW5kIHRoZSBjb3JyZWxhdGlvbi9qb2IgaWRzIGZyb20gdGhlXG4gICAqIGFtYmllbnQgYXVkaXQgY29udGV4dCwgd2hhdGV2ZXIgdGhlIGNhbGwgc2l0ZSBwYXNzZWQuXG4gICAqL1xuICBkZXRhaWxzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8qKlxuICogVGhlIGV2ZW50IGFzIGl0IGdvZXMgb3ZlciB0aGUgd2lyZSBhbmQgaW50byB0aGUgc3Bvb2w6IHRoZSBjYWxsLXNpdGUgZXZlbnRcbiAqIHBsdXMgd2hhdCBgcmVjb3JkKClgIHN0YW1wcyBmcm9tIHRoZSBhbWJpZW50IGF1ZGl0IGNvbnRleHQuIGBpbXBlcnNvbmF0b3JJZGAgaXNcbiAqIE5PVCBhIGNhbGwtc2l0ZSBmaWVsZCDigJQgaXQgY29tZXMgb25seSBmcm9tIHRoZSBpbmJvdW5kIHJlcXVlc3QncyB2ZXJpZmllZFxuICogdG9rZW4sIHNvIG5vIHJvdXRlIGNhbiBhdHRyaWJ1dGUgYW4gYWN0aW9uIHRvIGFuIGltcGVyc29uYXRvciBieSBwYXNzaW5nIG9uZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW1vdGVBdWRpdFdpcmVFdmVudCBleHRlbmRzIFJlbW90ZUF1ZGl0RXZlbnQge1xuICBpbXBlcnNvbmF0b3JJZD86IHN0cmluZztcbn1cblxuLyoqIGBkZXRhaWxzYCBrZXlzIG9ubHkgYHJlY29yZCgpYCBtYXkgd3JpdGUgKHNlZSB7QGxpbmsgUmVtb3RlQXVkaXRFdmVudC5kZXRhaWxzfSkuICovXG5jb25zdCBSRVNFUlZFRF9ERVRBSUxfS0VZUyA9IFsnX2F1dGgnLCAnX2NvbnRleHQnXSBhcyBjb25zdDtcblxuLyoqXG4gKiBTdGFtcCBhbiBldmVudCB3aXRoIHRoZSBhbWJpZW50IGF1ZGl0IGNvbnRleHQgYXQgdGhlIG1vbWVudCBpdCBpcyBSRUNPUkRFRC5cbiAqIFBlcnNpc3RlZCBvbiB0aGUgZXZlbnQsIHNvIGEgc3Bvb2xlZCByZS1kZWxpdmVyeSBjYXJyaWVzIHRoZSBvcmlnaW5hbFxuICogcmVxdWVzdCdzIGNvbnRleHQgcmF0aGVyIHRoYW4gd2hhdGV2ZXIgaXMgYW1iaWVudCB3aGVuIHRoZSBkcmFpbiBydW5zLlxuICovXG5mdW5jdGlvbiBzdGFtcEF1ZGl0Q29udGV4dChldmVudDogUmVtb3RlQXVkaXRFdmVudCk6IFJlbW90ZUF1ZGl0V2lyZUV2ZW50IHtcbiAgY29uc3QgY3R4ID0gY3VycmVudEF1ZGl0Q29udGV4dCgpO1xuICBjb25zdCBwcmluY2lwYWwgPSBjdHg/LnByaW5jaXBhbD8uKCk7XG4gIGNvbnN0IGF1dGggPSBhdWRpdEF1dGhCbG9jayhwcmluY2lwYWwpO1xuICBjb25zdCBjb250ZXh0ID0geyAuLi5jdHg/LmNvcnJlbGF0aW9uLCAuLi5jdHg/LmpvYiB9O1xuICBjb25zdCBhbm9ueW1vdXMgPSBldmVudC5hY3RvcklkID09PSBBTk9OWU1PVVNfQUNUT1JfSUQ7XG4gIGNvbnN0IGRldGFpbHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0geyAuLi5ldmVudC5kZXRhaWxzIH07XG4gIGZvciAoY29uc3Qga2V5IG9mIFJFU0VSVkVEX0RFVEFJTF9LRVlTKSBkZWxldGUgZGV0YWlsc1trZXldO1xuICBpZiAoYXV0aCkgZGV0YWlscy5fYXV0aCA9IGF1dGg7XG4gIGlmIChPYmplY3Qua2V5cyhjb250ZXh0KS5sZW5ndGggPiAwKSBkZXRhaWxzLl9jb250ZXh0ID0gY29udGV4dDtcbiAgcmV0dXJuIHtcbiAgICAuLi5ldmVudCxcbiAgICByZXF1ZXN0SWQ6IGV2ZW50LnJlcXVlc3RJZCA/PyBjdHg/LnJlcXVlc3RJZCxcbiAgICB0cmFjZUlkOiBldmVudC50cmFjZUlkID8/IGN0eD8udHJhY2VJZCxcbiAgICBpcDogZXZlbnQuaXAgPz8gKGFub255bW91cyA/IHVuZGVmaW5lZCA6IGN0eD8uaXApLFxuICAgIHVzZXJBZ2VudDogZXZlbnQudXNlckFnZW50ID8/IChhbm9ueW1vdXMgPyB1bmRlZmluZWQgOiBjdHg/LnVzZXJBZ2VudCksXG4gICAgLi4uKHByaW5jaXBhbD8uaW1wZXJzb25hdG9ySWQgPyB7IGltcGVyc29uYXRvcklkOiBwcmluY2lwYWwuaW1wZXJzb25hdG9ySWQgfSA6IHt9KSxcbiAgICAuLi4oT2JqZWN0LmtleXMoZGV0YWlscykubGVuZ3RoID4gMCA/IHsgZGV0YWlscyB9IDogeyBkZXRhaWxzOiB1bmRlZmluZWQgfSksXG4gIH07XG59XG5cbi8qKlxuICogV2hldGhlciB0aGlzIGV2ZW50IG1heSBuYW1lIGFuIGBhZmZlY3RlZE9yZ0lkYCBvdXRzaWRlIGl0cyBvd24gb3JnLiBEZXJpdmVkXG4gKiBPTkxZIGZyb20gdGhlIHN0YW1wZWQgYF9hdXRoYCBibG9jayAodGhlIHZlcmlmaWVkIGluYm91bmQgcHJpbmNpcGFsKSwgd2hpY2hcbiAqIGByZWNvcmQoKWAgYWx3YXlzIG92ZXJ3cml0ZXMg4oCUIGEgY2FsbCBzaXRlIGNhbm5vdCBncmFudCBpdC5cbiAqL1xuZnVuY3Rpb24gY3Jvc3NPcmdBdXRob3JpemVkKGV2ZW50OiBSZW1vdGVBdWRpdFdpcmVFdmVudCk6IGJvb2xlYW4ge1xuICBpZiAoIWV2ZW50LmFmZmVjdGVkT3JnSWQgfHwgZXZlbnQuYWZmZWN0ZWRPcmdJZCA9PT0gZXZlbnQub3JnSWQpIHJldHVybiBmYWxzZTtcbiAgY29uc3QgYXV0aCA9IGV2ZW50LmRldGFpbHM/Ll9hdXRoIGFzIHsgc3VwZXJBZG1pbj86IGJvb2xlYW47IHN5c3RlbU9yZz86IGJvb2xlYW4gfSB8IHVuZGVmaW5lZDtcbiAgcmV0dXJuIGF1dGg/LnN1cGVyQWRtaW4gPT09IHRydWUgfHwgYXV0aD8uc3lzdGVtT3JnID09PSB0cnVlO1xufVxuXG4vKipcbiAqIFJlc3VsdCBvZiBvbmUgZGVsaXZlcnkgYXR0ZW1wdC4gYHJlamVjdGVkYCBpcyBhIFBFUk1BTkVOVCByZWZ1c2FsIChhIDR4eCBvdGhlclxuICogdGhhbiA0MDgvNDI5KTogdGhlIHBsYXRmb3JtIHdpbGwgbmV2ZXIgYWNjZXB0IHRoaXMgZXZlbnQsIHNvIHJldHJ5aW5nIGl0IG9ubHlcbiAqIHdlZGdlcyB0aGUgc3Bvb2wgYmVoaW5kIGl0LlxuICovXG50eXBlIERlbGl2ZXJ5UmVzdWx0ID0geyBraW5kOiAnZGVsaXZlcmVkJyB9IHwgeyBraW5kOiAncmV0cnknIH0gfCB7IGtpbmQ6ICdyZWplY3RlZCc7IHN0YXR1czogbnVtYmVyIH07XG5cbi8qKiA0eHggc3RhdHVzZXMgdGhhdCBhcmUgdHJhbnNpZW50LCBub3QgYSB2ZXJkaWN0IG9uIHRoZSBldmVudC4gKi9cbmNvbnN0IFJFVFJZQUJMRV80WFggPSBuZXcgU2V0KFs0MDgsIDQyOV0pO1xuXG4vKipcbiAqIENsaWVudCBmb3IgUE9TVGluZyBhdWRpdCBldmVudHMgdG8gdGhlIHBsYXRmb3JtJ3MgYC9hdWRpdC1ldmVudHNgIGluZ2VzdFxuICogZW5kcG9pbnQuIE1pbnRzIGEgZnJlc2ggc2VydmljZSB0b2tlbiBwZXIgY2FsbCAoNSBtaW4gVFRMKSAgdGhlcmUncyBub1xuICogbWVhbmluZ2Z1bCBjYWNoaW5nIGJlbmVmaXQgd2hlbiBlbWlzc2lvbnMgYXJlIHNwYXJzZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW1vdGVBdWRpdENsaWVudCB7XG4gIC8qKlxuICAgKiBGaXJlLWFuZC1mb3JnZXQgYXVkaXQgZW1pc3Npb24uIEZhaWx1cmVzIGFyZSBsb2dnZWQgYXQgd2FybiBsZXZlbCBidXRcbiAgICogbmV2ZXIgdGhyb3duICB0aGUgb3JpZ2luYXRpbmcgYWN0aW9uIChlLmcuIGEgcGx1Z2luIGJ1aWxkKSBoYXMgaXRzXG4gICAqIG93biBzdWNjZXNzL2ZhaWx1cmUgcGF0aCB0aGF0IHNob3VsZG4ndCBnZXQgcG9sbHV0ZWQgYnkgYSBmbGFreSBhdWRpdFxuICAgKiBkb3duc3RyZWFtLiBXaGVuIGEge0BsaW5rIEF1ZGl0U3Bvb2x9IGlzIGNvbmZpZ3VyZWQsIGFuIGVtaXNzaW9uIHRoYXRcbiAgICogZXhoYXVzdHMgaXRzIGxpdmUgcmV0cmllcyBpcyBidWZmZXJlZCBhbmQgcmUtZGVsaXZlcmVkIGxhdGVyIGluc3RlYWQgb2ZcbiAgICogYmVpbmcgZHJvcHBlZC5cbiAgICovXG4gIHJlY29yZChldmVudDogUmVtb3RlQXVkaXRFdmVudCwgc2VydmljZU5hbWU6IHN0cmluZyk6IHZvaWQ7XG4gIC8qKiBTdG9wIHRoZSBiYWNrZ3JvdW5kIHNwb29sLWRyYWluIHRpbWVyIChpZiBhbnkpLiBTYWZlIHRvIGNhbGwgcmVwZWF0ZWRseS4gKi9cbiAgY2xvc2UoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciB0aGUgcmVtb3RlIGF1ZGl0IGNsaWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZW1vdGVBdWRpdENsaWVudENvbmZpZyB7XG4gIC8qKiBQbGF0Zm9ybSBzZXJ2aWNlIGhvc3QgKGRlZmF1bHQ6IGVudiBQTEFURk9STV9TRVJWSUNFX0hPU1Qgb3IgJ3BsYXRmb3JtJykgKi9cbiAgaG9zdD86IHN0cmluZztcbiAgLyoqIFBsYXRmb3JtIHNlcnZpY2UgcG9ydCAoZGVmYXVsdDogZW52IFBMQVRGT1JNX1NFUlZJQ0VfUE9SVCBvciAzMDAwKSAqL1xuICBwb3J0PzogbnVtYmVyO1xuICAvKiogUmVxdWVzdCB0aW1lb3V0IG1zIChkZWZhdWx0IDMwMDAgIGF1ZGl0IHNob3VsZG4ndCBibG9jayB0aGUgd29ya2VyKS4gKi9cbiAgdGltZW91dD86IG51bWJlcjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGR1cmFibGUgYnVmZmVyLiBXaGVuIHNldCwgYW4gZW1pc3Npb24gdGhhdCBleGhhdXN0cyBpdHMgbGl2ZSByZXRyeVxuICAgKiBidWRnZXQgKHN1c3RhaW5lZCBwbGF0Zm9ybSBvdXRhZ2UpIGlzIHNwb29sZWQgYW5kIHJlLWRlbGl2ZXJlZCDigJQgb24gdGhlIG5leHRcbiAgICogc3VjY2Vzc2Z1bCBlbWlzc2lvbiBhbmQgb24gYSBwZXJpb2RpYyB0aW1lciDigJQgaW5zdGVhZCBvZiBiZWluZyBsb3N0LlxuICAgKi9cbiAgc3Bvb2w/OiBBdWRpdFNwb29sO1xuICAvKiogU3Bvb2wtZHJhaW4gaW50ZXJ2YWwgbXMgKGRlZmF1bHQgMzBfMDAwKS4gT25seSB1c2VkIHdoZW4gYHNwb29sYCBpcyBzZXQuICovXG4gIGRyYWluSW50ZXJ2YWxNcz86IG51bWJlcjtcbiAgLyoqIE1heCBlbnRyaWVzIGRyYWluZWQgcGVyIHN3ZWVwIChkZWZhdWx0IDEwMCkuICovXG4gIGRyYWluQmF0Y2hTaXplPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIENvbnN0cnVjdCBhIHJlbW90ZS1hdWRpdCBjbGllbnQgdGFyZ2V0ZWQgYXQgdGhlIHBsYXRmb3JtIHNlcnZpY2UuXG4gKlxuICogVXNlZCBieSBhcGkvcGx1Z2luJ3MgYnVpbGQgd29ya2VyIHRvIHB1c2ggYHBsdWdpbi5idWlsZC4qYCBldmVudHMgaW50b1xuICogdGhlIHBsYXRmb3JtJ3MgTW9uZ29EQiBgYXVkaXRfZXZlbnRzYCBjb2xsZWN0aW9uLiBPdGhlciBzZXJ2aWNlc1xuICogd2l0aCB3b3JrZXItc3R5bGUgZW1pdHRlcnMgY2FuIHVzZSB0aGUgc2FtZSBjbGllbnQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGF1ZGl0Q2xpZW50ID0gY3JlYXRlUmVtb3RlQXVkaXRDbGllbnQoKTtcbiAqIGF1ZGl0Q2xpZW50LnJlY29yZCh7XG4gKiBhY3Rpb246ICdwbHVnaW4uYnVpbGQuY29tcGxldGVkJyxcbiAqIGFjdG9ySWQ6ICd1c2VyLTEyMycsXG4gKiBvcmdJZDogJ29yZy1hY21lJyxcbiAqIHRhcmdldFR5cGU6ICdwbHVnaW4nLFxuICogdGFyZ2V0SWQ6ICdwbHVnaW4tYWJjJyxcbiAqIGRldGFpbHM6IHsgbmFtZTogJ215LXBsdWdpbicsIHZlcnNpb246ICcxLjAuMCcgfSxcbiAqIH0sICdwbHVnaW4nKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmVtb3RlQXVkaXRDbGllbnQoY29uZmlnOiBSZW1vdGVBdWRpdENsaWVudENvbmZpZyA9IHt9KTogUmVtb3RlQXVkaXRDbGllbnQge1xuICBjb25zdCBzZXJ2aWNlQ29uZmlnOiBTZXJ2aWNlQ29uZmlnID0ge1xuICAgIGhvc3Q6IGNvbmZpZy5ob3N0ID8/IHNlcnZpY2VFbmRwb2ludCgncGxhdGZvcm0nKS5ob3N0LFxuICAgIHBvcnQ6IGNvbmZpZy5wb3J0ID8/IHNlcnZpY2VFbmRwb2ludCgncGxhdGZvcm0nKS5wb3J0LFxuICAgIHRpbWVvdXQ6IGNvbmZpZy50aW1lb3V0ID8/IDMwMDAsXG4gIH07XG4gIC8vIEl0cyBvd24gYnJlYWtlciByb3V0ZSBjbGFzczogYXVkaXQgaW5nZXN0IGZhaWxpbmcgKDV4eCB3aGlsZSBwbGF0Zm9ybSdzXG4gIC8vIGF1ZGl0IHN0b3JlIGlzIGRlZ3JhZGVkKSBtdXN0IG5vdCBvcGVuIHRoZSBicmVha2VyIHRoYXQgcGxhdGZvcm0ncyBKV0tTIGFuZFxuICAvLyBrZXktZXhjaGFuZ2UgY2FsbHMgcmlkZSBvbiDigJQgdGhhdCB3b3VsZCB0dXJuIGFuIGF1ZGl0IGJyb3dub3V0IGludG8gYW4gYXV0aFxuICAvLyBvdXRhZ2UgaW4gZXZlcnkgc2VydmljZS5cbiAgY29uc3QgY2xpZW50ID0gY3JlYXRlU2FmZUNsaWVudChzZXJ2aWNlQ29uZmlnLCB7IGJyZWFrZXJDbGFzczogJ2F1ZGl0JyB9KTtcbiAgY29uc3Qgc3Bvb2wgPSBjb25maWcuc3Bvb2w7XG4gIGNvbnN0IGRyYWluQmF0Y2hTaXplID0gY29uZmlnLmRyYWluQmF0Y2hTaXplID8/IDEwMDtcblxuICAvKipcbiAgICogQXR0ZW1wdCBPTkUgbGl2ZSBkZWxpdmVyeS4gUmVzb2x2ZXMgYHRydWVgIG9uIGEgMnh4IGFjY2VwdCwgYGZhbHNlYCBvbiBhbnlcbiAgICogbm9uLTJ4eCAvIHRocm93biBlcnJvciAodGhlIGh0dHAtY2xpZW50IGhhcyBhbHJlYWR5IGFwcGxpZWQgdGhlIHJldHJ5XG4gICAqIGJ1ZGdldCkuIEEgc3RhYmxlIHBlci1lbWlzc2lvbiBgSWRlbXBvdGVuY3ktS2V5YCBtYWtlcyB0aGlzIG5vbi1pZGVtcG90ZW50XG4gICAqIFBPU1QgcmV0cnktc2FmZSBhbmQgbGV0cyB0aGUgcGxhdGZvcm0gaW5nZXN0IGRlZHVwIGEgcmUtZGVsaXZlcmVkIGV2ZW50XG4gICAqIGluc3RlYWQgb2Ygd3JpdGluZyBhIGR1cGxpY2F0ZSBhdWRpdCByb3cgKGFuZCBkdXBsaWNhdGUgY2hhaW4gbGluaykuXG4gICAqIGBJZGVtcG90ZW5jeS1LZXlgIGlzIGRlcml2ZWQgZnJvbSB0aGUgZXZlbnQgc28gYSBTUE9PTEVEIHJlLWRlbGl2ZXJ5IHJldXNlc1xuICAgKiB0aGUgc2FtZSBrZXkgYXMgaXRzIG9yaWdpbmFsIGxpdmUgYXR0ZW1wdCDigJQgdGhlIHR3byBjb2xsYXBzZSB0byBvbmUgcm93LlxuICAgKi9cbiAgYXN5bmMgZnVuY3Rpb24gZGVsaXZlcihldmVudDogUmVtb3RlQXVkaXRXaXJlRXZlbnQsIHNlcnZpY2VOYW1lOiBzdHJpbmcpOiBQcm9taXNlPERlbGl2ZXJ5UmVzdWx0PiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIE1pbnRpbmcgdGhlIHRva2VuIGlzIElOU0lERSB0aGUgdHJ5IG9uIHB1cnBvc2UuIEl0IGNhbiB0aHJvdyDigJQgdGhlXG4gICAgICAvLyBzaWduaW5nIGtleSB1bnJlYWRhYmxlLCBub3QgYW4gRUMgUC0yNTYga2V5LCBvciBgU0VSVklDRV9OQU1FYCBub3RcbiAgICAgIC8vIG1hdGNoaW5nIHRoaXMgY2xpZW50J3MgbmFtZS4gT3V0c2lkZSB0aGUgYHRyeWAsIGBkZWxpdmVyYCB3b3VsZCByZWplY3RcbiAgICAgIC8vIGluc3RlYWQgb2YgcmVzb2x2aW5nIGBmYWxzZWA7IGByZWNvcmRgIGZpcmVzIGl0IHdpdGggYSBiYXJlIGAudGhlbmAsIHNvXG4gICAgICAvLyB0aGUgcmVqZWN0aW9uIHdvdWxkIGdvIHVuaGFuZGxlZCBhbmQgY3Jhc2gtbG9vcCB0aGUgcG9kIG9uIGl0cyBmaXJzdFxuICAgICAgLy8gYXVkaXRlZCB3cml0ZS4gSW5zaWRlLCBhIGtleSBwcm9ibGVtIGlzIGp1c3QgYW4gdW5kZWxpdmVyYWJsZSBldmVudDpcbiAgICAgIC8vIHNwb29sZWQsIG9yIGRyb3BwZWQgYW5kIG1ldGVyZWQuXG4gICAgICBjb25zdCBhdXRoSGVhZGVyID0gZ2V0U2VydmljZUF1dGhIZWFkZXIoe1xuICAgICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgICAgb3JnSWQ6IGV2ZW50Lm9yZ0lkLFxuICAgICAgICByb2xlOiAnbWVtYmVyJyxcbiAgICAgICAgLi4uKGNyb3NzT3JnQXV0aG9yaXplZChldmVudCkgPyB7IGF1ZGl0Q3Jvc3NPcmc6IHRydWUgfSA6IHt9KSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICAgJ0F1dGhvcml6YXRpb24nOiBhdXRoSGVhZGVyLFxuICAgICAgICAnSWRlbXBvdGVuY3ktS2V5JzogZXZlbnQuaWRlbXBvdGVuY3lLZXkgPz8gcmFuZG9tVVVJRCgpLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3QoJy9hdWRpdC9ldmVudHMnLCBldmVudCwgeyBoZWFkZXJzLCAuLi5BVURJVF9SRVFVRVNUX09QVElPTlMgfSk7XG4gICAgICBjb25zdCBzdGF0dXMgPSByZXNwb25zZT8uc3RhdHVzQ29kZTtcbiAgICAgIGlmIChzdGF0dXMgIT09IHVuZGVmaW5lZCAmJiBzdGF0dXMgPj0gMjAwICYmIHN0YXR1cyA8IDMwMCkgcmV0dXJuIHsga2luZDogJ2RlbGl2ZXJlZCcgfTtcbiAgICAgIGlmIChzdGF0dXMgIT09IHVuZGVmaW5lZCAmJiBzdGF0dXMgPj0gNDAwICYmIHN0YXR1cyA8IDUwMCAmJiAhUkVUUllBQkxFXzRYWC5oYXMoc3RhdHVzKSkge1xuICAgICAgICByZXR1cm4geyBraW5kOiAncmVqZWN0ZWQnLCBzdGF0dXMgfTtcbiAgICAgIH1cbiAgICAgIGxvZ2dlci53YXJuKCdSZW1vdGUgYXVkaXQgaW5nZXN0IG5vbi1vaycsIHsgYWN0aW9uOiBldmVudC5hY3Rpb24sIHN0YXR1c0NvZGU6IHN0YXR1cyB9KTtcbiAgICAgIHJldHVybiB7IGtpbmQ6ICdyZXRyeScgfTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZ2dlci53YXJuKCdSZW1vdGUgYXVkaXQgaW5nZXN0IHRocmV3JywgeyBhY3Rpb246IGV2ZW50LmFjdGlvbiwgZXJyb3I6IGVycm9yTWVzc2FnZShlcnIpIH0pO1xuICAgICAgcmV0dXJuIHsga2luZDogJ3JldHJ5JyB9O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBIHBlcm1hbmVudGx5IHJlZnVzZWQgZXZlbnQgaXMgRFJPUFBFRCDigJQgbG91ZGx5LiBTcG9vbGluZyBpdCB3b3VsZCBwdXQgaXQgYXRcbiAgICogdGhlIGhlYWQgb2YgdGhlIHF1ZXVlIGZvcmV2ZXIgKHRoZSBkcmFpbiBzdG9wcyBhdCB0aGUgZmlyc3QgZmFpbHVyZSksIHNvIG9uZVxuICAgKiBtYWxmb3JtZWQgZXZlbnQgd291bGQgc2lsZW50bHkgc3RhbGwgZXZlcnkgbGF0ZXIgZXZlbnQgdGhpcyBzZXJ2aWNlIGVtaXRzLlxuICAgKiBgQXVkaXRFdmVudHNSZWplY3RlZGAgcGFnZXMgb24gdGhlIGNvdW50ZXIuXG4gICAqL1xuICBmdW5jdGlvbiByZXBvcnRSZWplY3RlZChldmVudDogUmVtb3RlQXVkaXRXaXJlRXZlbnQsIHNlcnZpY2VOYW1lOiBzdHJpbmcsIHN0YXR1czogbnVtYmVyKTogdm9pZCB7XG4gICAgZW1pdENvdW50ZXIoJ2F1ZGl0X2V2ZW50c19yZWplY3RlZF90b3RhbCcsIHsgc2VydmljZTogc2VydmljZU5hbWUsIHN0YXR1czogU3RyaW5nKHN0YXR1cykgfSk7XG4gICAgbG9nZ2VyLmVycm9yKCdSZW1vdGUgYXVkaXQgZXZlbnQgUkVKRUNURUQgYnkgaW5nZXN0IChkcm9wcGVkLCBub3QgcmV0cmllZCknLCB7XG4gICAgICBhY3Rpb246IGV2ZW50LmFjdGlvbixcbiAgICAgIHN0YXR1c0NvZGU6IHN0YXR1cyxcbiAgICAgIG9yZ0lkOiBldmVudC5vcmdJZCxcbiAgICAgIGFmZmVjdGVkT3JnSWQ6IGV2ZW50LmFmZmVjdGVkT3JnSWQsXG4gICAgICB0YXJnZXRUeXBlOiBldmVudC50YXJnZXRUeXBlLFxuICAgICAgdGFyZ2V0SWQ6IGV2ZW50LnRhcmdldElkLFxuICAgICAgcmVxdWVzdElkOiBldmVudC5yZXF1ZXN0SWQsXG4gICAgfSk7XG4gIH1cblxuICAvLyBTZXJpYWxpemUgc3Bvb2wgZHJhaW5zIHNvIGEgcGVyaW9kaWMgdGljayBhbmQgYW4gb24tc3VjY2VzcyBkcmFpbiBjYW4ndCBib3RoXG4gIC8vIHB1bGwgdGhlIHNhbWUgYmF0Y2guIFN0b3BzIGVhcmx5IHRoZSBtb21lbnQgYSByZS1kZWxpdmVyeSBmYWlscyAocGxhdGZvcm1cbiAgLy8gc3RpbGwgZG93bikgc28gd2UgZG9uJ3QgaGFtbWVyIGl0IG9yIGNodXJuIHRoZSBidWZmZXIuXG4gIGxldCBkcmFpbmluZyA9IGZhbHNlO1xuICBhc3luYyBmdW5jdGlvbiBkcmFpbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXNwb29sIHx8IGRyYWluaW5nKSByZXR1cm47XG4gICAgZHJhaW5pbmcgPSB0cnVlO1xuICAgIHRyeSB7XG4gICAgICBmb3IgKDs7KSB7XG4gICAgICAgIGNvbnN0IGJhdGNoID0gYXdhaXQgc3Bvb2wudGFrZShkcmFpbkJhdGNoU2l6ZSk7XG4gICAgICAgIGlmIChiYXRjaC5sZW5ndGggPT09IDApIHJldHVybjtcbiAgICAgICAgLy8gYHNldHRsZWRgID0gZGVsaXZlcmVkIE9SIHBlcm1hbmVudGx5IHJlamVjdGVkOiBlaXRoZXIgd2F5IGl0IGxlYXZlcyB0aGVcbiAgICAgICAgLy8gc3Bvb2wuIE9ubHkgYSByZXRyeWFibGUgZmFpbHVyZSBzdG9wcyB0aGUgc3dlZXAgYW5kIGdvZXMgYmFjay5cbiAgICAgICAgY29uc3Qgc2V0dGxlZDogQXVkaXRTcG9vbEVudHJ5W10gPSBbXTtcbiAgICAgICAgY29uc3QgZmFpbGVkOiBBdWRpdFNwb29sRW50cnlbXSA9IFtdO1xuICAgICAgICBsZXQgcGxhdGZvcm1Eb3duID0gZmFsc2U7XG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgYmF0Y2gpIHtcbiAgICAgICAgICBpZiAocGxhdGZvcm1Eb3duKSB7IGZhaWxlZC5wdXNoKGVudHJ5KTsgY29udGludWU7IH1cbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBkZWxpdmVyKGVudHJ5LmV2ZW50LCBlbnRyeS5zZXJ2aWNlTmFtZSk7XG4gICAgICAgICAgaWYgKHJlc3VsdC5raW5kID09PSAnZGVsaXZlcmVkJykge1xuICAgICAgICAgICAgc2V0dGxlZC5wdXNoKGVudHJ5KTtcbiAgICAgICAgICAgIGVtaXRDb3VudGVyKCdhdWRpdF9zcG9vbF9yZWRlbGl2ZXJlZF90b3RhbCcsIHsgc2VydmljZTogZW50cnkuc2VydmljZU5hbWUgfSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQua2luZCA9PT0gJ3JlamVjdGVkJykge1xuICAgICAgICAgICAgc2V0dGxlZC5wdXNoKGVudHJ5KTtcbiAgICAgICAgICAgIHJlcG9ydFJlamVjdGVkKGVudHJ5LmV2ZW50LCBlbnRyeS5zZXJ2aWNlTmFtZSwgcmVzdWx0LnN0YXR1cyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBsYXRmb3JtRG93biA9IHRydWU7XG4gICAgICAgICAgICBmYWlsZWQucHVzaChlbnRyeSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIEFja25vd2xlZGdlIHRoZSBzZXR0bGVkIGVudHJpZXMgc28gdGhleSBjbGVhciB0aGUgaW4tcHJvZ3Jlc3MgbGlzdDsgdGhlXG4gICAgICAgIC8vIHJlbGlhYmxlIHRha2UoKSBtb3ZlZCB0aGUgd2hvbGUgYmF0Y2ggdGhlcmUsIHNvIHVuYWNrZWQgc3Vydml2b3JzIGFyZVxuICAgICAgICAvLyByZWNsYWltZWQgYnkgcmVjb3ZlcigpIGFmdGVyIGEgY3Jhc2ggcmF0aGVyIHRoYW4gYmVpbmcgc2lsZW50bHkgbG9zdC5cbiAgICAgICAgaWYgKHNldHRsZWQubGVuZ3RoID4gMCkgYXdhaXQgc3Bvb2wuYWNrKHNldHRsZWQpO1xuICAgICAgICBpZiAoZmFpbGVkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBhd2FpdCBzcG9vbC5yZXF1ZXVlKGZhaWxlZCk7XG4gICAgICAgICAgcmV0dXJuOyAvLyBzdGlsbCBkb3duIOKAlCB0cnkgYWdhaW4gb24gdGhlIG5leHQgdGlja1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBsb2dnZXIud2FybignQXVkaXQgc3Bvb2wgZHJhaW4gZmFpbGVkJywgeyBlcnJvcjogZXJyb3JNZXNzYWdlKGVycikgfSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGRyYWluaW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgbGV0IGRyYWluVGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldEludGVydmFsPiB8IHVuZGVmaW5lZDtcbiAgaWYgKHNwb29sKSB7XG4gICAgLy8gUmVjbGFpbSBhbnkgYmF0Y2ggc3RyYW5kZWQgb24gdGhlIGluLXByb2dyZXNzIGxpc3QgYnkgYSBwcmlvciBjcmFzaCwgdGhlblxuICAgIC8vIGF0dGVtcHQgdG8gZmx1c2ggaXQuIEJvdGggYXJlIGJlc3QtZWZmb3J0ICh0aGUgc3Bvb2wgc3dhbGxvd3MgaXRzIGVycm9ycykuXG4gICAgdm9pZCBzcG9vbC5yZWNvdmVyKCkudGhlbigoKSA9PiBkcmFpbigpKTtcbiAgICAvLyBFdmVyeSB0aWNrOiBoZWFydGJlYXQgKHNvIHBlZXJzIG5ldmVyIHJlY2xhaW0gYSBiYXRjaCB0aGlzIHBvZCBpcyBzdGlsbFxuICAgIC8vIGRlbGl2ZXJpbmcg4oCUIGV2ZW4gbWlkLWRyYWluKSwgcmVjbGFpbSBiYXRjaGVzIG9mIHBvZHMgdGhhdCBkaWVkLCBkcmFpbi5cbiAgICBkcmFpblRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgdm9pZCBzcG9vbC5oZWFydGJlYXQoKS50aGVuKCgpID0+IHNwb29sLnJlY292ZXIoKSkudGhlbigoKSA9PiBkcmFpbigpKTtcbiAgICB9LCBjb25maWcuZHJhaW5JbnRlcnZhbE1zID8/IDMwXzAwMCk7XG4gICAgLy8gRG9uJ3QgbGV0IHRoZSBkcmFpbiB0aW1lciBrZWVwIHRoZSBwcm9jZXNzIGFsaXZlIG9uIHNodXRkb3duLlxuICAgIChkcmFpblRpbWVyIGFzIHVua25vd24gYXMgeyB1bnJlZj86ICgpID0+IHZvaWQgfSkudW5yZWY/LigpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICByZWNvcmQoZXZlbnQsIHNlcnZpY2VOYW1lKSB7XG4gICAgICAvLyBTdGFtcCB0aGUgYW1iaWVudCByZXF1ZXN0L2pvYiBjb250ZXh0IGFuZCB3aGVuIHRoZSBhY3Rpb24gYWN0dWFsbHlcbiAgICAgIC8vIG9jY3VycmVkIChhbGwgc3Vydml2ZSBzcG9vbCBkZWxheSksIGFuZCBwaW4gYSBzdGFibGUgaWRlbXBvdGVuY3kga2V5IHNvIGFcbiAgICAgIC8vIGxpdmUgYXR0ZW1wdCBhbmQgaXRzIHNwb29sZWQgcmV0cnkgZGVkdXAuXG4gICAgICBjb25zdCBzdGFtcGVkOiBSZW1vdGVBdWRpdFdpcmVFdmVudCA9IHtcbiAgICAgICAgLi4uc3RhbXBBdWRpdENvbnRleHQoZXZlbnQpLFxuICAgICAgICBvY2N1cnJlZEF0OiBldmVudC5vY2N1cnJlZEF0ID8/IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgaWRlbXBvdGVuY3lLZXk6IGV2ZW50LmlkZW1wb3RlbmN5S2V5ID8/IHJhbmRvbVVVSUQoKSxcbiAgICAgIH07XG4gICAgICB2b2lkIGRlbGl2ZXIoc3RhbXBlZCwgc2VydmljZU5hbWUpLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LmtpbmQgPT09ICdkZWxpdmVyZWQnKSB7XG4gICAgICAgICAgZW1pdENvdW50ZXIoJ2F1ZGl0X2VtaXR0ZWRfdG90YWwnLCB7IHNlcnZpY2U6IHNlcnZpY2VOYW1lLCBvdXRjb21lOiBzdGFtcGVkLm91dGNvbWUgPz8gJ3N1Y2Nlc3MnIH0pO1xuICAgICAgICAgIGlmIChzcG9vbCkgdm9pZCBkcmFpbigpOyAvLyBwbGF0Zm9ybSBpcyByZWFjaGFibGUg4oCUIGZsdXNoIGFueSBiYWNrbG9nXG4gICAgICAgIH0gZWxzZSBpZiAocmVzdWx0LmtpbmQgPT09ICdyZWplY3RlZCcpIHtcbiAgICAgICAgICByZXBvcnRSZWplY3RlZChzdGFtcGVkLCBzZXJ2aWNlTmFtZSwgcmVzdWx0LnN0YXR1cyk7XG4gICAgICAgIH0gZWxzZSBpZiAoc3Bvb2wpIHtcbiAgICAgICAgICB2b2lkIHNwb29sLmVucXVldWUoeyBldmVudDogc3RhbXBlZCwgc2VydmljZU5hbWUgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZW1pdENvdW50ZXIoJ2F1ZGl0X2Ryb3BwZWRfdG90YWwnLCB7IHNlcnZpY2U6IHNlcnZpY2VOYW1lIH0pO1xuICAgICAgICB9XG4gICAgICB9KS5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgIC8vIEJlbHQgYW5kIGJyYWNlcy4gYGRlbGl2ZXJgIG5ldmVyIHJlamVjdHMsIGJ1dCBhbnl0aGluZyB0aGF0IHRocm93c1xuICAgICAgICAvLyBpbiB0aGUgY29udGludWF0aW9uIHdvdWxkIG90aGVyd2lzZSBiZWNvbWUgYW4gdW5oYW5kbGVkIHJlamVjdGlvbiDigJRcbiAgICAgICAgLy8gYW5kIGluIHRoaXMgcHJvY2VzcyB0aGF0IGlzIGEgY3Jhc2gsIG5vdCBhIGxvZyBsaW5lLiBBbiBhdWRpdCBldmVudFxuICAgICAgICAvLyBtdXN0IG5ldmVyIHRha2UgdGhlIHNlcnZpY2UgZG93bi5cbiAgICAgICAgZW1pdENvdW50ZXIoJ2F1ZGl0X2Ryb3BwZWRfdG90YWwnLCB7IHNlcnZpY2U6IHNlcnZpY2VOYW1lIH0pO1xuICAgICAgICBsb2dnZXIuZXJyb3IoJ1JlbW90ZSBhdWRpdCByZWNvcmQgZmFpbGVkIHVuZXhwZWN0ZWRseScsIHsgYWN0aW9uOiBzdGFtcGVkLmFjdGlvbiwgZXJyb3I6IGVycm9yTWVzc2FnZShlcnIpIH0pO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBjbG9zZSgpIHtcbiAgICAgIGlmIChkcmFpblRpbWVyKSB7IGNsZWFySW50ZXJ2YWwoZHJhaW5UaW1lcik7IGRyYWluVGltZXIgPSB1bmRlZmluZWQ7IH1cbiAgICB9LFxuICB9O1xufVxuXG4vKipcbiAqIFJlZ2lzdGVyIHRoZSBzdGFuZGFyZCBgYXV0aHouZGVuaWVkYCBzaW5rIHVzZWQgYnkgZXZlcnkgcmVtb3RlLWF1ZGl0IHNlcnZpY2VcbiAqIChwaXBlbGluZSwgcGx1Z2luLCBjb21wbGlhbmNlLCBxdW90YSwgbWVzc2FnZSwgYmlsbGluZywgcmVwb3J0aW5nLCDigKYpLlxuICpcbiAqIFRoZSBzaGFyZWQgYHJlcXVpcmVBdXRoYCBnYXRlIGZvcndhcmRzIGVhY2ggREVOSUVEIHN0YXRlLWNoYW5naW5nIHJlcXVlc3QgdG9cbiAqIHRoZSBhdWRpdG9yIHNldCB2aWEge0BsaW5rIHNldEF1dGh6RGVuaWFsQXVkaXRvcn07IHRoaXMgd2lyZXMgdGhhdCBob29rIHRvIHRoZVxuICogc2VydmljZSdzIHtAbGluayBSZW1vdGVBdWRpdENsaWVudH0sIGZvcndhcmRpbmcgYSBgZmFpbHVyZWAtb3V0Y29tZVxuICogYGF1dGh6LmRlbmllZGAgZXZlbnQgc28gcHJvYmluZyAvIHByaXZpbGVnZS1lc2NhbGF0aW9uIGF0dGVtcHRzIGxlYXZlIGEgdHJhaWwuXG4gKiBFbWlzc2lvbiBpcyBmaXJlLWFuZC1mb3JnZXQgKHRoZSBjbGllbnQgbmV2ZXIgdGhyb3dzKS4gYGdldENsaWVudGAgaXMgYSBnZXR0ZXJcbiAqIHNvIHRoZSBjbGllbnQgc3RheXMgbGF6aWx5IGNvbnN0cnVjdGVkIChzZXJ2aWNlcyBtZW1vaXplIGl0IG9uIGZpcnN0IHVzZSkuXG4gKlxuICogUGxhdGZvcm0gaXMgaW50ZW50aW9uYWxseSBOT1QgYSBjYWxsZXIg4oCUIGl0IGlzIHRoZSBhdWRpdCBhdXRob3JpdHkgYW5kIHdyaXRlc1xuICogYGF1dGh6LmRlbmllZGAgc3RyYWlnaHQgdG8gaXRzIGxvY2FsIHN0b3JlICh3aXRoIGBhZmZlY3RlZE9yZ0lkYCksIG5vdCB0aHJvdWdoXG4gKiBhIFJlbW90ZUF1ZGl0Q2xpZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gd2lyZUF1dGh6RGVuaWFsQXVkaXRvcihzZXJ2aWNlTmFtZTogc3RyaW5nLCBnZXRDbGllbnQ6ICgpID0+IFJlbW90ZUF1ZGl0Q2xpZW50KTogdm9pZCB7XG4gIC8vIFJlcXVlc3QgY29udGV4dCAoaXAgLyB1c2VyIGFnZW50IC8gcmVxdWVzdCBpZCAvIGNyZWRlbnRpYWwgLyBpbXBlcnNvbmF0b3IpXG4gIC8vIGlzIHN0YW1wZWQgYnkgYHJlY29yZCgpYCBmcm9tIHRoZSBhbWJpZW50IGF1ZGl0IGNvbnRleHQg4oCUIHRoZSBkZW5pYWwgZmlyZXNcbiAgLy8gaW5zaWRlIHRoZSByZXF1ZXN0J3Mgc2NvcGUuIEFuIHVuYXV0aGVudGljYXRlZCBkZW5pYWwgaGFzIG5vIG9yZzogaXQgaXNcbiAgLy8gcmVjb3JkZWQgb24gdGhlIHN5c3RlbSBvcmcncyBjaGFpbiByYXRoZXIgdGhhbiByZWZ1c2VkIGZvciBsYWNraW5nIG9uZS5cbiAgc2V0QXV0aHpEZW5pYWxBdWRpdG9yKChpbmZvOiBBdXRoekRlbmlhbEluZm8pID0+IGdldENsaWVudCgpLnJlY29yZCh7XG4gICAgYWN0aW9uOiAnYXV0aHouZGVuaWVkJyxcbiAgICBhY3RvcklkOiBpbmZvLmFjdG9ySWQgPz8gJ2Fub255bW91cycsXG4gICAgYWN0b3JFbWFpbDogaW5mby5hY3RvckVtYWlsLFxuICAgIG9yZ0lkOiBpbmZvLm9yZ0lkID8/IFNZU1RFTV9PUkdfSUQsXG4gICAgb3V0Y29tZTogJ2ZhaWx1cmUnLFxuICAgIGRldGFpbHM6IHsgbWV0aG9kOiBpbmZvLm1ldGhvZCwgcGF0aDogaW5mby5wYXRoLCByZXF1aXJlZDogaW5mby5yZXF1aXJlZCB9LFxuICB9LCBzZXJ2aWNlTmFtZSkpO1xufVxuXG4vKipcbiAqIFRoZSBwcm9jZXNzLXdpZGUgcmVtb3RlLWF1ZGl0IGJpbmRpbmc6IHdoaWNoIHNlcnZpY2UgdGhpcyBwcm9jZXNzIGlzLCBhbmQgdGhlXG4gKiAobGF6aWx5IGJ1aWx0KSBjbGllbnQgaXRzIGV2ZW50cyBnbyB0aHJvdWdoLiBCb3VuZCBPTkNFIGF0IGJvb3QgYnlcbiAqIGB3aXJlU2VydmljZVNlY3VyaXR5KHNlcnZpY2VOYW1lKWAg4oCUIGV2ZXJ5IHN0YXRlbGVzcyBzZXJ2aWNlIGNhbGxzIGl0IOKAlCBzbyB0aGVcbiAqIHNlcnZpY2UgaWRlbnRpdHkgaXMgbmV2ZXIgcmVwZWF0ZWQgYXQgYSBjYWxsIHNpdGUgYW5kIGNhbiBuZXZlciBkcmlmdC5cbiAqL1xuaW50ZXJmYWNlIEF1ZGl0QmluZGluZyB7XG4gIHNlcnZpY2VOYW1lOiBzdHJpbmc7XG4gIGNsaWVudDogUmVtb3RlQXVkaXRDbGllbnQgfCBudWxsO1xufVxuXG5sZXQgYXVkaXRCaW5kaW5nOiBBdWRpdEJpbmRpbmcgfCBudWxsID0gbnVsbDtcblxuLyoqXG4gKiBCaW5kIHRoaXMgcHJvY2VzcydzIHNlcnZpY2UgaWRlbnRpdHkgZm9yIHtAbGluayByZWNvcmRBdWRpdH0uIENhbGxlZCBieVxuICogYHdpcmVTZXJ2aWNlU2VjdXJpdHlgOyB0ZXN0cyBnbyB0aHJvdWdoIGBiaW5kVGVzdEF1ZGl0U2VydmljZWBcbiAqIChgQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUvdGVzdGluZ2ApLCB3aGljaCBwYXNzZXMgYSBzcHkgYGNsaWVudGAuXG4gKlxuICogV2l0aG91dCBgY2xpZW50YCwgdGhlIHJlYWwgb25lIGlzIGJ1aWx0IGxhemlseSBvbiBmaXJzdCBlbWlzc2lvbjogYVxuICogUmVtb3RlQXVkaXRDbGllbnQgd2lyZWQgdG8gdGhlIGR1cmFibGUgZW52LVJlZGlzIHNwb29sIChudWxsIOKGkiBubyBzcG9vbCkuXG4gKiBMYXp5IG9uIHB1cnBvc2Ug4oCUIGJ1aWxkaW5nIGl0IGF0IGJvb3Qgd291bGQgZm9yY2UgdGhlIHNwb29sJ3MgUmVkaXMgY29ubmVjdGlvblxuICogd2hlcmV2ZXIgdGhlIHNlcnZpY2UgbW9kdWxlIGlzIG1lcmVseSBpbXBvcnRlZC4gUmViaW5kaW5nIGNsb3NlcyB0aGUgcHJldmlvdXNcbiAqIGNsaWVudCdzIHNwb29sLWRyYWluIHRpbWVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYmluZEF1ZGl0U2VydmljZShzZXJ2aWNlTmFtZTogc3RyaW5nLCBjbGllbnQ/OiBSZW1vdGVBdWRpdENsaWVudCk6IHZvaWQge1xuICBhdWRpdEJpbmRpbmc/LmNsaWVudD8uY2xvc2UoKTtcbiAgYXVkaXRCaW5kaW5nID0geyBzZXJ2aWNlTmFtZSwgY2xpZW50OiBjbGllbnQgPz8gbnVsbCB9O1xufVxuXG4vKiogRHJvcCB0aGUgYmluZGluZyAodGVzdHMgb25seSDigJQgcmV0dXJucyB0aGUgcHJvY2VzcyB0byB0aGUgdW5ib3VuZCBzdGF0ZSkuICovXG5leHBvcnQgZnVuY3Rpb24gdW5iaW5kQXVkaXRTZXJ2aWNlKCk6IHZvaWQge1xuICBhdWRpdEJpbmRpbmc/LmNsaWVudD8uY2xvc2UoKTtcbiAgYXVkaXRCaW5kaW5nID0gbnVsbDtcbn1cblxuZnVuY3Rpb24gYm91bmRBdWRpdCgpOiBBdWRpdEJpbmRpbmcgJiB7IGNsaWVudDogUmVtb3RlQXVkaXRDbGllbnQgfSB7XG4gIGlmICghYXVkaXRCaW5kaW5nKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdhdWRpdCBub3QgaW5pdGlhbGlzZWQ6IGNhbGwgd2lyZVNlcnZpY2VTZWN1cml0eShzZXJ2aWNlTmFtZSkgYXQgYm9vdCBiZWZvcmUgcmVjb3JkQXVkaXQoKScpO1xuICB9XG4gIGF1ZGl0QmluZGluZy5jbGllbnQgPz89IGNyZWF0ZVJlbW90ZUF1ZGl0Q2xpZW50KHtcbiAgICBzcG9vbDogY3JlYXRlRW52UmVkaXNBdWRpdFNwb29sKHsga2V5OiBhdWRpdFNwb29sS2V5KGF1ZGl0QmluZGluZy5zZXJ2aWNlTmFtZSkgfSkgPz8gdW5kZWZpbmVkLFxuICB9KTtcbiAgcmV0dXJuIGF1ZGl0QmluZGluZyBhcyBBdWRpdEJpbmRpbmcgJiB7IGNsaWVudDogUmVtb3RlQXVkaXRDbGllbnQgfTtcbn1cblxuLyoqXG4gKiBUaGUgYm91bmQgc2VydmljZSdzIFJlbW90ZUF1ZGl0Q2xpZW50LiBUaHJvd3MgXCJhdWRpdCBub3QgaW5pdGlhbGlzZWRcIiBiZWZvcmVcbiAqIGB3aXJlU2VydmljZVNlY3VyaXR5YCBoYXMgcnVuLiBJbnRlcm5hbDogY2FsbGVycyBlbWl0IHRocm91Z2hcbiAqIHtAbGluayByZWNvcmRBdWRpdH07IGB3aXJlU2VydmljZVNlY3VyaXR5YCBoYW5kcyB0aGlzIGdldHRlciB0byB0aGVcbiAqIGBhdXRoei5kZW5pZWRgIHNpbmsuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRCb3VuZEF1ZGl0Q2xpZW50KCk6IFJlbW90ZUF1ZGl0Q2xpZW50IHtcbiAgcmV0dXJuIGJvdW5kQXVkaXQoKS5jbGllbnQ7XG59XG5cbi8qKlxuICogUmVjb3JkIGFuIGV2ZW50IGluIHRoZSBkdXJhYmxlLCBoYXNoLWNoYWluZWQgY2VudHJhbCBhdWRpdCB0cmFpbCAocGxhdGZvcm0nc1xuICogYFBPU1QgL2F1ZGl0L2V2ZW50c2AgaW5nZXN0KSwgYXR0cmlidXRlZCB0byB0aGUgc2VydmljZSBib3VuZCBhdCBib290LlxuICpcbiAqIEZJUkUtQU5ELUZPUkdFVDogZGVsaXZlcnkgbmV2ZXIgYmxvY2tzIG9yIHRocm93cyDigJQgZW1pdCBvbmx5IEFGVEVSIHRoZVxuICogbXV0YXRpb24gc3VjY2VlZHMsIGFuZCBrZWVwIGBkZXRhaWxzYCBmcmVlIG9mIHNlY3JldHMvdG9rZW5zLCBQSUkgYW5kIEFXU1xuICogYWNjb3VudCBpZHMuIFRoZSBPTkUgdGhpbmcgdGhhdCB0aHJvd3MgaXMgY2FsbGluZyBpdCBiZWZvcmVcbiAqIGB3aXJlU2VydmljZVNlY3VyaXR5KHNlcnZpY2VOYW1lKWAgaGFzIGJvdW5kIHRoZSBzZXJ2aWNlOiB0aGF0IGlzIGEgd2lyaW5nXG4gKiBidWcsIGFuZCBmYWlsaW5nIGxvdWRseSBiZWF0cyBzaWxlbnRseSBhdHRyaWJ1dGluZyB0aGUgZXZlbnQgdG8gbm9ib2R5LlxuICpcbiAqIChUaGUgd2luc3Rvbi9Mb2tpIGxvZyBsaW5lIGlzIGEgZGlmZmVyZW50IHNpbms6IGBsb2dBdWRpdEV2ZW50YC4pXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWNvcmRBdWRpdChldmVudDogUmVtb3RlQXVkaXRFdmVudCk6IHZvaWQge1xuICBjb25zdCB7IGNsaWVudCwgc2VydmljZU5hbWUgfSA9IGJvdW5kQXVkaXQoKTtcbiAgY2xpZW50LnJlY29yZChldmVudCwgc2VydmljZU5hbWUpO1xufVxuIl19
|
|
361
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWF1ZGl0LWNsaWVudC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL3JlbW90ZS1hdWRpdC1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLHdCQUF3QixFQUF5QyxNQUFNLGtCQUFrQixDQUFDO0FBQ2xILE9BQU8sRUFBRSxnQkFBZ0IsRUFBdUIsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQXdCLE1BQU0sbUNBQW1DLENBQUM7QUFDaEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTVELE9BQU8sRUFBMEIsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFL0QsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBRTVDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxxQkFBcUIsR0FBK0Q7SUFDeEYsbUJBQW1CLEVBQUUsQ0FBQztJQUN0QixVQUFVLEVBQUUsQ0FBQztDQUNkLENBQUM7QUE2RUYsdUZBQXVGO0FBQ3ZGLE1BQU0sb0JB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QUMsRUFBRSxHQUFHLEVBQUUsYUFBYSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksU0FBUztLQUMvRixDQUFDLENBQUM7SUFDSCxPQUFPLFlBQTRELENBQUM7QUFDdEUsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQjtJQUNqQyxPQUFPLFVBQVUsRUFBRSxDQUFDLE1BQU0sQ0FBQztBQUM3QixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLEtBQXVCO0lBQ2pELE1BQU0sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUM7SUFDN0MsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDcEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyByYW5kb21VVUlEIH0gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IGF1ZGl0QXV0aEJsb2NrLCBjdXJyZW50QXVkaXRDb250ZXh0IH0gZnJvbSAnLi9hdWRpdC1jb250ZXh0LmpzJztcbmltcG9ydCB7IGF1ZGl0U3Bvb2xLZXksIGNyZWF0ZUVudlJlZGlzQXVkaXRTcG9vbCwgdHlwZSBBdWRpdFNwb29sLCB0eXBlIEF1ZGl0U3Bvb2xFbnRyeSB9IGZyb20gJy4vYXVkaXQtc3Bvb2wuanMnO1xuaW1wb3J0IHsgY3JlYXRlU2FmZUNsaWVudCwgdHlwZSBSZXF1ZXN0T3B0aW9ucyB9IGZyb20gJy4vaHR0cC1jbGllbnQuanMnO1xuaW1wb3J0IHsgc2V0QXV0aHpEZW5pYWxBdWRpdG9yLCB0eXBlIEF1dGh6RGVuaWFsSW5mbyB9IGZyb20gJy4uL21pZGRsZXdhcmUvcGVybWlzc2lvbi1nYXRlcy5qcyc7XG5pbXBvcnQgeyBnZXRTZXJ2aWNlQXV0aEhlYWRlciB9IGZyb20gJy4uL21pZGRsZXdhcmUvc2VydmljZS10b2tlbnMuanMnO1xuaW1wb3J0IHsgU1lTVEVNX09SR19JRCB9IGZyb20gJy4uL21pZGRsZXdhcmUvc3lzdGVtLW9yZy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNlcnZpY2VDb25maWcgfSBmcm9tICcuLi90eXBlcy9jb21tb24uanMnO1xuaW1wb3J0IHsgdHlwZSBSZW1vdGVBdWRpdEFjdGlvbiB9IGZyb20gJy4uL3R5cGVzL3JlbW90ZS1hdWRpdC1hY3Rpb25zLmpzJztcbmltcG9ydCB7IEFOT05ZTU9VU19BQ1RPUl9JRCB9IGZyb20gJy4uL3V0aWxzL2lkZW50aXR5LmpzJztcbmltcG9ydCB7IGNyZWF0ZUxvZ2dlciB9IGZyb20gJy4uL3V0aWxzL2xvZ2dlci5qcyc7XG5pbXBvcnQgeyBlbWl0Q291bnRlciB9IGZyb20gJy4uL3V0aWxzL21ldHJpYy1lbWl0dGVyLmpzJztcbmltcG9ydCB7IGVycm9yTWVzc2FnZSB9IGZyb20gJy4uL3V0aWxzL3Jlc3BvbnNlLmpzJztcbmltcG9ydCB7IHNlcnZpY2VFbmRwb2ludCB9IGZyb20gJy4uL3V0aWxzL3NlcnZpY2UtcmVnaXN0cnkuanMnO1xuXG5jb25zdCBsb2dnZXIgPSBjcmVhdGVMb2dnZXIoJ3JlbW90ZS1hdWRpdCcpO1xuXG4vKipcbiAqIEF1ZGl0IGluZ2VzdCBpcyBiZXN0LWVmZm9ydCBhbmQgTVVTVCBOT1QgYmxvY2sgdGhlIGNhbGxlciwgYnV0IGEgdHJhbnNpZW50XG4gKiBmYWlsdXJlICg0MjkgLyA1eHggLyBjb25uZWN0aW9uIHJlc2V0IC8gdGltZW91dCkgc2hvdWxkIG5vdCBzaWxlbnRseSBkcm9wIHRoZVxuICogcm93IG9uIHRoZSBmaXJzdCBhdHRlbXB0LiBFYWNoIGVtaXNzaW9uIGNhcnJpZXMgYSBzdGFibGUgcGVyLWV2ZW50XG4gKiBgSWRlbXBvdGVuY3ktS2V5YCAoc2VlIGByZWNvcmRgKSwgc28gdGhlIGh0dHAtY2xpZW50IHRyZWF0cyB0aGUgUE9TVCBhc1xuICogcmV0cnktc2FmZSBhbmQgdGhlIHBsYXRmb3JtIGNhbiBkZWR1cCBhIHJldHJpZWQgZGVsaXZlcnkgaW5zdGVhZCBvZiB3cml0aW5nIGFcbiAqIGR1cGxpY2F0ZSByb3cuIEJ1ZGdldCBpcyBrZXB0IHNtYWxsIHNvIGEgaGFyZC1kb3duIHBsYXRmb3JtIGNhbid0IGJhY2sgdGhlXG4gKiB3b3JrZXIgdXAgZm9yIGxvbmc6IGJhc2UgZGVsYXkgw5coMiByZXRyaWVzKSArIGEgY291cGxlIG9mIDQyOSBiYWNrb2Zmcy5cbiAqL1xuY29uc3QgQVVESVRfUkVRVUVTVF9PUFRJT05TOiBQaWNrPFJlcXVlc3RPcHRpb25zLCAnbWF4UmF0ZUxpbWl0UmV0cmllcycgfCAnbWF4UmV0cmllcyc+ID0ge1xuICBtYXhSYXRlTGltaXRSZXRyaWVzOiAyLFxuICBtYXhSZXRyaWVzOiAyLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBSZW1vdGVBdWRpdEV2ZW50IHtcbiAgYWN0aW9uOiBSZW1vdGVBdWRpdEFjdGlvbjtcbiAgYWN0b3JJZDogc3RyaW5nO1xuICBhY3RvckVtYWlsPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG9yZyB0aGUgZXZlbnQgaXMgcmVjb3JkZWQgRk9SIOKAlCBSRVFVSVJFRC4gVGhlIHBsYXRmb3JtIGluZ2VzdCBiaW5kcyBldmVyeVxuICAgKiBldmVudCB0byB0aGUgc2VydmljZSB0b2tlbidzIG9yZywgYW5kIHRoZSBjbGllbnQgbWludHMgdGhhdCB0b2tlbiB3aXRoIHRoaXNcbiAgICogdmFsdWUsIHNvIGFuIG9yZy1sZXNzIGV2ZW50IGNhbiBuZXZlciBiZSBzdG9yZWQgKGl0IHVzZWQgdG8gYmUgcmVmdXNlZCA0MDNcbiAgICogXCJubyBvcmcgY2xhaW1cIiBhbmQgdGhlbiB3ZWRnZSB0aGUgc3Bvb2wpLiBTeXN0ZW0gd29yayB3aXRoIG5vIHRlbmFudCBwYXNzZXNcbiAgICogYFNZU1RFTV9PUkdfSURgIGV4cGxpY2l0bHkg4oCUIGUuZy4gYSByZWdpc3RyeSBHQyBzd2VlcC5cbiAgICovXG4gIG9yZ0lkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgb3JnIHRoZSBhY3Rpb24gdG91Y2hlZCwgd2hlbiBpdCBpcyBOT1QgYG9yZ0lkYCAodGhlIHN5c3RlbSBvcmcgYWN0aW5nIG9uXG4gICAqIGEgcHVibGlzaGVyJ3MgcGx1Z2luLCBhIHN1cGVyYWRtaW4gcHVyZ2luZyBhIHRlbmFudCdzIHBpcGVsaW5lKS4gQWNjZXB0ZWRcbiAgICogY3Jvc3Mtb3JnIG9ubHkgZnJvbSBhIHN5c3RlbS1vcmcgdG9rZW4sIG9yIHdoZW4gdGhlIGluYm91bmQgcHJpbmNpcGFsIHdhcyBhXG4gICAqIHN1cGVyYWRtaW4gLyBzeXN0ZW0tb3JnIG1lbWJlciAoc2VlIGBhdWRpdENyb3NzT3JnYCBpbiB0aGUgaW5nZXN0KS5cbiAgICovXG4gIGFmZmVjdGVkT3JnSWQ/OiBzdHJpbmc7XG4gIHRhcmdldFR5cGU/OiBzdHJpbmc7XG4gIHRhcmdldElkPzogc3RyaW5nO1xuICAvKipcbiAgICogRGlkIHRoZSBhdWRpdGVkIGFjdGlvbiBzdWNjZWVkIG9yIGZhaWw/IERlZmF1bHRzIHRvICdzdWNjZXNzJyB3aGVuIG9taXR0ZWRcbiAgICogKHRoZSBwbGF0Zm9ybSBpbmdlc3QgYXBwbGllcyB0aGUgc2FtZSBkZWZhdWx0KS4gRGVuaWVkLWF1dGh6IGV2ZW50cyBzZXRcbiAgICogJ2ZhaWx1cmUnIHNvIGEgcmV2aWV3ZXIgY2FuIGZpbHRlciBhdHRlbXB0cyBmcm9tIGNvbXBsZXRlZCBhY3Rpb25zLlxuICAgKi9cbiAgb3V0Y29tZT86ICdzdWNjZXNzJyB8ICdmYWlsdXJlJztcbiAgLyoqXG4gICAqIFdoZW4gdGhlIGF1ZGl0ZWQgYWN0aW9uIGFjdHVhbGx5IE9DQ1VSUkVEIChJU08tODYwMSksIHN0YW1wZWQgYXQgZW1pc3Npb24uXG4gICAqIFRoZSBwbGF0Zm9ybSBzdG9yZXMgdGhpcyBmb3IgcmV2aWV3ZXJzOyBpdCBpcyBOT1QgdGhlIGNoYWluLW9yZGVyaW5nIGZpZWxkXG4gICAqICh0aGUgdGFtcGVyLWV2aWRlbnQgY2hhaW4gb3JkZXJzIGJ5IGluZ2VzdC9gY3JlYXRlZEF0YCkuIEl0IG1hdHRlcnMgZm9yXG4gICAqIFNQT09MRUQgZXZlbnRzOiBvbmUgYnVmZmVyZWQgZHVyaW5nIGEgcGxhdGZvcm0gb3V0YWdlIGlzIHJlLWRlbGl2ZXJlZCDigJQgYW5kXG4gICAqIHNvIGNoYWluZWQg4oCUIGxhdGVyLCBidXQgYG9jY3VycmVkQXRgIHByZXNlcnZlcyB3aGVuIGl0IHJlYWxseSBoYXBwZW5lZC5cbiAgICovXG4gIG9jY3VycmVkQXQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTdGFibGUgcGVyLWVtaXNzaW9uIGRlZHVwIGtleSAoYWxzbyBzZW50IGFzIHRoZSBgSWRlbXBvdGVuY3ktS2V5YCBoZWFkZXIgdGhlXG4gICAqIHBsYXRmb3JtIGluZ2VzdCBkZWR1cHMgb24pLiBTdGFtcGVkIGJ5IGByZWNvcmQoKWAgYW5kIGNhcnJpZWQgb24gdGhlIHNwb29sZWRcbiAgICogY29weSBzbyBhIGxpdmUgYXR0ZW1wdCBhbmQgaXRzIGxhdGVyIHJlLWRlbGl2ZXJ5IGNvbGxhcHNlIHRvIE9ORSBzdG9yZWQgcm93LlxuICAgKi9cbiAgaWRlbXBvdGVuY3lLZXk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDb3JyZWxhdGlvbiBjb250ZXh0LiBOb3JtYWxseSBsZWZ0IHVuc2V0OiBgcmVjb3JkKClgIGZpbGxzIGVhY2ggZnJvbSB0aGVcbiAgICogYW1iaWVudCBhdWRpdCBjb250ZXh0IChzZWUgYHJ1bldpdGhBdWRpdENvbnRleHRgKSDigJQgdGhlIGluYm91bmQgcmVxdWVzdCdzIGlkLFxuICAgKiB0cmFjZSBpZCwgY2xpZW50IGlwIGFuZCB1c2VyIGFnZW50LiBTZXQgb25lIG9ubHkgdG8gb3ZlcnJpZGUgaXQuXG4gICAqXG4gICAqIEFuIEFOT05ZTU9VUyBhY3RvciBuZXZlciBpbmhlcml0cyB0aGUgY2xpZW50IGlwIC8gdXNlciBhZ2VudCBmcm9tIGNvbnRleHQ6XG4gICAqIHRob3NlIHJvd3MgYXJlIHRoZSBwdWJsaWMsIHVuYXV0aGVudGljYXRlZCBzdXJmYWNlcyAocGx1Z2luIHN1Ym1pc3Npb25zLFxuICAgKiByZXBvcnQgdmVyaWZ5L3Vuc3Vic2NyaWJlKSB3aG9zZSBjYWxsZXJzIGRlbGliZXJhdGVseSByZWNvcmQgb25seSBhIEhBU0hFRFxuICAgKiBpcC9hZGRyZXNzIOKAlCBzdGFtcGluZyB0aGUgcmF3IGlwIGJlc2lkZSBpdCB3b3VsZCB1bmRvIHRoYXQuIFBhc3MgYGlwYCAvXG4gICAqIGB1c2VyQWdlbnRgIGV4cGxpY2l0bHkgaWYgYW4gYW5vbnltb3VzIHJvdyBnZW51aW5lbHkgbmVlZHMgdGhlbS5cbiAgICovXG4gIHJlcXVlc3RJZD86IHN0cmluZztcbiAgdHJhY2VJZD86IHN0cmluZztcbiAgaXA/OiBzdHJpbmc7XG4gIHVzZXJBZ2VudD86IHN0cmluZztcbiAgLyoqXG4gICAqIEZyZWUtZm9ybSBldmVudCBkZXRhaWwuIEtlZXAgaXQgZnJlZSBvZiBzZWNyZXRzL3Rva2VucywgUElJIGFuZCBBV1MgYWNjb3VudFxuICAgKiBpZHMuIFRoZSBrZXlzIGBfYXV0aGAgYW5kIGBfY29udGV4dGAgYXJlIFJFU0VSVkVEOiBgcmVjb3JkKClgIHJlcGxhY2VzIHRoZW1cbiAgICogd2l0aCB0aGUgdmVyaWZpZWQgY3JlZGVudGlhbCBibG9jayBhbmQgdGhlIGNvcnJlbGF0aW9uL2pvYiBpZHMgZnJvbSB0aGVcbiAgICogYW1iaWVudCBhdWRpdCBjb250ZXh0LCB3aGF0ZXZlciB0aGUgY2FsbCBzaXRlIHBhc3NlZC5cbiAgICovXG4gIGRldGFpbHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqXG4gKiBUaGUgZXZlbnQgYXMgaXQgZ29lcyBvdmVyIHRoZSB3aXJlIGFuZCBpbnRvIHRoZSBzcG9vbDogdGhlIGNhbGwtc2l0ZSBldmVudFxuICogcGx1cyB3aGF0IGByZWNvcmQoKWAgc3RhbXBzIGZyb20gdGhlIGFtYmllbnQgYXVkaXQgY29udGV4dC4gYGltcGVyc29uYXRvcklkYCBpc1xuICogTk9UIGEgY2FsbC1zaXRlIGZpZWxkIOKAlCBpdCBjb21lcyBvbmx5IGZyb20gdGhlIGluYm91bmQgcmVxdWVzdCdzIHZlcmlmaWVkXG4gKiB0b2tlbiwgc28gbm8gcm91dGUgY2FuIGF0dHJpYnV0ZSBhbiBhY3Rpb24gdG8gYW4gaW1wZXJzb25hdG9yIGJ5IHBhc3Npbmcgb25lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbW90ZUF1ZGl0V2lyZUV2ZW50IGV4dGVuZHMgUmVtb3RlQXVkaXRFdmVudCB7XG4gIGltcGVyc29uYXRvcklkPzogc3RyaW5nO1xufVxuXG4vKiogYGRldGFpbHNgIGtleXMgb25seSBgcmVjb3JkKClgIG1heSB3cml0ZSAoc2VlIHtAbGluayBSZW1vdGVBdWRpdEV2ZW50LmRldGFpbHN9KS4gKi9cbmNvbnN0IFJFU0VSVkVEX0RFVEFJTF9LRVlTID0gWydfYXV0aCcsICdfY29udGV4dCddIGFzIGNvbnN0O1xuXG4vKipcbiAqIFN0YW1wIGFuIGV2ZW50IHdpdGggdGhlIGFtYmllbnQgYXVkaXQgY29udGV4dCBhdCB0aGUgbW9tZW50IGl0IGlzIFJFQ09SREVELlxuICogUGVyc2lzdGVkIG9uIHRoZSBldmVudCwgc28gYSBzcG9vbGVkIHJlLWRlbGl2ZXJ5IGNhcnJpZXMgdGhlIG9yaWdpbmFsXG4gKiByZXF1ZXN0J3MgY29udGV4dCByYXRoZXIgdGhhbiB3aGF0ZXZlciBpcyBhbWJpZW50IHdoZW4gdGhlIGRyYWluIHJ1bnMuXG4gKi9cbmZ1bmN0aW9uIHN0YW1wQXVkaXRDb250ZXh0KGV2ZW50OiBSZW1vdGVBdWRpdEV2ZW50KTogUmVtb3RlQXVkaXRXaXJlRXZlbnQge1xuICBjb25zdCBjdHggPSBjdXJyZW50QXVkaXRDb250ZXh0KCk7XG4gIGNvbnN0IHByaW5jaXBhbCA9IGN0eD8ucHJpbmNpcGFsPy4oKTtcbiAgY29uc3QgYXV0aCA9IGF1ZGl0QXV0aEJsb2NrKHByaW5jaXBhbCk7XG4gIGNvbnN0IGNvbnRleHQgPSB7IC4uLmN0eD8uY29ycmVsYXRpb24sIC4uLmN0eD8uam9iIH07XG4gIGNvbnN0IGFub255bW91cyA9IGV2ZW50LmFjdG9ySWQgPT09IEFOT05ZTU9VU19BQ1RPUl9JRDtcbiAgY29uc3QgZGV0YWlsczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IC4uLmV2ZW50LmRldGFpbHMgfTtcbiAgZm9yIChjb25zdCBrZXkgb2YgUkVTRVJWRURfREVUQUlMX0tFWVMpIGRlbGV0ZSBkZXRhaWxzW2tleV07XG4gIGlmIChhdXRoKSBkZXRhaWxzLl9hdXRoID0gYXV0aDtcbiAgaWYgKE9iamVjdC5rZXlzKGNvbnRleHQpLmxlbmd0aCA+IDApIGRldGFpbHMuX2NvbnRleHQgPSBjb250ZXh0O1xuICByZXR1cm4ge1xuICAgIC4uLmV2ZW50LFxuICAgIHJlcXVlc3RJZDogZXZlbnQucmVxdWVzdElkID8/IGN0eD8ucmVxdWVzdElkLFxuICAgIHRyYWNlSWQ6IGV2ZW50LnRyYWNlSWQgPz8gY3R4Py50cmFjZUlkLFxuICAgIGlwOiBldmVudC5pcCA/PyAoYW5vbnltb3VzID8gdW5kZWZpbmVkIDogY3R4Py5pcCksXG4gICAgdXNlckFnZW50OiBldmVudC51c2VyQWdlbnQgPz8gKGFub255bW91cyA/IHVuZGVmaW5lZCA6IGN0eD8udXNlckFnZW50KSxcbiAgICAuLi4ocHJpbmNpcGFsPy5pbXBlcnNvbmF0b3JJZCA/IHsgaW1wZXJzb25hdG9ySWQ6IHByaW5jaXBhbC5pbXBlcnNvbmF0b3JJZCB9IDoge30pLFxuICAgIC4uLihPYmplY3Qua2V5cyhkZXRhaWxzKS5sZW5ndGggPiAwID8geyBkZXRhaWxzIH0gOiB7IGRldGFpbHM6IHVuZGVmaW5lZCB9KSxcbiAgfTtcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRoaXMgZXZlbnQgbWF5IG5hbWUgYW4gYGFmZmVjdGVkT3JnSWRgIG91dHNpZGUgaXRzIG93biBvcmcuIERlcml2ZWRcbiAqIE9OTFkgZnJvbSB0aGUgc3RhbXBlZCBgX2F1dGhgIGJsb2NrICh0aGUgdmVyaWZpZWQgaW5ib3VuZCBwcmluY2lwYWwpLCB3aGljaFxuICogYHJlY29yZCgpYCBhbHdheXMgb3ZlcndyaXRlcyDigJQgYSBjYWxsIHNpdGUgY2Fubm90IGdyYW50IGl0LlxuICovXG5mdW5jdGlvbiBjcm9zc09yZ0F1dGhvcml6ZWQoZXZlbnQ6IFJlbW90ZUF1ZGl0V2lyZUV2ZW50KTogYm9vbGVhbiB7XG4gIGlmICghZXZlbnQuYWZmZWN0ZWRPcmdJZCB8fCBldmVudC5hZmZlY3RlZE9yZ0lkID09PSBldmVudC5vcmdJZCkgcmV0dXJuIGZhbHNlO1xuICBjb25zdCBhdXRoID0gZXZlbnQuZGV0YWlscz8uX2F1dGggYXMgeyBzdXBlckFkbWluPzogYm9vbGVhbjsgc3lzdGVtT3JnPzogYm9vbGVhbiB9IHwgdW5kZWZpbmVkO1xuICByZXR1cm4gYXV0aD8uc3VwZXJBZG1pbiA9PT0gdHJ1ZSB8fCBhdXRoPy5zeXN0ZW1PcmcgPT09IHRydWU7XG59XG5cbi8qKlxuICogUmVzdWx0IG9mIG9uZSBkZWxpdmVyeSBhdHRlbXB0LiBgcmVqZWN0ZWRgIGlzIGEgUEVSTUFORU5UIHJlZnVzYWwgKGEgNHh4IG90aGVyXG4gKiB0aGFuIDQwOC80MjkpOiB0aGUgcGxhdGZvcm0gd2lsbCBuZXZlciBhY2NlcHQgdGhpcyBldmVudCwgc28gcmV0cnlpbmcgaXQgb25seVxuICogd2VkZ2VzIHRoZSBzcG9vbCBiZWhpbmQgaXQuXG4gKi9cbnR5cGUgRGVsaXZlcnlSZXN1bHQgPSB7IGtpbmQ6ICdkZWxpdmVyZWQnIH0gfCB7IGtpbmQ6ICdyZXRyeScgfSB8IHsga2luZDogJ3JlamVjdGVkJzsgc3RhdHVzOiBudW1iZXIgfTtcblxuLyoqIDR4eCBzdGF0dXNlcyB0aGF0IGFyZSB0cmFuc2llbnQsIG5vdCBhIHZlcmRpY3Qgb24gdGhlIGV2ZW50LiAqL1xuY29uc3QgUkVUUllBQkxFXzRYWCA9IG5ldyBTZXQoWzQwOCwgNDI5XSk7XG5cbi8qKlxuICogQ2xpZW50IGZvciBQT1NUaW5nIGF1ZGl0IGV2ZW50cyB0byB0aGUgcGxhdGZvcm0ncyBgL2F1ZGl0LWV2ZW50c2AgaW5nZXN0XG4gKiBlbmRwb2ludC4gTWludHMgYSBmcmVzaCBzZXJ2aWNlIHRva2VuIHBlciBjYWxsICg1IG1pbiBUVEwpICB0aGVyZSdzIG5vXG4gKiBtZWFuaW5nZnVsIGNhY2hpbmcgYmVuZWZpdCB3aGVuIGVtaXNzaW9ucyBhcmUgc3BhcnNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbW90ZUF1ZGl0Q2xpZW50IHtcbiAgLyoqXG4gICAqIEZpcmUtYW5kLWZvcmdldCBhdWRpdCBlbWlzc2lvbi4gRmFpbHVyZXMgYXJlIGxvZ2dlZCBhdCB3YXJuIGxldmVsIGJ1dFxuICAgKiBuZXZlciB0aHJvd24gIHRoZSBvcmlnaW5hdGluZyBhY3Rpb24gKGUuZy4gYSBwbHVnaW4gYnVpbGQpIGhhcyBpdHNcbiAgICogb3duIHN1Y2Nlc3MvZmFpbHVyZSBwYXRoIHRoYXQgc2hvdWxkbid0IGdldCBwb2xsdXRlZCBieSBhIGZsYWt5IGF1ZGl0XG4gICAqIGRvd25zdHJlYW0uIFdoZW4gYSB7QGxpbmsgQXVkaXRTcG9vbH0gaXMgY29uZmlndXJlZCwgYW4gZW1pc3Npb24gdGhhdFxuICAgKiBleGhhdXN0cyBpdHMgbGl2ZSByZXRyaWVzIGlzIGJ1ZmZlcmVkIGFuZCByZS1kZWxpdmVyZWQgbGF0ZXIgaW5zdGVhZCBvZlxuICAgKiBiZWluZyBkcm9wcGVkLlxuICAgKi9cbiAgcmVjb3JkKGV2ZW50OiBSZW1vdGVBdWRpdEV2ZW50LCBzZXJ2aWNlTmFtZTogc3RyaW5nKTogdm9pZDtcbiAgLyoqIFN0b3AgdGhlIGJhY2tncm91bmQgc3Bvb2wtZHJhaW4gdGltZXIgKGlmIGFueSkuIFNhZmUgdG8gY2FsbCByZXBlYXRlZGx5LiAqL1xuICBjbG9zZSgpOiB2b2lkO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSByZW1vdGUgYXVkaXQgY2xpZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbW90ZUF1ZGl0Q2xpZW50Q29uZmlnIHtcbiAgLyoqIFBsYXRmb3JtIHNlcnZpY2UgaG9zdCAoZGVmYXVsdDogZW52IFBMQVRGT1JNX1NFUlZJQ0VfSE9TVCBvciAncGxhdGZvcm0nKSAqL1xuICBob3N0Pzogc3RyaW5nO1xuICAvKiogUGxhdGZvcm0gc2VydmljZSBwb3J0IChkZWZhdWx0OiBlbnYgUExBVEZPUk1fU0VSVklDRV9QT1JUIG9yIDMwMDApICovXG4gIHBvcnQ/OiBudW1iZXI7XG4gIC8qKiBSZXF1ZXN0IHRpbWVvdXQgbXMgKGRlZmF1bHQgMzAwMCAgYXVkaXQgc2hvdWxkbid0IGJsb2NrIHRoZSB3b3JrZXIpLiAqL1xuICB0aW1lb3V0PzogbnVtYmVyO1xuICAvKipcbiAgICogT3B0aW9uYWwgZHVyYWJsZSBidWZmZXIuIFdoZW4gc2V0LCBhbiBlbWlzc2lvbiB0aGF0IGV4aGF1c3RzIGl0cyBsaXZlIHJldHJ5XG4gICAqIGJ1ZGdldCAoc3VzdGFpbmVkIHBsYXRmb3JtIG91dGFnZSkgaXMgc3Bvb2xlZCBhbmQgcmUtZGVsaXZlcmVkIOKAlCBvbiB0aGUgbmV4dFxuICAgKiBzdWNjZXNzZnVsIGVtaXNzaW9uIGFuZCBvbiBhIHBlcmlvZGljIHRpbWVyIOKAlCBpbnN0ZWFkIG9mIGJlaW5nIGxvc3QuXG4gICAqL1xuICBzcG9vbD86IEF1ZGl0U3Bvb2w7XG4gIC8qKiBTcG9vbC1kcmFpbiBpbnRlcnZhbCBtcyAoZGVmYXVsdCAzMF8wMDApLiBPbmx5IHVzZWQgd2hlbiBgc3Bvb2xgIGlzIHNldC4gKi9cbiAgZHJhaW5JbnRlcnZhbE1zPzogbnVtYmVyO1xuICAvKiogTWF4IGVudHJpZXMgZHJhaW5lZCBwZXIgc3dlZXAgKGRlZmF1bHQgMTAwKS4gKi9cbiAgZHJhaW5CYXRjaFNpemU/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQ29uc3RydWN0IGEgcmVtb3RlLWF1ZGl0IGNsaWVudCB0YXJnZXRlZCBhdCB0aGUgcGxhdGZvcm0gc2VydmljZS5cbiAqXG4gKiBVc2VkIGJ5IGFwaS9wbHVnaW4ncyBidWlsZCB3b3JrZXIgdG8gcHVzaCBgcGx1Z2luLmJ1aWxkLipgIGV2ZW50cyBpbnRvXG4gKiB0aGUgcGxhdGZvcm0ncyBNb25nb0RCIGBhdWRpdF9ldmVudHNgIGNvbGxlY3Rpb24uIE90aGVyIHNlcnZpY2VzXG4gKiB3aXRoIHdvcmtlci1zdHlsZSBlbWl0dGVycyBjYW4gdXNlIHRoZSBzYW1lIGNsaWVudC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgYXVkaXRDbGllbnQgPSBjcmVhdGVSZW1vdGVBdWRpdENsaWVudCgpO1xuICogYXVkaXRDbGllbnQucmVjb3JkKHtcbiAqIGFjdGlvbjogJ3BsdWdpbi5idWlsZC5jb21wbGV0ZWQnLFxuICogYWN0b3JJZDogJ3VzZXItMTIzJyxcbiAqIG9yZ0lkOiAnb3JnLWFjbWUnLFxuICogdGFyZ2V0VHlwZTogJ3BsdWdpbicsXG4gKiB0YXJnZXRJZDogJ3BsdWdpbi1hYmMnLFxuICogZGV0YWlsczogeyBuYW1lOiAnbXktcGx1Z2luJywgdmVyc2lvbjogJzEuMC4wJyB9LFxuICogfSwgJ3BsdWdpbicpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZW1vdGVBdWRpdENsaWVudChjb25maWc6IFJlbW90ZUF1ZGl0Q2xpZW50Q29uZmlnID0ge30pOiBSZW1vdGVBdWRpdENsaWVudCB7XG4gIGNvbnN0IHNlcnZpY2VDb25maWc6IFNlcnZpY2VDb25maWcgPSB7XG4gICAgaG9zdDogY29uZmlnLmhvc3QgPz8gc2VydmljZUVuZHBvaW50KCdwbGF0Zm9ybScpLmhvc3QsXG4gICAgcG9ydDogY29uZmlnLnBvcnQgPz8gc2VydmljZUVuZHBvaW50KCdwbGF0Zm9ybScpLnBvcnQsXG4gICAgdGltZW91dDogY29uZmlnLnRpbWVvdXQgPz8gMzAwMCxcbiAgfTtcbiAgLy8gSXRzIG93biBicmVha2VyIHJvdXRlIGNsYXNzOiBhdWRpdCBpbmdlc3QgZmFpbGluZyAoNXh4IHdoaWxlIHBsYXRmb3JtJ3NcbiAgLy8gYXVkaXQgc3RvcmUgaXMgZGVncmFkZWQpIG11c3Qgbm90IG9wZW4gdGhlIGJyZWFrZXIgdGhhdCBwbGF0Zm9ybSdzIEpXS1MgYW5kXG4gIC8vIGtleS1leGNoYW5nZSBjYWxscyByaWRlIG9uIOKAlCB0aGF0IHdvdWxkIHR1cm4gYW4gYXVkaXQgYnJvd25vdXQgaW50byBhbiBhdXRoXG4gIC8vIG91dGFnZSBpbiBldmVyeSBzZXJ2aWNlLlxuICBjb25zdCBjbGllbnQgPSBjcmVhdGVTYWZlQ2xpZW50KHNlcnZpY2VDb25maWcsIHsgYnJlYWtlckNsYXNzOiAnYXVkaXQnIH0pO1xuICBjb25zdCBzcG9vbCA9IGNvbmZpZy5zcG9vbDtcbiAgY29uc3QgZHJhaW5CYXRjaFNpemUgPSBjb25maWcuZHJhaW5CYXRjaFNpemUgPz8gMTAwO1xuXG4gIC8qKlxuICAgKiBBdHRlbXB0IE9ORSBsaXZlIGRlbGl2ZXJ5LiBSZXNvbHZlcyBgdHJ1ZWAgb24gYSAyeHggYWNjZXB0LCBgZmFsc2VgIG9uIGFueVxuICAgKiBub24tMnh4IC8gdGhyb3duIGVycm9yICh0aGUgaHR0cC1jbGllbnQgaGFzIGFscmVhZHkgYXBwbGllZCB0aGUgcmV0cnlcbiAgICogYnVkZ2V0KS4gQSBzdGFibGUgcGVyLWVtaXNzaW9uIGBJZGVtcG90ZW5jeS1LZXlgIG1ha2VzIHRoaXMgbm9uLWlkZW1wb3RlbnRcbiAgICogUE9TVCByZXRyeS1zYWZlIGFuZCBsZXRzIHRoZSBwbGF0Zm9ybSBpbmdlc3QgZGVkdXAgYSByZS1kZWxpdmVyZWQgZXZlbnRcbiAgICogaW5zdGVhZCBvZiB3cml0aW5nIGEgZHVwbGljYXRlIGF1ZGl0IHJvdyAoYW5kIGR1cGxpY2F0ZSBjaGFpbiBsaW5rKS5cbiAgICogYElkZW1wb3RlbmN5LUtleWAgaXMgZGVyaXZlZCBmcm9tIHRoZSBldmVudCBzbyBhIFNQT09MRUQgcmUtZGVsaXZlcnkgcmV1c2VzXG4gICAqIHRoZSBzYW1lIGtleSBhcyBpdHMgb3JpZ2luYWwgbGl2ZSBhdHRlbXB0IOKAlCB0aGUgdHdvIGNvbGxhcHNlIHRvIG9uZSByb3cuXG4gICAqL1xuICBhc3luYyBmdW5jdGlvbiBkZWxpdmVyKGV2ZW50OiBSZW1vdGVBdWRpdFdpcmVFdmVudCwgc2VydmljZU5hbWU6IHN0cmluZyk6IFByb21pc2U8RGVsaXZlcnlSZXN1bHQ+IHtcbiAgICB0cnkge1xuICAgICAgLy8gTWludGluZyB0aGUgdG9rZW4gaXMgSU5TSURFIHRoZSB0cnkgb24gcHVycG9zZS4gSXQgY2FuIHRocm93IOKAlCB0aGVcbiAgICAgIC8vIHNpZ25pbmcga2V5IHVucmVhZGFibGUsIG5vdCBhbiBFQyBQLTI1NiBrZXksIG9yIGBTRVJWSUNFX05BTUVgIG5vdFxuICAgICAgLy8gbWF0Y2hpbmcgdGhpcyBjbGllbnQncyBuYW1lLiBPdXRzaWRlIHRoZSBgdHJ5YCwgYGRlbGl2ZXJgIHdvdWxkIHJlamVjdFxuICAgICAgLy8gaW5zdGVhZCBvZiByZXNvbHZpbmcgYGZhbHNlYDsgYHJlY29yZGAgZmlyZXMgaXQgd2l0aCBhIGJhcmUgYC50aGVuYCwgc29cbiAgICAgIC8vIHRoZSByZWplY3Rpb24gd291bGQgZ28gdW5oYW5kbGVkIGFuZCBjcmFzaC1sb29wIHRoZSBwb2Qgb24gaXRzIGZpcnN0XG4gICAgICAvLyBhdWRpdGVkIHdyaXRlLiBJbnNpZGUsIGEga2V5IHByb2JsZW0gaXMganVzdCBhbiB1bmRlbGl2ZXJhYmxlIGV2ZW50OlxuICAgICAgLy8gc3Bvb2xlZCwgb3IgZHJvcHBlZCBhbmQgbWV0ZXJlZC5cbiAgICAgIGNvbnN0IGF1dGhIZWFkZXIgPSBnZXRTZXJ2aWNlQXV0aEhlYWRlcih7XG4gICAgICAgIHNlcnZpY2VOYW1lLFxuICAgICAgICBvcmdJZDogZXZlbnQub3JnSWQsXG4gICAgICAgIHJvbGU6ICdtZW1iZXInLFxuICAgICAgICAuLi4oY3Jvc3NPcmdBdXRob3JpemVkKGV2ZW50KSA/IHsgYXVkaXRDcm9zc09yZzogdHJ1ZSB9IDoge30pLFxuICAgICAgfSk7XG4gICAgICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgICAnQXV0aG9yaXphdGlvbic6IGF1dGhIZWFkZXIsXG4gICAgICAgICdJZGVtcG90ZW5jeS1LZXknOiBldmVudC5pZGVtcG90ZW5jeUtleSA/PyByYW5kb21VVUlEKCksXG4gICAgICB9O1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdCgnL2F1ZGl0L2V2ZW50cycsIGV2ZW50LCB7IGhlYWRlcnMsIC4uLkFVRElUX1JFUVVFU1RfT1BUSU9OUyB9KTtcbiAgICAgIGNvbnN0IHN0YXR1cyA9IHJlc3BvbnNlPy5zdGF0dXNDb2RlO1xuICAgICAgaWYgKHN0YXR1cyAhPT0gdW5kZWZpbmVkICYmIHN0YXR1cyA+PSAyMDAgJiYgc3RhdHVzIDwgMzAwKSByZXR1cm4geyBraW5kOiAnZGVsaXZlcmVkJyB9O1xuICAgICAgaWYgKHN0YXR1cyAhPT0gdW5kZWZpbmVkICYmIHN0YXR1cyA+PSA0MDAgJiYgc3RhdHVzIDwgNTAwICYmICFSRVRSWUFCTEVfNFhYLmhhcyhzdGF0dXMpKSB7XG4gICAgICAgIHJldHVybiB7IGtpbmQ6ICdyZWplY3RlZCcsIHN0YXR1cyB9O1xuICAgICAgfVxuICAgICAgbG9nZ2VyLndhcm4oJ1JlbW90ZSBhdWRpdCBpbmdlc3Qgbm9uLW9rJywgeyBhY3Rpb246IGV2ZW50LmFjdGlvbiwgc3RhdHVzQ29kZTogc3RhdHVzIH0pO1xuICAgICAgcmV0dXJuIHsga2luZDogJ3JldHJ5JyB9O1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbG9nZ2VyLndhcm4oJ1JlbW90ZSBhdWRpdCBpbmdlc3QgdGhyZXcnLCB7IGFjdGlvbjogZXZlbnQuYWN0aW9uLCBlcnJvcjogZXJyb3JNZXNzYWdlKGVycikgfSk7XG4gICAgICByZXR1cm4geyBraW5kOiAncmV0cnknIH07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEEgcGVybWFuZW50bHkgcmVmdXNlZCBldmVudCBpcyBEUk9QUEVEIOKAlCBsb3VkbHkuIFNwb29saW5nIGl0IHdvdWxkIHB1dCBpdCBhdFxuICAgKiB0aGUgaGVhZCBvZiB0aGUgcXVldWUgZm9yZXZlciAodGhlIGRyYWluIHN0b3BzIGF0IHRoZSBmaXJzdCBmYWlsdXJlKSwgc28gb25lXG4gICAqIG1hbGZvcm1lZCBldmVudCB3b3VsZCBzaWxlbnRseSBzdGFsbCBldmVyeSBsYXRlciBldmVudCB0aGlzIHNlcnZpY2UgZW1pdHMuXG4gICAqIGBBdWRpdEV2ZW50c1JlamVjdGVkYCBwYWdlcyBvbiB0aGUgY291bnRlci5cbiAgICovXG4gIGZ1bmN0aW9uIHJlcG9ydFJlamVjdGVkKGV2ZW50OiBSZW1vdGVBdWRpdFdpcmVFdmVudCwgc2VydmljZU5hbWU6IHN0cmluZywgc3RhdHVzOiBudW1iZXIpOiB2b2lkIHtcbiAgICBlbWl0Q291bnRlcignYXVkaXRfZXZlbnRzX3JlamVjdGVkX3RvdGFsJywgeyBzZXJ2aWNlOiBzZXJ2aWNlTmFtZSwgc3RhdHVzOiBTdHJpbmcoc3RhdHVzKSB9KTtcbiAgICBsb2dnZXIuZXJyb3IoJ1JlbW90ZSBhdWRpdCBldmVudCBSRUpFQ1RFRCBieSBpbmdlc3QgKGRyb3BwZWQsIG5vdCByZXRyaWVkKScsIHtcbiAgICAgIGFjdGlvbjogZXZlbnQuYWN0aW9uLFxuICAgICAgc3RhdHVzQ29kZTogc3RhdHVzLFxuICAgICAgb3JnSWQ6IGV2ZW50Lm9yZ0lkLFxuICAgICAgYWZmZWN0ZWRPcmdJZDogZXZlbnQuYWZmZWN0ZWRPcmdJZCxcbiAgICAgIHRhcmdldFR5cGU6IGV2ZW50LnRhcmdldFR5cGUsXG4gICAgICB0YXJnZXRJZDogZXZlbnQudGFyZ2V0SWQsXG4gICAgICByZXF1ZXN0SWQ6IGV2ZW50LnJlcXVlc3RJZCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFNlcmlhbGl6ZSBzcG9vbCBkcmFpbnMgc28gYSBwZXJpb2RpYyB0aWNrIGFuZCBhbiBvbi1zdWNjZXNzIGRyYWluIGNhbid0IGJvdGhcbiAgLy8gcHVsbCB0aGUgc2FtZSBiYXRjaC4gU3RvcHMgZWFybHkgdGhlIG1vbWVudCBhIHJlLWRlbGl2ZXJ5IGZhaWxzIChwbGF0Zm9ybVxuICAvLyBzdGlsbCBkb3duKSBzbyB3ZSBkb24ndCBoYW1tZXIgaXQgb3IgY2h1cm4gdGhlIGJ1ZmZlci5cbiAgbGV0IGRyYWluaW5nID0gZmFsc2U7XG4gIGFzeW5jIGZ1bmN0aW9uIGRyYWluKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghc3Bvb2wgfHwgZHJhaW5pbmcpIHJldHVybjtcbiAgICBkcmFpbmluZyA9IHRydWU7XG4gICAgdHJ5IHtcbiAgICAgIGZvciAoOzspIHtcbiAgICAgICAgY29uc3QgYmF0Y2ggPSBhd2FpdCBzcG9vbC50YWtlKGRyYWluQmF0Y2hTaXplKTtcbiAgICAgICAgaWYgKGJhdGNoLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgICAgICAvLyBgc2V0dGxlZGAgPSBkZWxpdmVyZWQgT1IgcGVybWFuZW50bHkgcmVqZWN0ZWQ6IGVpdGhlciB3YXkgaXQgbGVhdmVzIHRoZVxuICAgICAgICAvLyBzcG9vbC4gT25seSBhIHJldHJ5YWJsZSBmYWlsdXJlIHN0b3BzIHRoZSBzd2VlcCBhbmQgZ29lcyBiYWNrLlxuICAgICAgICBjb25zdCBzZXR0bGVkOiBBdWRpdFNwb29sRW50cnlbXSA9IFtdO1xuICAgICAgICBjb25zdCBmYWlsZWQ6IEF1ZGl0U3Bvb2xFbnRyeVtdID0gW107XG4gICAgICAgIGxldCBwbGF0Zm9ybURvd24gPSBmYWxzZTtcbiAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBiYXRjaCkge1xuICAgICAgICAgIGlmIChwbGF0Zm9ybURvd24pIHsgZmFpbGVkLnB1c2goZW50cnkpOyBjb250aW51ZTsgfVxuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGRlbGl2ZXIoZW50cnkuZXZlbnQsIGVudHJ5LnNlcnZpY2VOYW1lKTtcbiAgICAgICAgICBpZiAocmVzdWx0LmtpbmQgPT09ICdkZWxpdmVyZWQnKSB7XG4gICAgICAgICAgICBzZXR0bGVkLnB1c2goZW50cnkpO1xuICAgICAgICAgICAgZW1pdENvdW50ZXIoJ2F1ZGl0X3Nwb29sX3JlZGVsaXZlcmVkX3RvdGFsJywgeyBzZXJ2aWNlOiBlbnRyeS5zZXJ2aWNlTmFtZSB9KTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5raW5kID09PSAncmVqZWN0ZWQnKSB7XG4gICAgICAgICAgICBzZXR0bGVkLnB1c2goZW50cnkpO1xuICAgICAgICAgICAgcmVwb3J0UmVqZWN0ZWQoZW50cnkuZXZlbnQsIGVudHJ5LnNlcnZpY2VOYW1lLCByZXN1bHQuc3RhdHVzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGxhdGZvcm1Eb3duID0gdHJ1ZTtcbiAgICAgICAgICAgIGZhaWxlZC5wdXNoKGVudHJ5KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gQWNrbm93bGVkZ2UgdGhlIHNldHRsZWQgZW50cmllcyBzbyB0aGV5IGNsZWFyIHRoZSBpbi1wcm9ncmVzcyBsaXN0OyB0aGVcbiAgICAgICAgLy8gcmVsaWFibGUgdGFrZSgpIG1vdmVkIHRoZSB3aG9sZSBiYXRjaCB0aGVyZSwgc28gdW5hY2tlZCBzdXJ2aXZvcnMgYXJlXG4gICAgICAgIC8vIHJlY2xhaW1lZCBieSByZWNvdmVyKCkgYWZ0ZXIgYSBjcmFzaCByYXRoZXIgdGhhbiBiZWluZyBzaWxlbnRseSBsb3N0LlxuICAgICAgICBpZiAoc2V0dGxlZC5sZW5ndGggPiAwKSBhd2FpdCBzcG9vbC5hY2soc2V0dGxlZCk7XG4gICAgICAgIGlmIChmYWlsZWQubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGF3YWl0IHNwb29sLnJlcXVldWUoZmFpbGVkKTtcbiAgICAgICAgICByZXR1cm47IC8vIHN0aWxsIGRvd24g4oCUIHRyeSBhZ2FpbiBvbiB0aGUgbmV4dCB0aWNrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZ2dlci53YXJuKCdBdWRpdCBzcG9vbCBkcmFpbiBmYWlsZWQnLCB7IGVycm9yOiBlcnJvck1lc3NhZ2UoZXJyKSB9KTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgZHJhaW5pbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBsZXQgZHJhaW5UaW1lcjogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0SW50ZXJ2YWw+IHwgdW5kZWZpbmVkO1xuICBpZiAoc3Bvb2wpIHtcbiAgICAvLyBSZWNsYWltIGFueSBiYXRjaCBzdHJhbmRlZCBvbiB0aGUgaW4tcHJvZ3Jlc3MgbGlzdCBieSBhIHByaW9yIGNyYXNoLCB0aGVuXG4gICAgLy8gYXR0ZW1wdCB0byBmbHVzaCBpdC4gQm90aCBhcmUgYmVzdC1lZmZvcnQgKHRoZSBzcG9vbCBzd2FsbG93cyBpdHMgZXJyb3JzKS5cbiAgICB2b2lkIHNwb29sLnJlY292ZXIoKS50aGVuKCgpID0+IGRyYWluKCkpO1xuICAgIC8vIEV2ZXJ5IHRpY2s6IGhlYXJ0YmVhdCAoc28gcGVlcnMgbmV2ZXIgcmVjbGFpbSBhIGJhdGNoIHRoaXMgcG9kIGlzIHN0aWxsXG4gICAgLy8gZGVsaXZlcmluZyDigJQgZXZlbiBtaWQtZHJhaW4pLCByZWNsYWltIGJhdGNoZXMgb2YgcG9kcyB0aGF0IGRpZWQsIGRyYWluLlxuICAgIGRyYWluVGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICB2b2lkIHNwb29sLmhlYXJ0YmVhdCgpLnRoZW4oKCkgPT4gc3Bvb2wucmVjb3ZlcigpKS50aGVuKCgpID0+IGRyYWluKCkpO1xuICAgIH0sIGNvbmZpZy5kcmFpbkludGVydmFsTXMgPz8gMzBfMDAwKTtcbiAgICAvLyBEb24ndCBsZXQgdGhlIGRyYWluIHRpbWVyIGtlZXAgdGhlIHByb2Nlc3MgYWxpdmUgb24gc2h1dGRvd24uXG4gICAgKGRyYWluVGltZXIgYXMgdW5rbm93biBhcyB7IHVucmVmPzogKCkgPT4gdm9pZCB9KS51bnJlZj8uKCk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHJlY29yZChldmVudCwgc2VydmljZU5hbWUpIHtcbiAgICAgIC8vIFN0YW1wIHRoZSBhbWJpZW50IHJlcXVlc3Qvam9iIGNvbnRleHQgYW5kIHdoZW4gdGhlIGFjdGlvbiBhY3R1YWxseVxuICAgICAgLy8gb2NjdXJyZWQgKGFsbCBzdXJ2aXZlIHNwb29sIGRlbGF5KSwgYW5kIHBpbiBhIHN0YWJsZSBpZGVtcG90ZW5jeSBrZXkgc28gYVxuICAgICAgLy8gbGl2ZSBhdHRlbXB0IGFuZCBpdHMgc3Bvb2xlZCByZXRyeSBkZWR1cC5cbiAgICAgIGNvbnN0IHN0YW1wZWQ6IFJlbW90ZUF1ZGl0V2lyZUV2ZW50ID0ge1xuICAgICAgICAuLi5zdGFtcEF1ZGl0Q29udGV4dChldmVudCksXG4gICAgICAgIG9jY3VycmVkQXQ6IGV2ZW50Lm9jY3VycmVkQXQgPz8gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICBpZGVtcG90ZW5jeUtleTogZXZlbnQuaWRlbXBvdGVuY3lLZXkgPz8gcmFuZG9tVVVJRCgpLFxuICAgICAgfTtcbiAgICAgIHZvaWQgZGVsaXZlcihzdGFtcGVkLCBzZXJ2aWNlTmFtZSkudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQua2luZCA9PT0gJ2RlbGl2ZXJlZCcpIHtcbiAgICAgICAgICBlbWl0Q291bnRlcignYXVkaXRfZW1pdHRlZF90b3RhbCcsIHsgc2VydmljZTogc2VydmljZU5hbWUsIG91dGNvbWU6IHN0YW1wZWQub3V0Y29tZSA/PyAnc3VjY2VzcycgfSk7XG4gICAgICAgICAgaWYgKHNwb29sKSB2b2lkIGRyYWluKCk7IC8vIHBsYXRmb3JtIGlzIHJlYWNoYWJsZSDigJQgZmx1c2ggYW55IGJhY2tsb2dcbiAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQua2luZCA9PT0gJ3JlamVjdGVkJykge1xuICAgICAgICAgIHJlcG9ydFJlamVjdGVkKHN0YW1wZWQsIHNlcnZpY2VOYW1lLCByZXN1bHQuc3RhdHVzKTtcbiAgICAgICAgfSBlbHNlIGlmIChzcG9vbCkge1xuICAgICAgICAgIHZvaWQgc3Bvb2wuZW5xdWV1ZSh7IGV2ZW50OiBzdGFtcGVkLCBzZXJ2aWNlTmFtZSB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlbWl0Q291bnRlcignYXVkaXRfZHJvcHBlZF90b3RhbCcsIHsgc2VydmljZTogc2VydmljZU5hbWUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgLy8gQmVsdCBhbmQgYnJhY2VzLiBgZGVsaXZlcmAgbmV2ZXIgcmVqZWN0cywgYnV0IGFueXRoaW5nIHRoYXQgdGhyb3dzXG4gICAgICAgIC8vIGluIHRoZSBjb250aW51YXRpb24gd291bGQgb3RoZXJ3aXNlIGJlY29tZSBhbiB1bmhhbmRsZWQgcmVqZWN0aW9uIOKAlFxuICAgICAgICAvLyBhbmQgaW4gdGhpcyBwcm9jZXNzIHRoYXQgaXMgYSBjcmFzaCwgbm90IGEgbG9nIGxpbmUuIEFuIGF1ZGl0IGV2ZW50XG4gICAgICAgIC8vIG11c3QgbmV2ZXIgdGFrZSB0aGUgc2VydmljZSBkb3duLlxuICAgICAgICBlbWl0Q291bnRlcignYXVkaXRfZHJvcHBlZF90b3RhbCcsIHsgc2VydmljZTogc2VydmljZU5hbWUgfSk7XG4gICAgICAgIGxvZ2dlci5lcnJvcignUmVtb3RlIGF1ZGl0IHJlY29yZCBmYWlsZWQgdW5leHBlY3RlZGx5JywgeyBhY3Rpb246IHN0YW1wZWQuYWN0aW9uLCBlcnJvcjogZXJyb3JNZXNzYWdlKGVycikgfSk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIGNsb3NlKCkge1xuICAgICAgaWYgKGRyYWluVGltZXIpIHsgY2xlYXJJbnRlcnZhbChkcmFpblRpbWVyKTsgZHJhaW5UaW1lciA9IHVuZGVmaW5lZDsgfVxuICAgIH0sXG4gIH07XG59XG5cbi8qKlxuICogUmVnaXN0ZXIgdGhlIHN0YW5kYXJkIGBhdXRoei5kZW5pZWRgIHNpbmsgdXNlZCBieSBldmVyeSByZW1vdGUtYXVkaXQgc2VydmljZVxuICogKHBpcGVsaW5lLCBwbHVnaW4sIGNvbXBsaWFuY2UsIHF1b3RhLCBtZXNzYWdlLCBiaWxsaW5nLCByZXBvcnRpbmcsIOKApikuXG4gKlxuICogVGhlIHNoYXJlZCBgcmVxdWlyZUF1dGhgIGdhdGUgZm9yd2FyZHMgZWFjaCBERU5JRUQgc3RhdGUtY2hhbmdpbmcgcmVxdWVzdCB0b1xuICogdGhlIGF1ZGl0b3Igc2V0IHZpYSB7QGxpbmsgc2V0QXV0aHpEZW5pYWxBdWRpdG9yfTsgdGhpcyB3aXJlcyB0aGF0IGhvb2sgdG8gdGhlXG4gKiBzZXJ2aWNlJ3Mge0BsaW5rIFJlbW90ZUF1ZGl0Q2xpZW50fSwgZm9yd2FyZGluZyBhIGBmYWlsdXJlYC1vdXRjb21lXG4gKiBgYXV0aHouZGVuaWVkYCBldmVudCBzbyBwcm9iaW5nIC8gcHJpdmlsZWdlLWVzY2FsYXRpb24gYXR0ZW1wdHMgbGVhdmUgYSB0cmFpbC5cbiAqIEVtaXNzaW9uIGlzIGZpcmUtYW5kLWZvcmdldCAodGhlIGNsaWVudCBuZXZlciB0aHJvd3MpLiBgZ2V0Q2xpZW50YCBpcyBhIGdldHRlclxuICogc28gdGhlIGNsaWVudCBzdGF5cyBsYXppbHkgY29uc3RydWN0ZWQgKHNlcnZpY2VzIG1lbW9pemUgaXQgb24gZmlyc3QgdXNlKS5cbiAqXG4gKiBQbGF0Zm9ybSBpcyBpbnRlbnRpb25hbGx5IE5PVCBhIGNhbGxlciDigJQgaXQgaXMgdGhlIGF1ZGl0IGF1dGhvcml0eSBhbmQgd3JpdGVzXG4gKiBgYXV0aHouZGVuaWVkYCBzdHJhaWdodCB0byBpdHMgbG9jYWwgc3RvcmUgKHdpdGggYGFmZmVjdGVkT3JnSWRgKSwgbm90IHRocm91Z2hcbiAqIGEgUmVtb3RlQXVkaXRDbGllbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXJlQXV0aHpEZW5pYWxBdWRpdG9yKHNlcnZpY2VOYW1lOiBzdHJpbmcsIGdldENsaWVudDogKCkgPT4gUmVtb3RlQXVkaXRDbGllbnQpOiB2b2lkIHtcbiAgLy8gUmVxdWVzdCBjb250ZXh0IChpcCAvIHVzZXIgYWdlbnQgLyByZXF1ZXN0IGlkIC8gY3JlZGVudGlhbCAvIGltcGVyc29uYXRvcilcbiAgLy8gaXMgc3RhbXBlZCBieSBgcmVjb3JkKClgIGZyb20gdGhlIGFtYmllbnQgYXVkaXQgY29udGV4dCDigJQgdGhlIGRlbmlhbCBmaXJlc1xuICAvLyBpbnNpZGUgdGhlIHJlcXVlc3QncyBzY29wZS4gQW4gdW5hdXRoZW50aWNhdGVkIGRlbmlhbCBoYXMgbm8gb3JnOiBpdCBpc1xuICAvLyByZWNvcmRlZCBvbiB0aGUgc3lzdGVtIG9yZydzIGNoYWluIHJhdGhlciB0aGFuIHJlZnVzZWQgZm9yIGxhY2tpbmcgb25lLlxuICBzZXRBdXRoekRlbmlhbEF1ZGl0b3IoKGluZm86IEF1dGh6RGVuaWFsSW5mbykgPT4gZ2V0Q2xpZW50KCkucmVjb3JkKHtcbiAgICBhY3Rpb246ICdhdXRoei5kZW5pZWQnLFxuICAgIGFjdG9ySWQ6IGluZm8uYWN0b3JJZCA/PyAnYW5vbnltb3VzJyxcbiAgICBhY3RvckVtYWlsOiBpbmZvLmFjdG9yRW1haWwsXG4gICAgb3JnSWQ6IGluZm8ub3JnSWQgPz8gU1lTVEVNX09SR19JRCxcbiAgICBvdXRjb21lOiAnZmFpbHVyZScsXG4gICAgZGV0YWlsczogeyBtZXRob2Q6IGluZm8ubWV0aG9kLCBwYXRoOiBpbmZvLnBhdGgsIHJlcXVpcmVkOiBpbmZvLnJlcXVpcmVkIH0sXG4gIH0sIHNlcnZpY2VOYW1lKSk7XG59XG5cbi8qKlxuICogVGhlIHByb2Nlc3Mtd2lkZSByZW1vdGUtYXVkaXQgYmluZGluZzogd2hpY2ggc2VydmljZSB0aGlzIHByb2Nlc3MgaXMsIGFuZCB0aGVcbiAqIChsYXppbHkgYnVpbHQpIGNsaWVudCBpdHMgZXZlbnRzIGdvIHRocm91Z2guIEJvdW5kIE9OQ0UgYXQgYm9vdCBieVxuICogYHdpcmVTZXJ2aWNlU2VjdXJpdHkoc2VydmljZU5hbWUpYCDigJQgZXZlcnkgc3RhdGVsZXNzIHNlcnZpY2UgY2FsbHMgaXQg4oCUIHNvIHRoZVxuICogc2VydmljZSBpZGVudGl0eSBpcyBuZXZlciByZXBlYXRlZCBhdCBhIGNhbGwgc2l0ZSBhbmQgY2FuIG5ldmVyIGRyaWZ0LlxuICovXG5pbnRlcmZhY2UgQXVkaXRCaW5kaW5nIHtcbiAgc2VydmljZU5hbWU6IHN0cmluZztcbiAgY2xpZW50OiBSZW1vdGVBdWRpdENsaWVudCB8IG51bGw7XG59XG5cbmxldCBhdWRpdEJpbmRpbmc6IEF1ZGl0QmluZGluZyB8IG51bGwgPSBudWxsO1xuXG4vKipcbiAqIEJpbmQgdGhpcyBwcm9jZXNzJ3Mgc2VydmljZSBpZGVudGl0eSBmb3Ige0BsaW5rIHJlY29yZEF1ZGl0fS4gQ2FsbGVkIGJ5XG4gKiBgd2lyZVNlcnZpY2VTZWN1cml0eWA7IHRlc3RzIGdvIHRocm91Z2ggYGJpbmRUZXN0QXVkaXRTZXJ2aWNlYFxuICogKGBAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZS90ZXN0aW5nYCksIHdoaWNoIHBhc3NlcyBhIHNweSBgY2xpZW50YC5cbiAqXG4gKiBXaXRob3V0IGBjbGllbnRgLCB0aGUgcmVhbCBvbmUgaXMgYnVpbHQgbGF6aWx5IG9uIGZpcnN0IGVtaXNzaW9uOiBhXG4gKiBSZW1vdGVBdWRpdENsaWVudCB3aXJlZCB0byB0aGUgZHVyYWJsZSBlbnYtUmVkaXMgc3Bvb2wgKG51bGwg4oaSIG5vIHNwb29sKS5cbiAqIExhenkgb24gcHVycG9zZSDigJQgYnVpbGRpbmcgaXQgYXQgYm9vdCB3b3VsZCBmb3JjZSB0aGUgc3Bvb2wncyBSZWRpcyBjb25uZWN0aW9uXG4gKiB3aGVyZXZlciB0aGUgc2VydmljZSBtb2R1bGUgaXMgbWVyZWx5IGltcG9ydGVkLiBSZWJpbmRpbmcgY2xvc2VzIHRoZSBwcmV2aW91c1xuICogY2xpZW50J3Mgc3Bvb2wtZHJhaW4gdGltZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBiaW5kQXVkaXRTZXJ2aWNlKHNlcnZpY2VOYW1lOiBzdHJpbmcsIGNsaWVudD86IFJlbW90ZUF1ZGl0Q2xpZW50KTogdm9pZCB7XG4gIGF1ZGl0QmluZGluZz8uY2xpZW50Py5jbG9zZSgpO1xuICBhdWRpdEJpbmRpbmcgPSB7IHNlcnZpY2VOYW1lLCBjbGllbnQ6IGNsaWVudCA/PyBudWxsIH07XG59XG5cbi8qKiBEcm9wIHRoZSBiaW5kaW5nICh0ZXN0cyBvbmx5IOKAlCByZXR1cm5zIHRoZSBwcm9jZXNzIHRvIHRoZSB1bmJvdW5kIHN0YXRlKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bmJpbmRBdWRpdFNlcnZpY2UoKTogdm9pZCB7XG4gIGF1ZGl0QmluZGluZz8uY2xpZW50Py5jbG9zZSgpO1xuICBhdWRpdEJpbmRpbmcgPSBudWxsO1xufVxuXG5mdW5jdGlvbiBib3VuZEF1ZGl0KCk6IEF1ZGl0QmluZGluZyAmIHsgY2xpZW50OiBSZW1vdGVBdWRpdENsaWVudCB9IHtcbiAgaWYgKCFhdWRpdEJpbmRpbmcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2F1ZGl0IG5vdCBpbml0aWFsaXNlZDogY2FsbCB3aXJlU2VydmljZVNlY3VyaXR5KHNlcnZpY2VOYW1lKSBhdCBib290IGJlZm9yZSByZWNvcmRBdWRpdCgpJyk7XG4gIH1cbiAgYXVkaXRCaW5kaW5nLmNsaWVudCA/Pz0gY3JlYXRlUmVtb3RlQXVkaXRDbGllbnQoe1xuICAgIHNwb29sOiBjcmVhdGVFbnZSZWRpc0F1ZGl0U3Bvb2woeyBrZXk6IGF1ZGl0U3Bvb2xLZXkoYXVkaXRCaW5kaW5nLnNlcnZpY2VOYW1lKSB9KSA/PyB1bmRlZmluZWQsXG4gIH0pO1xuICByZXR1cm4gYXVkaXRCaW5kaW5nIGFzIEF1ZGl0QmluZGluZyAmIHsgY2xpZW50OiBSZW1vdGVBdWRpdENsaWVudCB9O1xufVxuXG4vKipcbiAqIFRoZSBib3VuZCBzZXJ2aWNlJ3MgUmVtb3RlQXVkaXRDbGllbnQuIFRocm93cyBcImF1ZGl0IG5vdCBpbml0aWFsaXNlZFwiIGJlZm9yZVxuICogYHdpcmVTZXJ2aWNlU2VjdXJpdHlgIGhhcyBydW4uIEludGVybmFsOiBjYWxsZXJzIGVtaXQgdGhyb3VnaFxuICoge0BsaW5rIHJlY29yZEF1ZGl0fTsgYHdpcmVTZXJ2aWNlU2VjdXJpdHlgIGhhbmRzIHRoaXMgZ2V0dGVyIHRvIHRoZVxuICogYGF1dGh6LmRlbmllZGAgc2luay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJvdW5kQXVkaXRDbGllbnQoKTogUmVtb3RlQXVkaXRDbGllbnQge1xuICByZXR1cm4gYm91bmRBdWRpdCgpLmNsaWVudDtcbn1cblxuLyoqXG4gKiBSZWNvcmQgYW4gZXZlbnQgaW4gdGhlIGR1cmFibGUsIGhhc2gtY2hhaW5lZCBjZW50cmFsIGF1ZGl0IHRyYWlsIChwbGF0Zm9ybSdzXG4gKiBgUE9TVCAvYXVkaXQvZXZlbnRzYCBpbmdlc3QpLCBhdHRyaWJ1dGVkIHRvIHRoZSBzZXJ2aWNlIGJvdW5kIGF0IGJvb3QuXG4gKlxuICogRklSRS1BTkQtRk9SR0VUOiBkZWxpdmVyeSBuZXZlciBibG9ja3Mgb3IgdGhyb3dzIOKAlCBlbWl0IG9ubHkgQUZURVIgdGhlXG4gKiBtdXRhdGlvbiBzdWNjZWVkcywgYW5kIGtlZXAgYGRldGFpbHNgIGZyZWUgb2Ygc2VjcmV0cy90b2tlbnMsIFBJSSBhbmQgQVdTXG4gKiBhY2NvdW50IGlkcy4gVGhlIE9ORSB0aGluZyB0aGF0IHRocm93cyBpcyBjYWxsaW5nIGl0IGJlZm9yZVxuICogYHdpcmVTZXJ2aWNlU2VjdXJpdHkoc2VydmljZU5hbWUpYCBoYXMgYm91bmQgdGhlIHNlcnZpY2U6IHRoYXQgaXMgYSB3aXJpbmdcbiAqIGJ1ZywgYW5kIGZhaWxpbmcgbG91ZGx5IGJlYXRzIHNpbGVudGx5IGF0dHJpYnV0aW5nIHRoZSBldmVudCB0byBub2JvZHkuXG4gKlxuICogKFRoZSB3aW5zdG9uL0xva2kgbG9nIGxpbmUgaXMgYSBkaWZmZXJlbnQgc2luazogYGxvZ0F1ZGl0RXZlbnRgLilcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlY29yZEF1ZGl0KGV2ZW50OiBSZW1vdGVBdWRpdEV2ZW50KTogdm9pZCB7XG4gIGNvbnN0IHsgY2xpZW50LCBzZXJ2aWNlTmFtZSB9ID0gYm91bmRBdWRpdCgpO1xuICBjbGllbnQucmVjb3JkKGV2ZW50LCBzZXJ2aWNlTmFtZSk7XG59XG4iXX0=
|
|
@@ -49,4 +49,4 @@ export async function retryForever(fn, { baseMs, maxMs, onAttemptFailed, shouldC
|
|
|
49
49
|
}
|
|
50
50
|
return undefined;
|
|
51
51
|
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cnktZm9yZXZlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL3JldHJ5LWZvcmV2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7Ozs7Ozs7O0dBWUc7QUFFSCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHaEQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxTQUFpQixFQUFFLEtBQWE7SUFDNUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQXNCRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsWUFBWSxDQUNoQyxFQUFvQixFQUNwQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBdUI7SUFFdkUsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQ3JCLE9BQU8sY0FBYyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDcEIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixlQUFlLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2hDLHdFQUF3RTtZQUN4RSxpRUFBaUU7WUFDakUsTUFBTSxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDdEMsT0FBTyxHQUFHLGFBQWEsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogQ2FwcGVkIGV4cG9uZW50aWFsIGJhY2tvZmYgZm9yIG9wZXJhdGlvbnMgdGhhdCBtdXN0IE5FVkVSIGdpdmUgdXAuXG4gKlxuICogRGlzdGluY3QgZnJvbSBgcmV0cnktc3RyYXRlZ3kudHNgIG5leHQgZG9vciwgd2hpY2ggaXMgSFRUUC1zaGFwZWQ6IGl0IGhhcyBhXG4gKiBib3VuZGVkIGF0dGVtcHQgY291bnQsIGluc3BlY3RzIHN0YXR1cyBjb2RlcyBhbmQgaG9ub3VycyBgUmV0cnktQWZ0ZXJgLiBUaGlzXG4gKiBvbmUgaXMgZm9yIHByb2Nlc3MtbGlmZXRpbWUgZGVwZW5kZW5jeSB3YWl0cyDigJQgYSBjb2xkIE1vbmdvIGF0IGJvb3QsIGEgUmVkaXNcbiAqIHB1Yi9zdWIgc3Vic2NyaXB0aW9uIHRoYXQgaGFzIHRvIGNvbWUgdXAgZXZlbnR1YWxseSDigJQgd2hlcmUgZ2l2aW5nIHVwIGFmdGVyIE5cbiAqIGF0dGVtcHRzIGlzIHRoZSB3cm9uZyBhbnN3ZXIuIENyYXNoLWxvb3BpbmcgdGhlIHBvZCAob3IsIHdvcnNlLCBzaWxlbnRseVxuICogY29udGludWluZyBkZWdyYWRlZCkgaXMgd2hhdCB0aGVzZSBsb29wcyBleGlzdCB0byBhdm9pZC5cbiAqXG4gKiBGb3VyIHNlcGFyYXRlIGhhbmQtcm9sbGVkIGNvcGllcyBvZiB0aGUgc2FtZSBgZGVsYXkgPSBNYXRoLm1pbihkZWxheSAqIDIsXG4gKiBtYXgpYCBsb29wIGhhZCBkcmlmdGVkIGFwYXJ0OyB0aGlzIGlzIHRoZSBvbmUgaW1wbGVtZW50YXRpb24uXG4gKi9cblxuaW1wb3J0IHsgc2xlZXAgfSBmcm9tICcuLi91dGlscy9jb25jdXJyZW5jeS5qcyc7XG5cblxuLyoqXG4gKiBUaGUgbmV4dCBkZWxheSBpbiBhIGNhcHBlZCBkb3VibGluZyBzZXF1ZW5jZS5cbiAqXG4gKiBFeHBvc2VkIG9uIGl0cyBvd24gZm9yIGxvb3BzIHRoYXQgYXJlIG5vdCBcInJldHJ5IHVudGlsIHN1Y2Nlc3NcIiDigJQgbm90YWJseSBhXG4gKiByZWFkaW5lc3MgTU9OSVRPUiwgd2hpY2gga2VlcHMgcG9sbGluZyBmb3JldmVyIGFuZCBvbmx5IHdhbnRzIHRoZSBiYWNrb2ZmXG4gKiBhcml0aG1ldGljIHdoaWxlIGl0IHdhaXRzIGZvciBhIGRlcGVuZGVuY3kgdG8gY29tZSBiYWNrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbmV4dEJhY2tvZmZNcyhjdXJyZW50TXM6IG51bWJlciwgbWF4TXM6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiBNYXRoLm1pbihjdXJyZW50TXMgKiAyLCBtYXhNcyk7XG59XG5cbi8qKiBPcHRpb25zIGZvciB7QGxpbmsgcmV0cnlGb3JldmVyfS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV0cnlGb3JldmVyT3B0aW9ucyB7XG4gIC8qKiBGaXJzdCBkZWxheSBhZnRlciBhIGZhaWx1cmUsIGluIG1zLiBEb3VibGVzIGZyb20gaGVyZS4gKi9cbiAgYmFzZU1zOiBudW1iZXI7XG4gIC8qKiBDZWlsaW5nIHRoZSBkb3VibGluZyBkZWxheSBpcyBjYXBwZWQgYXQsIGluIG1zLiAqL1xuICBtYXhNczogbnVtYmVyO1xuICAvKipcbiAgICogQ2FsbGVkIGFmdGVyIGV2ZXJ5IGZhaWxlZCBhdHRlbXB0LCB3aXRoIHRoZSBlcnJvciBhbmQgdGhlIGRlbGF5IGFib3V0IHRvXG4gICAqIGJlIHdhaXRlZC4gVGhpcyBpcyB3aGVyZSB0aGUgY2FsbGVyIGxvZ3Mg4oCUIHRoZSBoZWxwZXIgbmV2ZXIgbG9ncyBpdHNlbGYsXG4gICAqIGJlY2F1c2UgZWFjaCBjYWxsIHNpdGUgd2FudHMgaXRzIG93biBtZXNzYWdlIGFuZCBmaWVsZHMuXG4gICAqL1xuICBvbkF0dGVtcHRGYWlsZWQ6IChlcnJvcjogdW5rbm93biwgZGVsYXlNczogbnVtYmVyKSA9PiB2b2lkO1xuICAvKipcbiAgICogS2VlcCBnb2luZz8gQ2hlY2tlZCBiZWZvcmUgZWFjaCBhdHRlbXB0LiBEZWZhdWx0cyB0byBcImFsd2F5c1wiLiBBIGNhbGxlclxuICAgKiB0aGF0IGNhbiBzaHV0IGRvd24gKGEgY2xvc2luZyByZWxheSwgYSBkcmFpbmluZyBzZXJ2ZXIpIHBhc3NlcyBpdHMgYWJvcnRcbiAgICogcHJlZGljYXRlIGhlcmUgc28gdGhlIGxvb3AgbmV2ZXIga2VlcHMgYSBkeWluZyBwcm9jZXNzIGFsaXZlLlxuICAgKi9cbiAgc2hvdWxkQ29udGludWU/OiAoKSA9PiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJ1biBgZm5gIHVudGlsIGl0IHN1Y2NlZWRzLCB3YWl0aW5nIGBiYXNlTXNgLCBgMsOXYmFzZU1zYCwg4oCmIGNhcHBlZCBhdFxuICogYG1heE1zYCBiZXR3ZWVuIGF0dGVtcHRzLlxuICpcbiAqIFJlc29sdmVzIHdpdGggYGZuYCdzIHZhbHVlIG9uIHRoZSBmaXJzdCBzdWNjZXNzLiBSZXNvbHZlcyB3aXRoIGB1bmRlZmluZWRgXG4gKiB3aGVuIGBzaG91bGRDb250aW51ZSgpYCB0dXJucyBmYWxzZSBiZWZvcmUgYW4gYXR0ZW1wdCDigJQgdGhlIGNhbGxlciBhYm9ydGVkLFxuICogd2hpY2ggaXMgbm90IGFuIGVycm9yLiBOZXZlciByZWplY3RzOiB0aGUgd2hvbGUgcG9pbnQgaXMgdGhhdCBhIGZhaWxpbmdcbiAqIGRlcGVuZGVuY3kgZG9lcyBub3QgcHJvcGFnYXRlIG91dCBhcyBhIHRocm93biBib290IGVycm9yLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmV0cnlGb3JldmVyPFQ+KFxuICBmbjogKCkgPT4gUHJvbWlzZTxUPixcbiAgeyBiYXNlTXMsIG1heE1zLCBvbkF0dGVtcHRGYWlsZWQsIHNob3VsZENvbnRpbnVlIH06IFJldHJ5Rm9yZXZlck9wdGlvbnMsXG4pOiBQcm9taXNlPFQgfCB1bmRlZmluZWQ+IHtcbiAgbGV0IGRlbGF5TXMgPSBiYXNlTXM7XG4gIHdoaWxlIChzaG91bGRDb250aW51ZT8uKCkgPz8gdHJ1ZSkge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgZm4oKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgb25BdHRlbXB0RmFpbGVkKGVycm9yLCBkZWxheU1zKTtcbiAgICAgIC8vIGB1bnJlZmAnZDogdGhlc2UgbG9vcHMgcnVuIGZvciB0aGUgbGlmZSBvZiB0aGUgcHJvY2VzcywgYW5kIGEgcGVuZGluZ1xuICAgICAgLy8gYmFja29mZiB0aW1lciBtdXN0IG5ldmVyIGtlZXAgYSBkcmFpbmluZyBwcm9jZXNzIGZyb20gZXhpdGluZy5cbiAgICAgIGF3YWl0IHNsZWVwKGRlbGF5TXMsIHsgdW5yZWY6IHRydWUgfSk7XG4gICAgICBkZWxheU1zID0gbmV4dEJhY2tvZmZNcyhkZWxheU1zLCBtYXhNcyk7XG4gICAgfVxuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG4iXX0=
|
|
@@ -116,4 +116,4 @@ export function getErrorRetryDecision(attempt, config) {
|
|
|
116
116
|
}
|
|
117
117
|
return { shouldRetry: false, delayMs: 0, reason: 'Max retries exceeded' };
|
|
118
118
|
}
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cnktc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvcmV0cnktc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDcEYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzVGLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLENBQUMsQ0FBQztBQUVoRCxzREFBc0Q7QUFDdEQsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUM7QUFFbEMsK0VBQStFO0FBQy9FLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBOEIvQzs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxNQUFxQztJQUNuRSxJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQzlCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3pELElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFFN0IsNEJBQTRCO0lBQzVCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENB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S0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxDQUFDO0FBQ3JFLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLE9BQWUsRUFDZixNQUFtQjtJQUVuQixJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEMsTUFBTSxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNoRSxPQUFPO1lBQ0wsV0FBVyxFQUFFLElBQUk7WUFDakIsT0FBTyxFQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUM7WUFDNUIsTUFBTSxFQUFFLDZCQUE2QjtTQUN0QyxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLHNCQUFzQixFQUFFLENBQUM7QUFDNUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgKiBhcyBodHRwIGZyb20gJ2h0dHAnO1xuaW1wb3J0IHsgZW52SW50IH0gZnJvbSAnLi4vdXRpbHMvZW52LmpzJztcblxuLyoqXG4gKiBEZWZhdWx0IHJldHJ5IGNvbmZpZ3VyYXRpb24gKGVudjogYEhUVFBfQ0xJRU5UX01BWF9SRVRSSUVTYCwgYEhUVFBfQ0xJRU5UX1JFVFJZX0RFTEFZX01TYCkuXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX01BWF9SRVRSSUVTID0gZW52SW50KCdIVFRQX0NMSUVOVF9NQVhfUkVUUklFUycsIDIsIHsgbWluOiAwIH0pO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUkVUUllfREVMQVlfTVMgPSBlbnZJbnQoJ0hUVFBfQ0xJRU5UX1JFVFJZX0RFTEFZX01TJywgMjAwLCB7IG1pbjogMCB9KTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX01BWF9SQVRFX0xJTUlUX1JFVFJJRVMgPSA0O1xuXG4vKiogTWF4IFJldHJ5LUFmdGVyIHZhbHVlIHdlJ2xsIGhvbm9yICg2MCBzZWNvbmRzKS4gKi9cbmNvbnN0IE1BWF9SRVRSWV9BRlRFUl9NUyA9IDYwXzAwMDtcblxuLyoqIEhUVFAgc3RhdHVzIGNvZGVzIGNvbnNpZGVyZWQgdHJhbnNpZW50IHNlcnZlciBlcnJvcnMgZWxpZ2libGUgZm9yIHJldHJ5LiAqL1xuY29uc3QgVFJBTlNJRU5UX1NUQVRVU19DT0RFUyA9IFs1MDIsIDUwMywgNTA0XTtcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciByZXRyeSBiZWhhdmlvci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXRyeUNvbmZpZyB7XG4gIC8qKiBSZXRyaWVzIEFGVEVSIHRoZSBpbml0aWFsIGF0dGVtcHQgKHNvIGAzYCDih5IgdXAgdG8gNCBhdHRlbXB0cykuICovXG4gIG1heFJldHJpZXM6IG51bWJlcjtcbiAgLyoqIEJhc2UgZGVsYXkgYmV0d2VlbiByZXRyaWVzIGluIG1zIOKAlCBkb3VibGVzIGVhY2ggYXR0ZW1wdCAoZGVmYXVsdDogMjAwKSAqL1xuICByZXRyeURlbGF5TXM6IG51bWJlcjtcbiAgLyoqXG4gICAqIE1heGltdW0gcmV0cnkgYXR0ZW1wdHMgc3BlY2lmaWNhbGx5IGZvciA0MjkgcmF0ZSBsaW1pdGluZyAoZGVmYXVsdDpcbiAgICoge0BsaW5rIERFRkFVTFRfTUFYX1JBVEVfTElNSVRfUkVUUklFU30pLiBIVFRQLW9ubHkg4oCUIG9taXQgaXQgZm9yIGFcbiAgICogbm9uLUhUVFAgY29uc3VtZXIgc3VjaCBhcyB0aGUgZGF0YWJhc2UgY29ubmVjdGlvbiByZXRyeS5cbiAgICovXG4gIG1heFJhdGVMaW1pdFJldHJpZXM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUmVzdWx0IG9mIGEgcmV0cnkgZGVjaXNpb246IHdoZXRoZXIgdG8gcmV0cnksIGFuZCBob3cgbG9uZyB0byB3YWl0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJldHJ5RGVjaXNpb24ge1xuICAvKiogV2hldGhlciB0aGUgcmVxdWVzdCBzaG91bGQgYmUgcmV0cmllZCAqL1xuICBzaG91bGRSZXRyeTogYm9vbGVhbjtcbiAgLyoqIERlbGF5IGluIG1pbGxpc2Vjb25kcyBiZWZvcmUgcmV0cnlpbmcgKHdpdGggaml0dGVyIGFwcGxpZWQpICovXG4gIGRlbGF5TXM6IG51bWJlcjtcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIHJlYXNvbiBmb3IgdGhlIHJldHJ5IGRlY2lzaW9uICovXG4gIHJlYXNvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFBhcnNlIGEgYFJldHJ5LUFmdGVyYCBoZWFkZXIgdmFsdWUgaW50byBtaWxsaXNlY29uZHMuXG4gKiBTdXBwb3J0cyBudW1lcmljIHNlY29uZHMgKGUuZy4gXCI1XCIpIGFuZCBIVFRQLWRhdGUgZm9ybWF0LlxuICogUmV0dXJucyBgdW5kZWZpbmVkYCBmb3IgbWlzc2luZyBvciBpbnZhbGlkIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUmV0cnlBZnRlcihoZWFkZXI6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFoZWFkZXIpIHJldHVybiB1bmRlZmluZWQ7XG4gIGNvbnN0IHZhbHVlID0gQXJyYXkuaXNBcnJheShoZWFkZXIpID8gaGVhZGVyWzBdIDogaGVhZGVyO1xuICBpZiAoIXZhbHVlKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gIC8vIFRyeSBudW1lcmljIHNlY29uZHMgZmlyc3RcbiAgY29uc3Qgc2Vjb25kcyA9IE51bWJlcih2YWx1ZSk7XG4gIGlmICghaXNOYU4oc2Vjb25kcykgJiYgc2Vjb25kcyA+PSAwKSB7XG4gICAgcmV0dXJuIE1hdGgubWluKHNlY29uZHMgKiAxMDAwLCBNQVhfUkVUUllfQUZURVJfTVMpO1xuICB9XG5cbiAgLy8gVHJ5IEhUVFAtZGF0ZVxuICBjb25zdCBkYXRlID0gRGF0ZS5wYXJzZSh2YWx1ZSk7XG4gIGlmICghaXNOYU4oZGF0ZSkpIHtcbiAgICBjb25zdCBkZWxheU1zID0gZGF0ZSAtIERhdGUubm93KCk7XG4gICAgaWYgKGRlbGF5TXMgPiAwKSByZXR1cm4gTWF0aC5taW4oZGVsYXlNcywgTUFYX1JFVFJZX0FGVEVSX01TKTtcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQXBwbHkgKy8tMjUlIHJhbmRvbSBqaXR0ZXIgdG8gYSBkZWxheSB0byBwcmV2ZW50IHRodW5kZXJpbmcgaGVyZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZEppdHRlcihkZWxheTogbnVtYmVyKTogbnVtYmVyIHtcbiAgY29uc3Qgaml0dGVyID0gZGVsYXkgKiAwLjI1ICogKDIgKiBNYXRoLnJhbmRvbSgpIC0gMSk7IC8vIC0yNSUgdG8gKzI1JVxuICByZXR1cm4gTWF0aC5tYXgoMCwgTWF0aC5yb3VuZChkZWxheSArIGppdHRlcikpO1xufVxuXG4vKipcbiAqIENhbGN1bGF0ZSBleHBvbmVudGlhbCBiYWNrb2ZmIGRlbGF5IGZvciBhIGdpdmVuIGF0dGVtcHQuXG4gKlxuICogQHBhcmFtIGJhc2VEZWxheSAtIEJhc2UgZGVsYXkgaW4gbWlsbGlzZWNvbmRzXG4gKiBAcGFyYW0gYXR0ZW1wdCAtIFplcm8tYmFzZWQgYXR0ZW1wdCBudW1iZXJcbiAqIEByZXR1cm5zIERlbGF5IGluIG1pbGxpc2Vjb25kcyAod2l0aG91dCBqaXR0ZXIpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVCYWNrb2ZmKGJhc2VEZWxheTogbnVtYmVyLCBhdHRlbXB0OiBudW1iZXIpOiBudW1iZXIge1xuICByZXR1cm4gYmFzZURlbGF5ICogTWF0aC5wb3coMiwgYXR0ZW1wdCk7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIHdoZXRoZXIgYSBzdGF0dXMgY29kZSByZXByZXNlbnRzIGEgdHJhbnNpZW50IHNlcnZlciBlcnJvclxuICogdGhhdCBpcyBlbGlnaWJsZSBmb3IgcmV0cnkgKDUwMiwgNTAzLCA1MDQpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNUcmFuc2llbnRTdGF0dXNDb2RlKHN0YXR1c0NvZGU6IG51bWJlcik6IGJvb2xlYW4ge1xuICByZXR1cm4gVFJBTlNJRU5UX1NUQVRVU19DT0RFUy5pbmNsdWRlcyhzdGF0dXNDb2RlKTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgd2hldGhlciBhIHN0YXR1cyBjb2RlIGluZGljYXRlcyByYXRlIGxpbWl0aW5nICg0MjkpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNSYXRlTGltaXRlZChzdGF0dXNDb2RlOiBudW1iZXIpOiBib29sZWFuIHtcbiAgcmV0dXJuIHN0YXR1c0NvZGUgPT09IDQyOTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgd2hldGhlciBhIGZhaWxlZCByZXNwb25zZSBzaG91bGQgYmUgcmV0cmllZCwgYW5kIGNvbXB1dGUgdGhlIGRlbGF5LlxuICpcbiAqIEBwYXJhbSBzdGF0dXNDb2RlIC0gSFRUUCBzdGF0dXMgY29kZSBvZiB0aGUgcmVzcG9uc2VcbiAqIEBwYXJhbSBoZWFkZXJzIC0gUmVzcG9uc2UgaGVhZGVycyAodXNlZCB0byByZWFkIFJldHJ5LUFmdGVyIGZvciA0MjkpXG4gKiBAcGFyYW0gYXR0ZW1wdCAtIFplcm8tYmFzZWQgYXR0ZW1wdCBudW1iZXJcbiAqIEBwYXJhbSBjb25maWcgLSBSZXRyeSBjb25maWd1cmF0aW9uXG4gKiBAcmV0dXJucyBBIFJldHJ5RGVjaXNpb24gaW5kaWNhdGluZyB3aGV0aGVyIHRvIHJldHJ5IGFuZCB0aGUgZGVsYXlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJldHJ5RGVjaXNpb24oXG4gIHN0YXR1c0NvZGU6IG51bWJlcixcbiAgaGVhZGVyczogaHR0cC5JbmNvbWluZ0h0dHBIZWFkZXJzLFxuICBhdHRlbXB0OiBudW1iZXIsXG4gIGNvbmZpZzogUmV0cnlDb25maWcsXG4pOiBSZXRyeURlY2lzaW9uIHtcbiAgLy8gNDI5IHJhdGUgbGltaXRpbmcg4oCUIHVzZSBSZXRyeS1BZnRlciBvciBsb25nZXIgYmFja29mZiAoNHggYmFzZSlcbiAgaWYgKGlzUmF0ZUxpbWl0ZWQoc3RhdHVzQ29kZSkgJiYgYXR0ZW1wdCA8IChjb25maWcubWF4UmF0ZUxpbWl0UmV0cmllcyA/PyBERUZBVUxUX01BWF9SQVRFX0xJTUlUX1JFVFJJRVMpKSB7XG4gICAgY29uc3QgcmV0cnlBZnRlciA9IHBhcnNlUmV0cnlBZnRlcihoZWFkZXJzWydyZXRyeS1hZnRlciddKTtcbiAgICBjb25zdCByYXdEZWxheSA9IHJldHJ5QWZ0ZXIgPz8gKGNvbmZpZy5yZXRyeURlbGF5TXMgKiA0ICogTWF0aC5wb3coMiwgYXR0ZW1wdCkpO1xuICAgIHJldHVybiB7XG4gICAgICBzaG91bGRSZXRyeTogdHJ1ZSxcbiAgICAgIGRlbGF5TXM6IGFkZEppdHRlcihyYXdEZWxheSksXG4gICAgICByZWFzb246ICdSYXRlIGxpbWl0ZWQgKDQyOSknLFxuICAgIH07XG4gIH1cblxuICAvLyA1eHggdHJhbnNpZW50IHNlcnZlciBlcnJvcnMg4oCUIHN0YW5kYXJkIGV4cG9uZW50aWFsIGJhY2tvZmZcbiAgaWYgKGlzVHJhbnNpZW50U3RhdHVzQ29kZShzdGF0dXNDb2RlKSAmJiBhdHRlbXB0IDwgY29uZmlnLm1heFJldHJpZXMpIHtcbiAgICBjb25zdCByYXdEZWxheSA9IGNhbGN1bGF0ZUJhY2tvZmYoY29uZmlnLnJldHJ5RGVsYXlNcywgYXR0ZW1wdCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNob3VsZFJldHJ5OiB0cnVlLFxuICAgICAgZGVsYXlNczogYWRkSml0dGVyKHJhd0RlbGF5KSxcbiAgICAgIHJlYXNvbjogYFRyYW5zaWVudCBzZXJ2ZXIgZXJyb3IgKCR7c3RhdHVzQ29kZX0pYCxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHsgc2hvdWxkUmV0cnk6IGZhbHNlLCBkZWxheU1zOiAwLCByZWFzb246ICdOb3QgcmV0cnlhYmxlJyB9O1xufVxuXG4vKipcbiAqIERldGVybWluZSB3aGV0aGVyIGEgY29ubmVjdGlvbi90aW1lb3V0IGVycm9yIHNob3VsZCBiZSByZXRyaWVkLCBhbmQgY29tcHV0ZSB0aGUgZGVsYXkuXG4gKlxuICogQHBhcmFtIGF0dGVtcHQgLSBaZXJvLWJhc2VkIGF0dGVtcHQgbnVtYmVyXG4gKiBAcGFyYW0gY29uZmlnIC0gUmV0cnkgY29uZmlndXJhdGlvblxuICogQHJldHVybnMgQSBSZXRyeURlY2lzaW9uIGluZGljYXRpbmcgd2hldGhlciB0byByZXRyeSBhbmQgdGhlIGRlbGF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFcnJvclJldHJ5RGVjaXNpb24oXG4gIGF0dGVtcHQ6IG51bWJlcixcbiAgY29uZmlnOiBSZXRyeUNvbmZpZyxcbik6IFJldHJ5RGVjaXNpb24ge1xuICBpZiAoYXR0ZW1wdCA8IGNvbmZpZy5tYXhSZXRyaWVzKSB7XG4gICAgY29uc3QgcmF3RGVsYXkgPSBjYWxjdWxhdGVCYWNrb2ZmKGNvbmZpZy5yZXRyeURlbGF5TXMsIGF0dGVtcHQpO1xuICAgIHJldHVybiB7XG4gICAgICBzaG91bGRSZXRyeTogdHJ1ZSxcbiAgICAgIGRlbGF5TXM6IGFkZEppdHRlcihyYXdEZWxheSksXG4gICAgICByZWFzb246ICdDb25uZWN0aW9uIG9yIHRpbWVvdXQgZXJyb3InLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4geyBzaG91bGRSZXRyeTogZmFsc2UsIGRlbGF5TXM6IDAsIHJlYXNvbjogJ01heCByZXRyaWVzIGV4Y2VlZGVkJyB9O1xufVxuIl19
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cnktc3RyYXRlZ3kuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9yZXRyeS1zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNwRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsNEJBQTRCLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDNUYsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsQ0FBQyxDQUFDO0FBRWhELHNEQUFzRDtBQUN0RCxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQztBQUVsQywrRUFBK0U7QUFDL0UsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7QUE4Qi9DOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLE1BQXFDO0lBQ25FLElBQUksQ0FBQyxNQUFNO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFDOUIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDekQsSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUU3Qiw0QkFBNEI7SUFDNUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLElB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QUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLENBQUM7QUFDckUsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsT0FBZSxFQUNmLE1BQW1CO0lBRW5CLElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQyxNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2hFLE9BQU87WUFDTCxXQUFXLEVBQUUsSUFBSTtZQUNqQixPQUFPLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQztZQUM1QixNQUFNLEVBQUUsNkJBQTZCO1NBQ3RDLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztBQUM1RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCAqIGFzIGh0dHAgZnJvbSAnaHR0cCc7XG5pbXBvcnQgeyBlbnZJbnQgfSBmcm9tICcuLi91dGlscy9lbnYuanMnO1xuXG4vKipcbiAqIERlZmF1bHQgcmV0cnkgY29uZmlndXJhdGlvbiAoZW52OiBgSFRUUF9DTElFTlRfTUFYX1JFVFJJRVNgLCBgSFRUUF9DTElFTlRfUkVUUllfREVMQVlfTVNgKS5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTUFYX1JFVFJJRVMgPSBlbnZJbnQoJ0hUVFBfQ0xJRU5UX01BWF9SRVRSSUVTJywgMiwgeyBtaW46IDAgfSk7XG5leHBvcnQgY29uc3QgREVGQVVMVF9SRVRSWV9ERUxBWV9NUyA9IGVudkludCgnSFRUUF9DTElFTlRfUkVUUllfREVMQVlfTVMnLCAyMDAsIHsgbWluOiAwIH0pO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTUFYX1JBVEVfTElNSVRfUkVUUklFUyA9IDQ7XG5cbi8qKiBNYXggUmV0cnktQWZ0ZXIgdmFsdWUgd2UnbGwgaG9ub3IgKDYwIHNlY29uZHMpLiAqL1xuY29uc3QgTUFYX1JFVFJZX0FGVEVSX01TID0gNjBfMDAwO1xuXG4vKiogSFRUUCBzdGF0dXMgY29kZXMgY29uc2lkZXJlZCB0cmFuc2llbnQgc2VydmVyIGVycm9ycyBlbGlnaWJsZSBmb3IgcmV0cnkuICovXG5jb25zdCBUUkFOU0lFTlRfU1RBVFVTX0NPREVTID0gWzUwMiwgNTAzLCA1MDRdO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHJldHJ5IGJlaGF2aW9yLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJldHJ5Q29uZmlnIHtcbiAgLyoqIFJldHJpZXMgQUZURVIgdGhlIGluaXRpYWwgYXR0ZW1wdCAoc28gYDNgIOKHkiB1cCB0byA0IGF0dGVtcHRzKS4gKi9cbiAgbWF4UmV0cmllczogbnVtYmVyO1xuICAvKiogQmFzZSBkZWxheSBiZXR3ZWVuIHJldHJpZXMgaW4gbXMg4oCUIGRvdWJsZXMgZWFjaCBhdHRlbXB0IChkZWZhdWx0OiAyMDApICovXG4gIHJldHJ5RGVsYXlNczogbnVtYmVyO1xuICAvKipcbiAgICogTWF4aW11bSByZXRyeSBhdHRlbXB0cyBzcGVjaWZpY2FsbHkgZm9yIDQyOSByYXRlIGxpbWl0aW5nIChkZWZhdWx0OlxuICAgKiB7QGxpbmsgREVGQVVMVF9NQVhfUkFURV9MSU1JVF9SRVRSSUVTfSkuIEhUVFAtb25seSDigJQgb21pdCBpdCBmb3IgYVxuICAgKiBub24tSFRUUCBjb25zdW1lciBzdWNoIGFzIHRoZSBkYXRhYmFzZSBjb25uZWN0aW9uIHJldHJ5LlxuICAgKi9cbiAgbWF4UmF0ZUxpbWl0UmV0cmllcz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBSZXN1bHQgb2YgYSByZXRyeSBkZWNpc2lvbjogd2hldGhlciB0byByZXRyeSwgYW5kIGhvdyBsb25nIHRvIHdhaXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV0cnlEZWNpc2lvbiB7XG4gIC8qKiBXaGV0aGVyIHRoZSByZXF1ZXN0IHNob3VsZCBiZSByZXRyaWVkICovXG4gIHNob3VsZFJldHJ5OiBib29sZWFuO1xuICAvKiogRGVsYXkgaW4gbWlsbGlzZWNvbmRzIGJlZm9yZSByZXRyeWluZyAod2l0aCBqaXR0ZXIgYXBwbGllZCkgKi9cbiAgZGVsYXlNczogbnVtYmVyO1xuICAvKiogSHVtYW4tcmVhZGFibGUgcmVhc29uIGZvciB0aGUgcmV0cnkgZGVjaXNpb24gKi9cbiAgcmVhc29uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyc2UgYSBgUmV0cnktQWZ0ZXJgIGhlYWRlciB2YWx1ZSBpbnRvIG1pbGxpc2Vjb25kcy5cbiAqIFN1cHBvcnRzIG51bWVyaWMgc2Vjb25kcyAoZS5nLiBcIjVcIikgYW5kIEhUVFAtZGF0ZSBmb3JtYXQuXG4gKiBSZXR1cm5zIGB1bmRlZmluZWRgIGZvciBtaXNzaW5nIG9yIGludmFsaWQgdmFsdWVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VSZXRyeUFmdGVyKGhlYWRlcjogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICBpZiAoIWhlYWRlcikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgY29uc3QgdmFsdWUgPSBBcnJheS5pc0FycmF5KGhlYWRlcikgPyBoZWFkZXJbMF0gOiBoZWFkZXI7XG4gIGlmICghdmFsdWUpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgLy8gVHJ5IG51bWVyaWMgc2Vjb25kcyBmaXJzdFxuICBjb25zdCBzZWNvbmRzID0gTnVtYmVyKHZhbHVlKTtcbiAgaWYgKCFpc05hTihzZWNvbmRzKSAmJiBzZWNvbmRzID49IDApIHtcbiAgICByZXR1cm4gTWF0aC5taW4oc2Vjb25kcyAqIDEwMDAsIE1BWF9SRVRSWV9BRlRFUl9NUyk7XG4gIH1cblxuICAvLyBUcnkgSFRUUC1kYXRlXG4gIGNvbnN0IGRhdGUgPSBEYXRlLnBhcnNlKHZhbHVlKTtcbiAgaWYgKCFpc05hTihkYXRlKSkge1xuICAgIGNvbnN0IGRlbGF5TXMgPSBkYXRlIC0gRGF0ZS5ub3coKTtcbiAgICBpZiAoZGVsYXlNcyA+IDApIHJldHVybiBNYXRoLm1pbihkZWxheU1zLCBNQVhfUkVUUllfQUZURVJfTVMpO1xuICB9XG5cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBBcHBseSArLy0yNSUgcmFuZG9tIGppdHRlciB0byBhIGRlbGF5IHRvIHByZXZlbnQgdGh1bmRlcmluZyBoZXJkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkSml0dGVyKGRlbGF5OiBudW1iZXIpOiBudW1iZXIge1xuICBjb25zdCBqaXR0ZXIgPSBkZWxheSAqIDAuMjUgKiAoMiAqIE1hdGgucmFuZG9tKCkgLSAxKTsgLy8gLTI1JSB0byArMjUlXG4gIHJldHVybiBNYXRoLm1heCgwLCBNYXRoLnJvdW5kKGRlbGF5ICsgaml0dGVyKSk7XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlIGV4cG9uZW50aWFsIGJhY2tvZmYgZGVsYXkgZm9yIGEgZ2l2ZW4gYXR0ZW1wdC5cbiAqXG4gKiBAcGFyYW0gYmFzZURlbGF5IC0gQmFzZSBkZWxheSBpbiBtaWxsaXNlY29uZHNcbiAqIEBwYXJhbSBhdHRlbXB0IC0gWmVyby1iYXNlZCBhdHRlbXB0IG51bWJlclxuICogQHJldHVybnMgRGVsYXkgaW4gbWlsbGlzZWNvbmRzICh3aXRob3V0IGppdHRlcilcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZUJhY2tvZmYoYmFzZURlbGF5OiBudW1iZXIsIGF0dGVtcHQ6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiBiYXNlRGVsYXkgKiBNYXRoLnBvdygyLCBhdHRlbXB0KTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmUgd2hldGhlciBhIHN0YXR1cyBjb2RlIHJlcHJlc2VudHMgYSB0cmFuc2llbnQgc2VydmVyIGVycm9yXG4gKiB0aGF0IGlzIGVsaWdpYmxlIGZvciByZXRyeSAoNTAyLCA1MDMsIDUwNCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1RyYW5zaWVudFN0YXR1c0NvZGUoc3RhdHVzQ29kZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gIHJldHVybiBUUkFOU0lFTlRfU1RBVFVTX0NPREVTLmluY2x1ZGVzKHN0YXR1c0NvZGUpO1xufVxuXG4vKipcbiAqIERldGVybWluZSB3aGV0aGVyIGEgc3RhdHVzIGNvZGUgaW5kaWNhdGVzIHJhdGUgbGltaXRpbmcgKDQyOSkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1JhdGVMaW1pdGVkKHN0YXR1c0NvZGU6IG51bWJlcik6IGJvb2xlYW4ge1xuICByZXR1cm4gc3RhdHVzQ29kZSA9PT0gNDI5O1xufVxuXG4vKipcbiAqIERldGVybWluZSB3aGV0aGVyIGEgZmFpbGVkIHJlc3BvbnNlIHNob3VsZCBiZSByZXRyaWVkLCBhbmQgY29tcHV0ZSB0aGUgZGVsYXkuXG4gKlxuICogQHBhcmFtIHN0YXR1c0NvZGUgLSBIVFRQIHN0YXR1cyBjb2RlIG9mIHRoZSByZXNwb25zZVxuICogQHBhcmFtIGhlYWRlcnMgLSBSZXNwb25zZSBoZWFkZXJzICh1c2VkIHRvIHJlYWQgUmV0cnktQWZ0ZXIgZm9yIDQyOSlcbiAqIEBwYXJhbSBhdHRlbXB0IC0gWmVyby1iYXNlZCBhdHRlbXB0IG51bWJlclxuICogQHBhcmFtIGNvbmZpZyAtIFJldHJ5IGNvbmZpZ3VyYXRpb25cbiAqIEByZXR1cm5zIEEgUmV0cnlEZWNpc2lvbiBpbmRpY2F0aW5nIHdoZXRoZXIgdG8gcmV0cnkgYW5kIHRoZSBkZWxheVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmV0cnlEZWNpc2lvbihcbiAgc3RhdHVzQ29kZTogbnVtYmVyLFxuICBoZWFkZXJzOiBodHRwLkluY29taW5nSHR0cEhlYWRlcnMsXG4gIGF0dGVtcHQ6IG51bWJlcixcbiAgY29uZmlnOiBSZXRyeUNvbmZpZyxcbik6IFJldHJ5RGVjaXNpb24ge1xuICAvLyA0MjkgcmF0ZSBsaW1pdGluZyDigJQgdXNlIFJldHJ5LUFmdGVyIG9yIGxvbmdlciBiYWNrb2ZmICg0eCBiYXNlKVxuICBpZiAoaXNSYXRlTGltaXRlZChzdGF0dXNDb2RlKSAmJiBhdHRlbXB0IDwgKGNvbmZpZy5tYXhSYXRlTGltaXRSZXRyaWVzID8/IERFRkFVTFRfTUFYX1JBVEVfTElNSVRfUkVUUklFUykpIHtcbiAgICBjb25zdCByZXRyeUFmdGVyID0gcGFyc2VSZXRyeUFmdGVyKGhlYWRlcnNbJ3JldHJ5LWFmdGVyJ10pO1xuICAgIGNvbnN0IHJhd0RlbGF5ID0gcmV0cnlBZnRlciA/PyAoY29uZmlnLnJldHJ5RGVsYXlNcyAqIDQgKiBNYXRoLnBvdygyLCBhdHRlbXB0KSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNob3VsZFJldHJ5OiB0cnVlLFxuICAgICAgZGVsYXlNczogYWRkSml0dGVyKHJhd0RlbGF5KSxcbiAgICAgIHJlYXNvbjogJ1JhdGUgbGltaXRlZCAoNDI5KScsXG4gICAgfTtcbiAgfVxuXG4gIC8vIDV4eCB0cmFuc2llbnQgc2VydmVyIGVycm9ycyDigJQgc3RhbmRhcmQgZXhwb25lbnRpYWwgYmFja29mZlxuICBpZiAoaXNUcmFuc2llbnRTdGF0dXNDb2RlKHN0YXR1c0NvZGUpICYmIGF0dGVtcHQgPCBjb25maWcubWF4UmV0cmllcykge1xuICAgIGNvbnN0IHJhd0RlbGF5ID0gY2FsY3VsYXRlQmFja29mZihjb25maWcucmV0cnlEZWxheU1zLCBhdHRlbXB0KTtcbiAgICByZXR1cm4ge1xuICAgICAgc2hvdWxkUmV0cnk6IHRydWUsXG4gICAgICBkZWxheU1zOiBhZGRKaXR0ZXIocmF3RGVsYXkpLFxuICAgICAgcmVhc29uOiBgVHJhbnNpZW50IHNlcnZlciBlcnJvciAoJHtzdGF0dXNDb2RlfSlgLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4geyBzaG91bGRSZXRyeTogZmFsc2UsIGRlbGF5TXM6IDAsIHJlYXNvbjogJ05vdCByZXRyeWFibGUnIH07XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lIHdoZXRoZXIgYSBjb25uZWN0aW9uL3RpbWVvdXQgZXJyb3Igc2hvdWxkIGJlIHJldHJpZWQsIGFuZCBjb21wdXRlIHRoZSBkZWxheS5cbiAqXG4gKiBAcGFyYW0gYXR0ZW1wdCAtIFplcm8tYmFzZWQgYXR0ZW1wdCBudW1iZXJcbiAqIEBwYXJhbSBjb25maWcgLSBSZXRyeSBjb25maWd1cmF0aW9uXG4gKiBAcmV0dXJucyBBIFJldHJ5RGVjaXNpb24gaW5kaWNhdGluZyB3aGV0aGVyIHRvIHJldHJ5IGFuZCB0aGUgZGVsYXlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVycm9yUmV0cnlEZWNpc2lvbihcbiAgYXR0ZW1wdDogbnVtYmVyLFxuICBjb25maWc6IFJldHJ5Q29uZmlnLFxuKTogUmV0cnlEZWNpc2lvbiB7XG4gIGlmIChhdHRlbXB0IDwgY29uZmlnLm1heFJldHJpZXMpIHtcbiAgICBjb25zdCByYXdEZWxheSA9IGNhbGN1bGF0ZUJhY2tvZmYoY29uZmlnLnJldHJ5RGVsYXlNcywgYXR0ZW1wdCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNob3VsZFJldHJ5OiB0cnVlLFxuICAgICAgZGVsYXlNczogYWRkSml0dGVyKHJhd0RlbGF5KSxcbiAgICAgIHJlYXNvbjogJ0Nvbm5lY3Rpb24gb3IgdGltZW91dCBlcnJvcicsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7IHNob3VsZFJldHJ5OiBmYWxzZSwgZGVsYXlNczogMCwgcmVhc29uOiAnTWF4IHJldHJpZXMgZXhjZWVkZWQnIH07XG59XG4iXX0=
|
|
@@ -103,4 +103,4 @@ export async function ensureBucket(bucket) {
|
|
|
103
103
|
}
|
|
104
104
|
return ready;
|
|
105
105
|
}
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtY2xpZW50LmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvczMtY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCRztBQUVILE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFekMsSUFBSSxNQUFNLEdBQW9CLElBQUksQ0FBQztBQUVuQzs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxRQUFRO0lBQ3RCLElBQUksTUFBTTtRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQzFCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0MsTUFBTSxHQUFHLElBQUksUUFBUSxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxNQUFNLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQztRQUN4QyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakMseUVBQXlFO1FBQ3pFLDZFQUE2RTtRQUM3RSxjQUFjLEVBQUUsT0FBTyxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQztRQUNwRCxXQUFXLEVBQUU7WUFDWCxXQUFXLEVBQUUsTUFBTSxDQUFDLGtCQUFrQixFQUFFLFlBQVksQ0FBQztZQUNyRCxlQUFlLEVBQUUsTUFBTSxDQUFDLHNCQUFzQixFQUFFLFlBQVksQ0FBQztTQUM5RDtLQUNGLENBQUMsQ0FBQztJQUNILE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxvRkFBb0Y7QUFDcEYsTUFBTSxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQXlCLENBQUM7QUFFdEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFlBQVksQ0FBQyxNQUFjO0lBQy9DLElBQUksS0FBSyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsS0FBSyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDbEIsSUFBSSxDQUFDO2dCQUNILE1BQU0sUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksaUJBQWlCLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ25FLENBQUM7WUFBQyxNQUFNLENBQUM7Z0JBQ1AsSUFBSSxDQUFDO29CQUNILE1BQU0sUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksbUJBQW1CLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNuRSxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztnQkFDL0MsQ0FBQztnQkFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO29CQUNiLElBQUksQ0FBQzt3QkFDSCxNQUFNLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLGlCQUFpQixDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFDakUsTUFBTSxDQUFDLElBQUksQ0FBQyxnREFBZ0QsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDaEcsQ0FBQztvQkFBQyxNQUFNLENBQUM7d0JBQ1AsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDNUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxjQUFjLE1BQU0sa0JBQWtCLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ3ZFLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ0wsWUFBWSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFRoZSBzaGFyZWQgUzMtY29tcGF0aWJsZSBjbGllbnQsIGFuZCB0aGUgYnVja2V0LWVuc3VyZSBiYWNrc3RvcCB0aGF0IGdvZXNcbiAqIHdpdGggaXQuXG4gKlxuICogQmFja2VkIGJ5IE1pbklPIGluIGV2ZXJ5IGVudmlyb25tZW50IChzZWxmLWhvc3RlZCwgbm8gQVdTLWFjY291bnQgY291cGxpbmcpO1xuICogYmVjYXVzZSBNaW5JTyBzcGVha3MgdGhlIFMzIEFQSSB0aGlzIHVzZXMgdGhlIEFXUyBTMyBTREssIHNvIGEgcmVhbC1TMyBzd2FwIGlzXG4gKiBhIHB1cmUgY29uZmlnIGNoYW5nZSAoZHJvcCB0aGUgY3VzdG9tIGVuZHBvaW50ICsgcGF0aC1zdHlsZSwgc3VwcGx5IElBTSBjcmVkcykuXG4gKlxuICogQ29uZmlnIChlbnYpIOKAlCBvbmUgc2V0IG9mIG5hbWVzLCByZWFkIGlkZW50aWNhbGx5IGJ5IGV2ZXJ5IHNlcnZpY2U7IGVhY2hcbiAqIGNvbnRhaW5lciBpcyBwb2ludGVkIGF0IGl0cyBPV04gYnVja2V0IHdpdGggYnVja2V0LXNjb3BlZCBjcmVkZW50aWFsczpcbiAqICAgUzNfRU5EUE9JTlQgICAgICAgICAgIE1pbklPL1MzIGVuZHBvaW50IFVSTCAoZS5nLiBodHRwOi8vbWluaW86OTAwMCkuIEVtcHR5XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICDih5IgZGVmYXVsdCBBV1MgUzMgKG5vIGN1c3RvbSBlbmRwb2ludCkuXG4gKiAgIFMzX1JFR0lPTiAgICAgICAgICAgICByZWdpb24gKGRlZmF1bHQgJ3VzLWVhc3QtMScpLlxuICogICBTM19BQ0NFU1NfS0VZX0lEICAgICAgYWNjZXNzIGtleS5cbiAqICAgUzNfU0VDUkVUX0FDQ0VTU19LRVkgIHNlY3JldCBrZXkuXG4gKiAgIFMzX0ZPUkNFX1BBVEhfU1RZTEUgICAndHJ1ZScgZm9yIE1pbklPIChwYXRoLXN0eWxlIGFkZHJlc3NpbmcpOyBkZWZhdWx0IHRydWUuXG4gKlxuICogYFMzX0JVQ0tFVGAgaXMgZGVsaWJlcmF0ZWx5IE5PVCByZWFkIGhlcmU6IHRoZSBidWNrZXQgaXMgdGhlIGNhbGxlcidzLCBhbmRcbiAqIGVhY2ggc2VydmljZSBrZWVwcyBpdHMgb3duIGRlZmF1bHQgYW5kIGl0cyBvd24ga2V5IGNvbnZlbnRpb24uXG4gKlxuICogKipSZWFjaGVkIHRocm91Z2ggdGhlIGBAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZS9zM2Agc3VicGF0aCwgbmV2ZXIgdGhlIHJvb3RcbiAqIGJhcnJlbCoqIOKAlCBvbmx5IHR3byBzZXJ2aWNlcyBkbyBibG9iIHN0b3JhZ2UsIGFuZCB0aGUgUzMgU0RLIGlzIGEgbGFyZ2VcbiAqIGVhZ2VyIGRlcGVuZGVuY3kgdGhhdCB0aGUgb3RoZXIgZWlnaHQgbXVzdCBub3QgcGF5IGZvciBhdCBib290LiBTYW1lIHJlYXNvblxuICogYEBhd3Mtc2RrL2NsaWVudC1rbXNgIGlzIGR5bmFtaWNhbGx5IGltcG9ydGVkIGluc2lkZSBzZWNyZXQtZW5jcnlwdGlvbi5cbiAqL1xuXG5pbXBvcnQgeyBTM0NsaWVudCwgSGVhZEJ1Y2tldENvbW1hbmQsIENyZWF0ZUJ1Y2tldENvbW1hbmQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtczMnO1xuXG5pbXBvcnQgeyBlbnZCb29sLCBlbnZTdHIgfSBmcm9tICcuLi91dGlscy9lbnYuanMnO1xuaW1wb3J0IHsgY3JlYXRlTG9nZ2VyIH0gZnJvbSAnLi4vdXRpbHMvbG9nZ2VyLmpzJztcblxuY29uc3QgbG9nZ2VyID0gY3JlYXRlTG9nZ2VyKCdzMy1jbGllbnQnKTtcblxubGV0IGNsaWVudDogUzNDbGllbnQgfCBudWxsID0gbnVsbDtcblxuLyoqXG4gKiBUaGUgcHJvY2Vzcy13aWRlIFMzIGNsaWVudCwgYnVpbHQgZnJvbSBlbnYgb24gZmlyc3QgdXNlLlxuICpcbiAqIExhenkgc28gYSBzZXJ2aWNlIHRoYXQgbmV2ZXIgdG91Y2hlcyBibG9iIHN0b3JhZ2Ug4oCUIGFuZCBhIHRlc3QgdGhhdCBuZXZlclxuICogY29uZmlndXJlcyBTMyDigJQgbmV2ZXIgY29uc3RydWN0cyBvbmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzM0NsaWVudCgpOiBTM0NsaWVudCB7XG4gIGlmIChjbGllbnQpIHJldHVybiBjbGllbnQ7XG4gIGNvbnN0IGVuZHBvaW50ID0gZW52U3RyKCdTM19FTkRQT0lOVCcsICcnKTtcbiAgY2xpZW50ID0gbmV3IFMzQ2xpZW50KHtcbiAgICByZWdpb246IGVudlN0cignUzNfUkVHSU9OJywgJ3VzLWVhc3QtMScpLFxuICAgIC4uLihlbmRwb2ludCA/IHsgZW5kcG9pbnQgfSA6IHt9KSxcbiAgICAvLyBQYXRoLXN0eWxlIGlzIHJlcXVpcmVkIGJ5IE1pbklPIChubyB2aXJ0dWFsLWhvc3QgYnVja2V0IEROUykuIEhhcm1sZXNzXG4gICAgLy8gYWdhaW5zdCByZWFsIFMzLCBidXQgZGVmYXVsdC1vbiBoZXJlIGJlY2F1c2UgTWluSU8gaXMgdGhlIGRlZmF1bHQgYmFja2VuZC5cbiAgICBmb3JjZVBhdGhTdHlsZTogZW52Qm9vbCgnUzNfRk9SQ0VfUEFUSF9TVFlMRScsIHRydWUpLFxuICAgIGNyZWRlbnRpYWxzOiB7XG4gICAgICBhY2Nlc3NLZXlJZDogZW52U3RyKCdTM19BQ0NFU1NfS0VZX0lEJywgJ21pbmlvYWRtaW4nKSxcbiAgICAgIHNlY3JldEFjY2Vzc0tleTogZW52U3RyKCdTM19TRUNSRVRfQUNDRVNTX0tFWScsICdtaW5pb2FkbWluJyksXG4gICAgfSxcbiAgfSk7XG4gIHJldHVybiBjbGllbnQ7XG59XG5cbi8qKiBJbi1mbGlnaHQgLyBzZXR0bGVkIGVuc3VyZSBwZXIgYnVja2V0LiBBIHJlamVjdGVkIGF0dGVtcHQgaXMgbmV2ZXIgbGVmdCBoZXJlLiAqL1xuY29uc3QgYnVja2V0c1JlYWR5ID0gbmV3IE1hcDxzdHJpbmcsIFByb21pc2U8dm9pZD4+KCk7XG5cbi8qKlxuICogRW5zdXJlIGBidWNrZXRgIGV4aXN0cywgb25jZSBwZXIgcHJvY2VzcyBwZXIgYnVja2V0LlxuICpcbiAqIE1pbklPIOKAlCB1bmxpa2UgYW4gYXV0by1wcm92aXNpb25lZCBTMyBidWNrZXQg4oCUIHdvbid0IGNyZWF0ZSBhIGJ1Y2tldCBvbiBmaXJzdFxuICogd3JpdGUsIHNvIEhFQUQgaXQgYW5kIENSRUFURSBvbiA0MDQvTm9TdWNoQnVja2V0LiBJZGVtcG90ZW50IGFuZFxuICogY29uY3VycmVuY3ktc2FmZTogY29uY3VycmVudCBjYWxsZXJzIHNoYXJlIHRoZSBzaW5nbGUgaW4tZmxpZ2h0IHByb21pc2UuXG4gKlxuICogVGhlIGltcG9ydGFudCBwYXJ0IGlzIHRoZSBmYWlsdXJlIGJyYW5jaC4gQSBDcmVhdGVCdWNrZXQgZmFpbHVyZSBpcyBFSVRIRVIgYVxuICogYmVuaWduIHJhY2UgKGFub3RoZXIgcmVwbGljYSBjcmVhdGVkIGl0IGJldHdlZW4gb3VyIEhFQUQgYW5kIG91ciBDUkVBVEUpIG9yIGFcbiAqIHJlYWwgb3V0YWdlIChNaW5JTyBub3QgdXAgeWV0LCBjcmVkZW50aWFscyB3cm9uZywgbmV0d29yayBkb3duKS4gUmUtSEVBRGluZ1xuICogdGVsbHMgdGhlbSBhcGFydDpcbiAqXG4gKiAgLSBpdCBub3cgZXhpc3RzICDihpIgYmVuaWduIHJhY2UsIGNvbnRpbnVlO1xuICogIC0gaXQgc3RpbGwgZG9lcyBub3Qg4oaSIERST1AgdGhlIG1lbW8gZW50cnkgYW5kIGZhaWwgdGhpcyBhdHRlbXB0LlxuICpcbiAqIERyb3BwaW5nIHRoZSBlbnRyeSBpcyBsb2FkLWJlYXJpbmcuIE1lbW9pemluZyBhIHJlc29sdmVkIFwicmVhZHlcIiBhZnRlciBhXG4gKiBmYWlsZWQgY3JlYXRlIGNhY2hlcyBhIHBlcm1hbmVudGx5LWJyb2tlbiBzdWNjZXNzIGZvciB0aGUgcHJvY2VzcyBsaWZldGltZTpcbiAqIGV2ZXJ5IGxhdGVyIHVwbG9hZCB0aGVuIGZhaWxzIGBOb1N1Y2hCdWNrZXRgIGFnYWluc3QgYSBNaW5JTyB0aGF0IGNhbWUgdXBcbiAqIHNlY29uZHMgYWZ0ZXIgYm9vdCwgdW50aWwgdGhlIHBvZCBpcyByZXN0YXJ0ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbnN1cmVCdWNrZXQoYnVja2V0OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgbGV0IHJlYWR5ID0gYnVja2V0c1JlYWR5LmdldChidWNrZXQpO1xuICBpZiAoIXJlYWR5KSB7XG4gICAgcmVhZHkgPSAoYXN5bmMgKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgczNDbGllbnQoKS5zZW5kKG5ldyBIZWFkQnVja2V0Q29tbWFuZCh7IEJ1Y2tldDogYnVja2V0IH0pKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHMzQ2xpZW50KCkuc2VuZChuZXcgQ3JlYXRlQnVja2V0Q29tbWFuZCh7IEJ1Y2tldDogYnVja2V0IH0pKTtcbiAgICAgICAgICBsb2dnZXIuaW5mbygnQ3JlYXRlZCBTMyBidWNrZXQnLCB7IGJ1Y2tldCB9KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHMzQ2xpZW50KCkuc2VuZChuZXcgSGVhZEJ1Y2tldENvbW1hbmQoeyBCdWNrZXQ6IGJ1Y2tldCB9KSk7XG4gICAgICAgICAgICBsb2dnZXIud2FybignUzMgYnVja2V0IGVuc3VyZSByYWNlIChub3cgZXhpc3RzLCBjb250aW51aW5nKScsIHsgYnVja2V0LCBlcnJvcjogU3RyaW5nKGVycikgfSk7XG4gICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICBidWNrZXRzUmVhZHkuZGVsZXRlKGJ1Y2tldCk7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFMzIGJ1Y2tldCBcIiR7YnVja2V0fVwiIHVuYXZhaWxhYmxlOiAke1N0cmluZyhlcnIpfWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pKCk7XG4gICAgYnVja2V0c1JlYWR5LnNldChidWNrZXQsIHJlYWR5KTtcbiAgfVxuICByZXR1cm4gcmVhZHk7XG59XG4iXX0=
|
|
@@ -125,4 +125,4 @@ export function createScheduler(opts) {
|
|
|
125
125
|
},
|
|
126
126
|
};
|
|
127
127
|
}
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL3NjaGVkdWxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEVBQXNDLE1BQU0sa0JBQWtCLENBQUM7QUFDbEksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQXVEcEQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLElBQXNCO0lBQ3BELE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsSUFBSSxRQUFRLEdBQTBDLElBQUksQ0FBQztJQUMzRCxJQUFJLE9BQU8sR0FBeUMsSUFBSSxDQUFDO0lBQ3pELElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNwQixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDcEIsMEZBQTBGO0lBQzFGLElBQUksT0FBTyxHQUFxQixJQUFJLENBQUM7SUFDckMsSUFBSSxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLGtGQUFrRjtJQUNsRixJQUFJLFFBQVEsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO0lBQ3JDLGtGQUFrRjtJQUNsRixJQUFJLFFBQVEsR0FBeUIsSUFBSSxDQUFDO0lBRTFDLE1BQU0sS0FBSyxHQUFHLEtBQUssSUFBbUIsRUFBRTtRQUN0Qyw0RUFBNEU7UUFDNUUsNEVBQTRFO1FBQzVFLDZFQUE2RTtRQUM3RSw4RUFBOEU7UUFDOUUscUJBQXFCO1FBQ3JCLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixHQUFHLENBQUMsS0FBSyxDQUFDLHFFQUFxRSxDQUFDLENBQUM7WUFDakYsT0FBTztRQUNULENBQUM7UUFD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RUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7cUJBQ2hFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7WUFDeEMsQ0FBQztZQUNELEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNoQyxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgYWNxdWlyZVNoYXJlZEVudkxvY2ssIHJlbGVhc2VTaGFyZWRFbnZMb2NrLCB3aXRoTGVhZGVyTG9jaywgdHlwZSBMZWFkZXJMb2NrUnVuLCB0eXBlIExvY2tSZWRpcyB9IGZyb20gJy4vbGVhZGVyLWxvY2suanMnO1xuaW1wb3J0IHsgY3JlYXRlTG9nZ2VyIH0gZnJvbSAnLi4vdXRpbHMvbG9nZ2VyLmpzJztcbmltcG9ydCB7IGVycm9yTWVzc2FnZSB9IGZyb20gJy4uL3V0aWxzL3Jlc3BvbnNlLmpzJztcblxuLyoqXG4gKiBPcHRpb25hbCBjcm9zcy1wb2Qgc2luZ2xlLXJ1bm5lciBsb2NrIGZvciBhIHNjaGVkdWxlcidzIGN5Y2xlLiBXaXRob3V0XG4gKiBgcmVkaXNgIHRoZSBzY2hlZHVsZXIgdXNlcyB0aGUgcHJvY2VzcydzIHNoYXJlZCBlbnYtY29uZmlndXJlZCBsb2NrIGNsaWVudFxuICogKHRha2VuIG9uIGBzdGFydGAsIHJlbGVhc2VkIG9uIGBzdG9wYCk7IHdoZW4gUmVkaXMgaXNuJ3QgY29uZmlndXJlZCB0aGUgY3ljbGVcbiAqIHJ1bnMgb24gZXZlcnkgcG9kLCBzbyB0aGUgd29yayBpdCB3cmFwcyBtdXN0IHN0YXkgc2FmZSB0byBydW4gY29uY3VycmVudGx5LlxuICogQSBzdXBwbGllZCBgcmVkaXNgIGZhY3RvcnkgaXMgcmVzb2x2ZWQgcGVyIGN5Y2xlIChlLmcuIGEgQnVsbE1RIGNvbm5lY3Rpb24pLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVkdWxlckxvY2sge1xuICBrZXk6IHN0cmluZztcbiAgdHRsTXM6IG51bWJlcjtcbiAgcmVkaXM/OiAoKSA9PiBMb2NrUmVkaXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZWR1bGVyT3B0aW9ucyB7XG4gIC8qKiBMb2cgbGFiZWwgKGFsc28gdGhlIGxvZ2dlciBuYW1lKS4gKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogSW50ZXJ2YWwgYmV0d2VlbiBjeWNsZXMgKG1zKS4gKi9cbiAgaW50ZXJ2YWxNczogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIHdvcmsgdG8gcnVuIGVhY2ggY3ljbGUuIEVycm9ycyBhcmUgY2F1Z2h0ICsgbG9nZ2VkLCBuZXZlciB0aHJvd24uXG4gICAqXG4gICAqIGBydW4uc2lnbmFsYCBpcyBhYm9ydGVkIHdoZW4gYSBsZWFkZXItbG9ja2VkIGN5Y2xlIExPU0VTIGl0cyBsb2NrIG1pZC1ydW4sIG9yXG4gICAqIHdoZW4gYHN0b3AoKWAgaXMgY2FsbGVkLiBBIGpvYiB0aGF0IGl0ZXJhdGVzIG92ZXIgdW5pdHMgb2Ygd29yayAob3JncywgcmVwb3MsXG4gICAqIGVudGl0aWVzKSBtdXN0IGNoZWNrIGl0IGJldHdlZW4gdW5pdHMgYW5kIHJldHVybjogcGFzdCBhIGxvY2sgbG9zcyBhbm90aGVyIHBvZFxuICAgKiBtYXkgYmUgZG9pbmcgdGhlIHNhbWUgd29yaywgYW5kIG9uIHNodXRkb3duIHJldHVybmluZyBwcm9tcHRseSBpcyB3aGF0XG4gICAqIHJlbGVhc2VzIHRoZSBsb2NrIGluc3RlYWQgb2YgbGVhdmluZyBpdCB0byBleHBpcmUuIFVubG9ja2VkIHNjaGVkdWxlcnMgZ2V0IGFcbiAgICogc2lnbmFsIHRvbyDigJQgaXQgZmlyZXMgb24gYHN0b3AoKWAgb25seS5cbiAgICovXG4gIHJ1bjogKHJ1bjogTGVhZGVyTG9ja1J1bikgPT4gUHJvbWlzZTx2b2lkPjtcbiAgLyoqIFJ1biBhIGN5Y2xlIGltbWVkaWF0ZWx5IHdoZW4gc3RhcnRlZC4gRGVmYXVsdCB0cnVlLiAqL1xuICBydW5PblN0YXJ0PzogYm9vbGVhbjtcbiAgLyoqIERlbGF5IGJlZm9yZSB0aGUgZmlyc3QgY3ljbGUgKGFuZCBiZWZvcmUgdGhlIGludGVydmFsIGJlZ2lucyksIG1zLlxuICAgKiAgRGVmYXVsdCAwLiBMZXRzIGEgc2VydmljZSB3YWl0IGZvciBkZXBlbmRlbmNpZXMgdG8gY29tZSB1cC4gKi9cbiAgc3RhcnR1cERlbGF5TXM/OiBudW1iZXI7XG4gIC8qKiBXaGVuIHNldCwgZWFjaCBjeWNsZSBydW5zIG9ubHkgb24gdGhlIHBvZCB0aGF0IHdpbnMgdGhpcyBsb2NrIOKAlCBzbyB3aXRoXG4gICAqICBtdWx0aXBsZSByZXBsaWNhcyBvbmx5IG9uZSBydW5zIHBlciB3aW5kb3cuICovXG4gIGxvY2s/OiBTY2hlZHVsZXJMb2NrO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVkdWxlciB7XG4gIC8qKiBTdGFydCB0aGUgdGltZXIuIElkZW1wb3RlbnQg4oCUIHJlcGVhdGVkIGNhbGxzIGFyZSBuby1vcHMuICovXG4gIHN0YXJ0KCk6IHZvaWQ7XG4gIC8qKlxuICAgKiBTdG9wIHRoZSB0aW1lciAoYW5kIGNhbmNlbCBhIHBlbmRpbmcgc3RhcnR1cCBkZWxheSkuIFNhZmUgYmVmb3JlIHN0YXJ0LlxuICAgKlxuICAgKiBBbHNvIEFCT1JUUyBhbiBpbi1mbGlnaHQgY3ljbGUncyBgcnVuLnNpZ25hbGAgYW5kIGRlZmVycyBjbG9zaW5nIHRoZSBzaGFyZWRcbiAgICogbG9jayBjbGllbnQgdW50aWwgdGhhdCBjeWNsZSBzZXR0bGVzOiBhIHJ1bm5pbmcgY3ljbGUgdXNlZCB0byBrZWVwIGl0cyBsb2NrXG4gICAqIGtleSB1bnRpbCB0aGUgVFRMIGxhcHNlZCwgc28gYSByb2xsaW5nIGRlcGxveSBtaWQtcnVuIHBhcmtlZCB0aGUgam9iIGZvciB0aGVcbiAgICogcmVzdCBvZiB0aGUgVFRMLiBBIHNpZ25hbC1hd2FyZSBgcnVuYCByZXR1cm5zIGFuZCB0aGUgbG9jayBpcyByZWxlYXNlZC5cbiAgICovXG4gIHN0b3AoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBBIHBlcmlvZGljIGJhY2tncm91bmQgam9iOiBhIHNpbmdsZSB1bnJlZidkIGBzZXRJbnRlcnZhbGAgd2l0aCBzdGFydC1vbmNlXG4gKiBzZW1hbnRpY3MsIGVycm9yIGlzb2xhdGlvbiAoYSB0aHJvd2luZyBjeWNsZSBpcyBsb2dnZWQsIG5ldmVyIGNyYXNoZXMgdGhlXG4gKiBsb29wKSwgYW4gb3B0aW9uYWwgc3RhcnR1cCBkZWxheSwgYW5kIGFuIG9wdGlvbmFsIGNyb3NzLXBvZCBsZWFkZXIgbG9jay5cbiAqXG4gKiBSZXBsYWNlcyB0aGUgaGFuZC1yb2xsZWQgdGltZXIvYHVucmVmYC9gY2F0Y2hgL3N0YXJ0LXN0b3AgYm9pbGVycGxhdGUgdGhhdFxuICogZWFjaCBzY2hlZHVsZXIgKHNjYW4sIGRpZ2VzdCwgcmVnaXN0cnkgR0MsIGJpbGxpbmcgbGlmZWN5Y2xlKSByZXBlYXRlZCwgYW5kXG4gKiBtYWtlcyB0aGUgbGVhZGVyIGxvY2sgYXZhaWxhYmxlIHRvIGFsbCBvZiB0aGVtIHVuaWZvcm1seS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNjaGVkdWxlcihvcHRzOiBTY2hlZHVsZXJPcHRpb25zKTogU2NoZWR1bGVyIHtcbiAgY29uc3QgbG9nID0gY3JlYXRlTG9nZ2VyKG9wdHMubmFtZSk7XG4gIGxldCBpbnRlcnZhbDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0SW50ZXJ2YWw+IHwgbnVsbCA9IG51bGw7XG4gIGxldCBzdGFydHVwOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bGwgPSBudWxsO1xuICBsZXQgc3RvcHBlZCA9IGZhbHNlO1xuICBsZXQgcnVubmluZyA9IGZhbHNlO1xuICAvKiogVGhlIHNoYXJlZCBlbnYgY2xpZW50IHRoaXMgc2NoZWR1bGVyIGhvbGRzIGEgcmVmZXJlbmNlIG9uIChvd24tY2xpZW50IGxvY2tzIGRvbid0KS4gKi9cbiAgbGV0IGVudkxvY2s6IExvY2tSZWRpcyB8IG51bGwgPSBudWxsO1xuICBsZXQgaG9sZHNFbnZMb2NrID0gZmFsc2U7XG4gIC8qKiBBYm9ydGVkIGJ5IGBzdG9wKClgLCBzbyBhbiBpbi1mbGlnaHQgY3ljbGUgY2FuIHJldHVybiBhbmQgcmVsZWFzZSBpdHMgbG9jay4gKi9cbiAgbGV0IHNodXRkb3duID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAvKiogVGhlIGluLWZsaWdodCBjeWNsZSwgc28gYHN0b3AoKWAgY2FuIHdhaXQgZm9yIGl0IGJlZm9yZSBjbG9zaW5nIHRoZSBjbGllbnQuICovXG4gIGxldCBpbkZsaWdodDogUHJvbWlzZTx2b2lkPiB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0IGN5Y2xlID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIC8vIFNhbWUtcG9kIHJlLWVudHJhbmN5IGd1YXJkOiBzZXRJbnRlcnZhbCBkb2Vzbid0IGF3YWl0IHRoZSBhc3luYyBjeWNsZSwgc29cbiAgICAvLyBhIGN5Y2xlIHNsb3dlciB0aGFuIGludGVydmFsTXMgd291bGQgb3RoZXJ3aXNlIG92ZXJsYXAgSVRTRUxGIG9uIHRoaXMgcG9kXG4gICAgLy8gKGRvdWJsZS1wcm9jZXNzaW5nLCBkdXBsaWNhdGUgc2lkZSBlZmZlY3RzKS4gVGhlIG9wdGlvbmFsIGxlYWRlciBsb2NrIG9ubHlcbiAgICAvLyBndWFyZHMgQ1JPU1MtcG9kIG92ZXJsYXA7IHRoaXMgZ3VhcmRzIHNhbWUtcG9kLiBBIHNraXBwZWQgdGljayBqdXN0IHJ1bnMgb25cbiAgICAvLyB0aGUgbmV4dCBpbnRlcnZhbC5cbiAgICBpZiAocnVubmluZykge1xuICAgICAgbG9nLmRlYnVnKCdDeWNsZSBza2lwcGVkIOKAlCBwcmV2aW91cyBjeWNsZSBzdGlsbCBydW5uaW5nIChzYW1lLXBvZCByZS1lbnRyYW5jeSknKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcnVubmluZyA9IHRydWU7XG4gICAgY29uc3Qgc2lnbmFsID0gc2h1dGRvd24uc2lnbmFsO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZWRpcyA9IG9wdHMubG9jayA/IChvcHRzLmxvY2sucmVkaXMgPyBvcHRzLmxvY2sucmVkaXMoKSA6IGVudkxvY2spIDogbnVsbDtcbiAgICAgIGlmIChvcHRzLmxvY2sgJiYgcmVkaXMpIHtcbiAgICAgICAgLy8gd2l0aExlYWRlckxvY2sgbWVyZ2VzIGBzaWduYWxgIGludG8gdGhlIHJ1bidzIG93biwgc28gYHJ1bmAgc2VlcyBhIHNpbmdsZVxuICAgICAgICAvLyBzaWduYWwgZm9yIGJvdGggXCJsb2NrIGxvc3RcIiBhbmQgXCJzaHV0dGluZyBkb3duXCIuXG4gICAgICAgIGNvbnN0IHJhbiA9IGF3YWl0IHdpdGhMZWFkZXJMb2NrKHJlZGlzLCBvcHRzLmxvY2sua2V5LCBvcHRzLmxvY2sudHRsTXMsIG9wdHMucnVuLCB7IHNpZ25hbCB9KTtcbiAgICAgICAgaWYgKCFyYW4pIGxvZy5kZWJ1ZygnQ3ljbGUgc2tpcHBlZCDigJQgYW5vdGhlciBwb2QgaG9sZHMgdGhlIGxvY2snKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFVubG9ja2VkOiBzdGlsbCBnaXZlIHRoZSBqb2IgYSBzaWduYWwsIHNvIGBzdG9wKClgIGNhbiBjdXQgYSBsb25nIGN5Y2xlXG4gICAgICAgIC8vIHNob3J0IHJhdGhlciB0aGFuIHdhaXRpbmcgZm9yIGl0IGR1cmluZyBzaHV0ZG93bi5cbiAgICAgICAgYXdhaXQgb3B0cy5ydW4oeyBzaWduYWwgfSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBsb2cuZXJyb3IoJ1NjaGVkdWxlciBjeWNsZSBmYWlsZWQnLCB7IGVycm9yOiBlcnJvck1lc3NhZ2UoZXJyKSB9KTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgcnVubmluZyA9IGZhbHNlO1xuICAgIH1cbiAgfTtcblxuICAvKiogUnVuIGEgY3ljbGUgYW5kIHB1Ymxpc2ggaXQgYXMgYGluRmxpZ2h0YCBzbyBgc3RvcCgpYCBjYW4gYXdhaXQgaXQuICovXG4gIGNvbnN0IHJ1bkN5Y2xlID0gKCk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHAgPSBjeWNsZSgpLmZpbmFsbHkoKCkgPT4geyBpZiAoaW5GbGlnaHQgPT09IHApIGluRmxpZ2h0ID0gbnVsbDsgfSk7XG4gICAgaW5GbGlnaHQgPSBwO1xuICB9O1xuXG4gIGNvbnN0IGJlZ2luID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmIChzdG9wcGVkKSByZXR1cm47IC8vIHN0b3AoKSBjYWxsZWQgZHVyaW5nIHRoZSBzdGFydHVwIGRlbGF5XG4gICAgaWYgKG9wdHMucnVuT25TdGFydCAhPT0gZmFsc2UpIHJ1bkN5Y2xlKCk7XG4gICAgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiBydW5DeWNsZSgpLCBvcHRzLmludGVydmFsTXMpO1xuICAgIGludGVydmFsLnVucmVmKCk7XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBzdGFydCgpOiB2b2lkIHtcbiAgICAgIGlmIChpbnRlcnZhbCB8fCBzdGFydHVwKSByZXR1cm47XG4gICAgICBzdG9wcGVkID0gZmFsc2U7XG4gICAgICAvLyBBIHJlc3RhcnQgbmVlZHMgYSBmcmVzaCBjb250cm9sbGVyOiB0aGUgcHJldmlvdXMgc3RvcCgpIGFib3J0ZWQgdGhlIG9sZFxuICAgICAgLy8gb25lLCBhbmQgYW4gYWxyZWFkeS1hYm9ydGVkIHNpZ25hbCB3b3VsZCBtYWtlIGV2ZXJ5IGN5Y2xlIGEgbm8tb3AuXG4gICAgICBpZiAoc2h1dGRvd24uc2lnbmFsLmFib3J0ZWQpIHNodXRkb3duID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgICAgaWYgKG9wdHMubG9jayAmJiAhb3B0cy5sb2NrLnJlZGlzICYmICFob2xkc0VudkxvY2spIHtcbiAgICAgICAgZW52TG9jayA9IGFjcXVpcmVTaGFyZWRFbnZMb2NrKCk7XG4gICAgICAgIGhvbGRzRW52TG9jayA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAob3B0cy5zdGFydHVwRGVsYXlNcyAmJiBvcHRzLnN0YXJ0dXBEZWxheU1zID4gMCkge1xuICAgICAgICBzdGFydHVwID0gc2V0VGltZW91dCgoKSA9PiB7IHN0YXJ0dXAgPSBudWxsOyBiZWdpbigpOyB9LCBvcHRzLnN0YXJ0dXBEZWxheU1zKTtcbiAgICAgICAgc3RhcnR1cC51bnJlZigpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYmVnaW4oKTtcbiAgICAgIH1cbiAgICAgIGxvZy5pbmZvKCdTY2hlZHVsZXIgc3RhcnRlZCcsIHsgaW50ZXJ2YWxNczogb3B0cy5pbnRlcnZhbE1zLCBsb2NrZWQ6ICEhb3B0cy5sb2NrICYmICghIW9wdHMubG9jay5yZWRpcyB8fCAhIWVudkxvY2spIH0pO1xuICAgIH0sXG4gICAgc3RvcCgpOiB2b2lkIHtcbiAgICAgIHN0b3BwZWQgPSB0cnVlO1xuICAgICAgaWYgKHN0YXJ0dXApIHsgY2xlYXJUaW1lb3V0KHN0YXJ0dXApOyBzdGFydHVwID0gbnVsbDsgfVxuICAgICAgaWYgKGludGVydmFsKSB7IGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpOyBpbnRlcnZhbCA9IG51bGw7IH1cbiAgICAgIC8vIEFzayBhbiBpbi1mbGlnaHQgY3ljbGUgdG8gd2luZCB1cC4gQSBzaWduYWwtYXdhcmUgYHJ1bmAgcmV0dXJucyBiZXR3ZWVuXG4gICAgICAvLyB1bml0cyBvZiB3b3JrLCB3aGljaCBsZXRzIHdpdGhMZWFkZXJMb2NrJ3MgYGZpbmFsbHlgIFJFTEVBU0UgdGhlIGxvY2sg4oCUXG4gICAgICAvLyBvdGhlcndpc2UgdGhlIGtleSBzYXQgdGhlcmUgdW50aWwgdGhlIFRUTCBsYXBzZWQgYW5kIHRoZSBqb2Igd2FzIHBhcmtlZFxuICAgICAgLy8gZmxlZXQtd2lkZSBmb3IgdGhhdCBsb25nIGFmdGVyIGV2ZXJ5IHJvbGxpbmcgZGVwbG95LlxuICAgICAgaWYgKCFzaHV0ZG93bi5zaWduYWwuYWJvcnRlZCkgc2h1dGRvd24uYWJvcnQoJ3NodXRkb3duJyk7XG4gICAgICBpZiAoaG9sZHNFbnZMb2NrKSB7XG4gICAgICAgIGhvbGRzRW52TG9jayA9IGZhbHNlO1xuICAgICAgICBjb25zdCBwZW5kaW5nID0gaW5GbGlnaHQ7XG4gICAgICAgIGVudkxvY2sgPSBudWxsO1xuICAgICAgICAvLyBDbG9zaW5nIHRoZSBjbGllbnQgdW5kZXIgYSBydW5uaW5nIGN5Y2xlIGtpbGxzIGl0cyBoZWFydGJlYXQgYW5kIGl0c1xuICAgICAgICAvLyByZWxlYXNlLCBzbyB3YWl0IGZvciB0aGUgY3ljbGUgdG8gc2V0dGxlIGZpcnN0LiBCb3VuZGVkIGJ5IHRoZSBjeWNsZVxuICAgICAgICAvLyBpdHNlbGYsIHdoaWNoIGlzIG5vdyBiZWluZyBhc2tlZCB0byBzdG9wLlxuICAgICAgICB2b2lkIChwZW5kaW5nID8gcGVuZGluZy5jYXRjaCgoKSA9PiB1bmRlZmluZWQpIDogUHJvbWlzZS5yZXNvbHZlKCkpXG4gICAgICAgICAgLnRoZW4oKCkgPT4gcmVsZWFzZVNoYXJlZEVudkxvY2soKSk7XG4gICAgICB9XG4gICAgICBsb2cuaW5mbygnU2NoZWR1bGVyIHN0b3BwZWQnKTtcbiAgICB9LFxuICB9O1xufVxuIl19
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvc2NoZWR1bGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLGNBQWMsRUFBc0MsTUFBTSxrQkFBa0IsQ0FBQztBQUNsSSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBdURwRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQUMsSUFBc0I7SUFDcEQsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxJQUFJLFFBQVEsR0FBMEMsSUFBSSxDQUFDO0lBQzNELElBQUksT0FBTyxHQUF5QyxJQUFJLENBQUM7SUFDekQsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNwQiwwRkFBMEY7SUFDMUYsSUFBSSxPQUFPLEdBQXFCLElBQUksQ0FBQztJQUNyQyxJQUFJLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDekIsa0ZBQWtGO0lBQ2xGLElBQUksUUFBUSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7SUFDckMsa0ZBQWtGO0lBQ2xGLElBQUksUUFBUSxHQUF5QixJQUFJLENBQUM7SUFFMUMsTUFBTSxLQUFLLEdBQUcsS0FBSyxJQUFtQixFQUFFO1FBQ3RDLDRFQUE0RTtRQUM1RSw0RUFBNEU7UUFDNUUsNkVBQTZFO1FBQzdFLDhFQUE4RTtRQUM5RSxxQkFBcUI7UUFDckIsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLEdBQUcsQ0FBQyxLQUFLLENBQUMscUVBQXFFLENBQUMsQ0FBQztZQUNqRixPQUFPO1FBQ1QsQ0FBQztRQUNELE9BQU8sR0FBRyxJQUFJ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QUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztxQkFDaEUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztZQUN4QyxDQUFDO1lBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBhY3F1aXJlU2hhcmVkRW52TG9jaywgcmVsZWFzZVNoYXJlZEVudkxvY2ssIHdpdGhMZWFkZXJMb2NrLCB0eXBlIExlYWRlckxvY2tSdW4sIHR5cGUgTG9ja1JlZGlzIH0gZnJvbSAnLi9sZWFkZXItbG9jay5qcyc7XG5pbXBvcnQgeyBjcmVhdGVMb2dnZXIgfSBmcm9tICcuLi91dGlscy9sb2dnZXIuanMnO1xuaW1wb3J0IHsgZXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vdXRpbHMvcmVzcG9uc2UuanMnO1xuXG4vKipcbiAqIE9wdGlvbmFsIGNyb3NzLXBvZCBzaW5nbGUtcnVubmVyIGxvY2sgZm9yIGEgc2NoZWR1bGVyJ3MgY3ljbGUuIFdpdGhvdXRcbiAqIGByZWRpc2AgdGhlIHNjaGVkdWxlciB1c2VzIHRoZSBwcm9jZXNzJ3Mgc2hhcmVkIGVudi1jb25maWd1cmVkIGxvY2sgY2xpZW50XG4gKiAodGFrZW4gb24gYHN0YXJ0YCwgcmVsZWFzZWQgb24gYHN0b3BgKTsgd2hlbiBSZWRpcyBpc24ndCBjb25maWd1cmVkIHRoZSBjeWNsZVxuICogcnVucyBvbiBldmVyeSBwb2QsIHNvIHRoZSB3b3JrIGl0IHdyYXBzIG11c3Qgc3RheSBzYWZlIHRvIHJ1biBjb25jdXJyZW50bHkuXG4gKiBBIHN1cHBsaWVkIGByZWRpc2AgZmFjdG9yeSBpcyByZXNvbHZlZCBwZXIgY3ljbGUgKGUuZy4gYSBCdWxsTVEgY29ubmVjdGlvbikuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZWR1bGVyTG9jayB7XG4gIGtleTogc3RyaW5nO1xuICB0dGxNczogbnVtYmVyO1xuICByZWRpcz86ICgpID0+IExvY2tSZWRpcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2hlZHVsZXJPcHRpb25zIHtcbiAgLyoqIExvZyBsYWJlbCAoYWxzbyB0aGUgbG9nZ2VyIG5hbWUpLiAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBJbnRlcnZhbCBiZXR3ZWVuIGN5Y2xlcyAobXMpLiAqL1xuICBpbnRlcnZhbE1zOiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgd29yayB0byBydW4gZWFjaCBjeWNsZS4gRXJyb3JzIGFyZSBjYXVnaHQgKyBsb2dnZWQsIG5ldmVyIHRocm93bi5cbiAgICpcbiAgICogYHJ1bi5zaWduYWxgIGlzIGFib3J0ZWQgd2hlbiBhIGxlYWRlci1sb2NrZWQgY3ljbGUgTE9TRVMgaXRzIGxvY2sgbWlkLXJ1biwgb3JcbiAgICogd2hlbiBgc3RvcCgpYCBpcyBjYWxsZWQuIEEgam9iIHRoYXQgaXRlcmF0ZXMgb3ZlciB1bml0cyBvZiB3b3JrIChvcmdzLCByZXBvcyxcbiAgICogZW50aXRpZXMpIG11c3QgY2hlY2sgaXQgYmV0d2VlbiB1bml0cyBhbmQgcmV0dXJuOiBwYXN0IGEgbG9jayBsb3NzIGFub3RoZXIgcG9kXG4gICAqIG1heSBiZSBkb2luZyB0aGUgc2FtZSB3b3JrLCBhbmQgb24gc2h1dGRvd24gcmV0dXJuaW5nIHByb21wdGx5IGlzIHdoYXRcbiAgICogcmVsZWFzZXMgdGhlIGxvY2sgaW5zdGVhZCBvZiBsZWF2aW5nIGl0IHRvIGV4cGlyZS4gVW5sb2NrZWQgc2NoZWR1bGVycyBnZXQgYVxuICAgKiBzaWduYWwgdG9vIOKAlCBpdCBmaXJlcyBvbiBgc3RvcCgpYCBvbmx5LlxuICAgKi9cbiAgcnVuOiAocnVuOiBMZWFkZXJMb2NrUnVuKSA9PiBQcm9taXNlPHZvaWQ+O1xuICAvKiogUnVuIGEgY3ljbGUgaW1tZWRpYXRlbHkgd2hlbiBzdGFydGVkLiBEZWZhdWx0IHRydWUuICovXG4gIHJ1bk9uU3RhcnQ/OiBib29sZWFuO1xuICAvKiogRGVsYXkgYmVmb3JlIHRoZSBmaXJzdCBjeWNsZSAoYW5kIGJlZm9yZSB0aGUgaW50ZXJ2YWwgYmVnaW5zKSwgbXMuXG4gICAqICBEZWZhdWx0IDAuIExldHMgYSBzZXJ2aWNlIHdhaXQgZm9yIGRlcGVuZGVuY2llcyB0byBjb21lIHVwLiAqL1xuICBzdGFydHVwRGVsYXlNcz86IG51bWJlcjtcbiAgLyoqIFdoZW4gc2V0LCBlYWNoIGN5Y2xlIHJ1bnMgb25seSBvbiB0aGUgcG9kIHRoYXQgd2lucyB0aGlzIGxvY2sg4oCUIHNvIHdpdGhcbiAgICogIG11bHRpcGxlIHJlcGxpY2FzIG9ubHkgb25lIHJ1bnMgcGVyIHdpbmRvdy4gKi9cbiAgbG9jaz86IFNjaGVkdWxlckxvY2s7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZWR1bGVyIHtcbiAgLyoqIFN0YXJ0IHRoZSB0aW1lci4gSWRlbXBvdGVudCDigJQgcmVwZWF0ZWQgY2FsbHMgYXJlIG5vLW9wcy4gKi9cbiAgc3RhcnQoKTogdm9pZDtcbiAgLyoqXG4gICAqIFN0b3AgdGhlIHRpbWVyIChhbmQgY2FuY2VsIGEgcGVuZGluZyBzdGFydHVwIGRlbGF5KS4gU2FmZSBiZWZvcmUgc3RhcnQuXG4gICAqXG4gICAqIEFsc28gQUJPUlRTIGFuIGluLWZsaWdodCBjeWNsZSdzIGBydW4uc2lnbmFsYCBhbmQgZGVmZXJzIGNsb3NpbmcgdGhlIHNoYXJlZFxuICAgKiBsb2NrIGNsaWVudCB1bnRpbCB0aGF0IGN5Y2xlIHNldHRsZXM6IGEgcnVubmluZyBjeWNsZSB1c2VkIHRvIGtlZXAgaXRzIGxvY2tcbiAgICoga2V5IHVudGlsIHRoZSBUVEwgbGFwc2VkLCBzbyBhIHJvbGxpbmcgZGVwbG95IG1pZC1ydW4gcGFya2VkIHRoZSBqb2IgZm9yIHRoZVxuICAgKiByZXN0IG9mIHRoZSBUVEwuIEEgc2lnbmFsLWF3YXJlIGBydW5gIHJldHVybnMgYW5kIHRoZSBsb2NrIGlzIHJlbGVhc2VkLlxuICAgKi9cbiAgc3RvcCgpOiB2b2lkO1xufVxuXG4vKipcbiAqIEEgcGVyaW9kaWMgYmFja2dyb3VuZCBqb2I6IGEgc2luZ2xlIHVucmVmJ2QgYHNldEludGVydmFsYCB3aXRoIHN0YXJ0LW9uY2VcbiAqIHNlbWFudGljcywgZXJyb3IgaXNvbGF0aW9uIChhIHRocm93aW5nIGN5Y2xlIGlzIGxvZ2dlZCwgbmV2ZXIgY3Jhc2hlcyB0aGVcbiAqIGxvb3ApLCBhbiBvcHRpb25hbCBzdGFydHVwIGRlbGF5LCBhbmQgYW4gb3B0aW9uYWwgY3Jvc3MtcG9kIGxlYWRlciBsb2NrLlxuICpcbiAqIFJlcGxhY2VzIHRoZSBoYW5kLXJvbGxlZCB0aW1lci9gdW5yZWZgL2BjYXRjaGAvc3RhcnQtc3RvcCBib2lsZXJwbGF0ZSB0aGF0XG4gKiBlYWNoIHNjaGVkdWxlciAoc2NhbiwgZGlnZXN0LCByZWdpc3RyeSBHQywgYmlsbGluZyBsaWZlY3ljbGUpIHJlcGVhdGVkLCBhbmRcbiAqIG1ha2VzIHRoZSBsZWFkZXIgbG9jayBhdmFpbGFibGUgdG8gYWxsIG9mIHRoZW0gdW5pZm9ybWx5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2NoZWR1bGVyKG9wdHM6IFNjaGVkdWxlck9wdGlvbnMpOiBTY2hlZHVsZXIge1xuICBjb25zdCBsb2cgPSBjcmVhdGVMb2dnZXIob3B0cy5uYW1lKTtcbiAgbGV0IGludGVydmFsOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4gfCBudWxsID0gbnVsbDtcbiAgbGV0IHN0YXJ0dXA6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbCA9IG51bGw7XG4gIGxldCBzdG9wcGVkID0gZmFsc2U7XG4gIGxldCBydW5uaW5nID0gZmFsc2U7XG4gIC8qKiBUaGUgc2hhcmVkIGVudiBjbGllbnQgdGhpcyBzY2hlZHVsZXIgaG9sZHMgYSByZWZlcmVuY2Ugb24gKG93bi1jbGllbnQgbG9ja3MgZG9uJ3QpLiAqL1xuICBsZXQgZW52TG9jazogTG9ja1JlZGlzIHwgbnVsbCA9IG51bGw7XG4gIGxldCBob2xkc0VudkxvY2sgPSBmYWxzZTtcbiAgLyoqIEFib3J0ZWQgYnkgYHN0b3AoKWAsIHNvIGFuIGluLWZsaWdodCBjeWNsZSBjYW4gcmV0dXJuIGFuZCByZWxlYXNlIGl0cyBsb2NrLiAqL1xuICBsZXQgc2h1dGRvd24gPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gIC8qKiBUaGUgaW4tZmxpZ2h0IGN5Y2xlLCBzbyBgc3RvcCgpYCBjYW4gd2FpdCBmb3IgaXQgYmVmb3JlIGNsb3NpbmcgdGhlIGNsaWVudC4gKi9cbiAgbGV0IGluRmxpZ2h0OiBQcm9taXNlPHZvaWQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3QgY3ljbGUgPSBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgLy8gU2FtZS1wb2QgcmUtZW50cmFuY3kgZ3VhcmQ6IHNldEludGVydmFsIGRvZXNuJ3QgYXdhaXQgdGhlIGFzeW5jIGN5Y2xlLCBzb1xuICAgIC8vIGEgY3ljbGUgc2xvd2VyIHRoYW4gaW50ZXJ2YWxNcyB3b3VsZCBvdGhlcndpc2Ugb3ZlcmxhcCBJVFNFTEYgb24gdGhpcyBwb2RcbiAgICAvLyAoZG91YmxlLXByb2Nlc3NpbmcsIGR1cGxpY2F0ZSBzaWRlIGVmZmVjdHMpLiBUaGUgb3B0aW9uYWwgbGVhZGVyIGxvY2sgb25seVxuICAgIC8vIGd1YXJkcyBDUk9TUy1wb2Qgb3ZlcmxhcDsgdGhpcyBndWFyZHMgc2FtZS1wb2QuIEEgc2tpcHBlZCB0aWNrIGp1c3QgcnVucyBvblxuICAgIC8vIHRoZSBuZXh0IGludGVydmFsLlxuICAgIGlmIChydW5uaW5nKSB7XG4gICAgICBsb2cuZGVidWcoJ0N5Y2xlIHNraXBwZWQg4oCUIHByZXZpb3VzIGN5Y2xlIHN0aWxsIHJ1bm5pbmcgKHNhbWUtcG9kIHJlLWVudHJhbmN5KScpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBydW5uaW5nID0gdHJ1ZTtcbiAgICBjb25zdCBzaWduYWwgPSBzaHV0ZG93bi5zaWduYWw7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlZGlzID0gb3B0cy5sb2NrID8gKG9wdHMubG9jay5yZWRpcyA/IG9wdHMubG9jay5yZWRpcygpIDogZW52TG9jaykgOiBudWxsO1xuICAgICAgaWYgKG9wdHMubG9jayAmJiByZWRpcykge1xuICAgICAgICAvLyB3aXRoTGVhZGVyTG9jayBtZXJnZXMgYHNpZ25hbGAgaW50byB0aGUgcnVuJ3Mgb3duLCBzbyBgcnVuYCBzZWVzIGEgc2luZ2xlXG4gICAgICAgIC8vIHNpZ25hbCBmb3IgYm90aCBcImxvY2sgbG9zdFwiIGFuZCBcInNodXR0aW5nIGRvd25cIi5cbiAgICAgICAgY29uc3QgcmFuID0gYXdhaXQgd2l0aExlYWRlckxvY2socmVkaXMsIG9wdHMubG9jay5rZXksIG9wdHMubG9jay50dGxNcywgb3B0cy5ydW4sIHsgc2lnbmFsIH0pO1xuICAgICAgICBpZiAoIXJhbikgbG9nLmRlYnVnKCdDeWNsZSBza2lwcGVkIOKAlCBhbm90aGVyIHBvZCBob2xkcyB0aGUgbG9jaycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVW5sb2NrZWQ6IHN0aWxsIGdpdmUgdGhlIGpvYiBhIHNpZ25hbCwgc28gYHN0b3AoKWAgY2FuIGN1dCBhIGxvbmcgY3ljbGVcbiAgICAgICAgLy8gc2hvcnQgcmF0aGVyIHRoYW4gd2FpdGluZyBmb3IgaXQgZHVyaW5nIHNodXRkb3duLlxuICAgICAgICBhd2FpdCBvcHRzLnJ1bih7IHNpZ25hbCB9KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZy5lcnJvcignU2NoZWR1bGVyIGN5Y2xlIGZhaWxlZCcsIHsgZXJyb3I6IGVycm9yTWVzc2FnZShlcnIpIH0pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBydW5uaW5nID0gZmFsc2U7XG4gICAgfVxuICB9O1xuXG4gIC8qKiBSdW4gYSBjeWNsZSBhbmQgcHVibGlzaCBpdCBhcyBgaW5GbGlnaHRgIHNvIGBzdG9wKClgIGNhbiBhd2FpdCBpdC4gKi9cbiAgY29uc3QgcnVuQ3ljbGUgPSAoKTogdm9pZCA9PiB7XG4gICAgY29uc3QgcCA9IGN5Y2xlKCkuZmluYWxseSgoKSA9PiB7IGlmIChpbkZsaWdodCA9PT0gcCkgaW5GbGlnaHQgPSBudWxsOyB9KTtcbiAgICBpbkZsaWdodCA9IHA7XG4gIH07XG5cbiAgY29uc3QgYmVnaW4gPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKHN0b3BwZWQpIHJldHVybjsgLy8gc3RvcCgpIGNhbGxlZCBkdXJpbmcgdGhlIHN0YXJ0dXAgZGVsYXlcbiAgICBpZiAob3B0cy5ydW5PblN0YXJ0ICE9PSBmYWxzZSkgcnVuQ3ljbGUoKTtcbiAgICBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHJ1bkN5Y2xlKCksIG9wdHMuaW50ZXJ2YWxNcyk7XG4gICAgaW50ZXJ2YWwudW5yZWYoKTtcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIHN0YXJ0KCk6IHZvaWQge1xuICAgICAgaWYgKGludGVydmFsIHx8IHN0YXJ0dXApIHJldHVybjtcbiAgICAgIHN0b3BwZWQgPSBmYWxzZTtcbiAgICAgIC8vIEEgcmVzdGFydCBuZWVkcyBhIGZyZXNoIGNvbnRyb2xsZXI6IHRoZSBwcmV2aW91cyBzdG9wKCkgYWJvcnRlZCB0aGUgb2xkXG4gICAgICAvLyBvbmUsIGFuZCBhbiBhbHJlYWR5LWFib3J0ZWQgc2lnbmFsIHdvdWxkIG1ha2UgZXZlcnkgY3ljbGUgYSBuby1vcC5cbiAgICAgIGlmIChzaHV0ZG93bi5zaWduYWwuYWJvcnRlZCkgc2h1dGRvd24gPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgICBpZiAob3B0cy5sb2NrICYmICFvcHRzLmxvY2sucmVkaXMgJiYgIWhvbGRzRW52TG9jaykge1xuICAgICAgICBlbnZMb2NrID0gYWNxdWlyZVNoYXJlZEVudkxvY2soKTtcbiAgICAgICAgaG9sZHNFbnZMb2NrID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChvcHRzLnN0YXJ0dXBEZWxheU1zICYmIG9wdHMuc3RhcnR1cERlbGF5TXMgPiAwKSB7XG4gICAgICAgIHN0YXJ0dXAgPSBzZXRUaW1lb3V0KCgpID0+IHsgc3RhcnR1cCA9IG51bGw7IGJlZ2luKCk7IH0sIG9wdHMuc3RhcnR1cERlbGF5TXMpO1xuICAgICAgICBzdGFydHVwLnVucmVmKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBiZWdpbigpO1xuICAgICAgfVxuICAgICAgbG9nLmluZm8oJ1NjaGVkdWxlciBzdGFydGVkJywgeyBpbnRlcnZhbE1zOiBvcHRzLmludGVydmFsTXMsIGxvY2tlZDogISFvcHRzLmxvY2sgJiYgKCEhb3B0cy5sb2NrLnJlZGlzIHx8ICEhZW52TG9jaykgfSk7XG4gICAgfSxcbiAgICBzdG9wKCk6IHZvaWQge1xuICAgICAgc3RvcHBlZCA9IHRydWU7XG4gICAgICBpZiAoc3RhcnR1cCkgeyBjbGVhclRpbWVvdXQoc3RhcnR1cCk7IHN0YXJ0dXAgPSBudWxsOyB9XG4gICAgICBpZiAoaW50ZXJ2YWwpIHsgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7IGludGVydmFsID0gbnVsbDsgfVxuICAgICAgLy8gQXNrIGFuIGluLWZsaWdodCBjeWNsZSB0byB3aW5kIHVwLiBBIHNpZ25hbC1hd2FyZSBgcnVuYCByZXR1cm5zIGJldHdlZW5cbiAgICAgIC8vIHVuaXRzIG9mIHdvcmssIHdoaWNoIGxldHMgd2l0aExlYWRlckxvY2sncyBgZmluYWxseWAgUkVMRUFTRSB0aGUgbG9jayDigJRcbiAgICAgIC8vIG90aGVyd2lzZSB0aGUga2V5IHNhdCB0aGVyZSB1bnRpbCB0aGUgVFRMIGxhcHNlZCBhbmQgdGhlIGpvYiB3YXMgcGFya2VkXG4gICAgICAvLyBmbGVldC13aWRlIGZvciB0aGF0IGxvbmcgYWZ0ZXIgZXZlcnkgcm9sbGluZyBkZXBsb3kuXG4gICAgICBpZiAoIXNodXRkb3duLnNpZ25hbC5hYm9ydGVkKSBzaHV0ZG93bi5hYm9ydCgnc2h1dGRvd24nKTtcbiAgICAgIGlmIChob2xkc0VudkxvY2spIHtcbiAgICAgICAgaG9sZHNFbnZMb2NrID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IHBlbmRpbmcgPSBpbkZsaWdodDtcbiAgICAgICAgZW52TG9jayA9IG51bGw7XG4gICAgICAgIC8vIENsb3NpbmcgdGhlIGNsaWVudCB1bmRlciBhIHJ1bm5pbmcgY3ljbGUga2lsbHMgaXRzIGhlYXJ0YmVhdCBhbmQgaXRzXG4gICAgICAgIC8vIHJlbGVhc2UsIHNvIHdhaXQgZm9yIHRoZSBjeWNsZSB0byBzZXR0bGUgZmlyc3QuIEJvdW5kZWQgYnkgdGhlIGN5Y2xlXG4gICAgICAgIC8vIGl0c2VsZiwgd2hpY2ggaXMgbm93IGJlaW5nIGFza2VkIHRvIHN0b3AuXG4gICAgICAgIHZvaWQgKHBlbmRpbmcgPyBwZW5kaW5nLmNhdGNoKCgpID0+IHVuZGVmaW5lZCkgOiBQcm9taXNlLnJlc29sdmUoKSlcbiAgICAgICAgICAudGhlbigoKSA9PiByZWxlYXNlU2hhcmVkRW52TG9jaygpKTtcbiAgICAgIH1cbiAgICAgIGxvZy5pbmZvKCdTY2hlZHVsZXIgc3RvcHBlZCcpO1xuICAgIH0sXG4gIH07XG59XG4iXX0=
|
|
@@ -36,4 +36,4 @@ export function wireServiceSecurity(serviceName, opts = {}) {
|
|
|
36
36
|
setTokenRevocationStore(opts.tokenRevocationStore ?? createEnvRedisTokenRevocationStore());
|
|
37
37
|
setApiKeyExchangeServiceName(serviceName);
|
|
38
38
|
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1ib290LmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvc2VydmljZS1ib290LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekcsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0UsT0FBTyxFQUFFLHVCQUF1QixFQUE2QixNQUFNLDZCQUE2QixDQUFDO0FBY2pHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUJHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxXQUFtQixFQUNuQixJQUFJLEdBQTJCLEVBQUU7SUFFakMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUIsc0JBQXNCLENBQUMsV0FBVyxFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFDekQsdUJBQXVCLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLGtDQUFrQyxFQUFFLENBQUMsQ0FBQztJQUMzRiw0QkFBNEIsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IHNldEFwaUtleUV4Y2hhbmdlU2VydmljZU5hbWUgfSBmcm9tICcuL2FwaS1rZXktZXhjaGFuZ2UuanMnO1xuaW1wb3J0IHsgYmluZEF1ZGl0U2VydmljZSwgZ2V0Qm91bmRBdWRpdENsaWVudCwgd2lyZUF1dGh6RGVuaWFsQXVkaXRvciB9IGZyb20gJy4vcmVtb3RlLWF1ZGl0LWNsaWVudC5qcyc7XG5pbXBvcnQgeyBjcmVhdGVFbnZSZWRpc1Rva2VuUmV2b2NhdGlvblN0b3JlIH0gZnJvbSAnLi90b2tlbi1yZXZvY2F0aW9uLmpzJztcbmltcG9ydCB7IHNldFRva2VuUmV2b2NhdGlvblN0b3JlLCB0eXBlIFRva2VuUmV2b2NhdGlvblN0b3JlIH0gZnJvbSAnLi4vbWlkZGxld2FyZS9yZXZvY2F0aW9uLmpzJztcblxuLyoqIFBlci1zZXJ2aWNlIG92ZXJyaWRlcyBmb3Ige0BsaW5rIHdpcmVTZXJ2aWNlU2VjdXJpdHl9LiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlU2VjdXJpdHlPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRva2VuLXJldm9jYXRpb24gcmVhZGVyIHRvIHJlZ2lzdGVyIGluc3RlYWQgb2YgdGhlIGVudi1SZWRpcyBvbmUuIFRoZVxuICAgKiBwbHVnaW4gc2VydmljZSBwYXNzZXMgYSBzdG9yZSBidWlsdCBvbiB0aGUgcG9vbGVkIGlvcmVkaXMgY29ubmVjdGlvbiBpdHNcbiAgICogQnVsbE1RIGJ1aWxkIHF1ZXVlIGFuZCByZWFkaW5lc3MgcHJvYmUgYWxyZWFkeSBzaGFyZSwgc28gdGhlIHByb2Nlc3MgaG9sZHNcbiAgICogT05FIFJlZGlzIGNvbm5lY3Rpb24gcmF0aGVyIHRoYW4gdHdvLiBGYWlsLW9wZW4gZWl0aGVyIHdheTogYSBtaXNzL291dGFnZVxuICAgKiB5aWVsZHMgbnVsbCBhbmQgYXV0aCBkZWdyYWRlcyB0byBuYXR1cmFsIHRva2VuIGV4cGlyeS5cbiAgICovXG4gIHRva2VuUmV2b2NhdGlvblN0b3JlPzogVG9rZW5SZXZvY2F0aW9uU3RvcmU7XG59XG5cbi8qKlxuICogV2lyZSB0aGUgYm9vdC1zZWN1cml0eSBjb25jZXJucyBldmVyeSBzdGF0ZWxlc3Mgc2VydmljZSBzZXRzIHVwIGlkZW50aWNhbGx5XG4gKiBhdCBzdGFydHVwOlxuICogICAwLiBiaW5kIHRoaXMgcHJvY2VzcydzIHNlcnZpY2UgaWRlbnRpdHkgZm9yIGByZWNvcmRBdWRpdGAg4oCUIHRoZSBPTkUgcGxhY2UgYVxuICogICAgICBzZXJ2aWNlIG5hbWVzIGl0c2VsZiBmb3IgdGhlIGNlbnRyYWwgYXVkaXQgdHJhaWwgKGJlZm9yZSB0aGlzIHJ1bnMsXG4gKiAgICAgIGByZWNvcmRBdWRpdGAgdGhyb3dzIFwiYXVkaXQgbm90IGluaXRpYWxpc2VkXCIpO1xuICogICAxLiBmb3J3YXJkIGRlbmllZCAobm9uLUdFVCkgYXV0aG9yaXphdGlvbnMgdG8gdGhlIHNoYXJlZCBgYXV0aHouZGVuaWVkYFxuICogICAgICBhdWRpdCBzaW5rIChgd2lyZUF1dGh6RGVuaWFsQXVkaXRvcmApO1xuICogICAyLiByZWdpc3RlciB0aGUgZW52LVJlZGlzIHRva2VuLXJldm9jYXRpb24gcmVhZGVyIChmYWlsLW9wZW4pIHNvXG4gKiAgICAgIGByZXF1aXJlQXV0aGAgY2FuIHJlamVjdCBhIHRva2VuIGJlaGluZCB0aGUgcGxhdGZvcm0tcHVibGlzaGVkXG4gKiAgICAgIGB0b2tlblZlcnNpb25gIChgc2V0VG9rZW5SZXZvY2F0aW9uU3RvcmUoY3JlYXRlRW52UmVkaXNUb2tlblJldm9jYXRpb25TdG9yZSgpKWApO1xuICogICAzLiBuYW1lIHRoaXMgcHJvY2VzcyBpbiB0aGUgYWNjZXNzLWtleSBleGNoYW5nZSBjYWxsJ3Mgb3duIHNlcnZpY2UgdG9rZW4sIHNvXG4gKiAgICAgIHBsYXRmb3JtIGNhbiBhdHRyaWJ1dGUgKGFuZCByYXRlLWxpbWl0KSB0aGUgZXhjaGFuZ2VzIGl0IHBlcmZvcm1zLlxuICpcbiAqIENvbGxhcHNlcyB0aGUgY29weS1wYXN0ZWQgbGluZXMgaW4gZWFjaCBzZXJ2aWNlJ3MgYGluZGV4LnRzYCBpbnRvIG9uZSBjYWxsLlxuICpcbiAqIEVWRVJZIHN0YXRlbGVzcyBzZXJ2aWNlIGdvZXMgdGhyb3VnaCBoZXJlLCBwbHVnaW4gaW5jbHVkZWQuIFBsdWdpbiBuZWVkcyBhXG4gKiBkaWZmZXJlbnQgcmV2b2NhdGlvbiBzdG9yZSAoaXRzIHBvb2xlZCBCdWxsTVEgUmVkaXMgY29ubmVjdGlvbiwgbm90IHRoZVxuICogZW52LVJlZGlzIG9uZSk7IHRoYXQgb3ZlcnJpZGUgaXMgYSBwYXJhbWV0ZXIsIHNvIG9wdGluZyBvdXQgb2YgdGhlIGVudi1SZWRpc1xuICogc3RvcmUgbmV2ZXIgbWVhbnMgb3B0aW5nIG91dCBvZiB0aGUgd2lyaW5nIOKAlCBhIGhhbmQtcm9sbGVkIGNvcHkgd291bGRcbiAqIHNpbGVudGx5IHNraXAgdGhlIG5leHQgY29uY2VybiBhZGRlZCBoZXJlLlxuICpcbiAqIEBwYXJhbSBzZXJ2aWNlTmFtZSBzaG9ydCBzZXJ2aWNlIG5hbWUgZXZlcnkgYHJlY29yZEF1ZGl0YCBldmVudCAoYW5kIHRoZVxuICogICBgYXV0aHouZGVuaWVkYCByZWNvcmRzKSBpcyBhdHRyaWJ1dGVkIHRvXG4gKiBAcGFyYW0gb3B0cyBwZXItc2VydmljZSBvdmVycmlkZXMg4oCUIHNlZSB7QGxpbmsgU2VydmljZVNlY3VyaXR5T3B0aW9uc31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpcmVTZXJ2aWNlU2VjdXJpdHkoXG4gIHNlcnZpY2VOYW1lOiBzdHJpbmcsXG4gIG9wdHM6IFNlcnZpY2VTZWN1cml0eU9wdGlvbnMgPSB7fSxcbik6IHZvaWQge1xuICBiaW5kQXVkaXRTZXJ2aWNlKHNlcnZpY2VOYW1lKTtcbiAgd2lyZUF1dGh6RGVuaWFsQXVkaXRvcihzZXJ2aWNlTmFtZSwgZ2V0Qm91bmRBdWRpdENsaWVudCk7XG4gIHNldFRva2VuUmV2b2NhdGlvblN0b3JlKG9wdHMudG9rZW5SZXZvY2F0aW9uU3RvcmUgPz8gY3JlYXRlRW52UmVkaXNUb2tlblJldm9jYXRpb25TdG9yZSgpKTtcbiAgc2V0QXBpS2V5RXhjaGFuZ2VTZXJ2aWNlTmFtZShzZXJ2aWNlTmFtZSk7XG59XG4iXX0=
|