@nlabs/reaktor 1.8.0 → 1.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +62 -1
- package/docs/GENERATION.md +63 -0
- package/lib/actions/analytics.js +1 -1
- package/lib/actions/apps.d.ts +2 -2
- package/lib/actions/apps.js +1 -1
- package/lib/actions/connections.js +1 -1
- package/lib/actions/content.js +1 -1
- package/lib/actions/contentGeneration.d.ts +40 -0
- package/lib/actions/contentGeneration.js +206 -0
- package/lib/actions/conversations.js +1 -1
- package/lib/actions/crm.js +1 -1
- package/lib/actions/crud.d.ts +2 -2
- package/lib/actions/crud.js +1 -1
- package/lib/actions/dynamodb.js +1 -1
- package/lib/actions/email.js +1 -1
- package/lib/actions/files.d.ts +42 -4
- package/lib/actions/files.js +1 -1
- package/lib/actions/flags.js +1 -1
- package/lib/actions/geminiVideo.d.ts +19 -0
- package/lib/actions/geminiVideo.js +161 -0
- package/lib/actions/groups.js +1 -1
- package/lib/actions/higgsfield.d.ts +20 -0
- package/lib/actions/higgsfield.js +148 -0
- package/lib/actions/imageGeneration.d.ts +37 -0
- package/lib/actions/imageGeneration.js +121 -0
- package/lib/actions/images.js +1 -1
- package/lib/actions/index.d.ts +5 -0
- package/lib/actions/index.js +6 -1
- package/lib/actions/ios.js +1 -1
- package/lib/actions/locations.js +1 -1
- package/lib/actions/messages.js +1 -1
- package/lib/actions/notifications.js +1 -1
- package/lib/actions/payments.js +27 -26
- package/lib/actions/personas.d.ts +4 -4
- package/lib/actions/personas.js +1 -1
- package/lib/actions/posts.js +1 -1
- package/lib/actions/query.js +1 -1
- package/lib/actions/reactions.d.ts +6 -6
- package/lib/actions/reactions.js +1 -1
- package/lib/actions/rum.js +1 -1
- package/lib/actions/s3.d.ts +4 -4
- package/lib/actions/s3.js +22 -6
- package/lib/actions/search.js +1 -1
- package/lib/actions/sms.js +1 -1
- package/lib/actions/statistics.js +1 -1
- package/lib/actions/subscriptions.js +1 -1
- package/lib/actions/tags.d.ts +2 -2
- package/lib/actions/tags.js +1 -1
- package/lib/actions/users.d.ts +2 -2
- package/lib/actions/users.js +1 -1
- package/lib/actions/videoGeneration.d.ts +20 -0
- package/lib/actions/videoGeneration.js +32 -0
- package/lib/actions/videos.js +1 -1
- package/lib/adapters/arangoAdapter.js +1 -1
- package/lib/adapters/contentAdapter.js +1 -1
- package/lib/adapters/fileAdapter.js +1 -1
- package/lib/adapters/geminiGenerationAdapter.d.ts +34 -0
- package/lib/adapters/geminiGenerationAdapter.js +41 -0
- package/lib/adapters/higgsfieldAdapter.d.ts +120 -0
- package/lib/adapters/higgsfieldAdapter.js +131 -0
- package/lib/adapters/imageAdapter.js +1 -1
- package/lib/adapters/imageGenerationAdapter.d.ts +17 -0
- package/lib/adapters/imageGenerationAdapter.js +18 -0
- package/lib/adapters/index.d.ts +3 -0
- package/lib/adapters/index.js +4 -1
- package/lib/adapters/messageAdapter.js +1 -1
- package/lib/adapters/postAdapter.js +1 -1
- package/lib/adapters/reaktorAdapter.js +1 -1
- package/lib/adapters/tagAdapter.js +1 -1
- package/lib/adapters/userAdapter.d.ts +76 -1
- package/lib/adapters/userAdapter.js +1 -1
- package/lib/config.d.ts +19 -14
- package/lib/config.js +9 -1
- package/lib/constants/collections.js +1 -1
- package/lib/handlers/graphqlHandler.js +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/lambdas/actions/websockets.d.ts +5 -0
- package/lib/lambdas/actions/websockets.js +16 -1
- package/lib/lambdas/authorizer.js +1 -1
- package/lib/lambdas/connection.d.ts +2 -2
- package/lib/lambdas/connection.js +1 -1
- package/lib/lambdas/utils/message.js +1 -1
- package/lib/lambdas/utils/websocket.d.ts +4 -4
- package/lib/lambdas/utils/websocket.js +1 -1
- package/lib/mocks/conversation.js +1 -1
- package/lib/mocks/file.js +1 -1
- package/lib/mocks/group.js +1 -1
- package/lib/mocks/image.js +1 -1
- package/lib/mocks/post.js +1 -1
- package/lib/mocks/tag.js +1 -1
- package/lib/mocks/user.js +1 -1
- package/lib/mocks/video.js +1 -1
- package/lib/mutations/analytics/analytics.js +1 -1
- package/lib/mutations/content/content.js +15 -1
- package/lib/mutations/crm/crm.js +1 -1
- package/lib/mutations/events/events.js +1 -1
- package/lib/mutations/flags/flags.js +1 -1
- package/lib/mutations/groups/groups.js +1 -1
- package/lib/mutations/higgsfield/higgsfield.d.ts +1 -0
- package/lib/mutations/higgsfield/higgsfield.js +62 -0
- package/lib/mutations/images/images.js +10 -1
- package/lib/mutations/index.d.ts +2 -1
- package/lib/mutations/index.js +11 -2
- package/lib/mutations/locations/locations.js +1 -1
- package/lib/mutations/messages/messages.js +1 -1
- package/lib/mutations/personas/personas.js +1 -1
- package/lib/mutations/posts/posts.js +1 -1
- package/lib/mutations/reactions/reactions.js +1 -1
- package/lib/mutations/rum/rum.js +1 -1
- package/lib/mutations/statistics/statistics.js +1 -1
- package/lib/mutations/subscriptions/subscriptions.js +1 -1
- package/lib/mutations/tags/tags.js +1 -1
- package/lib/mutations/users/users.js +1 -1
- package/lib/mutations/videos/videos.js +24 -10
- package/lib/objectTypes/analytics.js +1 -1
- package/lib/objectTypes/app.js +1 -1
- package/lib/objectTypes/bankAccount.js +1 -1
- package/lib/objectTypes/connection.js +1 -1
- package/lib/objectTypes/content.js +1 -1
- package/lib/objectTypes/contentGeneration.d.ts +2 -0
- package/lib/objectTypes/contentGeneration.js +30 -0
- package/lib/objectTypes/conversation.js +1 -1
- package/lib/objectTypes/creditCard.js +1 -1
- package/lib/objectTypes/crm.js +1 -1
- package/lib/objectTypes/document.js +1 -1
- package/lib/objectTypes/error.js +1 -1
- package/lib/objectTypes/event.js +1 -1
- package/lib/objectTypes/external.js +1 -1
- package/lib/objectTypes/file.js +1 -1
- package/lib/objectTypes/filter.js +1 -1
- package/lib/objectTypes/flag.js +1 -1
- package/lib/objectTypes/group.js +1 -1
- package/lib/objectTypes/higgsfield.d.ts +5 -0
- package/lib/objectTypes/higgsfield.js +149 -0
- package/lib/objectTypes/iapSubscription.js +1 -1
- package/lib/objectTypes/image.js +1 -1
- package/lib/objectTypes/imageGeneration.d.ts +2 -0
- package/lib/objectTypes/imageGeneration.js +33 -0
- package/lib/objectTypes/index.d.ts +2 -0
- package/lib/objectTypes/index.js +3 -1
- package/lib/objectTypes/location.js +1 -1
- package/lib/objectTypes/message.js +1 -1
- package/lib/objectTypes/passcode.js +1 -1
- package/lib/objectTypes/persona.d.ts +37 -2
- package/lib/objectTypes/persona.js +1 -1
- package/lib/objectTypes/plan.js +1 -1
- package/lib/objectTypes/post.js +1 -1
- package/lib/objectTypes/query.js +1 -1
- package/lib/objectTypes/reaction.js +1 -1
- package/lib/objectTypes/relation.js +1 -1
- package/lib/objectTypes/rum.js +1 -1
- package/lib/objectTypes/search.js +1 -1
- package/lib/objectTypes/statistics.js +1 -1
- package/lib/objectTypes/subscription.js +1 -1
- package/lib/objectTypes/tag.js +1 -1
- package/lib/objectTypes/user.js +1 -1
- package/lib/objectTypes/video.js +1 -1
- package/lib/objectTypes/videoGeneration.d.ts +2 -0
- package/lib/objectTypes/videoGeneration.js +31 -0
- package/lib/queries/analytics/analytics.js +1 -1
- package/lib/queries/content/content.js +1 -1
- package/lib/queries/crm/crm.js +1 -1
- package/lib/queries/events/events.js +1 -1
- package/lib/queries/flags/flags.js +1 -1
- package/lib/queries/groups/groups.js +1 -1
- package/lib/queries/higgsfield/higgsfield.d.ts +1 -0
- package/lib/queries/higgsfield/higgsfield.js +22 -0
- package/lib/queries/images/images.js +1 -1
- package/lib/queries/index.d.ts +2 -1
- package/lib/queries/index.js +7 -2
- package/lib/queries/locations/locations.js +1 -1
- package/lib/queries/messages/messages.js +1 -1
- package/lib/queries/personas/personas.js +1 -1
- package/lib/queries/posts/posts.js +1 -1
- package/lib/queries/query/query.js +1 -1
- package/lib/queries/reactions/reactions.js +1 -1
- package/lib/queries/statistics/statistics.js +1 -1
- package/lib/queries/subscriptions/subscriptions.js +1 -1
- package/lib/queries/tags/tags.js +1 -1
- package/lib/queries/users/users.js +1 -1
- package/lib/queries/videos/videos.js +1 -1
- package/lib/templates/email/layout.js +1 -1
- package/lib/templates/email/passwordForgot.js +1 -1
- package/lib/templates/email/passwordRecovery.js +1 -1
- package/lib/templates/email/verifyEmail.js +1 -1
- package/lib/templates/email/welcome.js +1 -1
- package/lib/templates/sms/passwordForgot.js +1 -1
- package/lib/templates/sms/passwordRecovery.js +1 -1
- package/lib/templates/sms/verifyEmail.js +1 -1
- package/lib/templates/sms/verifyPhone.js +1 -1
- package/lib/templates/sms/welcome.js +1 -1
- package/lib/types/analytics.types.d.ts +16 -16
- package/lib/types/analytics.types.js +1 -1
- package/lib/types/apps.types.d.ts +4 -4
- package/lib/types/apps.types.js +1 -1
- package/lib/types/arangodb.types.d.ts +20 -20
- package/lib/types/arangodb.types.js +1 -1
- package/lib/types/auth.types.js +1 -1
- package/lib/types/connections.types.d.ts +2 -2
- package/lib/types/connections.types.js +1 -1
- package/lib/types/content.types.d.ts +6 -6
- package/lib/types/content.types.js +1 -1
- package/lib/types/conversations.types.d.ts +2 -2
- package/lib/types/conversations.types.js +1 -1
- package/lib/types/crm.types.d.ts +30 -30
- package/lib/types/crm.types.js +1 -1
- package/lib/types/email.types.d.ts +2 -2
- package/lib/types/email.types.js +1 -1
- package/lib/types/error.types.d.ts +1 -0
- package/lib/types/error.types.js +2 -1
- package/lib/types/files.types.d.ts +2 -2
- package/lib/types/files.types.js +1 -1
- package/lib/types/flags.types.d.ts +8 -8
- package/lib/types/flags.types.js +1 -1
- package/lib/types/google.types.js +1 -1
- package/lib/types/groups.types.d.ts +2 -2
- package/lib/types/groups.types.js +1 -1
- package/lib/types/images.types.d.ts +2 -2
- package/lib/types/images.types.js +1 -1
- package/lib/types/index.js +1 -1
- package/lib/types/locations.types.d.ts +2 -2
- package/lib/types/locations.types.js +1 -1
- package/lib/types/messages.types.d.ts +2 -2
- package/lib/types/messages.types.js +1 -1
- package/lib/types/notifications.types.js +1 -1
- package/lib/types/payments.types.d.ts +14 -14
- package/lib/types/payments.types.js +1 -1
- package/lib/types/personas.types.d.ts +2 -2
- package/lib/types/personas.types.js +1 -1
- package/lib/types/posts.types.d.ts +2 -2
- package/lib/types/posts.types.js +1 -1
- package/lib/types/rum.types.d.ts +6 -6
- package/lib/types/rum.types.js +1 -1
- package/lib/types/statistics.types.js +1 -1
- package/lib/types/tags.types.d.ts +4 -4
- package/lib/types/tags.types.js +1 -1
- package/lib/types/users.types.d.ts +2 -2
- package/lib/types/users.types.js +1 -1
- package/lib/types/videos.types.d.ts +2 -2
- package/lib/types/videos.types.js +1 -1
- package/lib/types/websockets.types.d.ts +4 -4
- package/lib/types/websockets.types.js +1 -1
- package/lib/upload.js +1 -1
- package/lib/utils/adapterUtils.js +1 -1
- package/lib/utils/analyticsUtils.js +1 -1
- package/lib/utils/appContext.js +1 -1
- package/lib/utils/aqlHelpers.js +1 -1
- package/lib/utils/arangodbUtils.js +1 -1
- package/lib/utils/authUtils.js +1 -1
- package/lib/utils/awsUtils.js +1 -1
- package/lib/utils/collectionRegistry.d.ts +2 -2
- package/lib/utils/collectionRegistry.js +1 -1
- package/lib/utils/contextUtils.js +1 -1
- package/lib/utils/dbI18n.example.js +1 -1
- package/lib/utils/dbI18n.js +1 -1
- package/lib/utils/googleTranslate.js +1 -1
- package/lib/utils/graphqlUtils.js +1 -1
- package/lib/utils/imageUtils.js +1 -1
- package/lib/utils/index.d.ts +3 -0
- package/lib/utils/index.js +4 -1
- package/lib/utils/languageDetection.js +1 -1
- package/lib/utils/localeUtils.example.js +1 -1
- package/lib/utils/localeUtils.js +1 -1
- package/lib/utils/mediaAccess.d.ts +5 -0
- package/lib/utils/mediaAccess.js +57 -0
- package/lib/utils/middlewareUtils.js +1 -1
- package/lib/utils/nodeRealtime.d.ts +14 -0
- package/lib/utils/nodeRealtime.js +84 -0
- package/lib/utils/opaqueToken.d.ts +4 -0
- package/lib/utils/opaqueToken.js +7 -0
- package/lib/utils/queryBuilder.js +1 -1
- package/lib/utils/schemaUtils.js +1 -1
- package/lib/utils/sessionUtils.js +1 -1
- package/lib/utils/stripeUtils.d.ts +1 -1
- package/lib/utils/stripeUtils.js +2 -2
- package/lib/utils/stripeUtils.ts.bak +12 -0
- package/lib/utils/templateUtils.js +1 -1
- package/lib/utils/testUtils.js +1 -1
- package/lib/utils/translationQueue.example.js +1 -1
- package/lib/utils/translationQueue.js +1 -1
- package/lib/videoProcessing.js +1 -1
- package/package.json +26 -25
package/lib/actions/crud.js
CHANGED
|
@@ -410,4 +410,4 @@ const eventCategory = 'crud';
|
|
|
410
410
|
return count > 0;
|
|
411
411
|
};
|
|
412
412
|
|
|
413
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3JlYWt0b3IvcmVha3Rvci9wYWNrYWdlcy9yZWFrdG9yL3NyYy9hY3Rpb25zL2NydWQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIGlzIHN1YmplY3QgdG8gdGhlIGFjY29tcGFueWluZyBjb21tZXJjaWFsIExJQ0VOU0UuXG4gKi9cbmltcG9ydCB7YXFsfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge2xpdGVyYWx9IGZyb20gJ2FyYW5nb2pzL2FxbCc7XG5pbXBvcnQge0Vycm9yVHlwZXN9IGZyb20gJy4uL3R5cGVzL2Vycm9yLnR5cGVzLmpzJztcbmltcG9ydCB7bG9nRXJyb3J9IGZyb20gJy4uL3V0aWxzL2FuYWx5dGljc1V0aWxzLmpzJztcbmltcG9ydCB7YnVpbGRGaWx0ZXJDbGF1c2V9IGZyb20gJy4uL3V0aWxzL2FxbEhlbHBlcnMuanMnO1xuaW1wb3J0IHt1c2VEYn0gZnJvbSAnLi4vdXRpbHMvYXJhbmdvZGJVdGlscy5qcyc7XG5pbXBvcnQge3JlZ2lzdHJ5fSBmcm9tICcuLi91dGlscy9jb2xsZWN0aW9uUmVnaXN0cnkuanMnO1xuXG5pbXBvcnQgdHlwZSB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2FxbCc7XG5pbXBvcnQgdHlwZSB7RmlsdGVyR3JvdXB9IGZyb20gJy4uL3R5cGVzL2FyYW5nb2RiLnR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoLnR5cGVzLmpzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeSA9ICdjcnVkJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBDUlVEIG9wZXJhdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcnVkT3B0aW9ucyB7XG4gIHJlYWRvbmx5IHNvcnQ/OiBSZWFkb25seUFycmF5PHtyZWFkb25seSBmaWVsZDogc3RyaW5nOyByZWFkb25seSBkaXJlY3Rpb246ICdBU0MnIHwgJ0RFU0MnfT47XG4gIHJlYWRvbmx5IGxpbWl0Pzoge3JlYWRvbmx5IGZyb206IG51bWJlcjsgcmVhZG9ubHkgdG86IG51bWJlcn07XG4gIHJlYWRvbmx5IGZpZWxkcz86IFJlYWRvbmx5QXJyYXk8c3RyaW5nPjsgLy8gU2VsZWN0IHNwZWNpZmljIGZpZWxkc1xuICByZWFkb25seSBpbmNsdWRlRWRnZXM/OiBSZWFkb25seUFycmF5PHN0cmluZz47IC8vIEluY2x1ZGUgcmVsYXRlZCBkb2N1bWVudHMgdmlhIGVkZ2VzXG4gIHJlYWRvbmx5IHByaXZhY3k/OiBib29sZWFuOyAvLyBBcHBseSBwcml2YWN5IGNoZWNrcyAoZGVmYXVsdDogdHJ1ZSlcbiAgcmVhZG9ubHkgb3duZXJzaGlwPzogYm9vbGVhbjsgLy8gQXBwbHkgb3duZXJzaGlwIGNoZWNrcyAoZGVmYXVsdDogZmFsc2UpXG4gIHJlYWRvbmx5IGN1c3RvbVF1ZXJpZXM/OiBSZWFkb25seUFycmF5PHN0cmluZz47IC8vIEFkZGl0aW9uYWwgY3VzdG9tIHF1ZXJ5IHN0cmluZ3NcbiAgcmVhZG9ubHkgY3VzdG9tT2JqZWN0cz86IFJlYWRvbmx5QXJyYXk8c3RyaW5nPjsgLy8gQWRkaXRpb25hbCBjdXN0b20gb2JqZWN0IHNlbGVjdGlvbnNcbn1cblxuLyoqXG4gKiBCdWlsZCBmaWx0ZXIgY2xhdXNlIGZyb20gZmlsdGVycyBvYmplY3Qgb3IgRmlsdGVyR3JvdXBcbiAqL1xuY29uc3QgYnVpbGRGaWx0ZXJzID0gKFxuICBmaWx0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgRmlsdGVyR3JvdXAsXG4gIHZhck5hbWU6IHN0cmluZyA9ICdkb2MnXG4pOiBzdHJpbmcgPT4ge1xuICAvLyBJZiBpdCdzIGEgRmlsdGVyR3JvdXAgd2l0aCBsb2dpYyBhbmQgY29uZGl0aW9uc1xuICBpZiAoJ2xvZ2ljJyBpbiBmaWx0ZXJzICYmICdjb25kaXRpb25zJyBpbiBmaWx0ZXJzKSB7XG4gICAgcmV0dXJuIGJ1aWxkRmlsdGVyQ2xhdXNlKGZpbHRlcnMgYXMgRmlsdGVyR3JvdXAsIHZhck5hbWUpO1xuICB9XG5cbiAgLy8gU2ltcGxlIG9iamVjdCBmaWx0ZXJzXG4gIGNvbnN0IHNpbXBsZUZpbHRlcnMgPSBmaWx0ZXJzIGFzIFJlY29yZDxzdHJpbmcsIGFueT47XG4gIGNvbnN0IGNvbmRpdGlvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoc2ltcGxlRmlsdGVycykpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgIGNvbmRpdGlvbnMucHVzaChgJHt2YXJOYW1lfS4ke2tleX0gPT0gbnVsbGApO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgY29uZGl0aW9ucy5wdXNoKGAke3Zhck5hbWV9LiR7a2V5fSA9PSBcIiR7dmFsdWV9XCJgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uZGl0aW9ucy5wdXNoKGAke3Zhck5hbWV9LiR7a2V5fSA9PSAke0pTT04uc3RyaW5naWZ5KHZhbHVlKX1gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uZGl0aW9ucy5qb2luKCcgJiYgJyk7XG59O1xuXG4vKipcbiAqIEJ1aWxkIHNvcnQgY2xhdXNlXG4gKi9cbmNvbnN0IGJ1aWxkU29ydCA9IChcbiAgc29ydDogUmVhZG9ubHlBcnJheTx7cmVhZG9ubHkgZmllbGQ6IHN0cmluZzsgcmVhZG9ubHkgZGlyZWN0aW9uOiAnQVNDJyB8ICdERVNDJ30+LFxuICB2YXJOYW1lOiBzdHJpbmcgPSAnZG9jJ1xuKTogc3RyaW5nID0+IHtcbiAgaWYgKCFzb3J0IHx8IHNvcnQubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgY29uc3Qgc29ydFBhcnRzID0gc29ydC5tYXAoKHtmaWVsZCwgZGlyZWN0aW9ufSkgPT4gYCR7dmFyTmFtZX0uJHtmaWVsZH0gJHtkaXJlY3Rpb259YCk7XG4gIHJldHVybiBgU09SVCAke3NvcnRQYXJ0cy5qb2luKCcsICcpfWA7XG59O1xuXG4vKipcbiAqIEJ1aWxkIGxpbWl0IGNsYXVzZVxuICovXG5jb25zdCBidWlsZExpbWl0ID0gKGxpbWl0Pzoge3JlYWRvbmx5IGZyb206IG51bWJlcjsgcmVhZG9ubHkgdG86IG51bWJlcn0pOiBzdHJpbmcgPT4ge1xuICBpZiAoIWxpbWl0KSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgY29uc3Qge2Zyb20sIHRvfSA9IGxpbWl0O1xuICBjb25zdCBjb3VudCA9IHRvIC0gZnJvbTtcbiAgcmV0dXJuIGBMSU1JVCAke2Zyb219LCAke2NvdW50fWA7XG59O1xuXG4vKipcbiAqIEFwcGx5IHByaXZhY3kgZmlsdGVyIGlmIGNvbGxlY3Rpb24gaGFzIHByaXZhY3lcbiAqL1xuY29uc3QgYXBwbHlQcml2YWN5RmlsdGVyID0gKFxuICBjb2xsZWN0aW9uOiBzdHJpbmcsXG4gIHNlc3Npb25JZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICB2YXJOYW1lOiBzdHJpbmcgPSAnZG9jJ1xuKTogc3RyaW5nID0+IHtcbiAgY29uc3QgY29uZmlnID0gcmVnaXN0cnkuZ2V0KGNvbGxlY3Rpb24pO1xuXG4gIGlmICghY29uZmlnIHx8ICFjb25maWcuaGFzUHJpdmFjeSkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8vIElmIG5vIHNlc3Npb24sIG9ubHkgcmV0dXJuIHB1YmxpYyBpdGVtc1xuICBpZiAoIXNlc3Npb25JZCkge1xuICAgIHJldHVybiBgJHt2YXJOYW1lfS5wcml2YWN5ID09IFwicHVibGljXCJgO1xuICB9XG5cbiAgLy8gUmV0dXJuIGl0ZW1zIHRoYXQgYXJlIHB1YmxpYyBPUiBvd25lZCBieSB0aGUgdXNlclxuICByZXR1cm4gYCgke3Zhck5hbWV9LnByaXZhY3kgPT0gXCJwdWJsaWNcIiB8fCAke3Zhck5hbWV9LnVzZXJJZCA9PSBcIiR7c2Vzc2lvbklkfVwiKWA7XG59O1xuXG4vKipcbiAqIEFwcGx5IG93bmVyc2hpcCBmaWx0ZXJcbiAqL1xuY29uc3QgYXBwbHlPd25lcnNoaXBGaWx0ZXIgPSAoXG4gIHNlc3Npb25JZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICB2YXJOYW1lOiBzdHJpbmcgPSAnZG9jJ1xuKTogc3RyaW5nID0+IHtcbiAgaWYgKCFzZXNzaW9uSWQpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICByZXR1cm4gYCR7dmFyTmFtZX0udXNlcklkID09IFwiJHtzZXNzaW9uSWR9XCJgO1xufTtcblxuLyoqXG4gKiBHZXQgYSBzaW5nbGUgaXRlbSBmcm9tIGFueSBjb2xsZWN0aW9uIGJ5IGZpbHRlcnNcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEl0ZW1CeSA9IGFzeW5jIDxUID0gYW55PihcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgY29sbGVjdGlvbjogc3RyaW5nLFxuICBmaWx0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgRmlsdGVyR3JvdXAsXG4gIG9wdGlvbnM6IENydWRPcHRpb25zID0ge31cbik6IFByb21pc2U8VCB8IG51bGw+ID0+IHtcbiAgY29uc3QgYWN0aW9uID0gJ2dldEl0ZW1CeSc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH0gPSB7fX0gPSBjb250ZXh0O1xuICBjb25zdCB7cHJpdmFjeSA9IGZhbHNlLCBvd25lcnNoaXAgPSBmYWxzZSwgY3VzdG9tUXVlcmllcyA9IFtdLCBjdXN0b21PYmplY3RzID0gW119ID0gb3B0aW9ucztcblxuICB0cnkge1xuICAgIGNvbnN0IGRhdGFiYXNlID0gdXNlRGIoZGF0YWJhc2VOYW1lKTtcbiAgICBjb25zdCBmaWx0ZXJDbGF1c2UgPSBidWlsZEZpbHRlcnMoZmlsdGVycywgJ2RvYycpO1xuICAgIGNvbnN0IGNvbmRpdGlvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBpZiAoZmlsdGVyQ2xhdXNlKSB7XG4gICAgICBjb25kaXRpb25zLnB1c2goZmlsdGVyQ2xhdXNlKTtcbiAgICB9XG5cbiAgICBpZiAocHJpdmFjeSkge1xuICAgICAgY29uc3QgcHJpdmFjeUZpbHRlciA9IGFwcGx5UHJpdmFjeUZpbHRlcihjb2xsZWN0aW9uLCBzZXNzaW9uSWQsICdkb2MnKTtcbiAgICAgIGlmIChwcml2YWN5RmlsdGVyKSB7XG4gICAgICAgIGNvbmRpdGlvbnMucHVzaChwcml2YWN5RmlsdGVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAob3duZXJzaGlwKSB7XG4gICAgICBjb25zdCBvd25lcnNoaXBGaWx0ZXIgPSBhcHBseU93bmVyc2hpcEZpbHRlcihzZXNzaW9uSWQsICdkb2MnKTtcbiAgICAgIGlmIChvd25lcnNoaXBGaWx0ZXIpIHtcbiAgICAgICAgY29uZGl0aW9ucy5wdXNoKG93bmVyc2hpcEZpbHRlcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY29sbGVjdGlvbkxpdGVyYWwgPSBsaXRlcmFsKGNvbGxlY3Rpb24pO1xuICAgIGNvbnN0IHdoZXJlQ2xhdXNlID0gY29uZGl0aW9ucy5sZW5ndGggPiAwID8gbGl0ZXJhbChgRklMVEVSICR7Y29uZGl0aW9ucy5qb2luKCcgJiYgJyl9YCkgOiBsaXRlcmFsKCcnKTtcbiAgICBjb25zdCBjdXN0b21RdWVyaWVzTGl0ZXJhbCA9IGN1c3RvbVF1ZXJpZXMubGVuZ3RoID4gMCA/IGxpdGVyYWwoY3VzdG9tUXVlcmllcy5qb2luKCdcXG4nKSkgOiBsaXRlcmFsKCcnKTtcbiAgICBjb25zdCByZXR1cm5WYWx1ZSA9IGN1c3RvbU9iamVjdHMubGVuZ3RoID4gMFxuICAgICAgPyBsaXRlcmFsKGBNRVJHRShkb2MsIHske2N1c3RvbU9iamVjdHMuam9pbignLCAnKX19KWApXG4gICAgICA6IGxpdGVyYWwoJ2RvYycpO1xuXG4gICAgY29uc3QgYXFsUXVlcnk6IEFxbFF1ZXJ5ID0gYXFsYFxuICAgICAgRk9SIGRvYyBJTiAke2NvbGxlY3Rpb25MaXRlcmFsfVxuICAgICAgICAke3doZXJlQ2xhdXNlfVxuICAgICAgICAke2N1c3RvbVF1ZXJpZXNMaXRlcmFsfVxuICAgICAgICBMSU1JVCAxXG4gICAgICAgIFJFVFVSTiAke3JldHVyblZhbHVlfVxuICAgIGA7XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBkYXRhYmFzZS5xdWVyeShhcWxRdWVyeSk7XG4gICAgY29uc3QgaXRlbSA9IGF3YWl0IHJlc3VsdC5uZXh0KCk7XG5cbiAgICByZXR1cm4gaXRlbSB8fCBudWxsO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHRocm93IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1IsXG4gICAgICBwYXJhbXM6IHtjb2xsZWN0aW9uLCBmaWx0ZXJzfVxuICAgIH0sIGVycm9yIGFzIEVycm9yLCBjb250ZXh0KTtcbiAgfVxufTtcblxuLyoqXG4gKiBHZXQgbXVsdGlwbGUgaXRlbXMgZnJvbSBhbnkgY29sbGVjdGlvbiBieSBmaWx0ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRMaXN0QnkgPSBhc3luYyA8VCA9IGFueT4oXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGNvbGxlY3Rpb246IHN0cmluZyxcbiAgZmlsdGVyczogUmVjb3JkPHN0cmluZywgYW55PiB8IEZpbHRlckdyb3VwID0ge30sXG4gIG9wdGlvbnM6IENydWRPcHRpb25zID0ge31cbik6IFByb21pc2U8VFtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbiA9ICdnZXRMaXN0QnknO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9ID0ge319ID0gY29udGV4dDtcbiAgY29uc3Qge1xuICAgIHByaXZhY3kgPSBmYWxzZSxcbiAgICBvd25lcnNoaXAgPSBmYWxzZSxcbiAgICBzb3J0LFxuICAgIGxpbWl0LFxuICAgIGN1c3RvbVF1ZXJpZXMgPSBbXSxcbiAgICBjdXN0b21PYmplY3RzID0gW11cbiAgfSA9IG9wdGlvbnM7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBkYXRhYmFzZSA9IHVzZURiKGRhdGFiYXNlTmFtZSk7XG4gICAgY29uc3QgZmlsdGVyQ2xhdXNlID0gYnVpbGRGaWx0ZXJzKGZpbHRlcnMsICdkb2MnKTtcbiAgICBjb25zdCBjb25kaXRpb25zOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgaWYgKGZpbHRlckNsYXVzZSkge1xuICAgICAgY29uZGl0aW9ucy5wdXNoKGZpbHRlckNsYXVzZSk7XG4gICAgfVxuXG4gICAgaWYgKHByaXZhY3kpIHtcbiAgICAgIGNvbnN0IHByaXZhY3lGaWx0ZXIgPSBhcHBseVByaXZhY3lGaWx0ZXIoY29sbGVjdGlvbiwgc2Vzc2lvbklkLCAnZG9jJyk7XG4gICAgICBpZiAocHJpdmFjeUZpbHRlcikge1xuICAgICAgICBjb25kaXRpb25zLnB1c2gocHJpdmFjeUZpbHRlcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG93bmVyc2hpcCkge1xuICAgICAgY29uc3Qgb3duZXJzaGlwRmlsdGVyID0gYXBwbHlPd25lcnNoaXBGaWx0ZXIoc2Vzc2lvbklkLCAnZG9jJyk7XG4gICAgICBpZiAob3duZXJzaGlwRmlsdGVyKSB7XG4gICAgICAgIGNvbmRpdGlvbnMucHVzaChvd25lcnNoaXBGaWx0ZXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNvbGxlY3Rpb25MaXRlcmFsID0gbGl0ZXJhbChjb2xsZWN0aW9uKTtcbiAgICBjb25zdCB3aGVyZUNsYXVzZSA9IGNvbmRpdGlvbnMubGVuZ3RoID4gMCA/IGxpdGVyYWwoYEZJTFRFUiAke2NvbmRpdGlvbnMuam9pbignICYmICcpfWApIDogbGl0ZXJhbCgnJyk7XG4gICAgY29uc3Qgc29ydENsYXVzZSA9IHNvcnQgPyBsaXRlcmFsKGJ1aWxkU29ydChzb3J0LCAnZG9jJykpIDogbGl0ZXJhbCgnJyk7XG4gICAgY29uc3QgbGltaXRDbGF1c2UgPSBsaW1pdCA/IGxpdGVyYWwoYnVpbGRMaW1pdChsaW1pdCkpIDogbGl0ZXJhbCgnJyk7XG4gICAgY29uc3QgY3VzdG9tUXVlcmllc0xpdGVyYWwgPSBjdXN0b21RdWVyaWVzLmxlbmd0aCA+IDAgPyBsaXRlcmFsKGN1c3RvbVF1ZXJpZXMuam9pbignXFxuJykpIDogbGl0ZXJhbCgnJyk7XG4gICAgY29uc3QgcmV0dXJuVmFsdWUgPSBjdXN0b21PYmplY3RzLmxlbmd0aCA+IDBcbiAgICAgID8gbGl0ZXJhbChgTUVSR0UoZG9jLCB7JHtjdXN0b21PYmplY3RzLmpvaW4oJywgJyl9fSlgKVxuICAgICAgOiBsaXRlcmFsKCdkb2MnKTtcblxuICAgIGNvbnN0IGFxbFF1ZXJ5OiBBcWxRdWVyeSA9IGFxbGBcbiAgICAgIEZPUiBkb2MgSU4gJHtjb2xsZWN0aW9uTGl0ZXJhbH1cbiAgICAgICAgJHt3aGVyZUNsYXVzZX1cbiAgICAgICAgJHtjdXN0b21RdWVyaWVzTGl0ZXJhbH1cbiAgICAgICAgJHtzb3J0Q2xhdXNlfVxuICAgICAgICAke2xpbWl0Q2xhdXNlfVxuICAgICAgICBSRVRVUk4gJHtyZXR1cm5WYWx1ZX1cbiAgICBgO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZGF0YWJhc2UucXVlcnkoYXFsUXVlcnkpO1xuICAgIHJldHVybiBhd2FpdCByZXN1bHQuYWxsKCkgYXMgVFtdO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHRocm93IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1IsXG4gICAgICBwYXJhbXM6IHtjb2xsZWN0aW9uLCBmaWx0ZXJzfVxuICAgIH0sIGVycm9yIGFzIEVycm9yLCBjb250ZXh0KTtcbiAgfVxufTtcblxuLyoqXG4gKiBBZGQgYSBuZXcgaXRlbSB0byBhbnkgY29sbGVjdGlvblxuICovXG5leHBvcnQgY29uc3QgYWRkSXRlbSA9IGFzeW5jIDxUID0gYW55PihcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgY29sbGVjdGlvbjogc3RyaW5nLFxuICBkYXRhOiBQYXJ0aWFsPFQ+LFxuICBvcHRpb25zOiB7cmVhZG9ubHkgaG9va3M/OiBib29sZWFufSA9IHt9XG4pOiBQcm9taXNlPFQ+ID0+IHtcbiAgY29uc3QgYWN0aW9uID0gJ2FkZEl0ZW0nO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtob29rcyA9IGZhbHNlfSA9IG9wdGlvbnM7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBjb25maWcgPSByZWdpc3RyeS5nZXQoY29sbGVjdGlvbik7XG4gICAgbGV0IGluc2VydERhdGE6IGFueSA9IHsuLi5kYXRhfTtcblxuICAgIC8vIEFwcGx5IHBhcnNlIGFkYXB0ZXIgaWYgYXZhaWxhYmxlXG4gICAgaWYgKGNvbmZpZz8uYWRhcHRlcnM/LnBhcnNlKSB7XG4gICAgICBpbnNlcnREYXRhID0gY29uZmlnLmFkYXB0ZXJzLnBhcnNlKGluc2VydERhdGEpO1xuICAgIH1cblxuICAgIC8vIENhbGwgYmVmb3JlSW5zZXJ0IGhvb2tcbiAgICBpZiAoaG9va3MgJiYgY29uZmlnPy5ob29rcz8uYmVmb3JlSW5zZXJ0KSB7XG4gICAgICBpbnNlcnREYXRhID0gYXdhaXQgY29uZmlnLmhvb2tzLmJlZm9yZUluc2VydChjb250ZXh0LCBpbnNlcnREYXRhKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgdGltZXN0YW1wcyAodHlwZS1zYWZlIGFwcHJvYWNoKVxuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgaWYgKGNvbmZpZz8udGltZXN0YW1wcz8uY3JlYXRlZCkge1xuICAgICAgaW5zZXJ0RGF0YSA9IHsuLi5pbnNlcnREYXRhLCBbY29uZmlnLnRpbWVzdGFtcHMuY3JlYXRlZF06IG5vd307XG4gICAgfVxuICAgIGlmIChjb25maWc/LnRpbWVzdGFtcHM/LnVwZGF0ZWQpIHtcbiAgICAgIGluc2VydERhdGEgPSB7Li4uaW5zZXJ0RGF0YSwgW2NvbmZpZy50aW1lc3RhbXBzLnVwZGF0ZWRdOiBub3d9O1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGFiYXNlID0gdXNlRGIoZGF0YWJhc2VOYW1lKTtcbiAgICBjb25zdCBjb2xsZWN0aW9uUmVmID0gZGF0YWJhc2UuY29sbGVjdGlvbihjb2xsZWN0aW9uKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjb2xsZWN0aW9uUmVmLnNhdmUoaW5zZXJ0RGF0YSBhcyBhbnksIHtyZXR1cm5OZXc6IHRydWV9KTtcbiAgICBsZXQgaXRlbSA9IHJlc3VsdC5uZXcgYXMgVDtcblxuICAgIC8vIENhbGwgYWZ0ZXJJbnNlcnQgaG9va1xuICAgIGlmIChob29rcyAmJiBjb25maWc/Lmhvb2tzPy5hZnRlckluc2VydCkge1xuICAgICAgaXRlbSA9IGF3YWl0IGNvbmZpZy5ob29rcy5hZnRlckluc2VydChjb250ZXh0LCBpdGVtKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXRlbTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB0aHJvdyBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SLFxuICAgICAgcGFyYW1zOiB7Y29sbGVjdGlvbn1cbiAgICB9LCBlcnJvciBhcyBFcnJvciwgY29udGV4dCk7XG4gIH1cbn07XG5cbi8qKlxuICogVXBkYXRlIGFuIGl0ZW0gaW4gYW55IGNvbGxlY3Rpb25cbiAqL1xuZXhwb3J0IGNvbnN0IHVwZGF0ZUl0ZW0gPSBhc3luYyA8VCA9IGFueT4oXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGNvbGxlY3Rpb246IHN0cmluZyxcbiAgaWQ6IHN0cmluZyxcbiAgdXBkYXRlczogUGFydGlhbDxUPixcbiAgb3B0aW9uczoge3JlYWRvbmx5IGhvb2tzPzogYm9vbGVhbjsgcmVhZG9ubHkgb3duZXJzaGlwPzogYm9vbGVhbn0gPSB7fVxuKTogUHJvbWlzZTxUPiA9PiB7XG4gIGNvbnN0IGFjdGlvbiA9ICd1cGRhdGVJdGVtJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfSA9IHt9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtob29rcyA9IGZhbHNlLCBvd25lcnNoaXAgPSBmYWxzZX0gPSBvcHRpb25zO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgY29uZmlnID0gcmVnaXN0cnkuZ2V0KGNvbGxlY3Rpb24pO1xuICAgIGxldCB1cGRhdGVEYXRhOiBhbnkgPSB7Li4udXBkYXRlc307XG5cbiAgICAvLyBBcHBseSBwYXJzZSBhZGFwdGVyIGlmIGF2YWlsYWJsZVxuICAgIGlmIChjb25maWc/LmFkYXB0ZXJzPy5wYXJzZSkge1xuICAgICAgdXBkYXRlRGF0YSA9IGNvbmZpZy5hZGFwdGVycy5wYXJzZSh1cGRhdGVEYXRhKTtcbiAgICB9XG5cbiAgICAvLyBDYWxsIGJlZm9yZVVwZGF0ZSBob29rXG4gICAgaWYgKGhvb2tzICYmIGNvbmZpZz8uaG9va3M/LmJlZm9yZVVwZGF0ZSkge1xuICAgICAgdXBkYXRlRGF0YSA9IGF3YWl0IGNvbmZpZy5ob29rcy5iZWZvcmVVcGRhdGUoY29udGV4dCwgaWQsIHVwZGF0ZURhdGEpO1xuICAgIH1cblxuICAgIC8vIEFkZCB1cGRhdGVkIHRpbWVzdGFtcCAodHlwZS1zYWZlIGFwcHJvYWNoKVxuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgaWYgKGNvbmZpZz8udGltZXN0YW1wcz8udXBkYXRlZCkge1xuICAgICAgdXBkYXRlRGF0YSA9IHsuLi51cGRhdGVEYXRhLCBbY29uZmlnLnRpbWVzdGFtcHMudXBkYXRlZF06IG5vd307XG4gICAgfVxuXG4gICAgY29uc3QgZGF0YWJhc2UgPSB1c2VEYihkYXRhYmFzZU5hbWUpO1xuICAgIGNvbnN0IGRvY0lkID0gaWQuaW5jbHVkZXMoJy8nKSA/IGlkIDogYCR7Y29sbGVjdGlvbn0vJHtpZH1gO1xuXG4gICAgLy8gQnVpbGQgcXVlcnkgd2l0aCBvd25lcnNoaXAgY2hlY2sgaWYgbmVlZGVkXG4gICAgbGV0IGFxbFF1ZXJ5OiBBcWxRdWVyeTtcbiAgICBjb25zdCBjb2xsZWN0aW9uTGl0ZXJhbCA9IGxpdGVyYWwoY29sbGVjdGlvbik7XG4gICAgaWYgKG93bmVyc2hpcCAmJiBzZXNzaW9uSWQpIHtcbiAgICAgIGFxbFF1ZXJ5ID0gYXFsYEZPUiBkb2MgSU4gJHtjb2xsZWN0aW9uTGl0ZXJhbH1cbiAgICAgICAgRklMVEVSIGRvYy5faWQgPT0gJHtkb2NJZH0gJiYgZG9jLnVzZXJJZCA9PSAke3Nlc3Npb25JZH1cbiAgICAgICAgTElNSVQgMVxuICAgICAgICBVUERBVEUgZG9jIFdJVEggJHt1cGRhdGVEYXRhfSBJTiAke2NvbGxlY3Rpb25MaXRlcmFsfVxuICAgICAgICBSRVRVUk4gTkVXYDtcbiAgICB9IGVsc2Uge1xuICAgICAgYXFsUXVlcnkgPSBhcWxgRk9SIGRvYyBJTiAke2NvbGxlY3Rpb25MaXRlcmFsfVxuICAgICAgICBGSUxURVIgZG9jLl9pZCA9PSAke2RvY0lkfVxuICAgICAgICBMSU1JVCAxXG4gICAgICAgIFVQREFURSBkb2MgV0lUSCAke3VwZGF0ZURhdGF9IElOICR7Y29sbGVjdGlvbkxpdGVyYWx9XG4gICAgICAgIFJFVFVSTiBORVdgO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KGFxbFF1ZXJ5KTtcbiAgICBsZXQgaXRlbSA9IGF3YWl0IHJlc3VsdC5uZXh0KCk7XG5cbiAgICAvLyBDYWxsIGFmdGVyVXBkYXRlIGhvb2tcbiAgICBpZiAoaG9va3MgJiYgY29uZmlnPy5ob29rcz8uYWZ0ZXJVcGRhdGUpIHtcbiAgICAgIGl0ZW0gPSBhd2FpdCBjb25maWcuaG9va3MuYWZ0ZXJVcGRhdGUoY29udGV4dCwgaXRlbSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZW07XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdGhyb3cgbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUixcbiAgICAgIHBhcmFtczoge2NvbGxlY3Rpb24sIGlkfVxuICAgIH0sIGVycm9yIGFzIEVycm9yLCBjb250ZXh0KTtcbiAgfVxufTtcblxuLyoqXG4gKiBEZWxldGUgYW4gaXRlbSBmcm9tIGFueSBjb2xsZWN0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBkZWxldGVJdGVtID0gYXN5bmMgPFQgPSBhbnk+KFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBjb2xsZWN0aW9uOiBzdHJpbmcsXG4gIGlkOiBzdHJpbmcsXG4gIG9wdGlvbnM6IHtcbiAgICByZWFkb25seSBzb2Z0PzogYm9vbGVhbjtcbiAgICByZWFkb25seSBjYXNjYWRlPzogUmVhZG9ubHlBcnJheTxzdHJpbmc+O1xuICAgIHJlYWRvbmx5IG93bmVyc2hpcD86IGJvb2xlYW47XG4gIH0gPSB7fVxuKTogUHJvbWlzZTxUIHwgbnVsbD4gPT4ge1xuICBjb25zdCBhY3Rpb24gPSAnZGVsZXRlSXRlbSc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH0gPSB7fX0gPSBjb250ZXh0O1xuICBjb25zdCB7c29mdCA9IGZhbHNlLCBjYXNjYWRlID0gW10sIG93bmVyc2hpcCA9IGZhbHNlfSA9IG9wdGlvbnM7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBjb25maWcgPSByZWdpc3RyeS5nZXQoY29sbGVjdGlvbik7XG4gICAgY29uc3QgZGF0YWJhc2UgPSB1c2VEYihkYXRhYmFzZU5hbWUpO1xuICAgIGNvbnN0IGRvY0lkID0gaWQuaW5jbHVkZXMoJy8nKSA/IGlkIDogYCR7Y29sbGVjdGlvbn0vJHtpZH1gO1xuICAgIGNvbnN0IGRvY0tleSA9IGlkLmluY2x1ZGVzKCcvJykgPyBpZC5zcGxpdCgnLycpLnBvcCgpIHx8ICcnIDogaWQ7XG4gICAgbGV0IGRlbGV0ZWRJdGVtOiBUIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvLyBDYWxsIGJlZm9yZURlbGV0ZSBob29rXG4gICAgaWYgKGNvbmZpZz8uaG9va3M/LmJlZm9yZURlbGV0ZSkge1xuICAgICAgYXdhaXQgY29uZmlnLmhvb2tzLmJlZm9yZURlbGV0ZShjb250ZXh0LCBkb2NJZCk7XG4gICAgfVxuXG4gICAgLy8gU29mdCBkZWxldGVcbiAgICBpZiAoc29mdCkge1xuICAgICAgY29uc3QgdXBkYXRlID0ge2RlbGV0ZWQ6IHRydWUsIGRlbGV0ZWRBdDogRGF0ZS5ub3coKX07XG4gICAgICBjb25zdCBjb2xsZWN0aW9uTGl0ZXJhbCA9IGxpdGVyYWwoY29sbGVjdGlvbik7XG4gICAgICBjb25zdCBhcWxRdWVyeTogQXFsUXVlcnkgPSBhcWxgRk9SIGRvYyBJTiAke2NvbGxlY3Rpb25MaXRlcmFsfVxuICAgICAgICBGSUxURVIgZG9jLl9pZCA9PSAke2RvY0lkfVxuICAgICAgICBMSU1JVCAxXG4gICAgICAgIFVQREFURSBkb2MgV0lUSCAke3VwZGF0ZX0gSU4gJHtjb2xsZWN0aW9uTGl0ZXJhbH1cbiAgICAgICAgUkVUVVJOIE5FV2A7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBkYXRhYmFzZS5xdWVyeShhcWxRdWVyeSk7XG4gICAgICBkZWxldGVkSXRlbSA9IGF3YWl0IHJlc3VsdC5uZXh0KCkgYXMgVCB8IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEhhcmQgZGVsZXRlIHdpdGggY2FzY2FkZVxuICAgICAgY29uc3QgZWRnZXNUb0Nhc2NhZGUgPSBjYXNjYWRlLmxlbmd0aCA+IDAgPyBjYXNjYWRlIDogKGNvbmZpZz8uY2FzY2FkZUVkZ2VzIHx8IFtdKTtcblxuICAgICAgLy8gRGVsZXRlIHRoZSBkb2N1bWVudFxuICAgICAgaWYgKG93bmVyc2hpcCAmJiBzZXNzaW9uSWQpIHtcbiAgICAgICAgY29uc3QgYXFsUXVlcnk6IEFxbFF1ZXJ5ID0gYXFsYFxuICAgICAgICAgIEZPUiBkb2MgSU4gJHtsaXRlcmFsKGNvbGxlY3Rpb24pfVxuICAgICAgICAgICAgRklMVEVSIGRvYy5faWQgPT0gJHtkb2NJZH0gJiYgZG9jLnVzZXJJZCA9PSAke3Nlc3Npb25JZH1cbiAgICAgICAgICAgIFJFTU9WRSBkb2MgSU4gJHtsaXRlcmFsKGNvbGxlY3Rpb24pfVxuICAgICAgICAgICAgUkVUVVJOIE9MRFxuICAgICAgICBgO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBkYXRhYmFzZS5xdWVyeShhcWxRdWVyeSk7XG4gICAgICAgIGRlbGV0ZWRJdGVtID0gYXdhaXQgcmVzdWx0Lm5leHQoKSBhcyBUIHwgbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGFxbFF1ZXJ5OiBBcWxRdWVyeSA9IGFxbGBSRU1PVkUgJHtkb2NLZXl9IElOICR7bGl0ZXJhbChjb2xsZWN0aW9uKX0gUkVUVVJOIE9MRGA7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KGFxbFF1ZXJ5KTtcbiAgICAgICAgZGVsZXRlZEl0ZW0gPSBhd2FpdCByZXN1bHQubmV4dCgpIGFzIFQgfCBudWxsO1xuICAgICAgfVxuXG4gICAgICAvLyBEZWxldGUgcmVsYXRlZCBlZGdlcyBvbmx5IGFmdGVyIHRoZSBkb2N1bWVudCBkZWxldGUgc3VjY2VlZHMsIHNvIG93bmVyc2hpcCBjaGVja3MgcHJvdGVjdCBjYXNjYWRlcyB0b28uXG4gICAgICBpZiAoZGVsZXRlZEl0ZW0pIHtcbiAgICAgICAgZm9yIChjb25zdCBlZGdlVHlwZSBvZiBlZGdlc1RvQ2FzY2FkZSkge1xuICAgICAgICAgIC8vIFVzZSBzdHJpbmcgZm9yIGVkZ2UgY29sbGVjdGlvbiBuYW1lIChzYWZlKVxuICAgICAgICAgIGNvbnN0IGVkZ2VRdWVyeTogQXFsUXVlcnkgPSBhcWxgXG4gICAgICAgICAgICBGT1IgZSBJTiAke2xpdGVyYWwoZWRnZVR5cGUpfVxuICAgICAgICAgICAgICBGSUxURVIgZS5fdG8gPT0gJHtkb2NJZH0gfHwgZS5fZnJvbSA9PSAke2RvY0lkfVxuICAgICAgICAgICAgICBSRU1PVkUgZSBJTiAke2xpdGVyYWwoZWRnZVR5cGUpfVxuICAgICAgICAgIGA7XG4gICAgICAgICAgYXdhaXQgZGF0YWJhc2UucXVlcnkoZWRnZVF1ZXJ5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENhbGwgYWZ0ZXJEZWxldGUgaG9va1xuICAgIGlmIChjb25maWc/Lmhvb2tzPy5hZnRlckRlbGV0ZSkge1xuICAgICAgYXdhaXQgY29uZmlnLmhvb2tzLmFmdGVyRGVsZXRlKGNvbnRleHQsIGRvY0lkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVsZXRlZEl0ZW07XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdGhyb3cgbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUixcbiAgICAgIHBhcmFtczoge2NvbGxlY3Rpb24sIGlkfVxuICAgIH0sIGVycm9yIGFzIEVycm9yLCBjb250ZXh0KTtcbiAgfVxufTtcblxuLyoqXG4gKiBDb3VudCBpdGVtcyBpbiBhbnkgY29sbGVjdGlvblxuICovXG5leHBvcnQgY29uc3QgY291bnRJdGVtcyA9IGFzeW5jIChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgY29sbGVjdGlvbjogc3RyaW5nLFxuICBmaWx0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgRmlsdGVyR3JvdXAgPSB7fVxuKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgY29uc3QgYWN0aW9uID0gJ2NvdW50SXRlbXMnO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBkYXRhYmFzZSA9IHVzZURiKGRhdGFiYXNlTmFtZSk7XG4gICAgY29uc3QgZmlsdGVyQ2xhdXNlID0gYnVpbGRGaWx0ZXJzKGZpbHRlcnMsICdkb2MnKTtcbiAgICBjb25zdCB3aGVyZUNsYXVzZSA9IGZpbHRlckNsYXVzZSA/IGxpdGVyYWwoYEZJTFRFUiAke2ZpbHRlckNsYXVzZX1gKSA6IGxpdGVyYWwoJycpO1xuXG4gICAgY29uc3QgYXFsUXVlcnk6IEFxbFF1ZXJ5ID0gYXFsYFxuICAgICAgTEVUIGl0ZW1zID0gKFxuICAgICAgICBGT1IgZG9jIElOICR7bGl0ZXJhbChjb2xsZWN0aW9uKX1cbiAgICAgICAgICAke3doZXJlQ2xhdXNlfVxuICAgICAgICAgIFJFVFVSTiBkb2NcbiAgICAgIClcbiAgICAgIFJFVFVSTiBMRU5HVEgoaXRlbXMpXG4gICAgYDtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KGFxbFF1ZXJ5KTtcbiAgICByZXR1cm4gYXdhaXQgcmVzdWx0Lm5leHQoKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB0aHJvdyBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SLFxuICAgICAgcGFyYW1zOiB7Y29sbGVjdGlvbiwgZmlsdGVyc31cbiAgICB9LCBlcnJvciBhcyBFcnJvciwgY29udGV4dCk7XG4gIH1cbn07XG5cbi8qKlxuICogQ2hlY2sgaWYgaXRlbSBleGlzdHNcbiAqL1xuZXhwb3J0IGNvbnN0IGl0ZW1FeGlzdHMgPSBhc3luYyAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGNvbGxlY3Rpb246IHN0cmluZyxcbiAgZmlsdGVyczogUmVjb3JkPHN0cmluZywgYW55PiB8IEZpbHRlckdyb3VwXG4pOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3QgY291bnQgPSBhd2FpdCBjb3VudEl0ZW1zKGNvbnRleHQsIGNvbGxlY3Rpb24sIGZpbHRlcnMpO1xuICByZXR1cm4gY291bnQgPiAwO1xufTtcbiJdLCJuYW1lcyI6WyJhcWwiLCJsaXRlcmFsIiwiRXJyb3JUeXBlcyIsImxvZ0Vycm9yIiwiYnVpbGRGaWx0ZXJDbGF1c2UiLCJ1c2VEYiIsInJlZ2lzdHJ5IiwiZXZlbnRDYXRlZ29yeSIsImJ1aWxkRmlsdGVycyIsImZpbHRlcnMiLCJ2YXJOYW1lIiwic2ltcGxlRmlsdGVycyIsImNvbmRpdGlvbnMiLCJrZXkiLCJ2YWx1ZSIsIk9iamVjdCIsImVudHJpZXMiLCJwdXNoIiwiSlNPTiIsInN0cmluZ2lmeSIsImpvaW4iLCJidWlsZFNvcnQiLCJzb3J0IiwibGVuZ3RoIiwic29ydFBhcnRzIiwibWFwIiwiZmllbGQiLCJkaXJlY3Rpb24iLCJidWlsZExpbWl0IiwibGltaXQiLCJmcm9tIiwidG8iLCJjb3VudCIsImFwcGx5UHJpdmFjeUZpbHRlciIsImNvbGxlY3Rpb24iLCJzZXNzaW9uSWQiLCJjb25maWciLCJnZXQiLCJoYXNQcml2YWN5IiwiYXBwbHlPd25lcnNoaXBGaWx0ZXIiLCJnZXRJdGVtQnkiLCJjb250ZXh0Iiwib3B0aW9ucyIsImFjdGlvbiIsImRhdGFiYXNlTmFtZSIsInNlc3Npb24iLCJ1c2VySWQiLCJwcml2YWN5Iiwib3duZXJzaGlwIiwiY3VzdG9tUXVlcmllcyIsImN1c3RvbU9iamVjdHMiLCJkYXRhYmFzZSIsImZpbHRlckNsYXVzZSIsInByaXZhY3lGaWx0ZXIiLCJvd25lcnNoaXBGaWx0ZXIiLCJjb2xsZWN0aW9uTGl0ZXJhbCIsIndoZXJlQ2xhdXNlIiwiY3VzdG9tUXVlcmllc0xpdGVyYWwiLCJyZXR1cm5WYWx1ZSIsImFxbFF1ZXJ5IiwicmVzdWx0IiwicXVlcnkiLCJpdGVtIiwibmV4dCIsImVycm9yIiwiY2F0ZWdvcnkiLCJsYWJlbCIsIkRBVEFCQVNFX0VSUk9SIiwicGFyYW1zIiwiZ2V0TGlzdEJ5Iiwic29ydENsYXVzZSIsImxpbWl0Q2xhdXNlIiwiYWxsIiwiYWRkSXRlbSIsImRhdGEiLCJob29rcyIsImluc2VydERhdGEiLCJhZGFwdGVycyIsInBhcnNlIiwiYmVmb3JlSW5zZXJ0Iiwibm93IiwiRGF0ZSIsInRpbWVzdGFtcHMiLCJjcmVhdGVkIiwidXBkYXRlZCIsImNvbGxlY3Rpb25SZWYiLCJzYXZlIiwicmV0dXJuTmV3IiwibmV3IiwiYWZ0ZXJJbnNlcnQiLCJ1cGRhdGVJdGVtIiwiaWQiLCJ1cGRhdGVzIiwidXBkYXRlRGF0YSIsImJlZm9yZVVwZGF0ZSIsImRvY0lkIiwiaW5jbHVkZXMiLCJhZnRlclVwZGF0ZSIsImRlbGV0ZUl0ZW0iLCJzb2Z0IiwiY2FzY2FkZSIsImRvY0tleSIsInNwbGl0IiwicG9wIiwiZGVsZXRlZEl0ZW0iLCJiZWZvcmVEZWxldGUiLCJ1cGRhdGUiLCJkZWxldGVkIiwiZGVsZXRlZEF0IiwiZWRnZXNUb0Nhc2NhZGUiLCJjYXNjYWRlRWRnZXMiLCJlZGdlVHlwZSIsImVkZ2VRdWVyeSIsImFmdGVyRGVsZXRlIiwiY291bnRJdGVtcyIsIml0ZW1FeGlzdHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLEdBQUcsUUFBTyxXQUFXO0FBQzdCLFNBQVFDLE9BQU8sUUFBTyxlQUFlO0FBQ3JDLFNBQVFDLFVBQVUsUUFBTywwQkFBMEI7QUFDbkQsU0FBUUMsUUFBUSxRQUFPLDZCQUE2QjtBQUNwRCxTQUFRQyxpQkFBaUIsUUFBTyx5QkFBeUI7QUFDekQsU0FBUUMsS0FBSyxRQUFPLDRCQUE0QjtBQUNoRCxTQUFRQyxRQUFRLFFBQU8saUNBQWlDO0FBTXhELE1BQU1DLGdCQUFnQjtBQWdCdEI7O0NBRUMsR0FDRCxNQUFNQyxlQUFlLENBQ25CQyxTQUNBQyxVQUFrQixLQUFLO0lBRXZCLGtEQUFrRDtJQUNsRCxJQUFJLFdBQVdELFdBQVcsZ0JBQWdCQSxTQUFTO1FBQ2pELE9BQU9MLGtCQUFrQkssU0FBd0JDO0lBQ25EO0lBRUEsd0JBQXdCO0lBQ3hCLE1BQU1DLGdCQUFnQkY7SUFDdEIsTUFBTUcsYUFBdUIsRUFBRTtJQUUvQixLQUFLLE1BQU0sQ0FBQ0MsS0FBS0MsTUFBTSxJQUFJQyxPQUFPQyxPQUFPLENBQUNMLGVBQWdCO1FBQ3hELElBQUlHLFVBQVUs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
|
|
413
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3IvcGFja2FnZXMvcmVha3Rvci9zcmMvYWN0aW9ucy9jcnVkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBpcyBzdWJqZWN0IHRvIHRoZSBhY2NvbXBhbnlpbmcgY29tbWVyY2lhbCBMSUNFTlNFLlxuICovXG5pbXBvcnQge2FxbH0gZnJvbSAnYXJhbmdvanMnO1xuaW1wb3J0IHtsaXRlcmFsfSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuaW1wb3J0IHtFcnJvclR5cGVzfSBmcm9tICcuLi90eXBlcy9lcnJvci50eXBlcy5qcyc7XG5pbXBvcnQge2xvZ0Vycm9yfSBmcm9tICcuLi91dGlscy9hbmFseXRpY3NVdGlscy5qcyc7XG5pbXBvcnQge2J1aWxkRmlsdGVyQ2xhdXNlfSBmcm9tICcuLi91dGlscy9hcWxIZWxwZXJzLmpzJztcbmltcG9ydCB7dXNlRGJ9IGZyb20gJy4uL3V0aWxzL2FyYW5nb2RiVXRpbHMuanMnO1xuaW1wb3J0IHtyZWdpc3RyeX0gZnJvbSAnLi4vdXRpbHMvY29sbGVjdGlvblJlZ2lzdHJ5LmpzJztcblxuaW1wb3J0IHR5cGUge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuaW1wb3J0IHR5cGUge0ZpbHRlckdyb3VwfSBmcm9tICcuLi90eXBlcy9hcmFuZ29kYi50eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcy5qcyc7XG5cbmNvbnN0IGV2ZW50Q2F0ZWdvcnkgPSAnY3J1ZCc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgQ1JVRCBvcGVyYXRpb25zXG4gKi9cbmV4cG9ydCB0eXBlIENydWRPcHRpb25zID0gUmVhZG9ubHk8e1xuICByZWFkb25seSBzb3J0PzogUmVhZG9ubHlBcnJheTx7cmVhZG9ubHkgZmllbGQ6IHN0cmluZzsgcmVhZG9ubHkgZGlyZWN0aW9uOiAnQVNDJyB8ICdERVNDJ30+O1xuICByZWFkb25seSBsaW1pdD86IHtyZWFkb25seSBmcm9tOiBudW1iZXI7IHJlYWRvbmx5IHRvOiBudW1iZXJ9O1xuICByZWFkb25seSBmaWVsZHM/OiBSZWFkb25seUFycmF5PHN0cmluZz47IC8vIFNlbGVjdCBzcGVjaWZpYyBmaWVsZHNcbiAgcmVhZG9ubHkgaW5jbHVkZUVkZ2VzPzogUmVhZG9ubHlBcnJheTxzdHJpbmc+OyAvLyBJbmNsdWRlIHJlbGF0ZWQgZG9jdW1lbnRzIHZpYSBlZGdlc1xuICByZWFkb25seSBwcml2YWN5PzogYm9vbGVhbjsgLy8gQXBwbHkgcHJpdmFjeSBjaGVja3MgKGRlZmF1bHQ6IHRydWUpXG4gIHJlYWRvbmx5IG93bmVyc2hpcD86IGJvb2xlYW47IC8vIEFwcGx5IG93bmVyc2hpcCBjaGVja3MgKGRlZmF1bHQ6IGZhbHNlKVxuICByZWFkb25seSBjdXN0b21RdWVyaWVzPzogUmVhZG9ubHlBcnJheTxzdHJpbmc+OyAvLyBBZGRpdGlvbmFsIGN1c3RvbSBxdWVyeSBzdHJpbmdzXG4gIHJlYWRvbmx5IGN1c3RvbU9iamVjdHM/OiBSZWFkb25seUFycmF5PHN0cmluZz47IC8vIEFkZGl0aW9uYWwgY3VzdG9tIG9iamVjdCBzZWxlY3Rpb25zXG59PjtcblxuLyoqXG4gKiBCdWlsZCBmaWx0ZXIgY2xhdXNlIGZyb20gZmlsdGVycyBvYmplY3Qgb3IgRmlsdGVyR3JvdXBcbiAqL1xuY29uc3QgYnVpbGRGaWx0ZXJzID0gKFxuICBmaWx0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgRmlsdGVyR3JvdXAsXG4gIHZhck5hbWU6IHN0cmluZyA9ICdkb2MnXG4pOiBzdHJpbmcgPT4ge1xuICAvLyBJZiBpdCdzIGEgRmlsdGVyR3JvdXAgd2l0aCBsb2dpYyBhbmQgY29uZGl0aW9uc1xuICBpZiAoJ2xvZ2ljJyBpbiBmaWx0ZXJzICYmICdjb25kaXRpb25zJyBpbiBmaWx0ZXJzKSB7XG4gICAgcmV0dXJuIGJ1aWxkRmlsdGVyQ2xhdXNlKGZpbHRlcnMgYXMgRmlsdGVyR3JvdXAsIHZhck5hbWUpO1xuICB9XG5cbiAgLy8gU2ltcGxlIG9iamVjdCBmaWx0ZXJzXG4gIGNvbnN0IHNpbXBsZUZpbHRlcnMgPSBmaWx0ZXJzIGFzIFJlY29yZDxzdHJpbmcsIGFueT47XG4gIGNvbnN0IGNvbmRpdGlvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoc2ltcGxlRmlsdGVycykpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgIGNvbmRpdGlvbnMucHVzaChgJHt2YXJOYW1lfS4ke2tleX0gPT0gbnVsbGApO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgY29uZGl0aW9ucy5wdXNoKGAke3Zhck5hbWV9LiR7a2V5fSA9PSBcIiR7dmFsdWV9XCJgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uZGl0aW9ucy5wdXNoKGAke3Zhck5hbWV9LiR7a2V5fSA9PSAke0pTT04uc3RyaW5naWZ5KHZhbHVlKX1gKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uZGl0aW9ucy5qb2luKCcgJiYgJyk7XG59O1xuXG4vKipcbiAqIEJ1aWxkIHNvcnQgY2xhdXNlXG4gKi9cbmNvbnN0IGJ1aWxkU29ydCA9IChcbiAgc29ydDogUmVhZG9ubHlBcnJheTx7cmVhZG9ubHkgZmllbGQ6IHN0cmluZzsgcmVhZG9ubHkgZGlyZWN0aW9uOiAnQVNDJyB8ICdERVNDJ30+LFxuICB2YXJOYW1lOiBzdHJpbmcgPSAnZG9jJ1xuKTogc3RyaW5nID0+IHtcbiAgaWYgKCFzb3J0IHx8IHNvcnQubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgY29uc3Qgc29ydFBhcnRzID0gc29ydC5tYXAoKHtmaWVsZCwgZGlyZWN0aW9ufSkgPT4gYCR7dmFyTmFtZX0uJHtmaWVsZH0gJHtkaXJlY3Rpb259YCk7XG4gIHJldHVybiBgU09SVCAke3NvcnRQYXJ0cy5qb2luKCcsICcpfWA7XG59O1xuXG4vKipcbiAqIEJ1aWxkIGxpbWl0IGNsYXVzZVxuICovXG5jb25zdCBidWlsZExpbWl0ID0gKGxpbWl0Pzoge3JlYWRvbmx5IGZyb206IG51bWJlcjsgcmVhZG9ubHkgdG86IG51bWJlcn0pOiBzdHJpbmcgPT4ge1xuICBpZiAoIWxpbWl0KSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgY29uc3Qge2Zyb20sIHRvfSA9IGxpbWl0O1xuICBjb25zdCBjb3VudCA9IHRvIC0gZnJvbTtcbiAgcmV0dXJuIGBMSU1JVCAke2Zyb219LCAke2NvdW50fWA7XG59O1xuXG4vKipcbiAqIEFwcGx5IHByaXZhY3kgZmlsdGVyIGlmIGNvbGxlY3Rpb24gaGFzIHByaXZhY3lcbiAqL1xuY29uc3QgYXBwbHlQcml2YWN5RmlsdGVyID0gKFxuICBjb2xsZWN0aW9uOiBzdHJpbmcsXG4gIHNlc3Npb25JZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICB2YXJOYW1lOiBzdHJpbmcgPSAnZG9jJ1xuKTogc3RyaW5nID0+IHtcbiAgY29uc3QgY29uZmlnID0gcmVnaXN0cnkuZ2V0KGNvbGxlY3Rpb24pO1xuXG4gIGlmICghY29uZmlnIHx8ICFjb25maWcuaGFzUHJpdmFjeSkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8vIElmIG5vIHNlc3Npb24sIG9ubHkgcmV0dXJuIHB1YmxpYyBpdGVtc1xuICBpZiAoIXNlc3Npb25JZCkge1xuICAgIHJldHVybiBgJHt2YXJOYW1lfS5wcml2YWN5ID09IFwicHVibGljXCJgO1xuICB9XG5cbiAgLy8gUmV0dXJuIGl0ZW1zIHRoYXQgYXJlIHB1YmxpYyBPUiBvd25lZCBieSB0aGUgdXNlclxuICByZXR1cm4gYCgke3Zhck5hbWV9LnByaXZhY3kgPT0gXCJwdWJsaWNcIiB8fCAke3Zhck5hbWV9LnVzZXJJZCA9PSBcIiR7c2Vzc2lvbklkfVwiKWA7XG59O1xuXG4vKipcbiAqIEFwcGx5IG93bmVyc2hpcCBmaWx0ZXJcbiAqL1xuY29uc3QgYXBwbHlPd25lcnNoaXBGaWx0ZXIgPSAoXG4gIHNlc3Npb25JZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICB2YXJOYW1lOiBzdHJpbmcgPSAnZG9jJ1xuKTogc3RyaW5nID0+IHtcbiAgaWYgKCFzZXNzaW9uSWQpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICByZXR1cm4gYCR7dmFyTmFtZX0udXNlcklkID09IFwiJHtzZXNzaW9uSWR9XCJgO1xufTtcblxuLyoqXG4gKiBHZXQgYSBzaW5nbGUgaXRlbSBmcm9tIGFueSBjb2xsZWN0aW9uIGJ5IGZpbHRlcnNcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEl0ZW1CeSA9IGFzeW5jIDxUID0gYW55PihcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgY29sbGVjdGlvbjogc3RyaW5nLFxuICBmaWx0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgRmlsdGVyR3JvdXAsXG4gIG9wdGlvbnM6IENydWRPcHRpb25zID0ge31cbik6IFByb21pc2U8VCB8IG51bGw+ID0+IHtcbiAgY29uc3QgYWN0aW9uID0gJ2dldEl0ZW1CeSc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH0gPSB7fX0gPSBjb250ZXh0O1xuICBjb25zdCB7cHJpdmFjeSA9IGZhbHNlLCBvd25lcnNoaXAgPSBmYWxzZSwgY3VzdG9tUXVlcmllcyA9IFtdLCBjdXN0b21PYmplY3RzID0gW119ID0gb3B0aW9ucztcblxuICB0cnkge1xuICAgIGNvbnN0IGRhdGFiYXNlID0gdXNlRGIoZGF0YWJhc2VOYW1lKTtcbiAgICBjb25zdCBmaWx0ZXJDbGF1c2UgPSBidWlsZEZpbHRlcnMoZmlsdGVycywgJ2RvYycpO1xuICAgIGNvbnN0IGNvbmRpdGlvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBpZiAoZmlsdGVyQ2xhdXNlKSB7XG4gICAgICBjb25kaXRpb25zLnB1c2goZmlsdGVyQ2xhdXNlKTtcbiAgICB9XG5cbiAgICBpZiAocHJpdmFjeSkge1xuICAgICAgY29uc3QgcHJpdmFjeUZpbHRlciA9IGFwcGx5UHJpdmFjeUZpbHRlcihjb2xsZWN0aW9uLCBzZXNzaW9uSWQsICdkb2MnKTtcbiAgICAgIGlmIChwcml2YWN5RmlsdGVyKSB7XG4gICAgICAgIGNvbmRpdGlvbnMucHVzaChwcml2YWN5RmlsdGVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAob3duZXJzaGlwKSB7XG4gICAgICBjb25zdCBvd25lcnNoaXBGaWx0ZXIgPSBhcHBseU93bmVyc2hpcEZpbHRlcihzZXNzaW9uSWQsICdkb2MnKTtcbiAgICAgIGlmIChvd25lcnNoaXBGaWx0ZXIpIHtcbiAgICAgICAgY29uZGl0aW9ucy5wdXNoKG93bmVyc2hpcEZpbHRlcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY29sbGVjdGlvbkxpdGVyYWwgPSBsaXRlcmFsKGNvbGxlY3Rpb24pO1xuICAgIGNvbnN0IHdoZXJlQ2xhdXNlID0gY29uZGl0aW9ucy5sZW5ndGggPiAwID8gbGl0ZXJhbChgRklMVEVSICR7Y29uZGl0aW9ucy5qb2luKCcgJiYgJyl9YCkgOiBsaXRlcmFsKCcnKTtcbiAgICBjb25zdCBjdXN0b21RdWVyaWVzTGl0ZXJhbCA9IGN1c3RvbVF1ZXJpZXMubGVuZ3RoID4gMCA/IGxpdGVyYWwoY3VzdG9tUXVlcmllcy5qb2luKCdcXG4nKSkgOiBsaXRlcmFsKCcnKTtcbiAgICBjb25zdCByZXR1cm5WYWx1ZSA9IGN1c3RvbU9iamVjdHMubGVuZ3RoID4gMFxuICAgICAgPyBsaXRlcmFsKGBNRVJHRShkb2MsIHske2N1c3RvbU9iamVjdHMuam9pbignLCAnKX19KWApXG4gICAgICA6IGxpdGVyYWwoJ2RvYycpO1xuXG4gICAgY29uc3QgYXFsUXVlcnk6IEFxbFF1ZXJ5ID0gYXFsYFxuICAgICAgRk9SIGRvYyBJTiAke2NvbGxlY3Rpb25MaXRlcmFsfVxuICAgICAgICAke3doZXJlQ2xhdXNlfVxuICAgICAgICAke2N1c3RvbVF1ZXJpZXNMaXRlcmFsfVxuICAgICAgICBMSU1JVCAxXG4gICAgICAgIFJFVFVSTiAke3JldHVyblZhbHVlfVxuICAgIGA7XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBkYXRhYmFzZS5xdWVyeShhcWxRdWVyeSk7XG4gICAgY29uc3QgaXRlbSA9IGF3YWl0IHJlc3VsdC5uZXh0KCk7XG5cbiAgICByZXR1cm4gaXRlbSB8fCBudWxsO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHRocm93IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1IsXG4gICAgICBwYXJhbXM6IHtjb2xsZWN0aW9uLCBmaWx0ZXJzfVxuICAgIH0sIGVycm9yIGFzIEVycm9yLCBjb250ZXh0KTtcbiAgfVxufTtcblxuLyoqXG4gKiBHZXQgbXVsdGlwbGUgaXRlbXMgZnJvbSBhbnkgY29sbGVjdGlvbiBieSBmaWx0ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRMaXN0QnkgPSBhc3luYyA8VCA9IGFueT4oXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGNvbGxlY3Rpb246IHN0cmluZyxcbiAgZmlsdGVyczogUmVjb3JkPHN0cmluZywgYW55PiB8IEZpbHRlckdyb3VwID0ge30sXG4gIG9wdGlvbnM6IENydWRPcHRpb25zID0ge31cbik6IFByb21pc2U8VFtdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbiA9ICdnZXRMaXN0QnknO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lLCBzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9ID0ge319ID0gY29udGV4dDtcbiAgY29uc3Qge1xuICAgIHByaXZhY3kgPSBmYWxzZSxcbiAgICBvd25lcnNoaXAgPSBmYWxzZSxcbiAgICBzb3J0LFxuICAgIGxpbWl0LFxuICAgIGN1c3RvbVF1ZXJpZXMgPSBbXSxcbiAgICBjdXN0b21PYmplY3RzID0gW11cbiAgfSA9IG9wdGlvbnM7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBkYXRhYmFzZSA9IHVzZURiKGRhdGFiYXNlTmFtZSk7XG4gICAgY29uc3QgZmlsdGVyQ2xhdXNlID0gYnVpbGRGaWx0ZXJzKGZpbHRlcnMsICdkb2MnKTtcbiAgICBjb25zdCBjb25kaXRpb25zOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgaWYgKGZpbHRlckNsYXVzZSkge1xuICAgICAgY29uZGl0aW9ucy5wdXNoKGZpbHRlckNsYXVzZSk7XG4gICAgfVxuXG4gICAgaWYgKHByaXZhY3kpIHtcbiAgICAgIGNvbnN0IHByaXZhY3lGaWx0ZXIgPSBhcHBseVByaXZhY3lGaWx0ZXIoY29sbGVjdGlvbiwgc2Vzc2lvbklkLCAnZG9jJyk7XG4gICAgICBpZiAocHJpdmFjeUZpbHRlcikge1xuICAgICAgICBjb25kaXRpb25zLnB1c2gocHJpdmFjeUZpbHRlcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG93bmVyc2hpcCkge1xuICAgICAgY29uc3Qgb3duZXJzaGlwRmlsdGVyID0gYXBwbHlPd25lcnNoaXBGaWx0ZXIoc2Vzc2lvbklkLCAnZG9jJyk7XG4gICAgICBpZiAob3duZXJzaGlwRmlsdGVyKSB7XG4gICAgICAgIGNvbmRpdGlvbnMucHVzaChvd25lcnNoaXBGaWx0ZXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNvbGxlY3Rpb25MaXRlcmFsID0gbGl0ZXJhbChjb2xsZWN0aW9uKTtcbiAgICBjb25zdCB3aGVyZUNsYXVzZSA9IGNvbmRpdGlvbnMubGVuZ3RoID4gMCA/IGxpdGVyYWwoYEZJTFRFUiAke2NvbmRpdGlvbnMuam9pbignICYmICcpfWApIDogbGl0ZXJhbCgnJyk7XG4gICAgY29uc3Qgc29ydENsYXVzZSA9IHNvcnQgPyBsaXRlcmFsKGJ1aWxkU29ydChzb3J0LCAnZG9jJykpIDogbGl0ZXJhbCgnJyk7XG4gICAgY29uc3QgbGltaXRDbGF1c2UgPSBsaW1pdCA/IGxpdGVyYWwoYnVpbGRMaW1pdChsaW1pdCkpIDogbGl0ZXJhbCgnJyk7XG4gICAgY29uc3QgY3VzdG9tUXVlcmllc0xpdGVyYWwgPSBjdXN0b21RdWVyaWVzLmxlbmd0aCA+IDAgPyBsaXRlcmFsKGN1c3RvbVF1ZXJpZXMuam9pbignXFxuJykpIDogbGl0ZXJhbCgnJyk7XG4gICAgY29uc3QgcmV0dXJuVmFsdWUgPSBjdXN0b21PYmplY3RzLmxlbmd0aCA+IDBcbiAgICAgID8gbGl0ZXJhbChgTUVSR0UoZG9jLCB7JHtjdXN0b21PYmplY3RzLmpvaW4oJywgJyl9fSlgKVxuICAgICAgOiBsaXRlcmFsKCdkb2MnKTtcblxuICAgIGNvbnN0IGFxbFF1ZXJ5OiBBcWxRdWVyeSA9IGFxbGBcbiAgICAgIEZPUiBkb2MgSU4gJHtjb2xsZWN0aW9uTGl0ZXJhbH1cbiAgICAgICAgJHt3aGVyZUNsYXVzZX1cbiAgICAgICAgJHtjdXN0b21RdWVyaWVzTGl0ZXJhbH1cbiAgICAgICAgJHtzb3J0Q2xhdXNlfVxuICAgICAgICAke2xpbWl0Q2xhdXNlfVxuICAgICAgICBSRVRVUk4gJHtyZXR1cm5WYWx1ZX1cbiAgICBgO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZGF0YWJhc2UucXVlcnkoYXFsUXVlcnkpO1xuICAgIHJldHVybiBhd2FpdCByZXN1bHQuYWxsKCkgYXMgVFtdO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHRocm93IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1IsXG4gICAgICBwYXJhbXM6IHtjb2xsZWN0aW9uLCBmaWx0ZXJzfVxuICAgIH0sIGVycm9yIGFzIEVycm9yLCBjb250ZXh0KTtcbiAgfVxufTtcblxuLyoqXG4gKiBBZGQgYSBuZXcgaXRlbSB0byBhbnkgY29sbGVjdGlvblxuICovXG5leHBvcnQgY29uc3QgYWRkSXRlbSA9IGFzeW5jIDxUID0gYW55PihcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgY29sbGVjdGlvbjogc3RyaW5nLFxuICBkYXRhOiBQYXJ0aWFsPFQ+LFxuICBvcHRpb25zOiB7cmVhZG9ubHkgaG9va3M/OiBib29sZWFufSA9IHt9XG4pOiBQcm9taXNlPFQ+ID0+IHtcbiAgY29uc3QgYWN0aW9uID0gJ2FkZEl0ZW0nO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtob29rcyA9IGZhbHNlfSA9IG9wdGlvbnM7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBjb25maWcgPSByZWdpc3RyeS5nZXQoY29sbGVjdGlvbik7XG4gICAgbGV0IGluc2VydERhdGE6IGFueSA9IHsuLi5kYXRhfTtcblxuICAgIC8vIEFwcGx5IHBhcnNlIGFkYXB0ZXIgaWYgYXZhaWxhYmxlXG4gICAgaWYgKGNvbmZpZz8uYWRhcHRlcnM/LnBhcnNlKSB7XG4gICAgICBpbnNlcnREYXRhID0gY29uZmlnLmFkYXB0ZXJzLnBhcnNlKGluc2VydERhdGEpO1xuICAgIH1cblxuICAgIC8vIENhbGwgYmVmb3JlSW5zZXJ0IGhvb2tcbiAgICBpZiAoaG9va3MgJiYgY29uZmlnPy5ob29rcz8uYmVmb3JlSW5zZXJ0KSB7XG4gICAgICBpbnNlcnREYXRhID0gYXdhaXQgY29uZmlnLmhvb2tzLmJlZm9yZUluc2VydChjb250ZXh0LCBpbnNlcnREYXRhKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgdGltZXN0YW1wcyAodHlwZS1zYWZlIGFwcHJvYWNoKVxuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgaWYgKGNvbmZpZz8udGltZXN0YW1wcz8uY3JlYXRlZCkge1xuICAgICAgaW5zZXJ0RGF0YSA9IHsuLi5pbnNlcnREYXRhLCBbY29uZmlnLnRpbWVzdGFtcHMuY3JlYXRlZF06IG5vd307XG4gICAgfVxuICAgIGlmIChjb25maWc/LnRpbWVzdGFtcHM/LnVwZGF0ZWQpIHtcbiAgICAgIGluc2VydERhdGEgPSB7Li4uaW5zZXJ0RGF0YSwgW2NvbmZpZy50aW1lc3RhbXBzLnVwZGF0ZWRdOiBub3d9O1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGFiYXNlID0gdXNlRGIoZGF0YWJhc2VOYW1lKTtcbiAgICBjb25zdCBjb2xsZWN0aW9uUmVmID0gZGF0YWJhc2UuY29sbGVjdGlvbihjb2xsZWN0aW9uKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBjb2xsZWN0aW9uUmVmLnNhdmUoaW5zZXJ0RGF0YSBhcyBhbnksIHtyZXR1cm5OZXc6IHRydWV9KTtcbiAgICBsZXQgaXRlbSA9IHJlc3VsdC5uZXcgYXMgVDtcblxuICAgIC8vIENhbGwgYWZ0ZXJJbnNlcnQgaG9va1xuICAgIGlmIChob29rcyAmJiBjb25maWc/Lmhvb2tzPy5hZnRlckluc2VydCkge1xuICAgICAgaXRlbSA9IGF3YWl0IGNvbmZpZy5ob29rcy5hZnRlckluc2VydChjb250ZXh0LCBpdGVtKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXRlbTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB0aHJvdyBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SLFxuICAgICAgcGFyYW1zOiB7Y29sbGVjdGlvbn1cbiAgICB9LCBlcnJvciBhcyBFcnJvciwgY29udGV4dCk7XG4gIH1cbn07XG5cbi8qKlxuICogVXBkYXRlIGFuIGl0ZW0gaW4gYW55IGNvbGxlY3Rpb25cbiAqL1xuZXhwb3J0IGNvbnN0IHVwZGF0ZUl0ZW0gPSBhc3luYyA8VCA9IGFueT4oXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGNvbGxlY3Rpb246IHN0cmluZyxcbiAgaWQ6IHN0cmluZyxcbiAgdXBkYXRlczogUGFydGlhbDxUPixcbiAgb3B0aW9uczoge3JlYWRvbmx5IGhvb2tzPzogYm9vbGVhbjsgcmVhZG9ubHkgb3duZXJzaGlwPzogYm9vbGVhbn0gPSB7fVxuKTogUHJvbWlzZTxUPiA9PiB7XG4gIGNvbnN0IGFjdGlvbiA9ICd1cGRhdGVJdGVtJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgc2Vzc2lvbjoge3VzZXJJZDogc2Vzc2lvbklkfSA9IHt9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtob29rcyA9IGZhbHNlLCBvd25lcnNoaXAgPSBmYWxzZX0gPSBvcHRpb25zO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgY29uZmlnID0gcmVnaXN0cnkuZ2V0KGNvbGxlY3Rpb24pO1xuICAgIGxldCB1cGRhdGVEYXRhOiBhbnkgPSB7Li4udXBkYXRlc307XG5cbiAgICAvLyBBcHBseSBwYXJzZSBhZGFwdGVyIGlmIGF2YWlsYWJsZVxuICAgIGlmIChjb25maWc/LmFkYXB0ZXJzPy5wYXJzZSkge1xuICAgICAgdXBkYXRlRGF0YSA9IGNvbmZpZy5hZGFwdGVycy5wYXJzZSh1cGRhdGVEYXRhKTtcbiAgICB9XG5cbiAgICAvLyBDYWxsIGJlZm9yZVVwZGF0ZSBob29rXG4gICAgaWYgKGhvb2tzICYmIGNvbmZpZz8uaG9va3M/LmJlZm9yZVVwZGF0ZSkge1xuICAgICAgdXBkYXRlRGF0YSA9IGF3YWl0IGNvbmZpZy5ob29rcy5iZWZvcmVVcGRhdGUoY29udGV4dCwgaWQsIHVwZGF0ZURhdGEpO1xuICAgIH1cblxuICAgIC8vIEFkZCB1cGRhdGVkIHRpbWVzdGFtcCAodHlwZS1zYWZlIGFwcHJvYWNoKVxuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgaWYgKGNvbmZpZz8udGltZXN0YW1wcz8udXBkYXRlZCkge1xuICAgICAgdXBkYXRlRGF0YSA9IHsuLi51cGRhdGVEYXRhLCBbY29uZmlnLnRpbWVzdGFtcHMudXBkYXRlZF06IG5vd307XG4gICAgfVxuXG4gICAgY29uc3QgZGF0YWJhc2UgPSB1c2VEYihkYXRhYmFzZU5hbWUpO1xuICAgIGNvbnN0IGRvY0lkID0gaWQuaW5jbHVkZXMoJy8nKSA/IGlkIDogYCR7Y29sbGVjdGlvbn0vJHtpZH1gO1xuXG4gICAgLy8gQnVpbGQgcXVlcnkgd2l0aCBvd25lcnNoaXAgY2hlY2sgaWYgbmVlZGVkXG4gICAgbGV0IGFxbFF1ZXJ5OiBBcWxRdWVyeTtcbiAgICBjb25zdCBjb2xsZWN0aW9uTGl0ZXJhbCA9IGxpdGVyYWwoY29sbGVjdGlvbik7XG4gICAgaWYgKG93bmVyc2hpcCAmJiBzZXNzaW9uSWQpIHtcbiAgICAgIGFxbFF1ZXJ5ID0gYXFsYEZPUiBkb2MgSU4gJHtjb2xsZWN0aW9uTGl0ZXJhbH1cbiAgICAgICAgRklMVEVSIGRvYy5faWQgPT0gJHtkb2NJZH0gJiYgZG9jLnVzZXJJZCA9PSAke3Nlc3Npb25JZH1cbiAgICAgICAgTElNSVQgMVxuICAgICAgICBVUERBVEUgZG9jIFdJVEggJHt1cGRhdGVEYXRhfSBJTiAke2NvbGxlY3Rpb25MaXRlcmFsfVxuICAgICAgICBSRVRVUk4gTkVXYDtcbiAgICB9IGVsc2Uge1xuICAgICAgYXFsUXVlcnkgPSBhcWxgRk9SIGRvYyBJTiAke2NvbGxlY3Rpb25MaXRlcmFsfVxuICAgICAgICBGSUxURVIgZG9jLl9pZCA9PSAke2RvY0lkfVxuICAgICAgICBMSU1JVCAxXG4gICAgICAgIFVQREFURSBkb2MgV0lUSCAke3VwZGF0ZURhdGF9IElOICR7Y29sbGVjdGlvbkxpdGVyYWx9XG4gICAgICAgIFJFVFVSTiBORVdgO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KGFxbFF1ZXJ5KTtcbiAgICBsZXQgaXRlbSA9IGF3YWl0IHJlc3VsdC5uZXh0KCk7XG5cbiAgICAvLyBDYWxsIGFmdGVyVXBkYXRlIGhvb2tcbiAgICBpZiAoaG9va3MgJiYgY29uZmlnPy5ob29rcz8uYWZ0ZXJVcGRhdGUpIHtcbiAgICAgIGl0ZW0gPSBhd2FpdCBjb25maWcuaG9va3MuYWZ0ZXJVcGRhdGUoY29udGV4dCwgaXRlbSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZW07XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdGhyb3cgbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUixcbiAgICAgIHBhcmFtczoge2NvbGxlY3Rpb24sIGlkfVxuICAgIH0sIGVycm9yIGFzIEVycm9yLCBjb250ZXh0KTtcbiAgfVxufTtcblxuLyoqXG4gKiBEZWxldGUgYW4gaXRlbSBmcm9tIGFueSBjb2xsZWN0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBkZWxldGVJdGVtID0gYXN5bmMgPFQgPSBhbnk+KFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBjb2xsZWN0aW9uOiBzdHJpbmcsXG4gIGlkOiBzdHJpbmcsXG4gIG9wdGlvbnM6IHtcbiAgICByZWFkb25seSBzb2Z0PzogYm9vbGVhbjtcbiAgICByZWFkb25seSBjYXNjYWRlPzogUmVhZG9ubHlBcnJheTxzdHJpbmc+O1xuICAgIHJlYWRvbmx5IG93bmVyc2hpcD86IGJvb2xlYW47XG4gIH0gPSB7fVxuKTogUHJvbWlzZTxUIHwgbnVsbD4gPT4ge1xuICBjb25zdCBhY3Rpb24gPSAnZGVsZXRlSXRlbSc7XG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIHNlc3Npb246IHt1c2VySWQ6IHNlc3Npb25JZH0gPSB7fX0gPSBjb250ZXh0O1xuICBjb25zdCB7c29mdCA9IGZhbHNlLCBjYXNjYWRlID0gW10sIG93bmVyc2hpcCA9IGZhbHNlfSA9IG9wdGlvbnM7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBjb25maWcgPSByZWdpc3RyeS5nZXQoY29sbGVjdGlvbik7XG4gICAgY29uc3QgZGF0YWJhc2UgPSB1c2VEYihkYXRhYmFzZU5hbWUpO1xuICAgIGNvbnN0IGRvY0lkID0gaWQuaW5jbHVkZXMoJy8nKSA/IGlkIDogYCR7Y29sbGVjdGlvbn0vJHtpZH1gO1xuICAgIGNvbnN0IGRvY0tleSA9IGlkLmluY2x1ZGVzKCcvJykgPyBpZC5zcGxpdCgnLycpLnBvcCgpIHx8ICcnIDogaWQ7XG4gICAgbGV0IGRlbGV0ZWRJdGVtOiBUIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvLyBDYWxsIGJlZm9yZURlbGV0ZSBob29rXG4gICAgaWYgKGNvbmZpZz8uaG9va3M/LmJlZm9yZURlbGV0ZSkge1xuICAgICAgYXdhaXQgY29uZmlnLmhvb2tzLmJlZm9yZURlbGV0ZShjb250ZXh0LCBkb2NJZCk7XG4gICAgfVxuXG4gICAgLy8gU29mdCBkZWxldGVcbiAgICBpZiAoc29mdCkge1xuICAgICAgY29uc3QgdXBkYXRlID0ge2RlbGV0ZWQ6IHRydWUsIGRlbGV0ZWRBdDogRGF0ZS5ub3coKX07XG4gICAgICBjb25zdCBjb2xsZWN0aW9uTGl0ZXJhbCA9IGxpdGVyYWwoY29sbGVjdGlvbik7XG4gICAgICBjb25zdCBhcWxRdWVyeTogQXFsUXVlcnkgPSBhcWxgRk9SIGRvYyBJTiAke2NvbGxlY3Rpb25MaXRlcmFsfVxuICAgICAgICBGSUxURVIgZG9jLl9pZCA9PSAke2RvY0lkfVxuICAgICAgICBMSU1JVCAxXG4gICAgICAgIFVQREFURSBkb2MgV0lUSCAke3VwZGF0ZX0gSU4gJHtjb2xsZWN0aW9uTGl0ZXJhbH1cbiAgICAgICAgUkVUVVJOIE5FV2A7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBkYXRhYmFzZS5xdWVyeShhcWxRdWVyeSk7XG4gICAgICBkZWxldGVkSXRlbSA9IGF3YWl0IHJlc3VsdC5uZXh0KCkgYXMgVCB8IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEhhcmQgZGVsZXRlIHdpdGggY2FzY2FkZVxuICAgICAgY29uc3QgZWRnZXNUb0Nhc2NhZGUgPSBjYXNjYWRlLmxlbmd0aCA+IDAgPyBjYXNjYWRlIDogKGNvbmZpZz8uY2FzY2FkZUVkZ2VzIHx8IFtdKTtcblxuICAgICAgLy8gRGVsZXRlIHRoZSBkb2N1bWVudFxuICAgICAgaWYgKG93bmVyc2hpcCAmJiBzZXNzaW9uSWQpIHtcbiAgICAgICAgY29uc3QgYXFsUXVlcnk6IEFxbFF1ZXJ5ID0gYXFsYFxuICAgICAgICAgIEZPUiBkb2MgSU4gJHtsaXRlcmFsKGNvbGxlY3Rpb24pfVxuICAgICAgICAgICAgRklMVEVSIGRvYy5faWQgPT0gJHtkb2NJZH0gJiYgZG9jLnVzZXJJZCA9PSAke3Nlc3Npb25JZH1cbiAgICAgICAgICAgIFJFTU9WRSBkb2MgSU4gJHtsaXRlcmFsKGNvbGxlY3Rpb24pfVxuICAgICAgICAgICAgUkVUVVJOIE9MRFxuICAgICAgICBgO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBkYXRhYmFzZS5xdWVyeShhcWxRdWVyeSk7XG4gICAgICAgIGRlbGV0ZWRJdGVtID0gYXdhaXQgcmVzdWx0Lm5leHQoKSBhcyBUIHwgbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGFxbFF1ZXJ5OiBBcWxRdWVyeSA9IGFxbGBSRU1PVkUgJHtkb2NLZXl9IElOICR7bGl0ZXJhbChjb2xsZWN0aW9uKX0gUkVUVVJOIE9MRGA7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KGFxbFF1ZXJ5KTtcbiAgICAgICAgZGVsZXRlZEl0ZW0gPSBhd2FpdCByZXN1bHQubmV4dCgpIGFzIFQgfCBudWxsO1xuICAgICAgfVxuXG4gICAgICAvLyBEZWxldGUgcmVsYXRlZCBlZGdlcyBvbmx5IGFmdGVyIHRoZSBkb2N1bWVudCBkZWxldGUgc3VjY2VlZHMsIHNvIG93bmVyc2hpcCBjaGVja3MgcHJvdGVjdCBjYXNjYWRlcyB0b28uXG4gICAgICBpZiAoZGVsZXRlZEl0ZW0pIHtcbiAgICAgICAgZm9yIChjb25zdCBlZGdlVHlwZSBvZiBlZGdlc1RvQ2FzY2FkZSkge1xuICAgICAgICAgIC8vIFVzZSBzdHJpbmcgZm9yIGVkZ2UgY29sbGVjdGlvbiBuYW1lIChzYWZlKVxuICAgICAgICAgIGNvbnN0IGVkZ2VRdWVyeTogQXFsUXVlcnkgPSBhcWxgXG4gICAgICAgICAgICBGT1IgZSBJTiAke2xpdGVyYWwoZWRnZVR5cGUpfVxuICAgICAgICAgICAgICBGSUxURVIgZS5fdG8gPT0gJHtkb2NJZH0gfHwgZS5fZnJvbSA9PSAke2RvY0lkfVxuICAgICAgICAgICAgICBSRU1PVkUgZSBJTiAke2xpdGVyYWwoZWRnZVR5cGUpfVxuICAgICAgICAgIGA7XG4gICAgICAgICAgYXdhaXQgZGF0YWJhc2UucXVlcnkoZWRnZVF1ZXJ5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENhbGwgYWZ0ZXJEZWxldGUgaG9va1xuICAgIGlmIChjb25maWc/Lmhvb2tzPy5hZnRlckRlbGV0ZSkge1xuICAgICAgYXdhaXQgY29uZmlnLmhvb2tzLmFmdGVyRGVsZXRlKGNvbnRleHQsIGRvY0lkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVsZXRlZEl0ZW07XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdGhyb3cgbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogRXJyb3JUeXBlcy5EQVRBQkFTRV9FUlJPUixcbiAgICAgIHBhcmFtczoge2NvbGxlY3Rpb24sIGlkfVxuICAgIH0sIGVycm9yIGFzIEVycm9yLCBjb250ZXh0KTtcbiAgfVxufTtcblxuLyoqXG4gKiBDb3VudCBpdGVtcyBpbiBhbnkgY29sbGVjdGlvblxuICovXG5leHBvcnQgY29uc3QgY291bnRJdGVtcyA9IGFzeW5jIChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgY29sbGVjdGlvbjogc3RyaW5nLFxuICBmaWx0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgRmlsdGVyR3JvdXAgPSB7fVxuKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgY29uc3QgYWN0aW9uID0gJ2NvdW50SXRlbXMnO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBkYXRhYmFzZSA9IHVzZURiKGRhdGFiYXNlTmFtZSk7XG4gICAgY29uc3QgZmlsdGVyQ2xhdXNlID0gYnVpbGRGaWx0ZXJzKGZpbHRlcnMsICdkb2MnKTtcbiAgICBjb25zdCB3aGVyZUNsYXVzZSA9IGZpbHRlckNsYXVzZSA/IGxpdGVyYWwoYEZJTFRFUiAke2ZpbHRlckNsYXVzZX1gKSA6IGxpdGVyYWwoJycpO1xuXG4gICAgY29uc3QgYXFsUXVlcnk6IEFxbFF1ZXJ5ID0gYXFsYFxuICAgICAgTEVUIGl0ZW1zID0gKFxuICAgICAgICBGT1IgZG9jIElOICR7bGl0ZXJhbChjb2xsZWN0aW9uKX1cbiAgICAgICAgICAke3doZXJlQ2xhdXNlfVxuICAgICAgICAgIFJFVFVSTiBkb2NcbiAgICAgIClcbiAgICAgIFJFVFVSTiBMRU5HVEgoaXRlbXMpXG4gICAgYDtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGRhdGFiYXNlLnF1ZXJ5KGFxbFF1ZXJ5KTtcbiAgICByZXR1cm4gYXdhaXQgcmVzdWx0Lm5leHQoKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB0aHJvdyBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiBFcnJvclR5cGVzLkRBVEFCQVNFX0VSUk9SLFxuICAgICAgcGFyYW1zOiB7Y29sbGVjdGlvbiwgZmlsdGVyc31cbiAgICB9LCBlcnJvciBhcyBFcnJvciwgY29udGV4dCk7XG4gIH1cbn07XG5cbi8qKlxuICogQ2hlY2sgaWYgaXRlbSBleGlzdHNcbiAqL1xuZXhwb3J0IGNvbnN0IGl0ZW1FeGlzdHMgPSBhc3luYyAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGNvbGxlY3Rpb246IHN0cmluZyxcbiAgZmlsdGVyczogUmVjb3JkPHN0cmluZywgYW55PiB8IEZpbHRlckdyb3VwXG4pOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3QgY291bnQgPSBhd2FpdCBjb3VudEl0ZW1zKGNvbnRleHQsIGNvbGxlY3Rpb24sIGZpbHRlcnMpO1xuICByZXR1cm4gY291bnQgPiAwO1xufTtcbiJdLCJuYW1lcyI6WyJhcWwiLCJsaXRlcmFsIiwiRXJyb3JUeXBlcyIsImxvZ0Vycm9yIiwiYnVpbGRGaWx0ZXJDbGF1c2UiLCJ1c2VEYiIsInJlZ2lzdHJ5IiwiZXZlbnRDYXRlZ29yeSIsImJ1aWxkRmlsdGVycyIsImZpbHRlcnMiLCJ2YXJOYW1lIiwic2ltcGxlRmlsdGVycyIsImNvbmRpdGlvbnMiLCJrZXkiLCJ2YWx1ZSIsIk9iamVjdCIsImVudHJpZXMiLCJwdXNoIiwiSlNPTiIsInN0cmluZ2lmeSIsImpvaW4iLCJidWlsZFNvcnQiLCJzb3J0IiwibGVuZ3RoIiwic29ydFBhcnRzIiwibWFwIiwiZmllbGQiLCJkaXJlY3Rpb24iLCJidWlsZExpbWl0IiwibGltaXQiLCJmcm9tIiwidG8iLCJjb3VudCIsImFwcGx5UHJpdmFjeUZpbHRlciIsImNvbGxlY3Rpb24iLCJzZXNzaW9uSWQiLCJjb25maWciLCJnZXQiLCJoYXNQcml2YWN5IiwiYXBwbHlPd25lcnNoaXBGaWx0ZXIiLCJnZXRJdGVtQnkiLCJjb250ZXh0Iiwib3B0aW9ucyIsImFjdGlvbiIsImRhdGFiYXNlTmFtZSIsInNlc3Npb24iLCJ1c2VySWQiLCJwcml2YWN5Iiwib3duZXJzaGlwIiwiY3VzdG9tUXVlcmllcyIsImN1c3RvbU9iamVjdHMiLCJkYXRhYmFzZSIsImZpbHRlckNsYXVzZSIsInByaXZhY3lGaWx0ZXIiLCJvd25lcnNoaXBGaWx0ZXIiLCJjb2xsZWN0aW9uTGl0ZXJhbCIsIndoZXJlQ2xhdXNlIiwiY3VzdG9tUXVlcmllc0xpdGVyYWwiLCJyZXR1cm5WYWx1ZSIsImFxbFF1ZXJ5IiwicmVzdWx0IiwicXVlcnkiLCJpdGVtIiwibmV4dCIsImVycm9yIiwiY2F0ZWdvcnkiLCJsYWJlbCIsIkRBVEFCQVNFX0VSUk9SIiwicGFyYW1zIiwiZ2V0TGlzdEJ5Iiwic29ydENsYXVzZSIsImxpbWl0Q2xhdXNlIiwiYWxsIiwiYWRkSXRlbSIsImRhdGEiLCJob29rcyIsImluc2VydERhdGEiLCJhZGFwdGVycyIsInBhcnNlIiwiYmVmb3JlSW5zZXJ0Iiwibm93IiwiRGF0ZSIsInRpbWVzdGFtcHMiLCJjcmVhdGVkIiwidXBkYXRlZCIsImNvbGxlY3Rpb25SZWYiLCJzYXZlIiwicmV0dXJuTmV3IiwibmV3IiwiYWZ0ZXJJbnNlcnQiLCJ1cGRhdGVJdGVtIiwiaWQiLCJ1cGRhdGVzIiwidXBkYXRlRGF0YSIsImJlZm9yZVVwZGF0ZSIsImRvY0lkIiwiaW5jbHVkZXMiLCJhZnRlclVwZGF0ZSIsImRlbGV0ZUl0ZW0iLCJzb2Z0IiwiY2FzY2FkZSIsImRvY0tleSIsInNwbGl0IiwicG9wIiwiZGVsZXRlZEl0ZW0iLCJiZWZvcmVEZWxldGUiLCJ1cGRhdGUiLCJkZWxldGVkIiwiZGVsZXRlZEF0IiwiZWRnZXNUb0Nhc2NhZGUiLCJjYXNjYWRlRWRnZXMiLCJlZGdlVHlwZSIsImVkZ2VRdWVyeSIsImFmdGVyRGVsZXRlIiwiY291bnRJdGVtcyIsIml0ZW1FeGlzdHMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLEdBQUcsUUFBTyxXQUFXO0FBQzdCLFNBQVFDLE9BQU8sUUFBTyxlQUFlO0FBQ3JDLFNBQVFDLFVBQVUsUUFBTywwQkFBMEI7QUFDbkQsU0FBUUMsUUFBUSxRQUFPLDZCQUE2QjtBQUNwRCxTQUFRQyxpQkFBaUIsUUFBTyx5QkFBeUI7QUFDekQsU0FBUUMsS0FBSyxRQUFPLDRCQUE0QjtBQUNoRCxTQUFRQyxRQUFRLFFBQU8saUNBQWlDO0FBTXhELE1BQU1DLGdCQUFnQjtBQWdCdEI7O0NBRUMsR0FDRCxNQUFNQyxlQUFlLENBQ25CQyxTQUNBQyxVQUFrQixLQUFLO0lBRXZCLGtEQUFrRDtJQUNsRCxJQUFJLFdBQVdELFdBQVcsZ0JBQWdCQSxTQUFTO1FBQ2pELE9BQU9MLGtCQUFrQkssU0FBd0JDO0lBQ25EO0lBRUEsd0JBQXdCO0lBQ3hCLE1BQU1DLGdCQUFnQkY7SUFDdEIsTUFBTUcsYUFBdUIsRUFBRTtJQUUvQixLQUFLLE1BQU0sQ0FBQ0MsS0FBS0MsTUFBTSxJQUFJQyxPQUFPQyxPQUFPLENBQUNMLGVBQWdCO1FBQ3hELElB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
|
package/lib/actions/dynamodb.js
CHANGED
|
@@ -116,4 +116,4 @@ export const dynamoDel = (params)=>new Promise((resolve, reject)=>{
|
|
|
116
116
|
});
|
|
117
117
|
});
|
|
118
118
|
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3JlYWt0b3IvcmVha3Rvci9wYWNrYWdlcy9yZWFrdG9yL3NyYy9hY3Rpb25zL2R5bmFtb2RiLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBpcyBzdWJqZWN0IHRvIHRoZSBhY2NvbXBhbnlpbmcgY29tbWVyY2lhbCBMSUNFTlNFLlxuICovXG5pbXBvcnQge1xuICBCYXRjaFdyaXRlSXRlbUNvbW1hbmRJbnB1dCxcbiAgQmF0Y2hXcml0ZUl0ZW1Db21tYW5kT3V0cHV0LFxuICBEZWxldGVJdGVtQ29tbWFuZElucHV0LFxuICBEZWxldGVJdGVtQ29tbWFuZE91dHB1dCxcbiAgRHluYW1vREIsXG4gIEdldEl0ZW1Db21tYW5kSW5wdXQsXG4gIEdldEl0ZW1Db21tYW5kT3V0cHV0LFxuICBQdXRJdGVtQ29tbWFuZElucHV0LFxuICBQdXRJdGVtQ29tbWFuZE91dHB1dCxcbiAgUXVlcnlDb21tYW5kSW5wdXQsXG4gIFF1ZXJ5Q29tbWFuZE91dHB1dCxcbiAgVXBkYXRlSXRlbUNvbW1hbmRJbnB1dCxcbiAgVXBkYXRlSXRlbUNvbW1hbmRPdXRwdXRcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiJztcblxuaW1wb3J0IHtDb25maWd9IGZyb20gJy4uL2NvbmZpZy5qcyc7XG5cbi8vIGNvbnN0IGV2ZW50Q2F0ZWdvcnkgPSAnZHluYW1vZGInO1xuZXhwb3J0IGNvbnN0IGR5bmFtb0dldCA9IChwYXJhbXM6IEdldEl0ZW1Db21tYW5kSW5wdXQpOiBQcm9taXNlPEdldEl0ZW1Db21tYW5kT3V0cHV0PiA9PlxuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgZHluYW1vZGIgPSBuZXcgRHluYW1vREIoe1xuICAgICAgY3JlZGVudGlhbHM6IENvbmZpZy5nZXQoJ2F3cy5jcmVkZW50aWFscycpLFxuICAgICAgcmVnaW9uOiBDb25maWcuZ2V0KCdhd3MucmVnaW9uJylcbiAgICB9KTtcbiAgICBwYXJhbXMuQ29uc2lzdGVudFJlYWQgPSBmYWxzZTtcblxuICAgIGR5bmFtb2RiLmdldEl0ZW0ocGFyYW1zLCAoZXJyb3I6IEVycm9yLCByZXN1bHRzOiBHZXRJdGVtQ29tbWFuZE91dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNvbHZlKHJlc3VsdHMpO1xuICAgIH0pO1xuICB9KTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlRHluYW1vTGlzdCA9IChyZXN1bHRzOiBRdWVyeUNvbW1hbmRPdXRwdXQpOiBhbnlbXSA9PiB7XG4gIGNvbnN0IHtJdGVtczogaXRlbXMgPSBbXX0gPSByZXN1bHRzO1xuICBjb25zdCBkYXRhOiBhbnlbXSA9IFtdO1xuXG5cbiAgZm9yKGxldCBpZHggPSAwLCBsZW4gPSBpdGVtcy5sZW5ndGg7IGlkeCA8IGxlbjsgaWR4KyspIHtcbiAgICBjb25zdCB0bXAgPSBpdGVtc1tpZHhdO1xuICAgIGNvbnN0IG9iaiA9IHt9O1xuICAgIGxldCBrZXk7XG5cbiAgICBmb3Ioa2V5IGluIHRtcCkge1xuICAgICAgaWYodG1wLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgaWYodG1wW2tleV0uUykge1xuICAgICAgICAgIG9ialtrZXldID0gdG1wW2tleV0uUy50b1N0cmluZygpO1xuICAgICAgICB9IGVsc2UgaWYodG1wW2tleV0uTikge1xuICAgICAgICAgIG9ialtrZXldID0gcGFyc2VGbG9hdCh0bXBba2V5XS5OKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvYmpba2V5XSA9IHRtcFtrZXldLkI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBkYXRhLnB1c2gob2JqKTtcbiAgfVxuXG4gIHJldHVybiBkYXRhO1xufTtcblxuZXhwb3J0IGNvbnN0IGR5bmFtb0dldExpc3QgPSAocGFyYW1zOiBRdWVyeUNvbW1hbmRJbnB1dCwgc3RhcnRJdGVtPyk6IFByb21pc2U8R2V0SXRlbUNvbW1hbmRPdXRwdXRbXT4gPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IGR5bmFtb2RiID0gbmV3IER5bmFtb0RCKHtcbiAgICAgIGNyZWRlbnRpYWxzOiBDb25maWcuZ2V0KCdhd3MuY3JlZGVudGlhbHMnKSxcbiAgICAgIHJlZ2lvbjogQ29uZmlnLmdldCgnYXdzLnJlZ2lvbicpXG4gICAgfSk7XG4gICAgY29uc3Qge0NvbnNpc3RlbnRSZWFkOiBjb25zaXN0ZW50UmVhZH0gPSBwYXJhbXM7XG4gICAgY29uc3QgdXBkYXRlZFBhcmFtcyA9IHsuLi5wYXJhbXN9O1xuXG4gICAgaWYoc3RhcnRJdGVtKSB7XG4gICAgICB1cGRhdGVkUGFyYW1zLkV4Y2x1c2l2ZVN0YXJ0S2V5ID0gc3RhcnRJdGVtO1xuICAgIH1cblxuICAgIGlmKCFjb25zaXN0ZW50UmVhZCkge1xuICAgICAgdXBkYXRlZFBhcmFtcy5Db25zaXN0ZW50UmVhZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGxpc3QgPSBbXTtcblxuICAgIGR5bmFtb2RiLnF1ZXJ5KHVwZGF0ZWRQYXJhbXMsIChlcnJvcjogRXJyb3IsIG91dHB1dDogUXVlcnlDb21tYW5kT3V0cHV0KSA9PiB7XG4gICAgICBpZihlcnJvcikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgIH1cblxuICAgICAgbGlzdC5wdXNoKC4uLihwYXJzZUR5bmFtb0xpc3Qob3V0cHV0KSB8fCBbXSkpO1xuXG4gICAgICBjb25zdCB7TGFzdEV2YWx1YXRlZEtleTogbGFzdEtleX0gPSBvdXRwdXQ7XG5cbiAgICAgIGlmKGxhc3RLZXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZHluYW1vR2V0TGlzdChwYXJhbXMsIGxhc3RLZXkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzb2x2ZShsaXN0KTtcbiAgICB9KTtcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBkeW5hbW9QdXQgPSAocGFyYW1zOiBQdXRJdGVtQ29tbWFuZElucHV0KTogUHJvbWlzZTxQdXRJdGVtQ29tbWFuZE91dHB1dD4gPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IGR5bmFtb2RiID0gbmV3IER5bmFtb0RCKHtcbiAgICAgIGNyZWRlbnRpYWxzOiBDb25maWcuZ2V0KCdhd3MuY3JlZGVudGlhbHMnKSxcbiAgICAgIHJlZ2lvbjogQ29uZmlnLmdldCgnYXdzLnJlZ2lvbicpXG4gICAgfSk7XG5cbiAgICBkeW5hbW9kYi5wdXRJdGVtKHBhcmFtcywgKGVycm9yLCBvdXRwdXQ6IFB1dEl0ZW1Db21tYW5kT3V0cHV0KSA9PiB7XG4gICAgICBpZihlcnJvcikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNvbHZlKG91dHB1dCk7XG4gICAgfSk7XG4gIH0pO1xuXG5leHBvcnQgY29uc3QgZHluYW1vVXBkYXRlID0gKHBhcmFtczogVXBkYXRlSXRlbUNvbW1hbmRJbnB1dCk6IFByb21pc2U8VXBkYXRlSXRlbUNvbW1hbmRPdXRwdXQ+ID0+XG4gIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBkeW5hbW9kYiA9IG5ldyBEeW5hbW9EQih7XG4gICAgICBjcmVkZW50aWFsczogQ29uZmlnLmdldCgnYXdzLmNyZWRlbnRpYWxzJyksXG4gICAgICByZWdpb246IENvbmZpZy5nZXQoJ2F3cy5yZWdpb24nKVxuICAgIH0pO1xuXG4gICAgZHluYW1vZGIudXBkYXRlSXRlbShwYXJhbXMsIChlcnJvcjogRXJyb3IsIG91dHB1dDogVXBkYXRlSXRlbUNvbW1hbmRPdXRwdXQpID0+IHtcbiAgICAgIGlmKGVycm9yKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc29sdmUob3V0cHV0KTtcbiAgICB9KTtcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBkeW5hbW9QdXRMaXN0ID0gKHBhcmFtczogQmF0Y2hXcml0ZUl0ZW1Db21tYW5kSW5wdXQpOiBQcm9taXNlPEJhdGNoV3JpdGVJdGVtQ29tbWFuZE91dHB1dD4gPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IGR5bmFtb2RiID0gbmV3IER5bmFtb0RCKHtcbiAgICAgIGNyZWRlbnRpYWxzOiBDb25maWcuZ2V0KCdhd3MuY3JlZGVudGlhbHMnKSxcbiAgICAgIHJlZ2lvbjogQ29uZmlnLmdldCgnYXdzLnJlZ2lvbicpXG4gICAgfSk7XG5cbiAgICBkeW5hbW9kYi5iYXRjaFdyaXRlSXRlbShwYXJhbXMsIChlcnJvcjogRXJyb3IsIG91dHB1dDogQmF0Y2hXcml0ZUl0ZW1Db21tYW5kT3V0cHV0KSA9PiB7XG4gICAgICBpZihlcnJvcikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNvbHZlKG91dHB1dCk7XG4gICAgfSk7XG4gIH0pO1xuXG5leHBvcnQgY29uc3QgZHluYW1vRGVsID0gKHBhcmFtczogRGVsZXRlSXRlbUNvbW1hbmRJbnB1dCk6IFByb21pc2U8RGVsZXRlSXRlbUNvbW1hbmRPdXRwdXQ+ID0+XG4gIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBkeW5hbW9kYiA9IG5ldyBEeW5hbW9EQih7XG4gICAgICBjcmVkZW50aWFsczogQ29uZmlnLmdldCgnYXdzLmNyZWRlbnRpYWxzJyksXG4gICAgICByZWdpb246IENvbmZpZy5nZXQoJ2F3cy5yZWdpb24nKVxuICAgIH0pO1xuXG4gICAgZHluYW1vZGIuZGVsZXRlSXRlbShwYXJhbXMsIChlcnJvciwgb3V0cHV0OiBEZWxldGVJdGVtQ29tbWFuZE91dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZShvdXRwdXQpO1xuICAgIH0pO1xuICB9KTtcbiJdLCJuYW1lcyI6WyJEeW5hbW9EQiIsIkNvbmZpZyIsImR5bmFtb0dldCIsInBhcmFtcyIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiZHluYW1vZGIiLCJjcmVkZW50aWFscyIsImdldCIsInJlZ2lvbiIsIkNvbnNpc3RlbnRSZWFkIiwiZ2V0SXRlbSIsImVycm9yIiwicmVzdWx0cyIsInBhcnNlRHluYW1vTGlzdCIsIkl0ZW1zIiwiaXRlbXMiLCJkYXRhIiwiaWR4IiwibGVuIiwibGVuZ3RoIiwidG1wIiwib2JqIiwia2V5IiwiaGFzT3duUHJvcGVydHkiLCJTIiwidG9TdHJpbmciLCJOIiwicGFyc2VGbG9hdCIsIkIiLCJwdXNoIiwiZHluYW1vR2V0TGlzdCIsInN0YXJ0SXRlbSIsImNvbnNpc3RlbnRSZWFkIiwidXBkYXRlZFBhcmFtcyIsIkV4Y2x1c2l2ZVN0YXJ0S2V5IiwibGlzdCIsInF1ZXJ5Iiwib3V0cHV0IiwiTGFzdEV2YWx1YXRlZEtleSIsImxhc3RLZXkiLCJ1bmRlZmluZWQiLCJkeW5hbW9QdXQiLCJwdXRJdGVtIiwiZHluYW1vVXBkYXRlIiwidXBkYXRlSXRlbSIsImR5bmFtb1B1dExpc3QiLCJiYXRjaFdyaXRlSXRlbSIsImR5bmFtb0RlbCIsImRlbGV0ZUl0ZW0iXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELFNBS0VBLFFBQVEsUUFTSCwyQkFBMkI7QUFFbEMsU0FBUUMsTUFBTSxRQUFPLGVBQWU7QUFFcEMsb0NBQW9DO0FBQ3BDLE9BQU8sTUFBTUMsWUFBWSxDQUFDQyxTQUN4QixJQUFJQyxRQUFRLENBQUNDLFNBQVNDO1FBQ3BCLE1BQU1DLFdBQVcsSUFBSVAsU0FBUztZQUM1QlEsYUFBYVAsT0FB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
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3IvcGFja2FnZXMvcmVha3Rvci9zcmMvYWN0aW9ucy9keW5hbW9kYi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2UgaXMgc3ViamVjdCB0byB0aGUgYWNjb21wYW55aW5nIGNvbW1lcmNpYWwgTElDRU5TRS5cbiAqL1xuaW1wb3J0IHtcbiAgQmF0Y2hXcml0ZUl0ZW1Db21tYW5kSW5wdXQsXG4gIEJhdGNoV3JpdGVJdGVtQ29tbWFuZE91dHB1dCxcbiAgRGVsZXRlSXRlbUNvbW1hbmRJbnB1dCxcbiAgRGVsZXRlSXRlbUNvbW1hbmRPdXRwdXQsXG4gIER5bmFtb0RCLFxuICBHZXRJdGVtQ29tbWFuZElucHV0LFxuICBHZXRJdGVtQ29tbWFuZE91dHB1dCxcbiAgUHV0SXRlbUNvbW1hbmRJbnB1dCxcbiAgUHV0SXRlbUNvbW1hbmRPdXRwdXQsXG4gIFF1ZXJ5Q29tbWFuZElucHV0LFxuICBRdWVyeUNvbW1hbmRPdXRwdXQsXG4gIFVwZGF0ZUl0ZW1Db21tYW5kSW5wdXQsXG4gIFVwZGF0ZUl0ZW1Db21tYW5kT3V0cHV0XG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYic7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcuanMnO1xuXG4vLyBjb25zdCBldmVudENhdGVnb3J5ID0gJ2R5bmFtb2RiJztcbmV4cG9ydCBjb25zdCBkeW5hbW9HZXQgPSAocGFyYW1zOiBHZXRJdGVtQ29tbWFuZElucHV0KTogUHJvbWlzZTxHZXRJdGVtQ29tbWFuZE91dHB1dD4gPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IGR5bmFtb2RiID0gbmV3IER5bmFtb0RCKHtcbiAgICAgIGNyZWRlbnRpYWxzOiBDb25maWcuZ2V0KCdhd3MuY3JlZGVudGlhbHMnKSxcbiAgICAgIHJlZ2lvbjogQ29uZmlnLmdldCgnYXdzLnJlZ2lvbicpXG4gICAgfSk7XG4gICAgcGFyYW1zLkNvbnNpc3RlbnRSZWFkID0gZmFsc2U7XG5cbiAgICBkeW5hbW9kYi5nZXRJdGVtKHBhcmFtcywgKGVycm9yOiBFcnJvciwgcmVzdWx0czogR2V0SXRlbUNvbW1hbmRPdXRwdXQpID0+IHtcbiAgICAgIGlmKGVycm9yKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzb2x2ZShyZXN1bHRzKTtcbiAgICB9KTtcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBwYXJzZUR5bmFtb0xpc3QgPSAocmVzdWx0czogUXVlcnlDb21tYW5kT3V0cHV0KTogYW55W10gPT4ge1xuICBjb25zdCB7SXRlbXM6IGl0ZW1zID0gW119ID0gcmVzdWx0cztcbiAgY29uc3QgZGF0YTogYW55W10gPSBbXTtcblxuXG4gIGZvcihsZXQgaWR4ID0gMCwgbGVuID0gaXRlbXMubGVuZ3RoOyBpZHggPCBsZW47IGlkeCsrKSB7XG4gICAgY29uc3QgdG1wID0gaXRlbXNbaWR4XTtcbiAgICBjb25zdCBvYmogPSB7fTtcbiAgICBsZXQga2V5O1xuXG4gICAgZm9yKGtleSBpbiB0bXApIHtcbiAgICAgIGlmKHRtcC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIGlmKHRtcFtrZXldLlMpIHtcbiAgICAgICAgICBvYmpba2V5XSA9IHRtcFtrZXldLlMudG9TdHJpbmcoKTtcbiAgICAgICAgfSBlbHNlIGlmKHRtcFtrZXldLk4pIHtcbiAgICAgICAgICBvYmpba2V5XSA9IHBhcnNlRmxvYXQodG1wW2tleV0uTik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb2JqW2tleV0gPSB0bXBba2V5XS5CO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgZGF0YS5wdXNoKG9iaik7XG4gIH1cblxuICByZXR1cm4gZGF0YTtcbn07XG5cbmV4cG9ydCBjb25zdCBkeW5hbW9HZXRMaXN0ID0gKHBhcmFtczogUXVlcnlDb21tYW5kSW5wdXQsIHN0YXJ0SXRlbT8pOiBQcm9taXNlPEdldEl0ZW1Db21tYW5kT3V0cHV0W10+ID0+XG4gIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBkeW5hbW9kYiA9IG5ldyBEeW5hbW9EQih7XG4gICAgICBjcmVkZW50aWFsczogQ29uZmlnLmdldCgnYXdzLmNyZWRlbnRpYWxzJyksXG4gICAgICByZWdpb246IENvbmZpZy5nZXQoJ2F3cy5yZWdpb24nKVxuICAgIH0pO1xuICAgIGNvbnN0IHtDb25zaXN0ZW50UmVhZDogY29uc2lzdGVudFJlYWR9ID0gcGFyYW1zO1xuICAgIGNvbnN0IHVwZGF0ZWRQYXJhbXMgPSB7Li4ucGFyYW1zfTtcblxuICAgIGlmKHN0YXJ0SXRlbSkge1xuICAgICAgdXBkYXRlZFBhcmFtcy5FeGNsdXNpdmVTdGFydEtleSA9IHN0YXJ0SXRlbTtcbiAgICB9XG5cbiAgICBpZighY29uc2lzdGVudFJlYWQpIHtcbiAgICAgIHVwZGF0ZWRQYXJhbXMuQ29uc2lzdGVudFJlYWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBsaXN0ID0gW107XG5cbiAgICBkeW5hbW9kYi5xdWVyeSh1cGRhdGVkUGFyYW1zLCAoZXJyb3I6IEVycm9yLCBvdXRwdXQ6IFF1ZXJ5Q29tbWFuZE91dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG5cbiAgICAgIGxpc3QucHVzaCguLi4ocGFyc2VEeW5hbW9MaXN0KG91dHB1dCkgfHwgW10pKTtcblxuICAgICAgY29uc3Qge0xhc3RFdmFsdWF0ZWRLZXk6IGxhc3RLZXl9ID0gb3V0cHV0O1xuXG4gICAgICBpZihsYXN0S2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGR5bmFtb0dldExpc3QocGFyYW1zLCBsYXN0S2V5KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc29sdmUobGlzdCk7XG4gICAgfSk7XG4gIH0pO1xuXG5leHBvcnQgY29uc3QgZHluYW1vUHV0ID0gKHBhcmFtczogUHV0SXRlbUNvbW1hbmRJbnB1dCk6IFByb21pc2U8UHV0SXRlbUNvbW1hbmRPdXRwdXQ+ID0+XG4gIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBkeW5hbW9kYiA9IG5ldyBEeW5hbW9EQih7XG4gICAgICBjcmVkZW50aWFsczogQ29uZmlnLmdldCgnYXdzLmNyZWRlbnRpYWxzJyksXG4gICAgICByZWdpb246IENvbmZpZy5nZXQoJ2F3cy5yZWdpb24nKVxuICAgIH0pO1xuXG4gICAgZHluYW1vZGIucHV0SXRlbShwYXJhbXMsIChlcnJvciwgb3V0cHV0OiBQdXRJdGVtQ29tbWFuZE91dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZShvdXRwdXQpO1xuICAgIH0pO1xuICB9KTtcblxuZXhwb3J0IGNvbnN0IGR5bmFtb1VwZGF0ZSA9IChwYXJhbXM6IFVwZGF0ZUl0ZW1Db21tYW5kSW5wdXQpOiBQcm9taXNlPFVwZGF0ZUl0ZW1Db21tYW5kT3V0cHV0PiA9PlxuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgZHluYW1vZGIgPSBuZXcgRHluYW1vREIoe1xuICAgICAgY3JlZGVudGlhbHM6IENvbmZpZy5nZXQoJ2F3cy5jcmVkZW50aWFscycpLFxuICAgICAgcmVnaW9uOiBDb25maWcuZ2V0KCdhd3MucmVnaW9uJylcbiAgICB9KTtcblxuICAgIGR5bmFtb2RiLnVwZGF0ZUl0ZW0ocGFyYW1zLCAoZXJyb3I6IEVycm9yLCBvdXRwdXQ6IFVwZGF0ZUl0ZW1Db21tYW5kT3V0cHV0KSA9PiB7XG4gICAgICBpZihlcnJvcikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNvbHZlKG91dHB1dCk7XG4gICAgfSk7XG4gIH0pO1xuXG5leHBvcnQgY29uc3QgZHluYW1vUHV0TGlzdCA9IChwYXJhbXM6IEJhdGNoV3JpdGVJdGVtQ29tbWFuZElucHV0KTogUHJvbWlzZTxCYXRjaFdyaXRlSXRlbUNvbW1hbmRPdXRwdXQ+ID0+XG4gIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBkeW5hbW9kYiA9IG5ldyBEeW5hbW9EQih7XG4gICAgICBjcmVkZW50aWFsczogQ29uZmlnLmdldCgnYXdzLmNyZWRlbnRpYWxzJyksXG4gICAgICByZWdpb246IENvbmZpZy5nZXQoJ2F3cy5yZWdpb24nKVxuICAgIH0pO1xuXG4gICAgZHluYW1vZGIuYmF0Y2hXcml0ZUl0ZW0ocGFyYW1zLCAoZXJyb3I6IEVycm9yLCBvdXRwdXQ6IEJhdGNoV3JpdGVJdGVtQ29tbWFuZE91dHB1dCkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZShvdXRwdXQpO1xuICAgIH0pO1xuICB9KTtcblxuZXhwb3J0IGNvbnN0IGR5bmFtb0RlbCA9IChwYXJhbXM6IERlbGV0ZUl0ZW1Db21tYW5kSW5wdXQpOiBQcm9taXNlPERlbGV0ZUl0ZW1Db21tYW5kT3V0cHV0PiA9PlxuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgZHluYW1vZGIgPSBuZXcgRHluYW1vREIoe1xuICAgICAgY3JlZGVudGlhbHM6IENvbmZpZy5nZXQoJ2F3cy5jcmVkZW50aWFscycpLFxuICAgICAgcmVnaW9uOiBDb25maWcuZ2V0KCdhd3MucmVnaW9uJylcbiAgICB9KTtcblxuICAgIGR5bmFtb2RiLmRlbGV0ZUl0ZW0ocGFyYW1zLCAoZXJyb3IsIG91dHB1dDogRGVsZXRlSXRlbUNvbW1hbmRPdXRwdXQpID0+IHtcbiAgICAgIGlmKGVycm9yKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc29sdmUob3V0cHV0KTtcbiAgICB9KTtcbiAgfSk7XG4iXSwibmFtZXMiOlsiRHluYW1vREIiLCJDb25maWciLCJkeW5hbW9HZXQiLCJwYXJhbXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImR5bmFtb2RiIiwiY3JlZGVudGlhbHMiLCJnZXQiLCJyZWdpb24iLCJDb25zaXN0ZW50UmVhZCIsImdldEl0ZW0iLCJlcnJvciIsInJlc3VsdHMiLCJwYXJzZUR5bmFtb0xpc3QiLCJJdGVtcyIsIml0ZW1zIiwiZGF0YSIsImlkeCIsImxlbiIsImxlbmd0aCIsInRtcCIsIm9iaiIsImtleSIsImhhc093blByb3BlcnR5IiwiUyIsInRvU3RyaW5nIiwiTiIsInBhcnNlRmxvYXQiLCJCIiwicHVzaCIsImR5bmFtb0dldExpc3QiLCJzdGFydEl0ZW0iLCJjb25zaXN0ZW50UmVhZCIsInVwZGF0ZWRQYXJhbXMiLCJFeGNsdXNpdmVTdGFydEtleSIsImxpc3QiLCJxdWVyeSIsIm91dHB1dCIsIkxhc3RFdmFsdWF0ZWRLZXkiLCJsYXN0S2V5IiwidW5kZWZpbmVkIiwiZHluYW1vUHV0IiwicHV0SXRlbSIsImR5bmFtb1VwZGF0ZSIsInVwZGF0ZUl0ZW0iLCJkeW5hbW9QdXRMaXN0IiwiYmF0Y2hXcml0ZUl0ZW0iLCJkeW5hbW9EZWwiLCJkZWxldGVJdGVtIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUtFQSxRQUFRLFFBU0gsMkJBQTJCO0FBRWxDLFNBQVFDLE1BQU0sUUFBTyxlQUFlO0FBRXBDLG9DQUFvQztBQUNwQyxPQUFPLE1BQU1DLFlBQVksQ0FBQ0MsU0FDeEIsSUFBSUMsUUFBUSxDQUFDQyxTQUFTQztRQUNwQixNQUFNQyxXQUFXLElBQUlQLFNBQVM7WUFDNUJRLGFBQWFQLE9BQU9RLEdBQUcsQ0FBQztZQUN4QkMsUUFBUVQsT0FBT1EsR0FBRyxDQUFDO1FBQ3JCO1FBQ0FOLE9BQU9RLGNBQWMsR0FBRztRQUV4QkosU0FBU0ssT0FBTyxDQUFDVCxRQUFRLENBQUNVLE9BQWNDO1lBQ3RDLElBQUdELE9BQU87Z0JBQ1IsT0FBT1AsT0FBT087WUFDaEI7WUFFQSxPQUFPUixRQUFRUztRQUNqQjtJQUNGLEdBQUc7QUFFTCxPQUFPLE1BQU1DLGtCQUFrQixDQUFDRDtJQUM5QixNQUFNLEVBQUNFLE9BQU9DLFFBQVEsRUFBRSxFQUFDLEdBQUdIO0lBQzVCLE1BQU1JLE9BQWMsRUFBRTtJQUd0QixJQUFJLElBQUlDLE1BQU0sR0FBR0MsTUFBTUgsTUFBTUksTUFBTSxFQUFFRixNQUFNQyxLQUFLRCxNQUFPO1FBQ3JELE1BQU1HLE1BQU1MLEtBQUssQ0FBQ0UsSUFBSTtRQUN0QixNQUFNSSxNQUFNLENBQUM7UUFDYixJQUFJQztRQUVKLElBQUlBLE9BQU9GLElBQUs7WUFDZCxJQUFHQSxJQUFJRyxjQUFjLENBQUNELE1BQU07Z0JBQzFCLElBQUdGLEdBQUcsQ0FBQ0UsSUFBSSxDQUFDRSxDQUFDLEVBQUU7b0JBQ2JILEdBQUcsQ0FBQ0MsSUFBSSxHQUFHRixHQUFHLENBQUNFLElBQUksQ0FBQ0UsQ0FBQyxDQUFDQyxRQUFRO2dCQUNoQyxPQUFPLElBQUdMLEdBQUcsQ0FBQ0UsSUFBSSxDQUFDSSxDQUFDLEVBQUU7b0JBQ3BCTCxHQUFHLENBQUNDLElBQUksR0FBR0ssV0FBV1AsR0FBRyxDQUFDRSxJQUFJLENBQUNJLENBQUM7Z0JBQ2xDLE9BQU87b0JBQ0xMLEdBQUcsQ0FBQ0MsSUFBSSxHQUFHRixHQUFHLENBQUNFLElBQUksQ0FBQ00sQ0FBQztnQkFDdkI7WUFDRjtRQUNGO1FBRUFaLEtBQUthLElBQUksQ0FBQ1I7SUFDWjtJQUVBLE9BQU9MO0FBQ1QsRUFBRTtBQUVGLE9BQU8sTUFBTWMsZ0JBQWdCLENBQUM3QixRQUEyQjhCLFlBQ3ZELElBQUk3QixRQUFRLENBQUNDLFNBQVNDO1FBQ3BCLE1BQU1DLFdBQVcsSUFBSVAsU0FBUztZQUM1QlEsYUFBYVAsT0FBT1EsR0FBRyxDQUFDO1lBQ3hCQyxRQUFRVCxPQUFPUSxHQUFHLENBQUM7UUFDckI7UUFDQSxNQUFNLEVBQUNFLGdCQUFnQnVCLGNBQWMsRUFBQyxHQUFHL0I7UUFDekMsTUFBTWdDLGdCQUFnQjtZQUFDLEdBQUdoQyxNQUFNO1FBQUE7UUFFaEMsSUFBRzhCLFdBQVc7WUFDWkUsY0FBY0MsaUJBQWlCLEdBQUdIO1FBQ3BDO1FBRUEsSUFBRyxDQUFDQyxnQkFBZ0I7WUFDbEJDLGNBQWN4QixjQUFjLEdBQUc7UUFDakM7UUFFQSxNQUFNMEIsT0FBTyxFQUFFO1FBRWY5QixTQUFTK0IsS0FBSyxDQUFDSCxlQUFlLENBQUN0QixPQUFjMEI7WUFDM0MsSUFBRzFCLE9BQU87Z0JBQ1IsT0FBT1AsT0FBT087WUFDaEI7WUFFQXdCLEtBQUtOLElBQUksSUFBS2hCLGdCQUFnQndCLFdBQVcsRUFBRTtZQUUzQyxNQUFNLEVBQUNDLGtCQUFrQkMsT0FBTyxFQUFDLEdBQUdGO1lBRXBDLElBQUdFLFlBQVlDLFdBQVc7Z0JBQ3hCLE9BQU9WLGNBQWM3QixRQUFRc0M7WUFDL0I7WUFFQSxPQUFPcEMsUUFBUWdDO1FBQ2pCO0lBQ0YsR0FBRztBQUVMLE9BQU8sTUFBTU0sWUFBWSxDQUFDeEMsU0FDeEIsSUFBSUMsUUFBUSxDQUFDQyxTQUFTQztRQUNwQixNQUFNQyxXQUFXLElBQUlQLFNBQVM7WUFDNUJRLGFBQWFQLE9BQU9RLEdBQUcsQ0FBQztZQUN4QkMsUUFBUVQsT0FBT1EsR0FBRyxDQUFDO1FBQ3JCO1FBRUFGLFNBQVNxQyxPQUFPLENBQUN6QyxRQUFRLENBQUNVLE9BQU8wQjtZQUMvQixJQUFHMUIsT0FBTztnQkFDUixPQUFPUCxPQUFPTztZQUNoQjtZQUNBLE9BQU9SLFFBQVFrQztRQUNqQjtJQUNGLEdBQUc7QUFFTCxPQUFPLE1BQU1NLGVBQWUsQ0FBQzFDLFNBQzNCLElBQUlDLFFBQVEsQ0FBQ0MsU0FBU0M7UUFDcEIsTUFBTUMsV0FBVyxJQUFJUCxTQUFTO1lBQzVCUSxhQUFhUCxPQUFPUSxHQUFHLENBQUM7WUFDeEJDLFFBQVFULE9BQU9RLEdBQUcsQ0FBQztRQUNyQjtRQUVBRixTQUFTdUMsVUFBVSxDQUFDM0MsUUFBUSxDQUFDVSxPQUFjMEI7WUFDekMsSUFBRzFCLE9BQU87Z0JBQ1IsT0FBT1AsT0FBT087WUFDaEI7WUFDQSxPQUFPUixRQUFRa0M7UUFDakI7SUFDRixHQUFHO0FBRUwsT0FBTyxNQUFNUSxnQkFBZ0IsQ0FBQzVDLFNBQzVCLElBQUlDLFFBQVEsQ0FBQ0MsU0FBU0M7UUFDcEIsTUFBTUMsV0FBVyxJQUFJUCxTQUFTO1lBQzVCUSxhQUFhUCxPQUFPUSxHQUFHLENBQUM7WUFDeEJDLFFBQVFULE9BQU9RLEdBQUcsQ0FBQztRQUNyQjtRQUVBRixTQUFTeUMsY0FBYyxDQUFDN0MsUUFBUSxDQUFDVSxPQUFjMEI7WUFDN0MsSUFBRzFCLE9BQU87Z0JBQ1IsT0FBT1AsT0FBT087WUFDaEI7WUFDQSxPQUFPUixRQUFRa0M7UUFDakI7SUFDRixHQUFHO0FBRUwsT0FBTyxNQUFNVSxZQUFZLENBQUM5QyxTQUN4QixJQUFJQyxRQUFRLENBQUNDLFNBQVNDO1FBQ3BCLE1BQU1DLFdBQVcsSUFBSVAsU0FBUztZQUM1QlEsYUFBYVAsT0FBT1EsR0FBRyxDQUFDO1lBQ3hCQyxRQUFRVCxPQUFPUSxHQUFHLENBQUM7UUFDckI7UUFFQUYsU0FBUzJDLFVBQVUsQ0FBQy9DLFFBQVEsQ0FBQ1UsT0FBTzBCO1lBQ2xDLElBQUcxQixPQUFPO2dCQUNSLE9BQU9QLE9BQU9PO1lBQ2hCO1lBQ0EsT0FBT1IsUUFBUWtDO1FBQ2pCO0lBQ0YsR0FBRyJ9
|
package/lib/actions/email.js
CHANGED
|
@@ -66,4 +66,4 @@ export const sendEmail = (params)=>{
|
|
|
66
66
|
});
|
|
67
67
|
};
|
|
68
68
|
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3IvcGFja2FnZXMvcmVha3Rvci9zcmMvYWN0aW9ucy9lbWFpbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2UgaXMgc3ViamVjdCB0byB0aGUgYWNjb21wYW55aW5nIGNvbW1lcmNpYWwgTElDRU5TRS5cbiAqL1xuaW1wb3J0IHtTZW5kRW1haWxDb21tYW5kSW5wdXQsIFNlbmRFbWFpbENvbW1hbmRPdXRwdXQsIFNFU30gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXNlcyc7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcuanMnO1xuaW1wb3J0IHtFbWFpbFR5cGV9IGZyb20gJy4uL3R5cGVzL2VtYWlsLnR5cGVzLmpzJztcbmltcG9ydCB7bG9nRXJyb3J9IGZyb20gJy4uL3V0aWxzL2FuYWx5dGljc1V0aWxzLmpzJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeSA9ICdlbWFpbCc7XG5cbmV4cG9ydCBjb25zdCBzZXNTZW5kID0gKHBhcmFtczogU2VuZEVtYWlsQ29tbWFuZElucHV0KTogUHJvbWlzZTxTZW5kRW1haWxDb21tYW5kT3V0cHV0PiA9PlxuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgYWNjZXNzS2V5SWQgPSBDb25maWcuZ2V0KCdhd3MuY3JlZGVudGlhbHMuYWNjZXNzS2V5SWQnKTtcbiAgICBjb25zdCBzZWNyZXRBY2Nlc3NLZXkgPSBDb25maWcuZ2V0KCdhd3MuY3JlZGVudGlhbHMuc2VjcmV0QWNjZXNzS2V5Jyk7XG4gICAgY29uc3Qgc2Vzc2lvblRva2VuID0gQ29uZmlnLmdldCgnYXdzLmNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbicpO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYWNjZXNzS2V5SWQgJiYgc2VjcmV0QWNjZXNzS2V5ID8ge1xuICAgICAgYWNjZXNzS2V5SWQsXG4gICAgICBzZWNyZXRBY2Nlc3NLZXksXG4gICAgICAuLi4oc2Vzc2lvblRva2VuID8ge3Nlc3Npb25Ub2tlbn0gOiB7fSlcbiAgICB9IDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHNlcyA9IG5ldyBTRVMoe1xuICAgICAgLi4uKGNyZWRlbnRpYWxzID8ge2NyZWRlbnRpYWxzfSA6IHt9KSxcbiAgICAgIHJlZ2lvbjogQ29uZmlnLmdldCgnYXdzLnJlZ2lvbicpXG4gICAgfSk7XG5cbiAgICBzZXMuc2VuZEVtYWlsKHBhcmFtcywgKGVycm9yOiBFcnJvciwgcmVzcG9uc2U6IFNlbmRFbWFpbENvbW1hbmRPdXRwdXQpID0+IHtcbiAgICAgIGlmKGVycm9yKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoZXJyb3IpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgfSk7XG4gIH0pO1xuXG5leHBvcnQgY29uc3Qgc2VuZEVtYWlsID0gKHBhcmFtczogRW1haWxUeXBlKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gIGNvbnN0IHtcbiAgICBjb250ZXh0LFxuICAgIGh0bWwsXG4gICAgc3ViamVjdCxcbiAgICB0ZXh0LFxuICAgIHVzZXJcbiAgfSA9IHBhcmFtcztcblxuICBjb25zdCB0byA9IFt1c2VyLmVtYWlsXTtcbiAgY29uc3QgZW1haWxQYXJhbXM6IFNlbmRFbWFpbENvbW1hbmRJbnB1dCA9IHtcbiAgICBEZXN0aW5hdGlvbjoge1RvQWRkcmVzc2VzOiB0b30sXG4gICAgTWVzc2FnZToge1xuICAgICAgQm9keToge1xuICAgICAgICBIdG1sOiB7RGF0YTogaHRtbH0sXG4gICAgICAgIFRleHQ6IHtEYXRhOiB0ZXh0fVxuICAgICAgfSxcbiAgICAgIFN1YmplY3Q6IHtEYXRhOiBzdWJqZWN0fVxuICAgIH0sXG4gICAgU291cmNlOiBgXCIke2NvbnRleHQuY29uZmlnLmRldGFpbHMuc3VwcG9ydE5hbWV9XCIgPCR7Y29udGV4dC5jb25maWcuZGV0YWlscy5zdXBwb3J0RW1haWx9PmBcbiAgfTtcblxuICByZXR1cm4gc2VzU2VuZChlbWFpbFBhcmFtcylcbiAgICAudGhlbigoKSA9PiB0cnVlKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBsb2dFcnJvcihcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhY3Rpb246ICdzZW5kRW1haWwnLFxuICAgICAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnlcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yLFxuICAgICAgICAgIGNvbnRleHRcbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2goX2xvZ0Vycm9yKSB7XG4gICAgICAgIC8vIGxvZ0Vycm9yIHJlcG9ydHMgdGhlIFNFUyBmYWlsdXJlLCB0aGVuIHRocm93cyBieSBkZXNpZ24uXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbn07XG4iXSwibmFtZXMiOlsiU0VTIiwiQ29uZmlnIiwibG9nRXJyb3IiLCJldmVudENhdGVnb3J5Iiwic2VzU2VuZCIsInBhcmFtcyIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiYWNjZXNzS2V5SWQiLCJnZXQiLCJzZWNyZXRBY2Nlc3NLZXkiLCJzZXNzaW9uVG9rZW4iLCJjcmVkZW50aWFscyIsInVuZGVmaW5lZCIsInNlcyIsInJlZ2lvbiIsInNlbmRFbWFpbCIsImVycm9yIiwicmVzcG9uc2UiLCJjb250ZXh0IiwiaHRtbCIsInN1YmplY3QiLCJ0ZXh0IiwidXNlciIsInRvIiwiZW1haWwiLCJlbWFpbFBhcmFtcyIsIkRlc3RpbmF0aW9uIiwiVG9BZGRyZXNzZXMiLCJNZXNzYWdlIiwiQm9keSIsIkh0bWwiLCJEYXRhIiwiVGV4dCIsIlN1YmplY3QiLCJTb3VyY2UiLCJjb25maWciLCJkZXRhaWxzIiwic3VwcG9ydE5hbWUiLCJzdXBwb3J0RW1haWwiLCJ0aGVuIiwiY2F0Y2giLCJhY3Rpb24iLCJjYXRlZ29yeSIsIl9sb2dFcnJvciJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBdURBLEdBQUcsUUFBTyxzQkFBc0I7QUFFdkYsU0FBUUMsTUFBTSxRQUFPLGVBQWU7QUFFcEMsU0FBUUMsUUFBUSxRQUFPLDZCQUE2QjtBQUVwRCxNQUFNQyxnQkFBZ0I7QUFFdEIsT0FBTyxNQUFNQyxVQUFVLENBQUNDLFNBQ3RCLElBQUlDLFFBQVEsQ0FBQ0MsU0FBU0M7UUFDcEIsTUFBTUMsY0FBY1IsT0FBT1MsR0FBRyxDQUFDO1FBQy9CLE1BQU1DLGtCQUFrQlYsT0FBT1MsR0FBRyxDQUFDO1FBQ25DLE1BQU1FLGVBQWVYLE9BQU9TLEdBQUcsQ0FBQztRQUNoQyxNQUFNRyxjQUFjSixlQUFlRSxrQkFBa0I7WUFDbkRGO1lBQ0FFO1lBQ0EsR0FBSUMsZUFBZTtnQkFBQ0E7WUFBWSxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJRTtRQUNKLE1BQU1DLE1BQU0sSUFBSWYsSUFBSTtZQUNsQixHQUFJYSxjQUFjO2dCQUFDQTtZQUFXLElBQUksQ0FBQyxDQUFDO1lBQ3BDRyxRQUFRZixPQUFPUyxHQUFHLENBQUM7UUFDckI7UUFFQUssSUFBSUUsU0FBUyxDQUFDWixRQUFRLENBQUNhLE9BQWNDO1lBQ25DLElBQUdELE9BQU87Z0JBQ1IsT0FBT1YsT0FBT1U7WUFDaEI7WUFFQSxPQUFPWCxRQUFRWTtRQUNqQjtJQUNGLEdBQUc7QUFFTCxPQUFPLE1BQU1GLFlBQVksQ0FBQ1o7SUFDeEIsTUFBTSxFQUNKZSxPQUFPLEVBQ1BDLElBQUksRUFDSkMsT0FBTyxFQUNQQyxJQUFJLEVBQ0pDLElBQUksRUFDTCxHQUFHbkI7SUFFSixNQUFNb0IsS0FBSztRQUFDRCxLQUFLRSxLQUFLO0tBQUM7SUFDdkIsTUFBTUMsY0FBcUM7UUFDekNDLGFBQWE7WUFBQ0MsYUFBYUo7UUFBRTtRQUM3QkssU0FBUztZQUNQQyxNQUFNO2dCQUNKQyxNQUFNO29CQUFDQyxNQUFNWjtnQkFBSTtnQkFDakJhLE1BQU07b0JBQUNELE1BQU1WO2dCQUFJO1lBQ25CO1lBQ0FZLFNBQVM7Z0JBQUNGLE1BQU1YO1lBQU87UUFDekI7UUFDQWMsUUFBUSxDQUFDLENBQUMsRUFBRWhCLFFBQVFpQixNQUFNLENBQUNDLE9BQU8sQ0FBQ0MsV0FBVyxDQUFDLEdBQUcsRUFBRW5CLFFBQVFpQixNQUFNLENBQUNDLE9BQU8sQ0FBQ0UsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUM1RjtJQUVBLE9BQU9wQyxRQUFRdUIsYUFDWmMsSUFBSSxDQUFDLElBQU0sTUFDWEMsS0FBSyxDQUFDLENBQUN4QjtRQUNOLElBQUk7WUFDRmhCLFNBQ0U7Z0JBQ0V5QyxRQUFRO2dCQUNSQyxVQUFVekM7WUFDWixHQUNBZSxPQUNBRTtRQUVKLEVBQUUsT0FBTXlCLFdBQVc7UUFDakIsMkRBQTJEO1FBQzdEO1FBRUEsT0FBTztJQUNUO0FBQ0osRUFBRSJ9
|
package/lib/actions/files.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { FileType } from '../types/files.types.js';
|
|
|
3
3
|
import { ImageType } from '../types/images.types.js';
|
|
4
4
|
export declare const GIPHY_URL = "http://api.giphy.com/v1/gifs";
|
|
5
5
|
export declare const YOUTUBE_URL = "https://www.googleapis.com/youtube/v3";
|
|
6
|
-
|
|
6
|
+
type YouTubeListResponse = Readonly<{
|
|
7
7
|
readonly items?: Array<{
|
|
8
8
|
readonly id?: string | {
|
|
9
9
|
readonly videoId?: string;
|
|
@@ -16,7 +16,7 @@ interface YouTubeListResponse {
|
|
|
16
16
|
};
|
|
17
17
|
};
|
|
18
18
|
}>;
|
|
19
|
-
}
|
|
19
|
+
}>;
|
|
20
20
|
type YouTubeListCallback = (error?: Error, data?: YouTubeListResponse) => void;
|
|
21
21
|
export declare const getYouTube: () => {
|
|
22
22
|
search: {
|
|
@@ -26,9 +26,47 @@ export declare const getYouTube: () => {
|
|
|
26
26
|
list: (options: Readonly<Record<string, string | number | readonly string[]>>, callback: YouTubeListCallback) => void;
|
|
27
27
|
};
|
|
28
28
|
};
|
|
29
|
-
export declare const insertFile: (context: ApiContext, file: FileType) => Promise<
|
|
29
|
+
export declare const insertFile: (context: ApiContext, file: FileType) => Promise<Readonly<Readonly<{
|
|
30
|
+
readonly _id?: string;
|
|
31
|
+
readonly _key?: string;
|
|
32
|
+
readonly _rev?: string;
|
|
33
|
+
readonly added?: number;
|
|
34
|
+
readonly id?: string;
|
|
35
|
+
readonly modified?: number;
|
|
36
|
+
}> & {
|
|
37
|
+
readonly base64?: string;
|
|
38
|
+
readonly buffer?: Buffer;
|
|
39
|
+
readonly description?: string;
|
|
40
|
+
readonly fileId?: string;
|
|
41
|
+
fileSize?: number;
|
|
42
|
+
readonly fileType?: string;
|
|
43
|
+
readonly itemId?: string;
|
|
44
|
+
readonly itemType?: string;
|
|
45
|
+
readonly name?: string;
|
|
46
|
+
readonly url?: string;
|
|
47
|
+
readonly userId?: string;
|
|
48
|
+
}>>;
|
|
30
49
|
export declare const upsertFile: (context: ApiContext, file: FileType) => Promise<FileType>;
|
|
31
|
-
export declare const uploadFile: (context: any, file: FileType, buffer: Buffer) => Promise<
|
|
50
|
+
export declare const uploadFile: (context: any, file: FileType, buffer: Buffer) => Promise<Readonly<Readonly<{
|
|
51
|
+
readonly _id?: string;
|
|
52
|
+
readonly _key?: string;
|
|
53
|
+
readonly _rev?: string;
|
|
54
|
+
readonly added?: number;
|
|
55
|
+
readonly id?: string;
|
|
56
|
+
readonly modified?: number;
|
|
57
|
+
}> & {
|
|
58
|
+
readonly base64?: string;
|
|
59
|
+
readonly buffer?: Buffer;
|
|
60
|
+
readonly description?: string;
|
|
61
|
+
readonly fileId?: string;
|
|
62
|
+
fileSize?: number;
|
|
63
|
+
readonly fileType?: string;
|
|
64
|
+
readonly itemId?: string;
|
|
65
|
+
readonly itemType?: string;
|
|
66
|
+
readonly name?: string;
|
|
67
|
+
readonly url?: string;
|
|
68
|
+
readonly userId?: string;
|
|
69
|
+
}>>;
|
|
32
70
|
export declare const addFile: (context: ApiContext, file: FileType) => Promise<FileType>;
|
|
33
71
|
export declare const parseGiphyItem: (gifImage: any) => ImageType;
|
|
34
72
|
export declare const getGiphyTrends: (limit?: number) => Promise<ImageType[]>;
|
package/lib/actions/files.js
CHANGED
|
@@ -228,4 +228,4 @@ export const decodeBase64 = (dataString)=>{
|
|
|
228
228
|
};
|
|
229
229
|
};
|
|
230
230
|
|
|
231
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3JlYWt0b3IvcmVha3Rvci9wYWNrYWdlcy9yZWFrdG9yL3NyYy9hY3Rpb25zL2ZpbGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBpcyBzdWJqZWN0IHRvIHRoZSBhY2NvbXBhbnlpbmcgY29tbWVyY2lhbCBMSUNFTlNFLlxuICovXG5pbXBvcnQge2dldCBhcyBodHRwR2V0fSBmcm9tICdAbmxhYnMvcmlwLWh1bnRlcic7XG5pbXBvcnQge2NyZWF0ZUhhc2h9IGZyb20gJ0BubGFicy91dGlscy9wYXJzZXJzL3N0cmluZ3MnO1xuaW1wb3J0IHthcWx9IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2FxbCc7XG5cbmltcG9ydCB7cGFyc2VGaWxlfSBmcm9tICcuLi9hZGFwdGVycy9maWxlQWRhcHRlci5qcyc7XG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnLmpzJztcbmltcG9ydCB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcy5qcyc7XG5pbXBvcnQge0Vycm9yVHlwZXN9IGZyb20gJy4uL3R5cGVzL2Vycm9yLnR5cGVzLmpzJztcbmltcG9ydCB7RmlsZVR5cGV9IGZyb20gJy4uL3R5cGVzL2ZpbGVzLnR5cGVzLmpzJztcbmltcG9ydCB7SW1hZ2VUeXBlfSBmcm9tICcuLi90eXBlcy9pbWFnZXMudHlwZXMuanMnO1xuaW1wb3J0IHtsb2dFcnJvcn0gZnJvbSAnLi4vdXRpbHMvYW5hbHl0aWNzVXRpbHMuanMnO1xuaW1wb3J0IHt1c2VEYn0gZnJvbSAnLi4vdXRpbHMvYXJhbmdvZGJVdGlscy5qcyc7XG5pbXBvcnQge2FkZEl0ZW19IGZyb20gJy4vY3J1ZC5qcyc7XG5pbXBvcnQge3Jlc2l6ZUFuZFNhdmVJbWFnZX0gZnJvbSAnLi9pbWFnZXMuanMnO1xuaW1wb3J0IHtjcmVhdGVQb3N0RWRnZX0gZnJvbSAnLi9wb3N0cy5qcyc7XG5cbmltcG9ydCB0eXBlIHtFZGdlQ29sbGVjdGlvbn0gZnJvbSAnYXJhbmdvanMvY29sbGVjdGlvbnMnO1xuXG5jb25zdCBldmVudENhdGVnb3J5ID0gJ2ZpbGVzJztcblxuZXhwb3J0IGNvbnN0IEdJUEhZX1VSTCA9ICdodHRwOi8vYXBpLmdpcGh5LmNvbS92MS9naWZzJztcbmV4cG9ydCBjb25zdCBZT1VUVUJFX1VSTCA9ICdodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS95b3V0dWJlL3YzJztcblxuaW50ZXJmYWNlIFlvdVR1YmVMaXN0UmVzcG9uc2Uge1xuICByZWFkb25seSBpdGVtcz86IEFycmF5PHtcbiAgICByZWFkb25seSBpZD86IHN0cmluZyB8IHtyZWFkb25seSB2aWRlb0lkPzogc3RyaW5nfTtcbiAgICByZWFkb25seSBzbmlwcGV0Pzoge3JlYWRvbmx5IHRodW1ibmFpbHM/OiB7cmVhZG9ubHkgaGlnaD86IHtyZWFkb25seSB1cmw/OiBzdHJpbmd9fX07XG4gIH0+O1xufVxuXG50eXBlIFlvdVR1YmVMaXN0Q2FsbGJhY2sgPSAoZXJyb3I/OiBFcnJvciwgZGF0YT86IFlvdVR1YmVMaXN0UmVzcG9uc2UpID0+IHZvaWQ7XG5cbmNvbnN0IGNyZWF0ZVlvdVR1YmVMaXN0ID0gKHJlc291cmNlOiAnc2VhcmNoJyB8ICd2aWRlb3MnKSA9PiAoXG4gIG9wdGlvbnM6IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IHJlYWRvbmx5IHN0cmluZ1tdPj4sXG4gIGNhbGxiYWNrOiBZb3VUdWJlTGlzdENhbGxiYWNrXG4pOiB2b2lkID0+IHtcbiAgY29uc3QgdXJsID0gbmV3IFVSTChgJHtZT1VUVUJFX1VSTH0vJHtyZXNvdXJjZX1gKTtcbiAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2tleScsIENvbmZpZy5nZXQoJ2dvb2dsZS5rZXknKSk7XG5cbiAgZm9yKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhvcHRpb25zKSkge1xuICAgIHVybC5zZWFyY2hQYXJhbXMuc2V0KGtleSwgQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5qb2luKCcsJykgOiBTdHJpbmcodmFsdWUpKTtcbiAgfVxuXG4gIHZvaWQgaHR0cEdldCh1cmwudG9TdHJpbmcoKSlcbiAgICAudGhlbigocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiByZXNwb25zZS5qc29uKCkpXG4gICAgLnRoZW4oKGRhdGE6IFlvdVR1YmVMaXN0UmVzcG9uc2UpID0+IGNhbGxiYWNrKHVuZGVmaW5lZCwgZGF0YSkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGNhbGxiYWNrKGVycm9yKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0WW91VHViZSA9ICgpID0+ICh7XG4gIHNlYXJjaDoge2xpc3Q6IGNyZWF0ZVlvdVR1YmVMaXN0KCdzZWFyY2gnKX0sXG4gIHZpZGVvczoge2xpc3Q6IGNyZWF0ZVlvdVR1YmVMaXN0KCd2aWRlb3MnKX1cbn0pO1xuXG5leHBvcnQgY29uc3QgaW5zZXJ0RmlsZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBmaWxlOiBGaWxlVHlwZSkgPT4ge1xuICBjb25zdCBmb3JtYXR0ZWRGaWxlID0gcGFyc2VGaWxlKGZpbGUpO1xuICByZXR1cm4gYWRkSXRlbTxGaWxlVHlwZT4oY29udGV4dCwgJ2ZpbGVzJywgZm9ybWF0dGVkRmlsZSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBzZXJ0RmlsZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBmaWxlOiBGaWxlVHlwZSk6IFByb21pc2U8RmlsZVR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uID0gJ3Vwc2VydEZpbGUnO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdHRlZEZpbGUgPSBwYXJzZUZpbGUoZmlsZSk7XG4gIGNvbnN0IHtmaWxlSWR9ID0gZm9ybWF0dGVkRmlsZTtcbiAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgaW5zZXJ0OiBhbnkgPSB7XG4gICAgLi4uZm9ybWF0dGVkRmlsZSxcbiAgICBfa2V5OiBmaWxlSWQsXG4gICAgYWRkZWQ6IG5vdyxcbiAgICBtb2RpZmllZDogbm93XG4gIH07XG4gIGNvbnN0IHVwZGF0ZTogYW55ID0ge1xuICAgIC4uLmZvcm1hdHRlZEZpbGUsXG4gICAgX2tleTogZmlsZUlkLFxuICAgIG1vZGlmaWVkOiBub3dcbiAgfTtcblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQU0VSVCB7X2tleTogJHtmaWxlSWR9fVxuICAgIElOU0VSVCAke2luc2VydH1cbiAgICBVUERBVEUgJHt1cGRhdGV9XG4gICAgSU4gZmlsZXMgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHVwZGF0ZWRGaWxlOiBGaWxlVHlwZSkgPT4gdXBkYXRlZEZpbGUpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwgY29udGV4dCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwbG9hZEZpbGUgPSAoY29udGV4dCwgZmlsZTogRmlsZVR5cGUsIGJ1ZmZlcjogQnVmZmVyKSA9PiB7XG4gIGNvbnN0IHtzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdHRlZEZpbGUgPSBwYXJzZUZpbGUoZmlsZSk7XG4gIGNvbnN0IHtcbiAgICBkZXNjcmlwdGlvbixcbiAgICBmaWxlSWQsXG4gICAgZmlsZVR5cGUsXG4gICAgbmFtZSxcbiAgICB1cmxcbiAgfSA9IGZvcm1hdHRlZEZpbGU7XG4gIGNvbnN0IGZvcm1hdEZpbGVJZCA9IGZpbGVJZCB8fCBjcmVhdGVIYXNoKGBmaWxlLSR7c2Vzc2lvbklkfWApO1xuICBsZXQgdXBkYXRlZE5hbWUgPSBuYW1lO1xuXG4gIGlmKCF1cGRhdGVkTmFtZSAmJiAhIXVybCkge1xuICAgIHVwZGF0ZWROYW1lID0gdXJsLnN1YnN0cmluZyh1cmwubGFzdEluZGV4T2YoJy8nKSArIDEpO1xuICB9XG5cbiAgaWYoZmlsZVR5cGUgPT09ICdpbWFnZS9qcGVnJyB8fCBmaWxlVHlwZSA9PT0gJ2ltYWdlL3BuZycpIHtcbiAgICByZXR1cm4gcmVzaXplQW5kU2F2ZUltYWdlKGNvbnRleHQsIGZvcm1hdEZpbGVJZCwgYnVmZmVyLCBmaWxlVHlwZSlcbiAgICAgIC50aGVuKChyZXNpemVkSW1hZ2U6IEZpbGVUeXBlKSA9PiBpbnNlcnRGaWxlKGNvbnRleHQsIHtcbiAgICAgICAgLi4ucmVzaXplZEltYWdlLFxuICAgICAgICBfa2V5OiBmb3JtYXRGaWxlSWQsXG4gICAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgICBuYW1lOiB1cGRhdGVkTmFtZSxcbiAgICAgICAgdXNlcklkOiBzZXNzaW9uSWRcbiAgICAgIH0pKTtcbiAgfVxuXG4gIHJldHVybiBpbnNlcnRGaWxlKGNvbnRleHQsIHtcbiAgICAuLi5mb3JtYXR0ZWRGaWxlLFxuICAgIHVzZXJJZDogc2Vzc2lvbklkXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZEZpbGUgPSAoY29udGV4dDogQXBpQ29udGV4dCwgZmlsZTogRmlsZVR5cGUpOiBQcm9taXNlPEZpbGVUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbiA9ICdhZGRGaWxlJztcbiAgY29uc3Qge2Jhc2U2NCwgdXJsfSA9IGZpbGU7XG5cbiAgaWYoISF1cmwpIHtcbiAgICByZXR1cm4gaHR0cEdldCh1cmwpXG4gICAgICAudGhlbigoYm9keSkgPT4gdXBsb2FkRmlsZShjb250ZXh0LCBmaWxlLCBCdWZmZXIuZnJvbShib2R5LCAnYmluYXJ5JykpKVxuICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgbGFiZWw6IEVycm9yVHlwZXMuRklMRV9SRVFVRVNUXG4gICAgICB9LCBlcnJvciwgY29udGV4dCkpO1xuICB9IGVsc2UgaWYoISFiYXNlNjQpIHtcbiAgICBjb25zdCBidWZmZXI6IEJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGJhc2U2NCk7XG4gICAgcmV0dXJuIHVwbG9hZEZpbGUoY29udGV4dCwgZmlsZSwgYnVmZmVyKTtcbiAgfVxuXG4gIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoRXJyb3JUeXBlcy5GSUxFX1JFUVVJUkVEKSk7XG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VHaXBoeUl0ZW0gPSAoZ2lmSW1hZ2U6IGFueSk6IEltYWdlVHlwZSA9PiB7XG4gIGNvbnN0IHtcbiAgICBpZCxcbiAgICBpbWFnZXM6IHtcbiAgICAgIG9yaWdpbmFsOiB7dXJsID0gJyd9ID0ge30sXG4gICAgICBmaXhlZF9oZWlnaHRfc21hbGw6IHt1cmw6IHRodW1iID0gJyd9ID0ge31cbiAgICB9ID0ge31cbiAgfSA9IGdpZkltYWdlO1xuXG4gIGlmKCFpZCB8fCAhdXJsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGlkLFxuICAgIHRodW1iLFxuICAgIHR5cGU6ICdnaXBoeScsXG4gICAgdXJsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0R2lwaHlUcmVuZHMgPSAobGltaXQ6IG51bWJlciA9IDMwKTogUHJvbWlzZTxJbWFnZVR5cGVbXT4gPT4ge1xuICBjb25zdCBnaWZVcmwgPSBgJHtHSVBIWV9VUkx9L3RyZW5kaW5nP2FwaV9rZXk9JHtDb25maWcuZ2V0KCdnaXBoeS5rZXknKX0mbGltaXQ9JHtsaW1pdH1gO1xuXG4gIHJldHVybiBodHRwR2V0KGdpZlVybClcbiAgICAudGhlbigocmVzOiBSZXNwb25zZSkgPT4gcmVzLmpzb24oKSlcbiAgICAudGhlbigoanNvbjogYW55KSA9PiBqc29uPy5kYXRhPy5tYXAocGFyc2VHaXBoeUl0ZW0pLmZpbHRlcigoaXRlbSkgPT4gISFpdGVtKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0R2lwaHlTZWFyY2ggPSAocXVlcnk6IHN0cmluZywgbGltaXQ6IG51bWJlciA9IDMwKTogUHJvbWlzZTxJbWFnZVR5cGVbXT4gPT4ge1xuICBjb25zdCBmb3JtYXRRdWVyeSA9IGVuY29kZVVSSShxdWVyeSk7XG4gIGNvbnN0IGdpZlVybCA9IGAke0dJUEhZX1VSTH0vc2VhcmNoP3E9JHtmb3JtYXRRdWVyeX0mYXBpX2tleT0ke0NvbmZpZy5nZXQoJ2dpcGh5LmtleScpfSZsaW1pdD0ke2xpbWl0fWA7XG5cbiAgcmV0dXJuIGh0dHBHZXQoZ2lmVXJsKVxuICAgIC50aGVuKChyZXM6IFJlc3BvbnNlKSA9PiByZXMuanNvbigpKVxuICAgIC50aGVuKChqc29uOiBhbnkpID0+IGpzb24/LmRhdGE/Lm1hcChwYXJzZUdpcGh5SXRlbSkuZmlsdGVyKChpdGVtKSA9PiAhIWl0ZW0pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRZb3VUdWJlVHJlbmRzID0gKGxpbWl0OiBudW1iZXIgPSAzMCk6IFByb21pc2U8YW55W10+ID0+IHtcbiAgLy8gY29uc3QgYWN0aW9uID0gJ2dldFlvdVR1YmVUcmVuZHMnO1xuICBjb25zdCB5b3V0dWJlID0gZ2V0WW91VHViZSgpO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgeW91dHViZS52aWRlb3MubGlzdCh7XG4gICAgICBjaGFydDogJ21vc3RQb3B1bGFyJyxcbiAgICAgIG1heFJlc3VsdHM6IGxpbWl0LFxuICAgICAgcGFydDogWydzbmlwcGV0J10sXG4gICAgICByZWdpb25Db2RlOiAnVVMnXG4gICAgfSwgKGVycm9yOiBFcnJvciwgZGF0YTogYW55KSA9PiB7XG4gICAgICBpZihlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihFcnJvclR5cGVzLllPVVRVQkVfRVJST1IpKTtcbiAgICAgIH0gZWxzZSBpZihkYXRhKSB7XG4gICAgICAgIGNvbnN0IGxpc3QgPSBkYXRhLml0ZW1zLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgICAgICBpZDogaXRlbS5pZCxcbiAgICAgICAgICB0aHVtYjogaXRlbS5zbmlwcGV0LnRodW1ibmFpbHMuaGlnaC51cmwsXG4gICAgICAgICAgdHlwZTogJ3lvdXR1YmUnLFxuICAgICAgICAgIHVybDogYGh0dHA6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJHtpdGVtLmlkfWBcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIHJlc29sdmUobGlzdCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFlvdVR1YmVTZWFyY2ggPSAocXVlcnk6IHN0cmluZywgbGltaXQ6IG51bWJlciA9IDMwKTogUHJvbWlzZTxhbnlbXT4gPT4ge1xuICAvLyBjb25zdCBhY3Rpb24gPSAnZ2V0WW91VHViZVNlYXJjaCc7XG4gIGNvbnN0IHlvdXR1YmUgPSBnZXRZb3VUdWJlKCk7XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICB5b3V0dWJlLnNlYXJjaC5saXN0KHtcbiAgICAgIG1heFJlc3VsdHM6IGxpbWl0LFxuICAgICAgcGFydDogWydzbmlwcGV0J10sXG4gICAgICBxOiBxdWVyeSxcbiAgICAgIHJlZ2lvbkNvZGU6ICdVUydcbiAgICB9LCAoZXJyb3I6IEVycm9yLCBkYXRhOiBhbnkpID0+IHtcbiAgICAgIGlmKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICByZWplY3QobmV3IEVycm9yKEVycm9yVHlwZXMuWU9VVFVCRV9FUlJPUikpO1xuICAgICAgfSBlbHNlIGlmKGRhdGEpIHtcbiAgICAgICAgY29uc3Qge2l0ZW1zfSA9IGRhdGE7XG4gICAgICAgIGNvbnN0IGxpc3QgPSBpdGVtcy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICBjb25zdCBpZCA9IHR5cGVvZiBpdGVtLmlkID09PSAnc3RyaW5nJyA/IGl0ZW0uaWQgOiBpdGVtLmlkPy52aWRlb0lkO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIHRodW1iOiBpdGVtLnNuaXBwZXQudGh1bWJuYWlscy5oaWdoLnVybCxcbiAgICAgICAgICAgIHR5cGU6ICd5b3V0dWJlJyxcbiAgICAgICAgICAgIHVybDogYGh0dHA6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJHtpZH1gXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmVzb2x2ZShsaXN0KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UGF0aFVzZXJGaWxlcyA9ICh1c2VySWQ6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiBgdXNlcnMvJHt1c2VySWR9L2ZpbGVzLyR7ZmlsZW5hbWV9YDtcblxuZXhwb3J0IGNvbnN0IGxpbmtGaWxlcyA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBwb3N0RG9jSWQ6IHN0cmluZywgZmlsZXM6IEZpbGVUeXBlW10pOiBQcm9taXNlPGFueT4gPT5cbiAgUHJvbWlzZS5hbGwoXG4gICAgZmlsZXMubWFwKChmaWxlOiBGaWxlVHlwZSkgPT4gdXBzZXJ0RmlsZShjb250ZXh0LCBmaWxlKVxuICAgICAgLnRoZW4oKGZpbGU6IEZpbGVUeXBlKSA9PiBjcmVhdGVQb3N0RWRnZShjb250ZXh0LCBwb3N0RG9jSWQsIGZpbGUuaWQsICdpc1Bvc3RlZCcsIHt0eXBlOiBmaWxlLmZpbGVUeXBlfSkpKVxuICApO1xuXG5leHBvcnQgY29uc3QgdXBkYXRlRmlsZXMgPSAoY29udGV4dDogQXBpQ29udGV4dCwgcG9zdERvY0lkOiBzdHJpbmcsIGZpbGVzOiBGaWxlVHlwZVtdKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgY29uc3QgYWN0aW9uID0gJ3VwZGF0ZUZpbGVzJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBlZGdlQ29sbGVjdGlvbjogRWRnZUNvbGxlY3Rpb24gPSB1c2VEYihkYXRhYmFzZU5hbWUpLmNvbGxlY3Rpb24oJ2lzUG9zdGVkJyk7XG5cbiAgcmV0dXJuIGVkZ2VDb2xsZWN0aW9uLmluRWRnZXMocG9zdERvY0lkLCB7fSlcbiAgICAudGhlbigoZWRnZXM6IGFueSkgPT4ge1xuICAgICAgaWYoZWRnZXMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChcbiAgICAgICAgICBlZGdlcy5tYXAoKGVkZ2UpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHtfa2V5OiBlZGdlS2V5fSA9IGVkZ2U7XG4gICAgICAgICAgICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFJFTU9WRSB7X2tleToke2VkZ2VLZXl9fSBJTiBpc1Bvc3RlZGA7XG5cbiAgICAgICAgICAgIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSkpXG4gICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgaWYoZmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHJldHVybiBsaW5rRmlsZXMoY29udGV4dCwgcG9zdERvY0lkLCBmaWxlcykudGhlbigoKSA9PiBmaWxlcyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZihmaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGxpbmtGaWxlcyhjb250ZXh0LCBwb3N0RG9jSWQsIGZpbGVzKVxuICAgICAgICAgIC50aGVuKCgpID0+IGZpbGVzKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpbGVzO1xuICAgIH0pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwgY29udGV4dCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGVuY29kZUJhc2U2NCA9IChidWZmZXI6IEJ1ZmZlcik6IHN0cmluZyA9PiBCdWZmZXIuZnJvbShidWZmZXIpLnRvU3RyaW5nKCdiYXNlNjQnKTtcblxuZXhwb3J0IGNvbnN0IGRlY29kZUJhc2U2NCA9IChkYXRhU3RyaW5nOiBzdHJpbmcpOiBhbnkgPT4ge1xuICAvLyBjb25zdCBhY3Rpb24gPSAnZGVjb2RlQmFzZTY0JztcbiAgY29uc3QgZ2V0RGF0YSA9IChzdHI6IHN0cmluZykgPT4gc3RyLm1hdGNoKC9eZGF0YTooW0EtWmEtei0rL10rKTtiYXNlNjQsKC4rKSQvKSB8fCBbXTtcbiAgbGV0IG1hdGNoZXMgPSBnZXREYXRhKGRhdGFTdHJpbmcpO1xuXG4gIGlmKG1hdGNoZXMubGVuZ3RoICE9PSAzKSB7XG4gICAgbWF0Y2hlcyA9IGdldERhdGEoZGVjb2RlVVJJQ29tcG9uZW50KGRhdGFTdHJpbmcpKTtcblxuICAgIGlmKG1hdGNoZXMubGVuZ3RoICE9PSAzKSB7XG4gICAgICB0aHJvdyBFcnJvcihFcnJvclR5cGVzLklOVkFMSURfSU5QVVQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZGF0YTogQnVmZmVyLmZyb20obWF0Y2hlc1syXSwgJ2Jhc2U2NCcpLFxuICAgIHR5cGU6IG1hdGNoZXNbMV1cbiAgfTtcbn07XG4iXSwibmFtZXMiOlsiZ2V0IiwiaHR0cEdldCIsImNyZWF0ZUhhc2giLCJhcWwiLCJwYXJzZUZpbGUiLCJDb25maWciLCJFcnJvclR5cGVzIiwibG9nRXJyb3IiLCJ1c2VEYiIsImFkZEl0ZW0iLCJyZXNpemVBbmRTYXZlSW1hZ2UiLCJjcmVhdGVQb3N0RWRnZSIsImV2ZW50Q2F0ZWdvcnkiLCJHSVBIWV9VUkwiLCJZT1VUVUJFX1VSTCIsImNyZWF0ZVlvdVR1YmVMaXN0IiwicmVzb3VyY2UiLCJvcHRpb25zIiwiY2FsbGJhY2siLCJ1cmwiLCJVUkwiLCJzZWFyY2hQYXJhbXMiLCJzZXQiLCJrZXkiLCJ2YWx1ZSIsIk9iamVjdCIsImVudHJpZXMiLCJBcnJheSIsImlzQXJyYXkiLCJqb2luIiwiU3RyaW5nIiwidG9TdHJpbmciLCJ0aGVuIiwicmVzcG9uc2UiLCJqc29uIiwiZGF0YSIsInVuZGVmaW5lZCIsImNhdGNoIiwiZXJyb3IiLCJnZXRZb3VUdWJlIiwic2VhcmNoIiwibGlzdCIsInZpZGVvcyIsImluc2VydEZpbGUiLCJjb250ZXh0IiwiZmlsZSIsImZvcm1hdHRlZEZpbGUiLCJ1cHNlcnRGaWxlIiwiYWN0aW9uIiwiZGF0YWJhc2VOYW1lIiwiZmlsZUlkIiwibm93IiwiRGF0ZSIsImluc2VydCIsIl9rZXkiLCJhZGRlZCIsIm1vZGlmaWVkIiwidXBkYXRlIiwiYXFsUXJ5IiwicXVlcnkiLCJjdXJzb3IiLCJuZXh0IiwidXBkYXRlZEZpbGUiLCJjYXRlZ29yeSIsImxhYmVsIiwiREFUQUJBU0VfRVJST1IiLCJ1cGxvYWRGaWxlIiwiYnVmZmVyIiwic2Vzc2lvbiIsInVzZXJJZCIsInNlc3Npb25JZCIsImRlc2NyaXB0aW9uIiwiZmlsZVR5cGUiLCJuYW1lIiwiZm9ybWF0RmlsZUlkIiwidXBkYXRlZE5hbWUiLCJzdWJzdHJpbmciLCJsYXN0SW5kZXhPZiIsInJlc2l6ZWRJbWFnZSIsImFkZEZpbGUiLCJiYXNlNjQiLCJib2R5IiwiQnVmZmVyIiwiZnJvbSIsIkZJTEVfUkVRVUVTVCIsIlByb21pc2UiLCJyZWplY3QiLCJFcnJvciIsIkZJTEVfUkVRVUlSRUQiLCJwYXJzZUdpcGh5SXRlbSIsImdpZkltYWdlIiwiaWQiLCJpbWFnZXMiLCJvcmlnaW5hbCIsImZpeGVkX2hlaWdodF9zbWFsbCIsInRodW1iIiwidHlwZSIsImdldEdpcGh5VHJlbmRzIiwibGltaXQiLCJnaWZVcmwiLCJyZXMiLCJtYXAiLCJmaWx0ZXIiLCJpdGVtIiwiZ2V0R2lwaHlTZWFyY2giLCJmb3JtYXRRdWVyeSIsImVuY29kZVVSSSIsImdldFlvdVR1YmVUcmVuZHMiLCJ5b3V0dWJlIiwicmVzb2x2ZSIsImNoYXJ0IiwibWF4UmVzdWx0cyIsInBhcnQiLCJyZWdpb25Db2RlIiwiY29uc29sZSIsIllPVVRVQkVfRVJST1IiLCJpdGVtcyIsInNuaXBwZXQiLCJ0aHVtYm5haWxzIiwiaGlnaCIsImdldFlvdVR1YmVTZWFyY2giLCJxIiwidmlkZW9JZCIsImdldFBhdGhVc2VyRmlsZXMiLCJmaWxlbmFtZSIsImxpbmtGaWxlcyIsInBvc3REb2NJZCIsImZpbGVzIiwiYWxsIiwidXBkYXRlRmlsZXMiLCJlZGdlQ29sbGVjdGlvbiIsImNvbGxlY3Rpb24iLCJpbkVkZ2VzIiwiZWRnZXMiLCJsZW5ndGgiLCJlZGdlIiwiZWRnZUtleSIsImVuY29kZUJhc2U2NCIsImRlY29kZUJhc2U2NCIsImRhdGFTdHJpbmciLCJnZXREYXRhIiwic3RyIiwibWF0Y2giLCJtYXRjaGVzIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiSU5WQUxJRF9JTlBVVCJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBUUEsT0FBT0MsT0FBTyxRQUFPLG9CQUFvQjtBQUNqRCxTQUFRQyxVQUFVLFFBQU8sK0JBQStCO0FBQ3hELFNBQVFDLEdBQUcsUUFBTyxXQUFXO0FBRzdCLFNBQVFDLFNBQVMsUUFBTyw2QkFBNkI7QUFDckQsU0FBUUMsTUFBTSxRQUFPLGVBQWU7QUFFcEMsU0FBUUMsVUFBVSxRQUFPLDBCQUEwQjtBQUduRCxTQUFRQyxRQUFRLFFBQU8sNkJB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
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3IvcGFja2FnZXMvcmVha3Rvci9zcmMvYWN0aW9ucy9maWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2UgaXMgc3ViamVjdCB0byB0aGUgYWNjb21wYW55aW5nIGNvbW1lcmNpYWwgTElDRU5TRS5cbiAqL1xuaW1wb3J0IHtnZXQgYXMgaHR0cEdldH0gZnJvbSAnQG5sYWJzL3JpcC1odW50ZXInO1xuaW1wb3J0IHtjcmVhdGVIYXNofSBmcm9tICdAbmxhYnMvdXRpbHMvcGFyc2Vycy9zdHJpbmdzJztcbmltcG9ydCB7YXFsfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9hcWwnO1xuXG5pbXBvcnQge3BhcnNlRmlsZX0gZnJvbSAnLi4vYWRhcHRlcnMvZmlsZUFkYXB0ZXIuanMnO1xuaW1wb3J0IHtDb25maWd9IGZyb20gJy4uL2NvbmZpZy5qcyc7XG5pbXBvcnQge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgudHlwZXMuanMnO1xuaW1wb3J0IHtFcnJvclR5cGVzfSBmcm9tICcuLi90eXBlcy9lcnJvci50eXBlcy5qcyc7XG5pbXBvcnQge0ZpbGVUeXBlfSBmcm9tICcuLi90eXBlcy9maWxlcy50eXBlcy5qcyc7XG5pbXBvcnQge0ltYWdlVHlwZX0gZnJvbSAnLi4vdHlwZXMvaW1hZ2VzLnR5cGVzLmpzJztcbmltcG9ydCB7bG9nRXJyb3J9IGZyb20gJy4uL3V0aWxzL2FuYWx5dGljc1V0aWxzLmpzJztcbmltcG9ydCB7dXNlRGJ9IGZyb20gJy4uL3V0aWxzL2FyYW5nb2RiVXRpbHMuanMnO1xuaW1wb3J0IHthZGRJdGVtfSBmcm9tICcuL2NydWQuanMnO1xuaW1wb3J0IHtyZXNpemVBbmRTYXZlSW1hZ2V9IGZyb20gJy4vaW1hZ2VzLmpzJztcbmltcG9ydCB7Y3JlYXRlUG9zdEVkZ2V9IGZyb20gJy4vcG9zdHMuanMnO1xuXG5pbXBvcnQgdHlwZSB7RWRnZUNvbGxlY3Rpb259IGZyb20gJ2FyYW5nb2pzL2NvbGxlY3Rpb25zJztcblxuY29uc3QgZXZlbnRDYXRlZ29yeSA9ICdmaWxlcyc7XG5cbmV4cG9ydCBjb25zdCBHSVBIWV9VUkwgPSAnaHR0cDovL2FwaS5naXBoeS5jb20vdjEvZ2lmcyc7XG5leHBvcnQgY29uc3QgWU9VVFVCRV9VUkwgPSAnaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20veW91dHViZS92Myc7XG5cbnR5cGUgWW91VHViZUxpc3RSZXNwb25zZSA9IFJlYWRvbmx5PHtcbiAgcmVhZG9ubHkgaXRlbXM/OiBBcnJheTx7XG4gICAgcmVhZG9ubHkgaWQ/OiBzdHJpbmcgfCB7cmVhZG9ubHkgdmlkZW9JZD86IHN0cmluZ307XG4gICAgcmVhZG9ubHkgc25pcHBldD86IHtyZWFkb25seSB0aHVtYm5haWxzPzoge3JlYWRvbmx5IGhpZ2g/OiB7cmVhZG9ubHkgdXJsPzogc3RyaW5nfX19O1xuICB9Pjtcbn0+O1xuXG50eXBlIFlvdVR1YmVMaXN0Q2FsbGJhY2sgPSAoZXJyb3I/OiBFcnJvciwgZGF0YT86IFlvdVR1YmVMaXN0UmVzcG9uc2UpID0+IHZvaWQ7XG5cbmNvbnN0IGNyZWF0ZVlvdVR1YmVMaXN0ID0gKHJlc291cmNlOiAnc2VhcmNoJyB8ICd2aWRlb3MnKSA9PiAoXG4gIG9wdGlvbnM6IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IHJlYWRvbmx5IHN0cmluZ1tdPj4sXG4gIGNhbGxiYWNrOiBZb3VUdWJlTGlzdENhbGxiYWNrXG4pOiB2b2lkID0+IHtcbiAgY29uc3QgdXJsID0gbmV3IFVSTChgJHtZT1VUVUJFX1VSTH0vJHtyZXNvdXJjZX1gKTtcbiAgdXJsLnNlYXJjaFBhcmFtcy5zZXQoJ2tleScsIENvbmZpZy5nZXQoJ2dvb2dsZS5rZXknKSk7XG5cbiAgZm9yKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhvcHRpb25zKSkge1xuICAgIHVybC5zZWFyY2hQYXJhbXMuc2V0KGtleSwgQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5qb2luKCcsJykgOiBTdHJpbmcodmFsdWUpKTtcbiAgfVxuXG4gIHZvaWQgaHR0cEdldCh1cmwudG9TdHJpbmcoKSlcbiAgICAudGhlbigocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiByZXNwb25zZS5qc29uKCkpXG4gICAgLnRoZW4oKGRhdGE6IFlvdVR1YmVMaXN0UmVzcG9uc2UpID0+IGNhbGxiYWNrKHVuZGVmaW5lZCwgZGF0YSkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGNhbGxiYWNrKGVycm9yKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0WW91VHViZSA9ICgpID0+ICh7XG4gIHNlYXJjaDoge2xpc3Q6IGNyZWF0ZVlvdVR1YmVMaXN0KCdzZWFyY2gnKX0sXG4gIHZpZGVvczoge2xpc3Q6IGNyZWF0ZVlvdVR1YmVMaXN0KCd2aWRlb3MnKX1cbn0pO1xuXG5leHBvcnQgY29uc3QgaW5zZXJ0RmlsZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBmaWxlOiBGaWxlVHlwZSkgPT4ge1xuICBjb25zdCBmb3JtYXR0ZWRGaWxlID0gcGFyc2VGaWxlKGZpbGUpO1xuICByZXR1cm4gYWRkSXRlbTxGaWxlVHlwZT4oY29udGV4dCwgJ2ZpbGVzJywgZm9ybWF0dGVkRmlsZSk7XG59O1xuXG5leHBvcnQgY29uc3QgdXBzZXJ0RmlsZSA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBmaWxlOiBGaWxlVHlwZSk6IFByb21pc2U8RmlsZVR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uID0gJ3Vwc2VydEZpbGUnO1xuICBjb25zdCB7ZGF0YWJhc2VOYW1lfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdHRlZEZpbGUgPSBwYXJzZUZpbGUoZmlsZSk7XG4gIGNvbnN0IHtmaWxlSWR9ID0gZm9ybWF0dGVkRmlsZTtcbiAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgaW5zZXJ0OiBhbnkgPSB7XG4gICAgLi4uZm9ybWF0dGVkRmlsZSxcbiAgICBfa2V5OiBmaWxlSWQsXG4gICAgYWRkZWQ6IG5vdyxcbiAgICBtb2RpZmllZDogbm93XG4gIH07XG4gIGNvbnN0IHVwZGF0ZTogYW55ID0ge1xuICAgIC4uLmZvcm1hdHRlZEZpbGUsXG4gICAgX2tleTogZmlsZUlkLFxuICAgIG1vZGlmaWVkOiBub3dcbiAgfTtcblxuICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQU0VSVCB7X2tleTogJHtmaWxlSWR9fVxuICAgIElOU0VSVCAke2luc2VydH1cbiAgICBVUERBVEUgJHt1cGRhdGV9XG4gICAgSU4gZmlsZXMgUkVUVVJOIE5FV2A7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlTmFtZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHVwZGF0ZWRGaWxlOiBGaWxlVHlwZSkgPT4gdXBkYXRlZEZpbGUpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwgY29udGV4dCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwbG9hZEZpbGUgPSAoY29udGV4dCwgZmlsZTogRmlsZVR5cGUsIGJ1ZmZlcjogQnVmZmVyKSA9PiB7XG4gIGNvbnN0IHtzZXNzaW9uOiB7dXNlcklkOiBzZXNzaW9uSWR9fSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdHRlZEZpbGUgPSBwYXJzZUZpbGUoZmlsZSk7XG4gIGNvbnN0IHtcbiAgICBkZXNjcmlwdGlvbixcbiAgICBmaWxlSWQsXG4gICAgZmlsZVR5cGUsXG4gICAgbmFtZSxcbiAgICB1cmxcbiAgfSA9IGZvcm1hdHRlZEZpbGU7XG4gIGNvbnN0IGZvcm1hdEZpbGVJZCA9IGZpbGVJZCB8fCBjcmVhdGVIYXNoKGBmaWxlLSR7c2Vzc2lvbklkfWApO1xuICBsZXQgdXBkYXRlZE5hbWUgPSBuYW1lO1xuXG4gIGlmKCF1cGRhdGVkTmFtZSAmJiAhIXVybCkge1xuICAgIHVwZGF0ZWROYW1lID0gdXJsLnN1YnN0cmluZyh1cmwubGFzdEluZGV4T2YoJy8nKSArIDEpO1xuICB9XG5cbiAgaWYoZmlsZVR5cGUgPT09ICdpbWFnZS9qcGVnJyB8fCBmaWxlVHlwZSA9PT0gJ2ltYWdlL3BuZycpIHtcbiAgICByZXR1cm4gcmVzaXplQW5kU2F2ZUltYWdlKGNvbnRleHQsIGZvcm1hdEZpbGVJZCwgYnVmZmVyLCBmaWxlVHlwZSlcbiAgICAgIC50aGVuKChyZXNpemVkSW1hZ2U6IEZpbGVUeXBlKSA9PiBpbnNlcnRGaWxlKGNvbnRleHQsIHtcbiAgICAgICAgLi4ucmVzaXplZEltYWdlLFxuICAgICAgICBfa2V5OiBmb3JtYXRGaWxlSWQsXG4gICAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgICBuYW1lOiB1cGRhdGVkTmFtZSxcbiAgICAgICAgdXNlcklkOiBzZXNzaW9uSWRcbiAgICAgIH0pKTtcbiAgfVxuXG4gIHJldHVybiBpbnNlcnRGaWxlKGNvbnRleHQsIHtcbiAgICAuLi5mb3JtYXR0ZWRGaWxlLFxuICAgIHVzZXJJZDogc2Vzc2lvbklkXG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZEZpbGUgPSAoY29udGV4dDogQXBpQ29udGV4dCwgZmlsZTogRmlsZVR5cGUpOiBQcm9taXNlPEZpbGVUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbiA9ICdhZGRGaWxlJztcbiAgY29uc3Qge2Jhc2U2NCwgdXJsfSA9IGZpbGU7XG5cbiAgaWYoISF1cmwpIHtcbiAgICByZXR1cm4gaHR0cEdldCh1cmwpXG4gICAgICAudGhlbigoYm9keSkgPT4gdXBsb2FkRmlsZShjb250ZXh0LCBmaWxlLCBCdWZmZXIuZnJvbShib2R5LCAnYmluYXJ5JykpKVxuICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgbGFiZWw6IEVycm9yVHlwZXMuRklMRV9SRVFVRVNUXG4gICAgICB9LCBlcnJvciwgY29udGV4dCkpO1xuICB9IGVsc2UgaWYoISFiYXNlNjQpIHtcbiAgICBjb25zdCBidWZmZXI6IEJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGJhc2U2NCk7XG4gICAgcmV0dXJuIHVwbG9hZEZpbGUoY29udGV4dCwgZmlsZSwgYnVmZmVyKTtcbiAgfVxuXG4gIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoRXJyb3JUeXBlcy5GSUxFX1JFUVVJUkVEKSk7XG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VHaXBoeUl0ZW0gPSAoZ2lmSW1hZ2U6IGFueSk6IEltYWdlVHlwZSA9PiB7XG4gIGNvbnN0IHtcbiAgICBpZCxcbiAgICBpbWFnZXM6IHtcbiAgICAgIG9yaWdpbmFsOiB7dXJsID0gJyd9ID0ge30sXG4gICAgICBmaXhlZF9oZWlnaHRfc21hbGw6IHt1cmw6IHRodW1iID0gJyd9ID0ge31cbiAgICB9ID0ge31cbiAgfSA9IGdpZkltYWdlO1xuXG4gIGlmKCFpZCB8fCAhdXJsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGlkLFxuICAgIHRodW1iLFxuICAgIHR5cGU6ICdnaXBoeScsXG4gICAgdXJsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0R2lwaHlUcmVuZHMgPSAobGltaXQ6IG51bWJlciA9IDMwKTogUHJvbWlzZTxJbWFnZVR5cGVbXT4gPT4ge1xuICBjb25zdCBnaWZVcmwgPSBgJHtHSVBIWV9VUkx9L3RyZW5kaW5nP2FwaV9rZXk9JHtDb25maWcuZ2V0KCdnaXBoeS5rZXknKX0mbGltaXQ9JHtsaW1pdH1gO1xuXG4gIHJldHVybiBodHRwR2V0KGdpZlVybClcbiAgICAudGhlbigocmVzOiBSZXNwb25zZSkgPT4gcmVzLmpzb24oKSlcbiAgICAudGhlbigoanNvbjogYW55KSA9PiBqc29uPy5kYXRhPy5tYXAocGFyc2VHaXBoeUl0ZW0pLmZpbHRlcigoaXRlbSkgPT4gISFpdGVtKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0R2lwaHlTZWFyY2ggPSAocXVlcnk6IHN0cmluZywgbGltaXQ6IG51bWJlciA9IDMwKTogUHJvbWlzZTxJbWFnZVR5cGVbXT4gPT4ge1xuICBjb25zdCBmb3JtYXRRdWVyeSA9IGVuY29kZVVSSShxdWVyeSk7XG4gIGNvbnN0IGdpZlVybCA9IGAke0dJUEhZX1VSTH0vc2VhcmNoP3E9JHtmb3JtYXRRdWVyeX0mYXBpX2tleT0ke0NvbmZpZy5nZXQoJ2dpcGh5LmtleScpfSZsaW1pdD0ke2xpbWl0fWA7XG5cbiAgcmV0dXJuIGh0dHBHZXQoZ2lmVXJsKVxuICAgIC50aGVuKChyZXM6IFJlc3BvbnNlKSA9PiByZXMuanNvbigpKVxuICAgIC50aGVuKChqc29uOiBhbnkpID0+IGpzb24/LmRhdGE/Lm1hcChwYXJzZUdpcGh5SXRlbSkuZmlsdGVyKChpdGVtKSA9PiAhIWl0ZW0pKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRZb3VUdWJlVHJlbmRzID0gKGxpbWl0OiBudW1iZXIgPSAzMCk6IFByb21pc2U8YW55W10+ID0+IHtcbiAgLy8gY29uc3QgYWN0aW9uID0gJ2dldFlvdVR1YmVUcmVuZHMnO1xuICBjb25zdCB5b3V0dWJlID0gZ2V0WW91VHViZSgpO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgeW91dHViZS52aWRlb3MubGlzdCh7XG4gICAgICBjaGFydDogJ21vc3RQb3B1bGFyJyxcbiAgICAgIG1heFJlc3VsdHM6IGxpbWl0LFxuICAgICAgcGFydDogWydzbmlwcGV0J10sXG4gICAgICByZWdpb25Db2RlOiAnVVMnXG4gICAgfSwgKGVycm9yOiBFcnJvciwgZGF0YTogYW55KSA9PiB7XG4gICAgICBpZihlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihFcnJvclR5cGVzLllPVVRVQkVfRVJST1IpKTtcbiAgICAgIH0gZWxzZSBpZihkYXRhKSB7XG4gICAgICAgIGNvbnN0IGxpc3QgPSBkYXRhLml0ZW1zLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgICAgICBpZDogaXRlbS5pZCxcbiAgICAgICAgICB0aHVtYjogaXRlbS5zbmlwcGV0LnRodW1ibmFpbHMuaGlnaC51cmwsXG4gICAgICAgICAgdHlwZTogJ3lvdXR1YmUnLFxuICAgICAgICAgIHVybDogYGh0dHA6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJHtpdGVtLmlkfWBcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIHJlc29sdmUobGlzdCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFlvdVR1YmVTZWFyY2ggPSAocXVlcnk6IHN0cmluZywgbGltaXQ6IG51bWJlciA9IDMwKTogUHJvbWlzZTxhbnlbXT4gPT4ge1xuICAvLyBjb25zdCBhY3Rpb24gPSAnZ2V0WW91VHViZVNlYXJjaCc7XG4gIGNvbnN0IHlvdXR1YmUgPSBnZXRZb3VUdWJlKCk7XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICB5b3V0dWJlLnNlYXJjaC5saXN0KHtcbiAgICAgIG1heFJlc3VsdHM6IGxpbWl0LFxuICAgICAgcGFydDogWydzbmlwcGV0J10sXG4gICAgICBxOiBxdWVyeSxcbiAgICAgIHJlZ2lvbkNvZGU6ICdVUydcbiAgICB9LCAoZXJyb3I6IEVycm9yLCBkYXRhOiBhbnkpID0+IHtcbiAgICAgIGlmKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICByZWplY3QobmV3IEVycm9yKEVycm9yVHlwZXMuWU9VVFVCRV9FUlJPUikpO1xuICAgICAgfSBlbHNlIGlmKGRhdGEpIHtcbiAgICAgICAgY29uc3Qge2l0ZW1zfSA9IGRhdGE7XG4gICAgICAgIGNvbnN0IGxpc3QgPSBpdGVtcy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICBjb25zdCBpZCA9IHR5cGVvZiBpdGVtLmlkID09PSAnc3RyaW5nJyA/IGl0ZW0uaWQgOiBpdGVtLmlkPy52aWRlb0lkO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIHRodW1iOiBpdGVtLnNuaXBwZXQudGh1bWJuYWlscy5oaWdoLnVybCxcbiAgICAgICAgICAgIHR5cGU6ICd5b3V0dWJlJyxcbiAgICAgICAgICAgIHVybDogYGh0dHA6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJHtpZH1gXG4gICAgICAgICAgfTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmVzb2x2ZShsaXN0KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UGF0aFVzZXJGaWxlcyA9ICh1c2VySWQ6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiBgdXNlcnMvJHt1c2VySWR9L2ZpbGVzLyR7ZmlsZW5hbWV9YDtcblxuZXhwb3J0IGNvbnN0IGxpbmtGaWxlcyA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBwb3N0RG9jSWQ6IHN0cmluZywgZmlsZXM6IEZpbGVUeXBlW10pOiBQcm9taXNlPGFueT4gPT5cbiAgUHJvbWlzZS5hbGwoXG4gICAgZmlsZXMubWFwKChmaWxlOiBGaWxlVHlwZSkgPT4gdXBzZXJ0RmlsZShjb250ZXh0LCBmaWxlKVxuICAgICAgLnRoZW4oKGZpbGU6IEZpbGVUeXBlKSA9PiBjcmVhdGVQb3N0RWRnZShjb250ZXh0LCBwb3N0RG9jSWQsIGZpbGUuaWQsICdpc1Bvc3RlZCcsIHt0eXBlOiBmaWxlLmZpbGVUeXBlfSkpKVxuICApO1xuXG5leHBvcnQgY29uc3QgdXBkYXRlRmlsZXMgPSAoY29udGV4dDogQXBpQ29udGV4dCwgcG9zdERvY0lkOiBzdHJpbmcsIGZpbGVzOiBGaWxlVHlwZVtdKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgY29uc3QgYWN0aW9uID0gJ3VwZGF0ZUZpbGVzJztcbiAgY29uc3Qge2RhdGFiYXNlTmFtZX0gPSBjb250ZXh0O1xuICBjb25zdCBlZGdlQ29sbGVjdGlvbjogRWRnZUNvbGxlY3Rpb24gPSB1c2VEYihkYXRhYmFzZU5hbWUpLmNvbGxlY3Rpb24oJ2lzUG9zdGVkJyk7XG5cbiAgcmV0dXJuIGVkZ2VDb2xsZWN0aW9uLmluRWRnZXMocG9zdERvY0lkLCB7fSlcbiAgICAudGhlbigoZWRnZXM6IGFueSkgPT4ge1xuICAgICAgaWYoZWRnZXMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChcbiAgICAgICAgICBlZGdlcy5tYXAoKGVkZ2UpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHtfa2V5OiBlZGdlS2V5fSA9IGVkZ2U7XG4gICAgICAgICAgICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFJFTU9WRSB7X2tleToke2VkZ2VLZXl9fSBJTiBpc1Bvc3RlZGA7XG5cbiAgICAgICAgICAgIHJldHVybiB1c2VEYihkYXRhYmFzZU5hbWUpLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSkpXG4gICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgaWYoZmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHJldHVybiBsaW5rRmlsZXMoY29udGV4dCwgcG9zdERvY0lkLCBmaWxlcykudGhlbigoKSA9PiBmaWxlcyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZihmaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIGxpbmtGaWxlcyhjb250ZXh0LCBwb3N0RG9jSWQsIGZpbGVzKVxuICAgICAgICAgIC50aGVuKCgpID0+IGZpbGVzKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpbGVzO1xuICAgIH0pXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6IEVycm9yVHlwZXMuREFUQUJBU0VfRVJST1JcbiAgICB9LCBlcnJvciwgY29udGV4dCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGVuY29kZUJhc2U2NCA9IChidWZmZXI6IEJ1ZmZlcik6IHN0cmluZyA9PiBCdWZmZXIuZnJvbShidWZmZXIpLnRvU3RyaW5nKCdiYXNlNjQnKTtcblxuZXhwb3J0IGNvbnN0IGRlY29kZUJhc2U2NCA9IChkYXRhU3RyaW5nOiBzdHJpbmcpOiBhbnkgPT4ge1xuICAvLyBjb25zdCBhY3Rpb24gPSAnZGVjb2RlQmFzZTY0JztcbiAgY29uc3QgZ2V0RGF0YSA9IChzdHI6IHN0cmluZykgPT4gc3RyLm1hdGNoKC9eZGF0YTooW0EtWmEtei0rL10rKTtiYXNlNjQsKC4rKSQvKSB8fCBbXTtcbiAgbGV0IG1hdGNoZXMgPSBnZXREYXRhKGRhdGFTdHJpbmcpO1xuXG4gIGlmKG1hdGNoZXMubGVuZ3RoICE9PSAzKSB7XG4gICAgbWF0Y2hlcyA9IGdldERhdGEoZGVjb2RlVVJJQ29tcG9uZW50KGRhdGFTdHJpbmcpKTtcblxuICAgIGlmKG1hdGNoZXMubGVuZ3RoICE9PSAzKSB7XG4gICAgICB0aHJvdyBFcnJvcihFcnJvclR5cGVzLklOVkFMSURfSU5QVVQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZGF0YTogQnVmZmVyLmZyb20obWF0Y2hlc1syXSwgJ2Jhc2U2NCcpLFxuICAgIHR5cGU6IG1hdGNoZXNbMV1cbiAgfTtcbn07XG4iXSwibmFtZXMiOlsiZ2V0IiwiaHR0cEdldCIsImNyZWF0ZUhhc2giLCJhcWwiLCJwYXJzZUZpbGUiLCJDb25maWciLCJFcnJvclR5cGVzIiwibG9nRXJyb3IiLCJ1c2VEYiIsImFkZEl0ZW0iLCJyZXNpemVBbmRTYXZlSW1hZ2UiLCJjcmVhdGVQb3N0RWRnZSIsImV2ZW50Q2F0ZWdvcnkiLCJHSVBIWV9VUkwiLCJZT1VUVUJFX1VSTCIsImNyZWF0ZVlvdVR1YmVMaXN0IiwicmVzb3VyY2UiLCJvcHRpb25zIiwiY2FsbGJhY2siLCJ1cmwiLCJVUkwiLCJzZWFyY2hQYXJhbXMiLCJzZXQiLCJrZXkiLCJ2YWx1ZSIsIk9iamVjdCIsImVudHJpZXMiLCJBcnJheSIsImlzQXJyYXkiLCJqb2luIiwiU3RyaW5nIiwidG9TdHJpbmciLCJ0aGVuIiwicmVzcG9uc2UiLCJqc29uIiwiZGF0YSIsInVuZGVmaW5lZCIsImNhdGNoIiwiZXJyb3IiLCJnZXRZb3VUdWJlIiwic2VhcmNoIiwibGlzdCIsInZpZGVvcyIsImluc2VydEZpbGUiLCJjb250ZXh0IiwiZmlsZSIsImZvcm1hdHRlZEZpbGUiLCJ1cHNlcnRGaWxlIiwiYWN0aW9uIiwiZGF0YWJhc2VOYW1lIiwiZmlsZUlkIiwibm93IiwiRGF0ZSIsImluc2VydCIsIl9rZXkiLCJhZGRlZCIsIm1vZGlmaWVkIiwidXBkYXRlIiwiYXFsUXJ5IiwicXVlcnkiLCJjdXJzb3IiLCJuZXh0IiwidXBkYXRlZEZpbGUiLCJjYXRlZ29yeSIsImxhYmVsIiwiREFUQUJBU0VfRVJST1IiLCJ1cGxvYWRGaWxlIiwiYnVmZmVyIiwic2Vzc2lvbiIsInVzZXJJZCIsInNlc3Npb25JZCIsImRlc2NyaXB0aW9uIiwiZmlsZVR5cGUiLCJuYW1lIiwiZm9ybWF0RmlsZUlkIiwidXBkYXRlZE5hbWUiLCJzdWJzdHJpbmciLCJsYXN0SW5kZXhPZiIsInJlc2l6ZWRJbWFnZSIsImFkZEZpbGUiLCJiYXNlNjQiLCJib2R5IiwiQnVmZmVyIiwiZnJvbSIsIkZJTEVfUkVRVUVTVCIsIlByb21pc2UiLCJyZWplY3QiLCJFcnJvciIsIkZJTEVfUkVRVUlSRUQiLCJwYXJzZUdpcGh5SXRlbSIsImdpZkltYWdlIiwiaWQiLCJpbWFnZXMiLCJvcmlnaW5hbCIsImZpeGVkX2hlaWdodF9zbWFsbCIsInRodW1iIiwidHlwZSIsImdldEdpcGh5VHJlbmRzIiwibGltaXQiLCJnaWZVcmwiLCJyZXMiLCJtYXAiLCJmaWx0ZXIiLCJpdGVtIiwiZ2V0R2lwaHlTZWFyY2giLCJmb3JtYXRRdWVyeSIsImVuY29kZVVSSSIsImdldFlvdVR1YmVUcmVuZHMiLCJ5b3V0dWJlIiwicmVzb2x2ZSIsImNoYXJ0IiwibWF4UmVzdWx0cyIsInBhcnQiLCJyZWdpb25Db2RlIiwiY29uc29sZSIsIllPVVRVQkVfRVJST1IiLCJpdGVtcyIsInNuaXBwZXQiLCJ0aHVtYm5haWxzIiwiaGlnaCIsImdldFlvdVR1YmVTZWFyY2giLCJxIiwidmlkZW9JZCIsImdldFBhdGhVc2VyRmlsZXMiLCJmaWxlbmFtZSIsImxpbmtGaWxlcyIsInBvc3REb2NJZCIsImZpbGVzIiwiYWxsIiwidXBkYXRlRmlsZXMiLCJlZGdlQ29sbGVjdGlvbiIsImNvbGxlY3Rpb24iLCJpbkVkZ2VzIiwiZWRnZXMiLCJsZW5ndGgiLCJlZGdlIiwiZWRnZUtleSIsImVuY29kZUJhc2U2NCIsImRlY29kZUJhc2U2NCIsImRhdGFTdHJpbmciLCJnZXREYXRhIiwic3RyIiwibWF0Y2giLCJtYXRjaGVzIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiSU5WQUxJRF9JTlBVVCJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBUUEsT0FBT0MsT0FBTyxRQUFPLG9CQUFvQjtBQUNqRCxTQUFRQyxVQUFVLFFBQU8sK0JBQStCO0FBQ3hELFNBQVFDLEdBQUcsUUFBTyxXQUFXO0FBRzdCLFNBQVFDLFNBQVMsUUFBTyw2QkFBNkI7QUFDckQsU0FBUUMsTUFBTSxRQUFPLGVBQWU7QUFFcEMsU0FBUUMsVUFBVSxRQUFPLDBCQUEwQjtBQUduRCxTQUFRQyxRQUFR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
|
package/lib/actions/flags.js
CHANGED
|
@@ -144,4 +144,4 @@ export const resetFlagOverride = async (context, key)=>{
|
|
|
144
144
|
return toResolvedFlag(definition);
|
|
145
145
|
};
|
|
146
146
|
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3JlYWt0b3IvcmVha3Rvci9wYWNrYWdlcy9yZWFrdG9yL3NyYy9hY3Rpb25zL2ZsYWdzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VTdHJpbmd9IGZyb20gJ0BubGFicy91dGlscy9wYXJzZXJzL3N0cmluZ3MnO1xuXG5pbXBvcnQge2lzQWRtaW5Vc2VyfSBmcm9tICcuLi91dGlscy9zZXNzaW9uVXRpbHMuanMnO1xuaW1wb3J0IHt1c2VEYn0gZnJvbSAnLi4vdXRpbHMvYXJhbmdvZGJVdGlscy5qcyc7XG5cbmltcG9ydCB0eXBlIHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoLnR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtGbGFnRGVmaW5pdGlvbiwgRmxhZ092ZXJyaWRlLCBGbGFnVmFsdWUsIFJlc29sdmVkRmxhZ30gZnJvbSAnLi4vdHlwZXMvZmxhZ3MudHlwZXMuanMnO1xuXG5jb25zdCBDT0xMRUNUSU9OID0gJ2ZsYWdzJztcbmNvbnN0IEZMQUdfS0VZX1BBVFRFUk4gPSAvXltBLVphLXowLTldW0EtWmEtejAtOS5fOi1dezAsMTk5fSQvO1xuXG5jb25zdCBnZXREZWZpbml0aW9ucyA9IChjb250ZXh0OiBBcGlDb250ZXh0KTogcmVhZG9ubHkgRmxhZ0RlZmluaXRpb25bXSA9PiBjb250ZXh0LmZsYWdEZWZpbml0aW9ucyB8fCBbXTtcblxuY29uc3QgdmFsaWRhdGVEZWZpbml0aW9uID0gKGRlZmluaXRpb246IEZsYWdEZWZpbml0aW9uKTogdm9pZCA9PiB7XG4gIGlmKCFGTEFHX0tFWV9QQVRURVJOLnRlc3QoZGVmaW5pdGlvbi5rZXkpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkX2ZsYWdfa2V5OiR7ZGVmaW5pdGlvbi5rZXl9YCk7XG4gIH1cbiAgaWYoZGVmaW5pdGlvbi50eXBlID09PSAnYm9vbGVhbicgJiYgdHlwZW9mIGRlZmluaXRpb24uZGVmYXVsdFZhbHVlICE9PSAnYm9vbGVhbicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWRfYm9vbGVhbl9mbGFnX2RlZmF1bHQ6JHtkZWZpbml0aW9uLmtleX1gKTtcbiAgfVxuICBpZihkZWZpbml0aW9uLnR5cGUgPT09ICd2YXJpYW50Jykge1xuICAgIGlmKHR5cGVvZiBkZWZpbml0aW9uLmRlZmF1bHRWYWx1ZSAhPT0gJ3N0cmluZycgfHwgIWRlZmluaXRpb24udmFsdWVzPy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZF92YXJpYW50X2ZsYWc6JHtkZWZpbml0aW9uLmtleX1gKTtcbiAgICB9XG4gICAgaWYoIWRlZmluaXRpb24udmFsdWVzLmluY2x1ZGVzKGRlZmluaXRpb24uZGVmYXVsdFZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB2YXJpYW50X2RlZmF1bHRfbm90X2FsbG93ZWQ6JHtkZWZpbml0aW9uLmtleX1gKTtcbiAgICB9XG4gIH1cbn07XG5cbmNvbnN0IHZhbGlkYXRlVmFsdWUgPSAoZGVmaW5pdGlvbjogRmxhZ0RlZmluaXRpb24sIHZhbHVlOiBGbGFnVmFsdWUpOiB2b2lkID0+IHtcbiAgaWYoZGVmaW5pdGlvbi50eXBlID09PSAnYm9vbGVhbicgJiYgdHlwZW9mIHZhbHVlICE9PSAnYm9vbGVhbicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGZsYWdfdmFsdWVfbXVzdF9iZV9ib29sZWFuOiR7ZGVmaW5pdGlvbi5rZXl9YCk7XG4gIH1cbiAgaWYoZGVmaW5pdGlvbi50eXBlID09PSAndmFyaWFudCcgJiYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycgfHwgIWRlZmluaXRpb24udmFsdWVzPy5pbmNsdWRlcyh2YWx1ZSkpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBmbGFnX3ZhbHVlX25vdF9hbGxvd2VkOiR7ZGVmaW5pdGlvbi5rZXl9YCk7XG4gIH1cbn07XG5cbmNvbnN0IGdldERlZmluaXRpb25NYXAgPSAoY29udGV4dDogQXBpQ29udGV4dCk6IE1hcDxzdHJpbmcsIEZsYWdEZWZpbml0aW9uPiA9PiB7XG4gIGNvbnN0IGRlZmluaXRpb25zID0gZ2V0RGVmaW5pdGlvbnMoY29udGV4dCk7XG4gIGNvbnN0IG1hcCA9IG5ldyBNYXA8c3RyaW5nLCBGbGFnRGVmaW5pdGlvbj4oKTtcbiAgZGVmaW5pdGlvbnMuZm9yRWFjaCgoZGVmaW5pdGlvbikgPT4ge1xuICAgIHZhbGlkYXRlRGVmaW5pdGlvbihkZWZpbml0aW9uKTtcbiAgICBpZihtYXAuaGFzKGRlZmluaXRpb24ua2V5KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBkdXBsaWNhdGVfZmxhZ19rZXk6JHtkZWZpbml0aW9uLmtleX1gKTtcbiAgICB9XG4gICAgbWFwLnNldChkZWZpbml0aW9uLmtleSwgZGVmaW5pdGlvbik7XG4gIH0pO1xuICByZXR1cm4gbWFwO1xufTtcblxuY29uc3QgZ2V0T3ZlcnJpZGVzID0gYXN5bmMgKGNvbnRleHQ6IEFwaUNvbnRleHQpOiBQcm9taXNlPEZsYWdPdmVycmlkZVtdPiA9PiB7XG4gIGNvbnN0IGRhdGFiYXNlID0gdXNlRGIoY29udGV4dC5kYXRhYmFzZU5hbWUpO1xuICBjb25zdCBjb2xsZWN0aW9uID0gZGF0YWJhc2UuY29sbGVjdGlvbihDT0xMRUNUSU9OKTtcbiAgaWYoIWF3YWl0IGNvbGxlY3Rpb24uZXhpc3RzKCkpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgY29uc3QgY3Vyc29yID0gYXdhaXQgZGF0YWJhc2UucXVlcnk8RmxhZ092ZXJyaWRlPih7XG4gICAgYmluZFZhcnM6IHsnQGNvbGxlY3Rpb24nOiBDT0xMRUNUSU9OfSxcbiAgICBxdWVyeTogJ0ZPUiBmbGFnIElOIEBAY29sbGVjdGlvbiBSRVRVUk4gZmxhZydcbiAgfSk7XG4gIHJldHVybiBhd2FpdCBjdXJzb3IuYWxsKCk7XG59O1xuXG5jb25zdCB0b1Jlc29sdmVkRmxhZyA9IChkZWZpbml0aW9uOiBGbGFnRGVmaW5pdGlvbiwgb3ZlcnJpZGU/OiBGbGFnT3ZlcnJpZGUpOiBSZXNvbHZlZEZsYWcgPT4ge1xuICBjb25zdCBoYXNWYWxpZE92ZXJyaWRlID0gb3ZlcnJpZGUgPyAoKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICB2YWxpZGF0ZVZhbHVlKGRlZmluaXRpb24sIG92ZXJyaWRlLnZhbHVlKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfSkoKSA6IGZhbHNlO1xuICByZXR1cm4ge1xuICAgIC4uLmRlZmluaXRpb24sXG4gICAgc291cmNlOiBoYXNWYWxpZE92ZXJyaWRlID8gJ2RhdGFiYXNlJyA6ICdkZWZhdWx0JyxcbiAgICAuLi4oaGFzVmFsaWRPdmVycmlkZSAmJiBvdmVycmlkZT8udXBkYXRlZEF0ID8ge3VwZGF0ZWRBdDogb3ZlcnJpZGUudXBkYXRlZEF0fSA6IHt9KSxcbiAgICAuLi4oaGFzVmFsaWRPdmVycmlkZSAmJiBvdmVycmlkZT8udXBkYXRlZEJ5ID8ge3VwZGF0ZWRCeTogb3ZlcnJpZGUudXBkYXRlZEJ5fSA6IHt9KSxcbiAgICB2YWx1ZTogaGFzVmFsaWRPdmVycmlkZSAmJiBvdmVycmlkZSA/IG92ZXJyaWRlLnZhbHVlIDogZGVmaW5pdGlvbi5kZWZhdWx0VmFsdWVcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCByZXNvbHZlRmxhZ3MgPSBhc3luYyAoY29udGV4dDogQXBpQ29udGV4dCk6IFByb21pc2U8UmVzb2x2ZWRGbGFnW10+ID0+IHtcbiAgY29uc3QgZGVmaW5pdGlvbnMgPSBbLi4uZ2V0RGVmaW5pdGlvbk1hcChjb250ZXh0KS52YWx1ZXMoKV07XG4gIGxldCBvdmVycmlkZXM6IEZsYWdPdmVycmlkZVtdID0gW107XG4gIHRyeSB7XG4gICAgb3ZlcnJpZGVzID0gYXdhaXQgZ2V0T3ZlcnJpZGVzKGNvbnRleHQpO1xuICB9IGNhdGNoIHtcbiAgICAvLyBGZWF0dXJlIGV2YWx1YXRpb24gbXVzdCByZW1haW4gYXZhaWxhYmxlIGZyb20gY29kZSBkZWZhdWx0cyB3aGVuIHN0b3JhZ2UgaXMgdW5hdmFpbGFibGUuXG4gIH1cbiAgY29uc3Qgb3ZlcnJpZGVNYXAgPSBuZXcgTWFwKG92ZXJyaWRlcy5tYXAoKG92ZXJyaWRlKSA9PiBbb3ZlcnJpZGUua2V5LCBvdmVycmlkZV0pKTtcbiAgcmV0dXJuIGRlZmluaXRpb25zXG4gICAgLm1hcCgoZGVmaW5pdGlvbikgPT4gdG9SZXNvbHZlZEZsYWcoZGVmaW5pdGlvbiwgb3ZlcnJpZGVNYXAuZ2V0KGRlZmluaXRpb24ua2V5KSkpXG4gICAgLnNvcnQoKGxlZnQsIHJpZ2h0KSA9PiBsZWZ0LmtleS5sb2NhbGVDb21wYXJlKHJpZ2h0LmtleSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGV2YWx1YXRlRmxhZyA9IGFzeW5jIDxUIGV4dGVuZHMgRmxhZ1ZhbHVlPihcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAga2V5OiBzdHJpbmcsXG4gIGRlZmF1bHRWYWx1ZTogVFxuKTogUHJvbWlzZTxUPiA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgZmxhZyA9IChhd2FpdCByZXNvbHZlRmxhZ3MoY29udGV4dCkpLmZpbmQoKGl0ZW0pID0+IGl0ZW0ua2V5ID09PSBrZXkpO1xuICAgIHJldHVybiBmbGFnICYmIHR5cGVvZiBmbGFnLnZhbHVlID09PSB0eXBlb2YgZGVmYXVsdFZhbHVlID8gZmxhZy52YWx1ZSBhcyBUIDogZGVmYXVsdFZhbHVlO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3Qgc2V0RmxhZ092ZXJyaWRlID0gYXN5bmMgKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBrZXk6IHN0cmluZyxcbiAgdmFsdWU6IEZsYWdWYWx1ZVxuKTogUHJvbWlzZTxSZXNvbHZlZEZsYWc+ID0+IHtcbiAgaWYoIWlzQWRtaW5Vc2VyKGNvbnRleHQuc2Vzc2lvbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2FkbWluaXN0cmF0b3JfYWNjZXNzX3JlcXVpcmVkJyk7XG4gIH1cbiAgY29uc3QgZGVmaW5pdGlvbiA9IGdldERlZmluaXRpb25NYXAoY29udGV4dCkuZ2V0KGtleSk7XG4gIGlmKCFkZWZpbml0aW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB1bmtub3duX2ZsYWc6JHtrZXl9YCk7XG4gIH1cbiAgdmFsaWRhdGVWYWx1ZShkZWZpbml0aW9uLCB2YWx1ZSk7XG4gIGNvbnN0IGRhdGFiYXNlID0gdXNlRGIoY29udGV4dC5kYXRhYmFzZU5hbWUpO1xuICBjb25zdCBjb2xsZWN0aW9uID0gZGF0YWJhc2UuY29sbGVjdGlvbihDT0xMRUNUSU9OKTtcbiAgaWYoIWF3YWl0IGNvbGxlY3Rpb24uZXhpc3RzKCkpIHtcbiAgICBhd2FpdCBjb2xsZWN0aW9uLmNyZWF0ZSgpO1xuICB9XG4gIGNvbnN0IHVwZGF0ZWRBdCA9IERhdGUubm93KCk7XG4gIGNvbnN0IG92ZXJyaWRlOiBGbGFnT3ZlcnJpZGUgPSB7XG4gICAgX2tleTogY3JlYXRlSGFzaChgZmxhZy0ke3BhcnNlU3RyaW5nKGtleSwgMjAwKX1gKSxcbiAgICBrZXksXG4gICAgdXBkYXRlZEF0LFxuICAgIHVwZGF0ZWRCeTogY29udGV4dC5zZXNzaW9uPy51c2VySWQsXG4gICAgdmFsdWVcbiAgfTtcbiAgYXdhaXQgY29sbGVjdGlvbi5zYXZlKG92ZXJyaWRlLCB7b3ZlcndyaXRlTW9kZTogJ3JlcGxhY2UnfSk7XG4gIHJldHVybiB0b1Jlc29sdmVkRmxhZyhkZWZpbml0aW9uLCBvdmVycmlkZSk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVzZXRGbGFnT3ZlcnJpZGUgPSBhc3luYyAoY29udGV4dDogQXBpQ29udGV4dCwga2V5OiBzdHJpbmcpOiBQcm9taXNlPFJlc29sdmVkRmxhZz4gPT4ge1xuICBpZighaXNBZG1pblVzZXIoY29udGV4dC5zZXNzaW9uKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignYWRtaW5pc3RyYXRvcl9hY2Nlc3NfcmVxdWlyZWQnKTtcbiAgfVxuICBjb25zdCBkZWZpbml0aW9uID0gZ2V0RGVmaW5pdGlvbk1hcChjb250ZXh0KS5nZXQoa2V5KTtcbiAgaWYoIWRlZmluaXRpb24pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVua25vd25fZmxhZzoke2tleX1gKTtcbiAgfVxuICBjb25zdCBjb2xsZWN0aW9uID0gdXNlRGIoY29udGV4dC5kYXRhYmFzZU5hbWUpLmNvbGxlY3Rpb24oQ09MTEVDVElPTik7XG4gIGlmKGF3YWl0IGNvbGxlY3Rpb24uZXhpc3RzKCkpIHtcbiAgICBjb25zdCBkb2N1bWVudEtleSA9IGNyZWF0ZUhhc2goYGZsYWctJHtwYXJzZVN0cmluZyhrZXksIDIwMCl9YCk7XG4gICAgaWYoYXdhaXQgY29sbGVjdGlvbi5kb2N1bWVudEV4aXN0cyhkb2N1bWVudEtleSkpIHtcbiAgICAgIGF3YWl0IGNvbGxlY3Rpb24ucmVtb3ZlKGRvY3VtZW50S2V5KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRvUmVzb2x2ZWRGbGFnKGRlZmluaXRpb24pO1xufTtcbiJdLCJuYW1lcyI6WyJjcmVhdGVIYXNoIiwicGFyc2VTdHJpbmciLCJpc0FkbWluVXNlciIsInVzZURiIiwiQ09MTEVDVElPTiIsIkZMQUdfS0VZX1BBVFRFUk4iLCJnZXREZWZpbml0aW9ucyIsImNvbnRleHQiLCJmbGFnRGVmaW5pdGlvbnMiLCJ2YWxpZGF0ZURlZmluaXRpb24iLCJkZWZpbml0aW9uIiwidGVzdCIsImtleSIsIkVycm9yIiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsInZhbHVlcyIsImxlbmd0aCIsImluY2x1ZGVzIiwidmFsaWRhdGVWYWx1ZSIsInZhbHVlIiwiZ2V0RGVmaW5pdGlvbk1hcCIsImRlZmluaXRpb25zIiwibWFwIiwiTWFwIiwiZm9yRWFjaCIsImhhcyIsInNldCIsImdldE92ZXJyaWRlcyIsImRhdGFiYXNlIiwiZGF0YWJhc2VOYW1lIiwiY29sbGVjdGlvbiIsImV4aXN0cyIsImN1cnNvciIsInF1ZXJ5IiwiYmluZFZhcnMiLCJhbGwiLCJ0b1Jlc29sdmVkRmxhZyIsIm92ZXJyaWRlIiwiaGFzVmFsaWRPdmVycmlkZSIsInNvdXJjZSIsInVwZGF0ZWRBdCIsInVwZGF0ZWRCeSIsInJlc29sdmVGbGFncyIsIm92ZXJyaWRlcyIsIm92ZXJyaWRlTWFwIiwiZ2V0Iiwic29ydCIsImxlZnQiLCJyaWdodCIsImxvY2FsZUNvbXBhcmUiLCJldmFsdWF0ZUZsYWciLCJmbGFnIiwiZmluZCIsIml0ZW0iLCJzZXRGbGFnT3ZlcnJpZGUiLCJzZXNzaW9uIiwiY3JlYXRlIiwiRGF0ZSIsIm5vdyIsIl9rZXkiLCJ1c2VySWQiLCJzYXZlIiwib3ZlcndyaXRlTW9kZSIsInJlc2V0RmxhZ092ZXJyaWRlIiwiZG9jdW1lbnRLZXkiLCJkb2N1bWVudEV4aXN0cyIsInJlbW92ZSJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUUEsVUFBVSxFQUFFQyxXQUFXLFFBQU8sK0JBQStCO0FBRXJFLFNBQVFDLFdBQVcsUUFBTywyQkFBMkI7QUFDckQsU0FBUUMsS0FBSyxRQUFPLDRCQUE0QjtBQUtoRCxNQUFNQyxhQUFhO0FBQ25CLE1BQU1DLG1CQUFtQjtBQUV6QixNQUFNQyxpQkFBaUIsQ0FBQ0MsVUFBbURBLFFBQVFDLGVBQWUsSUFBSSxFQUFFO0FBRXhHLE1BQU1DLHFCQUFxQixDQUFDQztJQUMxQixJQUFHLENBQUNMLGlCQUFpQk0sSUFBSSxDQUFDRCxXQUFXRSxHQUFHLEdBQUc7UUFDekMsTUFBTSxJQUFJQyxNQUFNLENBQUMsaUJBQWlCLEVBQUVILFdBQVdFLEdBQUcsRUFBRTtJQUN0RDtJQUNBLElBQUdGLFdBQVdJLElBQUksS0FBSyxhQUFhLE9BQU9KLFdBQVdLLFlBQVksS0FBSyxXQUFXO1FBQ2hGLE1BQU0sSUFBSUYsTUFBTSxDQUFDLDZCQUE2QixFQUFFSCxXQUFXRSxHQUFHLEVBQUU7SUFDbEU7SUFDQSxJQUFHRixXQUFXSSxJQUFJLEtBQUssV0FBVztRQUNoQyxJQUFHLE9BQU9KLFdBQVdLLFlBQVksS0FBSyxZQUFZLENBQUNMLFdBQVdNLE1BQU0sRUFBRUMsUUFBUTtZQUM1RSxN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
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3IvcGFja2FnZXMvcmVha3Rvci9zcmMvYWN0aW9ucy9mbGFncy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NyZWF0ZUhhc2gsIHBhcnNlU3RyaW5nfSBmcm9tICdAbmxhYnMvdXRpbHMvcGFyc2Vycy9zdHJpbmdzJztcblxuaW1wb3J0IHtpc0FkbWluVXNlcn0gZnJvbSAnLi4vdXRpbHMvc2Vzc2lvblV0aWxzLmpzJztcbmltcG9ydCB7dXNlRGJ9IGZyb20gJy4uL3V0aWxzL2FyYW5nb2RiVXRpbHMuanMnO1xuXG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7RmxhZ0RlZmluaXRpb24sIEZsYWdPdmVycmlkZSwgRmxhZ1ZhbHVlLCBSZXNvbHZlZEZsYWd9IGZyb20gJy4uL3R5cGVzL2ZsYWdzLnR5cGVzLmpzJztcblxuY29uc3QgQ09MTEVDVElPTiA9ICdmbGFncyc7XG5jb25zdCBGTEFHX0tFWV9QQVRURVJOID0gL15bQS1aYS16MC05XVtBLVphLXowLTkuXzotXXswLDE5OX0kLztcblxuY29uc3QgZ2V0RGVmaW5pdGlvbnMgPSAoY29udGV4dDogQXBpQ29udGV4dCk6IHJlYWRvbmx5IEZsYWdEZWZpbml0aW9uW10gPT4gY29udGV4dC5mbGFnRGVmaW5pdGlvbnMgfHwgW107XG5cbmNvbnN0IHZhbGlkYXRlRGVmaW5pdGlvbiA9IChkZWZpbml0aW9uOiBGbGFnRGVmaW5pdGlvbik6IHZvaWQgPT4ge1xuICBpZighRkxBR19LRVlfUEFUVEVSTi50ZXN0KGRlZmluaXRpb24ua2V5KSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZF9mbGFnX2tleToke2RlZmluaXRpb24ua2V5fWApO1xuICB9XG4gIGlmKGRlZmluaXRpb24udHlwZSA9PT0gJ2Jvb2xlYW4nICYmIHR5cGVvZiBkZWZpbml0aW9uLmRlZmF1bHRWYWx1ZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkX2Jvb2xlYW5fZmxhZ19kZWZhdWx0OiR7ZGVmaW5pdGlvbi5rZXl9YCk7XG4gIH1cbiAgaWYoZGVmaW5pdGlvbi50eXBlID09PSAndmFyaWFudCcpIHtcbiAgICBpZih0eXBlb2YgZGVmaW5pdGlvbi5kZWZhdWx0VmFsdWUgIT09ICdzdHJpbmcnIHx8ICFkZWZpbml0aW9uLnZhbHVlcz8ubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWRfdmFyaWFudF9mbGFnOiR7ZGVmaW5pdGlvbi5rZXl9YCk7XG4gICAgfVxuICAgIGlmKCFkZWZpbml0aW9uLnZhbHVlcy5pbmNsdWRlcyhkZWZpbml0aW9uLmRlZmF1bHRWYWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdmFyaWFudF9kZWZhdWx0X25vdF9hbGxvd2VkOiR7ZGVmaW5pdGlvbi5rZXl9YCk7XG4gICAgfVxuICB9XG59O1xuXG5jb25zdCB2YWxpZGF0ZVZhbHVlID0gKGRlZmluaXRpb246IEZsYWdEZWZpbml0aW9uLCB2YWx1ZTogRmxhZ1ZhbHVlKTogdm9pZCA9PiB7XG4gIGlmKGRlZmluaXRpb24udHlwZSA9PT0gJ2Jvb2xlYW4nICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBmbGFnX3ZhbHVlX211c3RfYmVfYm9vbGVhbjoke2RlZmluaXRpb24ua2V5fWApO1xuICB9XG4gIGlmKGRlZmluaXRpb24udHlwZSA9PT0gJ3ZhcmlhbnQnICYmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnIHx8ICFkZWZpbml0aW9uLnZhbHVlcz8uaW5jbHVkZXModmFsdWUpKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgZmxhZ192YWx1ZV9ub3RfYWxsb3dlZDoke2RlZmluaXRpb24ua2V5fWApO1xuICB9XG59O1xuXG5jb25zdCBnZXREZWZpbml0aW9uTWFwID0gKGNvbnRleHQ6IEFwaUNvbnRleHQpOiBNYXA8c3RyaW5nLCBGbGFnRGVmaW5pdGlvbj4gPT4ge1xuICBjb25zdCBkZWZpbml0aW9ucyA9IGdldERlZmluaXRpb25zKGNvbnRleHQpO1xuICBjb25zdCBtYXAgPSBuZXcgTWFwPHN0cmluZywgRmxhZ0RlZmluaXRpb24+KCk7XG4gIGRlZmluaXRpb25zLmZvckVhY2goKGRlZmluaXRpb24pID0+IHtcbiAgICB2YWxpZGF0ZURlZmluaXRpb24oZGVmaW5pdGlvbik7XG4gICAgaWYobWFwLmhhcyhkZWZpbml0aW9uLmtleSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgZHVwbGljYXRlX2ZsYWdfa2V5OiR7ZGVmaW5pdGlvbi5rZXl9YCk7XG4gICAgfVxuICAgIG1hcC5zZXQoZGVmaW5pdGlvbi5rZXksIGRlZmluaXRpb24pO1xuICB9KTtcbiAgcmV0dXJuIG1hcDtcbn07XG5cbmNvbnN0IGdldE92ZXJyaWRlcyA9IGFzeW5jIChjb250ZXh0OiBBcGlDb250ZXh0KTogUHJvbWlzZTxGbGFnT3ZlcnJpZGVbXT4gPT4ge1xuICBjb25zdCBkYXRhYmFzZSA9IHVzZURiKGNvbnRleHQuZGF0YWJhc2VOYW1lKTtcbiAgY29uc3QgY29sbGVjdGlvbiA9IGRhdGFiYXNlLmNvbGxlY3Rpb24oQ09MTEVDVElPTik7XG4gIGlmKCFhd2FpdCBjb2xsZWN0aW9uLmV4aXN0cygpKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIGNvbnN0IGN1cnNvciA9IGF3YWl0IGRhdGFiYXNlLnF1ZXJ5PEZsYWdPdmVycmlkZT4oe1xuICAgIGJpbmRWYXJzOiB7J0Bjb2xsZWN0aW9uJzogQ09MTEVDVElPTn0sXG4gICAgcXVlcnk6ICdGT1IgZmxhZyBJTiBAQGNvbGxlY3Rpb24gUkVUVVJOIGZsYWcnXG4gIH0pO1xuICByZXR1cm4gYXdhaXQgY3Vyc29yLmFsbCgpO1xufTtcblxuY29uc3QgdG9SZXNvbHZlZEZsYWcgPSAoZGVmaW5pdGlvbjogRmxhZ0RlZmluaXRpb24sIG92ZXJyaWRlPzogRmxhZ092ZXJyaWRlKTogUmVzb2x2ZWRGbGFnID0+IHtcbiAgY29uc3QgaGFzVmFsaWRPdmVycmlkZSA9IG92ZXJyaWRlID8gKCgpID0+IHtcbiAgICB0cnkge1xuICAgICAgdmFsaWRhdGVWYWx1ZShkZWZpbml0aW9uLCBvdmVycmlkZS52YWx1ZSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH0pKCkgOiBmYWxzZTtcbiAgcmV0dXJuIHtcbiAgICAuLi5kZWZpbml0aW9uLFxuICAgIHNvdXJjZTogaGFzVmFsaWRPdmVycmlkZSA/ICdkYXRhYmFzZScgOiAnZGVmYXVsdCcsXG4gICAgLi4uKGhhc1ZhbGlkT3ZlcnJpZGUgJiYgb3ZlcnJpZGU/LnVwZGF0ZWRBdCA/IHt1cGRhdGVkQXQ6IG92ZXJyaWRlLnVwZGF0ZWRBdH0gOiB7fSksXG4gICAgLi4uKGhhc1ZhbGlkT3ZlcnJpZGUgJiYgb3ZlcnJpZGU/LnVwZGF0ZWRCeSA/IHt1cGRhdGVkQnk6IG92ZXJyaWRlLnVwZGF0ZWRCeX0gOiB7fSksXG4gICAgdmFsdWU6IGhhc1ZhbGlkT3ZlcnJpZGUgJiYgb3ZlcnJpZGUgPyBvdmVycmlkZS52YWx1ZSA6IGRlZmluaXRpb24uZGVmYXVsdFZhbHVlXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgcmVzb2x2ZUZsYWdzID0gYXN5bmMgKGNvbnRleHQ6IEFwaUNvbnRleHQpOiBQcm9taXNlPFJlc29sdmVkRmxhZ1tdPiA9PiB7XG4gIGNvbnN0IGRlZmluaXRpb25zID0gWy4uLmdldERlZmluaXRpb25NYXAoY29udGV4dCkudmFsdWVzKCldO1xuICBsZXQgb3ZlcnJpZGVzOiBGbGFnT3ZlcnJpZGVbXSA9IFtdO1xuICB0cnkge1xuICAgIG92ZXJyaWRlcyA9IGF3YWl0IGdldE92ZXJyaWRlcyhjb250ZXh0KTtcbiAgfSBjYXRjaCB7XG4gICAgLy8gRmVhdHVyZSBldmFsdWF0aW9uIG11c3QgcmVtYWluIGF2YWlsYWJsZSBmcm9tIGNvZGUgZGVmYXVsdHMgd2hlbiBzdG9yYWdlIGlzIHVuYXZhaWxhYmxlLlxuICB9XG4gIGNvbnN0IG92ZXJyaWRlTWFwID0gbmV3IE1hcChvdmVycmlkZXMubWFwKChvdmVycmlkZSkgPT4gW292ZXJyaWRlLmtleSwgb3ZlcnJpZGVdKSk7XG4gIHJldHVybiBkZWZpbml0aW9uc1xuICAgIC5tYXAoKGRlZmluaXRpb24pID0+IHRvUmVzb2x2ZWRGbGFnKGRlZmluaXRpb24sIG92ZXJyaWRlTWFwLmdldChkZWZpbml0aW9uLmtleSkpKVxuICAgIC5zb3J0KChsZWZ0LCByaWdodCkgPT4gbGVmdC5rZXkubG9jYWxlQ29tcGFyZShyaWdodC5rZXkpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBldmFsdWF0ZUZsYWcgPSBhc3luYyA8VCBleHRlbmRzIEZsYWdWYWx1ZT4oXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGtleTogc3RyaW5nLFxuICBkZWZhdWx0VmFsdWU6IFRcbik6IFByb21pc2U8VD4gPT4ge1xuICB0cnkge1xuICAgIGNvbnN0IGZsYWcgPSAoYXdhaXQgcmVzb2x2ZUZsYWdzKGNvbnRleHQpKS5maW5kKChpdGVtKSA9PiBpdGVtLmtleSA9PT0ga2V5KTtcbiAgICByZXR1cm4gZmxhZyAmJiB0eXBlb2YgZmxhZy52YWx1ZSA9PT0gdHlwZW9mIGRlZmF1bHRWYWx1ZSA/IGZsYWcudmFsdWUgYXMgVCA6IGRlZmF1bHRWYWx1ZTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IHNldEZsYWdPdmVycmlkZSA9IGFzeW5jIChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAga2V5OiBzdHJpbmcsXG4gIHZhbHVlOiBGbGFnVmFsdWVcbik6IFByb21pc2U8UmVzb2x2ZWRGbGFnPiA9PiB7XG4gIGlmKCFpc0FkbWluVXNlcihjb250ZXh0LnNlc3Npb24pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdhZG1pbmlzdHJhdG9yX2FjY2Vzc19yZXF1aXJlZCcpO1xuICB9XG4gIGNvbnN0IGRlZmluaXRpb24gPSBnZXREZWZpbml0aW9uTWFwKGNvbnRleHQpLmdldChrZXkpO1xuICBpZighZGVmaW5pdGlvbikge1xuICAgIHRocm93IG5ldyBFcnJvcihgdW5rbm93bl9mbGFnOiR7a2V5fWApO1xuICB9XG4gIHZhbGlkYXRlVmFsdWUoZGVmaW5pdGlvbiwgdmFsdWUpO1xuICBjb25zdCBkYXRhYmFzZSA9IHVzZURiKGNvbnRleHQuZGF0YWJhc2VOYW1lKTtcbiAgY29uc3QgY29sbGVjdGlvbiA9IGRhdGFiYXNlLmNvbGxlY3Rpb24oQ09MTEVDVElPTik7XG4gIGlmKCFhd2FpdCBjb2xsZWN0aW9uLmV4aXN0cygpKSB7XG4gICAgYXdhaXQgY29sbGVjdGlvbi5jcmVhdGUoKTtcbiAgfVxuICBjb25zdCB1cGRhdGVkQXQgPSBEYXRlLm5vdygpO1xuICBjb25zdCBvdmVycmlkZTogRmxhZ092ZXJyaWRlID0ge1xuICAgIF9rZXk6IGNyZWF0ZUhhc2goYGZsYWctJHtwYXJzZVN0cmluZyhrZXksIDIwMCl9YCksXG4gICAga2V5LFxuICAgIHVwZGF0ZWRBdCxcbiAgICB1cGRhdGVkQnk6IGNvbnRleHQuc2Vzc2lvbj8udXNlcklkLFxuICAgIHZhbHVlXG4gIH07XG4gIGF3YWl0IGNvbGxlY3Rpb24uc2F2ZShvdmVycmlkZSwge292ZXJ3cml0ZU1vZGU6ICdyZXBsYWNlJ30pO1xuICByZXR1cm4gdG9SZXNvbHZlZEZsYWcoZGVmaW5pdGlvbiwgb3ZlcnJpZGUpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlc2V0RmxhZ092ZXJyaWRlID0gYXN5bmMgKGNvbnRleHQ6IEFwaUNvbnRleHQsIGtleTogc3RyaW5nKTogUHJvbWlzZTxSZXNvbHZlZEZsYWc+ID0+IHtcbiAgaWYoIWlzQWRtaW5Vc2VyKGNvbnRleHQuc2Vzc2lvbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2FkbWluaXN0cmF0b3JfYWNjZXNzX3JlcXVpcmVkJyk7XG4gIH1cbiAgY29uc3QgZGVmaW5pdGlvbiA9IGdldERlZmluaXRpb25NYXAoY29udGV4dCkuZ2V0KGtleSk7XG4gIGlmKCFkZWZpbml0aW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB1bmtub3duX2ZsYWc6JHtrZXl9YCk7XG4gIH1cbiAgY29uc3QgY29sbGVjdGlvbiA9IHVzZURiKGNvbnRleHQuZGF0YWJhc2VOYW1lKS5jb2xsZWN0aW9uKENPTExFQ1RJT04pO1xuICBpZihhd2FpdCBjb2xsZWN0aW9uLmV4aXN0cygpKSB7XG4gICAgY29uc3QgZG9jdW1lbnRLZXkgPSBjcmVhdGVIYXNoKGBmbGFnLSR7cGFyc2VTdHJpbmcoa2V5LCAyMDApfWApO1xuICAgIGlmKGF3YWl0IGNvbGxlY3Rpb24uZG9jdW1lbnRFeGlzdHMoZG9jdW1lbnRLZXkpKSB7XG4gICAgICBhd2FpdCBjb2xsZWN0aW9uLnJlbW92ZShkb2N1bWVudEtleSk7XG4gICAgfVxuICB9XG4gIHJldHVybiB0b1Jlc29sdmVkRmxhZyhkZWZpbml0aW9uKTtcbn07XG4iXSwibmFtZXMiOlsiY3JlYXRlSGFzaCIsInBhcnNlU3RyaW5nIiwiaXNBZG1pblVzZXIiLCJ1c2VEYiIsIkNPTExFQ1RJT04iLCJGTEFHX0tFWV9QQVRURVJOIiwiZ2V0RGVmaW5pdGlvbnMiLCJjb250ZXh0IiwiZmxhZ0RlZmluaXRpb25zIiwidmFsaWRhdGVEZWZpbml0aW9uIiwiZGVmaW5pdGlvbiIsInRlc3QiLCJrZXkiLCJFcnJvciIsInR5cGUiLCJkZWZhdWx0VmFsdWUiLCJ2YWx1ZXMiLCJsZW5ndGgiLCJpbmNsdWRlcyIsInZhbGlkYXRlVmFsdWUiLCJ2YWx1ZSIsImdldERlZmluaXRpb25NYXAiLCJkZWZpbml0aW9ucyIsIm1hcCIsIk1hcCIsImZvckVhY2giLCJoYXMiLCJzZXQiLCJnZXRPdmVycmlkZXMiLCJkYXRhYmFzZSIsImRhdGFiYXNlTmFtZSIsImNvbGxlY3Rpb24iLCJleGlzdHMiLCJjdXJzb3IiLCJxdWVyeSIsImJpbmRWYXJzIiwiYWxsIiwidG9SZXNvbHZlZEZsYWciLCJvdmVycmlkZSIsImhhc1ZhbGlkT3ZlcnJpZGUiLCJzb3VyY2UiLCJ1cGRhdGVkQXQiLCJ1cGRhdGVkQnkiLCJyZXNvbHZlRmxhZ3MiLCJvdmVycmlkZXMiLCJvdmVycmlkZU1hcCIsImdldCIsInNvcnQiLCJsZWZ0IiwicmlnaHQiLCJsb2NhbGVDb21wYXJlIiwiZXZhbHVhdGVGbGFnIiwiZmxhZyIsImZpbmQiLCJpdGVtIiwic2V0RmxhZ092ZXJyaWRlIiwic2Vzc2lvbiIsImNyZWF0ZSIsIkRhdGUiLCJub3ciLCJfa2V5IiwidXNlcklkIiwic2F2ZSIsIm92ZXJ3cml0ZU1vZGUiLCJyZXNldEZsYWdPdmVycmlkZSIsImRvY3VtZW50S2V5IiwiZG9jdW1lbnRFeGlzdHMiLCJyZW1vdmUiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLFVBQVUsRUFBRUMsV0FBVyxRQUFPLCtCQUErQjtBQUVyRSxTQUFRQyxXQUFXLFFBQU8sMkJBQTJCO0FBQ3JELFNBQVFDLEtBQUssUUFBTyw0QkFBNEI7QUFLaEQsTUFBTUMsYUFBYTtBQUNuQixNQUFNQyxtQkFBbUI7QUFFekIsTUFBTUMsaUJBQWlCLENBQUNDLFVBQW1EQSxRQUFRQyxlQUFlLElBQUksRUFBRTtBQUV4RyxNQUFNQyxxQkFBcUIsQ0FBQ0M7SUFDMUIsSUFBRyxDQUFDTCxpQkFBaUJNLElBQUksQ0FBQ0QsV0FBV0UsR0FBRyxHQUFHO1FBQ3pDLE1BQU0sSUFBSUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFSCxXQUFXRSxHQUFHLEVBQUU7SUFDdEQ7SUFDQSxJQUFHRixXQUFXSSxJQUFJLEtBQUssYUFBYSxPQUFPSixXQUFXSyxZQUFZLEtBQUssV0FBVztRQUNoRixNQUFNLElBQUlGLE1BQU0sQ0FBQyw2QkFBNkIsRUFBRUgsV0FBV0UsR0FBRyxFQUFFO0lBQ2xFO0lBQ0EsSUFBR0YsV0FBV0ksSUFBSSxLQUFLLFdBQVc7UUFDaEMsSUFBRyxPQUFPSixXQUFXSyxZQUFZLEtBQUssWUFBWSxDQUFDTCxXQUFXTSxNQUFNLEVBQUVDLFFBQVE7WUFDNUUs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
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { GeminiVideoInput } from '../adapters/geminiGenerationAdapter.js';
|
|
2
|
+
import type { ApiContext } from '../types/auth.types.js';
|
|
3
|
+
import type { VideoGenerationResult } from './videoGeneration.js';
|
|
4
|
+
export declare class GeminiGenerationRejectedError extends Error {
|
|
5
|
+
}
|
|
6
|
+
export interface GeminiVideoConfig {
|
|
7
|
+
key?: string;
|
|
8
|
+
model?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface GeminiVideoStatus {
|
|
11
|
+
error?: string;
|
|
12
|
+
mediaUrl?: string;
|
|
13
|
+
status: 'failed' | 'processing' | 'succeeded';
|
|
14
|
+
}
|
|
15
|
+
/** Submit once; an unconfirmed response must be reconciled rather than retried. */
|
|
16
|
+
export declare const generateGeminiVideo: (_context: ApiContext, input: GeminiVideoInput, config?: GeminiVideoConfig) => Promise<VideoGenerationResult>;
|
|
17
|
+
export declare const getGeminiVideoStatus: (requestId: string, config?: GeminiVideoConfig) => Promise<GeminiVideoStatus>;
|
|
18
|
+
/** Binary downloads use HTTPS streams because Rip-Hunter currently decodes non-JSON bodies as text. */
|
|
19
|
+
export declare const downloadGeminiVideo: (mediaUrl: string, config?: GeminiVideoConfig) => Promise<Buffer>;
|