@dbx-tools/shared-genie 0.6.106 → 0.6.108
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/index.ts +2 -2
- package/lib/index.d.ts +2 -2
- package/lib/index.js +2 -2
- package/lib/src/genie-model.d.ts +66 -47
- package/lib/src/genie-model.js +12 -3
- package/package.json +2 -2
- package/src/genie-model.ts +27 -2
package/index.ts
CHANGED
|
@@ -9,5 +9,5 @@ export * as genieModel from "./src/genie-model.ts";
|
|
|
9
9
|
export { authorizationDetailsGrantRuleSchema, cronScheduleSchema, lifecycleStateSchema, dashboardViewSchema, deleteScheduleRequestSchema, deleteSubscriptionRequestSchema, genieSuggestedQuestionsAttachmentSchema, genieConversationSchema, genieConversationSummarySchema, genieCreateConversationMessageRequestSchema, genieDeleteConversationMessageRequestSchema, genieDeleteConversationRequestSchema, genieExecuteMessageAttachmentQueryRequestSchema, genieExecuteMessageQueryRequestSchema, genieFeedbackRatingSchema, genieGetConversationMessageRequestSchema, genieGetMessageAttachmentQueryResultRequestSchema, genieGetMessageQueryResultRequestSchema, genieGetMessageQueryResultResponseSchema, genieGetQueryResultByAttachmentRequestSchema, genieGetSpaceRequestSchema, genieListConversationMessagesRequestSchema, genieListConversationsRequestSchema, genieListConversationsResponseSchema, genieListSpacesRequestSchema, genieSpaceSchema, genieFeedbackSchema, resultSchema, messageStatusSchema, queryAttachmentParameterSchema, genieResultMetadataSchema, genieSendMessageFeedbackRequestSchema, genieStartConversationMessageRequestSchema, genieTrashSpaceRequestSchema, getDashboardRequestSchema, getPublishedDashboardRequestSchema, getPublishedDashboardTokenInfoRequestSchema, authorizationDetailsSchema, getScheduleRequestSchema, getSubscriptionRequestSchema, listDashboardsRequestSchema, dashboardSchema, listSchedulesRequestSchema, listSubscriptionsRequestSchema, messageErrorTypeSchema, migrateDashboardRequestSchema, publishRequestSchema, publishedDashboardSchema, schedulePauseStatusSchema, subscriptionSubscriberDestinationSchema, subscriptionSubscriberUserSchema, subscriberSchema, textAttachmentPurposeSchema, trashDashboardRequestSchema, unpublishDashboardRequestSchema, updateDashboardRequestSchema, scheduleSchema, createDashboardRequestSchema, createScheduleRequestSchema, subscriptionSchema, genieQueryAttachmentSchema, textAttachmentSchema, genieListSpacesResponseSchema, genieAttachmentSchema, messageErrorSchema, genieMessageSchema, getPublishedDashboardTokenInfoResponseSchema, listDashboardsResponseSchema, listSchedulesResponseSchema, listSubscriptionsResponseSchema, updateScheduleRequestSchema, createSubscriptionRequestSchema, genieListConversationMessagesResponseSchema, genieStartConversationResponseSchema } from "./src/dashboards.ts";
|
|
10
10
|
export type { AuthorizationDetailsGrantRule, CronSchedule, LifecycleState, DashboardView, DeleteScheduleRequest, DeleteSubscriptionRequest, GenieSuggestedQuestionsAttachment, GenieConversation, GenieConversationSummary, GenieCreateConversationMessageRequest, GenieDeleteConversationMessageRequest, GenieDeleteConversationRequest, GenieExecuteMessageAttachmentQueryRequest, GenieExecuteMessageQueryRequest, GenieFeedbackRating, GenieGetConversationMessageRequest, GenieGetMessageAttachmentQueryResultRequest, GenieGetMessageQueryResultRequest, GenieGetMessageQueryResultResponse, GenieGetQueryResultByAttachmentRequest, GenieGetSpaceRequest, GenieListConversationMessagesRequest, GenieListConversationsRequest, GenieListConversationsResponse, GenieListSpacesRequest, GenieFeedback, Result, QueryAttachmentParameter, GenieResultMetadata, GenieSendMessageFeedbackRequest, GenieStartConversationMessageRequest, GenieTrashSpaceRequest, GetDashboardRequest, GetPublishedDashboardRequest, GetPublishedDashboardTokenInfoRequest, AuthorizationDetails, GetScheduleRequest, GetSubscriptionRequest, ListDashboardsRequest, Dashboard, ListSchedulesRequest, ListSubscriptionsRequest, MessageErrorType, MigrateDashboardRequest, PublishRequest, PublishedDashboard, SchedulePauseStatus, SubscriptionSubscriberDestination, SubscriptionSubscriberUser, Subscriber, TextAttachmentPurpose, TrashDashboardRequest, UnpublishDashboardRequest, UpdateDashboardRequest, Schedule, CreateDashboardRequest, CreateScheduleRequest, Subscription, TextAttachment, GenieListSpacesResponse, MessageError, GetPublishedDashboardTokenInfoResponse, ListDashboardsResponse, ListSchedulesResponse, ListSubscriptionsResponse, UpdateScheduleRequest, CreateSubscriptionRequest, GenieListConversationMessagesResponse, GenieStartConversationResponse } from "./src/dashboards.ts";
|
|
11
11
|
export { detectStatus, detectAttachmentAdded, detectThinking, detectText, detectQuery, detectStatement, detectRows, detectSuggestedQuestions } from "./src/event.ts";
|
|
12
|
-
export { MessageStatusSchema, GenieThoughtSchema, ATTACHMENT_TYPES, GenieQueryAttachmentSchema, GenieAttachmentSchema, GenieMessageSchema, GenieResponseSchema, GenieSpaceSchema, TERMINAL_STATUSES, GenieChatLocationSchema, QuestionEventSchema, MessageEventSchema, StatusEventSchema, AttachmentEventSchema, ThinkingEventSchema, TextEventSchema, QueryEventSchema, StatementEventSchema, RowsEventSchema, SuggestedQuestionsEventSchema, ResultEventSchema, GenieChatEventSchema } from "./src/genie-model.ts";
|
|
13
|
-
export type { MessageStatus, GenieThoughtType, GenieThought, KnownAttachmentType, AttachmentType, GenieQueryAttachment, GenieAttachment, GenieMessage, GenieResponse, GenieSpace, TerminalStatus, GenieChatLocation, QuestionEvent, MessageEvent, StatusEvent, AttachmentEvent, ThinkingEvent, TextEvent, QueryEvent, StatementEvent, RowsEvent, SuggestedQuestionsEvent, ResultEvent, GenieChatEvent, GenieChatEventType, GenieChatEventFields } from "./src/genie-model.ts";
|
|
12
|
+
export { MessageStatusSchema, GenieThoughtSchema, ATTACHMENT_TYPES, GenieQueryAttachmentSchema, GenieTextAttachmentSchema, GenieAttachmentSchema, GenieMessageSchema, GenieResponseSchema, GenieSpaceSchema, TERMINAL_STATUSES, GenieChatLocationSchema, QuestionEventSchema, MessageEventSchema, StatusEventSchema, AttachmentEventSchema, ThinkingEventSchema, TextEventSchema, QueryEventSchema, StatementEventSchema, RowsEventSchema, SuggestedQuestionsEventSchema, ResultEventSchema, GenieChatEventSchema } from "./src/genie-model.ts";
|
|
13
|
+
export type { MessageStatus, GenieThoughtType, GenieThought, KnownAttachmentType, AttachmentType, GenieQueryAttachment, GenieTextAttachmentPurpose, GenieTextAttachment, GenieAttachment, GenieMessage, GenieResponse, GenieSpace, TerminalStatus, GenieChatLocation, QuestionEvent, MessageEvent, StatusEvent, AttachmentEvent, ThinkingEvent, TextEvent, QueryEvent, StatementEvent, RowsEvent, SuggestedQuestionsEvent, ResultEvent, GenieChatEvent, GenieChatEventType, GenieChatEventFields } from "./src/genie-model.ts";
|
package/lib/index.d.ts
CHANGED
|
@@ -5,5 +5,5 @@ export * as genieModel from "./src/genie-model.ts";
|
|
|
5
5
|
export { authorizationDetailsGrantRuleSchema, cronScheduleSchema, lifecycleStateSchema, dashboardViewSchema, deleteScheduleRequestSchema, deleteSubscriptionRequestSchema, genieSuggestedQuestionsAttachmentSchema, genieConversationSchema, genieConversationSummarySchema, genieCreateConversationMessageRequestSchema, genieDeleteConversationMessageRequestSchema, genieDeleteConversationRequestSchema, genieExecuteMessageAttachmentQueryRequestSchema, genieExecuteMessageQueryRequestSchema, genieFeedbackRatingSchema, genieGetConversationMessageRequestSchema, genieGetMessageAttachmentQueryResultRequestSchema, genieGetMessageQueryResultRequestSchema, genieGetMessageQueryResultResponseSchema, genieGetQueryResultByAttachmentRequestSchema, genieGetSpaceRequestSchema, genieListConversationMessagesRequestSchema, genieListConversationsRequestSchema, genieListConversationsResponseSchema, genieListSpacesRequestSchema, genieSpaceSchema, genieFeedbackSchema, resultSchema, messageStatusSchema, queryAttachmentParameterSchema, genieResultMetadataSchema, genieSendMessageFeedbackRequestSchema, genieStartConversationMessageRequestSchema, genieTrashSpaceRequestSchema, getDashboardRequestSchema, getPublishedDashboardRequestSchema, getPublishedDashboardTokenInfoRequestSchema, authorizationDetailsSchema, getScheduleRequestSchema, getSubscriptionRequestSchema, listDashboardsRequestSchema, dashboardSchema, listSchedulesRequestSchema, listSubscriptionsRequestSchema, messageErrorTypeSchema, migrateDashboardRequestSchema, publishRequestSchema, publishedDashboardSchema, schedulePauseStatusSchema, subscriptionSubscriberDestinationSchema, subscriptionSubscriberUserSchema, subscriberSchema, textAttachmentPurposeSchema, trashDashboardRequestSchema, unpublishDashboardRequestSchema, updateDashboardRequestSchema, scheduleSchema, createDashboardRequestSchema, createScheduleRequestSchema, subscriptionSchema, genieQueryAttachmentSchema, textAttachmentSchema, genieListSpacesResponseSchema, genieAttachmentSchema, messageErrorSchema, genieMessageSchema, getPublishedDashboardTokenInfoResponseSchema, listDashboardsResponseSchema, listSchedulesResponseSchema, listSubscriptionsResponseSchema, updateScheduleRequestSchema, createSubscriptionRequestSchema, genieListConversationMessagesResponseSchema, genieStartConversationResponseSchema } from "./src/dashboards.ts";
|
|
6
6
|
export type { AuthorizationDetailsGrantRule, CronSchedule, LifecycleState, DashboardView, DeleteScheduleRequest, DeleteSubscriptionRequest, GenieSuggestedQuestionsAttachment, GenieConversation, GenieConversationSummary, GenieCreateConversationMessageRequest, GenieDeleteConversationMessageRequest, GenieDeleteConversationRequest, GenieExecuteMessageAttachmentQueryRequest, GenieExecuteMessageQueryRequest, GenieFeedbackRating, GenieGetConversationMessageRequest, GenieGetMessageAttachmentQueryResultRequest, GenieGetMessageQueryResultRequest, GenieGetMessageQueryResultResponse, GenieGetQueryResultByAttachmentRequest, GenieGetSpaceRequest, GenieListConversationMessagesRequest, GenieListConversationsRequest, GenieListConversationsResponse, GenieListSpacesRequest, GenieFeedback, Result, QueryAttachmentParameter, GenieResultMetadata, GenieSendMessageFeedbackRequest, GenieStartConversationMessageRequest, GenieTrashSpaceRequest, GetDashboardRequest, GetPublishedDashboardRequest, GetPublishedDashboardTokenInfoRequest, AuthorizationDetails, GetScheduleRequest, GetSubscriptionRequest, ListDashboardsRequest, Dashboard, ListSchedulesRequest, ListSubscriptionsRequest, MessageErrorType, MigrateDashboardRequest, PublishRequest, PublishedDashboard, SchedulePauseStatus, SubscriptionSubscriberDestination, SubscriptionSubscriberUser, Subscriber, TextAttachmentPurpose, TrashDashboardRequest, UnpublishDashboardRequest, UpdateDashboardRequest, Schedule, CreateDashboardRequest, CreateScheduleRequest, Subscription, TextAttachment, GenieListSpacesResponse, MessageError, GetPublishedDashboardTokenInfoResponse, ListDashboardsResponse, ListSchedulesResponse, ListSubscriptionsResponse, UpdateScheduleRequest, CreateSubscriptionRequest, GenieListConversationMessagesResponse, GenieStartConversationResponse } from "./src/dashboards.ts";
|
|
7
7
|
export { detectStatus, detectAttachmentAdded, detectThinking, detectText, detectQuery, detectStatement, detectRows, detectSuggestedQuestions } from "./src/event.ts";
|
|
8
|
-
export { MessageStatusSchema, GenieThoughtSchema, ATTACHMENT_TYPES, GenieQueryAttachmentSchema, GenieAttachmentSchema, GenieMessageSchema, GenieResponseSchema, GenieSpaceSchema, TERMINAL_STATUSES, GenieChatLocationSchema, QuestionEventSchema, MessageEventSchema, StatusEventSchema, AttachmentEventSchema, ThinkingEventSchema, TextEventSchema, QueryEventSchema, StatementEventSchema, RowsEventSchema, SuggestedQuestionsEventSchema, ResultEventSchema, GenieChatEventSchema } from "./src/genie-model.ts";
|
|
9
|
-
export type { MessageStatus, GenieThoughtType, GenieThought, KnownAttachmentType, AttachmentType, GenieQueryAttachment, GenieAttachment, GenieMessage, GenieResponse, GenieSpace, TerminalStatus, GenieChatLocation, QuestionEvent, MessageEvent, StatusEvent, AttachmentEvent, ThinkingEvent, TextEvent, QueryEvent, StatementEvent, RowsEvent, SuggestedQuestionsEvent, ResultEvent, GenieChatEvent, GenieChatEventType, GenieChatEventFields } from "./src/genie-model.ts";
|
|
8
|
+
export { MessageStatusSchema, GenieThoughtSchema, ATTACHMENT_TYPES, GenieQueryAttachmentSchema, GenieTextAttachmentSchema, GenieAttachmentSchema, GenieMessageSchema, GenieResponseSchema, GenieSpaceSchema, TERMINAL_STATUSES, GenieChatLocationSchema, QuestionEventSchema, MessageEventSchema, StatusEventSchema, AttachmentEventSchema, ThinkingEventSchema, TextEventSchema, QueryEventSchema, StatementEventSchema, RowsEventSchema, SuggestedQuestionsEventSchema, ResultEventSchema, GenieChatEventSchema } from "./src/genie-model.ts";
|
|
9
|
+
export type { MessageStatus, GenieThoughtType, GenieThought, KnownAttachmentType, AttachmentType, GenieQueryAttachment, GenieTextAttachmentPurpose, GenieTextAttachment, GenieAttachment, GenieMessage, GenieResponse, GenieSpace, TerminalStatus, GenieChatLocation, QuestionEvent, MessageEvent, StatusEvent, AttachmentEvent, ThinkingEvent, TextEvent, QueryEvent, StatementEvent, RowsEvent, SuggestedQuestionsEvent, ResultEvent, GenieChatEvent, GenieChatEventType, GenieChatEventFields } from "./src/genie-model.ts";
|
package/lib/index.js
CHANGED
|
@@ -7,5 +7,5 @@ export * as event from "./src/event.js";
|
|
|
7
7
|
export * as genieModel from "./src/genie-model.js";
|
|
8
8
|
export { authorizationDetailsGrantRuleSchema, cronScheduleSchema, lifecycleStateSchema, dashboardViewSchema, deleteScheduleRequestSchema, deleteSubscriptionRequestSchema, genieSuggestedQuestionsAttachmentSchema, genieConversationSchema, genieConversationSummarySchema, genieCreateConversationMessageRequestSchema, genieDeleteConversationMessageRequestSchema, genieDeleteConversationRequestSchema, genieExecuteMessageAttachmentQueryRequestSchema, genieExecuteMessageQueryRequestSchema, genieFeedbackRatingSchema, genieGetConversationMessageRequestSchema, genieGetMessageAttachmentQueryResultRequestSchema, genieGetMessageQueryResultRequestSchema, genieGetMessageQueryResultResponseSchema, genieGetQueryResultByAttachmentRequestSchema, genieGetSpaceRequestSchema, genieListConversationMessagesRequestSchema, genieListConversationsRequestSchema, genieListConversationsResponseSchema, genieListSpacesRequestSchema, genieSpaceSchema, genieFeedbackSchema, resultSchema, messageStatusSchema, queryAttachmentParameterSchema, genieResultMetadataSchema, genieSendMessageFeedbackRequestSchema, genieStartConversationMessageRequestSchema, genieTrashSpaceRequestSchema, getDashboardRequestSchema, getPublishedDashboardRequestSchema, getPublishedDashboardTokenInfoRequestSchema, authorizationDetailsSchema, getScheduleRequestSchema, getSubscriptionRequestSchema, listDashboardsRequestSchema, dashboardSchema, listSchedulesRequestSchema, listSubscriptionsRequestSchema, messageErrorTypeSchema, migrateDashboardRequestSchema, publishRequestSchema, publishedDashboardSchema, schedulePauseStatusSchema, subscriptionSubscriberDestinationSchema, subscriptionSubscriberUserSchema, subscriberSchema, textAttachmentPurposeSchema, trashDashboardRequestSchema, unpublishDashboardRequestSchema, updateDashboardRequestSchema, scheduleSchema, createDashboardRequestSchema, createScheduleRequestSchema, subscriptionSchema, genieQueryAttachmentSchema, textAttachmentSchema, genieListSpacesResponseSchema, genieAttachmentSchema, messageErrorSchema, genieMessageSchema, getPublishedDashboardTokenInfoResponseSchema, listDashboardsResponseSchema, listSchedulesResponseSchema, listSubscriptionsResponseSchema, updateScheduleRequestSchema, createSubscriptionRequestSchema, genieListConversationMessagesResponseSchema, genieStartConversationResponseSchema } from "./src/dashboards.js";
|
|
9
9
|
export { detectStatus, detectAttachmentAdded, detectThinking, detectText, detectQuery, detectStatement, detectRows, detectSuggestedQuestions } from "./src/event.js";
|
|
10
|
-
export { MessageStatusSchema, GenieThoughtSchema, ATTACHMENT_TYPES, GenieQueryAttachmentSchema, GenieAttachmentSchema, GenieMessageSchema, GenieResponseSchema, GenieSpaceSchema, TERMINAL_STATUSES, GenieChatLocationSchema, QuestionEventSchema, MessageEventSchema, StatusEventSchema, AttachmentEventSchema, ThinkingEventSchema, TextEventSchema, QueryEventSchema, StatementEventSchema, RowsEventSchema, SuggestedQuestionsEventSchema, ResultEventSchema, GenieChatEventSchema } from "./src/genie-model.js";
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
export { MessageStatusSchema, GenieThoughtSchema, ATTACHMENT_TYPES, GenieQueryAttachmentSchema, GenieTextAttachmentSchema, GenieAttachmentSchema, GenieMessageSchema, GenieResponseSchema, GenieSpaceSchema, TERMINAL_STATUSES, GenieChatLocationSchema, QuestionEventSchema, MessageEventSchema, StatusEventSchema, AttachmentEventSchema, ThinkingEventSchema, TextEventSchema, QueryEventSchema, StatementEventSchema, RowsEventSchema, SuggestedQuestionsEventSchema, ResultEventSchema, GenieChatEventSchema } from "./src/genie-model.js";
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEtBQUssVUFBVSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sS0FBSyxLQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxLQUFLLFVBQVUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsMkJBQTJCLEVBQUUsK0JBQStCLEVBQUUsdUNBQXVDLEVBQUUsdUJBQXVCLEVBQUUsOEJBQThCLEVBQUUsMkNBQTJDLEVBQUUsMkNBQTJDLEVBQUUsb0NBQW9DLEVBQUUsK0NBQStDLEVBQUUscUNBQXFDLEVBQUUseUJBQXlCLEVBQUUsd0NBQXdDLEVBQUUsaURBQWlELEVBQUUsdUNBQXVDLEVBQUUsd0NBQXdDLEVBQUUsNENBQTRDLEVBQUUsMEJBQTBCLEVBQUUsMENBQTBDLEVBQUUsbUNBQW1DLEVBQUUsb0NBQW9DLEVBQUUsNEJBQTRCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixFQUFFLDhCQUE4QixFQUFFLHlCQUF5QixFQUFFLHFDQUFxQyxFQUFFLDBDQUEwQyxFQUFFLDRCQUE0QixFQUFFLHlCQUF5QixFQUFFLGtDQUFrQyxFQUFFLDJDQUEyQyxFQUFFLDBCQUEwQixFQUFFLHdCQUF3QixFQUFFLDRCQUE0QixFQUFFLDJCQUEyQixFQUFFLGVBQWUsRUFBRSwwQkFBMEIsRUFBRSw4QkFBOEIsRUFBRSxzQkFBc0IsRUFBRSw2QkFBNkIsRUFBRSxvQkFBb0IsRUFBRSx3QkFBd0IsRUFBRSx5QkFBeUIsRUFBRSx1Q0FBdUMsRUFBRSxnQ0FBZ0MsRUFBRSxnQkFBZ0IsRUFBRSwyQkFBMkIsRUFBRSwyQkFBMkIsRUFBRSwrQkFBK0IsRUFBRSw0QkFBNEIsRUFBRSxjQUFjLEVBQUUsNEJBQTRCLEVBQUUsMkJBQTJCLEVBQUUsa0JBQWtCLEVBQUUsMEJBQTBCLEVBQUUsb0JBQW9CLEVBQUUsNkJBQTZCLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsNENBQTRDLEVBQUUsNEJBQTRCLEVBQUUsMkJBQTJCLEVBQUUsK0JBQStCLEVBQUUsMkJBQTJCLEVBQUUsK0JBQStCLEVBQUUsMkNBQTJDLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU3eUUsT0FBTyxFQUFFLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckssT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLDBCQUEwQixFQUFFLHlCQUF5QixFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsNkJBQTZCLEVBQUUsaUJBQWlCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEdFTkVSQVRFRCBieSBwcm9qZW4gd2F0Y2ggLSBETyBOT1QgRURJVC5cbi8vIFJlZ2VuZXJhdGVkIGZyb20gdGhlIGV4cG9ydGluZyBtb2R1bGVzIGluIC4vc3JjLlxuLy8gSGFuZCBlZGl0cyBhcmUgb3ZlcndyaXR0ZW4gb24gdGhlIG5leHQgd2F0Y2g7IHRoaXMgZmlsZSBpcyByZWFkLW9ubHkuXG5cbmV4cG9ydCBjb25zdCBQQUNLQUdFX0lERU5USUZJRVIgPSBcIkBkYngtdG9vbHMvc2hhcmVkLWdlbmllXCI7XG5leHBvcnQgKiBhcyBkYXNoYm9hcmRzIGZyb20gXCIuL3NyYy9kYXNoYm9hcmRzLnRzXCI7XG5leHBvcnQgKiBhcyBldmVudCBmcm9tIFwiLi9zcmMvZXZlbnQudHNcIjtcbmV4cG9ydCAqIGFzIGdlbmllTW9kZWwgZnJvbSBcIi4vc3JjL2dlbmllLW1vZGVsLnRzXCI7XG5leHBvcnQgeyBhdXRob3JpemF0aW9uRGV0YWlsc0dyYW50UnVsZVNjaGVtYSwgY3JvblNjaGVkdWxlU2NoZW1hLCBsaWZlY3ljbGVTdGF0ZVNjaGVtYSwgZGFzaGJvYXJkVmlld1NjaGVtYSwgZGVsZXRlU2NoZWR1bGVSZXF1ZXN0U2NoZW1hLCBkZWxldGVTdWJzY3JpcHRpb25SZXF1ZXN0U2NoZW1hLCBnZW5pZVN1Z2dlc3RlZFF1ZXN0aW9uc0F0dGFjaG1lbnRTY2hlbWEsIGdlbmllQ29udmVyc2F0aW9uU2NoZW1hLCBnZW5pZUNvbnZlcnNhdGlvblN1bW1hcnlTY2hlbWEsIGdlbmllQ3JlYXRlQ29udmVyc2F0aW9uTWVzc2FnZVJlcXVlc3RTY2hlbWEsIGdlbmllRGVsZXRlQ29udmVyc2F0aW9uTWVzc2FnZVJlcXVlc3RTY2hlbWEsIGdlbmllRGVsZXRlQ29udmVyc2F0aW9uUmVxdWVzdFNjaGVtYSwgZ2VuaWVFeGVjdXRlTWVzc2FnZUF0dGFjaG1lbnRRdWVyeVJlcXVlc3RTY2hlbWEsIGdlbmllRXhlY3V0ZU1lc3NhZ2VRdWVyeVJlcXVlc3RTY2hlbWEsIGdlbmllRmVlZGJhY2tSYXRpbmdTY2hlbWEsIGdlbmllR2V0Q29udmVyc2F0aW9uTWVzc2FnZVJlcXVlc3RTY2hlbWEsIGdlbmllR2V0TWVzc2FnZUF0dGFjaG1lbnRRdWVyeVJlc3VsdFJlcXVlc3RTY2hlbWEsIGdlbmllR2V0TWVzc2FnZVF1ZXJ5UmVzdWx0UmVxdWVzdFNjaGVtYSwgZ2VuaWVHZXRNZXNzYWdlUXVlcnlSZXN1bHRSZXNwb25zZVNjaGVtYSwgZ2VuaWVHZXRRdWVyeVJlc3VsdEJ5QXR0YWNobWVudFJlcXVlc3RTY2hlbWEsIGdlbmllR2V0U3BhY2VSZXF1ZXN0U2NoZW1hLCBnZW5pZUxpc3RDb252ZXJzYXRpb25NZXNzYWdlc1JlcXVlc3RTY2hlbWEsIGdlbmllTGlzdENvbnZlcnNhdGlvbnNSZXF1ZXN0U2NoZW1hLCBnZW5pZUxpc3RDb252ZXJzYXRpb25zUmVzcG9uc2VTY2hlbWEsIGdlbmllTGlzdFNwYWNlc1JlcXVlc3RTY2hlbWEsIGdlbmllU3BhY2VTY2hlbWEsIGdlbmllRmVlZGJhY2tTY2hlbWEsIHJlc3VsdFNjaGVtYSwgbWVzc2FnZVN0YXR1c1NjaGVtYSwgcXVlcnlBdHRhY2htZW50UGFyYW1ldGVyU2NoZW1hLCBnZW5pZVJlc3VsdE1ldGFkYXRhU2NoZW1hLCBnZW5pZVNlbmRNZXNzYWdlRmVlZGJhY2tSZXF1ZXN0U2NoZW1hLCBnZW5pZVN0YXJ0Q29udmVyc2F0aW9uTWVzc2FnZVJlcXVlc3RTY2hlbWEsIGdlbmllVHJhc2hTcGFjZVJlcXVlc3RTY2hlbWEsIGdldERhc2hib2FyZFJlcXVlc3RTY2hlbWEsIGdldFB1Ymxpc2hlZERhc2hib2FyZFJlcXVlc3RTY2hlbWEsIGdldFB1Ymxpc2hlZERhc2hib2FyZFRva2VuSW5mb1JlcXVlc3RTY2hlbWEsIGF1dGhvcml6YXRpb25EZXRhaWxzU2NoZW1hLCBnZXRTY2hlZHVsZVJlcXVlc3RTY2hlbWEsIGdldFN1YnNjcmlwdGlvblJlcXVlc3RTY2hlbWEsIGxpc3REYXNoYm9hcmRzUmVxdWVzdFNjaGVtYSwgZGFzaGJvYXJkU2NoZW1hLCBsaXN0U2NoZWR1bGVzUmVxdWVzdFNjaGVtYSwgbGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0U2NoZW1hLCBtZXNzYWdlRXJyb3JUeXBlU2NoZW1hLCBtaWdyYXRlRGFzaGJvYXJkUmVxdWVzdFNjaGVtYSwgcHVibGlzaFJlcXVlc3RTY2hlbWEsIHB1Ymxpc2hlZERhc2hib2FyZFNjaGVtYSwgc2NoZWR1bGVQYXVzZVN0YXR1c1NjaGVtYSwgc3Vic2NyaXB0aW9uU3Vic2NyaWJlckRlc3RpbmF0aW9uU2NoZW1hLCBzdWJzY3JpcHRpb25TdWJzY3JpYmVyVXNlclNjaGVtYSwgc3Vic2NyaWJlclNjaGVtYSwgdGV4dEF0dGFjaG1lbnRQdXJwb3NlU2NoZW1hLCB0cmFzaERhc2hib2FyZFJlcXVlc3RTY2hlbWEsIHVucHVibGlzaERhc2hib2FyZFJlcXVlc3RTY2hlbWEsIHVwZGF0ZURhc2hib2FyZFJlcXVlc3RTY2hlbWEsIHNjaGVkdWxlU2NoZW1hLCBjcmVhdGVEYXNoYm9hcmRSZXF1ZXN0U2NoZW1hLCBjcmVhdGVTY2hlZHVsZVJlcXVlc3RTY2hlbWEsIHN1YnNjcmlwdGlvblNjaGVtYSwgZ2VuaWVRdWVyeUF0dGFjaG1lbnRTY2hlbWEsIHRleHRBdHRhY2htZW50U2NoZW1hLCBnZW5pZUxpc3RTcGFjZXNSZXNwb25zZVNjaGVtYSwgZ2VuaWVBdHRhY2htZW50U2NoZW1hLCBtZXNzYWdlRXJyb3JTY2hlbWEsIGdlbmllTWVzc2FnZVNjaGVtYSwgZ2V0UHVibGlzaGVkRGFzaGJvYXJkVG9rZW5JbmZvUmVzcG9uc2VTY2hlbWEsIGxpc3REYXNoYm9hcmRzUmVzcG9uc2VTY2hlbWEsIGxpc3RTY2hlZHVsZXNSZXNwb25zZVNjaGVtYSwgbGlzdFN1YnNjcmlwdGlvbnNSZXNwb25zZVNjaGVtYSwgdXBkYXRlU2NoZWR1bGVSZXF1ZXN0U2NoZW1hLCBjcmVhdGVTdWJzY3JpcHRpb25SZXF1ZXN0U2NoZW1hLCBnZW5pZUxpc3RDb252ZXJzYXRpb25NZXNzYWdlc1Jlc3BvbnNlU2NoZW1hLCBnZW5pZVN0YXJ0Q29udmVyc2F0aW9uUmVzcG9uc2VTY2hlbWEgfSBmcm9tIFwiLi9zcmMvZGFzaGJvYXJkcy50c1wiO1xuZXhwb3J0IHR5cGUgeyBBdXRob3JpemF0aW9uRGV0YWlsc0dyYW50UnVsZSwgQ3JvblNjaGVkdWxlLCBMaWZlY3ljbGVTdGF0ZSwgRGFzaGJvYXJkVmlldywgRGVsZXRlU2NoZWR1bGVSZXF1ZXN0LCBEZWxldGVTdWJzY3JpcHRpb25SZXF1ZXN0LCBHZW5pZVN1Z2dlc3RlZFF1ZXN0aW9uc0F0dGFjaG1lbnQsIEdlbmllQ29udmVyc2F0aW9uLCBHZW5pZUNvbnZlcnNhdGlvblN1bW1hcnksIEdlbmllQ3JlYXRlQ29udmVyc2F0aW9uTWVzc2FnZVJlcXVlc3QsIEdlbmllRGVsZXRlQ29udmVyc2F0aW9uTWVzc2FnZVJlcXVlc3QsIEdlbmllRGVsZXRlQ29udmVyc2F0aW9uUmVxdWVzdCwgR2VuaWVFeGVjdXRlTWVzc2FnZUF0dGFjaG1lbnRRdWVyeVJlcXVlc3QsIEdlbmllRXhlY3V0ZU1lc3NhZ2VRdWVyeVJlcXVlc3QsIEdlbmllRmVlZGJhY2tSYXRpbmcsIEdlbmllR2V0Q29udmVyc2F0aW9uTWVzc2FnZVJlcXVlc3QsIEdlbmllR2V0TWVzc2FnZUF0dGFjaG1lbnRRdWVyeVJlc3VsdFJlcXVlc3QsIEdlbmllR2V0TWVzc2FnZVF1ZXJ5UmVzdWx0UmVxdWVzdCwgR2VuaWVHZXRNZXNzYWdlUXVlcnlSZXN1bHRSZXNwb25zZSwgR2VuaWVHZXRRdWVyeVJlc3VsdEJ5QXR0YWNobWVudFJlcXVlc3QsIEdlbmllR2V0U3BhY2VSZXF1ZXN0LCBHZW5pZUxpc3RDb252ZXJzYXRpb25NZXNzYWdlc1JlcXVlc3QsIEdlbmllTGlzdENvbnZlcnNhdGlvbnNSZXF1ZXN0LCBHZW5pZUxpc3RDb252ZXJzYXRpb25zUmVzcG9uc2UsIEdlbmllTGlzdFNwYWNlc1JlcXVlc3QsIEdlbmllRmVlZGJhY2ssIFJlc3VsdCwgUXVlcnlBdHRhY2htZW50UGFyYW1ldGVyLCBHZW5pZVJlc3VsdE1ldGFkYXRhLCBHZW5pZVNlbmRNZXNzYWdlRmVlZGJhY2tSZXF1ZXN0LCBHZW5pZVN0YXJ0Q29udmVyc2F0aW9uTWVzc2FnZVJlcXVlc3QsIEdlbmllVHJhc2hTcGFjZVJlcXVlc3QsIEdldERhc2hib2FyZFJlcXVlc3QsIEdldFB1Ymxpc2hlZERhc2hib2FyZFJlcXVlc3QsIEdldFB1Ymxpc2hlZERhc2hib2FyZFRva2VuSW5mb1JlcXVlc3QsIEF1dGhvcml6YXRpb25EZXRhaWxzLCBHZXRTY2hlZHVsZVJlcXVlc3QsIEdldFN1YnNjcmlwdGlvblJlcXVlc3QsIExpc3REYXNoYm9hcmRzUmVxdWVzdCwgRGFzaGJvYXJkLCBMaXN0U2NoZWR1bGVzUmVxdWVzdCwgTGlzdFN1YnNjcmlwdGlvbnNSZXF1ZXN0LCBNZXNzYWdlRXJyb3JUeXBlLCBNaWdyYXRlRGFzaGJvYXJkUmVxdWVzdCwgUHVibGlzaFJlcXVlc3QsIFB1Ymxpc2hlZERhc2hib2FyZCwgU2NoZWR1bGVQYXVzZVN0YXR1cywgU3Vic2NyaXB0aW9uU3Vic2NyaWJlckRlc3RpbmF0aW9uLCBTdWJzY3JpcHRpb25TdWJzY3JpYmVyVXNlciwgU3Vic2NyaWJlciwgVGV4dEF0dGFjaG1lbnRQdXJwb3NlLCBUcmFzaERhc2hib2FyZFJlcXVlc3QsIFVucHVibGlzaERhc2hib2FyZFJlcXVlc3QsIFVwZGF0ZURhc2hib2FyZFJlcXVlc3QsIFNjaGVkdWxlLCBDcmVhdGVEYXNoYm9hcmRSZXF1ZXN0LCBDcmVhdGVTY2hlZHVsZVJlcXVlc3QsIFN1YnNjcmlwdGlvbiwgVGV4dEF0dGFjaG1lbnQsIEdlbmllTGlzdFNwYWNlc1Jlc3BvbnNlLCBNZXNzYWdlRXJyb3IsIEdldFB1Ymxpc2hlZERhc2hib2FyZFRva2VuSW5mb1Jlc3BvbnNlLCBMaXN0RGFzaGJvYXJkc1Jlc3BvbnNlLCBMaXN0U2NoZWR1bGVzUmVzcG9uc2UsIExpc3RTdWJzY3JpcHRpb25zUmVzcG9uc2UsIFVwZGF0ZVNjaGVkdWxlUmVxdWVzdCwgQ3JlYXRlU3Vic2NyaXB0aW9uUmVxdWVzdCwgR2VuaWVMaXN0Q29udmVyc2F0aW9uTWVzc2FnZXNSZXNwb25zZSwgR2VuaWVTdGFydENvbnZlcnNhdGlvblJlc3BvbnNlIH0gZnJvbSBcIi4vc3JjL2Rhc2hib2FyZHMudHNcIjtcbmV4cG9ydCB7IGRldGVjdFN0YXR1cywgZGV0ZWN0QXR0YWNobWVudEFkZGVkLCBkZXRlY3RUaGlua2luZywgZGV0ZWN0VGV4dCwgZGV0ZWN0UXVlcnksIGRldGVjdFN0YXRlbWVudCwgZGV0ZWN0Um93cywgZGV0ZWN0U3VnZ2VzdGVkUXVlc3Rpb25zIH0gZnJvbSBcIi4vc3JjL2V2ZW50LnRzXCI7XG5leHBvcnQgeyBNZXNzYWdlU3RhdHVzU2NoZW1hLCBHZW5pZVRob3VnaHRTY2hlbWEsIEFUVEFDSE1FTlRfVFlQRVMsIEdlbmllUXVlcnlBdHRhY2htZW50U2NoZW1hLCBHZW5pZVRleHRBdHRhY2htZW50U2NoZW1hLCBHZW5pZUF0dGFjaG1lbnRTY2hlbWEsIEdlbmllTWVzc2FnZVNjaGVtYSwgR2VuaWVSZXNwb25zZVNjaGVtYSwgR2VuaWVTcGFjZVNjaGVtYSwgVEVSTUlOQUxfU1RBVFVTRVMsIEdlbmllQ2hhdExvY2F0aW9uU2NoZW1hLCBRdWVzdGlvbkV2ZW50U2NoZW1hLCBNZXNzYWdlRXZlbnRTY2hlbWEsIFN0YXR1c0V2ZW50U2NoZW1hLCBBdHRhY2htZW50RXZlbnRTY2hlbWEsIFRoaW5raW5nRXZlbnRTY2hlbWEsIFRleHRFdmVudFNjaGVtYSwgUXVlcnlFdmVudFNjaGVtYSwgU3RhdGVtZW50RXZlbnRTY2hlbWEsIFJvd3NFdmVudFNjaGVtYSwgU3VnZ2VzdGVkUXVlc3Rpb25zRXZlbnRTY2hlbWEsIFJlc3VsdEV2ZW50U2NoZW1hLCBHZW5pZUNoYXRFdmVudFNjaGVtYSB9IGZyb20gXCIuL3NyYy9nZW5pZS1tb2RlbC50c1wiO1xuZXhwb3J0IHR5cGUgeyBNZXNzYWdlU3RhdHVzLCBHZW5pZVRob3VnaHRUeXBlLCBHZW5pZVRob3VnaHQsIEtub3duQXR0YWNobWVudFR5cGUsIEF0dGFjaG1lbnRUeXBlLCBHZW5pZVF1ZXJ5QXR0YWNobWVudCwgR2VuaWVUZXh0QXR0YWNobWVudFB1cnBvc2UsIEdlbmllVGV4dEF0dGFjaG1lbnQsIEdlbmllQXR0YWNobWVudCwgR2VuaWVNZXNzYWdlLCBHZW5pZVJlc3BvbnNlLCBHZW5pZVNwYWNlLCBUZXJtaW5hbFN0YXR1cywgR2VuaWVDaGF0TG9jYXRpb24sIFF1ZXN0aW9uRXZlbnQsIE1lc3NhZ2VFdmVudCwgU3RhdHVzRXZlbnQsIEF0dGFjaG1lbnRFdmVudCwgVGhpbmtpbmdFdmVudCwgVGV4dEV2ZW50LCBRdWVyeUV2ZW50LCBTdGF0ZW1lbnRFdmVudCwgUm93c0V2ZW50LCBTdWdnZXN0ZWRRdWVzdGlvbnNFdmVudCwgUmVzdWx0RXZlbnQsIEdlbmllQ2hhdEV2ZW50LCBHZW5pZUNoYXRFdmVudFR5cGUsIEdlbmllQ2hhdEV2ZW50RmllbGRzIH0gZnJvbSBcIi4vc3JjL2dlbmllLW1vZGVsLnRzXCI7XG4iXX0=
|
package/lib/src/genie-model.d.ts
CHANGED
|
@@ -128,6 +128,23 @@ export declare const GenieQueryAttachmentSchema: z.ZodObject<{
|
|
|
128
128
|
}, z.core.$strip>>>;
|
|
129
129
|
}, z.core.$strip>;
|
|
130
130
|
export type GenieQueryAttachment = z.infer<typeof GenieQueryAttachmentSchema>;
|
|
131
|
+
/**
|
|
132
|
+
* Purpose attached to a Genie text response.
|
|
133
|
+
*
|
|
134
|
+
* The generated Databricks SDK schema currently knows only
|
|
135
|
+
* `FOLLOW_UP_QUESTION`, while the live Genie API also emits
|
|
136
|
+
* `TEXT_ATTACHMENT_PURPOSE_ANSWER` for the primary answer text. Keep the
|
|
137
|
+
* known values discoverable and accept future string values so an additive
|
|
138
|
+
* server-side enum change cannot invalidate an otherwise complete message.
|
|
139
|
+
*/
|
|
140
|
+
export type GenieTextAttachmentPurpose = "FOLLOW_UP_QUESTION" | "TEXT_ATTACHMENT_PURPOSE_ANSWER" | (string & {});
|
|
141
|
+
/** Text attachment schema widened for forward-compatible purpose values. */
|
|
142
|
+
export declare const GenieTextAttachmentSchema: z.ZodObject<{
|
|
143
|
+
content: z.ZodOptional<z.ZodString>;
|
|
144
|
+
id: z.ZodOptional<z.ZodString>;
|
|
145
|
+
purpose: z.ZodOptional<z.ZodCustom<GenieTextAttachmentPurpose, GenieTextAttachmentPurpose>>;
|
|
146
|
+
}, z.core.$strip>;
|
|
147
|
+
export type GenieTextAttachment = z.infer<typeof GenieTextAttachmentSchema>;
|
|
131
148
|
/**
|
|
132
149
|
* `GenieAttachment` with:
|
|
133
150
|
*
|
|
@@ -140,8 +157,10 @@ export type GenieQueryAttachment = z.infer<typeof GenieQueryAttachmentSchema>;
|
|
|
140
157
|
* callers compute it with {@link detectAttachmentType} when
|
|
141
158
|
* they want the literal up-front.
|
|
142
159
|
*
|
|
143
|
-
* `
|
|
144
|
-
*
|
|
160
|
+
* `text` is re-typed to the forward-compatible
|
|
161
|
+
* {@link GenieTextAttachmentSchema}. `attachment_id` and
|
|
162
|
+
* `suggested_questions` pass through unchanged. `attachment_id` is genuinely
|
|
163
|
+
* optional on the wire:
|
|
145
164
|
* the first text attachment Genie emits per turn (the "main
|
|
146
165
|
* answer text") arrives with no id, only the follow-up text
|
|
147
166
|
* attachment gets one.
|
|
@@ -151,11 +170,6 @@ export declare const GenieAttachmentSchema: z.ZodObject<{
|
|
|
151
170
|
suggested_questions: z.ZodOptional<z.ZodObject<{
|
|
152
171
|
questions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
153
172
|
}, z.core.$strip>>;
|
|
154
|
-
text: z.ZodOptional<z.ZodObject<{
|
|
155
|
-
content: z.ZodOptional<z.ZodString>;
|
|
156
|
-
id: z.ZodOptional<z.ZodString>;
|
|
157
|
-
purpose: z.ZodOptional<z.ZodLiteral<"FOLLOW_UP_QUESTION">>;
|
|
158
|
-
}, z.core.$strip>>;
|
|
159
173
|
query: z.ZodOptional<z.ZodObject<{
|
|
160
174
|
description: z.ZodOptional<z.ZodString>;
|
|
161
175
|
id: z.ZodOptional<z.ZodString>;
|
|
@@ -177,6 +191,11 @@ export declare const GenieAttachmentSchema: z.ZodObject<{
|
|
|
177
191
|
content: z.ZodString;
|
|
178
192
|
}, z.core.$strip>>>;
|
|
179
193
|
}, z.core.$strip>>;
|
|
194
|
+
text: z.ZodOptional<z.ZodObject<{
|
|
195
|
+
content: z.ZodOptional<z.ZodString>;
|
|
196
|
+
id: z.ZodOptional<z.ZodString>;
|
|
197
|
+
purpose: z.ZodOptional<z.ZodCustom<GenieTextAttachmentPurpose, GenieTextAttachmentPurpose>>;
|
|
198
|
+
}, z.core.$strip>>;
|
|
180
199
|
attachment_type: z.ZodOptional<z.ZodCustom<AttachmentType, AttachmentType>>;
|
|
181
200
|
}, z.core.$strip>;
|
|
182
201
|
export type GenieAttachment = z.infer<typeof GenieAttachmentSchema>;
|
|
@@ -224,11 +243,6 @@ export declare const GenieMessageSchema: z.ZodObject<{
|
|
|
224
243
|
suggested_questions: z.ZodOptional<z.ZodObject<{
|
|
225
244
|
questions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
226
245
|
}, z.core.$strip>>;
|
|
227
|
-
text: z.ZodOptional<z.ZodObject<{
|
|
228
|
-
content: z.ZodOptional<z.ZodString>;
|
|
229
|
-
id: z.ZodOptional<z.ZodString>;
|
|
230
|
-
purpose: z.ZodOptional<z.ZodLiteral<"FOLLOW_UP_QUESTION">>;
|
|
231
|
-
}, z.core.$strip>>;
|
|
232
246
|
query: z.ZodOptional<z.ZodObject<{
|
|
233
247
|
description: z.ZodOptional<z.ZodString>;
|
|
234
248
|
id: z.ZodOptional<z.ZodString>;
|
|
@@ -250,6 +264,11 @@ export declare const GenieMessageSchema: z.ZodObject<{
|
|
|
250
264
|
content: z.ZodString;
|
|
251
265
|
}, z.core.$strip>>>;
|
|
252
266
|
}, z.core.$strip>>;
|
|
267
|
+
text: z.ZodOptional<z.ZodObject<{
|
|
268
|
+
content: z.ZodOptional<z.ZodString>;
|
|
269
|
+
id: z.ZodOptional<z.ZodString>;
|
|
270
|
+
purpose: z.ZodOptional<z.ZodCustom<GenieTextAttachmentPurpose, GenieTextAttachmentPurpose>>;
|
|
271
|
+
}, z.core.$strip>>;
|
|
253
272
|
attachment_type: z.ZodOptional<z.ZodCustom<AttachmentType, AttachmentType>>;
|
|
254
273
|
}, z.core.$strip>>>;
|
|
255
274
|
auto_regenerate_count: z.ZodOptional<z.ZodNumber>;
|
|
@@ -294,11 +313,6 @@ export declare const GenieResponseSchema: z.ZodPipe<z.ZodObject<{
|
|
|
294
313
|
suggested_questions: z.ZodOptional<z.ZodObject<{
|
|
295
314
|
questions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
296
315
|
}, z.core.$strip>>;
|
|
297
|
-
text: z.ZodOptional<z.ZodObject<{
|
|
298
|
-
content: z.ZodOptional<z.ZodString>;
|
|
299
|
-
id: z.ZodOptional<z.ZodString>;
|
|
300
|
-
purpose: z.ZodOptional<z.ZodLiteral<"FOLLOW_UP_QUESTION">>;
|
|
301
|
-
}, z.core.$strip>>;
|
|
302
316
|
query: z.ZodOptional<z.ZodObject<{
|
|
303
317
|
description: z.ZodOptional<z.ZodString>;
|
|
304
318
|
id: z.ZodOptional<z.ZodString>;
|
|
@@ -320,6 +334,11 @@ export declare const GenieResponseSchema: z.ZodPipe<z.ZodObject<{
|
|
|
320
334
|
content: z.ZodString;
|
|
321
335
|
}, z.core.$strip>>>;
|
|
322
336
|
}, z.core.$strip>>;
|
|
337
|
+
text: z.ZodOptional<z.ZodObject<{
|
|
338
|
+
content: z.ZodOptional<z.ZodString>;
|
|
339
|
+
id: z.ZodOptional<z.ZodString>;
|
|
340
|
+
purpose: z.ZodOptional<z.ZodCustom<GenieTextAttachmentPurpose, GenieTextAttachmentPurpose>>;
|
|
341
|
+
}, z.core.$strip>>;
|
|
323
342
|
attachment_type: z.ZodOptional<z.ZodCustom<AttachmentType, AttachmentType>>;
|
|
324
343
|
}, z.core.$strip>>>;
|
|
325
344
|
auto_regenerate_count: z.ZodOptional<z.ZodNumber>;
|
|
@@ -328,11 +347,6 @@ export declare const GenieResponseSchema: z.ZodPipe<z.ZodObject<{
|
|
|
328
347
|
suggested_questions?: {
|
|
329
348
|
questions?: string[] | undefined;
|
|
330
349
|
} | undefined;
|
|
331
|
-
text?: {
|
|
332
|
-
content?: string | undefined;
|
|
333
|
-
id?: string | undefined;
|
|
334
|
-
purpose?: "FOLLOW_UP_QUESTION" | undefined;
|
|
335
|
-
} | undefined;
|
|
336
350
|
query?: {
|
|
337
351
|
description?: string | undefined;
|
|
338
352
|
id?: string | undefined;
|
|
@@ -354,6 +368,11 @@ export declare const GenieResponseSchema: z.ZodPipe<z.ZodObject<{
|
|
|
354
368
|
content: string;
|
|
355
369
|
}[] | undefined;
|
|
356
370
|
} | undefined;
|
|
371
|
+
text?: {
|
|
372
|
+
content?: string | undefined;
|
|
373
|
+
id?: string | undefined;
|
|
374
|
+
purpose?: GenieTextAttachmentPurpose | undefined;
|
|
375
|
+
} | undefined;
|
|
357
376
|
attachment_type?: AttachmentType | undefined;
|
|
358
377
|
}[], {
|
|
359
378
|
content: string;
|
|
@@ -383,11 +402,6 @@ export declare const GenieResponseSchema: z.ZodPipe<z.ZodObject<{
|
|
|
383
402
|
suggested_questions?: {
|
|
384
403
|
questions?: string[] | undefined;
|
|
385
404
|
} | undefined;
|
|
386
|
-
text?: {
|
|
387
|
-
content?: string | undefined;
|
|
388
|
-
id?: string | undefined;
|
|
389
|
-
purpose?: "FOLLOW_UP_QUESTION" | undefined;
|
|
390
|
-
} | undefined;
|
|
391
405
|
query?: {
|
|
392
406
|
description?: string | undefined;
|
|
393
407
|
id?: string | undefined;
|
|
@@ -409,6 +423,11 @@ export declare const GenieResponseSchema: z.ZodPipe<z.ZodObject<{
|
|
|
409
423
|
content: string;
|
|
410
424
|
}[] | undefined;
|
|
411
425
|
} | undefined;
|
|
426
|
+
text?: {
|
|
427
|
+
content?: string | undefined;
|
|
428
|
+
id?: string | undefined;
|
|
429
|
+
purpose?: GenieTextAttachmentPurpose | undefined;
|
|
430
|
+
} | undefined;
|
|
412
431
|
attachment_type?: AttachmentType | undefined;
|
|
413
432
|
}[] | undefined;
|
|
414
433
|
auto_regenerate_count?: number | undefined;
|
|
@@ -554,11 +573,6 @@ export declare const MessageEventSchema: z.ZodObject<{
|
|
|
554
573
|
suggested_questions: z.ZodOptional<z.ZodObject<{
|
|
555
574
|
questions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
556
575
|
}, z.core.$strip>>;
|
|
557
|
-
text: z.ZodOptional<z.ZodObject<{
|
|
558
|
-
content: z.ZodOptional<z.ZodString>;
|
|
559
|
-
id: z.ZodOptional<z.ZodString>;
|
|
560
|
-
purpose: z.ZodOptional<z.ZodLiteral<"FOLLOW_UP_QUESTION">>;
|
|
561
|
-
}, z.core.$strip>>;
|
|
562
576
|
query: z.ZodOptional<z.ZodObject<{
|
|
563
577
|
description: z.ZodOptional<z.ZodString>;
|
|
564
578
|
id: z.ZodOptional<z.ZodString>;
|
|
@@ -580,6 +594,11 @@ export declare const MessageEventSchema: z.ZodObject<{
|
|
|
580
594
|
content: z.ZodString;
|
|
581
595
|
}, z.core.$strip>>>;
|
|
582
596
|
}, z.core.$strip>>;
|
|
597
|
+
text: z.ZodOptional<z.ZodObject<{
|
|
598
|
+
content: z.ZodOptional<z.ZodString>;
|
|
599
|
+
id: z.ZodOptional<z.ZodString>;
|
|
600
|
+
purpose: z.ZodOptional<z.ZodCustom<GenieTextAttachmentPurpose, GenieTextAttachmentPurpose>>;
|
|
601
|
+
}, z.core.$strip>>;
|
|
583
602
|
attachment_type: z.ZodOptional<z.ZodCustom<AttachmentType, AttachmentType>>;
|
|
584
603
|
}, z.core.$strip>>>;
|
|
585
604
|
auto_regenerate_count: z.ZodOptional<z.ZodNumber>;
|
|
@@ -760,11 +779,6 @@ export declare const ResultEventSchema: z.ZodObject<{
|
|
|
760
779
|
suggested_questions: z.ZodOptional<z.ZodObject<{
|
|
761
780
|
questions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
762
781
|
}, z.core.$strip>>;
|
|
763
|
-
text: z.ZodOptional<z.ZodObject<{
|
|
764
|
-
content: z.ZodOptional<z.ZodString>;
|
|
765
|
-
id: z.ZodOptional<z.ZodString>;
|
|
766
|
-
purpose: z.ZodOptional<z.ZodLiteral<"FOLLOW_UP_QUESTION">>;
|
|
767
|
-
}, z.core.$strip>>;
|
|
768
782
|
query: z.ZodOptional<z.ZodObject<{
|
|
769
783
|
description: z.ZodOptional<z.ZodString>;
|
|
770
784
|
id: z.ZodOptional<z.ZodString>;
|
|
@@ -786,6 +800,11 @@ export declare const ResultEventSchema: z.ZodObject<{
|
|
|
786
800
|
content: z.ZodString;
|
|
787
801
|
}, z.core.$strip>>>;
|
|
788
802
|
}, z.core.$strip>>;
|
|
803
|
+
text: z.ZodOptional<z.ZodObject<{
|
|
804
|
+
content: z.ZodOptional<z.ZodString>;
|
|
805
|
+
id: z.ZodOptional<z.ZodString>;
|
|
806
|
+
purpose: z.ZodOptional<z.ZodCustom<GenieTextAttachmentPurpose, GenieTextAttachmentPurpose>>;
|
|
807
|
+
}, z.core.$strip>>;
|
|
789
808
|
attachment_type: z.ZodOptional<z.ZodCustom<AttachmentType, AttachmentType>>;
|
|
790
809
|
}, z.core.$strip>>>;
|
|
791
810
|
auto_regenerate_count: z.ZodOptional<z.ZodNumber>;
|
|
@@ -865,11 +884,6 @@ export declare const GenieChatEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
|
|
|
865
884
|
suggested_questions: z.ZodOptional<z.ZodObject<{
|
|
866
885
|
questions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
867
886
|
}, z.core.$strip>>;
|
|
868
|
-
text: z.ZodOptional<z.ZodObject<{
|
|
869
|
-
content: z.ZodOptional<z.ZodString>;
|
|
870
|
-
id: z.ZodOptional<z.ZodString>;
|
|
871
|
-
purpose: z.ZodOptional<z.ZodLiteral<"FOLLOW_UP_QUESTION">>;
|
|
872
|
-
}, z.core.$strip>>;
|
|
873
887
|
query: z.ZodOptional<z.ZodObject<{
|
|
874
888
|
description: z.ZodOptional<z.ZodString>;
|
|
875
889
|
id: z.ZodOptional<z.ZodString>;
|
|
@@ -891,6 +905,11 @@ export declare const GenieChatEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
|
|
|
891
905
|
content: z.ZodString;
|
|
892
906
|
}, z.core.$strip>>>;
|
|
893
907
|
}, z.core.$strip>>;
|
|
908
|
+
text: z.ZodOptional<z.ZodObject<{
|
|
909
|
+
content: z.ZodOptional<z.ZodString>;
|
|
910
|
+
id: z.ZodOptional<z.ZodString>;
|
|
911
|
+
purpose: z.ZodOptional<z.ZodCustom<GenieTextAttachmentPurpose, GenieTextAttachmentPurpose>>;
|
|
912
|
+
}, z.core.$strip>>;
|
|
894
913
|
attachment_type: z.ZodOptional<z.ZodCustom<AttachmentType, AttachmentType>>;
|
|
895
914
|
}, z.core.$strip>>>;
|
|
896
915
|
auto_regenerate_count: z.ZodOptional<z.ZodNumber>;
|
|
@@ -995,11 +1014,6 @@ export declare const GenieChatEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
|
|
|
995
1014
|
suggested_questions: z.ZodOptional<z.ZodObject<{
|
|
996
1015
|
questions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
997
1016
|
}, z.core.$strip>>;
|
|
998
|
-
text: z.ZodOptional<z.ZodObject<{
|
|
999
|
-
content: z.ZodOptional<z.ZodString>;
|
|
1000
|
-
id: z.ZodOptional<z.ZodString>;
|
|
1001
|
-
purpose: z.ZodOptional<z.ZodLiteral<"FOLLOW_UP_QUESTION">>;
|
|
1002
|
-
}, z.core.$strip>>;
|
|
1003
1017
|
query: z.ZodOptional<z.ZodObject<{
|
|
1004
1018
|
description: z.ZodOptional<z.ZodString>;
|
|
1005
1019
|
id: z.ZodOptional<z.ZodString>;
|
|
@@ -1021,6 +1035,11 @@ export declare const GenieChatEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
|
|
|
1021
1035
|
content: z.ZodString;
|
|
1022
1036
|
}, z.core.$strip>>>;
|
|
1023
1037
|
}, z.core.$strip>>;
|
|
1038
|
+
text: z.ZodOptional<z.ZodObject<{
|
|
1039
|
+
content: z.ZodOptional<z.ZodString>;
|
|
1040
|
+
id: z.ZodOptional<z.ZodString>;
|
|
1041
|
+
purpose: z.ZodOptional<z.ZodCustom<GenieTextAttachmentPurpose, GenieTextAttachmentPurpose>>;
|
|
1042
|
+
}, z.core.$strip>>;
|
|
1024
1043
|
attachment_type: z.ZodOptional<z.ZodCustom<AttachmentType, AttachmentType>>;
|
|
1025
1044
|
}, z.core.$strip>>>;
|
|
1026
1045
|
auto_regenerate_count: z.ZodOptional<z.ZodNumber>;
|
package/lib/src/genie-model.js
CHANGED
|
@@ -88,6 +88,12 @@ export const ATTACHMENT_TYPES = [
|
|
|
88
88
|
export const GenieQueryAttachmentSchema = SDKGenieQueryAttachmentSchema.extend({
|
|
89
89
|
thoughts: z.array(GenieThoughtSchema).optional(),
|
|
90
90
|
});
|
|
91
|
+
/** Text attachment schema widened for forward-compatible purpose values. */
|
|
92
|
+
export const GenieTextAttachmentSchema = dashboards.textAttachmentSchema.extend({
|
|
93
|
+
purpose: z
|
|
94
|
+
.custom((value) => typeof value === "string")
|
|
95
|
+
.optional(),
|
|
96
|
+
});
|
|
91
97
|
/**
|
|
92
98
|
* `GenieAttachment` with:
|
|
93
99
|
*
|
|
@@ -100,14 +106,17 @@ export const GenieQueryAttachmentSchema = SDKGenieQueryAttachmentSchema.extend({
|
|
|
100
106
|
* callers compute it with {@link detectAttachmentType} when
|
|
101
107
|
* they want the literal up-front.
|
|
102
108
|
*
|
|
103
|
-
* `
|
|
104
|
-
*
|
|
109
|
+
* `text` is re-typed to the forward-compatible
|
|
110
|
+
* {@link GenieTextAttachmentSchema}. `attachment_id` and
|
|
111
|
+
* `suggested_questions` pass through unchanged. `attachment_id` is genuinely
|
|
112
|
+
* optional on the wire:
|
|
105
113
|
* the first text attachment Genie emits per turn (the "main
|
|
106
114
|
* answer text") arrives with no id, only the follow-up text
|
|
107
115
|
* attachment gets one.
|
|
108
116
|
*/
|
|
109
117
|
export const GenieAttachmentSchema = SDKGenieAttachmentSchema.extend({
|
|
110
118
|
query: GenieQueryAttachmentSchema.optional(),
|
|
119
|
+
text: GenieTextAttachmentSchema.optional(),
|
|
111
120
|
attachment_type: z.custom((v) => typeof v === "string").optional(),
|
|
112
121
|
});
|
|
113
122
|
/**
|
|
@@ -442,4 +451,4 @@ export const GenieChatEventSchema = z.discriminatedUnion("type", [
|
|
|
442
451
|
SuggestedQuestionsEventSchema,
|
|
443
452
|
ResultEventSchema,
|
|
444
453
|
]);
|
|
445
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuaWUtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuaWUtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0NHO0FBRUgsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDeEIsT0FBTyxLQUFLLFVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUU5QyxrRkFBa0Y7QUFDbEYsaUZBQWlGO0FBQ2pGLDZEQUE2RDtBQUM3RCxNQUFNLEVBQ0osbUJBQW1CLEVBQUUsbUJBQW1CLEVBQ3hDLHFCQUFxQixFQUFFLHdCQUF3QixFQUMvQyxrQkFBa0IsRUFBRSxxQkFBcUIsRUFDekMsMEJBQTBCLEVBQUUsNkJBQTZCLEVBQ3pELGdCQUFnQixFQUFFLG1CQUFtQixHQUN0QyxHQUFHLFVBQVUsQ0FBQztBQVVmLG9FQUFvRTtBQUNwRSxpRUFBaUU7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLENBQUM7QUFpQy9COzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDekMsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQW1CLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUM7SUFDdEUsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDcEIsQ0FBQyxDQUFDO0FBR0gsNkVBQTZFO0FBRTdFOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDOUIsT0FBTztJQUNQLE1BQU07SUFDTixxQkFBcUI7Q0FDZSxDQUFDO0FBSXZDLHlFQUF5RTtBQUV6RTs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLE1B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LE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQztJQUN0QyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7Q0FDL0IsQ0FBQyxDQUFDO0FBR0g7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLENBQUM7SUFDNUQsYUFBYSxFQUFFLElBQUk7Q0FDcEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNSLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUN6QixNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNqQyxPQUFPLEVBQUUsa0JBQWtCO0NBQzVCLENBQUMsQ0FBQztBQUdIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ0c7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFO0lBQy9ELG1CQUFtQjtJQUNuQixrQkFBa0I7SUFDbEIsaUJBQWlCO0lBQ2pCLHFCQUFxQjtJQUNyQixtQkFBbUI7SUFDbkIsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixvQkFBb0I7SUFDcEIsZUFBZTtJQUNmLDZCQUE2QjtJQUM3QixpQkFBaUI7Q0FDbEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBXaXJlLWZvcm1hdCB6b2Qgc2NoZW1hcyArIHR5cGVzIGFuZCBoaWdoLWxldmVsIGV2ZW50IHZvY2FidWxhcnlcbiAqIGZvciB0aGUgR2VuaWUgY2hhdCBkcml2ZXIuXG4gKlxuICogVHdvIHJlbGF0ZWQgbGF5ZXJzIGxpdmUgaGVyZTpcbiAqXG4gKiAgIDEuIEdlbmllIHdpcmUgc2hhcGVzIGRlcml2ZWQgZnJvbSB0aGlzIHBhY2thZ2UncyBvd24gZ2VuZXJhdGVkXG4gKiAgICAgIGBkYXNoYm9hcmRzYCBzY2hlbWFzIChyZWdlbmVyYXRlZCBmcm9tIHRoZSB1cHN0cmVhbVxuICogICAgICBgQGRhdGFicmlja3Mvc2RrLWV4cGVyaW1lbnRhbGAgYGFwaXMvZGFzaGJvYXJkcy9tb2RlbC5kLnRzYFxuICogICAgICBieSB0aGUgZW5naW5lJ3MgY29kZWdlbiBvbiBzeW50aCkuIFdlIGV4dGVuZCB0aGUgU0RLIHNjaGVtYXMgd2hlcmUgR2VuaWVcbiAqICAgICAgc2hpcHMgZmllbGRzIG9uIHRoZSB3aXJlIHRoYXQgdGhlIFNESyBkb2Vzbid0IGN1cnJlbnRseSB0eXBlOlxuICpcbiAqICAgICAgICAtIGBHZW5pZU1lc3NhZ2UuYXV0b19yZWdlbmVyYXRlX2NvdW50OiBudW1iZXJgIChzdGFtcGVkXG4gKiAgICAgICAgICBvbiBldmVyeSB3aXJlIG1lc3NhZ2UsIG9taXR0ZWQgZnJvbSB0aGUgU0RLIHNoYXBlKS5cbiAqICAgICAgICAtIGBHZW5pZVF1ZXJ5QXR0YWNobWVudC50aG91Z2h0czogR2VuaWVUaG91Z2h0W11gICh0aGVcbiAqICAgICAgICAgIHN0cmVhbWVkIHJlYXNvbmluZyBwYXlsb2FkIHdpdGggYERFU0NSSVBUSU9OYCxcbiAqICAgICAgICAgIGBEQVRBX1NPVVJDSU5HYCwgYFNURVBTYCwgYW5kIGBVTkRFUlNUQU5ESU5HYCB0aG91Z2h0XG4gKiAgICAgICAgICBraW5kcykuXG4gKiAgICAgICAgLSBgR2VuaWVBdHRhY2htZW50LmF0dGFjaG1lbnRfdHlwZTogQXR0YWNobWVudFR5cGVgXG4gKiAgICAgICAgICAoYW4gb3B0aW9uYWwgZGlzY3JpbWluYXRvciBsaXRlcmFsIHNvIGNhbGxlcnMgY2FuXG4gKiAgICAgICAgICBgc3dpdGNoIChhdHQuYXR0YWNobWVudF90eXBlKWAgaW5zdGVhZCBvZiBwcm9iaW5nXG4gKiAgICAgICAgICB3aGljaCBzdWIta2V5IGlzIHBvcHVsYXRlZDsgY29tcHV0ZSBpdCB3aXRoXG4gKiAgICAgICAgICB7QGxpbmsgZGV0ZWN0QXR0YWNobWVudFR5cGV9KS5cbiAqXG4gKiAgIDIuIEV2ZW50IHZvY2FidWxhcnkgZm9yIHRoZSBoaWdoLWxldmVsIGBnZW5pZUV2ZW50Q2hhdGBcbiAqICAgICAgZHJpdmVyLiBFYWNoIGV2ZW50IGlzIGEgZmxhdCBgei5vYmplY3RgIHdpdGggYSBgdHlwZWBcbiAqICAgICAgbGl0ZXJhbCBkaXNjcmltaW5hdG9yIGFuZCBzbmFrZV9jYXNlIHBheWxvYWQgZmllbGRzIGhvaXN0ZWRcbiAqICAgICAgdG8gdGhlIHRvcCBsZXZlbCAobm8gYHBheWxvYWRgIHdyYXBwZXIpLiBFdmVudHMgdGhhdCBzaGFyZVxuICogICAgICB0aGUgYXR0YWNobWVudC1zY29wZWQgbG9jYXRpb24gdXNlXG4gKiAgICAgIHtAbGluayBHZW5pZUNoYXRMb2NhdGlvblNjaGVtYX0gYXMgYSBiYXNlOyBldmVudHMgdGhhdFxuICogICAgICBkb24ndCBjYXJyeSBhbiBgYXR0YWNobWVudF9pZGAgKHN0YXR1cywgcmVzdWx0KSBvbWl0IGl0LlxuICogICAgICB7QGxpbmsgR2VuaWVDaGF0RXZlbnRTY2hlbWF9IGJ1bmRsZXMgdGhlIHZhcmlhbnRzIGludG8gb25lXG4gKiAgICAgIGRpc2NyaW1pbmF0ZWQgdW5pb24uXG4gKlxuICogUHVyZSB0eXBlczogbm8gcnVudGltZSBpbXBvcnRzIGJleW9uZCB6b2QgKyB0aGUgZ2VuZXJhdGVkXG4gKiBgZGFzaGJvYXJkc2Agc2NoZW1hcywgbm8gTm9kZS1vbmx5IGNvZGUsIHNhZmUgZm9yIGJyb3dzZXIgYnVuZGxlcy5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgc3RyaW5nIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5pbXBvcnQgKiBhcyBkYXNoYm9hcmRzIGZyb20gXCIuL2Rhc2hib2FyZHMudHNcIjtcblxuLy8gVGhlIGdlbmVyYXRlZCBTREsgc2NoZW1hcyBsaXZlIGluIHRoZSBzaWJsaW5nIGAuL2Rhc2hib2FyZHMudHNgLCB3cml0dGVuIGJ5IHRoZVxuLy8gZW5naW5lJ3MgY29kZWdlbiBmcm9tIHRoZSB1cHN0cmVhbSBgLmQudHNgLiBBbGlhcyB0aGUgaGFuZGZ1bCBHZW5pZSBleHRlbmRzIHNvXG4vLyB0aGUgd2lkZW5lZCBzY2hlbWFzIGJlbG93IHJlYWQgYWdhaW5zdCBzaG9ydCwgbG9jYWwgbmFtZXMuXG5jb25zdCB7XG4gIG1lc3NhZ2VTdGF0dXNTY2hlbWE6IE1lc3NhZ2VTdGF0dXNTY2hlbWEsXG4gIGdlbmllQXR0YWNobWVudFNjaGVtYTogU0RLR2VuaWVBdHRhY2htZW50U2NoZW1hLFxuICBnZW5pZU1lc3NhZ2VTY2hlbWE6IFNES0dlbmllTWVzc2FnZVNjaGVtYSxcbiAgZ2VuaWVRdWVyeUF0dGFjaG1lbnRTY2hlbWE6IFNES0dlbmllUXVlcnlBdHRhY2htZW50U2NoZW1hLFxuICBnZW5pZVNwYWNlU2NoZW1hOiBTREtHZW5pZVNwYWNlU2NoZW1hLFxufSA9IGRhc2hib2FyZHM7XG5cbi8qKlxuICogVGhlIFNESydzIGBNZXNzYWdlU3RhdHVzYCB0eXBlLCByZS1leHBvcnRlZCBzbyBjb25zdW1lcnMgb2YgdGhlXG4gKiBHZW5pZSBjb250cmFjdCBnZXQgdGhlIGZ1bGwgd2lyZSB2b2NhYnVsYXJ5IGZyb20gYSBzaW5nbGUgaW1wb3J0XG4gKiBwYXRoIC0gbWlycm9ycyB0aGUgcmUtZXhwb3J0cyBvZiB0aGUgb3RoZXIgU0RLLWRlcml2ZWQgc2NoZW1hc1xuICogYmVsb3cuXG4gKi9cbmV4cG9ydCB0eXBlIE1lc3NhZ2VTdGF0dXMgPSBkYXNoYm9hcmRzLk1lc3NhZ2VTdGF0dXM7XG5cbi8vIFJlLWV4cG9ydCB0aGUgU0RLJ3MgYE1lc3NhZ2VTdGF0dXNgIHNjaGVtYSBzbyBjYWxsZXJzIGNhbiBwYXJzZSBhXG4vLyByYXcgc3RhdHVzIHdpdGhvdXQgcmVhY2hpbmcgYmFjayBpbnRvIHRoZSBnZW5lcmF0ZWQgbmFtZXNwYWNlLlxuZXhwb3J0IHsgTWVzc2FnZVN0YXR1c1NjaGVtYSB9O1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB0aG91Z2h0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogR2VuaWUncyBwZXItcXVlcnkgXCJ0aG91Z2h0c1wiIHN1cmZhY2UuIFRoZXNlIGFwcGVhciBvbiB0aGVcbiAqIGAvbWVzc2FnZXMve2lkfWAgd2lyZSB1bmRlciBgYXR0YWNobWVudHNbaV0ucXVlcnkudGhvdWdodHNbXWAgYnV0XG4gKiBhcmUgbm90IHR5cGVkIG9uIHRoZSBTREsncyBgR2VuaWVRdWVyeUF0dGFjaG1lbnRgIGF0IHYwLjE3LlxuICpcbiAqIEtub3duIHRob3VnaHQgdHlwZXMgb2JzZXJ2ZWQgaW4gcHJvZHVjdGlvbiBwb2xsczpcbiAqXG4gKiAgIC0gYFRIT1VHSFRfVFlQRV9ERVNDUklQVElPTmA6IGEgb25lLXBhcmFncmFwaCByZXN0YXRlbWVudCBvZlxuICogICAgIHdoYXQgdGhlIHVzZXIgYXNrZWQuIFRoZSBmaW5hbCBgcXVlcnkuZGVzY3JpcHRpb25gIGZpZWxkIG9uXG4gKiAgICAgdGhlIGF0dGFjaG1lbnQgY2FycmllcyB0aGUgc2FtZSB0ZXh0LlxuICogICAtIGBUSE9VR0hUX1RZUEVfREFUQV9TT1VSQ0lOR2A6IG1hcmtkb3duIGJ1bGxldHMgb2YgdGhlXG4gKiAgICAgZnVsbHktcXVhbGlmaWVkIGBjYXRhbG9nLnNjaGVtYS50YWJsZWAgc291cmNlcyBHZW5pZSBjaG9zZS5cbiAqICAgLSBgVEhPVUdIVF9UWVBFX1NURVBTYDogdGhlIGhpZ2gtbGV2ZWwgcGxhbiBHZW5pZSB3cm90ZSBiZWZvcmVcbiAqICAgICBydW5uaW5nIFNRTCAob25lIGJ1bGxldCBwZXIgc3RlcCkuXG4gKiAgIC0gYFRIT1VHSFRfVFlQRV9VTkRFUlNUQU5ESU5HYDogYW1iaWd1aXR5IC8gaW50ZXJwcmV0YXRpb25cbiAqICAgICBub3RlcyAoZS5nLiBcIidyZXZlbnVlJyBjb3VsZCBiZSBpbnRlcnByZXRlZCBhcyBncm9zcyxcbiAqICAgICBuZXQsIG9yIHJlY29nbml6ZWQgcmV2ZW51ZS4uLlwiKS5cbiAqXG4gKiBPcGVuIGF0IHRoZSB0eXBlIGxldmVsIChgfCAoc3RyaW5nICYge30pYCkgc28gYSBuZXcgc2VydmVyLXNpZGVcbiAqIHRob3VnaHQgdHlwZSBkb2Vzbid0IGJyZWFrIGNvbXBpbGF0aW9uOyB0aGUgZm91ciBrbm93biB0eXBlc1xuICogc3RpbGwgbmFycm93IGNvcnJlY3RseSB1bmRlciBgc3dpdGNoYC5cbiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVUaG91Z2h0VHlwZSA9XG4gIHwgXCJUSE9VR0hUX1RZUEVfREVTQ1JJUFRJT05cIlxuICB8IFwiVEhPVUdIVF9UWVBFX0RBVEFfU09VUkNJTkdcIlxuICB8IFwiVEhPVUdIVF9UWVBFX1NURVBTXCJcbiAgfCBcIlRIT1VHSFRfVFlQRV9VTkRFUlNUQU5ESU5HXCJcbiAgfCAoc3RyaW5nICYge30pO1xuXG4vKipcbiAqIE9uZSByZWFzb25pbmcgc3RlcCBvbiBhIHF1ZXJ5IGF0dGFjaG1lbnQuIFNlZVxuICoge0BsaW5rIEdlbmllVGhvdWdodFR5cGV9IGZvciB0aGUga25vd24gYHRob3VnaHRfdHlwZWAgdmFsdWVzLlxuICovXG5leHBvcnQgY29uc3QgR2VuaWVUaG91Z2h0U2NoZW1hID0gei5vYmplY3Qoe1xuICB0aG91Z2h0X3R5cGU6IHouY3VzdG9tPEdlbmllVGhvdWdodFR5cGU+KCh2KSA9PiB0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIiksXG4gIGNvbnRlbnQ6IHouc3RyaW5nKCksXG59KTtcbmV4cG9ydCB0eXBlIEdlbmllVGhvdWdodCA9IHouaW5mZXI8dHlwZW9mIEdlbmllVGhvdWdodFNjaGVtYT47XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIGF0dGFjaG1lbnQgZGlzY3JpbWluYXRvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogRGlzY3JpbWluYXRvciBmb3Igd2hhdCdzIGluc2lkZSBhIGBHZW5pZUF0dGFjaG1lbnRgLiBHZW5pZSBvbmx5XG4gKiBldmVyIHBvcHVsYXRlcyBvbmUgb2YgYHF1ZXJ5YCAvIGB0ZXh0YCAvIGBzdWdnZXN0ZWRfcXVlc3Rpb25zYFxuICogcGVyIGF0dGFjaG1lbnQuIE9wZW4gdmlhIGAoc3RyaW5nICYge30pYCBzbyBhIG5ldyBzZXJ2ZXItc2lkZVxuICogdHlwZSBkb2Vzbid0IGJyZWFrIGNvbXBpbGF0aW9uOyB0aGUgdGhyZWUga25vd24gdHlwZXMgc3RpbGxcbiAqIG5hcnJvdyBjb3JyZWN0bHkgdW5kZXIgYHN3aXRjaGAuXG4gKlxuICogTGlmdGVkIGludG8gdGhlIHNjaGVtYSBhcyB0aGUgb3B0aW9uYWxcbiAqIHtAbGluayBHZW5pZUF0dGFjaG1lbnRTY2hlbWF9LmBhdHRhY2htZW50X3R5cGVgIGZpZWxkIChjb21wdXRlXG4gKiBpdCB3aXRoIHtAbGluayBkZXRlY3RBdHRhY2htZW50VHlwZX0pIHNvIGNvbnN1bWVycyBjYW4gYnJhbmNoXG4gKiBvbiBhIGxpdGVyYWwgaW5zdGVhZCBvZiBwcm9iaW5nIHdoaWNoIHN1Yi1vYmplY3Qga2V5IGlzXG4gKiBwcmVzZW50LiBBbHNvIHN1cmZhY2VkIG9uIHtAbGluayBBdHRhY2htZW50RXZlbnR9J3MgcGF5bG9hZCBhc1xuICogYGF0dGFjaG1lbnRfdHlwZWAgKHZzIGEgYmFyZSBgdHlwZWApIHRvIGtlZXAgdGhlIGZpZWxkIGNsZWFyIG9mXG4gKiB0aGUgZXZlbnQtdW5pb24gZGlzY3JpbWluYXRvciBrZXkuXG4gKi9cbmV4cG9ydCBjb25zdCBBVFRBQ0hNRU5UX1RZUEVTID0gW1xuICBcInF1ZXJ5XCIsXG4gIFwidGV4dFwiLFxuICBcInN1Z2dlc3RlZF9xdWVzdGlvbnNcIixcbl0gYXMgY29uc3Qgc2F0aXNmaWVzIHJlYWRvbmx5IHN0cmluZ1tdO1xuZXhwb3J0IHR5cGUgS25vd25BdHRhY2htZW50VHlwZSA9ICh0eXBlb2YgQVRUQUNITUVOVF9UWVBFUylbbnVtYmVyXTtcbmV4cG9ydCB0eXBlIEF0dGFjaG1lbnRUeXBlID0gS25vd25BdHRhY2htZW50VHlwZSB8IChzdHJpbmcgJiB7fSk7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0gd2lkZW5lZCB3aXJlIHNjaGVtYXMgKyB0eXBlcyAtLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBgR2VuaWVRdWVyeUF0dGFjaG1lbnRgIHdpZGVuZWQgd2l0aCB0aGUgYHRob3VnaHRzW11gIGZpZWxkIHRoZVxuICogR2VuaWUgd2lyZSBleHBvc2VzIGJ1dCB0aGUgU0RLIGRvZXNuJ3QgY3VycmVudGx5IHR5cGUuIEV2ZXJ5XG4gKiBvdGhlciBmaWVsZCAoYGRlc2NyaXB0aW9uYCwgYHF1ZXJ5YCwgYHN0YXRlbWVudF9pZGAsXG4gKiBgcXVlcnlfcmVzdWx0X21ldGFkYXRhYCwgYHRpdGxlYCwgYHBhcmFtZXRlcnNgLFxuICogYGxhc3RfdXBkYXRlZF90aW1lc3RhbXBgLCBgaWRgKSBmbG93cyB0aHJvdWdoIHZlcmJhdGltIGZyb21cbiAqIHRoZSBTREsgc2NoZW1hLlxuICovXG5leHBvcnQgY29uc3QgR2VuaWVRdWVyeUF0dGFjaG1lbnRTY2hlbWEgPSBTREtHZW5pZVF1ZXJ5QXR0YWNobWVudFNjaGVtYS5leHRlbmQoe1xuICB0aG91Z2h0czogei5hcnJheShHZW5pZVRob3VnaHRTY2hlbWEpLm9wdGlvbmFsKCksXG59KTtcbmV4cG9ydCB0eXBlIEdlbmllUXVlcnlBdHRhY2htZW50ID0gei5pbmZlcjx0eXBlb2YgR2VuaWVRdWVyeUF0dGFjaG1lbnRTY2hlbWE+O1xuXG4vKipcbiAqIGBHZW5pZUF0dGFjaG1lbnRgIHdpdGg6XG4gKlxuICogICAtIGBxdWVyeWAgcmUtdHlwZWQgdG8gdGhlIHRob3VnaHRzLWF3YXJlXG4gKiAgICAge0BsaW5rIEdlbmllUXVlcnlBdHRhY2htZW50U2NoZW1hfS5cbiAqICAgLSBgYXR0YWNobWVudF90eXBlYCBkaXNjcmltaW5hdG9yIGxpdGVyYWxcbiAqICAgICAoe0BsaW5rIEF0dGFjaG1lbnRUeXBlfSkgc28gY29uc3VtZXJzIGNhbiBgc3dpdGNoXG4gKiAgICAgKGF0dC5hdHRhY2htZW50X3R5cGUpYCB0byBuYXJyb3cgd2hpY2ggc3ViLW9iamVjdCBpc1xuICogICAgIHBvcHVsYXRlZC4gT3B0aW9uYWwgb24gdGhlIHdpcmUgKEdlbmllIGRvZXNuJ3Qgc2VuZCBpdCk7XG4gKiAgICAgY2FsbGVycyBjb21wdXRlIGl0IHdpdGgge0BsaW5rIGRldGVjdEF0dGFjaG1lbnRUeXBlfSB3aGVuXG4gKiAgICAgdGhleSB3YW50IHRoZSBsaXRlcmFsIHVwLWZyb250LlxuICpcbiAqIGBhdHRhY2htZW50X2lkYCwgYHRleHRgLCBhbmQgYHN1Z2dlc3RlZF9xdWVzdGlvbnNgIHBhc3MgdGhyb3VnaFxuICogdW5jaGFuZ2VkLiBgYXR0YWNobWVudF9pZGAgaXMgZ2VudWluZWx5IG9wdGlvbmFsIG9uIHRoZSB3aXJlOlxuICogdGhlIGZpcnN0IHRleHQgYXR0YWNobWVudCBHZW5pZSBlbWl0cyBwZXIgdHVybiAodGhlIFwibWFpblxuICogYW5zd2VyIHRleHRcIikgYXJyaXZlcyB3aXRoIG5vIGlkLCBvbmx5IHRoZSBmb2xsb3ctdXAgdGV4dFxuICogYXR0YWNobWVudCBnZXRzIG9uZS5cbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmllQXR0YWNobWVudFNjaGVtYSA9IFNES0dlbmllQXR0YWNobWVudFNjaGVtYS5leHRlbmQoe1xuICBxdWVyeTogR2VuaWVRdWVyeUF0dGFjaG1lbnRTY2hlbWEub3B0aW9uYWwoKSxcbiAgYXR0YWNobWVudF90eXBlOiB6LmN1c3RvbTxBdHRhY2htZW50VHlwZT4oKHYpID0+IHR5cGVvZiB2ID09PSBcInN0cmluZ1wiKS5vcHRpb25hbCgpLFxufSk7XG5leHBvcnQgdHlwZSBHZW5pZUF0dGFjaG1lbnQgPSB6LmluZmVyPHR5cGVvZiBHZW5pZUF0dGFjaG1lbnRTY2hlbWE+O1xuXG4vKipcbiAqIGBHZW5pZU1lc3NhZ2VgIHdpZGVuZWQgd2l0aDpcbiAqXG4gKiAgIC0gYGF1dG9fcmVnZW5lcmF0ZV9jb3VudGA6IG51bWJlciBzdGFtcGVkIG9uIGV2ZXJ5IHdpcmVcbiAqICAgICBtZXNzYWdlIHRoYXQgdGhlIFNESyB0eXBlIG9taXRzIGF0IHYwLjE3LlxuICogICAtIGBhdHRhY2htZW50c2A6IHJlLXR5cGVkIHRvIHRoZSBsb2NhbFxuICogICAgIHtAbGluayBHZW5pZUF0dGFjaG1lbnRTY2hlbWF9IHNvXG4gKiAgICAgYGF0dGFjaG1lbnQucXVlcnk/LnRob3VnaHRzYCAoYW5kIHRoZVxuICogICAgIGBhdHRhY2htZW50X3R5cGVgIGRpc2NyaW1pbmF0b3IpIGlzIHJlYWNoYWJsZSB3aXRob3V0IGFcbiAqICAgICBjYXN0LlxuICpcbiAqIEV2ZXJ5IG90aGVyIGZpZWxkIChgaWRgLCBgc3BhY2VfaWRgLCBgY29udmVyc2F0aW9uX2lkYCxcbiAqIGB1c2VyX2lkYCwgYGNyZWF0ZWRfdGltZXN0YW1wYCwgYGxhc3RfdXBkYXRlZF90aW1lc3RhbXBgLFxuICogYHN0YXR1c2AsIGBjb250ZW50YCwgYG1lc3NhZ2VfaWRgLCBgcXVlcnlfcmVzdWx0YCwgYGVycm9yYCxcbiAqIGBmZWVkYmFja2ApIHBhc3NlcyB0aHJvdWdoIGZyb20gdGhlIFNESyBzY2hlbWEuXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5pZU1lc3NhZ2VTY2hlbWEgPSBTREtHZW5pZU1lc3NhZ2VTY2hlbWEuZXh0ZW5kKHtcbiAgYXR0YWNobWVudHM6IHouYXJyYXkoR2VuaWVBdHRhY2htZW50U2NoZW1hKS5vcHRpb25hbCgpLFxuICBhdXRvX3JlZ2VuZXJhdGVfY291bnQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbn0pO1xuZXhwb3J0IHR5cGUgR2VuaWVNZXNzYWdlID0gei5pbmZlcjx0eXBlb2YgR2VuaWVNZXNzYWdlU2NoZW1hPjtcblxuLyoqXG4gKiBEb21haW4gcHJvamVjdGlvbiBvZiB7QGxpbmsgR2VuaWVNZXNzYWdlU2NoZW1hfSB0aGF0IGRyb3BzIGV2ZXJ5XG4gKiB0dXJuLWxldmVsIGZpZWxkIChgaWRgLCBgc3RhdHVzYCwgYGNyZWF0ZWRfdGltZXN0YW1wYCxcbiAqIGBxdWVyeV9yZXN1bHRgLCAuLi4pIGFuZCB5aWVsZHMganVzdCB0aGUgcmVzcG9uc2UgcGF5bG9hZCBhcyBhXG4gKiBmbGF0IGBHZW5pZUF0dGFjaG1lbnRbXWAuIFBhcnNlcyB0aGUgc2FtZSB3aXJlIHNoYXBlIGFzXG4gKiB7QGxpbmsgR2VuaWVNZXNzYWdlU2NoZW1hfTsgbWlzc2luZyBgYXR0YWNobWVudHNgIGRlZmF1bHRzIHRvXG4gKiBgW11gIHNvIHRoZSBvdXRwdXQgaXMgYWx3YXlzIGFuIGFycmF5LlxuICpcbiAqIFVzZSB3aGVuIGNvbnN1bWVycyBvbmx5IGNhcmUgYWJvdXQgdGhlIG1vZGVsJ3MgcmVzcG9uc2VcbiAqIGF0dGFjaG1lbnRzIGFuZCBub3QgdGhlIHN1cnJvdW5kaW5nIG1lc3NhZ2UgZW52ZWxvcGUuXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5pZVJlc3BvbnNlU2NoZW1hID0gR2VuaWVNZXNzYWdlU2NoZW1hLnRyYW5zZm9ybSgobSkgPT4gbS5hdHRhY2htZW50cyA/PyBbXSk7XG5leHBvcnQgdHlwZSBHZW5pZVJlc3BvbnNlID0gei5pbmZlcjx0eXBlb2YgR2VuaWVSZXNwb25zZVNjaGVtYT47XG5cbi8qKlxuICogYEdlbmllU3BhY2VgIHdpZGVuZWQgd2l0aCBhbiBvcHRpb25hbCBgc2VyaWFsaXplZF9zcGFjZWAgZmllbGRcbiAqIGNhcnJ5aW5nIGEgSlNPTi1zdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHNwYWNlJ3MgZnVsbFxuICogZGVmaW5pdGlvbiAoY2F0YWxvZ3MsIHNjaGVtYXMsIHRhYmxlcywgc2FtcGxlIHF1ZXN0aW9ucywgcHJvbXB0cyxcbiAqIGV0Yy4pIGFzIGV4cG9ydGVkIGJ5IHRoZSB3b3Jrc3BhY2UgZXhwb3J0IGVuZHBvaW50LlxuICpcbiAqIFRoZSBiYXNlIFNESyBzaGFwZSAoYGRlc2NyaXB0aW9uYCwgYHNwYWNlX2lkYCwgYHRpdGxlYCxcbiAqIGB3YXJlaG91c2VfaWRgKSBjb3ZlcnMgdGhlIGRpcmVjdG9yeS1saXN0aW5nIHN1cmZhY2UgLSBlbm91Z2ggdG9cbiAqIHJvdXRlIGEgY2hhdC4gYHNlcmlhbGl6ZWRfc3BhY2VgIGlzIG9wdC1pbiBzbyBjYWxsZXJzIHRoYXQgbmVlZFxuICogdGhlIGZ1bGwgc3BhY2Ugc2NoZW1hIChlLmcuIHRvIHNlZWQgYSBzeXN0ZW0gcHJvbXB0IG9yIHRvIHNoaXBcbiAqIHRoZSBkZWZpbml0aW9uIHRvIGFuIGFnZW50KSBjYW4gYXR0YWNoIGl0IHdpdGhvdXQgYSBzZWNvbmQgdHlwZS5cbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmllU3BhY2VTY2hlbWEgPSBTREtHZW5pZVNwYWNlU2NoZW1hLmV4dGVuZCh7XG4gIHNlcmlhbGl6ZWRfc3BhY2U6IHpcbiAgICAuc3RyaW5nKClcbiAgICAub3B0aW9uYWwoKVxuICAgIC5kZXNjcmliZShcbiAgICAgIFwiVGhlIGNvbnRlbnRzIG9mIHRoZSBHZW5pZSBTcGFjZSBpbiBzZXJpYWxpemVkIHN0cmluZyBmb3JtLiBUaGlzIGZpZWxkIGlzIGV4Y2x1ZGVkIGluIExpc3QgR2VuaWUgc3BhY2VzIHJlc3BvbnNlcy4gVGhpcyBmaWVsZCBwcm92aWRlcyB0aGUgc3RydWN0dXJlIG9mIHRoZSBKU09OIHN0cmluZyB0aGF0IHJlcHJlc2VudHMgdGhlIHNwYWNlJ3MgbGF5b3V0IGFuZCBjb21wb25lbnRzLlwiLFxuICAgICksXG59KTtcbmV4cG9ydCB0eXBlIEdlbmllU3BhY2UgPSB6LmluZmVyPHR5cGVvZiBHZW5pZVNwYWNlU2NoZW1hPjtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHRlcm1pbmFsIGhlbHBlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFRlcm1pbmFsIEdlbmllIG1lc3NhZ2Ugc3RhdHVzZXMuIFRoZSBwb2xsaW5nIGxvb3AgaW4gdGhlIGNoYXRcbiAqIGRyaXZlciBzdG9wcyBhcyBzb29uIGFzIHRoZSBsYXRlc3QgbWVzc2FnZSBoYXMgb25lIG9mIHRoZXNlXG4gKiBzdGF0dXNlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IFRFUk1JTkFMX1NUQVRVU0VTID0gW1wiQ09NUExFVEVEXCIsIFwiRkFJTEVEXCIsIFwiQ0FOQ0VMTEVEXCJdIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgVGVybWluYWxTdGF0dXMgPSAodHlwZW9mIFRFUk1JTkFMX1NUQVRVU0VTKVtudW1iZXJdO1xuXG4vKiogTmFycm93IGBNZXNzYWdlU3RhdHVzIHwgdW5kZWZpbmVkYCB0byBhIHtAbGluayBUZXJtaW5hbFN0YXR1c30uICovXG5leHBvcnQgZnVuY3Rpb24gaXNUZXJtaW5hbFN0YXR1cyhzOiBNZXNzYWdlU3RhdHVzIHwgdW5kZWZpbmVkKTogcyBpcyBUZXJtaW5hbFN0YXR1cyB7XG4gIHJldHVybiBzICE9PSB1bmRlZmluZWQgJiYgKFRFUk1JTkFMX1NUQVRVU0VTIGFzIHJlYWRvbmx5IHN0cmluZ1tdKS5pbmNsdWRlcyhzKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgcmF3IEdlbmllIHdpcmUgc3RhdHVzIChgRkVUQ0hJTkdfTUVUQURBVEFgLFxuICogYEFTS0lOR19BSWAsIGBFWEVDVVRJTkdfUVVFUllgLCAuLi4pIGludG8gYSBzaG9ydCwgc2VudGVuY2UtY2FzZWRcbiAqIGxhYmVsIHNhZmUgdG8gZHJvcCBpbnRvIGEgVUkgcGlsbC4gS25vd24gc3RhdGVzIGdldCBhIGN1cmF0ZWRcbiAqIGxhYmVsOyB1bmtub3duIHN0YXRlcyBmYWxsIGJhY2sgdG8gYHN0cmluZy50b2tlbml6ZVdpdGhPcHRpb25zYFxuICogc28gbmV3IHN0YXRlcyBzdGlsbCByZW5kZXIgY2xlYW5seSB3aXRob3V0IGNvZGUgY2hhbmdlcy5cbiAqXG4gKiBQdXJlIChubyBOb2RlLW9ubHkgZGVwcyksIHNhZmUgZm9yIGJyb3dzZXIgYnVuZGxlcy4gQm90aCB0aGVcbiAqIEdlbmllIGFnZW50IChzZXJ2ZXIpIGFuZCBhbnkgVUkgdGhhdCBzdWJzY3JpYmVzIHRvIHN0YXR1cyBldmVudHNcbiAqIGNhbGwgdGhpcyBzbyBsYWJlbHMgc3RheSBpbiBsb2NrLXN0ZXAgYWNyb3NzIHRoZSB3aXJlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaHVtYW5pemVTdGF0dXMoc3RhdHVzOiBNZXNzYWdlU3RhdHVzKTogc3RyaW5nIHtcbiAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICBjYXNlIFwiRkVUQ0hJTkdfTUVUQURBVEFcIjpcbiAgICAgIHJldHVybiBcIkZldGNoaW5nIG1ldGFkYXRhXCI7XG4gICAgY2FzZSBcIkFTS0lOR19BSVwiOlxuICAgICAgcmV0dXJuIFwiQXNraW5nIEdlbmllXCI7XG4gICAgY2FzZSBcIkVYRUNVVElOR19RVUVSWVwiOlxuICAgICAgcmV0dXJuIFwiUnVubmluZyBTUUwgcXVlcnlcIjtcbiAgICBjYXNlIFwiRklMVEVSSU5HX0NPTlRFWFRcIjpcbiAgICAgIHJldHVybiBcIkZpbHRlcmluZyBjb250ZXh0XCI7XG4gICAgY2FzZSBcIlBFTkRJTkdfV0FSRUhPVVNFXCI6XG4gICAgICByZXR1cm4gXCJXYWl0aW5nIGZvciB3YXJlaG91c2VcIjtcbiAgICBjYXNlIFwiQ09NUExFVEVEXCI6XG4gICAgICByZXR1cm4gXCJDb21wbGV0ZWRcIjtcbiAgICBjYXNlIFwiRkFJTEVEXCI6XG4gICAgICByZXR1cm4gXCJGYWlsZWRcIjtcbiAgICBjYXNlIFwiQ0FOQ0VMTEVEXCI6XG4gICAgICByZXR1cm4gXCJDYW5jZWxsZWRcIjtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIFsuLi5zdHJpbmcudG9rZW5pemVXaXRoT3B0aW9ucyh7IGNhcGl0YWxpemU6IHRydWUsIGxvd2VyQ2FzZTogdHJ1ZSB9LCBzdGF0dXMpXS5qb2luKFxuICAgICAgICBcIiBcIixcbiAgICAgICk7XG4gIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gYXR0YWNobWVudCB0eXBlIGhlbHBlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogSW5zcGVjdCBhIHtAbGluayBHZW5pZUF0dGFjaG1lbnR9IGFuZCByZXR1cm4gdGhlXG4gKiB7QGxpbmsgQXR0YWNobWVudFR5cGV9IG9mIHBheWxvYWQgaXQgY2Fycmllcy4gUmV0dXJucyB0aGUgZmlyc3RcbiAqIGtub3duIHN1Yi1vYmplY3QgdGhhdCdzIHByZXNlbnQ7IGlmIG5vbmUgb2YgdGhlIGtub3duIG9uZXMgYXJlXG4gKiBwb3B1bGF0ZWQsIGZhbGxzIGJhY2sgdG8gdGhlIGZpcnN0IG5vbi1ib29ra2VlcGluZyBrZXlcbiAqIChmb3J3YXJkLWNvbXBhdCBmb3IgdHlwZXMgd2UgZG9uJ3QgbW9kZWwgeWV0KSwgZWxzZSBgXCJ1bmtub3duXCJgLlxuICpcbiAqIEhvbm9ycyBhIHByZS1zZXQgYGF0dGFjaG1lbnRfdHlwZWAgaWYgb25lIGlzIGFscmVhZHkgb24gdGhlXG4gKiB2YWx1ZSwgc28gdGhpcyBpcyBpZGVtcG90ZW50IGFjcm9zcyByZS1kZXRlY3Rpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGV0ZWN0QXR0YWNobWVudFR5cGUoYXR0OiBHZW5pZUF0dGFjaG1lbnQpOiBBdHRhY2htZW50VHlwZSB7XG4gIGlmIChhdHQuYXR0YWNobWVudF90eXBlKSByZXR1cm4gYXR0LmF0dGFjaG1lbnRfdHlwZTtcbiAgaWYgKGF0dC5xdWVyeSkgcmV0dXJuIFwicXVlcnlcIjtcbiAgaWYgKGF0dC50ZXh0KSByZXR1cm4gXCJ0ZXh0XCI7XG4gIGlmIChhdHQuc3VnZ2VzdGVkX3F1ZXN0aW9ucykgcmV0dXJuIFwic3VnZ2VzdGVkX3F1ZXN0aW9uc1wiO1xuICBmb3IgKGNvbnN0IGsgb2YgT2JqZWN0LmtleXMoYXR0KSkge1xuICAgIGlmIChrICE9PSBcImF0dGFjaG1lbnRfaWRcIiAmJiBrICE9PSBcImF0dGFjaG1lbnRfdHlwZVwiKSByZXR1cm4gaztcbiAgfVxuICByZXR1cm4gXCJ1bmtub3duXCI7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gR2VuaWVDaGF0IGV2ZW50cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBXaGVyZSBvbiB0aGUgd2lyZSBhbiBldmVudCB3YXMgb2JzZXJ2ZWQuIFNwcmVhZCBpbnRvIGV2ZXJ5XG4gKiBhdHRhY2htZW50LXNjb3BlZCBldmVudCBwYXlsb2FkIHNvIHN1YnNjcmliZXJzIGNhbiByb3V0ZSwgbG9nLFxuICogb3IgY29ycmVsYXRlIHdpdGhvdXQgcmUtd2Fsa2luZyB0aGUgbWVzc2FnZS5cbiAqXG4gKiBGaWVsZHM6XG4gKiAgIC0gYHNwYWNlX2lkYDogdGhlIEdlbmllIHNwYWNlIHRoZSBjb252ZXJzYXRpb24gbGl2ZXMgaW4uXG4gKiAgIC0gYGNvbnZlcnNhdGlvbl9pZGA6IGNvbnZlcnNhdGlvbiBpZCBvbmNlIEdlbmllIGhhcyBhc3NpZ25lZCBvbmUuXG4gKiAgIC0gYG1lc3NhZ2VfaWRgOiBHZW5pZSBtZXNzYWdlIGlkIGZvciB0aGUgYWN0aXZlIHR1cm4uXG4gKiAgIC0gYGF0dGFjaG1lbnRfaWRgOiBhdHRhY2htZW50IHRoZSBldmVudCBjYW1lIGZyb20uIE9wdGlvbmFsXG4gKiAgICAgYmVjYXVzZSBHZW5pZSBzb21ldGltZXMgZW1pdHMgYW4gYW5vbnltb3VzIG1haW4tYW5zd2VyXG4gKiAgICAgYXR0YWNobWVudCB3aXRob3V0IGFuIGlkOyB0aG9zZSBzdGlsbCBnZXQgZXZlbnRzLCBqdXN0IHdpdGhcbiAqICAgICBgYXR0YWNobWVudF9pZGAgdW5kZWZpbmVkLlxuICovXG5leHBvcnQgY29uc3QgR2VuaWVDaGF0TG9jYXRpb25TY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHNwYWNlX2lkOiB6LnN0cmluZygpLFxuICBjb252ZXJzYXRpb25faWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgbWVzc2FnZV9pZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBhdHRhY2htZW50X2lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcbmV4cG9ydCB0eXBlIEdlbmllQ2hhdExvY2F0aW9uID0gei5pbmZlcjx0eXBlb2YgR2VuaWVDaGF0TG9jYXRpb25TY2hlbWE+O1xuXG4vKipcbiAqIExpZmVjeWNsZSBldmVudDogdGhlIHF1ZXN0aW9uIHRoaXMgdHVybiBpcyBhc2tpbmcgR2VuaWUuIEZpcmVzXG4gKiBvbmNlIHBlciBgZ2VuaWVFdmVudENoYXRgIGNhbGwsIHRoZSBmaXJzdCB0aW1lIHRoZSB1bmRlcmx5aW5nXG4gKiBgZ2VuaWVDaGF0YCBsb29wIHlpZWxkcyBhIGBHZW5pZU1lc3NhZ2VgLiBDYXJyaWVzIHRoZSBwcm9tcHRcbiAqIHRleHQgR2VuaWUgZWNob2VkIGJhY2sgb24gYG1lc3NhZ2UuY29udGVudGAgYW5kIHRoZSBhc3NpZ25lZFxuICogYG1lc3NhZ2VfaWRgIHNvIHN1YnNjcmliZXJzIGNhbiBncm91cCBldmVyeSBzdWJzZXF1ZW50IGV2ZW50XG4gKiBmb3IgdGhpcyB0dXJuIHVuZGVyIG9uZSBzdGFibGUga2V5LiBgY29udmVyc2F0aW9uX2lkYCBpc1xuICogcG9wdWxhdGVkIGZvciBib3RoIG9wZW5pbmcgYW5kIGZvbGxvdy11cCB0dXJucyAoR2VuaWUgYXNzaWduc1xuICogaXQgb24gYHN0YXJ0Q29udmVyc2F0aW9uYCkuXG4gKlxuICogRGVmZXJyZWQgKGluc3RlYWQgb2YgZmlyZWQgc3luY2hyb25vdXNseSBvbiBlbnRyeSkgc28gdGhlXG4gKiBgbWVzc2FnZV9pZGAgaXMgYXZhaWxhYmxlIHdoZW4gdGhlIGV2ZW50IGxhbmRzIC0gdGhhdCBvbmUgcm91bmRcbiAqIHRyaXAgY29zdHMgfjIwMG1zIGJ1dCBsZXRzIFVJcyByZW5kZXIgcXVlc3Rpb24gLyB0aGlua2luZyAvXG4gKiBxdWVyeSAvIHRleHQgYXMgYSBzaW5nbGUgZ3JvdXBlZCBibG9jayBwZXIgR2VuaWUgY2FsbCBpbnN0ZWFkXG4gKiBvZiBhIGZsYXQgc3RyZWFtLlxuICpcbiAqIGBhdHRhY2htZW50X2lkYCBpcyBpbnRlbnRpb25hbGx5IGFic2VudCAtIHF1ZXN0aW9ucyBhcmUgdHVyblxuICogc2NvcGVkLCBub3QgYXR0YWNobWVudCBzY29wZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBRdWVzdGlvbkV2ZW50U2NoZW1hID0gR2VuaWVDaGF0TG9jYXRpb25TY2hlbWEub21pdCh7XG4gIGF0dGFjaG1lbnRfaWQ6IHRydWUsXG59KS5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJxdWVzdGlvblwiKSxcbiAgY29udGVudDogei5zdHJpbmcoKSxcbn0pO1xuZXhwb3J0IHR5cGUgUXVlc3Rpb25FdmVudCA9IHouaW5mZXI8dHlwZW9mIFF1ZXN0aW9uRXZlbnRTY2hlbWE+O1xuXG4vKipcbiAqIExpZmVjeWNsZSBldmVudDogcmF3IGBHZW5pZU1lc3NhZ2VgIHNuYXBzaG90IGZvciB0aGUgYWN0aXZlXG4gKiB0dXJuLiBGaXJlcyBvbmNlIHBlciBwb2xsIHlpZWxkLiBUaGUgZnVsbCBtZXNzYWdlIHNoYXBlXG4gKiAoaW5jbHVkaW5nIHRoZSB3aWRlbmVkIHRob3VnaHQgLyByZWdlbiAvIGF0dGFjaG1lbnQtdHlwZVxuICogZmllbGRzKSBpcyBleHBvc2VkIGlubGluZSBhcyBgbWVzc2FnZWA7IGNvbnN1bWVycyBuYXJyb3cgb25cbiAqIGBldmVudC50eXBlID09PSBcIm1lc3NhZ2VcImAgYW5kIHJlYWNoIGZvciBgZXZlbnQubWVzc2FnZWAuXG4gKi9cbmV4cG9ydCBjb25zdCBNZXNzYWdlRXZlbnRTY2hlbWEgPSBHZW5pZUNoYXRMb2NhdGlvblNjaGVtYS5vbWl0KHtcbiAgYXR0YWNobWVudF9pZDogdHJ1ZSxcbn0pLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcIm1lc3NhZ2VcIiksXG4gIG1lc3NhZ2U6IEdlbmllTWVzc2FnZVNjaGVtYSxcbn0pO1xuZXhwb3J0IHR5cGUgTWVzc2FnZUV2ZW50ID0gei5pbmZlcjx0eXBlb2YgTWVzc2FnZUV2ZW50U2NoZW1hPjtcblxuLyoqXG4gKiBUb3AtbGV2ZWwgYG1lc3NhZ2Uuc3RhdHVzYCB0cmFuc2l0aW9uZWQuIEZpcmVzIGZvciBldmVyeVxuICogZGlzdGluY3Qgc3RhdHVzIHNlZW4gb24gdGhlIHdpcmUgKGUuZy4gYFNVQk1JVFRFRGAgLT5cbiAqIGBGSUxURVJJTkdfQ09OVEVYVGAgLT4gYEFTS0lOR19BSWAgLT4gYFBFTkRJTkdfV0FSRUhPVVNFYCAtPlxuICogYEFTS0lOR19BSWAgLT4gYENPTVBMRVRFRGApLlxuICovXG5leHBvcnQgY29uc3QgU3RhdHVzRXZlbnRTY2hlbWEgPSBHZW5pZUNoYXRMb2NhdGlvblNjaGVtYS5vbWl0KHtcbiAgYXR0YWNobWVudF9pZDogdHJ1ZSxcbn0pLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcInN0YXR1c1wiKSxcbiAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzU2NoZW1hLFxuICBwcmV2aW91c19zdGF0dXM6IE1lc3NhZ2VTdGF0dXNTY2hlbWEub3B0aW9uYWwoKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3RhdHVzRXZlbnQgPSB6LmluZmVyPHR5cGVvZiBTdGF0dXNFdmVudFNjaGVtYT47XG5cbi8qKlxuICogQSBuZXcgYXR0YWNobWVudCBzbG90IGFwcGVhcmVkIGluIGBtZXNzYWdlLmF0dGFjaG1lbnRzW11gLlxuICogRmlyZXMgZXhhY3RseSBvbmNlIHBlciBhdHRhY2htZW50IChtYXRjaGVkIGJ5IGBhdHRhY2htZW50X2lkYCxcbiAqIHBvc2l0aW9uYWxseSBmb3IgYW5vbnltb3VzIGF0dGFjaG1lbnRzKSB0aGUgZmlyc3QgdGltZSB3ZSBzZWVcbiAqIGl0LiBUaGUgc2xvdCdzIHBheWxvYWQga2luZCBsYW5kcyBpbiBgYXR0YWNobWVudF90eXBlYCBzbyB0aGVcbiAqIG91dGVyIGB0eXBlYCBkaXNjcmltaW5hdG9yIHN0YXlzIHVuYW1iaWd1b3VzLlxuICovXG5leHBvcnQgY29uc3QgQXR0YWNobWVudEV2ZW50U2NoZW1hID0gR2VuaWVDaGF0TG9jYXRpb25TY2hlbWEuZXh0ZW5kKHtcbiAgdHlwZTogei5saXRlcmFsKFwiYXR0YWNobWVudFwiKSxcbiAgaW5kZXg6IHoubnVtYmVyKCksXG4gIGF0dGFjaG1lbnRfdHlwZTogei5jdXN0b208QXR0YWNobWVudFR5cGU+KCh2KSA9PiB0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIiksXG59KTtcbmV4cG9ydCB0eXBlIEF0dGFjaG1lbnRFdmVudCA9IHouaW5mZXI8dHlwZW9mIEF0dGFjaG1lbnRFdmVudFNjaGVtYT47XG5cbi8qKlxuICogQSBuZXcgcmVhc29uaW5nIHN0ZXAgYXBwZWFyZWQgb24gYSBxdWVyeSBhdHRhY2htZW50XG4gKiAoYGF0dGFjaG1lbnRzW2ldLnF1ZXJ5LnRob3VnaHRzW2ldYCkuIERlZHVwbGljYXRlZCBwZXJcbiAqIGAodGhvdWdodF90eXBlLCBjb250ZW50KWAgdHVwbGUgd2l0aGluIGFuIGF0dGFjaG1lbnQgc29cbiAqIHN1YnNjcmliZXJzIGRvbid0IHNlZSB0aGUgc2FtZSB0aG91Z2h0IG11bHRpcGxlIHRpbWVzIC0gR2VuaWVcbiAqIHNvbWV0aW1lcyBtdXRhdGVzIGV4aXN0aW5nIHRob3VnaHQgc2xvdHMgaW4gcGxhY2UsIHNvIHRoZSBkaWZmXG4gKiBpcyB2YWx1ZS1iYXNlZCByYXRoZXIgdGhhbiBwb3NpdGlvbmFsLlxuICovXG5leHBvcnQgY29uc3QgVGhpbmtpbmdFdmVudFNjaGVtYSA9IEdlbmllQ2hhdExvY2F0aW9uU2NoZW1hLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcInRoaW5raW5nXCIpLFxuICB0ZXh0OiB6LnN0cmluZygpLFxuICB0aG91Z2h0X3R5cGU6IHouY3VzdG9tPEdlbmllVGhvdWdodFR5cGU+KCh2KSA9PiB0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIiksXG59KTtcbmV4cG9ydCB0eXBlIFRoaW5raW5nRXZlbnQgPSB6LmluZmVyPHR5cGVvZiBUaGlua2luZ0V2ZW50U2NoZW1hPjtcblxuLyoqXG4gKiBBIHRleHQtYXR0YWNobWVudCBgY29udGVudGAgZmllbGQgYXBwZWFyZWQgb3IgY2hhbmdlZFxuICogKGBhdHRhY2htZW50c1tpXS50ZXh0LmNvbnRlbnRgKS4gRmlyZXMgd2hlbmV2ZXIgdGhlIHNuYXBzaG90XG4gKiB2YWx1ZSBkaWZmZXJzIGZyb20gdGhlIHByZXZpb3VzIG9uZSBmb3IgdGhlIHNhbWUgYXR0YWNobWVudC5cbiAqL1xuZXhwb3J0IGNvbnN0IFRleHRFdmVudFNjaGVtYSA9IEdlbmllQ2hhdExvY2F0aW9uU2NoZW1hLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcInRleHRcIiksXG4gIHRleHQ6IHouc3RyaW5nKCksXG59KTtcbmV4cG9ydCB0eXBlIFRleHRFdmVudCA9IHouaW5mZXI8dHlwZW9mIFRleHRFdmVudFNjaGVtYT47XG5cbi8qKlxuICogU1FMIHdhcyBmaW5hbGl6ZWQgb24gYSBxdWVyeSBhdHRhY2htZW50XG4gKiAoYGF0dGFjaG1lbnRzW2ldLnF1ZXJ5LnF1ZXJ5YCkuIEZpcmVzIG9uY2Ugd2hlbiB0aGUgU1FMIHN0cmluZ1xuICogdHJhbnNpdGlvbnMgZnJvbSB1bmRlZmluZWQgdG8gZGVmaW5lZCwgYW5kIGFnYWluIGlmIEdlbmllIGV2ZXJcbiAqIHJld3JpdGVzIGl0LiBgdGl0bGVgIGFuZCBgZGVzY3JpcHRpb25gIGFyZSBkZW5vcm1hbGlzZWQgb2ZmIHRoZVxuICogYXR0YWNobWVudCdzIGBxdWVyeS50aXRsZWAgLyBgcXVlcnkuZGVzY3JpcHRpb25gIHNvIGNvbnN1bWVyc1xuICogY2FuIGxhYmVsIHRoZSBTUUwgcGlsbCB3aXRob3V0IHJlLXdhbGtpbmcgdGhlIG1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBjb25zdCBRdWVyeUV2ZW50U2NoZW1hID0gR2VuaWVDaGF0TG9jYXRpb25TY2hlbWEuZXh0ZW5kKHtcbiAgdHlwZTogei5saXRlcmFsKFwicXVlcnlcIiksXG4gIHNxbDogei5zdHJpbmcoKSxcbiAgdGl0bGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuZXhwb3J0IHR5cGUgUXVlcnlFdmVudCA9IHouaW5mZXI8dHlwZW9mIFF1ZXJ5RXZlbnRTY2hlbWE+O1xuXG4vKipcbiAqIFNRTCB3YXMgc3VibWl0dGVkIHRvIGEgU1FMIHdhcmVob3VzZSBhbmQgYSBzdGF0ZW1lbnQgaWQgd2FzXG4gKiBhc3NpZ25lZCAoYGF0dGFjaG1lbnRzW2ldLnF1ZXJ5LnN0YXRlbWVudF9pZGApLiBGaXJlcyB3aGVuIHRoZVxuICogc3RhdGVtZW50IGlkIHRyYW5zaXRpb25zIGZyb20gdW5kZWZpbmVkIHRvIGRlZmluZWQgLSB0aGlzIGlzIHRoZVxuICogcG9pbnQgYXQgd2hpY2ggYGNsaWVudC5zdGF0ZW1lbnRFeGVjdXRpb24uZ2V0U3RhdGVtZW50KHsgc3RhdGVtZW50X2lkIH0pYFxuICogYmVjb21lcyBhIHZhbGlkIGNhbGwuXG4gKi9cbmV4cG9ydCBjb25zdCBTdGF0ZW1lbnRFdmVudFNjaGVtYSA9IEdlbmllQ2hhdExvY2F0aW9uU2NoZW1hLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcInN0YXRlbWVudFwiKSxcbiAgc3RhdGVtZW50X2lkOiB6LnN0cmluZygpLFxufSk7XG5leHBvcnQgdHlwZSBTdGF0ZW1lbnRFdmVudCA9IHouaW5mZXI8dHlwZW9mIFN0YXRlbWVudEV2ZW50U2NoZW1hPjtcblxuLyoqXG4gKiBSb3cgY291bnQgZm9yIGEgcXVlcnkgYXR0YWNobWVudCdzIHJlc3VsdCBjaGFuZ2VkXG4gKiAoYGF0dGFjaG1lbnRzW2ldLnF1ZXJ5LnF1ZXJ5X3Jlc3VsdF9tZXRhZGF0YS5yb3dfY291bnRgKS4gRmlyZXNcbiAqIG9uIGV2ZXJ5IGNoYW5nZSwgaW5jbHVkaW5nIHRoZSBpbml0aWFsIGB1bmRlZmluZWQgLT4gMGAgYW5kIHRoZVxuICogbGF0ZXIgYDAgLT4gTmAgb25jZSB0aGUgd2FyZWhvdXNlIGZpbmlzaGVzIGV4ZWN1dGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IFJvd3NFdmVudFNjaGVtYSA9IEdlbmllQ2hhdExvY2F0aW9uU2NoZW1hLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcInJvd3NcIiksXG4gIHJvd19jb3VudDogei5udW1iZXIoKSxcbiAgcHJldmlvdXNfcm93X2NvdW50OiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIHN0YXRlbWVudF9pZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSk7XG5leHBvcnQgdHlwZSBSb3dzRXZlbnQgPSB6LmluZmVyPHR5cGVvZiBSb3dzRXZlbnRTY2hlbWE+O1xuXG4vKipcbiAqIEdlbmllIHByb2R1Y2VkIGEgZm9sbG93LXVwIHN1Z2dlc3RlZC1xdWVzdGlvbnMgbGlzdFxuICogKGBhdHRhY2htZW50c1tpXS5zdWdnZXN0ZWRfcXVlc3Rpb25zLnF1ZXN0aW9uc1tdYCkuIEZpcmVzIG9uY2VcbiAqIHdoZW4gdGhlIGxpc3QgYXBwZWFycywgYW5kIGFnYWluIGlmIEdlbmllIHJld3JpdGVzIGl0LlxuICovXG5leHBvcnQgY29uc3QgU3VnZ2VzdGVkUXVlc3Rpb25zRXZlbnRTY2hlbWEgPSBHZW5pZUNoYXRMb2NhdGlvblNjaGVtYS5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJzdWdnZXN0ZWRfcXVlc3Rpb25zXCIpLFxuICBxdWVzdGlvbnM6IHouYXJyYXkoei5zdHJpbmcoKSksXG59KTtcbmV4cG9ydCB0eXBlIFN1Z2dlc3RlZFF1ZXN0aW9uc0V2ZW50ID0gei5pbmZlcjx0eXBlb2YgU3VnZ2VzdGVkUXVlc3Rpb25zRXZlbnRTY2hlbWE+O1xuXG4vKipcbiAqIFRoZSBhY3RpdmUgdHVybiByZWFjaGVkIGEgdGVybWluYWwgc3RhdHVzLiBBbHdheXMgZmlyZXMgb25jZVxuICogcGVyIHR1cm4gKGltbWVkaWF0ZWx5IGFmdGVyIHRoZSB0ZXJtaW5hbCBgbWVzc2FnZWAgZXZlbnQpLlxuICogQ2FycmllcyB0aGUgZmluYWwgYEdlbmllTWVzc2FnZWAgc25hcHNob3QgaW5saW5lIHNvIHN1YnNjcmliZXJzXG4gKiBkb24ndCBuZWVkIHRvIGtlZXAgdGhlaXIgb3duIGNvcHkgb2YgdGhlIGxhc3QgbWVzc2FnZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFJlc3VsdEV2ZW50U2NoZW1hID0gR2VuaWVDaGF0TG9jYXRpb25TY2hlbWEub21pdCh7XG4gIGF0dGFjaG1lbnRfaWQ6IHRydWUsXG59KS5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJyZXN1bHRcIiksXG4gIHN0YXR1czogei5lbnVtKFRFUk1JTkFMX1NUQVRVU0VTKSxcbiAgbWVzc2FnZTogR2VuaWVNZXNzYWdlU2NoZW1hLFxufSk7XG5leHBvcnQgdHlwZSBSZXN1bHRFdmVudCA9IHouaW5mZXI8dHlwZW9mIFJlc3VsdEV2ZW50U2NoZW1hPjtcblxuLyoqXG4gKiBEaXNjcmltaW5hdGVkIHVuaW9uIHlpZWxkZWQgYnkgYGdlbmllRXZlbnRDaGF0YC4gRWFjaCB2YXJpYW50XG4gKiBpcyBhIHNpbmdsZSBmbGF0IG9iamVjdCB3aXRoIGB0eXBlYCBhcyB0aGUgZGlzY3JpbWluYXRvciBhbmRcbiAqIHRoZSBwYXlsb2FkIGZpZWxkcyBob2lzdGVkIGRpcmVjdGx5IHRvIHRoZSB0b3AgbGV2ZWwgLSBub1xuICogYHBheWxvYWRgIHdyYXBwZXIuIENvbnN1bWVycyBuYXJyb3cgb24gYHR5cGVgIGFuZCByZWFkIGZpZWxkc1xuICogaW5saW5lOlxuICpcbiAqIEBleGFtcGxlXG4gKiBmb3IgYXdhaXQgKGNvbnN0IGV2ZW50IG9mIGdlbmllRXZlbnRDaGF0KHNwYWNlSWQsIFwiVG9wIHN0b3Jlcz9cIikpIHtcbiAqICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gKiAgICAgY2FzZSBcInRoaW5raW5nXCI6XG4gKiAgICAgICBjb25zb2xlLmxvZyhldmVudC50aG91Z2h0X3R5cGUsIGV2ZW50LnRleHQpO1xuICogICAgICAgYnJlYWs7XG4gKiAgICAgY2FzZSBcInJlc3VsdFwiOlxuICogICAgICAgY29uc29sZS5sb2coXCJkb25lOlwiLCBldmVudC5zdGF0dXMpO1xuICogICAgICAgYnJlYWs7XG4gKiAgIH1cbiAqIH1cbiAqXG4gKiBTdHJlYW0gb3JkZXIgcGVyIHR1cm46XG4gKlxuICogICAxLiBgcXVlc3Rpb25gLCBlbWl0dGVkIHdpdGggdGhlIGZpcnN0IGBtZXNzYWdlYCB5aWVsZCAoZGVmZXJyZWQgc29cbiAqICAgICAgdGhlIGFzc2lnbmVkIGBtZXNzYWdlX2lkYCBpcyBhdmFpbGFibGUpLCBjYXJyeWluZyB0aGUgcHJvbXB0XG4gKiAgICAgIHRoaXMgdHVybiBzZW50IHRvIEdlbmllLlxuICogICAyLiBgbWVzc2FnZWAgZm9yIGV2ZXJ5IHBvbGwgeWllbGQgKHJhdyBgR2VuaWVNZXNzYWdlYCBvblxuICogICAgICBgZXZlbnQubWVzc2FnZWApLlxuICogICAzLiBBbnkgZGVyaXZlZCBldmVudHMgdGhlIHNuYXBzaG90IGRpZmYgcHJvZHVjZWQgKGBzdGF0dXNgLFxuICogICAgICBgYXR0YWNobWVudGAsIGB0aGlua2luZ2AsIGB0ZXh0YCwgYHF1ZXJ5YCwgYHN0YXRlbWVudGAsXG4gKiAgICAgIGByb3dzYCwgYHN1Z2dlc3RlZF9xdWVzdGlvbnNgKSBpbiB0aGF0IGZpeGVkIG9yZGVyLlxuICogICA0LiBPbiB0aGUgdGVybWluYWwgc25hcHNob3QsIGEgZmluYWwgYHJlc3VsdGAgZXZlbnQuXG4gKlxuICogRXJyb3JzIHByb3BhZ2F0ZSB2aWEgdGhlIGdlbmVyYXRvciB0aHJvd2luZyAoYHRyeWAvYGNhdGNoYCB0aGVcbiAqIGBmb3IgYXdhaXRgKSwgbm90IHZpYSBhbiBgZXJyb3JgIHZhcmlhbnQgb24gdGhpcyB1bmlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmllQ2hhdEV2ZW50U2NoZW1hID0gei5kaXNjcmltaW5hdGVkVW5pb24oXCJ0eXBlXCIsIFtcbiAgUXVlc3Rpb25FdmVudFNjaGVtYSxcbiAgTWVzc2FnZUV2ZW50U2NoZW1hLFxuICBTdGF0dXNFdmVudFNjaGVtYSxcbiAgQXR0YWNobWVudEV2ZW50U2NoZW1hLFxuICBUaGlua2luZ0V2ZW50U2NoZW1hLFxuICBUZXh0RXZlbnRTY2hlbWEsXG4gIFF1ZXJ5RXZlbnRTY2hlbWEsXG4gIFN0YXRlbWVudEV2ZW50U2NoZW1hLFxuICBSb3dzRXZlbnRTY2hlbWEsXG4gIFN1Z2dlc3RlZFF1ZXN0aW9uc0V2ZW50U2NoZW1hLFxuICBSZXN1bHRFdmVudFNjaGVtYSxcbl0pO1xuZXhwb3J0IHR5cGUgR2VuaWVDaGF0RXZlbnQgPSB6LmluZmVyPHR5cGVvZiBHZW5pZUNoYXRFdmVudFNjaGVtYT47XG5cbi8qKiBEaXNjcmltaW5hdG9yIHR5cGUgZm9yIHtAbGluayBHZW5pZUNoYXRFdmVudH0uICovXG5leHBvcnQgdHlwZSBHZW5pZUNoYXRFdmVudFR5cGUgPSBHZW5pZUNoYXRFdmVudFtcInR5cGVcIl07XG5cbi8qKlxuICogRmllbGQgc2V0IGZvciBhIGdpdmVuIHtAbGluayBHZW5pZUNoYXRFdmVudFR5cGV9IC0gdGhlIHZhcmlhbnRcbiAqIHdpdGggdGhlIGB0eXBlYCBkaXNjcmltaW5hdG9yIHN0cmlwcGVkLiBVc2VkIGJ5IGRldGVjdG9ycyBpblxuICogYGV2ZW50LnRzYCBzbyBlYWNoIGRldGVjdG9yIHJldHVybnMganVzdCB0aGUgcGF5bG9hZCBmaWVsZHMgYW5kXG4gKiB0aGUgb3JjaGVzdHJhdG9yIHN0YW1wcyBgdHlwZWAgYXQgeWllbGQgdGltZS5cbiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVDaGF0RXZlbnRGaWVsZHM8VCBleHRlbmRzIEdlbmllQ2hhdEV2ZW50VHlwZT4gPSBPbWl0PFxuICBFeHRyYWN0PEdlbmllQ2hhdEV2ZW50LCB7IHR5cGU6IFQgfT4sXG4gIFwidHlwZVwiXG4+O1xuIl19
|
|
454
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuaWUtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuaWUtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0NHO0FBRUgsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDeEIsT0FBTyxLQUFLLFVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUU5QyxrRkFBa0Y7QUFDbEYsaUZBQWlGO0FBQ2pGLDZEQUE2RDtBQUM3RCxNQUFNLEVBQ0osbUJBQW1CLEVBQUUsbUJBQW1CLEVBQ3hDLHFCQUFxQixFQUFFLHdCQUF3QixFQUMvQyxrQkFBa0IsRUFBRSxxQkFBcUIsRUFDekMsMEJBQTBCLEVBQUUsNkJBQTZCLEVBQ3pELGdCQUFnQixFQUFFLG1CQUFtQixHQUN0QyxHQUFHLFVBQVUsQ0FBQztBQVVmLG9FQUFvRTtBQUNwRSxpRUFBaUU7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLENBQUM7QUFpQy9COzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDekMsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQW1CLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUM7SUFDdEUsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDcEIsQ0FBQyxDQUFDO0FBR0gsNkVBQTZFO0FBRTdFOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDOUIsT0FBTztJQUNQLE1BQU07SUFDTixxQkFBcUI7Q0FDZSxDQUFDO0FBSXZDLHlFQUF5RTtBQUV6RTs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLE1B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ZXMgYW5kIGhpZ2gtbGV2ZWwgZXZlbnQgdm9jYWJ1bGFyeVxuICogZm9yIHRoZSBHZW5pZSBjaGF0IGRyaXZlci5cbiAqXG4gKiBUd28gcmVsYXRlZCBsYXllcnMgbGl2ZSBoZXJlOlxuICpcbiAqICAgMS4gR2VuaWUgd2lyZSBzaGFwZXMgZGVyaXZlZCBmcm9tIHRoaXMgcGFja2FnZSdzIG93biBnZW5lcmF0ZWRcbiAqICAgICAgYGRhc2hib2FyZHNgIHNjaGVtYXMgKHJlZ2VuZXJhdGVkIGZyb20gdGhlIHVwc3RyZWFtXG4gKiAgICAgIGBAZGF0YWJyaWNrcy9zZGstZXhwZXJpbWVudGFsYCBgYXBpcy9kYXNoYm9hcmRzL21vZGVsLmQudHNgXG4gKiAgICAgIGJ5IHRoZSBlbmdpbmUncyBjb2RlZ2VuIG9uIHN5bnRoKS4gV2UgZXh0ZW5kIHRoZSBTREsgc2NoZW1hcyB3aGVyZSBHZW5pZVxuICogICAgICBzaGlwcyBmaWVsZHMgb24gdGhlIHdpcmUgdGhhdCB0aGUgU0RLIGRvZXNuJ3QgY3VycmVudGx5IHR5cGU6XG4gKlxuICogICAgICAgIC0gYEdlbmllTWVzc2FnZS5hdXRvX3JlZ2VuZXJhdGVfY291bnQ6IG51bWJlcmAgKHN0YW1wZWRcbiAqICAgICAgICAgIG9uIGV2ZXJ5IHdpcmUgbWVzc2FnZSwgb21pdHRlZCBmcm9tIHRoZSBTREsgc2hhcGUpLlxuICogICAgICAgIC0gYEdlbmllUXVlcnlBdHRhY2htZW50LnRob3VnaHRzOiBHZW5pZVRob3VnaHRbXWAgKHRoZVxuICogICAgICAgICAgc3RyZWFtZWQgcmVhc29uaW5nIHBheWxvYWQgd2l0aCBgREVTQ1JJUFRJT05gLFxuICogICAgICAgICAgYERBVEFfU09VUkNJTkdgLCBgU1RFUFNgLCBhbmQgYFVOREVSU1RBTkRJTkdgIHRob3VnaHRcbiAqICAgICAgICAgIGtpbmRzKS5cbiAqICAgICAgICAtIGBHZW5pZUF0dGFjaG1lbnQuYXR0YWNobWVudF90eXBlOiBBdHRhY2htZW50VHlwZWBcbiAqICAgICAgICAgIChhbiBvcHRpb25hbCBkaXNjcmltaW5hdG9yIGxpdGVyYWwgc28gY2FsbGVycyBjYW5cbiAqICAgICAgICAgIGBzd2l0Y2ggKGF0dC5hdHRhY2htZW50X3R5cGUpYCBpbnN0ZWFkIG9mIHByb2JpbmdcbiAqICAgICAgICAgIHdoaWNoIHN1Yi1rZXkgaXMgcG9wdWxhdGVkOyBjb21wdXRlIGl0IHdpdGhcbiAqICAgICAgICAgIHtAbGluayBkZXRlY3RBdHRhY2htZW50VHlwZX0pLlxuICpcbiAqICAgMi4gRXZlbnQgdm9jYWJ1bGFyeSBmb3IgdGhlIGhpZ2gtbGV2ZWwgYGdlbmllRXZlbnRDaGF0YFxuICogICAgICBkcml2ZXIuIEVhY2ggZXZlbnQgaXMgYSBmbGF0IGB6Lm9iamVjdGAgd2l0aCBhIGB0eXBlYFxuICogICAgICBsaXRlcmFsIGRpc2NyaW1pbmF0b3IgYW5kIHNuYWtlX2Nhc2UgcGF5bG9hZCBmaWVsZHMgaG9pc3RlZFxuICogICAgICB0byB0aGUgdG9wIGxldmVsIChubyBgcGF5bG9hZGAgd3JhcHBlcikuIEV2ZW50cyB0aGF0IHNoYXJlXG4gKiAgICAgIHRoZSBhdHRhY2htZW50LXNjb3BlZCBsb2NhdGlvbiB1c2VcbiAqICAgICAge0BsaW5rIEdlbmllQ2hhdExvY2F0aW9uU2NoZW1hfSBhcyBhIGJhc2U7IGV2ZW50cyB0aGF0XG4gKiAgICAgIGRvbid0IGNhcnJ5IGFuIGBhdHRhY2htZW50X2lkYCAoc3RhdHVzLCByZXN1bHQpIG9taXQgaXQuXG4gKiAgICAgIHtAbGluayBHZW5pZUNoYXRFdmVudFNjaGVtYX0gYnVuZGxlcyB0aGUgdmFyaWFudHMgaW50byBvbmVcbiAqICAgICAgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqXG4gKiBQdXJlIHR5cGVzOiBubyBydW50aW1lIGltcG9ydHMgYmV5b25kIHpvZCArIHRoZSBnZW5lcmF0ZWRcbiAqIGBkYXNoYm9hcmRzYCBzY2hlbWFzLCBubyBOb2RlLW9ubHkgY29kZSwgc2FmZSBmb3IgYnJvd3NlciBidW5kbGVzLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBzdHJpbmcgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtY29yZVwiO1xuaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcbmltcG9ydCAqIGFzIGRhc2hib2FyZHMgZnJvbSBcIi4vZGFzaGJvYXJkcy50c1wiO1xuXG4vLyBUaGUgZ2VuZXJhdGVkIFNESyBzY2hlbWFzIGxpdmUgaW4gdGhlIHNpYmxpbmcgYC4vZGFzaGJvYXJkcy50c2AsIHdyaXR0ZW4gYnkgdGhlXG4vLyBlbmdpbmUncyBjb2RlZ2VuIGZyb20gdGhlIHVwc3RyZWFtIGAuZC50c2AuIEFsaWFzIHRoZSBoYW5kZnVsIEdlbmllIGV4dGVuZHMgc29cbi8vIHRoZSB3aWRlbmVkIHNjaGVtYXMgYmVsb3cgcmVhZCBhZ2FpbnN0IHNob3J0LCBsb2NhbCBuYW1lcy5cbmNvbnN0IHtcbiAgbWVzc2FnZVN0YXR1c1NjaGVtYTogTWVzc2FnZVN0YXR1c1NjaGVtYSxcbiAgZ2VuaWVBdHRhY2htZW50U2NoZW1hOiBTREtHZW5pZUF0dGFjaG1lbnRTY2hlbWEsXG4gIGdlbmllTWVzc2FnZVNjaGVtYTogU0RLR2VuaWVNZXNzYWdlU2NoZW1hLFxuICBnZW5pZVF1ZXJ5QXR0YWNobWVudFNjaGVtYTogU0RLR2VuaWVRdWVyeUF0dGFjaG1lbnRTY2hlbWEsXG4gIGdlbmllU3BhY2VTY2hlbWE6IFNES0dlbmllU3BhY2VTY2hlbWEsXG59ID0gZGFzaGJvYXJkcztcblxuLyoqXG4gKiBUaGUgU0RLJ3MgYE1lc3NhZ2VTdGF0dXNgIHR5cGUsIHJlLWV4cG9ydGVkIHNvIGNvbnN1bWVycyBvZiB0aGVcbiAqIEdlbmllIGNvbnRyYWN0IGdldCB0aGUgZnVsbCB3aXJlIHZvY2FidWxhcnkgZnJvbSBhIHNpbmdsZSBpbXBvcnRcbiAqIHBhdGggLSBtaXJyb3JzIHRoZSByZS1leHBvcnRzIG9mIHRoZSBvdGhlciBTREstZGVyaXZlZCBzY2hlbWFzXG4gKiBiZWxvdy5cbiAqL1xuZXhwb3J0IHR5cGUgTWVzc2FnZVN0YXR1cyA9IGRhc2hib2FyZHMuTWVzc2FnZVN0YXR1cztcblxuLy8gUmUtZXhwb3J0IHRoZSBTREsncyBgTWVzc2FnZVN0YXR1c2Agc2NoZW1hIHNvIGNhbGxlcnMgY2FuIHBhcnNlIGFcbi8vIHJhdyBzdGF0dXMgd2l0aG91dCByZWFjaGluZyBiYWNrIGludG8gdGhlIGdlbmVyYXRlZCBuYW1lc3BhY2UuXG5leHBvcnQgeyBNZXNzYWdlU3RhdHVzU2NoZW1hIH07XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHRob3VnaHRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBHZW5pZSdzIHBlci1xdWVyeSBcInRob3VnaHRzXCIgc3VyZmFjZS4gVGhlc2UgYXBwZWFyIG9uIHRoZVxuICogYC9tZXNzYWdlcy97aWR9YCB3aXJlIHVuZGVyIGBhdHRhY2htZW50c1tpXS5xdWVyeS50aG91Z2h0c1tdYCBidXRcbiAqIGFyZSBub3QgdHlwZWQgb24gdGhlIFNESydzIGBHZW5pZVF1ZXJ5QXR0YWNobWVudGAgYXQgdjAuMTcuXG4gKlxuICogS25vd24gdGhvdWdodCB0eXBlcyBvYnNlcnZlZCBpbiBwcm9kdWN0aW9uIHBvbGxzOlxuICpcbiAqICAgLSBgVEhPVUdIVF9UWVBFX0RFU0NSSVBUSU9OYDogYSBvbmUtcGFyYWdyYXBoIHJlc3RhdGVtZW50IG9mXG4gKiAgICAgd2hhdCB0aGUgdXNlciBhc2tlZC4gVGhlIGZpbmFsIGBxdWVyeS5kZXNjcmlwdGlvbmAgZmllbGQgb25cbiAqICAgICB0aGUgYXR0YWNobWVudCBjYXJyaWVzIHRoZSBzYW1lIHRleHQuXG4gKiAgIC0gYFRIT1VHSFRfVFlQRV9EQVRBX1NPVVJDSU5HYDogbWFya2Rvd24gYnVsbGV0cyBvZiB0aGVcbiAqICAgICBmdWxseS1xdWFsaWZpZWQgYGNhdGFsb2cuc2NoZW1hLnRhYmxlYCBzb3VyY2VzIEdlbmllIGNob3NlLlxuICogICAtIGBUSE9VR0hUX1RZUEVfU1RFUFNgOiB0aGUgaGlnaC1sZXZlbCBwbGFuIEdlbmllIHdyb3RlIGJlZm9yZVxuICogICAgIHJ1bm5pbmcgU1FMIChvbmUgYnVsbGV0IHBlciBzdGVwKS5cbiAqICAgLSBgVEhPVUdIVF9UWVBFX1VOREVSU1RBTkRJTkdgOiBhbWJpZ3VpdHkgLyBpbnRlcnByZXRhdGlvblxuICogICAgIG5vdGVzIChlLmcuIFwiJ3JldmVudWUnIGNvdWxkIGJlIGludGVycHJldGVkIGFzIGdyb3NzLFxuICogICAgIG5ldCwgb3IgcmVjb2duaXplZCByZXZlbnVlLi4uXCIpLlxuICpcbiAqIE9wZW4gYXQgdGhlIHR5cGUgbGV2ZWwgKGB8IChzdHJpbmcgJiB7fSlgKSBzbyBhIG5ldyBzZXJ2ZXItc2lkZVxuICogdGhvdWdodCB0eXBlIGRvZXNuJ3QgYnJlYWsgY29tcGlsYXRpb247IHRoZSBmb3VyIGtub3duIHR5cGVzXG4gKiBzdGlsbCBuYXJyb3cgY29ycmVjdGx5IHVuZGVyIGBzd2l0Y2hgLlxuICovXG5leHBvcnQgdHlwZSBHZW5pZVRob3VnaHRUeXBlID1cbiAgfCBcIlRIT1VHSFRfVFlQRV9ERVNDUklQVElPTlwiXG4gIHwgXCJUSE9VR0hUX1RZUEVfREFUQV9TT1VSQ0lOR1wiXG4gIHwgXCJUSE9VR0hUX1RZUEVfU1RFUFNcIlxuICB8IFwiVEhPVUdIVF9UWVBFX1VOREVSU1RBTkRJTkdcIlxuICB8IChzdHJpbmcgJiB7fSk7XG5cbi8qKlxuICogT25lIHJlYXNvbmluZyBzdGVwIG9uIGEgcXVlcnkgYXR0YWNobWVudC4gU2VlXG4gKiB7QGxpbmsgR2VuaWVUaG91Z2h0VHlwZX0gZm9yIHRoZSBrbm93biBgdGhvdWdodF90eXBlYCB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5pZVRob3VnaHRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHRob3VnaHRfdHlwZTogei5jdXN0b208R2VuaWVUaG91Z2h0VHlwZT4oKHYpID0+IHR5cGVvZiB2ID09PSBcInN0cmluZ1wiKSxcbiAgY29udGVudDogei5zdHJpbmcoKSxcbn0pO1xuZXhwb3J0IHR5cGUgR2VuaWVUaG91Z2h0ID0gei5pbmZlcjx0eXBlb2YgR2VuaWVUaG91Z2h0U2NoZW1hPjtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gYXR0YWNobWVudCBkaXNjcmltaW5hdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBEaXNjcmltaW5hdG9yIGZvciB3aGF0J3MgaW5zaWRlIGEgYEdlbmllQXR0YWNobWVudGAuIEdlbmllIG9ubHlcbiAqIGV2ZXIgcG9wdWxhdGVzIG9uZSBvZiBgcXVlcnlgIC8gYHRleHRgIC8gYHN1Z2dlc3RlZF9xdWVzdGlvbnNgXG4gKiBwZXIgYXR0YWNobWVudC4gT3BlbiB2aWEgYChzdHJpbmcgJiB7fSlgIHNvIGEgbmV3IHNlcnZlci1zaWRlXG4gKiB0eXBlIGRvZXNuJ3QgYnJlYWsgY29tcGlsYXRpb247IHRoZSB0aHJlZSBrbm93biB0eXBlcyBzdGlsbFxuICogbmFycm93IGNvcnJlY3RseSB1bmRlciBgc3dpdGNoYC5cbiAqXG4gKiBMaWZ0ZWQgaW50byB0aGUgc2NoZW1hIGFzIHRoZSBvcHRpb25hbFxuICoge0BsaW5rIEdlbmllQXR0YWNobWVudFNjaGVtYX0uYGF0dGFjaG1lbnRfdHlwZWAgZmllbGQgKGNvbXB1dGVcbiAqIGl0IHdpdGgge0BsaW5rIGRldGVjdEF0dGFjaG1lbnRUeXBlfSkgc28gY29uc3VtZXJzIGNhbiBicmFuY2hcbiAqIG9uIGEgbGl0ZXJhbCBpbnN0ZWFkIG9mIHByb2Jpbmcgd2hpY2ggc3ViLW9iamVjdCBrZXkgaXNcbiAqIHByZXNlbnQuIEFsc28gc3VyZmFjZWQgb24ge0BsaW5rIEF0dGFjaG1lbnRFdmVudH0ncyBwYXlsb2FkIGFzXG4gKiBgYXR0YWNobWVudF90eXBlYCAodnMgYSBiYXJlIGB0eXBlYCkgdG8ga2VlcCB0aGUgZmllbGQgY2xlYXIgb2ZcbiAqIHRoZSBldmVudC11bmlvbiBkaXNjcmltaW5hdG9yIGtleS5cbiAqL1xuZXhwb3J0IGNvbnN0IEFUVEFDSE1FTlRfVFlQRVMgPSBbXG4gIFwicXVlcnlcIixcbiAgXCJ0ZXh0XCIsXG4gIFwic3VnZ2VzdGVkX3F1ZXN0aW9uc1wiLFxuXSBhcyBjb25zdCBzYXRpc2ZpZXMgcmVhZG9ubHkgc3RyaW5nW107XG5leHBvcnQgdHlwZSBLbm93bkF0dGFjaG1lbnRUeXBlID0gKHR5cGVvZiBBVFRBQ0hNRU5UX1RZUEVTKVtudW1iZXJdO1xuZXhwb3J0IHR5cGUgQXR0YWNobWVudFR5cGUgPSBLbm93bkF0dGFjaG1lbnRUeXBlIHwgKHN0cmluZyAmIHt9KTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLSB3aWRlbmVkIHdpcmUgc2NoZW1hcyArIHR5cGVzIC0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIGBHZW5pZVF1ZXJ5QXR0YWNobWVudGAgd2lkZW5lZCB3aXRoIHRoZSBgdGhvdWdodHNbXWAgZmllbGQgdGhlXG4gKiBHZW5pZSB3aXJlIGV4cG9zZXMgYnV0IHRoZSBTREsgZG9lc24ndCBjdXJyZW50bHkgdHlwZS4gRXZlcnlcbiAqIG90aGVyIGZpZWxkIChgZGVzY3JpcHRpb25gLCBgcXVlcnlgLCBgc3RhdGVtZW50X2lkYCxcbiAqIGBxdWVyeV9yZXN1bHRfbWV0YWRhdGFgLCBgdGl0bGVgLCBgcGFyYW1ldGVyc2AsXG4gKiBgbGFzdF91cGRhdGVkX3RpbWVzdGFtcGAsIGBpZGApIGZsb3dzIHRocm91Z2ggdmVyYmF0aW0gZnJvbVxuICogdGhlIFNESyBzY2hlbWEuXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5pZVF1ZXJ5QXR0YWNobWVudFNjaGVtYSA9IFNES0dlbmllUXVlcnlBdHRhY2htZW50U2NoZW1hLmV4dGVuZCh7XG4gIHRob3VnaHRzOiB6LmFycmF5KEdlbmllVGhvdWdodFNjaGVtYSkub3B0aW9uYWwoKSxcbn0pO1xuZXhwb3J0IHR5cGUgR2VuaWVRdWVyeUF0dGFjaG1lbnQgPSB6LmluZmVyPHR5cGVvZiBHZW5pZVF1ZXJ5QXR0YWNobWVudFNjaGVtYT47XG5cbi8qKlxuICogUHVycG9zZSBhdHRhY2hlZCB0byBhIEdlbmllIHRleHQgcmVzcG9uc2UuXG4gKlxuICogVGhlIGdlbmVyYXRlZCBEYXRhYnJpY2tzIFNESyBzY2hlbWEgY3VycmVudGx5IGtub3dzIG9ubHlcbiAqIGBGT0xMT1dfVVBfUVVFU1RJT05gLCB3aGlsZSB0aGUgbGl2ZSBHZW5pZSBBUEkgYWxzbyBlbWl0c1xuICogYFRFWFRfQVRUQUNITUVOVF9QVVJQT1NFX0FOU1dFUmAgZm9yIHRoZSBwcmltYXJ5IGFuc3dlciB0ZXh0LiBLZWVwIHRoZVxuICoga25vd24gdmFsdWVzIGRpc2NvdmVyYWJsZSBhbmQgYWNjZXB0IGZ1dHVyZSBzdHJpbmcgdmFsdWVzIHNvIGFuIGFkZGl0aXZlXG4gKiBzZXJ2ZXItc2lkZSBlbnVtIGNoYW5nZSBjYW5ub3QgaW52YWxpZGF0ZSBhbiBvdGhlcndpc2UgY29tcGxldGUgbWVzc2FnZS5cbiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVUZXh0QXR0YWNobWVudFB1cnBvc2UgPVxuICB8IFwiRk9MTE9XX1VQX1FVRVNUSU9OXCJcbiAgfCBcIlRFWFRfQVRUQUNITUVOVF9QVVJQT1NFX0FOU1dFUlwiXG4gIHwgKHN0cmluZyAmIHt9KTtcblxuLyoqIFRleHQgYXR0YWNobWVudCBzY2hlbWEgd2lkZW5lZCBmb3IgZm9yd2FyZC1jb21wYXRpYmxlIHB1cnBvc2UgdmFsdWVzLiAqL1xuZXhwb3J0IGNvbnN0IEdlbmllVGV4dEF0dGFjaG1lbnRTY2hlbWEgPSBkYXNoYm9hcmRzLnRleHRBdHRhY2htZW50U2NoZW1hLmV4dGVuZCh7XG4gIHB1cnBvc2U6IHpcbiAgICAuY3VzdG9tPEdlbmllVGV4dEF0dGFjaG1lbnRQdXJwb3NlPigodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIilcbiAgICAub3B0aW9uYWwoKSxcbn0pO1xuZXhwb3J0IHR5cGUgR2VuaWVUZXh0QXR0YWNobWVudCA9IHouaW5mZXI8dHlwZW9mIEdlbmllVGV4dEF0dGFjaG1lbnRTY2hlbWE+O1xuXG4vKipcbiAqIGBHZW5pZUF0dGFjaG1lbnRgIHdpdGg6XG4gKlxuICogICAtIGBxdWVyeWAgcmUtdHlwZWQgdG8gdGhlIHRob3VnaHRzLWF3YXJlXG4gKiAgICAge0BsaW5rIEdlbmllUXVlcnlBdHRhY2htZW50U2NoZW1hfS5cbiAqICAgLSBgYXR0YWNobWVudF90eXBlYCBkaXNjcmltaW5hdG9yIGxpdGVyYWxcbiAqICAgICAoe0BsaW5rIEF0dGFjaG1lbnRUeXBlfSkgc28gY29uc3VtZXJzIGNhbiBgc3dpdGNoXG4gKiAgICAgKGF0dC5hdHRhY2htZW50X3R5cGUpYCB0byBuYXJyb3cgd2hpY2ggc3ViLW9iamVjdCBpc1xuICogICAgIHBvcHVsYXRlZC4gT3B0aW9uYWwgb24gdGhlIHdpcmUgKEdlbmllIGRvZXNuJ3Qgc2VuZCBpdCk7XG4gKiAgICAgY2FsbGVycyBjb21wdXRlIGl0IHdpdGgge0BsaW5rIGRldGVjdEF0dGFjaG1lbnRUeXBlfSB3aGVuXG4gKiAgICAgdGhleSB3YW50IHRoZSBsaXRlcmFsIHVwLWZyb250LlxuICpcbiAqIGB0ZXh0YCBpcyByZS10eXBlZCB0byB0aGUgZm9yd2FyZC1jb21wYXRpYmxlXG4gKiB7QGxpbmsgR2VuaWVUZXh0QXR0YWNobWVudFNjaGVtYX0uIGBhdHRhY2htZW50X2lkYCBhbmRcbiAqIGBzdWdnZXN0ZWRfcXVlc3Rpb25zYCBwYXNzIHRocm91Z2ggdW5jaGFuZ2VkLiBgYXR0YWNobWVudF9pZGAgaXMgZ2VudWluZWx5XG4gKiBvcHRpb25hbCBvbiB0aGUgd2lyZTpcbiAqIHRoZSBmaXJzdCB0ZXh0IGF0dGFjaG1lbnQgR2VuaWUgZW1pdHMgcGVyIHR1cm4gKHRoZSBcIm1haW5cbiAqIGFuc3dlciB0ZXh0XCIpIGFycml2ZXMgd2l0aCBubyBpZCwgb25seSB0aGUgZm9sbG93LXVwIHRleHRcbiAqIGF0dGFjaG1lbnQgZ2V0cyBvbmUuXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5pZUF0dGFjaG1lbnRTY2hlbWEgPSBTREtHZW5pZUF0dGFjaG1lbnRTY2hlbWEuZXh0ZW5kKHtcbiAgcXVlcnk6IEdlbmllUXVlcnlBdHRhY2htZW50U2NoZW1hLm9wdGlvbmFsKCksXG4gIHRleHQ6IEdlbmllVGV4dEF0dGFjaG1lbnRTY2hlbWEub3B0aW9uYWwoKSxcbiAgYXR0YWNobWVudF90eXBlOiB6LmN1c3RvbTxBdHRhY2htZW50VHlwZT4oKHYpID0+IHR5cGVvZiB2ID09PSBcInN0cmluZ1wiKS5vcHRpb25hbCgpLFxufSk7XG5leHBvcnQgdHlwZSBHZW5pZUF0dGFjaG1lbnQgPSB6LmluZmVyPHR5cGVvZiBHZW5pZUF0dGFjaG1lbnRTY2hlbWE+O1xuXG4vKipcbiAqIGBHZW5pZU1lc3NhZ2VgIHdpZGVuZWQgd2l0aDpcbiAqXG4gKiAgIC0gYGF1dG9fcmVnZW5lcmF0ZV9jb3VudGA6IG51bWJlciBzdGFtcGVkIG9uIGV2ZXJ5IHdpcmVcbiAqICAgICBtZXNzYWdlIHRoYXQgdGhlIFNESyB0eXBlIG9taXRzIGF0IHYwLjE3LlxuICogICAtIGBhdHRhY2htZW50c2A6IHJlLXR5cGVkIHRvIHRoZSBsb2NhbFxuICogICAgIHtAbGluayBHZW5pZUF0dGFjaG1lbnRTY2hlbWF9IHNvXG4gKiAgICAgYGF0dGFjaG1lbnQucXVlcnk/LnRob3VnaHRzYCAoYW5kIHRoZVxuICogICAgIGBhdHRhY2htZW50X3R5cGVgIGRpc2NyaW1pbmF0b3IpIGlzIHJlYWNoYWJsZSB3aXRob3V0IGFcbiAqICAgICBjYXN0LlxuICpcbiAqIEV2ZXJ5IG90aGVyIGZpZWxkIChgaWRgLCBgc3BhY2VfaWRgLCBgY29udmVyc2F0aW9uX2lkYCxcbiAqIGB1c2VyX2lkYCwgYGNyZWF0ZWRfdGltZXN0YW1wYCwgYGxhc3RfdXBkYXRlZF90aW1lc3RhbXBgLFxuICogYHN0YXR1c2AsIGBjb250ZW50YCwgYG1lc3NhZ2VfaWRgLCBgcXVlcnlfcmVzdWx0YCwgYGVycm9yYCxcbiAqIGBmZWVkYmFja2ApIHBhc3NlcyB0aHJvdWdoIGZyb20gdGhlIFNESyBzY2hlbWEuXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5pZU1lc3NhZ2VTY2hlbWEgPSBTREtHZW5pZU1lc3NhZ2VTY2hlbWEuZXh0ZW5kKHtcbiAgYXR0YWNobWVudHM6IHouYXJyYXkoR2VuaWVBdHRhY2htZW50U2NoZW1hKS5vcHRpb25hbCgpLFxuICBhdXRvX3JlZ2VuZXJhdGVfY291bnQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbn0pO1xuZXhwb3J0IHR5cGUgR2VuaWVNZXNzYWdlID0gei5pbmZlcjx0eXBlb2YgR2VuaWVNZXNzYWdlU2NoZW1hPjtcblxuLyoqXG4gKiBEb21haW4gcHJvamVjdGlvbiBvZiB7QGxpbmsgR2VuaWVNZXNzYWdlU2NoZW1hfSB0aGF0IGRyb3BzIGV2ZXJ5XG4gKiB0dXJuLWxldmVsIGZpZWxkIChgaWRgLCBgc3RhdHVzYCwgYGNyZWF0ZWRfdGltZXN0YW1wYCxcbiAqIGBxdWVyeV9yZXN1bHRgLCAuLi4pIGFuZCB5aWVsZHMganVzdCB0aGUgcmVzcG9uc2UgcGF5bG9hZCBhcyBhXG4gKiBmbGF0IGBHZW5pZUF0dGFjaG1lbnRbXWAuIFBhcnNlcyB0aGUgc2FtZSB3aXJlIHNoYXBlIGFzXG4gKiB7QGxpbmsgR2VuaWVNZXNzYWdlU2NoZW1hfTsgbWlzc2luZyBgYXR0YWNobWVudHNgIGRlZmF1bHRzIHRvXG4gKiBgW11gIHNvIHRoZSBvdXRwdXQgaXMgYWx3YXlzIGFuIGFycmF5LlxuICpcbiAqIFVzZSB3aGVuIGNvbnN1bWVycyBvbmx5IGNhcmUgYWJvdXQgdGhlIG1vZGVsJ3MgcmVzcG9uc2VcbiAqIGF0dGFjaG1lbnRzIGFuZCBub3QgdGhlIHN1cnJvdW5kaW5nIG1lc3NhZ2UgZW52ZWxvcGUuXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5pZVJlc3BvbnNlU2NoZW1hID0gR2VuaWVNZXNzYWdlU2NoZW1hLnRyYW5zZm9ybSgobSkgPT4gbS5hdHRhY2htZW50cyA/PyBbXSk7XG5leHBvcnQgdHlwZSBHZW5pZVJlc3BvbnNlID0gei5pbmZlcjx0eXBlb2YgR2VuaWVSZXNwb25zZVNjaGVtYT47XG5cbi8qKlxuICogYEdlbmllU3BhY2VgIHdpZGVuZWQgd2l0aCBhbiBvcHRpb25hbCBgc2VyaWFsaXplZF9zcGFjZWAgZmllbGRcbiAqIGNhcnJ5aW5nIGEgSlNPTi1zdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHNwYWNlJ3MgZnVsbFxuICogZGVmaW5pdGlvbiAoY2F0YWxvZ3MsIHNjaGVtYXMsIHRhYmxlcywgc2FtcGxlIHF1ZXN0aW9ucywgcHJvbXB0cyxcbiAqIGV0Yy4pIGFzIGV4cG9ydGVkIGJ5IHRoZSB3b3Jrc3BhY2UgZXhwb3J0IGVuZHBvaW50LlxuICpcbiAqIFRoZSBiYXNlIFNESyBzaGFwZSAoYGRlc2NyaXB0aW9uYCwgYHNwYWNlX2lkYCwgYHRpdGxlYCxcbiAqIGB3YXJlaG91c2VfaWRgKSBjb3ZlcnMgdGhlIGRpcmVjdG9yeS1saXN0aW5nIHN1cmZhY2UgLSBlbm91Z2ggdG9cbiAqIHJvdXRlIGEgY2hhdC4gYHNlcmlhbGl6ZWRfc3BhY2VgIGlzIG9wdC1pbiBzbyBjYWxsZXJzIHRoYXQgbmVlZFxuICogdGhlIGZ1bGwgc3BhY2Ugc2NoZW1hIChlLmcuIHRvIHNlZWQgYSBzeXN0ZW0gcHJvbXB0IG9yIHRvIHNoaXBcbiAqIHRoZSBkZWZpbml0aW9uIHRvIGFuIGFnZW50KSBjYW4gYXR0YWNoIGl0IHdpdGhvdXQgYSBzZWNvbmQgdHlwZS5cbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmllU3BhY2VTY2hlbWEgPSBTREtHZW5pZVNwYWNlU2NoZW1hLmV4dGVuZCh7XG4gIHNlcmlhbGl6ZWRfc3BhY2U6IHpcbiAgICAuc3RyaW5nKClcbiAgICAub3B0aW9uYWwoKVxuICAgIC5kZXNjcmliZShcbiAgICAgIFwiVGhlIGNvbnRlbnRzIG9mIHRoZSBHZW5pZSBTcGFjZSBpbiBzZXJpYWxpemVkIHN0cmluZyBmb3JtLiBUaGlzIGZpZWxkIGlzIGV4Y2x1ZGVkIGluIExpc3QgR2VuaWUgc3BhY2VzIHJlc3BvbnNlcy4gVGhpcyBmaWVsZCBwcm92aWRlcyB0aGUgc3RydWN0dXJlIG9mIHRoZSBKU09OIHN0cmluZyB0aGF0IHJlcHJlc2VudHMgdGhlIHNwYWNlJ3MgbGF5b3V0IGFuZCBjb21wb25lbnRzLlwiLFxuICAgICksXG59KTtcbmV4cG9ydCB0eXBlIEdlbmllU3BhY2UgPSB6LmluZmVyPHR5cGVvZiBHZW5pZVNwYWNlU2NoZW1hPjtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHRlcm1pbmFsIGhlbHBlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFRlcm1pbmFsIEdlbmllIG1lc3NhZ2Ugc3RhdHVzZXMuIFRoZSBwb2xsaW5nIGxvb3AgaW4gdGhlIGNoYXRcbiAqIGRyaXZlciBzdG9wcyBhcyBzb29uIGFzIHRoZSBsYXRlc3QgbWVzc2FnZSBoYXMgb25lIG9mIHRoZXNlXG4gKiBzdGF0dXNlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IFRFUk1JTkFMX1NUQVRVU0VTID0gW1wiQ09NUExFVEVEXCIsIFwiRkFJTEVEXCIsIFwiQ0FOQ0VMTEVEXCJdIGFzIGNvbnN0O1xuZXhwb3J0IHR5cGUgVGVybWluYWxTdGF0dXMgPSAodHlwZW9mIFRFUk1JTkFMX1NUQVRVU0VTKVtudW1iZXJdO1xuXG4vKiogTmFycm93IGBNZXNzYWdlU3RhdHVzIHwgdW5kZWZpbmVkYCB0byBhIHtAbGluayBUZXJtaW5hbFN0YXR1c30uICovXG5leHBvcnQgZnVuY3Rpb24gaXNUZXJtaW5hbFN0YXR1cyhzOiBNZXNzYWdlU3RhdHVzIHwgdW5kZWZpbmVkKTogcyBpcyBUZXJtaW5hbFN0YXR1cyB7XG4gIHJldHVybiBzICE9PSB1bmRlZmluZWQgJiYgKFRFUk1JTkFMX1NUQVRVU0VTIGFzIHJlYWRvbmx5IHN0cmluZ1tdKS5pbmNsdWRlcyhzKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgcmF3IEdlbmllIHdpcmUgc3RhdHVzIChgRkVUQ0hJTkdfTUVUQURBVEFgLFxuICogYEFTS0lOR19BSWAsIGBFWEVDVVRJTkdfUVVFUllgLCAuLi4pIGludG8gYSBzaG9ydCwgc2VudGVuY2UtY2FzZWRcbiAqIGxhYmVsIHNhZmUgdG8gZHJvcCBpbnRvIGEgVUkgcGlsbC4gS25vd24gc3RhdGVzIGdldCBhIGN1cmF0ZWRcbiAqIGxhYmVsOyB1bmtub3duIHN0YXRlcyBmYWxsIGJhY2sgdG8gYHN0cmluZy50b2tlbml6ZVdpdGhPcHRpb25zYFxuICogc28gbmV3IHN0YXRlcyBzdGlsbCByZW5kZXIgY2xlYW5seSB3aXRob3V0IGNvZGUgY2hhbmdlcy5cbiAqXG4gKiBQdXJlIChubyBOb2RlLW9ubHkgZGVwcyksIHNhZmUgZm9yIGJyb3dzZXIgYnVuZGxlcy4gQm90aCB0aGVcbiAqIEdlbmllIGFnZW50IChzZXJ2ZXIpIGFuZCBhbnkgVUkgdGhhdCBzdWJzY3JpYmVzIHRvIHN0YXR1cyBldmVudHNcbiAqIGNhbGwgdGhpcyBzbyBsYWJlbHMgc3RheSBpbiBsb2NrLXN0ZXAgYWNyb3NzIHRoZSB3aXJlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaHVtYW5pemVTdGF0dXMoc3RhdHVzOiBNZXNzYWdlU3RhdHVzKTogc3RyaW5nIHtcbiAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICBjYXNlIFwiRkVUQ0hJTkdfTUVUQURBVEFcIjpcbiAgICAgIHJldHVybiBcIkZldGNoaW5nIG1ldGFkYXRhXCI7XG4gICAgY2FzZSBcIkFTS0lOR19BSVwiOlxuICAgICAgcmV0dXJuIFwiQXNraW5nIEdlbmllXCI7XG4gICAgY2FzZSBcIkVYRUNVVElOR19RVUVSWVwiOlxuICAgICAgcmV0dXJuIFwiUnVubmluZyBTUUwgcXVlcnlcIjtcbiAgICBjYXNlIFwiRklMVEVSSU5HX0NPTlRFWFRcIjpcbiAgICAgIHJldHVybiBcIkZpbHRlcmluZyBjb250ZXh0XCI7XG4gICAgY2FzZSBcIlBFTkRJTkdfV0FSRUhPVVNFXCI6XG4gICAgICByZXR1cm4gXCJXYWl0aW5nIGZvciB3YXJlaG91c2VcIjtcbiAgICBjYXNlIFwiQ09NUExFVEVEXCI6XG4gICAgICByZXR1cm4gXCJDb21wbGV0ZWRcIjtcbiAgICBjYXNlIFwiRkFJTEVEXCI6XG4gICAgICByZXR1cm4gXCJGYWlsZWRcIjtcbiAgICBjYXNlIFwiQ0FOQ0VMTEVEXCI6XG4gICAgICByZXR1cm4gXCJDYW5jZWxsZWRcIjtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIFsuLi5zdHJpbmcudG9rZW5pemVXaXRoT3B0aW9ucyh7IGNhcGl0YWxpemU6IHRydWUsIGxvd2VyQ2FzZTogdHJ1ZSB9LCBzdGF0dXMpXS5qb2luKFxuICAgICAgICBcIiBcIixcbiAgICAgICk7XG4gIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gYXR0YWNobWVudCB0eXBlIGhlbHBlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogSW5zcGVjdCBhIHtAbGluayBHZW5pZUF0dGFjaG1lbnR9IGFuZCByZXR1cm4gdGhlXG4gKiB7QGxpbmsgQXR0YWNobWVudFR5cGV9IG9mIHBheWxvYWQgaXQgY2Fycmllcy4gUmV0dXJucyB0aGUgZmlyc3RcbiAqIGtub3duIHN1Yi1vYmplY3QgdGhhdCdzIHByZXNlbnQ7IGlmIG5vbmUgb2YgdGhlIGtub3duIG9uZXMgYXJlXG4gKiBwb3B1bGF0ZWQsIGZhbGxzIGJhY2sgdG8gdGhlIGZpcnN0IG5vbi1ib29ra2VlcGluZyBrZXlcbiAqIChmb3J3YXJkLWNvbXBhdCBmb3IgdHlwZXMgd2UgZG9uJ3QgbW9kZWwgeWV0KSwgZWxzZSBgXCJ1bmtub3duXCJgLlxuICpcbiAqIEhvbm9ycyBhIHByZS1zZXQgYGF0dGFjaG1lbnRfdHlwZWAgaWYgb25lIGlzIGFscmVhZHkgb24gdGhlXG4gKiB2YWx1ZSwgc28gdGhpcyBpcyBpZGVtcG90ZW50IGFjcm9zcyByZS1kZXRlY3Rpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGV0ZWN0QXR0YWNobWVudFR5cGUoYXR0OiBHZW5pZUF0dGFjaG1lbnQpOiBBdHRhY2htZW50VHlwZSB7XG4gIGlmIChhdHQuYXR0YWNobWVudF90eXBlKSByZXR1cm4gYXR0LmF0dGFjaG1lbnRfdHlwZTtcbiAgaWYgKGF0dC5xdWVyeSkgcmV0dXJuIFwicXVlcnlcIjtcbiAgaWYgKGF0dC50ZXh0KSByZXR1cm4gXCJ0ZXh0XCI7XG4gIGlmIChhdHQuc3VnZ2VzdGVkX3F1ZXN0aW9ucykgcmV0dXJuIFwic3VnZ2VzdGVkX3F1ZXN0aW9uc1wiO1xuICBmb3IgKGNvbnN0IGsgb2YgT2JqZWN0LmtleXMoYXR0KSkge1xuICAgIGlmIChrICE9PSBcImF0dGFjaG1lbnRfaWRcIiAmJiBrICE9PSBcImF0dGFjaG1lbnRfdHlwZVwiKSByZXR1cm4gaztcbiAgfVxuICByZXR1cm4gXCJ1bmtub3duXCI7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gR2VuaWVDaGF0IGV2ZW50cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBXaGVyZSBvbiB0aGUgd2lyZSBhbiBldmVudCB3YXMgb2JzZXJ2ZWQuIFNwcmVhZCBpbnRvIGV2ZXJ5XG4gKiBhdHRhY2htZW50LXNjb3BlZCBldmVudCBwYXlsb2FkIHNvIHN1YnNjcmliZXJzIGNhbiByb3V0ZSwgbG9nLFxuICogb3IgY29ycmVsYXRlIHdpdGhvdXQgcmUtd2Fsa2luZyB0aGUgbWVzc2FnZS5cbiAqXG4gKiBGaWVsZHM6XG4gKiAgIC0gYHNwYWNlX2lkYDogdGhlIEdlbmllIHNwYWNlIHRoZSBjb252ZXJzYXRpb24gbGl2ZXMgaW4uXG4gKiAgIC0gYGNvbnZlcnNhdGlvbl9pZGA6IGNvbnZlcnNhdGlvbiBpZCBvbmNlIEdlbmllIGhhcyBhc3NpZ25lZCBvbmUuXG4gKiAgIC0gYG1lc3NhZ2VfaWRgOiBHZW5pZSBtZXNzYWdlIGlkIGZvciB0aGUgYWN0aXZlIHR1cm4uXG4gKiAgIC0gYGF0dGFjaG1lbnRfaWRgOiBhdHRhY2htZW50IHRoZSBldmVudCBjYW1lIGZyb20uIE9wdGlvbmFsXG4gKiAgICAgYmVjYXVzZSBHZW5pZSBzb21ldGltZXMgZW1pdHMgYW4gYW5vbnltb3VzIG1haW4tYW5zd2VyXG4gKiAgICAgYXR0YWNobWVudCB3aXRob3V0IGFuIGlkOyB0aG9zZSBzdGlsbCBnZXQgZXZlbnRzLCBqdXN0IHdpdGhcbiAqICAgICBgYXR0YWNobWVudF9pZGAgdW5kZWZpbmVkLlxuICovXG5leHBvcnQgY29uc3QgR2VuaWVDaGF0TG9jYXRpb25TY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHNwYWNlX2lkOiB6LnN0cmluZygpLFxuICBjb252ZXJzYXRpb25faWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgbWVzc2FnZV9pZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBhdHRhY2htZW50X2lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcbmV4cG9ydCB0eXBlIEdlbmllQ2hhdExvY2F0aW9uID0gei5pbmZlcjx0eXBlb2YgR2VuaWVDaGF0TG9jYXRpb25TY2hlbWE+O1xuXG4vKipcbiAqIExpZmVjeWNsZSBldmVudDogdGhlIHF1ZXN0aW9uIHRoaXMgdHVybiBpcyBhc2tpbmcgR2VuaWUuIEZpcmVzXG4gKiBvbmNlIHBlciBgZ2VuaWVFdmVudENoYXRgIGNhbGwsIHRoZSBmaXJzdCB0aW1lIHRoZSB1bmRlcmx5aW5nXG4gKiBgZ2VuaWVDaGF0YCBsb29wIHlpZWxkcyBhIGBHZW5pZU1lc3NhZ2VgLiBDYXJyaWVzIHRoZSBwcm9tcHRcbiAqIHRleHQgR2VuaWUgZWNob2VkIGJhY2sgb24gYG1lc3NhZ2UuY29udGVudGAgYW5kIHRoZSBhc3NpZ25lZFxuICogYG1lc3NhZ2VfaWRgIHNvIHN1YnNjcmliZXJzIGNhbiBncm91cCBldmVyeSBzdWJzZXF1ZW50IGV2ZW50XG4gKiBmb3IgdGhpcyB0dXJuIHVuZGVyIG9uZSBzdGFibGUga2V5LiBgY29udmVyc2F0aW9uX2lkYCBpc1xuICogcG9wdWxhdGVkIGZvciBib3RoIG9wZW5pbmcgYW5kIGZvbGxvdy11cCB0dXJucyAoR2VuaWUgYXNzaWduc1xuICogaXQgb24gYHN0YXJ0Q29udmVyc2F0aW9uYCkuXG4gKlxuICogRGVmZXJyZWQgKGluc3RlYWQgb2YgZmlyZWQgc3luY2hyb25vdXNseSBvbiBlbnRyeSkgc28gdGhlXG4gKiBgbWVzc2FnZV9pZGAgaXMgYXZhaWxhYmxlIHdoZW4gdGhlIGV2ZW50IGxhbmRzIC0gdGhhdCBvbmUgcm91bmRcbiAqIHRyaXAgY29zdHMgfjIwMG1zIGJ1dCBsZXRzIFVJcyByZW5kZXIgcXVlc3Rpb24gLyB0aGlua2luZyAvXG4gKiBxdWVyeSAvIHRleHQgYXMgYSBzaW5nbGUgZ3JvdXBlZCBibG9jayBwZXIgR2VuaWUgY2FsbCBpbnN0ZWFkXG4gKiBvZiBhIGZsYXQgc3RyZWFtLlxuICpcbiAqIGBhdHRhY2htZW50X2lkYCBpcyBpbnRlbnRpb25hbGx5IGFic2VudCAtIHF1ZXN0aW9ucyBhcmUgdHVyblxuICogc2NvcGVkLCBub3QgYXR0YWNobWVudCBzY29wZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBRdWVzdGlvbkV2ZW50U2NoZW1hID0gR2VuaWVDaGF0TG9jYXRpb25TY2hlbWEub21pdCh7XG4gIGF0dGFjaG1lbnRfaWQ6IHRydWUsXG59KS5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJxdWVzdGlvblwiKSxcbiAgY29udGVudDogei5zdHJpbmcoKSxcbn0pO1xuZXhwb3J0IHR5cGUgUXVlc3Rpb25FdmVudCA9IHouaW5mZXI8dHlwZW9mIFF1ZXN0aW9uRXZlbnRTY2hlbWE+O1xuXG4vKipcbiAqIExpZmVjeWNsZSBldmVudDogcmF3IGBHZW5pZU1lc3NhZ2VgIHNuYXBzaG90IGZvciB0aGUgYWN0aXZlXG4gKiB0dXJuLiBGaXJlcyBvbmNlIHBlciBwb2xsIHlpZWxkLiBUaGUgZnVsbCBtZXNzYWdlIHNoYXBlXG4gKiAoaW5jbHVkaW5nIHRoZSB3aWRlbmVkIHRob3VnaHQgLyByZWdlbiAvIGF0dGFjaG1lbnQtdHlwZVxuICogZmllbGRzKSBpcyBleHBvc2VkIGlubGluZSBhcyBgbWVzc2FnZWA7IGNvbnN1bWVycyBuYXJyb3cgb25cbiAqIGBldmVudC50eXBlID09PSBcIm1lc3NhZ2VcImAgYW5kIHJlYWNoIGZvciBgZXZlbnQubWVzc2FnZWAuXG4gKi9cbmV4cG9ydCBjb25zdCBNZXNzYWdlRXZlbnRTY2hlbWEgPSBHZW5pZUNoYXRMb2NhdGlvblNjaGVtYS5vbWl0KHtcbiAgYXR0YWNobWVudF9pZDogdHJ1ZSxcbn0pLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcIm1lc3NhZ2VcIiksXG4gIG1lc3NhZ2U6IEdlbmllTWVzc2FnZVNjaGVtYSxcbn0pO1xuZXhwb3J0IHR5cGUgTWVzc2FnZUV2ZW50ID0gei5pbmZlcjx0eXBlb2YgTWVzc2FnZUV2ZW50U2NoZW1hPjtcblxuLyoqXG4gKiBUb3AtbGV2ZWwgYG1lc3NhZ2Uuc3RhdHVzYCB0cmFuc2l0aW9uZWQuIEZpcmVzIGZvciBldmVyeVxuICogZGlzdGluY3Qgc3RhdHVzIHNlZW4gb24gdGhlIHdpcmUgKGUuZy4gYFNVQk1JVFRFRGAgLT5cbiAqIGBGSUxURVJJTkdfQ09OVEVYVGAgLT4gYEFTS0lOR19BSWAgLT4gYFBFTkRJTkdfV0FSRUhPVVNFYCAtPlxuICogYEFTS0lOR19BSWAgLT4gYENPTVBMRVRFRGApLlxuICovXG5leHBvcnQgY29uc3QgU3RhdHVzRXZlbnRTY2hlbWEgPSBHZW5pZUNoYXRMb2NhdGlvblNjaGVtYS5vbWl0KHtcbiAgYXR0YWNobWVudF9pZDogdHJ1ZSxcbn0pLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcInN0YXR1c1wiKSxcbiAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzU2NoZW1hLFxuICBwcmV2aW91c19zdGF0dXM6IE1lc3NhZ2VTdGF0dXNTY2hlbWEub3B0aW9uYWwoKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3RhdHVzRXZlbnQgPSB6LmluZmVyPHR5cGVvZiBTdGF0dXNFdmVudFNjaGVtYT47XG5cbi8qKlxuICogQSBuZXcgYXR0YWNobWVudCBzbG90IGFwcGVhcmVkIGluIGBtZXNzYWdlLmF0dGFjaG1lbnRzW11gLlxuICogRmlyZXMgZXhhY3RseSBvbmNlIHBlciBhdHRhY2htZW50IChtYXRjaGVkIGJ5IGBhdHRhY2htZW50X2lkYCxcbiAqIHBvc2l0aW9uYWxseSBmb3IgYW5vbnltb3VzIGF0dGFjaG1lbnRzKSB0aGUgZmlyc3QgdGltZSB3ZSBzZWVcbiAqIGl0LiBUaGUgc2xvdCdzIHBheWxvYWQga2luZCBsYW5kcyBpbiBgYXR0YWNobWVudF90eXBlYCBzbyB0aGVcbiAqIG91dGVyIGB0eXBlYCBkaXNjcmltaW5hdG9yIHN0YXlzIHVuYW1iaWd1b3VzLlxuICovXG5leHBvcnQgY29uc3QgQXR0YWNobWVudEV2ZW50U2NoZW1hID0gR2VuaWVDaGF0TG9jYXRpb25TY2hlbWEuZXh0ZW5kKHtcbiAgdHlwZTogei5saXRlcmFsKFwiYXR0YWNobWVudFwiKSxcbiAgaW5kZXg6IHoubnVtYmVyKCksXG4gIGF0dGFjaG1lbnRfdHlwZTogei5jdXN0b208QXR0YWNobWVudFR5cGU+KCh2KSA9PiB0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIiksXG59KTtcbmV4cG9ydCB0eXBlIEF0dGFjaG1lbnRFdmVudCA9IHouaW5mZXI8dHlwZW9mIEF0dGFjaG1lbnRFdmVudFNjaGVtYT47XG5cbi8qKlxuICogQSBuZXcgcmVhc29uaW5nIHN0ZXAgYXBwZWFyZWQgb24gYSBxdWVyeSBhdHRhY2htZW50XG4gKiAoYGF0dGFjaG1lbnRzW2ldLnF1ZXJ5LnRob3VnaHRzW2ldYCkuIERlZHVwbGljYXRlZCBwZXJcbiAqIGAodGhvdWdodF90eXBlLCBjb250ZW50KWAgdHVwbGUgd2l0aGluIGFuIGF0dGFjaG1lbnQgc29cbiAqIHN1YnNjcmliZXJzIGRvbid0IHNlZSB0aGUgc2FtZSB0aG91Z2h0IG11bHRpcGxlIHRpbWVzIC0gR2VuaWVcbiAqIHNvbWV0aW1lcyBtdXRhdGVzIGV4aXN0aW5nIHRob3VnaHQgc2xvdHMgaW4gcGxhY2UsIHNvIHRoZSBkaWZmXG4gKiBpcyB2YWx1ZS1iYXNlZCByYXRoZXIgdGhhbiBwb3NpdGlvbmFsLlxuICovXG5leHBvcnQgY29uc3QgVGhpbmtpbmdFdmVudFNjaGVtYSA9IEdlbmllQ2hhdExvY2F0aW9uU2NoZW1hLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcInRoaW5raW5nXCIpLFxuICB0ZXh0OiB6LnN0cmluZygpLFxuICB0aG91Z2h0X3R5cGU6IHouY3VzdG9tPEdlbmllVGhvdWdodFR5cGU+KCh2KSA9PiB0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIiksXG59KTtcbmV4cG9ydCB0eXBlIFRoaW5raW5nRXZlbnQgPSB6LmluZmVyPHR5cGVvZiBUaGlua2luZ0V2ZW50U2NoZW1hPjtcblxuLyoqXG4gKiBBIHRleHQtYXR0YWNobWVudCBgY29udGVudGAgZmllbGQgYXBwZWFyZWQgb3IgY2hhbmdlZFxuICogKGBhdHRhY2htZW50c1tpXS50ZXh0LmNvbnRlbnRgKS4gRmlyZXMgd2hlbmV2ZXIgdGhlIHNuYXBzaG90XG4gKiB2YWx1ZSBkaWZmZXJzIGZyb20gdGhlIHByZXZpb3VzIG9uZSBmb3IgdGhlIHNhbWUgYXR0YWNobWVudC5cbiAqL1xuZXhwb3J0IGNvbnN0IFRleHRFdmVudFNjaGVtYSA9IEdlbmllQ2hhdExvY2F0aW9uU2NoZW1hLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcInRleHRcIiksXG4gIHRleHQ6IHouc3RyaW5nKCksXG59KTtcbmV4cG9ydCB0eXBlIFRleHRFdmVudCA9IHouaW5mZXI8dHlwZW9mIFRleHRFdmVudFNjaGVtYT47XG5cbi8qKlxuICogU1FMIHdhcyBmaW5hbGl6ZWQgb24gYSBxdWVyeSBhdHRhY2htZW50XG4gKiAoYGF0dGFjaG1lbnRzW2ldLnF1ZXJ5LnF1ZXJ5YCkuIEZpcmVzIG9uY2Ugd2hlbiB0aGUgU1FMIHN0cmluZ1xuICogdHJhbnNpdGlvbnMgZnJvbSB1bmRlZmluZWQgdG8gZGVmaW5lZCwgYW5kIGFnYWluIGlmIEdlbmllIGV2ZXJcbiAqIHJld3JpdGVzIGl0LiBgdGl0bGVgIGFuZCBgZGVzY3JpcHRpb25gIGFyZSBkZW5vcm1hbGlzZWQgb2ZmIHRoZVxuICogYXR0YWNobWVudCdzIGBxdWVyeS50aXRsZWAgLyBgcXVlcnkuZGVzY3JpcHRpb25gIHNvIGNvbnN1bWVyc1xuICogY2FuIGxhYmVsIHRoZSBTUUwgcGlsbCB3aXRob3V0IHJlLXdhbGtpbmcgdGhlIG1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBjb25zdCBRdWVyeUV2ZW50U2NoZW1hID0gR2VuaWVDaGF0TG9jYXRpb25TY2hlbWEuZXh0ZW5kKHtcbiAgdHlwZTogei5saXRlcmFsKFwicXVlcnlcIiksXG4gIHNxbDogei5zdHJpbmcoKSxcbiAgdGl0bGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuZXhwb3J0IHR5cGUgUXVlcnlFdmVudCA9IHouaW5mZXI8dHlwZW9mIFF1ZXJ5RXZlbnRTY2hlbWE+O1xuXG4vKipcbiAqIFNRTCB3YXMgc3VibWl0dGVkIHRvIGEgU1FMIHdhcmVob3VzZSBhbmQgYSBzdGF0ZW1lbnQgaWQgd2FzXG4gKiBhc3NpZ25lZCAoYGF0dGFjaG1lbnRzW2ldLnF1ZXJ5LnN0YXRlbWVudF9pZGApLiBGaXJlcyB3aGVuIHRoZVxuICogc3RhdGVtZW50IGlkIHRyYW5zaXRpb25zIGZyb20gdW5kZWZpbmVkIHRvIGRlZmluZWQgLSB0aGlzIGlzIHRoZVxuICogcG9pbnQgYXQgd2hpY2ggYGNsaWVudC5zdGF0ZW1lbnRFeGVjdXRpb24uZ2V0U3RhdGVtZW50KHsgc3RhdGVtZW50X2lkIH0pYFxuICogYmVjb21lcyBhIHZhbGlkIGNhbGwuXG4gKi9cbmV4cG9ydCBjb25zdCBTdGF0ZW1lbnRFdmVudFNjaGVtYSA9IEdlbmllQ2hhdExvY2F0aW9uU2NoZW1hLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcInN0YXRlbWVudFwiKSxcbiAgc3RhdGVtZW50X2lkOiB6LnN0cmluZygpLFxufSk7XG5leHBvcnQgdHlwZSBTdGF0ZW1lbnRFdmVudCA9IHouaW5mZXI8dHlwZW9mIFN0YXRlbWVudEV2ZW50U2NoZW1hPjtcblxuLyoqXG4gKiBSb3cgY291bnQgZm9yIGEgcXVlcnkgYXR0YWNobWVudCdzIHJlc3VsdCBjaGFuZ2VkXG4gKiAoYGF0dGFjaG1lbnRzW2ldLnF1ZXJ5LnF1ZXJ5X3Jlc3VsdF9tZXRhZGF0YS5yb3dfY291bnRgKS4gRmlyZXNcbiAqIG9uIGV2ZXJ5IGNoYW5nZSwgaW5jbHVkaW5nIHRoZSBpbml0aWFsIGB1bmRlZmluZWQgLT4gMGAgYW5kIHRoZVxuICogbGF0ZXIgYDAgLT4gTmAgb25jZSB0aGUgd2FyZWhvdXNlIGZpbmlzaGVzIGV4ZWN1dGlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IFJvd3NFdmVudFNjaGVtYSA9IEdlbmllQ2hhdExvY2F0aW9uU2NoZW1hLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcInJvd3NcIiksXG4gIHJvd19jb3VudDogei5udW1iZXIoKSxcbiAgcHJldmlvdXNfcm93X2NvdW50OiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIHN0YXRlbWVudF9pZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSk7XG5leHBvcnQgdHlwZSBSb3dzRXZlbnQgPSB6LmluZmVyPHR5cGVvZiBSb3dzRXZlbnRTY2hlbWE+O1xuXG4vKipcbiAqIEdlbmllIHByb2R1Y2VkIGEgZm9sbG93LXVwIHN1Z2dlc3RlZC1xdWVzdGlvbnMgbGlzdFxuICogKGBhdHRhY2htZW50c1tpXS5zdWdnZXN0ZWRfcXVlc3Rpb25zLnF1ZXN0aW9uc1tdYCkuIEZpcmVzIG9uY2VcbiAqIHdoZW4gdGhlIGxpc3QgYXBwZWFycywgYW5kIGFnYWluIGlmIEdlbmllIHJld3JpdGVzIGl0LlxuICovXG5leHBvcnQgY29uc3QgU3VnZ2VzdGVkUXVlc3Rpb25zRXZlbnRTY2hlbWEgPSBHZW5pZUNoYXRMb2NhdGlvblNjaGVtYS5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJzdWdnZXN0ZWRfcXVlc3Rpb25zXCIpLFxuICBxdWVzdGlvbnM6IHouYXJyYXkoei5zdHJpbmcoKSksXG59KTtcbmV4cG9ydCB0eXBlIFN1Z2dlc3RlZFF1ZXN0aW9uc0V2ZW50ID0gei5pbmZlcjx0eXBlb2YgU3VnZ2VzdGVkUXVlc3Rpb25zRXZlbnRTY2hlbWE+O1xuXG4vKipcbiAqIFRoZSBhY3RpdmUgdHVybiByZWFjaGVkIGEgdGVybWluYWwgc3RhdHVzLiBBbHdheXMgZmlyZXMgb25jZVxuICogcGVyIHR1cm4gKGltbWVkaWF0ZWx5IGFmdGVyIHRoZSB0ZXJtaW5hbCBgbWVzc2FnZWAgZXZlbnQpLlxuICogQ2FycmllcyB0aGUgZmluYWwgYEdlbmllTWVzc2FnZWAgc25hcHNob3QgaW5saW5lIHNvIHN1YnNjcmliZXJzXG4gKiBkb24ndCBuZWVkIHRvIGtlZXAgdGhlaXIgb3duIGNvcHkgb2YgdGhlIGxhc3QgbWVzc2FnZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFJlc3VsdEV2ZW50U2NoZW1hID0gR2VuaWVDaGF0TG9jYXRpb25TY2hlbWEub21pdCh7XG4gIGF0dGFjaG1lbnRfaWQ6IHRydWUsXG59KS5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJyZXN1bHRcIiksXG4gIHN0YXR1czogei5lbnVtKFRFUk1JTkFMX1NUQVRVU0VTKSxcbiAgbWVzc2FnZTogR2VuaWVNZXNzYWdlU2NoZW1hLFxufSk7XG5leHBvcnQgdHlwZSBSZXN1bHRFdmVudCA9IHouaW5mZXI8dHlwZW9mIFJlc3VsdEV2ZW50U2NoZW1hPjtcblxuLyoqXG4gKiBEaXNjcmltaW5hdGVkIHVuaW9uIHlpZWxkZWQgYnkgYGdlbmllRXZlbnRDaGF0YC4gRWFjaCB2YXJpYW50XG4gKiBpcyBhIHNpbmdsZSBmbGF0IG9iamVjdCB3aXRoIGB0eXBlYCBhcyB0aGUgZGlzY3JpbWluYXRvciBhbmRcbiAqIHRoZSBwYXlsb2FkIGZpZWxkcyBob2lzdGVkIGRpcmVjdGx5IHRvIHRoZSB0b3AgbGV2ZWwgLSBub1xuICogYHBheWxvYWRgIHdyYXBwZXIuIENvbnN1bWVycyBuYXJyb3cgb24gYHR5cGVgIGFuZCByZWFkIGZpZWxkc1xuICogaW5saW5lOlxuICpcbiAqIEBleGFtcGxlXG4gKiBmb3IgYXdhaXQgKGNvbnN0IGV2ZW50IG9mIGdlbmllRXZlbnRDaGF0KHNwYWNlSWQsIFwiVG9wIHN0b3Jlcz9cIikpIHtcbiAqICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gKiAgICAgY2FzZSBcInRoaW5raW5nXCI6XG4gKiAgICAgICBjb25zb2xlLmxvZyhldmVudC50aG91Z2h0X3R5cGUsIGV2ZW50LnRleHQpO1xuICogICAgICAgYnJlYWs7XG4gKiAgICAgY2FzZSBcInJlc3VsdFwiOlxuICogICAgICAgY29uc29sZS5sb2coXCJkb25lOlwiLCBldmVudC5zdGF0dXMpO1xuICogICAgICAgYnJlYWs7XG4gKiAgIH1cbiAqIH1cbiAqXG4gKiBTdHJlYW0gb3JkZXIgcGVyIHR1cm46XG4gKlxuICogICAxLiBgcXVlc3Rpb25gLCBlbWl0dGVkIHdpdGggdGhlIGZpcnN0IGBtZXNzYWdlYCB5aWVsZCAoZGVmZXJyZWQgc29cbiAqICAgICAgdGhlIGFzc2lnbmVkIGBtZXNzYWdlX2lkYCBpcyBhdmFpbGFibGUpLCBjYXJyeWluZyB0aGUgcHJvbXB0XG4gKiAgICAgIHRoaXMgdHVybiBzZW50IHRvIEdlbmllLlxuICogICAyLiBgbWVzc2FnZWAgZm9yIGV2ZXJ5IHBvbGwgeWllbGQgKHJhdyBgR2VuaWVNZXNzYWdlYCBvblxuICogICAgICBgZXZlbnQubWVzc2FnZWApLlxuICogICAzLiBBbnkgZGVyaXZlZCBldmVudHMgdGhlIHNuYXBzaG90IGRpZmYgcHJvZHVjZWQgKGBzdGF0dXNgLFxuICogICAgICBgYXR0YWNobWVudGAsIGB0aGlua2luZ2AsIGB0ZXh0YCwgYHF1ZXJ5YCwgYHN0YXRlbWVudGAsXG4gKiAgICAgIGByb3dzYCwgYHN1Z2dlc3RlZF9xdWVzdGlvbnNgKSBpbiB0aGF0IGZpeGVkIG9yZGVyLlxuICogICA0LiBPbiB0aGUgdGVybWluYWwgc25hcHNob3QsIGEgZmluYWwgYHJlc3VsdGAgZXZlbnQuXG4gKlxuICogRXJyb3JzIHByb3BhZ2F0ZSB2aWEgdGhlIGdlbmVyYXRvciB0aHJvd2luZyAoYHRyeWAvYGNhdGNoYCB0aGVcbiAqIGBmb3IgYXdhaXRgKSwgbm90IHZpYSBhbiBgZXJyb3JgIHZhcmlhbnQgb24gdGhpcyB1bmlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmllQ2hhdEV2ZW50U2NoZW1hID0gei5kaXNjcmltaW5hdGVkVW5pb24oXCJ0eXBlXCIsIFtcbiAgUXVlc3Rpb25FdmVudFNjaGVtYSxcbiAgTWVzc2FnZUV2ZW50U2NoZW1hLFxuICBTdGF0dXNFdmVudFNjaGVtYSxcbiAgQXR0YWNobWVudEV2ZW50U2NoZW1hLFxuICBUaGlua2luZ0V2ZW50U2NoZW1hLFxuICBUZXh0RXZlbnRTY2hlbWEsXG4gIFF1ZXJ5RXZlbnRTY2hlbWEsXG4gIFN0YXRlbWVudEV2ZW50U2NoZW1hLFxuICBSb3dzRXZlbnRTY2hlbWEsXG4gIFN1Z2dlc3RlZFF1ZXN0aW9uc0V2ZW50U2NoZW1hLFxuICBSZXN1bHRFdmVudFNjaGVtYSxcbl0pO1xuZXhwb3J0IHR5cGUgR2VuaWVDaGF0RXZlbnQgPSB6LmluZmVyPHR5cGVvZiBHZW5pZUNoYXRFdmVudFNjaGVtYT47XG5cbi8qKiBEaXNjcmltaW5hdG9yIHR5cGUgZm9yIHtAbGluayBHZW5pZUNoYXRFdmVudH0uICovXG5leHBvcnQgdHlwZSBHZW5pZUNoYXRFdmVudFR5cGUgPSBHZW5pZUNoYXRFdmVudFtcInR5cGVcIl07XG5cbi8qKlxuICogRmllbGQgc2V0IGZvciBhIGdpdmVuIHtAbGluayBHZW5pZUNoYXRFdmVudFR5cGV9IC0gdGhlIHZhcmlhbnRcbiAqIHdpdGggdGhlIGB0eXBlYCBkaXNjcmltaW5hdG9yIHN0cmlwcGVkLiBVc2VkIGJ5IGRldGVjdG9ycyBpblxuICogYGV2ZW50LnRzYCBzbyBlYWNoIGRldGVjdG9yIHJldHVybnMganVzdCB0aGUgcGF5bG9hZCBmaWVsZHMgYW5kXG4gKiB0aGUgb3JjaGVzdHJhdG9yIHN0YW1wcyBgdHlwZWAgYXQgeWllbGQgdGltZS5cbiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVDaGF0RXZlbnRGaWVsZHM8VCBleHRlbmRzIEdlbmllQ2hhdEV2ZW50VHlwZT4gPSBPbWl0PFxuICBFeHRyYWN0PEdlbmllQ2hhdEV2ZW50LCB7IHR5cGU6IFQgfT4sXG4gIFwidHlwZVwiXG4+O1xuIl19
|
package/package.json
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"typescript": "^5.9.3"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@dbx-tools/shared-core": "0.6.
|
|
27
|
+
"@dbx-tools/shared-core": "0.6.108",
|
|
28
28
|
"zod": "4.3.6"
|
|
29
29
|
},
|
|
30
30
|
"main": "./lib/index.js",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"./package.json": "./package.json"
|
|
42
42
|
}
|
|
43
43
|
},
|
|
44
|
-
"version": "0.6.
|
|
44
|
+
"version": "0.6.108",
|
|
45
45
|
"types": "./lib/index.d.ts",
|
|
46
46
|
"type": "module",
|
|
47
47
|
"exports": {
|
package/src/genie-model.ts
CHANGED
|
@@ -146,6 +146,28 @@ export const GenieQueryAttachmentSchema = SDKGenieQueryAttachmentSchema.extend({
|
|
|
146
146
|
});
|
|
147
147
|
export type GenieQueryAttachment = z.infer<typeof GenieQueryAttachmentSchema>;
|
|
148
148
|
|
|
149
|
+
/**
|
|
150
|
+
* Purpose attached to a Genie text response.
|
|
151
|
+
*
|
|
152
|
+
* The generated Databricks SDK schema currently knows only
|
|
153
|
+
* `FOLLOW_UP_QUESTION`, while the live Genie API also emits
|
|
154
|
+
* `TEXT_ATTACHMENT_PURPOSE_ANSWER` for the primary answer text. Keep the
|
|
155
|
+
* known values discoverable and accept future string values so an additive
|
|
156
|
+
* server-side enum change cannot invalidate an otherwise complete message.
|
|
157
|
+
*/
|
|
158
|
+
export type GenieTextAttachmentPurpose =
|
|
159
|
+
| "FOLLOW_UP_QUESTION"
|
|
160
|
+
| "TEXT_ATTACHMENT_PURPOSE_ANSWER"
|
|
161
|
+
| (string & {});
|
|
162
|
+
|
|
163
|
+
/** Text attachment schema widened for forward-compatible purpose values. */
|
|
164
|
+
export const GenieTextAttachmentSchema = dashboards.textAttachmentSchema.extend({
|
|
165
|
+
purpose: z
|
|
166
|
+
.custom<GenieTextAttachmentPurpose>((value) => typeof value === "string")
|
|
167
|
+
.optional(),
|
|
168
|
+
});
|
|
169
|
+
export type GenieTextAttachment = z.infer<typeof GenieTextAttachmentSchema>;
|
|
170
|
+
|
|
149
171
|
/**
|
|
150
172
|
* `GenieAttachment` with:
|
|
151
173
|
*
|
|
@@ -158,14 +180,17 @@ export type GenieQueryAttachment = z.infer<typeof GenieQueryAttachmentSchema>;
|
|
|
158
180
|
* callers compute it with {@link detectAttachmentType} when
|
|
159
181
|
* they want the literal up-front.
|
|
160
182
|
*
|
|
161
|
-
* `
|
|
162
|
-
*
|
|
183
|
+
* `text` is re-typed to the forward-compatible
|
|
184
|
+
* {@link GenieTextAttachmentSchema}. `attachment_id` and
|
|
185
|
+
* `suggested_questions` pass through unchanged. `attachment_id` is genuinely
|
|
186
|
+
* optional on the wire:
|
|
163
187
|
* the first text attachment Genie emits per turn (the "main
|
|
164
188
|
* answer text") arrives with no id, only the follow-up text
|
|
165
189
|
* attachment gets one.
|
|
166
190
|
*/
|
|
167
191
|
export const GenieAttachmentSchema = SDKGenieAttachmentSchema.extend({
|
|
168
192
|
query: GenieQueryAttachmentSchema.optional(),
|
|
193
|
+
text: GenieTextAttachmentSchema.optional(),
|
|
169
194
|
attachment_type: z.custom<AttachmentType>((v) => typeof v === "string").optional(),
|
|
170
195
|
});
|
|
171
196
|
export type GenieAttachment = z.infer<typeof GenieAttachmentSchema>;
|